Re: COMPARE_AND_WRITE support for rbd driver
On Fri, Sep 20, 2019 at 01:22:02PM +0200, Paolo Bonzini wrote: > On 19/09/19 07:36, Yaowei Bai wrote: > > > > Hey guys, > > > > I noticed that COMPARE_AND_WRITE had been supported by CEPH/librbd since > > v12.1.1. And in my company, we use this COMPARE_AND_WRITE support in > > CEPH with the ISCSI protocol. More precisely, we use tgt and CEPH with this > > COMPARE_AND_WRITE support as the SCSI target and export it to the remote > > hosts. And then VMs on remote hosts can use these SCSI targets through ISCSI > > initiator support in QEMU directly or as local SCSI disks. But > > unfortunately, > > there're some issues with this tgt case. So i think maybe we could also add > > this > > COMPARE_AND_WRITE support into the rbd driver in QEMU so we can leave the > > ISCSI/tgt alone and use this COMPARE_AND_WRITE support with the > > scsi-disk <--> virtio-scsi <--> rbd driver path. This can also apply to > > the WRITESAME support in CEPH/librbd. > > > > So is it suitable for doing this? > > Yes, it would be suitable. In a nutshell you would have to add support > for COMPARE_AND_WRITE to block/io.c (calling into a new BlockDriver > function pointer), block/rbd.c and hw/scsi/scsi-disk.c. OK, i'll try to implement this and send it out for review. Thanks Paolo. > > Paolo
Re: COMPARE_AND_WRITE support for rbd driver
On 19/09/19 07:36, Yaowei Bai wrote: > baiyao...@cmss.chinamobile.com > Bcc: > Subject: COMPARE_AND_WRITE support for rbd driver > Reply-To: baiyao...@cmss.chinamobile.com > > Hey guys, > > I noticed that COMPARE_AND_WRITE had been supported by CEPH/librbd since > v12.1.1. And in my company, we use this COMPARE_AND_WRITE support in > CEPH with the ISCSI protocol. More precisely, we use tgt and CEPH with this > COMPARE_AND_WRITE support as the SCSI target and export it to the remote > hosts. And then VMs on remote hosts can use these SCSI targets through ISCSI > initiator support in QEMU directly or as local SCSI disks. But unfortunately, > there're some issues with this tgt case. So i think maybe we could also add > this > COMPARE_AND_WRITE support into the rbd driver in QEMU so we can leave the > ISCSI/tgt alone and use this COMPARE_AND_WRITE support with the > scsi-disk <--> virtio-scsi <--> rbd driver path. This can also apply to > the WRITESAME support in CEPH/librbd. > > So is it suitable for doing this? Yes, it would be suitable. In a nutshell you would have to add support for COMPARE_AND_WRITE to block/io.c (calling into a new BlockDriver function pointer), block/rbd.c and hw/scsi/scsi-disk.c. Paolo
[Qemu-block] COMPARE_AND_WRITE support for rbd driver
baiyao...@cmss.chinamobile.com Bcc: Subject: COMPARE_AND_WRITE support for rbd driver Reply-To: baiyao...@cmss.chinamobile.com Hey guys, I noticed that COMPARE_AND_WRITE had been supported by CEPH/librbd since v12.1.1. And in my company, we use this COMPARE_AND_WRITE support in CEPH with the ISCSI protocol. More precisely, we use tgt and CEPH with this COMPARE_AND_WRITE support as the SCSI target and export it to the remote hosts. And then VMs on remote hosts can use these SCSI targets through ISCSI initiator support in QEMU directly or as local SCSI disks. But unfortunately, there're some issues with this tgt case. So i think maybe we could also add this COMPARE_AND_WRITE support into the rbd driver in QEMU so we can leave the ISCSI/tgt alone and use this COMPARE_AND_WRITE support with the scsi-disk <--> virtio-scsi <--> rbd driver path. This can also apply to the WRITESAME support in CEPH/librbd. So is it suitable for doing this? I want to hear suggestions from you genius guys. Appreciate it.