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

Re: [libvirt] libvirt and clustered volume group problems



于 2011年10月25日 00:56, Rommer 写道:
Hello,

Description of problem:
a) libvirt should use vgchange -aly/-aln instead of vgchange -ay/-an for clustered volume groups b) libvirt should skip not activated/suspended volumes during pool-create/pool-refresh for logical pools

Version-Release number of selected component (if applicable):
libvirt-0.9.6

How reproducible:
always

Steps to Reproduce:

a) vgchange -ay/-an
1. Build 2-node cluster
2. Create clustered volume group
3. Create logical storage pool in libvirt
4. Open/mount any volume on the first node
5. Try to destroy storage pool on the second node

b) not activated volumes:
1. Build 2-node cluster
2. Create clustered volume group
3. Activate exclusively any volume on the first node
4. Try to create pool on the second node

Actual results:

a) vgchange -ay/-an
# virsh pool-destroy vg
error: Failed to destroy pool vg
error: internal error '/sbin/vgchange -an vg' exited with non-zero status 5 and
signal 0: Error locking on node node1: LV vg/lv1 in use: not deactivating

b) not activated volumes:
# virsh pool-create vg.xml
error: Failed to create pool from vg.xml
error: internal error lvs command failed

Expected results:

a) vgchange -ay/-an
# virsh pool-destroy vg
Pool vg destroyed

b) not activated volumes:
# virsh pool-create vg.xml
Pool vg created from vg.xml

Additional info:
Attached patch fix problem for me.
Original bug report: https://bugzilla.redhat.com/show_bug.cgi?id=748437
a) https://bugzilla.redhat.com/show_bug.cgi?id=748248
b) https://bugzilla.redhat.com/show_bug.cgi?id=748282

Hi, Rommer

The patch is not made against upstream libvirt, there is conflicts with
commit 82c1740ab9.

Looks like just changing "-an/-ay" into "-aln-/aly" will fix both a) and b).

The codes for skipping the inactive vols are after "lvs" command, so
that's not the acual fix for b). (there is error "lvs command failed"). b)
works with the fix is just because the pool is activated by "vgchange -aly".

Or do you have an aditional purpose (skip the inactive vols for logical
pool)? which I guess is not right, we allows inactive logical vols exists
for the pool. However, we might need to expose the active/inactive
info as an extent info in the vol XML, and introduce new internal API
for logical backend and supports activate/deactivate logical vols.

But I might be wrong, as did no testing.

Osier


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