mirror of
git://sourceware.org/git/lvm2.git
synced 2024-10-28 03:27:58 +03:00
a80192b6a7
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!".
1042 lines
30 KiB
C
1042 lines
30 KiB
C
/*
|
|
* Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
|
|
* Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
|
|
*
|
|
* This file is part of LVM2.
|
|
*
|
|
* 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.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
/*********** 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"
|
|
"\t[-t|--test] " "\n"
|
|
"\t[-v|--verbose] " "\n"
|
|
"\t[--version] " "\n"
|
|
"\tLogicalVolumePath" "\n",
|
|
|
|
extents_ARG, size_ARG, nofsck_ARG, test_ARG)
|
|
*********/
|
|
|
|
xx(dumpconfig,
|
|
"Dump active configuration",
|
|
PERMITTED_READ_ONLY,
|
|
"dumpconfig "
|
|
"\t[-f|--file filename] " "\n"
|
|
"[ConfigurationVariable...]\n",
|
|
file_ARG)
|
|
|
|
xx(formats,
|
|
"List available metadata formats",
|
|
PERMITTED_READ_ONLY,
|
|
"formats\n")
|
|
|
|
xx(help,
|
|
"Display help for commands",
|
|
PERMITTED_READ_ONLY,
|
|
"help <command>" "\n")
|
|
|
|
/*********
|
|
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")
|
|
***********/
|
|
|
|
xx(lvchange,
|
|
"Change the attributes of logical volume(s)",
|
|
CACHE_VGMETADATA | PERMITTED_READ_ONLY,
|
|
"lvchange\n"
|
|
"\t[-A|--autobackup y|n]\n"
|
|
"\t[-a|--available [e|l]y|n]\n"
|
|
"\t[--addtag Tag]\n"
|
|
"\t[--alloc AllocationPolicy]\n"
|
|
"\t[-C|--contiguous y|n]\n"
|
|
"\t[-d|--debug]\n"
|
|
"\t[--deltag Tag]\n"
|
|
"\t[-f|--force]\n"
|
|
"\t[-h|--help]\n"
|
|
"\t[--ignorelockingfailure]\n"
|
|
"\t[--ignoremonitoring]\n"
|
|
"\t[--monitor {y|n}]\n"
|
|
"\t[--poll {y|n}]\n"
|
|
"\t[--noudevsync]\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"
|
|
"\t[--refresh]\n"
|
|
"\t[--resync]\n"
|
|
"\t[--sysinit]\n"
|
|
"\t[-t|--test]\n"
|
|
"\t[-v|--verbose]\n"
|
|
"\t[-y|--yes]\n"
|
|
"\t[--version]" "\n"
|
|
"\tLogicalVolume[Path] [LogicalVolume[Path]...]\n",
|
|
|
|
alloc_ARG, autobackup_ARG, available_ARG, contiguous_ARG, force_ARG,
|
|
ignorelockingfailure_ARG, ignoremonitoring_ARG, major_ARG, minor_ARG,
|
|
monitor_ARG, noudevsync_ARG, partial_ARG, permission_ARG, persistent_ARG,
|
|
poll_ARG, readahead_ARG, resync_ARG, refresh_ARG, addtag_ARG, deltag_ARG,
|
|
sysinit_ARG, test_ARG, yes_ARG)
|
|
|
|
xx(lvconvert,
|
|
"Change logical volume layout",
|
|
0,
|
|
"lvconvert "
|
|
"[-m|--mirrors Mirrors [{--mirrorlog {disk|core|mirrored}|--corelog}]]\n"
|
|
"\t[--repair [--use-policies]]\n"
|
|
"\t[-R|--regionsize MirrorLogRegionSize]\n"
|
|
"\t[--alloc AllocationPolicy]\n"
|
|
"\t[-b|--background]\n"
|
|
"\t[-d|--debug]\n"
|
|
"\t[-f|--force]\n"
|
|
"\t[-h|-?|--help]\n"
|
|
"\t[-i|--interval seconds]\n"
|
|
"\t[--stripes Stripes [-I|--stripesize StripeSize]]\n"
|
|
"\t[--noudevsync]\n"
|
|
"\t[-v|--verbose]\n"
|
|
"\t[-y|--yes]\n"
|
|
"\t[--version]" "\n"
|
|
"\tLogicalVolume[Path] [PhysicalVolume[Path]...]\n\n"
|
|
|
|
"lvconvert "
|
|
"[--splitmirrors Images --trackchanges]\n"
|
|
"[--splitmirrors Images --name SplitLogicalVolumeName]\n"
|
|
"\tLogicalVolume[Path] [SplittablePhysicalVolume[Path]...]\n\n"
|
|
|
|
"lvconvert "
|
|
"[-s|--snapshot]\n"
|
|
"\t[-c|--chunksize]\n"
|
|
"\t[-d|--debug]\n"
|
|
"\t[-h|-?|--help]\n"
|
|
"\t[--noudevsync]\n"
|
|
"\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"
|
|
"\tSnapshotLogicalVolume[Path]\n",
|
|
|
|
alloc_ARG, background_ARG, chunksize_ARG, corelog_ARG, interval_ARG,
|
|
merge_ARG, mirrorlog_ARG, mirrors_ARG, name_ARG, noudevsync_ARG,
|
|
regionsize_ARG, repair_ARG, snapshot_ARG, splitmirrors_ARG, trackchanges_ARG,
|
|
stripes_long_ARG, stripesize_ARG, test_ARG,
|
|
use_policies_ARG, yes_ARG, force_ARG, zero_ARG)
|
|
|
|
xx(lvcreate,
|
|
"Create a logical volume",
|
|
0,
|
|
"lvcreate " "\n"
|
|
"\t[-A|--autobackup {y|n}]\n"
|
|
"\t[-a|--available [e|l]y|n]\n"
|
|
"\t[--addtag Tag]\n"
|
|
"\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[-n|--name LogicalVolumeName]\n"
|
|
"\t[--noudevsync]\n"
|
|
"\t[-p|--permission {r|rw}]\n"
|
|
"\t[-r|--readahead ReadAheadSectors|auto|none]\n"
|
|
"\t[-R|--regionsize MirrorLogRegionSize]\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"
|
|
"\t[--addtag Tag]\n"
|
|
"\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|FREE|ORIGIN}] |\n"
|
|
"\t -L|--size LogicalVolumeSize[bBsSkKmMgGtTpPeE]}\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] PoolLogicalVolume\n"
|
|
"\t[-v|--verbose]\n"
|
|
"\t[--version]\n"
|
|
|
|
"\t[PhysicalVolumePath...]\n\n",
|
|
|
|
addtag_ARG, alloc_ARG, autobackup_ARG, available_ARG, chunksize_ARG,
|
|
contiguous_ARG, corelog_ARG, extents_ARG, ignoremonitoring_ARG, major_ARG,
|
|
minor_ARG, mirrorlog_ARG, mirrors_ARG, monitor_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,
|
|
virtualsize_ARG, zero_ARG)
|
|
|
|
xx(lvdisplay,
|
|
"Display information about a logical volume",
|
|
PERMITTED_READ_ONLY,
|
|
"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",
|
|
|
|
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)
|
|
|
|
xx(lvextend,
|
|
"Add space to a logical volume",
|
|
0,
|
|
"lvextend\n"
|
|
"\t[-A|--autobackup y|n]\n"
|
|
"\t[--alloc AllocationPolicy]\n"
|
|
"\t[-d|--debug]\n"
|
|
"\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[-m|--mirrors Mirrors]\n"
|
|
"\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"
|
|
"\tLogicalVolume[Path] [ PhysicalVolumePath... ]\n",
|
|
|
|
alloc_ARG, autobackup_ARG, extents_ARG, force_ARG, mirrors_ARG,
|
|
nofsck_ARG, nosync_ARG, noudevsync_ARG, resizefs_ARG, size_ARG, stripes_ARG,
|
|
stripesize_ARG, test_ARG, type_ARG, use_policies_ARG)
|
|
|
|
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",
|
|
|
|
reset_ARG)
|
|
|
|
xx(lvmdiskscan,
|
|
"List devices that may be used as physical volumes",
|
|
PERMITTED_READ_ONLY,
|
|
"lvmdiskscan\n"
|
|
"\t[-d|--debug]\n"
|
|
"\t[-h|--help]\n"
|
|
"\t[-l|--lvmpartition]\n"
|
|
"\t[--version]" "\n",
|
|
|
|
lvmpartition_ARG)
|
|
|
|
xx(lvmsadc,
|
|
"Collect activity data",
|
|
0,
|
|
"lvmsadc\n"
|
|
"\t[-d|--debug]\n"
|
|
"\t[-h|--help]\n"
|
|
"\t[-v|--verbose]\n"
|
|
"\t[--version]" "\n"
|
|
"\t[LogFilePath]\n" )
|
|
|
|
xx(lvmsar,
|
|
"Create activity report",
|
|
0,
|
|
"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"
|
|
"\tLogFilePath\n",
|
|
|
|
full_ARG, stdin_ARG)
|
|
|
|
xx(lvreduce,
|
|
"Reduce the size of a logical volume",
|
|
0,
|
|
"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[-y|--yes]\n"
|
|
"\t[--version]" "\n"
|
|
"\tLogicalVolume[Path]\n",
|
|
|
|
autobackup_ARG, force_ARG, extents_ARG, nofsck_ARG, noudevsync_ARG,
|
|
resizefs_ARG, size_ARG, test_ARG, yes_ARG)
|
|
|
|
xx(lvremove,
|
|
"Remove logical volume(s) from the system",
|
|
0,
|
|
"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"
|
|
"\tLogicalVolume[Path] [LogicalVolume[Path]...]\n",
|
|
|
|
autobackup_ARG, force_ARG, noudevsync_ARG, test_ARG)
|
|
|
|
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",
|
|
|
|
autobackup_ARG, noudevsync_ARG, test_ARG)
|
|
|
|
xx(lvresize,
|
|
"Resize a logical volume",
|
|
0,
|
|
"lvresize\n"
|
|
"\t[-A|--autobackup y|n]\n"
|
|
"\t[--alloc AllocationPolicy]\n"
|
|
"\t[-d|--debug]\n"
|
|
"\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[-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",
|
|
|
|
alloc_ARG, autobackup_ARG, extents_ARG, force_ARG, nofsck_ARG,
|
|
noudevsync_ARG, resizefs_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"
|
|
"\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"
|
|
"\t[--rows]\n"
|
|
"\t[--segments]\n"
|
|
"\t[--separator Separator]\n"
|
|
"\t[--trustcache]\n"
|
|
"\t[--unbuffered]\n"
|
|
"\t[--units hHbBsSkKmMgGtTpPeE]\n"
|
|
"\t[--unquoted]\n"
|
|
"\t[-v|--verbose]\n"
|
|
"\t[--version]" "\n"
|
|
"\t[LogicalVolume[Path] [LogicalVolume[Path]...]]\n",
|
|
|
|
aligned_ARG, all_ARG, ignorelockingfailure_ARG, nameprefixes_ARG,
|
|
noheadings_ARG, nolocking_ARG, nosuffix_ARG, options_ARG, partial_ARG,
|
|
rows_ARG, segments_ARG, separator_ARG, sort_ARG, trustcache_ARG,
|
|
unbuffered_ARG, units_ARG, unquoted_ARG)
|
|
|
|
xx(lvscan,
|
|
"List all logical volumes in all volume groups",
|
|
PERMITTED_READ_ONLY,
|
|
"lvscan " "\n"
|
|
"\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",
|
|
|
|
all_ARG, blockdevice_ARG, ignorelockingfailure_ARG, partial_ARG)
|
|
|
|
xx(pvchange,
|
|
"Change attributes of physical volume(s)",
|
|
0,
|
|
"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"
|
|
"\t[--addtag Tag]\n"
|
|
"\t[--deltag Tag]\n"
|
|
"\t[--version]" "\n"
|
|
"\t[PhysicalVolumePath...]\n",
|
|
|
|
all_ARG, allocatable_ARG, allocation_ARG, autobackup_ARG, deltag_ARG,
|
|
addtag_ARG, force_ARG, metadataignore_ARG, test_ARG, uuid_ARG)
|
|
|
|
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)
|
|
|
|
xx(pvcreate,
|
|
"Initialize physical volume(s) for use by LVM",
|
|
0,
|
|
"pvcreate " "\n"
|
|
"\t[--norestorefile]\n"
|
|
"\t[--restorefile file]\n"
|
|
"\t[-d|--debug]" "\n"
|
|
"\t[-f[f]|--force [--force]] " "\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[--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"
|
|
"\t[-y|--yes]" "\n"
|
|
"\t[-Z|--zero {y|n}]\n"
|
|
"\t[--version] " "\n"
|
|
"\tPhysicalVolume [PhysicalVolume...]\n",
|
|
|
|
dataalignment_ARG, dataalignmentoffset_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, yes_ARG, zero_ARG)
|
|
|
|
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",
|
|
|
|
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,
|
|
"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"
|
|
"\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",
|
|
|
|
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)
|
|
|
|
xx(pvmove,
|
|
"Move extents from one physical volume to another",
|
|
0,
|
|
"pvmove " "\n"
|
|
"\t[--abort]\n"
|
|
"\t[-A|--autobackup {y|n}]\n"
|
|
"\t[--alloc AllocationPolicy]\n"
|
|
"\t[-b|--background]\n"
|
|
"\t[-d|--debug]\n "
|
|
"\t[-h|-?|--help]\n"
|
|
"\t[-i|--interval seconds]\n"
|
|
"\t[--noudevsync]\n"
|
|
"\t[-t|--test]\n "
|
|
"\t[-v|--verbose]\n "
|
|
"\t[--version]\n"
|
|
"\t[{-n|--name} LogicalVolume]\n"
|
|
/* "\t[{-n|--name} LogicalVolume[:LogicalExtent[-LogicalExtent]...]]\n" */
|
|
"\tSourcePhysicalVolume[:PhysicalExtent[-PhysicalExtent]...]}\n"
|
|
"\t[DestinationPhysicalVolume[:PhysicalExtent[-PhysicalExtent]...]...]\n",
|
|
|
|
abort_ARG, alloc_ARG, autobackup_ARG, background_ARG,
|
|
interval_ARG, name_ARG, noudevsync_ARG, test_ARG)
|
|
|
|
xx(pvremove,
|
|
"Remove LVM label(s) from physical volume(s)",
|
|
0,
|
|
"pvremove " "\n"
|
|
"\t[-d|--debug]" "\n"
|
|
"\t[-f[f]|--force [--force]] " "\n"
|
|
"\t[-h|-?|--help] " "\n"
|
|
"\t[-t|--test] " "\n"
|
|
"\t[-v|--verbose] " "\n"
|
|
"\t[-y|--yes]" "\n"
|
|
"\t[--version] " "\n"
|
|
"\tPhysicalVolume [PhysicalVolume...]\n",
|
|
|
|
force_ARG, test_ARG, yes_ARG)
|
|
|
|
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"
|
|
"\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"
|
|
"\t[--rows]\n"
|
|
"\t[--segments]\n"
|
|
"\t[--separator Separator]\n"
|
|
"\t[--trustcache]\n"
|
|
"\t[--unbuffered]\n"
|
|
"\t[--units hHbBsSkKmMgGtTpPeE]\n"
|
|
"\t[--unquoted]\n"
|
|
"\t[-v|--verbose]\n"
|
|
"\t[--version]\n"
|
|
"\t[PhysicalVolume [PhysicalVolume...]]\n",
|
|
|
|
aligned_ARG, all_ARG, ignorelockingfailure_ARG, nameprefixes_ARG,
|
|
noheadings_ARG, nolocking_ARG, nosuffix_ARG, options_ARG, partial_ARG,
|
|
rows_ARG, segments_ARG, separator_ARG, sort_ARG, trustcache_ARG,
|
|
unbuffered_ARG, units_ARG, unquoted_ARG)
|
|
|
|
xx(pvscan,
|
|
"List all physical volumes",
|
|
PERMITTED_READ_ONLY,
|
|
"pvscan " "\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",
|
|
|
|
exported_ARG, ignorelockingfailure_ARG, novolumegroup_ARG, partial_ARG,
|
|
short_ARG, uuid_ARG)
|
|
|
|
xx(segtypes,
|
|
"List available segment types",
|
|
PERMITTED_READ_ONLY,
|
|
"segtypes\n")
|
|
|
|
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"
|
|
"\t[-P|--partial] " "\n"
|
|
"\t[-v|--verbose]" "\n"
|
|
"\t[--version] " "\n"
|
|
"\t[VolumeGroupName...]\n",
|
|
|
|
file_ARG, ignorelockingfailure_ARG, partial_ARG)
|
|
|
|
xx(vgcfgrestore,
|
|
"Restore volume group configuration",
|
|
0,
|
|
"vgcfgrestore " "\n"
|
|
"\t[-d|--debug] " "\n"
|
|
"\t[-f|--file filename] " "\n"
|
|
"\t[-l[l]|--list [--list]]" "\n"
|
|
"\t[-M|--metadatatype 1|2]" "\n"
|
|
"\t[-h|--help]" "\n"
|
|
"\t[-t|--test] " "\n"
|
|
"\t[-v|--verbose]" "\n"
|
|
"\t[--version] " "\n"
|
|
"\tVolumeGroupName",
|
|
|
|
file_ARG, list_ARG, metadatatype_ARG, test_ARG)
|
|
|
|
xx(vgchange,
|
|
"Change volume group attributes",
|
|
CACHE_VGMETADATA | PERMITTED_READ_ONLY,
|
|
"vgchange" "\n"
|
|
"\t[-A|--autobackup {y|n}] " "\n"
|
|
"\t[--alloc AllocationPolicy] " "\n"
|
|
"\t[-P|--partial] " "\n"
|
|
"\t[-d|--debug] " "\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|--available [e|l]{y|n} |" "\n"
|
|
"\t -c|--clustered {y|n} |" "\n"
|
|
"\t -x|--resizeable {y|n} |" "\n"
|
|
"\t -l|--logicalvolume MaxLogicalVolumes |" "\n"
|
|
"\t -p|--maxphysicalvolumes MaxPhysicalVolumes |" "\n"
|
|
"\t -s|--physicalextentsize PhysicalExtentSize[bBsSkKmMgGtTpPeE] |" "\n"
|
|
"\t --addtag Tag |\n"
|
|
"\t --deltag Tag}\n"
|
|
"\t[VolumeGroupName...]\n",
|
|
|
|
addtag_ARG, alloc_ARG, allocation_ARG, autobackup_ARG, available_ARG,
|
|
clustered_ARG, deltag_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)
|
|
|
|
xx(vgck,
|
|
"Check the consistency of volume group(s)",
|
|
0,
|
|
"vgck "
|
|
"\t[-d|--debug]\n"
|
|
"\t[-h|--help]\n"
|
|
"\t[-v|--verbose]\n"
|
|
"\t[--version]" "\n"
|
|
"\t[VolumeGroupName...]\n" )
|
|
|
|
xx(vgconvert,
|
|
"Change volume group metadata format",
|
|
0,
|
|
"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[-t|--test] " "\n"
|
|
"\t[-v|--verbose] " "\n"
|
|
"\t[--version] " "\n"
|
|
"\tVolumeGroupName [VolumeGroupName...]\n",
|
|
|
|
force_ARG, test_ARG, labelsector_ARG, metadatatype_ARG, metadatacopies_ARG,
|
|
pvmetadatacopies_ARG, metadatasize_ARG )
|
|
|
|
xx(vgcreate,
|
|
"Create a volume group",
|
|
0,
|
|
"vgcreate" "\n"
|
|
"\t[-A|--autobackup {y|n}] " "\n"
|
|
"\t[--addtag Tag] " "\n"
|
|
"\t[--alloc AllocationPolicy] " "\n"
|
|
"\t[-c|--clustered {y|n}] " "\n"
|
|
"\t[-d|--debug]" "\n"
|
|
"\t[-h|--help]" "\n"
|
|
"\t[-l|--maxlogicalvolumes MaxLogicalVolumes]" "\n"
|
|
"\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[ PHYSICAL DEVICE OPTIONS ] " "\n"
|
|
"\tVolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]\n",
|
|
|
|
addtag_ARG, alloc_ARG, autobackup_ARG, clustered_ARG, maxlogicalvolumes_ARG,
|
|
maxphysicalvolumes_ARG, metadatatype_ARG, physicalextentsize_ARG, test_ARG,
|
|
force_ARG, yes_ARG, zero_ARG, labelsector_ARG, metadatasize_ARG,
|
|
pvmetadatacopies_ARG, metadatacopies_ARG, vgmetadatacopies_ARG,
|
|
dataalignment_ARG, dataalignmentoffset_ARG)
|
|
|
|
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"
|
|
"\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",
|
|
|
|
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)
|
|
|
|
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",
|
|
|
|
all_ARG, test_ARG)
|
|
|
|
xx(vgextend,
|
|
"Add physical volumes to a volume group",
|
|
0,
|
|
"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[ PHYSICAL DEVICE OPTIONS ] " "\n"
|
|
"\tVolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]\n",
|
|
|
|
autobackup_ARG, test_ARG,
|
|
force_ARG, yes_ARG, zero_ARG, labelsector_ARG, metadatatype_ARG,
|
|
metadatasize_ARG, pvmetadatacopies_ARG, metadatacopies_ARG,
|
|
metadataignore_ARG, dataalignment_ARG, dataalignmentoffset_ARG,
|
|
restoremissing_ARG)
|
|
|
|
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",
|
|
|
|
all_ARG, force_ARG, test_ARG)
|
|
|
|
xx(vgmerge,
|
|
"Merge volume groups",
|
|
0,
|
|
"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"
|
|
"\tDestinationVolumeGroupName SourceVolumeGroupName\n",
|
|
|
|
autobackup_ARG, list_ARG, test_ARG)
|
|
|
|
xx(vgmknodes,
|
|
"Create the special files for volume group devices in /dev",
|
|
0,
|
|
"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)
|
|
|
|
xx(vgreduce,
|
|
"Remove physical volume(s) from a volume group",
|
|
0,
|
|
"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"
|
|
"\tVolumeGroupName\n"
|
|
"\t[PhysicalVolumePath...]\n",
|
|
|
|
all_ARG, autobackup_ARG, force_ARG, mirrorsonly_ARG, removemissing_ARG,
|
|
test_ARG)
|
|
|
|
xx(vgremove,
|
|
"Remove volume group(s)",
|
|
0,
|
|
"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)
|
|
|
|
xx(vgrename,
|
|
"Rename a volume group",
|
|
0,
|
|
"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"
|
|
"\tOldVolumeGroupName NewVolumeGroupName\n",
|
|
|
|
autobackup_ARG, force_ARG, test_ARG)
|
|
|
|
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"
|
|
"\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"
|
|
"\t[--rows]\n"
|
|
"\t[--separator Separator]\n"
|
|
"\t[--trustcache]\n"
|
|
"\t[--unbuffered]\n"
|
|
"\t[--units hHbBsSkKmMgGtTpPeE]\n"
|
|
"\t[--unquoted]\n"
|
|
"\t[-v|--verbose]\n"
|
|
"\t[--version]\n"
|
|
"\t[VolumeGroupName [VolumeGroupName...]]\n",
|
|
|
|
aligned_ARG, all_ARG, ignorelockingfailure_ARG, nameprefixes_ARG,
|
|
noheadings_ARG, nolocking_ARG, nosuffix_ARG, options_ARG, partial_ARG,
|
|
rows_ARG, separator_ARG, sort_ARG, trustcache_ARG, unbuffered_ARG, units_ARG,
|
|
unquoted_ARG)
|
|
|
|
xx(vgscan,
|
|
"Search for all volume groups",
|
|
PERMITTED_READ_ONLY,
|
|
"vgscan "
|
|
"\t[-d|--debug]\n"
|
|
"\t[-h|--help]\n"
|
|
"\t[--ignorelockingfailure]\n"
|
|
"\t[--mknodes]\n"
|
|
"\t[-P|--partial] " "\n"
|
|
"\t[-v|--verbose]\n"
|
|
"\t[--version]" "\n",
|
|
|
|
ignorelockingfailure_ARG, mknodes_ARG, partial_ARG)
|
|
|
|
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"
|
|
"\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",
|
|
|
|
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" )
|
|
|