Alasdair Kergon
f17f6814c9
Add --corelog to lvcreate and lvconvert.
2006-05-11 18:54:04 +00:00
Alasdair Kergon
898e6f8e41
Add mirror_library description to example.conf.
...
More compile-time cleanup.
2006-05-11 17:58:58 +00:00
Alasdair Kergon
2c7fbadeef
more coverity fixes
2006-05-10 17:49:25 +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
98513c2729
fix stripesize const
2006-05-02 07:14:43 +00:00
Alasdair Kergon
12de747d3a
Improve stripe size validation.
...
Increase maximum stripe size limit to physical extent size for lvm2 metadata.
2006-04-29 22:08:43 +00:00
Alasdair Kergon
6aa17fe8d2
remove redundant list_init
2006-04-27 17:58:48 +00:00
Alasdair Kergon
26b2524996
Invalidate cache if composition of VG changed externally.
2006-04-21 19:12:41 +00:00
Alasdair Kergon
8a2fc58645
Check for libsepol.
...
Add some cflow & scope support.
Separate out DEFS from CFLAGS.
Remove inlines and use unique function names.
2006-04-19 15:33:07 +00:00
Alasdair Kergon
dbd3026f8a
vgrename accepts vgid and exported VG.
2006-04-13 21:08:29 +00:00
Alasdair Kergon
a5fe5a7cdd
Fix vgexport/vgimport to set/reset PV exported flag so pv_attr is correct.
...
Add vgid to struct physical_volume and pass with vg_name to some functions.
2006-04-12 21:23:04 +00:00
Alasdair Kergon
e8db70239e
If two or more VGs are found with the same name, use one that is not exported.
2006-04-12 17:54:11 +00:00
Alasdair Kergon
ace652e673
lv_is_visible()
2006-04-07 17:41:56 +00:00
Alasdair Kergon
2cd0aa727a
Introduce origin_from_cow()
2006-04-06 13:39:16 +00:00
Alasdair Kergon
e64934773b
Fix lvscan snapshot full display.
...
dmeventd fixes
2005-12-08 17:49:34 +00:00
Alasdair Kergon
15d91f5a68
More dmeventd support.
2005-12-02 20:35:07 +00:00
Alasdair Kergon
e2619d9ec1
more lvconvert mirror code
2005-11-29 18:20:23 +00:00
Alasdair Kergon
c27920b1ca
Determine parallel PVs to avoid with ALLOC_NORMAL allocation. (untested)
2005-11-28 20:01:00 +00:00
Alasdair Kergon
e3195fecf1
alloc avoids parallel pvs when supplied
2005-11-24 21:23:55 +00:00
Alasdair Kergon
c0a33e10ae
preparation for parallel_areas changes to allocation code
2005-11-24 20:58:44 +00:00
Alasdair Kergon
2fb492f665
Fix lv_empty.
2005-11-24 18:46:51 +00:00
Alasdair Kergon
c00f802202
_find_parallel_space -> _find_segment_space
2005-11-24 18:00:47 +00:00
Alasdair Kergon
b79c897ea1
Extend allocation areas to avoid overflow with contiguous with other PVs.
...
Another pvmove fix.
2005-11-10 14:45:39 +00:00
Alasdair Kergon
ad6b0ebb73
rename deptree
2005-11-09 13:08:41 +00:00
Alasdair Kergon
5f4b2acfe5
Replacement activation code. [Don't use this yet!]
2005-11-08 22:52:26 +00:00
Alasdair Kergon
7a5933259f
Clear up precommitted metadata better on disk after use.
...
[Some activation-related features will stop working for a while now.
Some types of activation are getting split into two steps, with the
first step using the precommitted metadata.]
2005-10-31 20:15:28 +00:00
Alasdair Kergon
faf07d358f
revert unfinished change
2005-10-31 15:46:29 +00:00
Alasdair Kergon
3bf5f6f575
A pvresize implementation (Zak Kipling).
2005-10-31 02:37:29 +00:00
Alasdair Kergon
1817dbaf60
more mirror library functions
2005-10-28 12:48:50 +00:00
Alasdair Kergon
d31718600b
Fix contiguous allocation without preceding segments.
2005-10-27 22:20:33 +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
352a99b95a
Use dm_is_dm_major instead of local copy.
...
Allow mapped devices to be used as PVs safely.
2005-10-25 19:08:21 +00:00
Alasdair Kergon
78aa12e1dc
Fix automatic text metadata buffer expansion (using macro). [stdarg usage bug]
...
Cache formatted text metadata buffer between metadata area writes.
[improves write performance when lots of metadata area clones]
2005-10-23 00:14:48 +00:00
Alasdair Kergon
06820362bd
Split lv_segment_area from lv_segment to permit extension.
2005-10-18 13:43:40 +00:00
Alasdair Kergon
2262b32057
Use hash, bitset, malloc, pool from libdevmapper.
2005-10-16 23:03:59 +00:00
Alasdair Kergon
07d318310b
Prepare tools to support clustered mirrors.
2005-08-14 23:18:28 +00:00
Alasdair Kergon
bfd31e94d5
Factor out adjusted_mirror_region_size()
2005-08-12 19:23:08 +00:00
Alasdair Kergon
0440a206dc
Fix pvmove segment splitting.
...
Abstract vg_validate.
2005-07-12 19:40:59 +00:00
Alasdair Kergon
10b44b2d4a
Only make one attempt at contiguous allocation.
2005-07-12 14:50:45 +00:00
Alasdair Kergon
b6d69d0c1e
missing fn defs
2005-06-14 18:22:31 +00:00
Alasdair Kergon
5e947dac48
Various allocation-related pvmove fixes.
2005-06-14 17:54:48 +00:00
Alasdair Kergon
5748cb17f8
Remove hard-coded 64k text metadata writing restriction.
2005-06-07 11:00:07 +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
ffb0e5387b
Allow mirror images to be resized.
2005-06-03 19:48:19 +00:00
Alasdair Kergon
c77de77790
Allow mirror images to have more than one segment.
2005-06-03 18:07:13 +00:00
Alasdair Kergon
5c9a54e480
lvremove mirror images
2005-06-03 15:44:12 +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
21ca3b1227
Fix vgmerge to handle duplicate LVIDs.
2005-05-19 16:48:51 +00:00
Alasdair Kergon
e7c47a5dad
Start merging cloned allocation functions.
2005-05-17 13:49:45 +00:00
Alasdair Kergon
0888dc43cf
Fix contiguous allocations with linear.
2005-05-11 16:46:59 +00:00
Alasdair Kergon
17ae61cce5
Cope with missing format1 PVs again.
2005-05-11 15:04:06 +00:00
Alasdair Kergon
7f2def9e6d
Remove lists of free PV segments.
...
Simplify pv_maps code and remove slow bitset algorithm.
2005-05-11 15:02:49 +00:00
Alasdair Kergon
bbdd74e0fa
fix compiler warnings
2005-05-09 17:41:36 +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
22c1a65f74
extend alloc_lv_segment
2005-04-22 15:44:00 +00:00
Alasdair Kergon
e40d124e14
set_lv_segment_area_pv/lv
2005-04-22 15:43:02 +00:00
Alasdair Kergon
41d7e56a02
initial pv_segment defns
2005-04-19 20:52:35 +00:00
Alasdair Kergon
cc39455372
_copy_pv -> int
2005-04-19 20:44:21 +00:00
Alasdair Kergon
66278a80b1
vgchange --physicalextentsize (but only if it's an exact fit - may need to
...
use pvmove first)
2005-04-18 14:56:42 +00:00
Alasdair Kergon
f1379332dc
extract compose_log_line
2005-04-17 23:59:04 +00:00
Alasdair Kergon
ef9188078d
get_pv_from_vg_by_id
2005-04-17 23:57:44 +00:00
Alasdair Kergon
072893aabd
Internal snapshot code restructuring.
2005-04-07 12:39:44 +00:00
Alasdair Kergon
3a6edbed16
add lvid to lv_create_empty
2005-04-07 12:29:46 +00:00
Alasdair Kergon
69b2cc0ee0
Remove unused internal non-persistent snapshot option.
2005-04-07 12:27:57 +00:00
Alasdair Kergon
90395b8d53
store snapshot id as lvid internally
2005-04-07 12:24:48 +00:00
Alasdair Kergon
367b9cb1f5
Move from 2-step to 3-step on-disk metadata commit.
2005-04-06 18:59:55 +00:00
Alasdair Kergon
e5b836d2d6
Improve detection of external changes affecting internal cache.
2005-03-21 22:40:35 +00:00
Alasdair Kergon
b9565b406a
Cope with new devices appearing by rescanning /dev if a uuid can't be found.
2005-03-08 13:46:17 +00:00
Alasdair Kergon
52f9afec22
Always fail if random id generation fails.
2005-01-20 18:11:53 +00:00
Alasdair Kergon
c45a8a2c1c
Store snapshot and origin sizes separately.
2005-01-19 17:19:39 +00:00
Alasdair Kergon
73543ee70d
Fix vgscan metadata auto-correction.
2005-01-17 18:24:28 +00:00
Alasdair Kergon
bd46a496c7
pool debugging
2004-11-23 18:23:23 +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
eabaa3398b
Change alloc_areas to pe_ranges and allow suppression of availability checks.
2004-08-17 21:55:23 +00:00
Alasdair Kergon
c29d24650d
Display all filtered devices, not just PVs, with pvs -a.
2004-06-19 19:27:00 +00:00
Alasdair Kergon
abaf083ddc
Additional kernel target checks before pvmove & snapshot creation.
2004-05-24 20:51:56 +00:00
Alasdair Kergon
bfa258b3e7
Set area_count within alloc_lv_segment
2004-05-24 17:30:00 +00:00
Alasdair Kergon
a0a23eff4b
Rename allocation policies; add --alloc to cmdline; LV inherits from VG.
2004-05-18 22:12:53 +00:00
Alasdair Kergon
1832f310ac
Add --type to lvcreate/resize.
...
Add virtual segment types, zero and error.
A large sparse device can be constructed as a writeable snapshot of a large
zero device.
2004-05-11 16:01:58 +00:00
Alasdair Kergon
1d2ebf6281
Push lv_create & alloc policy up to tool level.
2004-05-05 18:49:21 +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
5668c1abad
move find_pv_by_name to lib
2004-05-05 11:04:28 +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
93af0a4a51
indent
2004-03-26 21:07:30 +00:00
Alasdair Kergon
2da02bbd16
move lock_lvs; add lock memlock code
2004-03-26 20:49:35 +00:00
Alasdair Kergon
ff6d21103b
LV allocation variable renaming
2004-03-26 20:35:14 +00:00
Alasdair Kergon
68df28296d
Fix lvreduce pv extents calculations.
2004-03-19 16:19:41 +00:00
Alasdair Kergon
cf6dd25126
tagging
2004-03-08 17:19:15 +00:00
Alasdair Kergon
12bb377f9b
Default to unlimited number of LVs/PVs in lvm2 format.
2003-11-06 20:33:34 +00:00
Alasdair Kergon
6078f63801
Prevent PV allocation bit getting changed for format_text orphans.
2003-11-06 20:15:13 +00:00
Alasdair Kergon
fee16e1049
Cope better with LVM1 minor numbers & LV numbers.
2003-11-06 16:58:38 +00:00
Alasdair Kergon
c7ee8edc33
relax a scanning restriction
2003-10-15 20:10:11 +00:00
Alasdair Kergon
842a35c7ca
Remove incorrect comments.
2003-09-16 16:23:21 +00:00
Alasdair Kergon
85c1926171
Improve segment merge/split code.
2003-09-15 18:22:50 +00:00
Alasdair Kergon
f1e6be4be1
Additional validation of LV segments read from metadata. [HM]
2003-09-01 19:55:16 +00:00
Alasdair Kergon
8fd3c219fd
Fix unsafe list iteration in segment merge code. [HM]
2003-08-27 15:30:39 +00:00
Alasdair Kergon
29ebccc3e2
Cope better when format functions are missing.
2003-08-26 21:12:06 +00:00
Alasdair Kergon
10f57523d9
Fix vgimport fix to work outside debug mode.
2003-07-15 01:26:24 +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
Alasdair Kergon
44c319cf0d
move fields
2003-05-06 12:06:02 +00:00
Alasdair Kergon
97d344e2cb
basic pvmove support
2003-04-30 15:23:43 +00:00
Alasdair Kergon
eb8ae8e837
Update segment area length when merging consecutive segments.
2003-04-24 22:46:47 +00:00
Alasdair Kergon
b8c919b402
o Metadata area struct change.
...
o Support physical extent restrictions on PV lists for allocations
e.g. lvcreate -l 200 vg1 /dev/sda1:100-199:300-399
2003-04-24 22:23:24 +00:00
Alasdair Kergon
010c07de20
Improve message for pvcreate of empty device.
2003-04-22 16:09:11 +00:00
Alasdair Kergon
27f364af95
Allow for specification of major number as well as minor.
2003-04-02 19:14:43 +00:00
Alasdair Kergon
26e7f2e0c4
Tidy various pre-processing incl. making libdl optional.
2003-03-24 18:08:53 +00:00
Alasdair Kergon
7e4867f743
LV name validation
2003-02-03 20:09:58 +00:00
Alasdair Kergon
a421f74371
vgreduce --removemissing to remove missing PVs & deps & make VG consistent
2003-01-17 21:04:26 +00:00
Alasdair Kergon
8ef2b021ed
Default stripesize 64k & config file setting for it;
...
Clear many compiler warnings (i386) & associated bugs - hopefully without
introducing too many new bugs:-) (Same exercise required for other archs.)
Default compilation has optimisation - or else use ./configure --enable-debug
2002-12-19 23:25:55 +00:00
Alasdair Kergon
8a95d67e26
Maintain snapshot_count correctly.
2002-12-05 22:30:39 +00:00
Alasdair Kergon
5a52dca9c2
Some new features.
2002-11-18 14:04:08 +00:00
Joe Thornber
7cc602c800
i) Add the VISIBLE flag to the text format. (Other changes are pending
...
for lib/activate.)
2002-07-11 15:28:49 +00:00
Joe Thornber
291906a208
i) Added a little macro to aid defining the status flags.
2002-07-11 14:36:45 +00:00
Joe Thornber
097d49e73d
i) There's now a seperate field in struct logical_volume that stores the
...
allocation policy. This can currently take one of three values:
typedef enum {
ALLOC_NEXT_FREE,
ALLOC_STRICT,
ALLOC_CONTIGUOUS
} alloc_policy_t;
Notice that 'SIMPLE' has turned into the slightly more meaningful NEXT_FREE.
ii) Put code into display.[hc] for converting one of these enums to a
text representation and back again.
ii) Updated the text format so this also has the alloc_policy field.
2002-07-11 14:21:49 +00:00
Alasdair Kergon
70d6838fb0
Tidy
2002-05-31 19:28:37 +00:00
Alasdair Kergon
61e9603be5
Remember to update VG free_count when reducing size of an LV.
2002-05-30 16:08:19 +00:00
Alasdair Kergon
031079703f
Rewrite missing/corrupt metadata in more cases.
2002-05-13 12:38:54 +00:00
Alasdair Kergon
64ad493eac
Remove a no-op.
2002-05-09 12:03:55 +00:00
AJ Lewis
fccc39a3a7
o Added function find_snapshots to snapshot_manip.c that returns a list
...
of snapshots whose origin is the lv passed in.
o Used this new function to make lvdisplay properly display all snapshots
attached to a origin.
2002-05-08 16:57:46 +00:00
Alasdair Kergon
6b4c9ff740
Some partial VG support with format_text.
2002-04-30 17:12:37 +00:00
Alasdair Kergon
e1f93d52e3
get_vgs must check for text format VGs when no lvm1 format VGs present
2002-04-30 12:27:13 +00:00
Alasdair Kergon
25b733809a
Merge with text format branch.
...
Lots of changes/very little testing so far => there'll be bugs!
Use 'vgcreate -M text' to create a volume group with its metadata stored
in text files. Text format metadata changes should be reasonably atomic,
with a (basic) automatic recovery mechanism if the system crashes while a
change is in progress.
Add a metadata section to lvm.conf to specify multiple directories if
you want (recommended) to keep multiple copies of the metadata (eg on
different filesystems).
e.g. metadata {
dirs = ["/etc/lvm/metadata1","/usr/local/lvm/metadata2"]
}
Plenty of refinements still in the pipeline.
2002-04-24 18:20:51 +00:00
Alasdair Kergon
15c325f06a
o Use new LCK_HOLD flag to indicate whether lock should be held on return
...
from lock_vol() - otherwise it now attempts to acquire the lock and then
immediately releases it.
o Extend the id field in struct logical_volume to hold VG uuid + LV uuid
for format1. This unique lvid can be used directly when calling lock_vol().
o Add the VG uuid to vgcache to make VG uuid lookups possible. (Another
step towards using them instead of VG names internally.)
2002-03-05 20:03:09 +00:00
Alasdair Kergon
413cc9189e
Begin conversion so LV id is passed to activation unit instead of
...
struct logical_volume.
2002-02-25 12:56:16 +00:00
Joe Thornber
7b9e789f9c
o Remove the vg argument from find_cow
2002-02-25 11:55:39 +00:00
Heinz Mauelshagen
257ec146b2
Avoid ambigous volume_group argument in vg_add_snapshot()
2002-02-21 18:31:48 +00:00
Joe Thornber
0e32e054df
o add find_cow function.
2002-02-21 10:16:33 +00:00
Alasdair Kergon
b6afcf6458
Remove VG arg from lv_is_cow() and lv_is_origin() - use lv->vg instead.
2002-02-20 19:04:55 +00:00
Alasdair Kergon
a45f546fe0
o Use 'pvcreate --setphysicalvolumesize' with no short form (instead of -s)
...
and add severe warning if it's used to make a device seem bigger than
it really is. This is not an option people should be using as it
breaks metadata integrity.
o Use uint64_t throughout (rather than unsigned long long)
o Convert a few messages that contain pathnames into the more common form:
pathname: message
2002-02-20 18:29:30 +00:00
Heinz Mauelshagen
e1d93eb457
Second path on "pvcreate -s"
2002-02-15 14:33:59 +00:00
Heinz Mauelshagen
f48d3bcbd0
First cut on "pvcreate -s"
2002-02-15 01:26:16 +00:00
Joe Thornber
e56598a84d
o Initialise the snapshot list properly in vgcreate.
2002-02-14 15:06:24 +00:00
Joe Thornber
0a9f8bcf97
o First pass at format1 snapshot support.
2002-02-13 11:43:29 +00:00
Joe Thornber
7d68b08028
o First changes to add snapshot support.
...
I'm taking a different route from LVM1 here in that snapshots are a
seperate entity from the logical volumes, I think of them as an
application of an LV (or two lvs rather). As such there is a list of
snapshots held against the vg, and there is *not* a SNAPSHOT, or
SHAPSHOT_ORG flag in lv->status.
2002-02-12 16:31:31 +00:00
Alasdair Kergon
60274aba6e
Preparation for an LVM2 liblvm - pass cmd_context into each tool and
...
link some globals that the tools need into that structure.
2002-02-11 20:50:53 +00:00
Joe Thornber
e74999af51
o Add cmd_line field to struct cmd_context
...
o Text format now has a description and time field at the top level.
o archiving and backup set the description appropriately. eg,
for an archive:
description = "Created *before* executing 'lvextend test_vg/lvol0 -l +1'."
creation_time = 1013166332
for a backup:
description = "Created *after* executing 'lvextend test_vg/lvol0 -l +1'."
creation_time = 1013166332
This is preparing the way for a simple vgcfgundo command.
2002-02-08 11:13:47 +00:00
Alasdair Kergon
812c699c8d
Basic support for persistent minor numbers;
...
slightly different from the current LVM1 method.
lvcreate --persistent y --minor 10 (to specify when created)
lvchange --persistent n (to turn off)
lvchange --persistent y --minor 11 (to change)
--persistent uses a new LV status flag stored on disk
minor number is stored on disk the same way as LVM1 does
(but major number stored is 0; any LVM1 major/minor setting gets lost)
lvchange -ay --minor 12 (to activate using minor 12, regardless of the
on-disk setting, which doesn't get changed)
--minor == -m
--persistent == -M
2002-02-01 17:54:39 +00:00
Alasdair Kergon
851866d2fc
Allocate fixed space for vg->system_id when vg is created, instead of
...
dynamically.
2002-01-30 12:47:29 +00:00
Alasdair Kergon
f53c6aa66e
o Basic support for exporting (but importing not completed yet).
...
o When volume group does not have write flag set, prevent changes to it.
o Preparation for partial activation (not completed yet).
2002-01-29 17:23:33 +00:00
Joe Thornber
4b2ec1929a
o There were some alignment problems with pool-debug which I've resolved
...
by allocating the data block with an additional dbg_malloc.
o Added an assertion to check that no one is requesting alternate
alignment for memory allocated from pool. I can't see us needing this
for LVM2.
2002-01-28 09:16:09 +00:00
Alasdair Kergon
1176eb2597
Tweak some error message levels.
2002-01-27 21:30:47 +00:00