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  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
>>  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 t

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
>  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-li

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
 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


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

2015-02-10 Thread Matthias Gatto
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

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