[PATCH 00/11 V1] rbd journaling feature

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,
   This is V1 to implement the journaling feature in kernel rbd, which makes mirroring in kubernetes possible.
It passed the /ceph/ceph/qa/workunits/rbd/rbd_mirror.sh, with a little change as below:

```
[root@atest-guest build]# git diff /ceph/ceph/qa/workunits/rbd/rbd_mirror_helpers.sh
diff --git a/qa/workunits/rbd/rbd_mirror_helpers.sh b/qa/workunits/rbd/rbd_mirror_helpers.sh
index e019de5..9d00d3e 100755
--- a/qa/workunits/rbd/rbd_mirror_helpers.sh
+++ b/qa/workunits/rbd/rbd_mirror_helpers.sh
@@ -854,9 +854,9 @@ write_image()

     test -n "${size}" || size=4096

-    rbd --cluster ${cluster} -p ${pool} bench ${image} --io-type write \
-       --io-size ${size} --io-threads 1 --io-total $((size * count)) \
-       --io-pattern rand
+    rbd --cluster ${cluster} -p ${pool} map ${image}
+    fio --name=test --rw=randwrite --bs=${size} --runtime=60 --ioengine=libaio --iodepth=1 --numjobs=1 --filename=/dev/rbd0 --direct=1 --group_reporting --size $((size * count)) --group_reporting --eta-newline 1
+    rbd --cluster ${cluster} -p ${pool} unmap ${image}
 }

 stress_write_image()
```

Changelog from RFC:
        1. error out if there is some unsupported event type in replaying
        2. just one memory copy from bio to msg.
        3. use async IO in journal appending.
        4. no mutex around IO.

Dongsheng Yang (11):
  libceph: support prefix and suffix in bio_iter
  libceph: support op append
  libceph: introduce cls_journaler_client
  libceph: introduce generic journaling
  libceph: journaling: introduce api to replay uncommitted journal
    events
  libceph: journaling: introduce api for journal appending
  libceph: journaling: trim object set when we found there is no client
    refer it
  rbd: wait image request all complete in lock releasing
  rbd: introduce completion for each img_request
  rbd: introduce a lock_flag in rbd_dev to make some process
    exclusive-lock protected
  rbd: enable journaling

 drivers/block/rbd.c                       |  635 +++++++++-
 include/linux/ceph/cls_journaler_client.h |   93 ++
 include/linux/ceph/journaler.h            |  176 +++
 include/linux/ceph/messenger.h            |    9 +
 net/ceph/Makefile                         |    3 +-
 net/ceph/cls_journaler_client.c           |  535 +++++++++
 net/ceph/journaler.c                      | 1843 +++++++++++++++++++++++++++++
 net/ceph/messenger.c                      |   96 +-
 net/ceph/osd_client.c                     |   14 +-
 9 files changed, 3360 insertions(+), 44 deletions(-)
 create mode 100644 include/linux/ceph/cls_journaler_client.h
 create mode 100644 include/linux/ceph/journaler.h
 create mode 100644 net/ceph/cls_journaler_client.c
 create mode 100644 net/ceph/journaler.c

-- 
1.8.3.1





[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux