Re: [libvirt] [PATCH v3 0/9] qemu: Add quorum support to libvirt

2015-03-03 Thread Matthias Gatto
On Thu, Feb 26, 2015 at 5:04 PM, Peter Krempa pkre...@redhat.com wrote:
 On Mon, Feb 23, 2015 at 14:18:31 +0100, Matthias Gatto wrote:
 On Tue, Feb 10, 2015 at 4:43 PM, Matthias Gatto
 matthias.ga...@outscale.com wrote:
  The purpose of these patches is to introduce quorum for libvirt
  I've try to follow this proposal:
  http://www.redhat.com/archives/libvir-list/2014-May/msg00533.html
 
  This feature ask for 6 task:
 
  1) Allow a _virStorageSource to contain more than one backing store.
 
  Because all the actual libvirt code use the backingStore field
  as a pointer and we needs want to change that, I've decide to encapsulate
  the backingStore field to simplifie the array manipulation.
 
  2) Add the missing field a quorum need in _virStorageSource and
  the VIR_STORAGE_TYPE_QUORUM and VIR_STORAGE_FILE_QUORUM in
  their respectives enums.
 
  3) Parse and format the xml
  Because a quorum allows to have more than one backing store at the same 
  level
  we need to change virDomainDiskDefFormat and virDomainDiskDefParseXML
  to call virDomainDiskBackingStoreFormat and virDomainDiskBackingStoreParse
  in a loop.
  virDomainDiskBackingStoreFormat and virDomainDiskBackingStoreParse can
  call themself recursively in a loop because a quorum can contain another
  quorum
 
  4) Add nodename
  We need to add nodename support in _virStorageSource because qemu
  use them for their child.
 
  5) Build qemu string
  As for the xml, we have to call the function which create quorum 
  recursively.
  But this task have the problem explained here:
  http://www.redhat.com/archives/libvir-list/2014-October/msg00529.html
  The _virStorageSource missing some informations that can be passed to
  a child, and therefore this version of quorum is incomplet.
 
  6) Allow to hotplug/change a disk in a quorum
  This part is not present in these patches because for this task
  we have to use blockdev-add, and currently libvirt use
  device_add for hotpluging that doesn't allow to hotplug quorum childs.
 
  There is 3 way to handle this problem:
1) create a virDomainBlockDevAdd function in libvirt witch call
blockdev-add.
 
2) use blockdev-add instead of device_add in qemuMonitorJSONAddDevice
 
3) write a hack which uses blockdev-add when only attaching quorum
(but i'm pretty sure this solution is not the good one)
 
  V2:
  -Rebase on master
  -Add Documentation
 
  V3:
  -Transforme the backingStore field in virStorageSource into
   an array of pointer instead of a pointer
  -Modify virStorageSourceSetBackingStore to allow it to expand
   the backingStore size.
 
  Matthias Gatto (9):
virstoragefile: Add virStorageSourceGetBackingStore
virstoragefile: Always use virStorageSourceGetBackingStore to get
  backing store
virstoragefile: Add virStorageSourceSetBackingStore
virstoragefile: Always use virStorageSourceSetBackingStore to set
  backing store
virstoragefile: change backingStore to backingStores.
virstoragefile: Add quorum in virstoragefile
domain_conf: Read and Write quorum config
qemu: Add quorum support in qemuBuildDriveDevStr
virstoragefile: Add node-name
 
   docs/formatdomain.html.in |  27 -
   docs/schemas/domaincommon.rng |  96 +++--
   docs/schemas/storagecommon.rng|   1 +
   docs/schemas/storagevol.rng   |   1 +
   src/conf/domain_conf.c| 195 
  ++
   src/conf/storage_conf.c   |  23 ++--
   src/libvirt_private.syms  |   2 +
   src/qemu/qemu_cgroup.c|   4 +-
   src/qemu/qemu_command.c   | 114 
   src/qemu/qemu_domain.c|   2 +-
   src/qemu/qemu_driver.c|  30 +++---
   src/qemu/qemu_migration.c |   1 +
   src/security/security_dac.c   |   2 +-
   src/security/security_selinux.c   |   4 +-
   src/security/virt-aa-helper.c |   2 +-
   src/storage/storage_backend.c |  33 +++---
   src/storage/storage_backend_fs.c  |  36 ---
   src/storage/storage_backend_gluster.c |  10 +-
   src/storage/storage_backend_logical.c |  15 ++-
   src/storage/storage_driver.c  |   2 +-
   src/util/virstoragefile.c | 116 +---
   src/util/virstoragefile.h |  12 ++-
   tests/virstoragetest.c|  18 ++--
   23 files changed, 573 insertions(+), 173 deletions(-)
 
  --
  1.8.3.1
 

 ping

 Sorry for taking so long. I was pretty busy in the last time and need to
 switch context to the storage part of libvirt again at first.

 I have this series on the radar and will try to review it once I get rid
 of some stuff.

 Peter

ok,
Thank you

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH v3 0/9] qemu: Add quorum support to libvirt

