mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
da23255cc9
There was a bad sequence: *) Make changes to LV layout to split images (e.g. 4-way -> 2-way/2-way) 1) vg_write, suspend_lv(original_mirror), vg_commit 2) activate_lv(newly_split_lv) 3) resume_lv(original_mirror) Step #2 is not allowed. However, without it, the resume of the original mirror will also resume its former sub-LVs - making it impossible to activate the newly split LV due to the changes in layering, pointers, and names that had already been made. Additionally, the resume or the original brings the sub-lv's online with names that differ from the metadata on disk - also a no-no. Thus, the split must be done in stages such that the active LVs always reflect what is in the committed LVM metadata. First, alter the original mirror by releasing the images. The images are made visible and independent as an intermediate stage. (This way, we can have consistency between LVM metadata and active LVs.) The second stage collects the recently split LVs, deactivates them, forms them into a mirror if necessary, and then activates them. It is a bit of a circuitous method, but it is the only way to split a mirror from a mirror and obey these general rules: 1) Never [de]activate sub-lvs when the top-level LV is suspended 2) Avoid having active LVs that differ from the description in the LVM metadata Signed-off-by: Jonathan Brassow <jbrassow@redhat.com> |
||
---|---|---|
.. | ||
activate | ||
cache | ||
commands | ||
config | ||
datastruct | ||
device | ||
display | ||
error | ||
filters | ||
format1 | ||
format_pool | ||
format_text | ||
freeseg | ||
label | ||
locking | ||
log | ||
metadata | ||
mirror | ||
misc | ||
mm | ||
raid | ||
replicator | ||
report | ||
snapshot | ||
striped | ||
thin | ||
unknown | ||
uuid | ||
zero | ||
Makefile.in |