Alasdair Kergon
4b52511f50
fix last commit
2006-05-10 17:51:02 +00:00
Alasdair Kergon
2c7fbadeef
more coverity fixes
2006-05-10 17:49:25 +00:00
Alasdair Kergon
eba586f053
Fix uuid_from_num() buffer overrun.
2006-05-10 16:42:03 +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
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
16959f2f01
terminate vgid in debug mesg
2006-04-21 15:37:08 +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
2ab16287e6
When choosing between identically-named VGs, also consider creation_host.
2006-04-13 17:32:24 +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
5dbc1f263a
tidy
2006-04-11 19:09:55 +00:00
Alasdair Kergon
f084e627cc
When scanning, also record whether or not VG is exported.
2006-04-11 17:42:15 +00:00
Alasdair Kergon
f9c232c2ee
Use lvmcache_update_vgname_and_id throughout.
2006-04-11 16:00:26 +00:00
Alasdair Kergon
cced28dac3
Whenever vgname is captured, also capture vgid.
2006-04-11 13:55:59 +00:00
Alasdair Kergon
a14aa9d8c3
Capture vgid in more places.
2006-04-10 22:09:00 +00:00
Alasdair Kergon
d6207798e6
Fix archive file expiration.
2006-03-07 15:43:05 +00:00
Alasdair Kergon
2b367220f3
precommitted flag
2005-10-31 20:18:50 +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
3bf5f6f575
A pvresize implementation (Zak Kipling).
2005-10-31 02:37:29 +00:00
Alasdair Kergon
e6c20c6100
Fix new mirror_seg pointer.
2005-10-27 21:51:28 +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
2262b32057
Use hash, bitset, malloc, pool from libdevmapper.
2005-10-16 23:03:59 +00:00
Alasdair Kergon
40ec1e8a36
Suppress fsync() error message on filesystems that don't support it.
2005-09-01 18:37:22 +00:00
Alasdair Kergon
07d318310b
Prepare tools to support clustered mirrors.
2005-08-14 23:18:28 +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
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
3f910647c3
Fix mem allocs after archiver code move.
2005-05-24 17:37:39 +00:00
Alasdair Kergon
7ac8c2389f
Move archiver code from tools into library.
2005-05-17 13:46:38 +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
32469fb25c
lv_reduce tidying.
...
Remove some unnecessary parameters.
Introduce seg_is macros.
2005-05-09 16:59:01 +00:00
Alasdair Kergon
abe198c0e8
Don't create backup and archive dirs till needed.
2005-05-03 17:31:56 +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
c54a940540
Initial pv_segment code.
2005-04-19 20:58:25 +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
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
9d1db8278a
_vg_posn -> _find_vg_rlocn
2005-04-06 16:35:33 +00:00
Alasdair Kergon
e5b836d2d6
Improve detection of external changes affecting internal cache.
2005-03-21 22:40:35 +00:00
Alasdair Kergon
7e0b7fd0e5
Avoid some compiler warnings.
2005-03-10 22:34:17 +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
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
19d1e7102c
Write log message when each segtype/format gets initialised.
2004-09-14 17:37:51 +00:00
Alasdair Kergon
30bab85be1
Fix rounding of large displayed sizes.
2004-06-07 15:22:43 +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
fc52c6d5dd
lvm2 format sets unlimited_vols format flag.
2004-05-05 18:17:48 +00:00
Alasdair Kergon
ea601b75e2
Internal-only metadata flag support.
2004-05-05 18:15:47 +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
25579907fc
Support tagged config files.
2004-05-04 18:28:15 +00:00
Alasdair Kergon
6606c3ae81
Update copyright notices.
2004-03-30 19:35:44 +00:00
Alasdair Kergon
814643d8a2
rename config file vars & always use / as separator
2004-03-08 18:28:45 +00:00
Alasdair Kergon
cf6dd25126
tagging
2004-03-08 17:19:15 +00:00
Alasdair Kergon
ada0dc4234
Prevent creation of MDA bigger than disk.
2003-10-15 20:06:37 +00:00
Alasdair Kergon
aa37899857
Extract some common functions.
2003-09-17 20:35:57 +00:00
Alasdair Kergon
85c1926171
Improve segment merge/split code.
2003-09-15 18:22:50 +00:00
Alasdair Kergon
96bea84664
vgcfgrestore -l lists backup file too
2003-09-15 15:03:22 +00:00
Alasdair Kergon
4c22730b53
Some tidyups and minor fixes.
2003-08-20 15:48:27 +00:00
Alasdair Kergon
914c97239f
Another sync point - numerous fixes & clean ups.
2003-07-04 22:34:56 +00:00
Alasdair Kergon
2fc3a4576f
Move fields.
2003-05-06 12:02:36 +00:00
Alasdair Kergon
5053603d2a
pvmove flag
2003-04-30 15:22:52 +00:00
Alasdair Kergon
7b44156315
mirror type
2003-04-30 15:22:36 +00:00
Alasdair Kergon
662b119be6
Extra metadata-reading debug message.
2003-04-28 12:18:53 +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
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
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
69e2befd15
Use sync_dir().
2002-12-05 22:56:22 +00:00
Alasdair Kergon
50d7e96c6d
Remove 2 TB LV size restriction message.
2002-11-18 16:21:00 +00:00
Alasdair Kergon
5a52dca9c2
Some new features.
2002-11-18 14:04:08 +00:00
Joe Thornber
b1545f2985
o Make sure the status parsing code can deal with an empty array.
2002-08-01 12:51:48 +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
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
407332cb9a
tidy
2002-07-11 14:09:26 +00:00
Joe Thornber
7df3006c6b
o Add version number to text format.
2002-07-02 18:47:43 +00:00
Alasdair Kergon
5be981bab5
Tweaks
2002-05-07 12:47:11 +00:00
AJ Lewis
b7749b7a96
o Will now correctly remove expired achive files from the system when
...
archive_vg is called.
o Added a #define to the top of the file - not sure if this is the
appropriate place for it though
2002-05-03 19:28:07 +00:00
Alasdair Kergon
6b4c9ff740
Some partial VG support with format_text.
2002-04-30 17:12:37 +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
de3bec7f81
Missing seg->lv gives segfault when activating from text format.
2002-04-16 19:41:54 +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
Joe Thornber
841da63e77
o Format1 wasn't recording the snapshot chunk size properly
...
o Activation of snapshots now works - though the resulting device
doesn't (pjc ?)
o text format wasn't setting vg->cmd.
2002-02-26 16:48:52 +00:00
Alasdair Kergon
bb403f3361
indent
2002-02-24 22:31:55 +00:00
Patrick Caulfield
6f3a8d5bd3
Fill in format_text functions.
...
Sort of seems to work.
2002-02-22 11:44:56 +00:00
Heinz Mauelshagen
257ec146b2
Avoid ambigous volume_group argument in vg_add_snapshot()
2002-02-21 18:31:48 +00:00
Alasdair Kergon
b5ed53273a
Generate LV uuid from lv_number when reading in LVs.
2002-02-21 15:26:44 +00:00
Joe Thornber
d7783cc8b8
o small bug in the format1 export code for snapshots.
...
o tidied newlines in the snapshot section of format text.
2002-02-18 11:25:43 +00:00
Joe Thornber
0d3075f5ba
o Define _read_uint32
2002-02-14 14:52:21 +00:00
Joe Thornber
294ddff8a6
o snapshot support for the text format.
...
The logical_volumes, and snapshots sections of the text format are now
optional.
2002-02-13 13:29:16 +00:00
Joe Thornber
0a9f8bcf97
o First pass at format1 snapshot support.
2002-02-13 11:43:29 +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
Alasdair Kergon
33e8b747ac
dbg_free(tc->desc)
2002-02-11 18:21:54 +00:00
Joe Thornber
03888774a5
o Added functions to display what's in the archive.
...
o For now vgcfgrestore -l <vg> displays this list.
A bit hacky, but it'll get better.
2002-02-11 11:43:17 +00:00
Joe Thornber
59d6420b9a
o I decided that the archive_format shouldn't really be a format at
...
all since it only supports vg_write. It has been replaced with:
int archive_vg(struct volume_group *vg,
const char *dir,
const char *desc,
uint32_t retain_days,
uint32_t min_archive);
which is now called directly by tools/archive.c
2002-02-08 11:58:18 +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
7ae5a778d5
Basic support for (read-only) partial activation if any PVs are
...
missing from a VG. (Linear targets use the device-mapper 'error' target
which returns ioerror; striped targets use '/dev/ioerror' for now - which must
already exist e.g. as a sufficiently large block device version of /dev/zero).
2002-01-30 15:33:12 +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
Alasdair Kergon
1176eb2597
Tweak some error message levels.
2002-01-27 21:30:47 +00:00
Alasdair Kergon
77712b1ecb
Set pv->pe_size when reading in text-file backup.
...
Otherwise LVM1 decides the PV structure is corrupt.
But do we need to keep both pv->pe_size and vg->extent_size
in internal metadata or can we generate pvd->pe_size when writing out
a PV that belongs to a VG?
2002-01-25 20:21:13 +00:00
Joe Thornber
f868d63582
o Similar changes for lv_list.
2002-01-21 16:49:32 +00:00
Joe Thornber
cc282870dd
o Changed
...
struct pv_list {
struct list list;
struct physical_volume pv;
};
to
struct pv_list {
struct list list;
struct physical_volume *pv;
};
o New function in toollib 'create_pv_list', which creates a list of pv's
from a given command line array of pv's.
o Changed lvcreate/extend to use this (fixes lvextend [pv list] bug).
2002-01-21 16:05:23 +00:00
Alasdair Kergon
add7dc2d5a
o pvcreate --uuid to specify the uuid (required before using vgcfgrestore
...
onto a new device). uuid specified must not already exist on the system.
o More message tidying.
o When checking for label, only read PV metadata.
o Add ataraid. [Needs moving into config/defaults files.]
2002-01-16 18:10:08 +00:00
Joe Thornber
22d1879c60
o Set the segment counter back to 1, for a new LV.
2002-01-16 11:34:29 +00:00
Joe Thornber
f2f2634990
o vgcfgrestore works ! (with the couple of examples I tried).
2002-01-15 17:37:23 +00:00
Joe Thornber
ee27c57b58
o Put in the pv_hash which stores the pv section name -> pv struct mapping.
2002-01-11 11:09:12 +00:00
Alasdair Kergon
4a624ca055
o ACTIVE is no longer a status flag - lv_active() used to check if an LV
...
is active in the device-mapper.
o Many operations can be carried out regardless of whether the VG is
active or not.
o vgscan does not activate anything - use vgchange.
o Change lvrename to support renaming of active LVs.
o Remove '//' appearing in some pathnames.
o Dummy lv_check_segments() for compilation.
2002-01-10 23:21:07 +00:00
Joe Thornber
c6cc24ea3f
o _read_id function for import.c
2002-01-10 18:12:26 +00:00
Alasdair Kergon
7e56005011
More steps towards successful compilation.
2002-01-10 16:48:28 +00:00
Alasdair Kergon
b80f32dd0a
Clarify terminology:
...
VG is resizeable - PVs can be added or removed
PV is allocatable - free extents on it may be allocated to LVs
2002-01-10 15:09:51 +00:00
Joe Thornber
88cc3edf2e
o vgcfgrestore.
2002-01-10 14:27:47 +00:00
Joe Thornber
9b5db6c270
o First pass at import.c. Still waiting for label code for the uuid->pv
...
mapping.
2002-01-10 11:18:08 +00:00
Alasdair Kergon
dff36d2a77
Renamed to archive.c
2002-01-09 19:17:11 +00:00
Alasdair Kergon
952d12a5f5
o Rename many occurrences of 'backup' to 'archive' to reduce confusion.
...
o Extract file creation/renaming code into a library and change backup code
to use it too.
o Support umask.
o Bring lvm.conf man page up-to-date.
2002-01-09 19:16:48 +00:00
Joe Thornber
9588155a4e
o Let the comment wars begin.
2002-01-09 14:14:07 +00:00
Joe Thornber
ab1885c8aa
o Reformat comments.
2002-01-09 13:56:11 +00:00
Alasdair Kergon
89f1e3ddf0
o Try to improve NFS-safety for temporary file creation (unique name; O_APPEND
...
+ fcntl lock) and rename (using hard link), avoiding any "real" archive
files ever being zero length.
o Fix filename parsing & ordered list handling.
2002-01-09 13:16:19 +00:00
Alasdair Kergon
d413c0ce38
Explicitly close (=>flush) files.
2002-01-09 13:07:03 +00:00
Joe Thornber
5a72a50367
o vgcreate wasn't setting vg->cmd
2002-01-07 15:27:55 +00:00
Joe Thornber
f5549805b6
o tidy up renaming of archive files.
2002-01-07 14:21:33 +00:00
Joe Thornber
197c3f2ab4
o sync tool changes for backup stuff.
2002-01-07 11:12:11 +00:00
Joe Thornber
3eb1b74b29
o Get format-text.c compiling.
2002-01-07 09:16:20 +00:00
Joe Thornber
e59204fc22
o sync laptop to test machine.
2002-01-07 09:05:31 +00:00
Alasdair Kergon
b94703a187
Put device name in quotes.
2002-01-03 17:47:48 +00:00
Alasdair Kergon
5671fce111
Fix final comma in arrays.
2002-01-03 12:43:01 +00:00
Alasdair Kergon
41b2fd5f4d
o Use lvm_snprintf wherever return value is used
...
o Add parameters to set retention limits for backups
2001-12-31 19:09:51 +00:00
Alasdair Kergon
52f71ce77b
Fixes for compilation.
2001-12-31 15:14:44 +00:00
Joe Thornber
2041d905a9
o Added a quick vgcfgbackup, needs parameters as yet.
2001-12-20 16:05:14 +00:00
Joe Thornber
9f44467d44
o sync backup changes
2001-12-20 11:52:54 +00:00
Joe Thornber
e8bacbc465
o sync the backup stuff
2001-12-17 19:46:10 +00:00
Joe Thornber
370e18e437
o Add output_date
2001-12-11 12:29:25 +00:00
Joe Thornber
57ba050c58
o flags.c reads and writes a status bitset
2001-12-11 12:18:56 +00:00
Joe Thornber
d96dea9abf
o Split import-export.c into two files.
2001-12-11 12:16:58 +00:00
Joe Thornber
a76318a698
o Update sample to a format that supports multiple vg's per file.
2001-12-11 12:15:08 +00:00
Joe Thornber
85028e021c
o sync
2001-12-04 14:14:07 +00:00
Joe Thornber
0bab65915d
o Sync up todays work on converting to the segmented representation of
...
logical volumes. It includes:
format1 changes.
metadata.h changes.
lv_manip.c changed (striped allocation still not done though).
activate.c changes.
Nothing has been near a compiler as yet.
Alasdair can you look at changing display.c to use to output the mappings
in a more segment oriented format please ?
I haven't put the span list into struct physical_volume to represent allocated
extents. I think the burden of maintaining it for things like lv_extend may
out weigh it's uses.
2001-11-27 16:37:33 +00:00
Joe Thornber
7c77eca4f7
o Sync. only
2001-11-21 09:20:05 +00:00