Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=bd00599af4b57112904de…
Commit: bd00599af4b57112904de27ee43dfa50cac72c18
Parent: 0000000000000000000000000000000000000000
Author: Marian Csontos <mcsontos(a)redhat.com>
AuthorDate: 2019-11-30 13:54 +0000
Committer: Marian Csontos <mcsontos(a)redhat.com>
CommitterDate: 2019-11-30 13:54 +0000
annotated tag: v2_03_07 has been created
at bd00599af4b57112904de27ee43dfa50cac72c18 (tag)
tagging 3d7f755674c651a012f7dc6c10e67bdd330a33ae (commit)
replaces v2_03_06
Release 2.03.07
- Subcommand in vgck for repairing headers and metadata.
- Fix resize of thin-pool with data and metadata of different segtype.
- Fix activation order when removing merged snapshot.
- Experimental VDO support for lvmdbusd.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iQIcBAABAgAGBQJd4nUbAAoJELkRJDHlCQOfUCsQAOPSm1zwahQMMmzyviFUGDBo
x6D/yZOC4P/jV+mTvyaKykrZIwWDuM1m0O2E8C+/6EIbJYUMktEffGL6zzaIM43A
vV8kyRrp+MnuqySKc/sqes37NM0RqUgg3fjzYV36s8AST5xvvcWfGehKTz4dO8sq
ZuOIuGl55O2NdeLAKKMoDVwzBky7gp1ouNX6vcAPgdASFHzBC5SbKlZpmQwweOgy
f9KDkrWTPv6j76nCqkwC7nx6yE0/3UAilnFp0PvFgAMXYcFsSuV9rtsw0yUS5iQP
i6hUdPQnjGYrpWVY0l9D6QTGd/iHyE3CC/cCESkGVvLchJcsGUcF2SVOo2TyOj50
lSknU8fpz/fnDxBGdGdMe6IQL16RfKrYSISSzy1qKCWFfODlD8GJClYlwyxUg1D8
xc6taMPKo6bOR32RfrrS+GgMwd9tTxYrvoza9V4Baoh7ZqC+ptD+jynMYwGlCrBw
1E0YNFS6rfplCCtMsH9Ngl9i/bjIUcmQ+TSN9HoCKZYM19zJhjVJaKdqYbm2RF6c
bTN51W+/Zk0eLV/HPgqJNMdhX3jNTZDZyVWXvFatzGNO8V/kWe4eF+aQcneJNFWV
T5orqbusNXCY1UVgVueFC+G2hRcqA+LRVwOTJZXZgv8PHmMEJzdttrd0h/C0z0FM
GzIb/AlWVENSvkWg7g1s
=EDW7
-----END PGP SIGNATURE-----
David Teigland (27):
man lvmthin: change wording about mounting xfs
tests: lvmlockd-lv-types handle new cpool renaming
lvmlockd: fix cachevol locking
Revert "debug: enhance debug messages"
Revert "hints: rewrite function"
lvs: disable scanning optimization
tests: update to md dev name
writecache: modprobe dm-writecache
pvcreate,pvremove: fix reacquiring global lock after prompt
bcache: add invalidate_bytes function
scanning: optimize by checking text offset and checksum
Revert "lvs: disable scanning optimization"
tests hints: update check for io count
scanning: use bool type for _scan_text_mismatch
Revert "cov: check for retvalue"
Revert "cov: avoid passing NULL to strstr function"
Revert "cov: fix mem leaking buffer"
Revert "pvck: check result of dev_get_size"
Revert "cov: use zalloc"
metadata: add vg_from_config_tree
scan: add simple scan to find a pvid
pvck: move some arg processing
pvck: allow disk locations to be specified
pvck: dump show most recent metadata
pvck: dump functions cleanup args and return vals
pvck: repair headers and metadata
pvck: use zalloc in more places
Heinz Mauelshagen (2):
man: adjust 'disks' to 'devices' as used throughout
lvcreate: ensure striped raid region size is at least stripe size
Heming Zhao (1):
fix dev_unset_last_byte after write error
Joe Thornber (6):
[bcache] add bcache_abort()
[label] Use bcache_abort_fd() to ensure blocks are no longer in the cache.
[bcache] add unit test
[bcache] pass up the error from io_submit rather than using generic -EIO
[bcache] reverse earlier patch.
[bcache] bcache_invalidate_fd, only remove prefixes on success.
Marian Csontos (7):
post-release
test: Fix metadata-zero-space with long VG names
test: Fix handling leftovers from previous tests
Partial revert "tests: update to md dev name"
tests: Find md name using lsblk
build: make generate
pre-release
Tony Asleson (34):
lvmdbusd: Remove duplicate error handling code
lvmdbusd: Remove use of tmp variables
lvmdbusd: Add d and D to type map for VolumeType
lvmdbustest.py: Add blurb about scan_lvs = 1
lvmdbusd: Add check for reserved name '_vdata'
man: Include '_vdata' as reserved name
man lvmvdo: Correct spellings
lvmdbustest.py: Remove duplicate setup code
lvmdbusdtest.py: Use common function for tag add
lvmdbustest.py: Add function for lv path check
lvmdbustest.py: Add func. _all_pv_object_paths
lvmdbustest.py: Add func. _create_thin_lv
lvmdbustest.py: Use existing _create_lv
lvmdbustest.py: Add func. _pv_scan
lvmdbustest.py: Remove 2 TODOs
lvmdbusd: Add cfg.vdo_support
lvmdbusd: Add VgVdo class & assoc. interface
lvmdbustest.py: Add cache LV rename test
lvmdbusd: Prevent running --nojson with VDO support
lvmdbustest.py: WS corrections
lvmdbustest.py: Add nested helper function major_minor
lvmdbustest.py: Create common func. _create_cache_lv
lvmdbusd: VDO Pool LV representation
testlib.py: Correct dbus signature verification
lvmdbustest.py: Add basic vdo test
testlib.py: WS corrections
testlib.py: Add interface instance vars.
lvmdbusd: Bug fix for activate/deactivate
lvmdbusd: Fix model inconsistency when LV loses interface
lvmdbusd: Debug msg. improvements.
lvmdbustest.py: Add tests for LV interface
lvmdbustest.py: Improve concurrent test handling
lvmdbustest.py: Use local data instead of fetching
Experimental VDO lvmdbusd support
Zdenek Kabelac (55):
snapshot: correctly check device id of merged thin
snapshot: fix checking of merged thin volume
snapshot: use single merging sequence
tests: explicit testing of thin snapshot
WHATS_NEW
mirror: fix leg splitting
mirror: directly activate updated mirror
mirror: remove unused code
manip: optimize lvs_using_lv
raid: drop internal error
tests: reduce space requirements
activation: drop removed declaration
WHATS_NEW: update
tests: avoid checking command result in cluster
tests: conversion only of exclusive lv
tests: slowdown delay of raid
tests: skip test if scsi_debug is not available
tests: be happy with less then 90 percent
gcc: avoid declaration shadowing
cov: missing checks of syscalls
cov: ensure read_ahead is available
daemon: better error path handling for shutdown
daemons: check for non-zero thread_id
tests: skip unneeded status check
tests: add extra settle
lvextend: fix resizing volumes of different segtype
tests: add test of resize of different segtypes
WHATS_NEW: update
cov: fix memory leak
devtype: simplify code
cov: check for NULL
cov: fix memleak for duplicate device
cov: check for retvalue
cov: avoid passing NULL to strstr function
cov: fix mem leaking buffer
pvck: check result of dev_get_size
hints: rewrite function
hints: allocate hint only when needed
hints: validate sscanf results
hints: validate allocation result
hints: fix mem leaking buffers
hints: check for _touch_hints
cov: inline _build_desc_write
dmeventd: vdo plugin link lvm library
cov: more checks for failing syscalls
cov: remove unused headers
cov: add explicit ret value ignoring
cov: use zalloc
hints: no need to check for NULL before free
hints: drop unneeded memset
debug: enhance debug messages
tests: enusure lib is initilized
revert "dmeventd: vdo plugin link lvm library"
tests: reduce amount of written date
tests: add more tracing info
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=0a7495e6808473ee60385…
Commit: 0a7495e6808473ee60385d3a4b6f48ac2240da72
Parent: 5a88b2ce7fcdffec909f7f236d9bcfe0a615b6b9
Author: Marian Csontos <mcsontos(a)redhat.com>
AuthorDate: Sat Nov 30 14:24:22 2019 +0100
Committer: Marian Csontos <mcsontos(a)redhat.com>
CommitterDate: Sat Nov 30 14:24:22 2019 +0100
build: make generate
---
man/pvck.8_pregen | 245 ++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 233 insertions(+), 12 deletions(-)
diff --git a/man/pvck.8_pregen b/man/pvck.8_pregen
index 6cdfe42..ea9d17d 100644
--- a/man/pvck.8_pregen
+++ b/man/pvck.8_pregen
@@ -7,14 +7,173 @@ pvck - Check metadata on physical volumes
.br
[ \fIoption_args\fP ]
.br
+.P
+.ad l
+ \fB--commandprofile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--config\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-d\fP|\fB--debug\fP
+.ad b
+.br
+.ad l
+ \fB--driverloaded\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB--dump\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-f\fP|\fB--file\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-h\fP|\fB--help\fP
+.ad b
+.br
+.ad l
+ \fB--labelsector\fP \fINumber\fP
+.ad b
+.br
+.ad l
+ \fB--lockopt\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--longhelp\fP
+.ad b
+.br
+.ad l
+ \fB--nolocking\fP
+.ad b
+.br
+.ad l
+ \fB--profile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--[pv]metadatacopies\fP \fB0\fP|\fB1\fP|\fB2\fP
+.ad b
+.br
+.ad l
+ \fB-q\fP|\fB--quiet\fP
+.ad b
+.br
+.ad l
+ \fB--repair\fP
+.ad b
+.br
+.ad l
+ \fB--repairtype\fP \fBpv_header\fP|\fBmetadata\fP|\fBlabel_header\fP
+.ad b
+.br
+.ad l
+ \fB--settings\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-t\fP|\fB--test\fP
+.ad b
+.br
+.ad l
+ \fB-v\fP|\fB--verbose\fP
+.ad b
+.br
+.ad l
+ \fB--version\fP
+.ad b
+.br
+.ad l
+ \fB-y\fP|\fB--yes\fP
+.ad b
.SH DESCRIPTION
-pvck checks LVM metadata on PVs.
+pvck checks and repairs LVM metadata on PVs.
-Use the --dump option to extract metadata from PVs for debugging.
-With dump, set --pvmetadatacopies 2 to extract metadata from a
-second metadata area at the end of the device. Use the --file
-option to save the raw metadata to a specified file. (The raw
-metadata is not usable with vgcfgbackup and vgcfgrestore.)
+.SS Dump
+
+.B headers
+.br
+Print header values and warn if any values are incorrect. Checks the
+label_header, pv_header, mda_header(s), and metadata text.
+
+.B metadata
+.br
+Print or save the current metadata text, using headers to locate the
+metadata. If headers are damaged, the metadata may not be found. Use
+--settings "mda_num=2" to look in mda2 (the second mda at the end of the
+device (if used). The metadata text is printed to stdout. With --file,
+the metadata text is saved to a file.
+
+.B metadata_all
+.br
+List or save all versions of metadata found in the metadata area, using
+headers to locate the metadata. If headers are damaged, the metadata may
+not be found. Use --settings "mda_num=2" as above. All metadata versions
+are listed (add -v to include descriptions and dates in the listing.)
+With -file, all versions are written to a file.
+
+.B metadata_search
+.br
+Search for all versions of metadata in the common locations. This does
+not use headers, so it can find metadata even when headers are damaged.
+Use --settings "mda_num=2" as above. All metadata versions are listed
+(add -v to include descriptions and dates in the listing.) With --file,
+all versions are written to a file. To save one copy of metadata, use
+--settings "metadata_offset=<offset>", where the offset is taken from the
+dump listing.
+
+.B metadata_area
+.br
+Save the entire text metadata area to a file without processing.
+
+.SS Repair
+
+.B --repair
+.br
+Repair headers and metadata on a PV. This uses a metadata input file that
+was extracted by --dump, or a backup file (from /etc/lvm/backup). When
+possible, use metadata saved by --dump from another PV in the same VG (or
+from a second metadata area on the PV).
+
+There are cases where the PV UUID needs to be specified for the PV being
+repaired. It is specified using --settings "pv_uuid=<UUID>". In
+particular, if the device name for the PV being repaired does not match
+the previous device name of the PV, then LVM may not be able to determine
+the correct PV UUID. When headers are damaged on more than one PV in a
+VG, it is important for the user to determine the correct PV UUID and
+specify it in --settings. Otherwise, the wrong PV UUID could be used if
+device names have been swapped since the metadata was last written.
+
+If a PV had no metadata areas and the pv_header is damaged, then the
+repair will not know to create no metadata areas during repair. It will
+by default repair metadata in mda1. To repair with no metadata areas, use
+--settings "mda_offset=0 mda_size=0".
+
+There are cases where repair should be run on all PVs in the VG (using the
+same metadata file): if all PVs in the VG are damaged, if using an old
+metadata version, or if a backup file is used instead of raw metadata.
+
+Using --repair is equivalent to running --repairtype pv_header followed by
+--repairtype metadata.
+
+.B --repairtype pv_header
+.br
+Repairs the header sector, containing the pv_header and label_header.
+
+.B --repairtype metadata
+.br
+Repairs the mda_header and metadata text. It requires the headers to be
+correct (having been undamaged or already repaired).
+
+.B --repairtype label_header
+.br
+Repairs label_header fields, leaving the pv_header (in the same sector)
+unchanged. (repairtype pv_header should usually be used instead.)
.SH USAGE
Check for metadata on a device
@@ -26,8 +185,9 @@ Check for metadata on a device
[ COMMON_OPTIONS ]
.RE
.br
+-
-Print metadata from a device
+Check and print LVM headers and metadata on a device
.br
.P
\fBpvck\fP \fB--dump\fP \fIString\fP \fIPV\fP
@@ -38,12 +198,51 @@ Print metadata from a device
.ad b
.br
.ad l
+[ \fB--settings\fP \fIString\fP ]
+.ad b
+.br
+.ad l
[ \fB--[pv]metadatacopies\fP \fB0\fP|\fB1\fP|\fB2\fP ]
.ad b
.br
[ COMMON_OPTIONS ]
.RE
.br
+-
+
+Repair LVM headers or metadata on a device
+.br
+.P
+\fBpvck\fP \fB--repairtype\fP \fBpv_header\fP|\fBmetadata\fP|\fBlabel_header\fP \fIPV\fP
+.br
+.RS 4
+.ad l
+[ \fB-f\fP|\fB--file\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--settings\fP \fIString\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+-
+
+Repair LVM headers and metadata on a device
+.br
+.P
+\fBpvck\fP \fB--repair\fP \fB-f\fP|\fB--file\fP \fIString\fP \fIPV\fP
+.br
+.RS 4
+.ad l
+[ \fB--settings\fP \fIString\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+-
Common options for command:
.
@@ -147,16 +346,19 @@ For testing and debugging.
.ad l
\fB--dump\fP \fIString\fP
.br
-Dump metadata from a PV. Option values include \fBmetadata\fP
-to print or save the current text metadata, \fBmetadata_area\fP
-to save the entire text metadata area to a file, \fBmetadata_all\fP
-to save the current and any previous complete versions of metadata
-to a file, and \fBheaders\fP to print and check LVM headers.
+Dump headers and metadata from a PV for debugging and repair.
+Option values include: \fBheaders\fP to print and check LVM headers,
+\fBmetadata\fP to print or save the current text metadata,
+\fBmetadata_all\fP to list or save all versions of metadata,
+\fBmetadata_search\fP to list or save all versions of metadata,
+searching standard locations in case of damaged headers,
+\fBmetadata_area\fP to save an entire text metadata area to a file.
.ad b
.HP
.ad l
\fB-f\fP|\fB--file\fP \fIString\fP
.br
+Metadata file to read or write.
.ad b
.HP
.ad l
@@ -220,6 +422,25 @@ Repeat once to also suppress any prompts with answer 'no'.
.ad b
.HP
.ad l
+\fB--repair\fP
+.br
+Repair headers and metadata on a PV.
+.ad b
+.HP
+.ad l
+\fB--repairtype\fP \fBpv_header\fP|\fBmetadata\fP|\fBlabel_header\fP
+.br
+Repair headers and metadata on a PV. See command description.
+.ad b
+.HP
+.ad l
+\fB--settings\fP \fIString\fP
+.br
+Specifies command specific settings in "Key = Value" form.
+Repeat this option to specify multiple values.
+.ad b
+.HP
+.ad l
\fB-t\fP|\fB--test\fP
.br
Run in test mode. Commands will not update metadata.