Petr Rockai
c85222c461
Add an extra memlock_inc() to _remove_mirror_images to properly balance
...
reference counting (see code comment for details).
2009-11-18 18:23:46 +00:00
Jonathan Earl Brassow
a1bb606aab
I saw this in a bug report:
...
[root@xxxx-01 ~]# lvconvert -m 1 --corelog VG/cmirror
Unable to convert the log of inactive cluster mirror cmirror
I've tried to clean-up the message a little more, so the name
of the mirror stands out more while preserving the sense that
it's not a problem with the specific device, but the fact that
it is inactive that is causing the problem.
New msg:
Unable to convert the log of an inactive cluster mirror, cmirror
2009-10-14 14:55:44 +00:00
Alasdair Kergon
3d32c5f88b
Add percent_range to copy_percent too.
2009-10-01 01:04:27 +00:00
Alasdair Kergon
78ad1549a5
Introduce percent_range_t and centralise snapshot full/mirror in-sync checks.
2009-10-01 00:35:29 +00:00
Milan Broz
31f55a07db
Fix convert polling to ignore LV with different UUID.
...
When mirror convert polling is started (mainly as backgound process,
in lvchange -a y or in lvconvert itself) it tries to read VG
and LV identified by its name.
Unfortunatelly, the VG can have already different LV under the same name,
and various more or less funny things can happen (note that
_finish_lvconvert_mirror suspends the volume for example).
(the typical example is our testing script which continuously recreates
LVs under the same name in the same VG.)
This patch adds optional uuid parameter which helps to properly
select the monitoring object. For lvconvert polling it is set to LV UUID
and both _get_lvconvert_vg and _get_lvconvert_lv uses it to read proper VG/LV.
(In the pvmove case it is NULL, here we poll for physical volume name).
2009-06-01 14:43:27 +00:00
Alasdair Kergon
25a2e7b80e
Pre-release cleanups.
2009-05-21 03:04:52 +00:00
Milan Broz
82cf926094
Remove unneeded import parameter from lv_create_empty.
2009-05-13 21:28:31 +00:00
Milan Broz
59d8429cb3
Introduce lv_set_visible & lv_set_invisible and use lv_is_visible always.
...
The vg->lv_count parameter now includes always number of visible
logical volumes.
Note that virtual snapshot volume (snapshotX) is never visible,
but it is stored in metadata with visible flag.
2009-05-13 21:26:45 +00:00
Petr Rockai
e1ea382999
A more thorough PV equality test (that also copes better with MISSING_PVs) in
...
_is_mirror_image_removable.
2009-04-23 16:43:01 +00:00
Milan Broz
8f3fd69ffa
Move metadata backup call after vg_commit.
...
The backup() call store metadata from memory.
But in cluster backup() call performs
remote nodes metadata backup and it reads data from disk.
For metadata backup consistency,
patch moves all backup() calls after vg_commit.
(Moreover, some tools already do that this way.)
2009-04-21 14:31:57 +00:00
Milan Broz
6ce8f8d553
Fix mirror log convert validation question.
2009-04-10 09:53:42 +00:00
Milan Broz
e24f357c23
Fix memory pool leak.
...
Call the alloc_destory call always after finishing operation
with handle otherwise it will leak a memory pool.
Also fix return code in lv_extend.
2009-04-07 10:20:28 +00:00
Alasdair Kergon
81680dce3c
Fix last check-ins: seg can be NULL.
2009-02-28 20:04:24 +00:00
Milan Broz
6d1b3b5385
Calculate mirror log size instead of hardcoding 1 extent size.
...
It fails for 1k PE now.
Patch adds log_region_size into allocation habdle struct
and use it in _alloc_parallel_area() for proper log size calculation
instead of hardcoded 1 extent - which can fail.
Reproducer for incorrect log size calculation:
DEV=/dev/sd[bcd]
pvcreate $DEV
vgcreate -s 1k vg_test $DEV
lvcreate -m1 -L 12M -n mirr vg_test
https://bugzilla.redhat.com/show_bug.cgi?id=477040
The log size calculation is mostly copied from kernel code.
2008-12-19 15:24:52 +00:00
Alasdair Kergon
2c44337bd5
Right, a simple build (without options) is working again.
2008-11-03 22:14:30 +00:00
Alasdair Kergon
3935c3ecd6
In resume_mirror_images replace activate_lv with resume_lv as workaround.
...
(The resume has the side-effect of resuming all of the original
mirror's sub-lvs in addition to the new 'error' target middle layer.)
2008-10-17 10:50:14 +00:00
Alasdair Kergon
f6700b450e
remove unsed var
2008-09-19 04:30:02 +00:00
Alasdair Kergon
df6936c9e1
fix last patch return code
2008-09-19 00:20:39 +00:00
Alasdair Kergon
324e23b72d
Avoid shuffling remaining mirror images when removing one, retaining primary.
2008-09-18 19:56:50 +00:00
Alasdair Kergon
4bb7a2f523
Add missing LV error target activation in _remove_mirror_images.
2008-09-18 19:09:47 +00:00
Alasdair Kergon
6db4136358
Update validation of safe mirror log type conversions in lvconvert. (brassow)
2008-06-26 23:05:11 +00:00
Jim Meyering
ac27ef2593
Don't deref uninitialized log_lv upon failed mirror addition.
...
* mirror.c (add_mirror_images): Ensure that log_lv is initialized.
2008-06-13 12:15:55 +00:00
Milan Broz
5619c629f6
Add detection of clustered mirror log capability.
...
Currently only check for kernel module presence.
2008-04-07 10:23:47 +00:00
Alasdair Kergon
60be88a0a6
Fix resetting of MIRROR_IMAGE and VISIBLE_LV after removal of LV.
2008-02-22 13:28:29 +00:00
Alasdair Kergon
4e9083db10
Fix mirror log name construction during lvconvert. (2.02.30)
...
Make monitor_dev_for_events recurse through the stack of LVs.
Clean up some more compiler warnings.
Add mirror names test script.
2008-01-31 12:19:36 +00:00
Alasdair Kergon
67cdbd7e4d
Some whitespace tidy-ups.
2008-01-30 14:00:02 +00:00
Alasdair Kergon
c51b9fff19
Use stack return macros throughout.
2008-01-30 13:19:47 +00:00
Alasdair Kergon
3d13b4677d
Refactor mirror log attachment code.
2008-01-26 00:25:04 +00:00
Alasdair Kergon
0e0a6eb6cf
Fix lvcreate --nosync not to wait for non-happening sync.
2008-01-18 22:02:37 +00:00
Alasdair Kergon
7644c656d8
add lvconvert messages
2008-01-18 22:00:46 +00:00
Alasdair Kergon
0c06de632a
pre-release review cleanups
2008-01-17 17:17:09 +00:00
Alasdair Kergon
db24ceca33
rename lv_remap_error
2008-01-17 13:54:05 +00:00
Alasdair Kergon
58a63ae973
mirror log stuff
2008-01-17 13:37:51 +00:00
Alasdair Kergon
5cf3c51857
lvconvert/vgreduce fixes
2008-01-17 13:13:54 +00:00
Alasdair Kergon
ba4d6ad8ea
adjust mirror log error message
2008-01-16 19:50:23 +00:00
Alasdair Kergon
17431cddac
cope with stacked LVs as well as PVs when deciding which bits of mirrors to remove
2008-01-16 19:38:39 +00:00
Alasdair Kergon
876003dc44
allow a mirror to contain only one mimage
2008-01-16 19:18:51 +00:00
Alasdair Kergon
171b53fb25
export find_temporary_mirror()
2008-01-16 19:13:51 +00:00
Alasdair Kergon
e344497277
move removable_pvs checking
2008-01-16 19:11:39 +00:00
Alasdair Kergon
7d18ea22eb
reorder funcs
2008-01-16 19:09:35 +00:00
Alasdair Kergon
72baf0c345
Maintain lists of stacked LV segments using each LV.
2008-01-16 19:00:59 +00:00
Alasdair Kergon
06ea7eaa27
Various lvconvert/polldaemon-related fixes from NEC. See lvm-devel
...
for original patches & explanations.
2008-01-10 18:35:51 +00:00
Alasdair Kergon
ba0c495db7
lvconvert uses polldaemon now
2007-12-22 12:13:29 +00:00
Alasdair Kergon
b9c69aa63a
a few more changes/fixes to recent code
2007-12-22 02:13:00 +00:00
Alasdair Kergon
1620864c35
more fixes
2007-12-20 23:12:27 +00:00
Alasdair Kergon
2b3dda7f72
various cleanups in recent patches
2007-12-20 22:37:42 +00:00
Alasdair Kergon
31e9db2690
stacked mirror support (incomplete)
2007-12-20 18:55:46 +00:00
Alasdair Kergon
a69ab65278
Major restructuring of pvmove and lvconvert layer manipulation code
2007-12-20 15:42:55 +00:00
Alasdair Kergon
3da4613d7b
Start refactoring pvmove allocation code.
2007-11-22 13:57:21 +00:00
Dave Wysochanski
1b8de4cb25
Add pv_dev_name() to access PV device name.
...
Patch by Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
2007-10-12 14:29:32 +00:00
Dave Wysochanski
9ea1d647af
Non-functional change - refactor lv_create_empty().
...
Remove struct format_instance param - we can safely obtain
this from vg->fid inside the function.
2007-10-11 19:20:38 +00:00
Jonathan Earl Brassow
a2cb3d17a7
When mirrors are created with the --nosync option, a status flag
...
(MIRROR_NOTSYNCED) is added to the LVM metadata. This flag is
not cleared when converting to linear. Subsequently, if you
up-convert the linear to a mirror, the flag remains - even though
an up-convert will always force a complete resync.
2007-08-29 20:19:11 +00:00
Alasdair Kergon
21bc366486
Clean up numerous compiler warnings that crept in recently.
...
Remove several unused parameters from _allocate().
2007-08-22 14:38:18 +00:00
Alasdair Kergon
be6845999b
Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1.
2007-08-20 20:55:30 +00:00
Petr Rockai
e7ddf4168d
Make warnings go to stderr. Change log_warn to that effect, log_print
...
continues to send messages to stdout.
2007-06-28 17:33:44 +00:00
Milan Broz
5d06515c0b
Fix creation and conversion of mirrors with tags.
2007-03-26 16:10:10 +00:00
Alasdair Kergon
6c48fe7433
Fix mirror segment removal to use temporary error segment.
2006-11-30 17:52:47 +00:00
Alasdair Kergon
be0e37715e
fix cast
2006-11-10 20:15:10 +00:00
Alasdair Kergon
f96cde8cbd
Fix adjusted_mirror_region_size() for 64-bit size.
2006-11-10 19:35:03 +00:00
Alasdair Kergon
7c5ec12630
Add segment parameter to target_present functions.
2006-10-18 18:01:53 +00:00
Alasdair Kergon
13ba0f9492
Fix lvconvert mirror change case detection logic.
...
Fix mirror log detachment so it correctly becomes a standalone LV.
2006-09-19 19:13:41 +00:00
Alasdair Kergon
0550c1b618
Move lvm_snprintf into libdevmapper.
2006-08-21 12:54:53 +00:00
Alasdair Kergon
8b0d546f4c
Fix locking for mimage removal.
2006-07-20 20:37:10 +00:00
Alasdair Kergon
8c4e429574
fix dev->device
2006-05-12 19:47:40 +00:00
Alasdair Kergon
aeb2c277a8
Add mirror log fault-handling policy.
2006-05-11 19:45:53 +00:00
Alasdair Kergon
526a3c2186
Propagate nosync flag around cluster.
2006-05-11 19:05:21 +00:00
Alasdair Kergon
532dae4854
Allow vgreduce to handle mirror log failures.
2006-05-11 19:01:11 +00:00
Alasdair Kergon
72b2cb613a
Make SIZE_SHORT the default for display_size().
...
Fix some memory leaks in error paths found by coverity.
Use C99 struct initialisers.
Move DEFS into configure.h.
Clean-ups to remove miscellaneous compiler warnings.
2006-05-09 21:23:51 +00:00
Alasdair Kergon
e2619d9ec1
more lvconvert mirror code
2005-11-29 18:20:23 +00:00
Alasdair Kergon
5f4b2acfe5
Replacement activation code. [Don't use this yet!]
2005-11-08 22:52:26 +00:00
Alasdair Kergon
1817dbaf60
more mirror library functions
2005-10-28 12:48:50 +00:00
Alasdair Kergon
e6c20c6100
Fix new mirror_seg pointer.
2005-10-27 21:51:28 +00:00
Alasdair Kergon
5727a8fa85
Add mirror_seg pointer to lv_segment struct. (incomplete & untested)
2005-10-27 19:58:22 +00:00
Alasdair Kergon
2262b32057
Use hash, bitset, malloc, pool from libdevmapper.
2005-10-16 23:03:59 +00:00
Alasdair Kergon
bfd31e94d5
Factor out adjusted_mirror_region_size()
2005-08-12 19:23:08 +00:00
Alasdair Kergon
5e947dac48
Various allocation-related pvmove fixes.
2005-06-14 17:54:48 +00:00
Alasdair Kergon
8b80d2a57c
Make VG name restrictions consistent.
2005-06-06 18:16:33 +00:00
Alasdair Kergon
1a1f3d3efe
Introduce lvconvert. So far only removes mirror images.
2005-06-06 17:12:08 +00:00
Alasdair Kergon
8211a13ce0
Always insert an intermediate layer for mirrors.
...
Suppress hidden LVs from reports unless --all is given.
Use square brackets for hidden LVs in reports.
Centralise restrictions on LV names.
2005-06-03 14:49:51 +00:00
Alasdair Kergon
60f13f01d2
Basic support for mirrors.
2005-06-01 16:51:55 +00:00
Alasdair Kergon
32469fb25c
lv_reduce tidying.
...
Remove some unnecessary parameters.
Introduce seg_is macros.
2005-05-09 16:59:01 +00:00
Alasdair Kergon
15db9fcfbf
Reinstate full PV size when removing from VG.
...
Support loopfiles for testing.
Complete the pv_segment support.
2005-05-03 17:28:23 +00:00
Alasdair Kergon
e40d124e14
set_lv_segment_area_pv/lv
2005-04-22 15:43:02 +00:00
Alasdair Kergon
c4ddb31abf
Rename old segtypes files to segtype.
2004-09-16 18:40:56 +00:00
Alasdair Kergon
68eb9e3b1f
Test for incompatible format/segtype combinations in lv_extend.
2004-09-14 13:56:18 +00:00
Alasdair Kergon
392b28ec5c
Support for PE ranges in pvmove source PV.
2004-08-17 22:09:02 +00:00
Alasdair Kergon
abaf083ddc
Additional kernel target checks before pvmove & snapshot creation.
2004-05-24 20:51:56 +00:00
Alasdair Kergon
736e31313c
comments
2004-05-05 18:35:04 +00:00
Alasdair Kergon
cb919290c2
Separate out polldaemon.
2004-05-05 17:56:20 +00:00
Alasdair Kergon
4922197a33
Begin to separate out segment types.
2004-05-04 21:25:57 +00:00
Alasdair Kergon
6606c3ae81
Update copyright notices.
2004-03-30 19:35:44 +00:00
Alasdair Kergon
914c97239f
Another sync point - numerous fixes & clean ups.
2003-07-04 22:34:56 +00:00
Alasdair Kergon
46a68b7dd6
move functions
2003-05-06 12:22:24 +00:00