Bug 1468919
Summary: | LVM Metadata rolls back and causes disk corruption | ||
---|---|---|---|
Product: | Red Hat Enterprise Virtualization Manager | Reporter: | Germano Veit Michel <gveitmic> |
Component: | vdsm | Assignee: | Nir Soffer <nsoffer> |
Status: | CLOSED WONTFIX | QA Contact: | Raz Tamir <ratamir> |
Severity: | urgent | Docs Contact: | |
Priority: | high | ||
Version: | 3.6.10 | CC: | aefrat, amureini, bazulay, ebenahar, gveitmic, gwatson, lsurette, nashok, nsoffer, srevivo, ycui, ykaul, ylavi |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2017-07-10 11:36:56 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | Storage | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Germano Veit Michel
2017-07-09 23:38:58 UTC
lvremove does the same: # lvs --config 'global { use_lvmetad = 0 }' WARNING: Not using lvmetad because config setting use_lvmetad=0. WARNING: To avoid corruption, rescan devices to make changes visible (pvscan --cache). LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lvol0 myvg -wi-a----- 4.00m lvol1 myvg -wi-a----- 4.00m lvol2 myvg -wi-a----- 4.00m lvol3 myvg -wi-a----- 4.00m lvol4 myvg -wi-a----- 4.00m lvol5 myvg -wi-a----- 4.00m # lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lvol0 myvg -wi-a----- 4.00m lvol1 myvg -wi-a----- 4.00m lvol2 myvg -wi-a----- 4.00m # lvremove /dev/myvg/lvol1 # lvs --config 'global { use_lvmetad = 0 }' WARNING: Not using lvmetad because config setting use_lvmetad=0. WARNING: To avoid corruption, rescan devices to make changes visible (pvscan --cache). LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lvol0 myvg -wi-a----- 4.00m lvol2 myvg -wi-a----- 4.00m # lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lvol0 myvg -wi-a----- 4.00m lvol2 myvg -wi-a----- 4.00m Yes, it is possible to ruin your storage by running lvm commands on a host, this is not supported. Vdsm is the owner of all multipath devices on a host and the pvs, vgs, and lvs on these. Only vdsm, and in particular the spm host may modify the shared storage. For the example in comment 0, we support automatic PV resizing since 3.6, there is not need to do this manually. If you want to modify the storage directly you are responsible to use the correct lvm command line options and you must ensure that the spm is not running, otherwise you may corrupt lvm metadata. For 3.6 I recommend to disable lvmetad manually, since it is not compatible with ovirt shared storage. (In reply to Nir Soffer from comment #7) > Yes, it is possible to ruin your storage by running lvm commands on a host, > this is > not supported. > > Vdsm is the owner of all multipath devices on a host and the pvs, vgs, and > lvs on these. Only vdsm, and in particular the spm host may modify the > shared storage. > > For the example in comment 0, we support automatic PV resizing since 3.6, > there > is not need to do this manually. > > If you want to modify the storage directly you are responsible to use the > correct > lvm command line options and you must ensure that the spm is not running, > otherwise > you may corrupt lvm metadata. > > For 3.6 I recommend to disable lvmetad manually, since it is not compatible > with > ovirt shared storage. I tend to agree, and I rather not introduce another backport to 3.6.z. (In reply to Germano Veit Michel from comment #0) > - Support uses several internal procedures with lvm commands for recovery > * live storage migration failures > * snapshot failures > * LUN re-sizing (3.6 can be done through GUI, but 3.5 can use RHEL7). Germano - can you please share these procedures (in a private comment, probably). Engineering should review them and suggest the correct arguments to the lvm commands. Yaniv - I suggest closing as WONTFIX based on comment 7 and comment 8 (and solve this by updating CEE's procedures). Please confirm. (In reply to Allon Mureinik from comment #9) > Yaniv - I suggest closing as WONTFIX based on comment 7 and comment 8 (and > solve this by updating CEE's procedures). > Please confirm. Ack, let work with CEE to make sure their flows are supportable ones. Germano, please send a email to the tech list, so we will be able to review the current solutions. Yes, WONTFIX is OK and logical. Nir, I just need a way to safely disable lvmetad online. I'm afraid anything can trigger it to write that old stale metadata back to the storage. How do we safely disable it? Even in maintenanance mode, if the Storage is FC there is a risk right? What do you recommend? Regarding internal solutions using lvm commands without "use_lvmetad = 0", we probably have dozens. I will send an email to the support list to warn about this. Modifying lvm.conf like this: global { ... # lvmetad service is not compatible with ovirt shared storage. We disable # the lvm2-lvmetad.socket/service, this option helps lvm commands so they # do not try to access the disabled service. use_lvmetad = 0 ... } Should prevent usage of lvmetad daemon by any lvm command. |