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

1102 lines
32 KiB
C
Raw Normal View History

2001-09-25 16:49:28 +04:00
/*
2004-03-30 23:35:44 +04:00
* Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
* Copyright (C) 2004-2013 Red Hat, Inc. All rights reserved.
2001-09-25 16:49:28 +04:00
*
2004-03-30 23:35:44 +04:00
* This file is part of LVM2.
2001-09-25 16:49:28 +04:00
*
2004-03-30 23:35:44 +04:00
* This copyrighted material is made available to anyone wishing to use,
* modify, copy, or redistribute it subject to the terms and conditions
* of the GNU Lesser General Public License v.2.1.
2001-09-25 16:49:28 +04:00
*
* You should have received a copy of the GNU Lesser General Public License
2004-03-30 23:35:44 +04:00
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
2001-09-25 16:49:28 +04:00
*/
2002-11-18 17:04:08 +03:00
/*********** Replace with script?
xx(e2fsadm,
"Resize logical volume and ext2 filesystem",
"e2fsadm "
"[-d|--debug] " "[-h|--help] " "[-n|--nofsck]" "\n"
"\t{[-l|--extents] [+|-]LogicalExtentsNumber |" "\n"
"\t [-L|--size] [+|-]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}" "\n"
2002-11-18 17:04:08 +03:00
"\t[-t|--test] " "\n"
"\t[-v|--verbose] " "\n"
"\t[--version] " "\n"
"\tLogicalVolumePath" "\n",
extents_ARG, size_ARG, nofsck_ARG, test_ARG)
*********/
xx(dumpconfig,
"Dump configuration",
PERMITTED_READ_ONLY,
"dumpconfig\n"
"\t[-f|--file filename] \n"
"\t[--type {current|default|missing|new} \n"
"\t[--withcomments] \n"
"\t[--withversions] \n"
"\t[--ignoreadvanced] \n"
"\t[--ignoreunsupported] \n"
"\t[--atversion version]] \n"
"\t[--validate]\n"
"\t[ConfigurationNode...]\n",
file_ARG, configtype_ARG, withcomments_ARG, atversion_ARG,
withversions_ARG, ignoreadvanced_ARG, ignoreunsupported_ARG,
validate_ARG)
2004-09-14 20:42:46 +04:00
xx(formats,
"List available metadata formats",
PERMITTED_READ_ONLY,
2004-09-14 20:42:46 +04:00
"formats\n")
2001-09-25 16:49:28 +04:00
xx(help,
"Display help for commands",
PERMITTED_READ_ONLY,
"help <command>" "\n")
2001-09-25 16:49:28 +04:00
2001-10-08 22:44:22 +04:00
/*********
2001-09-25 16:49:28 +04:00
xx(lvactivate,
"Activate logical volume on given partition(s)",
"lvactivate "
"\t[-d|--debug]\n"
"\t[-h|--help]\n"
"\t[-v|--verbose]\n"
"Logical Volume(s)\n")
2001-10-08 22:44:22 +04:00
***********/
2001-09-25 16:49:28 +04:00
xx(lvchange,
"Change the attributes of logical volume(s)",
CACHE_VGMETADATA | PERMITTED_READ_ONLY,
2001-09-25 16:49:28 +04:00
"lvchange\n"
"\t[-A|--autobackup y|n]\n"
"\t[-a|--activate [a|e|l]{y|n}]\n"
2004-03-08 20:19:15 +03:00
"\t[--addtag Tag]\n"
2004-11-16 21:09:32 +03:00
"\t[--alloc AllocationPolicy]\n"
"\t[-C|--contiguous y|n]\n"
"\t[-d|--debug]\n"
2004-03-08 20:19:15 +03:00
"\t[--deltag Tag]\n"
"\t[--detachprofile]\n"
2003-07-11 21:10:19 +04:00
"\t[-f|--force]\n"
"\t[-h|--help]\n"
"\t[--discards {ignore|nopassdown|passdown}]\n"
2002-11-18 17:04:08 +03:00
"\t[--ignorelockingfailure]\n"
"\t[--ignoremonitoring]\n"
"\t[--monitor {y|n}]\n"
"\t[--poll {y|n}]\n"
"\t[--noudevsync]\n"
"\t[--minrecoveryrate Rate]\n"
"\t[--maxrecoveryrate Rate]\n"
"\t[-M|--persistent y|n] [--major major] [--minor minor]\n"
"\t[-P|--partial] " "\n"
"\t[-p|--permission r|rw]\n"
"\t[-r|--readahead ReadAheadSectors|auto|none]\n"
2004-03-27 00:24:03 +03:00
"\t[--refresh]\n"
2006-10-24 21:19:48 +04:00
"\t[--resync]\n"
RAID: Add scrubbing support for RAID LVs New options to 'lvchange' allow users to scrub their RAID LVs. Synopsis: lvchange --syncaction {check|repair} vg/raid_lv RAID scrubbing is the process of reading all the data and parity blocks in an array and checking to see whether they are coherent. 'lvchange' can now initaite the two scrubbing operations: "check" and "repair". "check" will go over the array and recored the number of discrepancies but not repair them. "repair" will correct the discrepancies as it finds them. 'lvchange --syncaction repair vg/raid_lv' is not to be confused with 'lvconvert --repair vg/raid_lv'. The former initiates a background synchronization operation on the array, while the latter is designed to repair/replace failed devices in a mirror or RAID logical volume. Additional reporting has been added for 'lvs' to support the new operations. Two new printable fields (which are not printed by default) have been added: "syncaction" and "mismatches". These can be accessed using the '-o' option to 'lvs', like: lvs -o +syncaction,mismatches vg/lv "syncaction" will print the current synchronization operation that the RAID volume is performing. It can be one of the following: - idle: All sync operations complete (doing nothing) - resync: Initializing an array or recovering after a machine failure - recover: Replacing a device in the array - check: Looking for array inconsistencies - repair: Looking for and repairing inconsistencies The "mismatches" field with print the number of descrepancies found during a check or repair operation. The 'Cpy%Sync' field already available to 'lvs' will print the progress of any of the above syncactions, including check and repair. Finally, the lv_attr field has changed to accomadate the scrubbing operations as well. The role of the 'p'artial character in the lv_attr report field as expanded. "Partial" is really an indicator for the health of a logical volume and it makes sense to extend this include other health indicators as well, specifically: 'm'ismatches: Indicates that there are discrepancies in a RAID LV. This character is shown after a scrubbing operation has detected that portions of the RAID are not coherent. 'r'efresh : Indicates that a device in a RAID array has suffered a failure and the kernel regards it as failed - even though LVM can read the device label and considers the device to be ok. The LV should be 'r'efreshed to notify the kernel that the device is now available, or the device should be 'r'eplaced if it is suspected of failing.
2013-04-12 00:33:59 +04:00
"\t[--syncaction {check|repair}\n"
"\t[--sysinit]\n"
"\t[-t|--test]\n"
"\t[-v|--verbose]\n"
"\t[--version]\n"
"\t[--writebehind BehindCount]\n"
RAID: Add writemostly/writebehind support for RAID1 'lvchange' is used to alter a RAID 1 logical volume's write-mostly and write-behind characteristics. The '--writemostly' parameter takes a PV as an argument with an optional trailing character to specify whether to set ('y'), unset ('n'), or toggle ('t') the value. If no trailing character is given, it will set the flag. Synopsis: lvchange [--writemostly <PV>:{t|y|n}] [--writebehind <count>] vg/lv Example: lvchange --writemostly /dev/sdb1:y --writebehind 512 vg/raid1_lv The last character in the 'lv_attr' field is used to show whether a device has the WriteMostly flag set. It is signified with a 'w'. If the device has failed, the 'p'artial flag has priority. Example ("nosync" raid1 with mismatch_cnt and writemostly): [~]# lvs -a --segment vg LV VG Attr #Str Type SSize raid1 vg Rwi---r-m 2 raid1 500.00m [raid1_rimage_0] vg Iwi---r-- 1 linear 500.00m [raid1_rimage_1] vg Iwi---r-w 1 linear 500.00m [raid1_rmeta_0] vg ewi---r-- 1 linear 4.00m [raid1_rmeta_1] vg ewi---r-- 1 linear 4.00m Example (raid1 with mismatch_cnt, writemostly - but failed drive): [~]# lvs -a --segment vg LV VG Attr #Str Type SSize raid1 vg rwi---r-p 2 raid1 500.00m [raid1_rimage_0] vg Iwi---r-- 1 linear 500.00m [raid1_rimage_1] vg Iwi---r-p 1 linear 500.00m [raid1_rmeta_0] vg ewi---r-- 1 linear 4.00m [raid1_rmeta_1] vg ewi---r-p 1 linear 4.00m A new reportable field has been added for writebehind as well. If write-behind has not been set or the LV is not RAID1, the field will be blank. Example (writebehind is set): [~]# lvs -a -o name,attr,writebehind vg LV Attr WBehind lv rwi-a-r-- 512 [lv_rimage_0] iwi-aor-w [lv_rimage_1] iwi-aor-- [lv_rmeta_0] ewi-aor-- [lv_rmeta_1] ewi-aor-- Example (writebehind is not set): [~]# lvs -a -o name,attr,writebehind vg LV Attr WBehind lv rwi-a-r-- [lv_rimage_0] iwi-aor-w [lv_rimage_1] iwi-aor-- [lv_rmeta_0] ewi-aor-- [lv_rmeta_1] ewi-aor--
2013-04-15 22:59:46 +04:00
"\t[--writemostly PhysicalVolume]\n"
"\t[-y|--yes]\n"
"\t[-Z|--zero {y|n}]\n"
2001-09-25 16:49:28 +04:00
"\tLogicalVolume[Path] [LogicalVolume[Path]...]\n",
alloc_ARG, autobackup_ARG, activate_ARG, available_ARG, contiguous_ARG,
discards_ARG, detachprofile_ARG, force_ARG, ignorelockingfailure_ARG,
ignoremonitoring_ARG, major_ARG, minor_ARG, monitor_ARG, minrecoveryrate_ARG,
maxrecoveryrate_ARG, noudevsync_ARG, partial_ARG, permission_ARG,
persistent_ARG, poll_ARG, readahead_ARG, resync_ARG, refresh_ARG, addtag_ARG,
deltag_ARG, syncaction_ARG, sysinit_ARG, test_ARG, writebehind_ARG,
writemostly_ARG, zero_ARG)
2001-09-25 16:49:28 +04:00
xx(lvconvert,
"Change logical volume layout",
0,
2006-04-06 00:43:23 +04:00
"lvconvert "
"[-m|--mirrors Mirrors [{--mirrorlog {disk|core|mirrored}|--corelog}]]\n"
"\t[--type SegmentType]\n"
"\t[--repair [--use-policies]]\n"
"\t[--replace PhysicalVolume]\n"
2006-10-08 03:04:36 +04:00
"\t[-R|--regionsize MirrorLogRegionSize]\n"
"\t[--alloc AllocationPolicy]\n"
2007-12-22 15:13:29 +03:00
"\t[-b|--background]\n"
"\t[-d|--debug]\n"
2009-06-30 22:39:31 +04:00
"\t[-f|--force]\n"
"\t[-h|-?|--help]\n"
2007-12-22 15:13:29 +03:00
"\t[-i|--interval seconds]\n"
2010-04-13 05:54:32 +04:00
"\t[--stripes Stripes [-I|--stripesize StripeSize]]\n"
"\t[--noudevsync]\n"
"\t[-v|--verbose]\n"
2009-06-30 22:39:31 +04:00
"\t[-y|--yes]\n"
"\t[--version]" "\n"
2006-04-06 00:43:23 +04:00
"\tLogicalVolume[Path] [PhysicalVolume[Path]...]\n\n"
2010-01-09 01:00:31 +03:00
"lvconvert "
Add the ability to split an image from the mirror and track changes. ~> lvconvert --splitmirrors 1 --trackchanges vg/lv The '--trackchanges' option allows a user the ability to use an image of a RAID1 array for the purposes of temporary read-only access. The image can be merged back into the array at a later time and only the blocks that have changed in the array since the split will be resync'ed. This operation can be thought of as a partial split. The image is never completely extracted from the array, in that the array reserves the position the device occupied and tracks the differences between the array and the split image via a bitmap. The image itself is rendered read-only and the name (<LV>_rimage_*) cannot be changed. The user can complete the split (permanently splitting the image from the array) by re-issuing the 'lvconvert' command without the '--trackchanges' argument and specifying the '--name' argument. ~> lvconvert --splitmirrors 1 --name my_split vg/lv Merging the tracked image back into the array is done with the '--merge' option (included in a follow-on patch). ~> lvconvert --merge vg/lv_rimage_<n> The internal mechanics of this are relatively simple. The 'raid' device- mapper target allows for the specification of an empty slot in an array via '- -'. This is what will be used if a partial activation of an array is ever required. (It would also be possible to use 'error' targets in place of the '- -'.) If a RAID image is found to be both read-only and visible, then it is considered separate from the array and '- -' is used to hold it's position in the array. So, all that needs to be done to temporarily split an image from the array /and/ cause the kernel target's bitmap to track (aka "mark") changes made is to make the specified image visible and read-only. To merge the device back into the array, the image needs to be returned to the read/write state of the top-level LV and made invisible.
2011-08-18 23:38:26 +04:00
"[--splitmirrors Images --trackchanges]\n"
2010-01-09 01:00:31 +03:00
"[--splitmirrors Images --name SplitLogicalVolumeName]\n"
"\tLogicalVolume[Path] [SplittablePhysicalVolume[Path]...]\n\n"
2006-04-06 00:43:23 +04:00
"lvconvert "
"[-s|--snapshot]\n"
"\t[-c|--chunksize]\n"
"\t[-d|--debug]\n"
"\t[-h|-?|--help]\n"
"\t[--noudevsync]\n"
2006-04-06 00:43:23 +04:00
"\t[-v|--verbose]\n"
"\t[-Z|--zero {y|n}]\n"
"\t[--version]" "\n"
"\tOriginalLogicalVolume[Path] SnapshotLogicalVolume[Path]\n\n"
"lvconvert "
"--merge\n"
"\t[-b|--background]\n"
"\t[-i|--interval seconds]\n"
"\t[-d|--debug]\n"
"\t[-h|-?|--help]\n"
"\t[-v|--verbose]\n"
"\tLogicalVolume[Path]\n\n"
"lvconvert "
"--thinpool ThinPoolLogicalVolume[Path]\n"
"\t[--chunksize size]\n"
"\t[--discards {ignore|nopassdown|passdown}]\n"
"\t[--poolmetadata ThinMetadataLogicalVolume[Path] |\n"
"\t [--poolmetadatasize size]\n"
"\t [-r|--readahead ReadAheadSectors|auto|none]\n"
"\t [--stripes Stripes [-I|--stripesize StripeSize]]]\n"
"\t[-T|--thin ExternalLogicalVolume[Path]\n"
"\t [--originname NewExternalOriginVolumeName]]\n"
"\t[-Z|--zero {y|n}]\n"
"\t[-d|--debug] [-h|-?|--help] [-v|--verbose]\n",
2007-12-22 15:13:29 +03:00
alloc_ARG, background_ARG, chunksize_ARG, corelog_ARG, interval_ARG,
merge_ARG, mirrorlog_ARG, mirrors_ARG, name_ARG, noudevsync_ARG,
readahead_ARG, regionsize_ARG, repair_ARG, replace_ARG, snapshot_ARG, splitmirrors_ARG,
trackchanges_ARG, type_ARG, stripes_long_ARG, stripesize_ARG, test_ARG,
chunksize_ARG, discards_ARG, poolmetadata_ARG, poolmetadatasize_ARG,
originname_ARG, thin_ARG, thinpool_ARG,
use_policies_ARG, force_ARG, zero_ARG)
2001-09-25 16:49:28 +04:00
xx(lvcreate,
"Create a logical volume",
0,
"lvcreate " "\n"
"\t[-A|--autobackup {y|n}]\n"
"\t[-a|--activate [a|e|l]{y|n}]\n"
2004-03-08 20:19:15 +03:00
"\t[--addtag Tag]\n"
2004-11-16 21:09:32 +03:00
"\t[--alloc AllocationPolicy]\n"
"\t[-C|--contiguous {y|n}]\n"
"\t[-d|--debug]\n"
"\t[-h|-?|--help]\n"
"\t[--ignoremonitoring]\n"
"\t[--monitor {y|n}]\n"
"\t[-i|--stripes Stripes [-I|--stripesize StripeSize]]\n"
"\t{-l|--extents LogicalExtentsNumber[%{VG|PVS|FREE}] |\n"
"\t -L|--size LogicalVolumeSize[bBsSkKmMgGtTpPeE]}\n"
"\t[-M|--persistent {y|n}] [--major major] [--minor minor]\n"
"\t[-m|--mirrors Mirrors [--nosync] [{--mirrorlog {disk|core|mirrored}|--corelog}]]\n"
"\t[--minrecoveryrate Rate]\n"
"\t[--maxrecoveryrate Rate]\n"
"\t[-n|--name LogicalVolumeName]\n"
"\t[--noudevsync]\n"
"\t[-p|--permission {r|rw}]\n"
"\t[-r|--readahead ReadAheadSectors|auto|none]\n"
2005-06-01 20:51:55 +04:00
"\t[-R|--regionsize MirrorLogRegionSize]\n"
2012-08-09 14:20:47 +04:00
"\t[-T|--thin [-c|--chunksize ChunkSize]\n"
"\t [--discards {ignore|nopassdown|passdown}]\n"
"\t [--poolmetadatasize MetadataSize[bBsSkKmMgG]]]\n"
"\t[--thinpool ThinPoolLogicalVolume{Name|Path}]\n"
"\t[-t|--test]\n"
"\t[--type VolumeType]\n"
"\t[-v|--verbose]\n"
"\t[-Z|--zero {y|n}]\n"
"\t[--version]\n"
"\tVolumeGroupName [PhysicalVolumePath...]\n\n"
"lvcreate \n"
"\t{ {-s|--snapshot} OriginalLogicalVolume[Path] |\n"
"\t [-s|--snapshot] VolumeGroupName[Path] -V|--virtualsize VirtualSize}\n"
"\t {-T|--thin} VolumeGroupName[Path][/PoolLogicalVolume] \n"
"\t -V|--virtualsize VirtualSize}\n"
"\t[-c|--chunksize]\n"
"\t[-A|--autobackup {y|n}]\n"
2004-03-08 20:19:15 +03:00
"\t[--addtag Tag]\n"
2004-11-16 21:09:32 +03:00
"\t[--alloc AllocationPolicy]\n"
"\t[-C|--contiguous {y|n}]\n"
"\t[-d|--debug]\n"
"\t[--discards {ignore|nopassdown|passdown}]\n"
"\t[-h|-?|--help]\n"
"\t[--ignoremonitoring]\n"
"\t[--monitor {y|n}]\n"
"\t[-i|--stripes Stripes [-I|--stripesize StripeSize]]\n"
"\t{-l|--extents LogicalExtentsNumber[%{VG|FREE|ORIGIN}] |\n"
"\t -L|--size LogicalVolumeSize[bBsSkKmMgGtTpPeE]}\n"
"\t[--poolmetadatasize MetadataVolumeSize[bBsSkKmMgG]]\n"
"\t[-M|--persistent {y|n}] [--major major] [--minor minor]\n"
"\t[-n|--name LogicalVolumeName]\n"
"\t[--noudevsync]\n"
"\t[-p|--permission {r|rw}]\n"
"\t[-r|--readahead ReadAheadSectors|auto|none]\n"
"\t[-t|--test]\n"
"\t[--thinpool ThinPoolLogicalVolume[Path]]\n"
"\t[-v|--verbose]\n"
"\t[--version]\n"
"\t[PhysicalVolumePath...]\n\n",
addtag_ARG, alloc_ARG, autobackup_ARG, activate_ARG, available_ARG,
chunksize_ARG, contiguous_ARG, corelog_ARG, discards_ARG, extents_ARG,
ignoremonitoring_ARG, major_ARG, minor_ARG, mirrorlog_ARG, mirrors_ARG,
monitor_ARG, minrecoveryrate_ARG, maxrecoveryrate_ARG, name_ARG, nosync_ARG,
noudevsync_ARG, permission_ARG,
persistent_ARG, readahead_ARG, regionsize_ARG, size_ARG, snapshot_ARG,
stripes_ARG, stripesize_ARG, test_ARG, thin_ARG, thinpool_ARG, type_ARG,
virtualoriginsize_ARG, poolmetadatasize_ARG, virtualsize_ARG, zero_ARG)
2001-09-25 16:49:28 +04:00
xx(lvdisplay,
"Display information about a logical volume",
PERMITTED_READ_ONLY,
2001-09-25 16:49:28 +04:00
"lvdisplay\n"
"\t[-a|--all]\n"
"\t[-c|--colon]\n"
"\t[-d|--debug]\n"
"\t[-h|--help]\n"
"\t[--ignorelockingfailure]\n"
"\t[-m|--maps]\n"
"\t[--nosuffix]\n"
"\t[-P|--partial] " "\n"
"\t[--units hHbBsSkKmMgGtTpPeE]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
"\t[LogicalVolume[Path] [LogicalVolume[Path]...]]\n"
"\n"
"lvdisplay --columns|-C\n"
"\t[--aligned]\n"
"\t[-a|--all]\n"
"\t[-d|--debug]\n"
"\t[-h|--help]\n"
"\t[--ignorelockingfailure]\n"
"\t[--noheadings]\n"
"\t[--nosuffix]\n"
"\t[-o|--options [+]Field[,Field]]\n"
"\t[-O|--sort [+|-]key1[,[+|-]key2[,...]]]\n"
"\t[-P|--partial] " "\n"
"\t[--segments]\n"
"\t[--separator Separator]\n"
"\t[--unbuffered]\n"
"\t[--units hHbBsSkKmMgGtTpPeE]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
"\t[LogicalVolume[Path] [LogicalVolume[Path]...]]\n",
2001-09-25 16:49:28 +04:00
aligned_ARG, all_ARG, colon_ARG, columns_ARG,
ignorelockingfailure_ARG, maps_ARG, noheadings_ARG, nosuffix_ARG,
options_ARG, sort_ARG, partial_ARG, segments_ARG, separator_ARG,
unbuffered_ARG, units_ARG)
2001-09-25 16:49:28 +04:00
xx(lvextend,
"Add space to a logical volume",
0,
2001-09-25 16:49:28 +04:00
"lvextend\n"
"\t[-A|--autobackup y|n]\n"
2004-11-16 21:09:32 +03:00
"\t[--alloc AllocationPolicy]\n"
"\t[-d|--debug]\n"
2008-06-12 17:24:02 +04:00
"\t[-f|--force]\n"
"\t[-h|--help]\n"
"\t[-i|--stripes Stripes [-I|--stripesize StripeSize]]\n"
"\t{-l|--extents [+]LogicalExtentsNumber[%{VG|LV|PVS|FREE|ORIGIN}] |\n"
"\t -L|--size [+]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}\n"
"\t --poolmetadatasize [+]MetadataVolumeSize[bBsSkKmMgG]}\n"
2005-06-03 23:48:19 +04:00
"\t[-m|--mirrors Mirrors]\n"
Allow 'nosync' extension of mirrors. This patch allows a mirror to be extended without an initial resync of the extended portion. It compliments the existing '--nosync' option to lvcreate. This action can be done implicitly if the mirror was created with the '--nosync' option, or explicitly if the '--nosync' option is used when extending the device. Here are the operational criteria: 1) A mirror created with '--nosync' should extend with 'nosync' implicitly [EXAMPLE]# lvs vg; lvextend -L +5G vg/lv ; lvs vg LV VG Attr LSize Pool Origin Snap% Move Log Copy% Convert lv vg Mwi-a-m- 5.00g lv_mlog 100.00 Extending 2 mirror images. Extending logical volume lv to 10.00 GiB Logical volume lv successfully resized LV VG Attr LSize Pool Origin Snap% Move Log Copy% Convert lv vg Mwi-a-m- 10.00g lv_mlog 100.00 2) The 'M' attribute ('M' signifies a mirror created with '--nosync', while 'm' signifies a mirror created w/o '--nosync') must be preserved when extending a mirror created with '--nosync'. See #1 for example of 'M' attribute. 3) A mirror created without '--nosync' should extend with 'nosync' only when '--nosync' is explicitly used when extending. [EXAMPLE]# lvs vg; lvextend -L +5G vg/lv; lvs vg LV VG Attr LSize Pool Origin Snap% Move Log Copy% Convert lv vg mwi-a-m- 20.00m lv_mlog 100.00 Extending 2 mirror images. Extending logical volume lv to 5.02 GiB Logical volume lv successfully resized LV VG Attr LSize Pool Origin Snap% Move Log Copy% Convert lv vg mwi-a-m- 5.02g lv_mlog 0.39 vs. [EXAMPLE]# lvs vg; lvextend -L +5G vg/lv --nosync; lvs vg LV VG Attr LSize Pool Origin Snap% Move Log Copy% Convert lv vg mwi-a-m- 20.00m lv_mlog 100.00 Extending 2 mirror images. Extending logical volume lv to 5.02 GiB Logical volume lv successfully resized LV VG Attr LSize Pool Origin Snap% Move Log Copy% Convert lv vg Mwi-a-m- 5.02g lv_mlog 100.00 4) The 'm' attribute must change to 'M' when extending a mirror created without '--nosync' is extended with the '--nosync' option. (See #3 examples above.) 5) An inactive mirror's sync percent cannot be determined definitively, so it must not be allowed to skip resync. Instead, the extend should ask the user if they want to extend while performing a resync. [EXAMPLE]# lvchange -an vg/lv [EXAMPLE]# lvextend -L +5G vg/lv Extending 2 mirror images. Extending logical volume lv to 10.00 GiB vg/lv is not active. Unable to get sync percent. Do full resync of extended portion of vg/lv? [y/n]: y Logical volume lv successfully resized 6) A mirror that is performing recovery (as opposed to an initial sync) - like after a failure - is not allowed to extend with either an implicit or explicit nosync option. [You can simulate this with a 'corelog' mirror because when it is reactivated, it must be recovered every time.] [EXAMPLE]# lvcreate -m1 -L 5G -n lv vg --nosync --corelog WARNING: New mirror won't be synchronised. Don't read what you didn't write! Logical volume "lv" created [EXAMPLE]# lvs vg LV VG Attr LSize Pool Origin Snap% Move Log Copy% Convert lv vg Mwi-a-m- 5.00g 100.00 [EXAMPLE]# lvchange -an vg/lv; lvchange -ay vg/lv; lvs vg LV VG Attr LSize Pool Origin Snap% Move Log Copy% Convert lv vg Mwi-a-m- 5.00g 0.08 [EXAMPLE]# lvextend -L +5G vg/lv Extending 2 mirror images. Extending logical volume lv to 10.00 GiB vg/lv cannot be extended while it is recovering. 7) If 'no' is selected in #5 or if the condition in #6 is hit, it should not result in the mirror being resized or the 'm/M' attribute being changed. NOTE: A mirror created with '--nosync' behaves differently than one created without it when performing an extension. The former cannot be extended when the mirror is recovering (unless in-active), while the latter can. This is a reasonable thing to do since recovery of a mirror doesn't take long (at least in the case of an on-disk log) and it would cause far more time in degraded mode if the extension w/o '--nosync' was allowed. It might be reasonable to add the ability to force the operation in the future. This should /not/ force a nosync extension, but rather force a sync'ed extension. IOW, the user would be saying, "Yes, yes... I know recovery won't take long and that I'll be adding significantly to the time spent in degraded mode, but I need the extra space right now!".
2011-10-06 19:32:26 +04:00
"\t[--nosync]\n"
"\t[--use-policies]\n"
"\t[-n|--nofsck]\n"
"\t[--noudevsync]\n"
"\t[-r|--resizefs]\n"
"\t[-t|--test]\n"
"\t[--type VolumeType]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
2001-09-25 16:49:28 +04:00
"\tLogicalVolume[Path] [ PhysicalVolumePath... ]\n",
2008-06-12 17:24:02 +04:00
alloc_ARG, autobackup_ARG, extents_ARG, force_ARG, mirrors_ARG,
nofsck_ARG, nosync_ARG, noudevsync_ARG, poolmetadatasize_ARG,
resizefs_ARG, size_ARG, stripes_ARG,
stripesize_ARG, test_ARG, type_ARG, use_policies_ARG)
2001-09-25 16:49:28 +04:00
xx(lvmchange,
"With the device mapper, this is obsolete and does nothing.",
0,
"lvmchange\n"
"\t[-d|--debug]\n"
"\t[-h|--help]\n"
"\t[-R|--reset]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n",
2001-09-25 16:49:28 +04:00
reset_ARG)
2001-09-25 16:49:28 +04:00
xx(lvmdiskscan,
"List devices that may be used as physical volumes",
PERMITTED_READ_ONLY,
2001-09-25 16:49:28 +04:00
"lvmdiskscan\n"
"\t[-d|--debug]\n"
"\t[-h|--help]\n"
"\t[-l|--lvmpartition]\n"
"\t[--version]" "\n",
2001-09-25 16:49:28 +04:00
lvmpartition_ARG)
xx(lvmsadc,
"Collect activity data",
0,
2001-09-25 16:49:28 +04:00
"lvmsadc\n"
"\t[-d|--debug]\n"
"\t[-h|--help]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
2001-09-25 16:49:28 +04:00
"\t[LogFilePath]\n" )
xx(lvmsar,
"Create activity report",
0,
2001-09-25 16:49:28 +04:00
"lvmsar\n"
"\t[-d|--debug]\n"
"\t[-f|--full]\n"
"\t[-h|--help]\n"
"\t[-s|--stdin]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
2001-09-25 16:49:28 +04:00
"\tLogFilePath\n",
full_ARG, stdin_ARG)
2001-09-25 16:49:28 +04:00
xx(lvreduce,
"Reduce the size of a logical volume",
0,
2001-09-25 16:49:28 +04:00
"lvreduce\n"
"\t[-A|--autobackup y|n]\n"
"\t[-d|--debug]\n"
"\t[-f|--force]\n"
"\t[-h|--help]\n"
"\t{-l|--extents [-]LogicalExtentsNumber[%{VG|LV|FREE|ORIGIN}] |\n"
"\t -L|--size [-]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}\n"
"\t[-n|--nofsck]\n"
"\t[--noudevsync]\n"
"\t[-r|--resizefs]\n"
"\t[-t|--test]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
"\t[-y|--yes]\n"
2001-09-25 16:49:28 +04:00
"\tLogicalVolume[Path]\n",
autobackup_ARG, force_ARG, extents_ARG, nofsck_ARG, noudevsync_ARG,
resizefs_ARG, size_ARG, test_ARG)
2001-09-25 16:49:28 +04:00
xx(lvremove,
"Remove logical volume(s) from the system",
0,
2001-09-25 16:49:28 +04:00
"lvremove\n"
"\t[-A|--autobackup y|n]\n"
"\t[-d|--debug]\n"
"\t[-f|--force]\n"
"\t[-h|--help]\n"
"\t[--noudevsync]\n"
"\t[-t|--test]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
2001-09-25 16:49:28 +04:00
"\tLogicalVolume[Path] [LogicalVolume[Path]...]\n",
autobackup_ARG, force_ARG, noudevsync_ARG, test_ARG)
2001-09-25 16:49:28 +04:00
xx(lvrename,
"Rename a logical volume",
0,
"lvrename\n"
"\t[-A|--autobackup {y|n}] " "\n"
"\t[-d|--debug] " "\n"
"\t[-h|-?|--help] " "\n"
"\t[--noudevsync]\n"
"\t[-t|--test] " "\n"
"\t[-v|--verbose]" "\n"
"\t[--version] " "\n"
"\t{ OldLogicalVolumePath NewLogicalVolumePath |" "\n"
"\t VolumeGroupName OldLogicalVolumeName NewLogicalVolumeName }\n",
2001-09-25 16:49:28 +04:00
autobackup_ARG, noudevsync_ARG, test_ARG)
2001-09-25 16:49:28 +04:00
xx(lvresize,
"Resize a logical volume",
0,
"lvresize\n"
"\t[-A|--autobackup y|n]\n"
2004-11-16 21:09:32 +03:00
"\t[--alloc AllocationPolicy]\n"
"\t[-d|--debug]\n"
2008-06-12 17:24:02 +04:00
"\t[-f|--force]\n"
"\t[-h|--help]\n"
"\t[-i|--stripes Stripes [-I|--stripesize StripeSize]]\n"
"\t{-l|--extents [+|-]LogicalExtentsNumber[%{VG|LV|PVS|FREE|ORIGIN}] |\n"
"\t -L|--size [+|-]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}\n"
"\t --poolmetadatasize [+]MetadataVolumeSize[bBsSkKmMgG]}\n"
"\t[-n|--nofsck]\n"
"\t[--noudevsync]\n"
"\t[-r|--resizefs]\n"
"\t[-t|--test]\n"
"\t[--type VolumeType]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
"\tLogicalVolume[Path] [ PhysicalVolumePath... ]\n",
2008-06-12 17:24:02 +04:00
alloc_ARG, autobackup_ARG, extents_ARG, force_ARG, nofsck_ARG,
noudevsync_ARG, resizefs_ARG, poolmetadatasize_ARG,
size_ARG, stripes_ARG, stripesize_ARG,
test_ARG, type_ARG)
xx(lvs,
"Display information about logical volumes",
PERMITTED_READ_ONLY,
"lvs" "\n"
"\t[-a|--all]\n"
"\t[--aligned]\n"
"\t[-d|--debug]\n"
"\t[-h|--help]\n"
"\t[--ignorelockingfailure]\n"
2008-06-06 23:28:35 +04:00
"\t[--nameprefixes]\n"
"\t[--noheadings]\n"
"\t[--nosuffix]\n"
"\t[-o|--options [+]Field[,Field]]\n"
"\t[-O|--sort [+|-]key1[,[+|-]key2[,...]]]\n"
"\t[-P|--partial] " "\n"
2008-06-25 02:48:53 +04:00
"\t[--rows]\n"
"\t[--segments]\n"
"\t[--separator Separator]\n"
"\t[--trustcache]\n"
"\t[--unbuffered]\n"
"\t[--units hHbBsSkKmMgGtTpPeE]\n"
2008-06-25 01:21:04 +04:00
"\t[--unquoted]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
"\t[LogicalVolume[Path] [LogicalVolume[Path]...]]\n",
2008-06-06 23:28:35 +04:00
aligned_ARG, all_ARG, ignorelockingfailure_ARG, nameprefixes_ARG,
noheadings_ARG, nolocking_ARG, nosuffix_ARG, options_ARG, partial_ARG,
2008-06-25 02:48:53 +04:00
rows_ARG, segments_ARG, separator_ARG, sort_ARG, trustcache_ARG,
unbuffered_ARG, units_ARG, unquoted_ARG)
2001-09-25 16:49:28 +04:00
xx(lvscan,
"List all logical volumes in all volume groups",
PERMITTED_READ_ONLY,
"lvscan " "\n"
2005-10-17 20:41:38 +04:00
"\t[-a|--all]\n"
"\t[-b|--blockdevice] " "\n"
"\t[-d|--debug] " "\n"
"\t[-h|-?|--help] " "\n"
"\t[--ignorelockingfailure]\n"
"\t[-P|--partial] " "\n"
"\t[-v|--verbose] " "\n"
"\t[--version]\n",
2001-09-25 16:49:28 +04:00
all_ARG, blockdevice_ARG, ignorelockingfailure_ARG, partial_ARG)
2001-09-25 16:49:28 +04:00
xx(pvchange,
"Change attributes of physical volume(s)",
0,
2001-09-25 16:49:28 +04:00
"pvchange\n"
"\t[-a|--all]\n"
"\t[-A|--autobackup y|n]\n"
"\t[-d|--debug]\n"
"\t[-f|--force]\n"
"\t[-h|--help]\n"
"\t[-t|--test]\n"
"\t[-u|--uuid]\n"
"\t[-x|--allocatable y|n]\n"
"\t[--metadataignore y|n]\n"
"\t[-v|--verbose]\n"
2004-03-08 20:19:15 +03:00
"\t[--addtag Tag]\n"
"\t[--deltag Tag]\n"
"\t[--version]" "\n"
2001-09-25 16:49:28 +04:00
"\t[PhysicalVolumePath...]\n",
2004-03-08 20:19:15 +03:00
all_ARG, allocatable_ARG, allocation_ARG, autobackup_ARG, deltag_ARG,
addtag_ARG, force_ARG, metadataignore_ARG, test_ARG, uuid_ARG)
2001-09-25 16:49:28 +04:00
xx(pvresize,
"Resize physical volume(s)",
0,
"pvresize " "\n"
"\t[-d|--debug]" "\n"
"\t[-h|-?|--help] " "\n"
"\t[--setphysicalvolumesize PhysicalVolumeSize[bBsSkKmMgGtTpPeE]" "\n"
"\t[-t|--test] " "\n"
"\t[-v|--verbose] " "\n"
"\t[--version] " "\n"
"\tPhysicalVolume [PhysicalVolume...]\n",
physicalvolumesize_ARG, test_ARG)
xx(pvck,
"Check the consistency of physical volume(s)",
0,
"pvck "
"\t[-d|--debug]\n"
"\t[-h|--help]\n"
"\t[--labelsector sector] " "\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
"\tPhysicalVolume [PhysicalVolume...]\n",
labelsector_ARG)
2001-09-25 16:49:28 +04:00
xx(pvcreate,
"Initialize physical volume(s) for use by LVM",
0,
"pvcreate " "\n"
"\t[--norestorefile]\n"
2002-11-18 17:04:08 +03:00
"\t[--restorefile file]\n"
"\t[-d|--debug]" "\n"
"\t[-f[f]|--force [--force]] " "\n"
"\t[-h|-?|--help] " "\n"
2002-11-18 17:04:08 +03:00
"\t[--labelsector sector] " "\n"
"\t[-M|--metadatatype 1|2]" "\n"
"\t[--pvmetadatacopies #copies]" "\n"
"\t[--metadatasize MetadataSize[bBsSkKmMgGtTpPeE]]" "\n"
"\t[--bootloaderareasize BootLoaderAreaSize[bBsSkKmMgGtTpPeE]]" "\n"
"\t[--dataalignment Alignment[bBsSkKmMgGtTpPeE]]" "\n"
"\t[--dataalignmentoffset AlignmentOffset[bBsSkKmMgGtTpPeE]]" "\n"
"\t[--setphysicalvolumesize PhysicalVolumeSize[bBsSkKmMgGtTpPeE]" "\n"
"\t[-t|--test] " "\n"
"\t[-u|--uuid uuid] " "\n"
"\t[-v|--verbose] " "\n"
2002-11-18 17:04:08 +03:00
"\t[-y|--yes]" "\n"
"\t[-Z|--zero {y|n}]\n"
"\t[--version] " "\n"
"\tPhysicalVolume [PhysicalVolume...]\n",
2001-09-25 16:49:28 +04:00
dataalignment_ARG, dataalignmentoffset_ARG, bootloaderareasize_ARG,
force_ARG, test_ARG, labelsector_ARG, metadatatype_ARG,
metadatacopies_ARG, metadatasize_ARG, metadataignore_ARG,
norestorefile_ARG, physicalvolumesize_ARG, pvmetadatacopies_ARG,
restorefile_ARG, uuidstr_ARG, zero_ARG)
2001-09-25 16:49:28 +04:00
xx(pvdata,
"Display the on-disk metadata for physical volume(s)",
0,
"pvdata " "\n"
"\t[-a|--all] " "\n"
"\t[-d|--debug] " "\n"
"\t[-E|--physicalextent] " "\n"
"\t[-h|-?|--help]" "\n"
"\t[-L|--logicalvolume] " "\n"
"\t[-P[P]|--physicalvolume [--physicalvolume]]" "\n"
"\t[-U|--uuidlist] " "\n"
"\t[-v[v]|--verbose [--verbose]] " "\n"
"\t[-V|--volumegroup]" "\n"
"\t[--version] " "\n"
"\tPhysicalVolume [PhysicalVolume...]\n",
2001-09-25 16:49:28 +04:00
all_ARG, logicalextent_ARG, physicalextent_ARG,
physicalvolume_ARG, uuidlist_ARG, volumegroup_ARG)
xx(pvdisplay,
"Display various attributes of physical volume(s)",
CACHE_VGMETADATA | PERMITTED_READ_ONLY,
2001-09-25 16:49:28 +04:00
"pvdisplay\n"
"\t[-c|--colon]\n"
"\t[-d|--debug]\n"
"\t[-h|--help]\n"
"\t[--ignorelockingfailure]\n"
"\t[-m|--maps]\n"
"\t[--nosuffix]\n"
"\t[-s|--short]\n"
"\t[--units hHbBsSkKmMgGtTpPeE]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
"\t[PhysicalVolumePath [PhysicalVolumePath...]]\n"
"\n"
"pvdisplay --columns|-C\n"
"\t[--aligned]\n"
2005-03-21 17:47:36 +03:00
"\t[-a|--all]\n"
"\t[-d|--debug]\n"
"\t[-h|--help]\n"
"\t[--ignorelockingfailure]\n"
"\t[--noheadings]\n"
"\t[--nosuffix]\n"
"\t[-o|--options [+]Field[,Field]]\n"
"\t[-O|--sort [+|-]key1[,[+|-]key2[,...]]]\n"
"\t[--separator Separator]\n"
"\t[--unbuffered]\n"
"\t[--units hHbBsSkKmMgGtTpPeE]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
"\t[PhysicalVolumePath [PhysicalVolumePath...]]\n",
2001-09-25 16:49:28 +04:00
2005-03-21 17:47:36 +03:00
aligned_ARG, all_ARG, colon_ARG, columns_ARG, ignorelockingfailure_ARG,
maps_ARG, noheadings_ARG, nosuffix_ARG, options_ARG, separator_ARG,
short_ARG, sort_ARG, unbuffered_ARG, units_ARG)
2001-09-25 16:49:28 +04:00
xx(pvmove,
"Move extents from one physical volume to another",
0,
2003-04-30 19:28:17 +04:00
"pvmove " "\n"
2003-05-06 16:08:58 +04:00
"\t[--abort]\n"
2003-04-30 19:28:17 +04:00
"\t[-A|--autobackup {y|n}]\n"
2004-11-16 21:09:32 +03:00
"\t[--alloc AllocationPolicy]\n"
2003-05-06 16:08:58 +04:00
"\t[-b|--background]\n"
2003-04-30 19:28:17 +04:00
"\t[-d|--debug]\n "
"\t[-h|-?|--help]\n"
"\t[-i|--interval seconds]\n"
"\t[--noudevsync]\n"
2003-04-30 19:28:17 +04:00
"\t[-t|--test]\n "
"\t[-v|--verbose]\n "
"\t[--version]\n"
2003-09-15 19:01:36 +04:00
"\t[{-n|--name} LogicalVolume]\n"
2003-04-30 19:28:17 +04:00
/* "\t[{-n|--name} LogicalVolume[:LogicalExtent[-LogicalExtent]...]]\n" */
2004-08-18 22:49:29 +04:00
"\tSourcePhysicalVolume[:PhysicalExtent[-PhysicalExtent]...]}\n"
2003-04-30 19:28:17 +04:00
"\t[DestinationPhysicalVolume[:PhysicalExtent[-PhysicalExtent]...]...]\n",
2001-09-25 16:49:28 +04:00
abort_ARG, alloc_ARG, autobackup_ARG, background_ARG,
interval_ARG, name_ARG, noudevsync_ARG, test_ARG)
2001-09-25 16:49:28 +04:00
2002-11-18 17:04:08 +03:00
xx(pvremove,
"Remove LVM label(s) from physical volume(s)",
0,
2002-11-18 17:04:08 +03:00
"pvremove " "\n"
"\t[-d|--debug]" "\n"
"\t[-f[f]|--force [--force]] " "\n"
"\t[-h|-?|--help] " "\n"
2002-11-18 17:04:08 +03:00
"\t[-t|--test] " "\n"
"\t[-v|--verbose] " "\n"
"\t[--version] " "\n"
"\t[-y|--yes]" "\n"
2002-11-18 17:04:08 +03:00
"\tPhysicalVolume [PhysicalVolume...]\n",
force_ARG, test_ARG)
2002-11-18 17:04:08 +03:00
xx(pvs,
"Display information about physical volumes",
CACHE_VGMETADATA | PERMITTED_READ_ONLY,
"pvs" "\n"
"\t[-a|--all]\n"
"\t[--aligned]\n"
"\t[-d|--debug]" "\n"
"\t[-h|-?|--help] " "\n"
"\t[--ignorelockingfailure]\n"
2008-06-06 23:28:35 +04:00
"\t[--nameprefixes]\n"
"\t[--noheadings]\n"
"\t[--nosuffix]\n"
"\t[-o|--options [+]Field[,Field]]\n"
"\t[-O|--sort [+|-]key1[,[+|-]key2[,...]]]\n"
2006-04-13 21:51:40 +04:00
"\t[-P|--partial] " "\n"
2008-06-25 02:48:53 +04:00
"\t[--rows]\n"
2005-04-20 00:58:25 +04:00
"\t[--segments]\n"
"\t[--separator Separator]\n"
"\t[--trustcache]\n"
"\t[--unbuffered]\n"
"\t[--units hHbBsSkKmMgGtTpPeE]\n"
2008-06-25 01:21:04 +04:00
"\t[--unquoted]\n"
"\t[-v|--verbose]\n"
"\t[--version]\n"
"\t[PhysicalVolume [PhysicalVolume...]]\n",
2008-06-06 23:28:35 +04:00
aligned_ARG, all_ARG, ignorelockingfailure_ARG, nameprefixes_ARG,
noheadings_ARG, nolocking_ARG, nosuffix_ARG, options_ARG, partial_ARG,
2008-06-25 02:48:53 +04:00
rows_ARG, segments_ARG, separator_ARG, sort_ARG, trustcache_ARG,
unbuffered_ARG, units_ARG, unquoted_ARG)
2001-09-25 16:49:28 +04:00
xx(pvscan,
"List all physical volumes",
PERMITTED_READ_ONLY,
"pvscan " "\n"
"\t[-a|--activate ay]\n"
2012-03-06 07:11:13 +04:00
"\t[--cache [ DevicePath | --major major --minor minor]...]\n"
"\t[-d|--debug] " "\n"
"\t{-e|--exported | -n|--novolumegroup} " "\n"
"\t[-h|-?|--help]" "\n"
"\t[--ignorelockingfailure]\n"
"\t[-P|--partial] " "\n"
"\t[-s|--short] " "\n"
"\t[-u|--uuid] " "\n"
"\t[-v|--verbose] " "\n"
"\t[--version]\n",
2001-09-25 16:49:28 +04:00
activate_ARG, available_ARG, cache_ARG, exported_ARG,
ignorelockingfailure_ARG, major_ARG, minor_ARG,
novolumegroup_ARG, partial_ARG, short_ARG, uuid_ARG)
2001-09-25 16:49:28 +04:00
2004-09-14 20:42:46 +04:00
xx(segtypes,
"List available segment types",
PERMITTED_READ_ONLY,
2004-09-14 20:42:46 +04:00
"segtypes\n")
2001-09-25 16:49:28 +04:00
xx(vgcfgbackup,
"Backup volume group configuration(s)",
PERMITTED_READ_ONLY,
"vgcfgbackup " "\n"
"\t[-d|--debug] " "\n"
"\t[-f|--file filename] " "\n"
"\t[-h|-?|--help] " "\n"
"\t[--ignorelockingfailure]\n"
2002-07-11 18:09:26 +04:00
"\t[-P|--partial] " "\n"
"\t[-v|--verbose]" "\n"
"\t[--version] " "\n"
"\t[VolumeGroupName...]\n",
file_ARG, ignorelockingfailure_ARG, partial_ARG)
2001-09-25 16:49:28 +04:00
xx(vgcfgrestore,
"Restore volume group configuration",
0,
"vgcfgrestore " "\n"
"\t[-d|--debug] " "\n"
"\t[-f|--file filename] " "\n"
"\t[--force]\n"
"\t[-l[l]|--list [--list]]" "\n"
2002-11-18 17:04:08 +03:00
"\t[-M|--metadatatype 1|2]" "\n"
"\t[-h|--help]" "\n"
"\t[-t|--test] " "\n"
"\t[-v|--verbose]" "\n"
"\t[--version] " "\n"
"\tVolumeGroupName",
2001-09-25 16:49:28 +04:00
file_ARG, force_long_ARG, list_ARG, metadatatype_ARG, test_ARG)
2001-09-25 16:49:28 +04:00
xx(vgchange,
"Change volume group attributes",
CACHE_VGMETADATA | PERMITTED_READ_ONLY,
"vgchange" "\n"
"\t[-A|--autobackup {y|n}] " "\n"
2004-11-16 21:09:32 +03:00
"\t[--alloc AllocationPolicy] " "\n"
"\t[-P|--partial] " "\n"
"\t[-d|--debug] " "\n"
"\t[--detachprofile] " "\n"
"\t[-h|--help] " "\n"
"\t[--ignorelockingfailure]\n"
"\t[--ignoremonitoring]\n"
"\t[--monitor {y|n}]\n"
"\t[--[vg]metadatacopies #copies] " "\n"
"\t[--poll {y|n}]\n"
"\t[--noudevsync]\n"
"\t[--refresh]\n"
"\t[--sysinit]\n"
"\t[-t|--test]" "\n"
"\t[-u|--uuid] " "\n"
"\t[-v|--verbose] " "\n"
"\t[--version]" "\n"
"\t{-a|--activate [a|e|l]{y|n} |" "\n"
"\t -c|--clustered {y|n} |" "\n"
"\t -x|--resizeable {y|n} |" "\n"
2004-03-08 20:19:15 +03:00
"\t -l|--logicalvolume MaxLogicalVolumes |" "\n"
2006-08-16 18:41:42 +04:00
"\t -p|--maxphysicalvolumes MaxPhysicalVolumes |" "\n"
"\t -s|--physicalextentsize PhysicalExtentSize[bBsSkKmMgGtTpPeE] |" "\n"
2004-03-08 20:19:15 +03:00
"\t --addtag Tag |\n"
"\t --deltag Tag}\n"
"\t[VolumeGroupName...]\n",
2001-09-25 16:49:28 +04:00
addtag_ARG, alloc_ARG, allocation_ARG, autobackup_ARG, activate_ARG,
available_ARG, clustered_ARG, deltag_ARG, detachprofile_ARG,
ignorelockingfailure_ARG, ignoremonitoring_ARG, logicalvolume_ARG,
maxphysicalvolumes_ARG, monitor_ARG, noudevsync_ARG, metadatacopies_ARG,
vgmetadatacopies_ARG, partial_ARG, physicalextentsize_ARG, poll_ARG,
refresh_ARG, resizeable_ARG, resizable_ARG, sysinit_ARG, test_ARG, uuid_ARG)
2001-09-25 16:49:28 +04:00
xx(vgck,
"Check the consistency of volume group(s)",
0,
2001-09-25 16:49:28 +04:00
"vgck "
"\t[-d|--debug]\n"
"\t[-h|--help]\n"
"\t[-v|--verbose]\n"
2003-04-30 19:28:17 +04:00
"\t[--version]" "\n"
2001-09-25 16:49:28 +04:00
"\t[VolumeGroupName...]\n" )
2002-11-18 17:04:08 +03:00
xx(vgconvert,
"Change volume group metadata format",
0,
2002-11-18 17:04:08 +03:00
"vgconvert " "\n"
"\t[-d|--debug]" "\n"
"\t[-h|--help] " "\n"
"\t[--labelsector sector] " "\n"
"\t[-M|--metadatatype 1|2]" "\n"
"\t[--pvmetadatacopies #copies]" "\n"
"\t[--metadatasize MetadataSize[bBsSkKmMgGtTpPeE]]" "\n"
"\t[--bootloaderareasize BootLoaderAreaSize[bBsSkKmMgGtTpPeE]]" "\n"
2002-11-18 17:04:08 +03:00
"\t[-t|--test] " "\n"
"\t[-v|--verbose] " "\n"
"\t[--version] " "\n"
"\tVolumeGroupName [VolumeGroupName...]\n",
force_ARG, test_ARG, labelsector_ARG, bootloaderareasize_ARG,
metadatatype_ARG, metadatacopies_ARG, pvmetadatacopies_ARG,
metadatasize_ARG )
2002-11-18 17:04:08 +03:00
2001-09-25 16:49:28 +04:00
xx(vgcreate,
"Create a volume group",
0,
"vgcreate" "\n"
"\t[-A|--autobackup {y|n}] " "\n"
2004-03-08 20:19:15 +03:00
"\t[--addtag Tag] " "\n"
2004-11-16 21:09:32 +03:00
"\t[--alloc AllocationPolicy] " "\n"
2007-01-23 16:08:34 +03:00
"\t[-c|--clustered {y|n}] " "\n"
"\t[-d|--debug]" "\n"
"\t[-h|--help]" "\n"
"\t[-l|--maxlogicalvolumes MaxLogicalVolumes]" "\n"
2002-11-18 17:04:08 +03:00
"\t[-M|--metadatatype 1|2] " "\n"
"\t[--[vg]metadatacopies #copies] " "\n"
"\t[-p|--maxphysicalvolumes MaxPhysicalVolumes] " "\n"
"\t[-s|--physicalextentsize PhysicalExtentSize[bBsSkKmMgGtTpPeE]] " "\n"
"\t[-t|--test] " "\n"
"\t[-v|--verbose]" "\n"
"\t[--version] " "\n"
"\t[-y|--yes]" "\n"
"\t[ PHYSICAL DEVICE OPTIONS ] " "\n"
"\tVolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]\n",
2001-09-25 16:49:28 +04:00
addtag_ARG, alloc_ARG, autobackup_ARG, clustered_ARG, maxlogicalvolumes_ARG,
maxphysicalvolumes_ARG, metadatatype_ARG, physicalextentsize_ARG, test_ARG,
force_ARG, zero_ARG, labelsector_ARG, metadatasize_ARG,
pvmetadatacopies_ARG, metadatacopies_ARG, vgmetadatacopies_ARG,
dataalignment_ARG, dataalignmentoffset_ARG)
2001-09-25 16:49:28 +04:00
xx(vgdisplay,
"Display volume group information",
PERMITTED_READ_ONLY,
"vgdisplay " "\n"
"\t[-A|--activevolumegroups]" "\n"
"\t[-c|--colon | -s|--short | -v|--verbose]" "\n"
"\t[-d|--debug] " "\n"
"\t[-h|--help] " "\n"
2002-11-18 17:04:08 +03:00
"\t[--ignorelockingfailure]" "\n"
"\t[--nosuffix]\n"
"\t[-P|--partial] " "\n"
"\t[--units hHbBsSkKmMgGtTpPeE]\n"
"\t[--version]" "\n"
"\t[VolumeGroupName [VolumeGroupName...]]\n"
"\n"
"vgdisplay --columns|-C\n"
"\t[--aligned]\n"
"\t[-d|--debug] " "\n"
"\t[-h|--help] " "\n"
"\t[--ignorelockingfailure]" "\n"
"\t[--noheadings]\n"
"\t[--nosuffix]\n"
"\t[-o|--options [+]Field[,Field]]\n"
"\t[-O|--sort [+|-]key1[,[+|-]key2[,...]]]\n"
"\t[-P|--partial] " "\n"
"\t[--separator Separator]\n"
"\t[--unbuffered]\n"
"\t[--units hHbBsSkKmMgGtTpPeE]\n"
"\t[--verbose]" "\n"
"\t[--version]" "\n"
"\t[VolumeGroupName [VolumeGroupName...]]\n",
2001-09-25 16:49:28 +04:00
activevolumegroups_ARG, aligned_ARG, colon_ARG, columns_ARG,
ignorelockingfailure_ARG, noheadings_ARG, nosuffix_ARG, options_ARG,
partial_ARG, short_ARG, separator_ARG, sort_ARG, unbuffered_ARG, units_ARG)
2001-09-25 16:49:28 +04:00
xx(vgexport,
"Unregister volume group(s) from the system",
0,
"vgexport " "\n"
"\t[-a|--all] " "\n"
"\t[-d|--debug] " "\n"
"\t[-h|--help]" "\n"
"\t[-v|--verbose] " "\n"
"\t[--version] " "\n"
"\tVolumeGroupName [VolumeGroupName...]\n",
2001-09-25 16:49:28 +04:00
all_ARG, test_ARG)
2001-09-25 16:49:28 +04:00
xx(vgextend,
"Add physical volumes to a volume group",
0,
2001-09-25 16:49:28 +04:00
"vgextend\n"
"\t[-A|--autobackup y|n]\n"
"\t[--restoremissing]\n"
"\t[-d|--debug]\n"
"\t[-f|--force]\n"
"\t[-h|--help]\n"
"\t[-t|--test]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
"\t[-y|--yes]\n"
"\t[ PHYSICAL DEVICE OPTIONS ] " "\n"
"\tVolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]\n",
2001-09-25 16:49:28 +04:00
autobackup_ARG, test_ARG,
force_ARG, zero_ARG, labelsector_ARG, metadatatype_ARG,
metadatasize_ARG, pvmetadatacopies_ARG, metadatacopies_ARG,
metadataignore_ARG, dataalignment_ARG, dataalignmentoffset_ARG,
restoremissing_ARG)
2001-09-25 16:49:28 +04:00
xx(vgimport,
"Register exported volume group with system",
0,
"vgimport " "\n"
"\t[-a|--all]\n"
"\t[-d|--debug] " "\n"
"\t[-f|--force] " "\n"
"\t[-h|--help] " "\n"
"\t[-t|--test] " "\n"
"\t[-v|--verbose]" "\n"
"\t[--version]" "\n"
"\tVolumeGroupName..." "\n",
2001-09-25 16:49:28 +04:00
all_ARG, force_ARG, test_ARG)
2001-09-25 16:49:28 +04:00
xx(vgmerge,
"Merge volume groups",
0,
2001-09-25 16:49:28 +04:00
"vgmerge\n"
"\t[-A|--autobackup y|n]\n"
"\t[-d|--debug]\n"
"\t[-h|--help]\n"
"\t[-l|--list]\n"
"\t[-t|--test]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
2001-09-25 16:49:28 +04:00
"\tDestinationVolumeGroupName SourceVolumeGroupName\n",
autobackup_ARG, list_ARG, test_ARG)
xx(vgmknodes,
"Create the special files for volume group devices in /dev",
0,
2001-09-25 16:49:28 +04:00
"vgmknodes\n"
"\t[-d|--debug]\n"
"\t[-h|--help]\n"
"\t[--ignorelockingfailure]\n"
"\t[--refresh]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
"\t[VolumeGroupName...]\n",
ignorelockingfailure_ARG, refresh_ARG)
2001-09-25 16:49:28 +04:00
xx(vgreduce,
"Remove physical volume(s) from a volume group",
0,
2001-09-25 16:49:28 +04:00
"vgreduce\n"
"\t[-a|--all]\n"
"\t[-A|--autobackup y|n]\n"
"\t[-d|--debug]\n"
"\t[-h|--help]\n"
"\t[--mirrorsonly]\n"
"\t[--removemissing]\n"
"\t[-f|--force]\n"
"\t[-t|--test]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
2001-09-25 16:49:28 +04:00
"\tVolumeGroupName\n"
"\t[PhysicalVolumePath...]\n",
2008-09-19 11:18:03 +04:00
all_ARG, autobackup_ARG, force_ARG, mirrorsonly_ARG, removemissing_ARG,
test_ARG)
2001-09-25 16:49:28 +04:00
xx(vgremove,
"Remove volume group(s)",
0,
2001-09-25 16:49:28 +04:00
"vgremove\n"
"\t[-d|--debug]\n"
"\t[-f|--force]\n"
"\t[-h|--help]\n"
"\t[--noudevsync]\n"
"\t[-t|--test]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
"\tVolumeGroupName [VolumeGroupName...]\n",
force_ARG, noudevsync_ARG, test_ARG)
2001-09-25 16:49:28 +04:00
xx(vgrename,
"Rename a volume group",
0,
2001-09-25 16:49:28 +04:00
"vgrename\n"
"\t[-A|--autobackup y|n]\n"
"\t[-d|--debug]\n"
"\t[-h|--help]\n"
"\t[-t|--test]\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n"
"\tOldVolumeGroupPath NewVolumeGroupPath |\n"
2001-09-25 16:49:28 +04:00
"\tOldVolumeGroupName NewVolumeGroupName\n",
autobackup_ARG, force_ARG, test_ARG)
2001-09-25 16:49:28 +04:00
xx(vgs,
"Display information about volume groups",
PERMITTED_READ_ONLY,
"vgs" "\n"
"\t[--aligned]\n"
"\t[-a|--all]\n"
"\t[-d|--debug]\n"
"\t[-h|--help]\n"
"\t[--ignorelockingfailure]\n"
2008-06-06 23:28:35 +04:00
"\t[--nameprefixes]\n"
"\t[--noheadings]\n"
"\t[--nosuffix]\n"
"\t[-o|--options [+]Field[,Field]]\n"
"\t[-O|--sort [+|-]key1[,[+|-]key2[,...]]]\n"
"\t[-P|--partial] " "\n"
2008-06-25 02:48:53 +04:00
"\t[--rows]\n"
"\t[--separator Separator]\n"
"\t[--trustcache]\n"
"\t[--unbuffered]\n"
"\t[--units hHbBsSkKmMgGtTpPeE]\n"
2008-06-25 01:21:04 +04:00
"\t[--unquoted]\n"
"\t[-v|--verbose]\n"
"\t[--version]\n"
"\t[VolumeGroupName [VolumeGroupName...]]\n",
2008-06-06 23:28:35 +04:00
aligned_ARG, all_ARG, ignorelockingfailure_ARG, nameprefixes_ARG,
noheadings_ARG, nolocking_ARG, nosuffix_ARG, options_ARG, partial_ARG,
2008-06-25 02:48:53 +04:00
rows_ARG, separator_ARG, sort_ARG, trustcache_ARG, unbuffered_ARG, units_ARG,
2008-06-25 01:21:04 +04:00
unquoted_ARG)
2001-09-25 16:49:28 +04:00
xx(vgscan,
"Search for all volume groups",
PERMITTED_READ_ONLY,
2001-09-25 16:49:28 +04:00
"vgscan "
"\t[--cache]\n"
"\t[-d|--debug]\n"
"\t[-h|--help]\n"
"\t[--ignorelockingfailure]\n"
2003-11-14 17:03:48 +03:00
"\t[--mknodes]\n"
"\t[-P|--partial] " "\n"
"\t[-v|--verbose]\n"
"\t[--version]" "\n",
cache_ARG, ignorelockingfailure_ARG, mknodes_ARG, partial_ARG)
2001-09-25 16:49:28 +04:00
xx(vgsplit,
"Move physical volumes into a new or existing volume group",
0,
"vgsplit " "\n"
"\t[-A|--autobackup {y|n}] " "\n"
"\t[--alloc AllocationPolicy] " "\n"
"\t[-c|--clustered {y|n}] " "\n"
"\t[-d|--debug] " "\n"
"\t[-h|--help] " "\n"
"\t[-l|--maxlogicalvolumes MaxLogicalVolumes]" "\n"
2002-11-18 17:04:08 +03:00
"\t[-M|--metadatatype 1|2] " "\n"
"\t[--[vg]metadatacopies #copies] " "\n"
"\t[-n|--name LogicalVolumeName]\n"
"\t[-p|--maxphysicalvolumes MaxPhysicalVolumes] " "\n"
"\t[-t|--test] " "\n"
"\t[-v|--verbose] " "\n"
"\t[--version]" "\n"
"\tSourceVolumeGroupName DestinationVolumeGroupName" "\n"
"\t[PhysicalVolumePath...]\n",
2001-09-25 16:49:28 +04:00
alloc_ARG, autobackup_ARG, clustered_ARG,
maxlogicalvolumes_ARG, maxphysicalvolumes_ARG,
metadatatype_ARG, vgmetadatacopies_ARG, name_ARG, test_ARG)
xx(version,
"Display software and driver version information",
PERMITTED_READ_ONLY,
"version\n" )