1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-22 17:35:59 +03:00
Commit Graph

333 Commits

Author SHA1 Message Date
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
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
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
Heinz Mauelshagen
f48d3bcbd0 First cut on "pvcreate -s" 2002-02-15 01:26:16 +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
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
Joe Thornber
0cf2445bb7 o Add extra parameter to lv_manip fns 2002-01-24 17:15:49 +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
Joe Thornber
e586401ecb o Changed find_pv_in_vg, and find_lv_in_vg to return a struct pv_list * and
struct lv_list * respectively.
2002-01-21 14:28:12 +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
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
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
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
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
Alasdair Kergon
7a61472a0a More striping support & fixes. 2001-12-03 16:27:16 +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
79b0c9f89a o change chunk_size to stripe_size 2001-11-26 16:30:43 +00:00
Joe Thornber
f95627cf8a o More metadata changes. 2001-11-26 16:18:48 +00:00
Alasdair Kergon
6b35c7eb9d LV create/extend prototype changes for striping 2001-11-26 15:31:46 +00:00
Joe Thornber
3390d370d0 o make it obvious that stripe_segment is variable sized. 2001-11-26 13:15:22 +00:00
Joe Thornber
79437c2734 o segments will have to be held as an array of pointers since they're now
variable sized.
2001-11-26 13:03:36 +00:00
Joe Thornber
23687ed34d o sync the new in core rep. for Alasdair.
This will break everything !  Hopefully things will be working again by
   this evening.
2001-11-26 12:49:29 +00:00
Alasdair Kergon
9b7742bb36 More LV-related tidying. lvdisplay without args now shows all LVs. 2001-11-14 18:38:07 +00:00
Alasdair Kergon
5238b63f1a Miscellaneous tidying 2001-11-14 13:52:38 +00:00
Alasdair Kergon
e68b5e3029 o lvdisplay now shows LE / PV map
o fix LE allocation when first PV is full
o reduce VG free_count when removing PVs from VG
2001-11-13 17:53:06 +00:00
Alasdair Kergon
03a8a07d67 Merge lvreduce & lvextend into lvresize. 2001-11-13 14:17:50 +00:00
Joe Thornber
d53f88d7af o Stuff 2001-11-12 19:28:50 +00:00
Joe Thornber
4daacc38cb o Add ALLOC_SIMPLE 2001-11-12 17:55:05 +00:00
Joe Thornber
2107f48208 o Split struct io_space into:
struct format_handler - format methods
   struct format_instance - links instance data, methods, and cmd
   struct cmd_context - dev_dir, memory allocator, device filter
2001-11-12 12:16:57 +00:00
Alasdair Kergon
642c2e964b lvcreate 2001-11-06 19:02:26 +00:00
Joe Thornber
15e35a737c o lv_reduce
o  pv_maps wasn't taking a list of acceptable pvs
2001-11-06 11:19:33 +00:00
Joe Thornber
dd4e3f9efc o lv_manip.c will contain the code for lv_create, lv_extend and lv_reduce. 2001-11-06 10:29:56 +00:00
Alasdair Kergon
1138def67f Reinstate size of lv 2001-11-05 18:07:44 +00:00
Joe Thornber
242019fdf4 o code for building free area lists on a pv. Compiles but not run. 2001-11-05 16:41:38 +00:00
Alasdair Kergon
9277853f07 lvcreate prototype 2001-11-05 13:06:03 +00:00
Alasdair Kergon
0a5e4a1442 o Changes to activation interface
o Add pointer lv->vg
o Some naming tweaks to improve clarity
2001-10-31 17:59:52 +00:00
Joe Thornber
1b9fcf48b1 o LGPL list implementation 2001-10-31 12:47:01 +00:00
Joe Thornber
dc6e03dc5b o Add read_ahead and stripes to struct logical_volume 2001-10-29 15:34:56 +00:00
Alasdair Kergon
cfd658dab0 lvremove 2001-10-29 13:52:23 +00:00
Alasdair Kergon
ffb3162116 vgextend 2001-10-15 22:04:27 +00:00
Alasdair Kergon
df2e0dc751 More vgcreate error trapping 2001-10-15 18:39:40 +00:00
Joe Thornber
8a482590fa o vgcreate 2001-10-12 14:25:53 +00:00
Joe Thornber
2cb6249206 o make ios the first argument to pv_create 2001-10-12 10:52:32 +00:00
Joe Thornber
72a5e12b5c o pvcreate
o added uuid unit

o stubbed partition stuff
2001-10-12 10:32:06 +00:00
Joe Thornber
88835ab641 o pv_setup for format1, this is the last one ! 2001-10-10 10:55:55 +00:00
Joe Thornber
755590409e o Code to calculate the metadata layout. 2001-10-10 09:25:04 +00:00
Alasdair Kergon
0dc2a4d6e4 o vgremove.
o filter devices by major.
2001-10-09 17:20:02 +00:00
Joe Thornber
b1713d284d o change pv_read to take a name rather than a device 2001-10-09 16:05:34 +00:00
Joe Thornber
83545752cf o hack, hack, hack 2001-10-09 14:26:45 +00:00
Joe Thornber
47bd29840d o pv_Read works 2001-10-09 08:58:52 +00:00
Joe Thornber
c8ca2a2993 o get_pvs for format 1
o fix vg_read if vg doesn't exist
2001-10-08 17:53:43 +00:00
Joe Thornber
f5f8443131 o read_vg works (or so it claims) 2001-10-08 16:08:16 +00:00
Joe Thornber
721128e86d o sync 2001-10-08 12:11:33 +00:00
Joe Thornber
812efa0f48 o get things compiling 2001-10-08 09:45:16 +00:00
Joe Thornber
d81ec60d19 o test program for reading a vg 2001-10-08 08:47:27 +00:00
Alasdair Kergon
25d42d50a8 Sync include file changes. 2001-10-05 21:39:30 +00:00
Alasdair Kergon
f09fdc28fa revised flags and comments 2001-10-05 13:03:03 +00:00
Alasdair Kergon
ee1f91bf27 metadata status flags regrouping & comments; misc tool changes 2001-10-04 22:53:37 +00:00
Joe Thornber
e6efb2b0bd o got dbg_malloc_t working, Alasdair could you look at the Makefile.in it
seems to be having trouble with the dependencies.

o removed some files from the lib makefile that don't compile yet.
2001-10-04 10:13:07 +00:00
Alasdair Kergon
b39630bdb7 vgcreate & lvmchange outlines 2001-10-03 20:38:07 +00:00
Alasdair Kergon
fbad1c90a1 lvremove outline 2001-10-03 12:34:08 +00:00
Alasdair Kergon
9e300c8427 pvscan framework 2001-10-02 17:09:05 +00:00
Alasdair Kergon
1f6db21f32 Another step towards consistency & compilation. 2001-10-01 22:12:10 +00:00
Joe Thornber
74a54dc297 o changed dev-manager to a dev_filter 2001-10-01 16:21:21 +00:00
Alasdair Kergon
b8ef655fb7 Tidy include files 2001-10-01 15:14:39 +00:00
Joe Thornber
84ad4dabe2 o logical data structures 2001-09-28 13:15:30 +00:00
Alasdair Kergon
269930c0da lvactivate checkpoint commit 2001-09-25 12:49:28 +00:00