]> sourceware.org Git - lvm2.git/commit
lvconvert: add infrastructure for RaidLV reshaping support
authorHeinz Mauelshagen <heinzm@redhat.com>
Thu, 23 Feb 2017 23:50:00 +0000 (00:50 +0100)
committerHeinz Mauelshagen <heinzm@redhat.com>
Fri, 24 Feb 2017 04:20:58 +0000 (05:20 +0100)
commite2354ea344c248ede9faa872c260d46985830c0f
tree7dca2e33bedcd12aabd34ffba143e658a5fff7cb
parentffe3ca26e05f9bb10f004bafe6866b189d7ac385
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces infrastructure prerequisites to be used
by raid_manip.c extensions in followup patches.

This base is needed for allocation of out-of-place
reshape space required by the MD raid personalities to
avoid writing over data in-place when reading off the
current RAID layout or number of legs and writing out
the new layout or to a different number of legs
(i.e. restripe)

Changes:
- add members reshape_len to 'struct lv_segment' to store
  out-of-place reshape length per component rimage
- add member data_copies to struct lv_segment
  to support more than 2 raid10 data copies
- make alloc_lv_segment() aware of both reshape_len and data_copies
- adjust all alloc_lv_segment() callers to the new API
- add functions to retrieve the current data offset (needed for
  out-of-place reshaping space allocation) and the devices count
  from the kernel
- make libdm deptree code aware of reshape_len
- add LV flags for disk add/remove reshaping
- support import/export of the new 'struct lv_segment' members
- enhance lv_extend/_lv_reduce to cope with reshape_len
- add seg_is_*/segtype_is_* macros related to reshaping
- add target version check for reshaping
- grow rebuilds/writemostly bitmaps to 246 bit to support kernel maximal
- enhance libdm deptree code to support data_offset (out-of-place reshaping)
  and delta_disk (legs add/remove reshaping) target arguments

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978
23 files changed:
lib/activate/activate.c
lib/activate/activate.h
lib/activate/dev_manager.c
lib/format1/import-extents.c
lib/format_pool/import_export.c
lib/format_text/export.c
lib/format_text/flags.c
lib/format_text/import_vsn1.c
lib/metadata/lv.c
lib/metadata/lv_alloc.h
lib/metadata/lv_manip.c
lib/metadata/merge.c
lib/metadata/metadata-exported.h
lib/metadata/raid_manip.c
lib/metadata/segtype.c
lib/metadata/segtype.h
lib/metadata/snapshot_manip.c
lib/raid/raid.c
libdm/libdevmapper.h
libdm/libdm-common.h
libdm/libdm-deptree.c
libdm/libdm-targets.c
tools/lvconvert.c
This page took 0.042381 seconds and 5 git commands to generate.