2015-02-26 Thread Peter Krempa
On Mon, Feb 23, 2015 at 14:18:31 +0100, Matthias Gatto wrote:
 On Tue, Feb 10, 2015 at 4:43 PM, Matthias Gatto
 matthias.ga...@outscale.com wrote:
  The purpose of these patches is to introduce quorum for libvirt
  I've try to follow this proposal:
  http://www.redhat.com/archives/libvir-list/2014-May/msg00533.html
 
  This feature ask for 6 task:
 
  1) Allow a _virStorageSource to contain more than one backing store.
 
  Because all the actual libvirt code use the backingStore field
  as a pointer and we needs want to change that, I've decide to encapsulate
  the backingStore field to simplifie the array manipulation.
 
  2) Add the missing field a quorum need in _virStorageSource and
  the VIR_STORAGE_TYPE_QUORUM and VIR_STORAGE_FILE_QUORUM in
  their respectives enums.
 
  3) Parse and format the xml
  Because a quorum allows to have more than one backing store at the same 
  level
  we need to change virDomainDiskDefFormat and virDomainDiskDefParseXML
  to call virDomainDiskBackingStoreFormat and virDomainDiskBackingStoreParse
  in a loop.
  virDomainDiskBackingStoreFormat and virDomainDiskBackingStoreParse can
  call themself recursively in a loop because a quorum can contain another
  quorum
 
  4) Add nodename
  We need to add nodename support in _virStorageSource because qemu
  use them for their child.
 
  5) Build qemu string
  As for the xml, we have to call the function which create quorum 
  recursively.
  But this task have the problem explained here:
  http://www.redhat.com/archives/libvir-list/2014-October/msg00529.html
  The _virStorageSource missing some informations that can be passed to
  a child, and therefore this version of quorum is incomplet.
 
  6) Allow to hotplug/change a disk in a quorum
  This part is not present in these patches because for this task
  we have to use blockdev-add, and currently libvirt use
  device_add for hotpluging that doesn't allow to hotplug quorum childs.
 
  There is 3 way to handle this problem:
1) create a virDomainBlockDevAdd function in libvirt witch call
blockdev-add.
 
2) use blockdev-add instead of device_add in qemuMonitorJSONAddDevice
 
3) write a hack which uses blockdev-add when only attaching quorum
(but i'm pretty sure this solution is not the good one)
 
  V2:
  -Rebase on master
  -Add Documentation
 
  V3:
  -Transforme the backingStore field in virStorageSource into
   an array of pointer instead of a pointer
  -Modify virStorageSourceSetBackingStore to allow it to expand
   the backingStore size.
 
  Matthias Gatto (9):
virstoragefile: Add virStorageSourceGetBackingStore
virstoragefile: Always use virStorageSourceGetBackingStore to get
  backing store
virstoragefile: Add virStorageSourceSetBackingStore
virstoragefile: Always use virStorageSourceSetBackingStore to set
  backing store
virstoragefile: change backingStore to backingStores.
virstoragefile: Add quorum in virstoragefile
domain_conf: Read and Write quorum config
qemu: Add quorum support in qemuBuildDriveDevStr
virstoragefile: Add node-name
 
   docs/formatdomain.html.in |  27 -
   docs/schemas/domaincommon.rng |  96 +++--
   docs/schemas/storagecommon.rng|   1 +
   docs/schemas/storagevol.rng   |   1 +
   src/conf/domain_conf.c| 195 
  ++
   src/conf/storage_conf.c   |  23 ++--
   src/libvirt_private.syms  |   2 +
   src/qemu/qemu_cgroup.c|   4 +-
   src/qemu/qemu_command.c   | 114 
   src/qemu/qemu_domain.c|   2 +-
   src/qemu/qemu_driver.c|  30 +++---
   src/qemu/qemu_migration.c |   1 +
   src/security/security_dac.c   |   2 +-
   src/security/security_selinux.c   |   4 +-
   src/security/virt-aa-helper.c |   2 +-
   src/storage/storage_backend.c |  33 +++---
   src/storage/storage_backend_fs.c  |  36 ---
   src/storage/storage_backend_gluster.c |  10 +-
   src/storage/storage_backend_logical.c |  15 ++-
   src/storage/storage_driver.c  |   2 +-
   src/util/virstoragefile.c | 116 +---
   src/util/virstoragefile.h |  12 ++-
   tests/virstoragetest.c|  18 ++--
   23 files changed, 573 insertions(+), 173 deletions(-)
 
  --
  1.8.3.1
 
 
 ping

Sorry for taking so long. I was pretty busy in the last time and need to
switch context to the storage part of libvirt again at first.

I have this series on the radar and will try to review it once I get rid
of some stuff.

Peter


signature.asc
Description: Digital signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH v3 0/9] qemu: Add quorum support to libvirt

