1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
lvm2/lib
Jonathan Brassow dd0ee35378 cmirror: Adjust region size to work around CPG msg limit to avoid hang.
cmirror uses the CPG library to pass messages around the cluster and maintain
its bitmaps.  When a cluster mirror starts-up, it must send the current state
to any joining members - a checkpoint.  When mirrors are large (or the region
size is small), the bitmap size can exceed the message limit of the CPG
library.  When this happens, the CPG library returns CPG_ERR_TRY_AGAIN.
(This is also a bug in CPG, since the message will never be successfully sent.)

There is an outstanding bug (bug 682771) that is meant to lift this message
length restriction in CPG, but for now we work around the issue by increasing
the mirror region size.  This limits the size of the bitmap and avoids any
issues we would otherwise have around checkpointing.

Since this issue only affects cluster mirrors, the region size adjustments
are only made on cluster mirrors.  This patch handles cluster mirror issues
involving pvmove, lvconvert (from linear to mirror), and lvcreate.  It also
ensures that when users convert a VG from single-machine to clustered, any
mirrors with too many regions (i.e. a bitmap that would be too large to
properly checkpoint) are trapped.
2015-02-25 14:42:15 -06:00
..
activate thin: fix upgrade regression 2015-01-30 16:22:11 +01:00
cache lvmetad: Add fn to scan only foreign VGs. 2015-02-23 17:03:03 +00:00
cache_segtype cache: use writethrough cache_mode for older metadata 2015-01-29 12:05:58 +01:00
commands systemid: silently ignore foreign vgs unless named 2015-02-25 10:53:52 -06:00
config config: Rename allow_system_id to extra_system_ids. 2015-02-23 22:19:08 +00:00
datastruct cleanup: consolidate lv_layout and lv_role reporting 2014-08-25 16:14:40 +02:00
device cleanup: drop unused value assign 2015-02-19 14:43:25 +01:00
display lvm-string: Fix HYPEN typo. 2015-02-23 17:09:35 +00:00
error segtype: drop cmdcontex pointer 2014-10-30 23:58:49 +01:00
filters cleanup: drop unused header file 2015-02-19 14:44:04 +01:00
format1 lvm1: Reenable sys ID. 2015-02-23 23:03:52 +00:00
format_pool thin: simplify thin volume creation 2014-10-26 18:37:13 +01:00
format_text systemid: Fix access restrictions. 2015-02-23 23:19:36 +00:00
freeseg segtype: drop cmdcontex pointer 2014-10-30 23:58:49 +01:00
label debug: drop printing debug trace without labeler 2014-09-24 10:54:48 +02:00
locking locking: rename LCK_CONVERT 2014-11-18 16:50:49 +01:00
log vgextend: Use process_each_vg. 2015-02-13 14:58:51 +00:00
metadata cmirror: Adjust region size to work around CPG msg limit to avoid hang. 2015-02-25 14:42:15 -06:00
mirror cmirror: Adjust region size to work around CPG msg limit to avoid hang. 2015-02-25 14:42:15 -06:00
misc systemid: Require alphanumeric 1st character. 2015-02-23 19:47:03 +00:00
mm memory: disable check with valgrind pool build 2015-02-12 15:40:53 +01:00
properties report: add separate fields for PV/VG/LV attributes 2014-07-04 15:40:17 +02:00
raid segtype: add SEG_ONLY_EXCLUSIVE flag 2014-11-10 22:05:48 +01:00
replicator cleanup: drop default implementation 2014-10-24 16:39:31 +02:00
report lvm1: Reenable sys ID. 2015-02-23 23:03:52 +00:00
snapshot segtype: add SEG_ONLY_EXCLUSIVE flag 2014-11-10 22:05:48 +01:00
striped segtype: drop cmdcontex pointer 2014-10-30 23:58:49 +01:00
thin cleanup: add lv_is_error_when_full() macro 2015-01-20 14:52:06 +01:00
unknown segtype: drop cmdcontex pointer 2014-10-30 23:58:49 +01:00
uuid cleanup: drop unused define 2014-03-12 19:12:34 +01:00
zero cleanup: remove unused headers 2014-11-13 17:49:42 +01:00
Makefile.in configure: Look for valgrind.h independently of VALGRIND_POOLS. 2015-02-05 13:50:34 +01:00