[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[lvm-devel] [PATCH lvconvert 0/6] Refactoring lvconvert mirror


This patchset refactors lvconvert mirror.
The patches are applicable on top of the pvmove refactoring patches.

I would like to know whether this changes are acceptable.
I guess there might be other needs for layer insertion/removal
APIs. Comments are welcome.
If they looks ok, I'll convert add-mirror-to-mirror patches based
on this.

The patches add following APIs:
  - lv_add_mirrors(), lv_remove_mirrors()
      Generic APIs for lvconvert mirror.
      Having 2 modes of conversion: MIRROR_BY_SEG and MIRROR_BY_LV.
      MIRROR_BY_LV is for the current version of lvconvert,
      i.e. mirroring by mimage LVs.
      MIRROR_BY_SEG is for the current version of pvmove,
      i.e. mirroring segment by segment.
  - add_mirror_images()
      Add mirrors (mimage LVs) to LV.
      The counter part of existing remove_mirror_images().
      Wrapped by lv_add_mirrors().
  - add_mirror_log(), remove_mirror_log()
      Simplified version of the APIs specific to add/remove disk log.
  - lv_mirror_count()
      Returns the number of mirrors
  - insert_layer_for_lv(), remove_layer_from_lv()
      Insert a layer on top of the LV and remove it.

Then, lvconvert, lvcreate and pvmove are converted to use them.

The patchset also includes an experimental patch to allow
  - lvcreate/lvconvert to create segment-by-segment mirrored LV
  - pvmove to use disk log

[1/6] add insert_layer_for_lv() / remove_layer_from_lv()
[2/6] add add_mirror_images(), {add,remove}_mirror_log()
[3/6] change lvconvert to use the new APIs
[4/6] change lvcreate to use the new APIs
[5/6] remove unused mirror functions
[6/6] add and convert tools to use lv_{add,remove}_mirrors()
[Appendix] experimental: pvmove with disk log and seg-by-seg mirror LV

Jun'ichi Nomura, NEC Corporation of America

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]