2015-02-23 Thread Matthias Gatto
On Tue, Feb 10, 2015 at 4:43 PM, Matthias Gatto
matthias.ga...@outscale.com wrote:
 The purpose of these patches is to introduce quorum for libvirt
 I've try to follow this proposal:
 http://www.redhat.com/archives/libvir-list/2014-May/msg00533.html

 This feature ask for 6 task:

 1) Allow a _virStorageSource to contain more than one backing store.

 Because all the actual libvirt code use the backingStore field
 as a pointer and we needs want to change that, I've decide to encapsulate
 the backingStore field to simplifie the array manipulation.

 2) Add the missing field a quorum need in _virStorageSource and
 the VIR_STORAGE_TYPE_QUORUM and VIR_STORAGE_FILE_QUORUM in
 their respectives enums.

 3) Parse and format the xml
 Because a quorum allows to have more than one backing store at the same level
 we need to change virDomainDiskDefFormat and virDomainDiskDefParseXML
 to call virDomainDiskBackingStoreFormat and virDomainDiskBackingStoreParse
 in a loop.
 virDomainDiskBackingStoreFormat and virDomainDiskBackingStoreParse can
 call themself recursively in a loop because a quorum can contain another
 quorum

 4) Add nodename
 We need to add nodename support in _virStorageSource because qemu
 use them for their child.

 5) Build qemu string
 As for the xml, we have to call the function which create quorum recursively.
 But this task have the problem explained here:
 http://www.redhat.com/archives/libvir-list/2014-October/msg00529.html
 The _virStorageSource missing some informations that can be passed to
 a child, and therefore this version of quorum is incomplet.

 6) Allow to hotplug/change a disk in a quorum
 This part is not present in these patches because for this task
 we have to use blockdev-add, and currently libvirt use
 device_add for hotpluging that doesn't allow to hotplug quorum childs.

 There is 3 way to handle this problem:
   1) create a virDomainBlockDevAdd function in libvirt witch call
   blockdev-add.

   2) use blockdev-add instead of device_add in qemuMonitorJSONAddDevice

   3) write a hack which uses blockdev-add when only attaching quorum
   (but i'm pretty sure this solution is not the good one)

 V2:
 -Rebase on master
 -Add Documentation

 V3:
 -Transforme the backingStore field in virStorageSource into
  an array of pointer instead of a pointer
 -Modify virStorageSourceSetBackingStore to allow it to expand
  the backingStore size.

 Matthias Gatto (9):
   virstoragefile: Add virStorageSourceGetBackingStore
   virstoragefile: Always use virStorageSourceGetBackingStore to get
 backing store
   virstoragefile: Add virStorageSourceSetBackingStore
   virstoragefile: Always use virStorageSourceSetBackingStore to set
 backing store
   virstoragefile: change backingStore to backingStores.
   virstoragefile: Add quorum in virstoragefile
   domain_conf: Read and Write quorum config
   qemu: Add quorum support in qemuBuildDriveDevStr
   virstoragefile: Add node-name

  docs/formatdomain.html.in |  27 -
  docs/schemas/domaincommon.rng |  96 +++--
  docs/schemas/storagecommon.rng|   1 +
  docs/schemas/storagevol.rng   |   1 +
  src/conf/domain_conf.c| 195 
 ++
  src/conf/storage_conf.c   |  23 ++--
  src/libvirt_private.syms  |   2 +
  src/qemu/qemu_cgroup.c|   4 +-
  src/qemu/qemu_command.c   | 114 
  src/qemu/qemu_domain.c|   2 +-
  src/qemu/qemu_driver.c|  30 +++---
  src/qemu/qemu_migration.c |   1 +
  src/security/security_dac.c   |   2 +-
  src/security/security_selinux.c   |   4 +-
  src/security/virt-aa-helper.c |   2 +-
  src/storage/storage_backend.c |  33 +++---
  src/storage/storage_backend_fs.c  |  36 ---
  src/storage/storage_backend_gluster.c |  10 +-
  src/storage/storage_backend_logical.c |  15 ++-
  src/storage/storage_driver.c  |   2 +-
  src/util/virstoragefile.c | 116 +---
  src/util/virstoragefile.h |  12 ++-
  tests/virstoragetest.c|  18 ++--
  23 files changed, 573 insertions(+), 173 deletions(-)

 --
 1.8.3.1


ping

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list