1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-22 17:35:59 +03:00
lvm2/lib/metadata
Jonathan Earl Brassow 72e0743621 This patch adds the capability to split off a mirror legs.
It is pretty much the same as reducing the number of
mirror legs, but we just don't delete them afterwards.

The following command line interface is enforced:
  prompt> lvconvert --splitmirror <n> -n <name> <VG>/<LV>
where 'n' is the number of images to split off, and
where 'name' is the name of the newly split off logical volume.

If more than one leg is split off, a new mirror will be the
result.  The newly split off mirror will have a 'core' log.
Example:
[root@bp-01 LVM2]# !lvs
lvs -a -o name,copy_percent,devices
  LV            Copy%  Devices
  lv            100.00 lv_mimage_0(0),lv_mimage_1(0),lv_mimage_2(0),lv_mimage_3(0)
  [lv_mimage_0]        /dev/sdb1(0)
  [lv_mimage_1]        /dev/sdc1(0)
  [lv_mimage_2]        /dev/sdd1(0)
  [lv_mimage_3]        /dev/sde1(0)
  [lv_mlog]            /dev/sdi1(0)
[root@bp-01 LVM2]# lvconvert --splitmirrors 2 --name split vg/lv /dev/sd[ce]1
  Logical volume lv converted.
[root@bp-01 LVM2]# !lvs
lvs -a -o name,copy_percent,devices
  LV               Copy%  Devices
  lv               100.00 lv_mimage_0(0),lv_mimage_2(0)
  [lv_mimage_0]           /dev/sdb1(0)
  [lv_mimage_2]           /dev/sdd1(0)
  [lv_mlog]               /dev/sdi1(0)
  split            100.00 split_mimage_0(0),split_mimage_1(0)
  [split_mimage_0]        /dev/sde1(0)
  [split_mimage_1]        /dev/sdc1(0)

It can be seen that '--splitmirror <n>' is exactly the same
as '--mirrors -<n>' (note the minus sign), except there is the
additional notion to keep the image being detached from the
mirror instead of just throwing it away.

Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
2010-01-08 22:00:31 +00:00
..
lv_alloc.h Update a few more uint64_t's related to the 64-bit status change. 2009-12-04 17:48:32 +00:00
lv_manip.c Add missing 'stack;' for all suspend_lv and resume_lv callers. 2010-01-05 21:07:31 +00:00
merge.c Right, a simple build (without options) is working again. 2008-11-03 22:14:30 +00:00
metadata-exported.h Switch status from 32-bit to 64-bit 2009-11-24 22:55:55 +00:00
metadata.c Just add '.' at the end of error message. 2010-01-07 14:29:53 +00:00
metadata.h Consolidate LV allocation into alloc_lv(). 2009-09-28 17:46:15 +00:00
mirror.c This patch adds the capability to split off a mirror legs. 2010-01-08 22:00:31 +00:00
pv_alloc.h Right, a simple build (without options) is working again. 2008-11-03 22:14:30 +00:00
pv_manip.c Right, a simple build (without options) is working again. 2008-11-03 22:14:30 +00:00
pv_map.c Do not include MISSING_PVs in allocation maps. 2009-04-23 16:41:27 +00:00
pv_map.h Right, a simple build (without options) is working again. 2008-11-03 22:14:30 +00:00
segtype.c Handle metadata with unknown segment types more gracefully. 2009-10-16 17:41:49 +00:00
segtype.h Handle metadata with unknown segment types more gracefully. 2009-10-16 17:41:49 +00:00
snapshot_manip.c Use log_error macro consistently throughout in place of log_err. 2009-07-15 20:02:46 +00:00