1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-10-28 11:55:55 +03:00
lvm2/tools
Peter Rajnoha 9dbe25709e pv_header_extension: add support for reading PV header extension (flags & Embedding Area)
New tools with PV header extension support will read the extension
if it exists and it's not an error if it does not exist (so old PVs
will still work seamlessly with new tools).

Old tools without PV header extension support will just ignore any
extension.

As for the Embedding Area location information (its start and size),
there are actually two places where this is stored:
  - PV header extension
  - VG metadata

The VG metadata contains a copy of what's written in the PV header
extension about the Embedding Area location (NULL value is not copied):

    physical_volumes {
        pv0 {
          id = "AkSSRf-difg-fCCZ-NjAN-qP49-1zzg-S0Fd4T"
          device = "/dev/sda"     # Hint only

          status = ["ALLOCATABLE"]
          flags = []
          dev_size = 262144       # 128 Megabytes
          pe_start = 67584
          pe_count = 23   # 92 Megabytes
          ea_start = 2048
          ea_size = 65536 # 32 Megabytes
        }
    }

The new metadata fields are "ea_start" and "ea_size".
This is mostly useful when restoring the PV by using existing
metadata backups (e.g. pvcreate --restorefile ...).

New tools does not require these two fields to exist in VG metadata,
they're not compulsory. Therefore, reading old VG metadata which doesn't
contain any Embedding Area information will not end up with any kind
of error but only a debug message that the ea_start and ea_size values
were not found.

Old tools just ignore these extra fields in VG metadata.
2013-02-26 11:27:23 +01:00
..
.exported_symbols generate liblvm2cmd exported symbols too 2010-06-25 18:23:10 +00:00
.gitignore More .gitignore files for an in-source-tree build. 2012-06-08 16:34:43 +01:00
args.h thin: lvconvert support for external origin 2013-02-23 10:38:20 +01:00
cmdnames.h Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1. 2007-08-20 20:55:30 +00:00
commands.h thin: lvconvert support for external origin 2013-02-23 10:38:20 +01:00
dmsetup.c cleanup: remove extra braces 2013-02-05 14:27:24 +01:00
dumpconfig.c Move dm_config_write out of libdm, back to lib/config, as config_write. 2011-12-11 23:18:20 +00:00
formats.c Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
lvchange.c thin: external origin cannot be changed 2013-02-23 10:37:01 +01:00
lvconvert.c thin: lvconvert support for external origin 2013-02-23 10:38:20 +01:00
lvcreate.c RAID: Add new 'raid10_segtype_default' setting in lvm.conf 2013-02-20 15:10:04 -06:00
lvdisplay.c Rework the toollib interface (process_each_*) on top of new vg_read. 2009-07-01 17:00:50 +00:00
lvextend.c Some whitespace tidy-ups. 2008-01-30 14:00:02 +00:00
lvm2cmd-static.c Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1. 2007-08-20 20:55:30 +00:00
lvm2cmd.c Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
lvm2cmd.h Keep the LVM-based dmeventd plugins from trying to manipulate the dmeventd 2011-10-19 08:46:26 +00:00
lvm2cmdline.h Support repetition of --addtag and --deltag arguments. 2010-11-11 17:29:05 +00:00
lvm-static.c Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
lvm.c cleanup: simplify option matching function 2012-12-15 14:57:40 +01:00
lvmchange.c Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
lvmcmdlib.c cleanup: drop unneeded included header files 2012-08-23 14:37:20 +02:00
lvmcmdline.c logging: classify log_debug messages 2013-01-07 22:30:29 +00:00
lvmdiskscan.c Few more close and dev_close trace 2012-03-01 21:12:37 +00:00
lvreduce.c Some whitespace tidy-ups. 2008-01-30 14:00:02 +00:00
lvremove.c cleanup: add proper cast for force_t 2012-10-03 15:06:17 +02:00
lvrename.c config: add silent mode 2012-08-25 20:35:48 +01:00
lvresize.c thin: external origin cannot be changed 2013-02-23 10:37:01 +01:00
lvscan.c config: add silent mode 2012-08-25 20:35:48 +01:00
Makefile.in lvmetad: lvm depends on libdaemonclient.a 2013-01-04 23:10:38 +00:00
polldaemon.c config: add silent mode 2012-08-25 20:35:48 +01:00
polldaemon.h Start using 64-bit status flags - most of the code already handles them. 2011-09-06 18:49:31 +00:00
pvchange.c cleanup: switch log_error to log_warn 2012-10-17 15:41:35 +02:00
pvck.c Move the core of the lib/config/config.c functionality into libdevmapper, 2011-08-30 14:55:15 +00:00
pvcreate.c pv_header_extension: add support for reading PV header extension (flags & Embedding Area) 2013-02-26 11:27:23 +01:00
pvdisplay.c cleanup: uint64_t casts 2012-08-23 14:37:21 +02:00
pvmove.c pvmove/RAID: Disallow pvmove on RAID LVs until properly handled 2012-12-04 17:47:47 -06:00
pvremove.c config: add silent mode 2012-08-25 20:35:48 +01:00
pvresize.c config: add silent mode 2012-08-25 20:35:48 +01:00
pvscan.c logging: classify log_debug messages 2013-01-07 22:30:29 +00:00
reporter.c Add internal error for unsupported code paths 2012-02-13 11:25:56 +00:00
segtypes.c Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
stub.h Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
toollib.c cleanup: use struct pvcreate_restorable_params throughout 2013-02-26 11:25:11 +01:00
toollib.h thin: add alloc_pool_metadata 2012-11-19 14:38:17 +01:00
tools.h thin: use discards as plural rather than singular 2012-08-07 21:24:41 +01:00
vgcfgbackup.c config: add silent mode 2012-08-25 20:35:48 +01:00
vgcfgrestore.c thin: allow restore with --force 2012-11-27 14:08:24 +01:00
vgchange.c cleanup: switch log_error to log_warn 2012-10-17 15:41:35 +02:00
vgck.c Make vgck warn about missing PVs. 2010-07-27 20:05:29 +00:00
vgconvert.c cleanup: use struct pvcreate_restorable_params throughout 2013-02-26 11:25:11 +01:00
vgcreate.c cleanup: swap return values 2012-10-17 15:37:26 +02:00
vgdisplay.c Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
vgexport.c config: add silent mode 2012-08-25 20:35:48 +01:00
vgextend.c config: add silent mode 2012-08-25 20:35:48 +01:00
vgimport.c vgimport: Allow '--force' to import VGs with missing PVs. 2013-02-20 16:37:41 -06:00
vgmerge.c config: add silent mode 2012-08-25 20:35:48 +01:00
vgmknodes.c Use __attribute__ consistently throughout. 2010-07-09 15:34:40 +00:00
vgreduce.c RAID: Make 'vgreduce --removemissing' work with RAID LVs 2013-02-20 14:52:46 -06:00
vgremove.c Make force_t enum usage obvious 2012-02-27 10:06:58 +00:00
vgrename.c Implement devices/global_filter. 2012-09-26 14:49:15 +02:00
vgscan.c lvmetad: Make vgscan --cache an alias to pvscan --cache. 2012-09-26 17:26:23 +02:00
vgsplit.c cleanup: swap return values 2012-10-17 15:37:26 +02:00