[libvirt] libvirt and clustered volume group problems

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 -- С уважением, Роман Шишнёв, CTO | ActiveCloud | http://www.active.by Т +375 17 2 911 511 доб. 308 | rommer@active.by Облачные решения | Серверы и инфраструктура | IaaS | SaaS | Хостинг

于 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
participants (2)
-
Osier Yang
-
Rommer