mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
Allow commandline sizes to be specified in terms of bytes and sectors.
Update the man pages to document size units uniformly.
This commit is contained in:
parent
bb6a3a9608
commit
c1060e13a7
@ -1,5 +1,7 @@
|
||||
Version 2.02.49 -
|
||||
================================
|
||||
Update the man pages to document size units uniformly.
|
||||
Allow specifying commandline sizes in terms of bytes and sectors.
|
||||
Update 'md_chunk_alignment' to use stripe-width to align PV data area.
|
||||
Update test/t-inconsistent-metadata.sh to match new vg_read interface.
|
||||
Add lvmcache_init() to polldaemon initialization.
|
||||
|
@ -9,7 +9,7 @@ lvcreate \- create a logical volume in an existing volume group
|
||||
[\-h|\-?|\-\-help]
|
||||
[\-i|\-\-stripes Stripes [\-I|\-\-stripesize StripeSize]]
|
||||
{\-l|\-\-extents LogicalExtentsNumber[%{VG|PVS|FREE}] |
|
||||
\-L|\-\-size LogicalVolumeSize[kKmMgGtT]}
|
||||
\-L|\-\-size LogicalVolumeSize[bBsSkKmMgGtTpPeE]}
|
||||
[\-M|\-\-persistent y|n] [\-\-minor minor]
|
||||
[\-m|\-\-mirrors Mirrors [\-\-nosync] [\-\-mirrorlog {disk|core}] [\-\-corelog]
|
||||
[\-R|\-\-regionsize MirrorLogRegionSize]]
|
||||
@ -23,7 +23,7 @@ VolumeGroupName [PhysicalVolumePath...]
|
||||
.br
|
||||
.B lvcreate
|
||||
{\-l|\-\-extents LogicalExtentsNumber[%{VG|FREE}] |
|
||||
\-L|\-\-size LogicalVolumeSize[kKmMgGtT]}
|
||||
\-L|\-\-size LogicalVolumeSize[bBsSkKmMgGtTpPeE]}
|
||||
[\-c|\-\-chunksize ChunkSize]
|
||||
\-n|\-\-name SnapshotLogicalVolumeName
|
||||
{{\-s|\-\-snapshot}
|
||||
@ -76,7 +76,7 @@ free space in the Volume Group with the suffix %FREE, or
|
||||
of the remaining free space for the specified PhysicalVolume(s)
|
||||
with the suffix %PVS,
|
||||
.TP
|
||||
.I \-L, \-\-size LogicalVolumeSize[kKmMgGtTpPeE]
|
||||
.I \-L, \-\-size LogicalVolumeSize[bBsSkKmMgGtTpPeE]
|
||||
Gives the size to allocate for the new logical volume.
|
||||
A size suffix of K for kilobytes, M for megabytes,
|
||||
G for gigabytes, T for terabytes, P for petabytes
|
||||
|
@ -7,7 +7,7 @@ lvextend \- extend the size of a logical volume
|
||||
[\-A|\-\-autobackup y|n] [\-d|\-\-debug] [\-h|\-?|\-\-help]
|
||||
[\-i|\-\-stripes Stripes [\-I|\-\-stripesize StripeSize]]
|
||||
{\-l|\-\-extents [+]LogicalExtentsNumber[%{VG|LV|PVS|FREE}] |
|
||||
\-L|\-\-size [+]LogicalVolumeSize[kKmMgGtT]}
|
||||
\-L|\-\-size [+]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}
|
||||
[\-t|\-\-test]
|
||||
[\-v|\-\-verbose] LogicalVolumePath [PhysicalVolumePath...]
|
||||
.SH DESCRIPTION
|
||||
@ -32,7 +32,7 @@ free space for the specified PhysicalVolume(s) with the suffix %PVS,
|
||||
or as a percentage of the remaining free space in the Volume Group
|
||||
with the suffix %FREE.
|
||||
.TP
|
||||
.I \-L, \-\-size [+]LogicalVolumeSize[kKmMgGtTpPeE]
|
||||
.I \-L, \-\-size [+]LogicalVolumeSize[bBsSkKmMgGtTpPeE]
|
||||
Extend or set the logical volume size in units of megabytes.
|
||||
A size suffix of M for megabytes,
|
||||
G for gigabytes, T for terabytes, P for petabytes
|
||||
|
@ -6,7 +6,7 @@ lvreduce \- reduce the size of a logical volume
|
||||
[\-A|\-\-autobackup y|n] [\-d|\-\-debug] [\-f|\-\-force]
|
||||
[\-h|\-?|\-\-help]
|
||||
{\-l|\-\-extents [\-]LogicalExtentsNumber[%{VG|LV|FREE}] |
|
||||
\-L|\-\-size [\-]LogicalVolumeSize[kKmMgGtT]}
|
||||
\-L|\-\-size [\-]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}
|
||||
[\-t|\-\-test]
|
||||
[\-v|\-\-verbose] LogicalVolume[Path]
|
||||
.SH DESCRIPTION
|
||||
@ -46,7 +46,7 @@ in the Volume Group with the suffix %VG or relative to the existing
|
||||
size of the Logical Volume with the suffix %LV or as a percentage of the remaining
|
||||
free space in the Volume Group with the suffix %FREE.
|
||||
.TP
|
||||
.I \-L, \-\-size [\-]LogicalVolumeSize[kKmMgGtTpPeE]
|
||||
.I \-L, \-\-size [\-]LogicalVolumeSize[bBsSkKmMgGtTpPeE]
|
||||
Reduce or set the logical volume size in units of megabyte by default.
|
||||
A size suffix of k for kilobyte, m for megabyte,
|
||||
g for gigabytes, t for terabytes, p for petabytes
|
||||
|
@ -7,7 +7,7 @@ lvresize \- resize a logical volume
|
||||
[\-A|\-\-autobackup y|n] [\-d|\-\-debug] [\-h|\-?|\-\-help]
|
||||
[\-i|\-\-stripes Stripes [\-I|\-\-stripesize StripeSize]]
|
||||
{\-l|\-\-extents [+]LogicalExtentsNumber[%{VG|LV|PVS|FREE}] |
|
||||
\-L|\-\-size [+]LogicalVolumeSize[kKmMgGtT]}
|
||||
\-L|\-\-size [+]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}
|
||||
[\-t|\-\-test]
|
||||
[\-v|\-\-verbose] LogicalVolumePath [PhysicalVolumePath...]
|
||||
.SH DESCRIPTION
|
||||
@ -36,7 +36,7 @@ the remaining free space of the PhysicalVolumes on the command line with the
|
||||
suffix %PVS, or as a percentage of the remaining free space in the
|
||||
Volume Group with the suffix %FREE.
|
||||
.TP
|
||||
.I \-L, \-\-size [+|-]LogicalVolumeSize[kKmMgGtTpPeE]
|
||||
.I \-L, \-\-size [+|-]LogicalVolumeSize[bBsSkKmMgGtTpPeE]
|
||||
Change or set the logical volume size in units of megabytes.
|
||||
A size suffix of M for megabytes,
|
||||
G for gigabytes, T for terabytes, P for petabytes
|
||||
|
@ -24,7 +24,7 @@ vgchange \- change attributes of a volume group
|
||||
.IR MaxPhysicalVolumes ]
|
||||
.RB [ \-P | \-\-partial]
|
||||
.RB [ \-s | \-\-physicalextentsize
|
||||
.IR PhysicalExtentSize [ \fBkKmMgGtT\fR ]]
|
||||
.IR PhysicalExtentSize [ \fBbBsSkKmMgGtTpPeE\fR ]]
|
||||
.RB [ \-\-refresh]
|
||||
.RB [ -t | \-\-test]
|
||||
.RB [ \-v | \-\-verbose]
|
||||
@ -108,7 +108,7 @@ for tool performance reasons, you should consider
|
||||
some use of \fB--metadatacopies 0\fP
|
||||
as described in \fBpvcreate(8)\fP.
|
||||
.TP
|
||||
.BR \-s ", " \-\-physicalextentsize " " \fIPhysicalExtentSize\fR[\fBkKmMgGtT\fR]
|
||||
.BR \-s ", " \-\-physicalextentsize " " \fIPhysicalExtentSize\fR[\fBbBsSkKmMgGtTpPeE\fR]
|
||||
Changes the physical extent size on physical volumes of this volume group.
|
||||
A size suffix (k for kilobytes up to t for terabytes) is optional, megabytes
|
||||
is the default if no suffix is present.
|
||||
|
@ -17,7 +17,7 @@ vgcreate \- create a volume group
|
||||
.RB [ -p | \-\-maxphysicalvolumes
|
||||
.IR MaxPhysicalVolumes ]
|
||||
.RB [ \-s | \-\-physicalextentsize
|
||||
.IR PhysicalExtentSize [ \fBkKmMgGtT\fR ]]
|
||||
.IR PhysicalExtentSize [ \fBbBsSkKmMgGtTpPeE\fR ]]
|
||||
.RB [ \-t | \-\-test ]
|
||||
.RB [ \-v | \-\-verbose ]
|
||||
.RB [ \-\-version ]
|
||||
@ -66,7 +66,7 @@ for tool performance reasons, you should consider
|
||||
some use of \fB--metadatacopies 0\fP
|
||||
as described in \fBpvcreate(8)\fP.
|
||||
.TP
|
||||
.BR \-s ", " \-\-physicalextentsize " " \fIPhysicalExtentSize\fR[\fBkKmMgGtT\fR]
|
||||
.BR \-s ", " \-\-physicalextentsize " " \fIPhysicalExtentSize\fR[\fBbBsSkKmMgGtTpPeE\fR]
|
||||
Sets the physical extent size on physical volumes of this volume group.
|
||||
A size suffix (k for kilobytes up to t for terabytes) is optional, megabytes
|
||||
is the default if no suffix is present.
|
||||
|
@ -19,7 +19,7 @@ xx(e2fsadm,
|
||||
"e2fsadm "
|
||||
"[-d|--debug] " "[-h|--help] " "[-n|--nofsck]" "\n"
|
||||
"\t{[-l|--extents] [+|-]LogicalExtentsNumber |" "\n"
|
||||
"\t [-L|--size] [+|-]LogicalVolumeSize[kKmMgGtTpPeE]}" "\n"
|
||||
"\t [-L|--size] [+|-]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}" "\n"
|
||||
"\t[-t|--test] " "\n"
|
||||
"\t[-v|--verbose] " "\n"
|
||||
"\t[--version] " "\n"
|
||||
@ -133,7 +133,7 @@ xx(lvcreate,
|
||||
"\t[-h|-?|--help]\n"
|
||||
"\t[-i|--stripes Stripes [-I|--stripesize StripeSize]]\n"
|
||||
"\t{-l|--extents LogicalExtentsNumber |\n"
|
||||
"\t -L|--size LogicalVolumeSize[kKmMgGtTpPeE]}\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}|--corelog}]]\n"
|
||||
"\t[-n|--name LogicalVolumeName]\n"
|
||||
@ -159,7 +159,7 @@ xx(lvcreate,
|
||||
"\t[-h|-?|--help]\n"
|
||||
"\t[-i|--stripes Stripes [-I|--stripesize StripeSize]]\n"
|
||||
"\t{-l|--extents LogicalExtentsNumber[%{VG|LV|PVS|FREE}] |\n"
|
||||
"\t -L|--size LogicalVolumeSize[kKmMgGtTpPeE]}\n"
|
||||
"\t -L|--size LogicalVolumeSize[bBsSkKmMgGtTpPeE]}\n"
|
||||
"\t[-M|--persistent {y|n}] [--major major] [--minor minor]\n"
|
||||
"\t[-n|--name LogicalVolumeName]\n"
|
||||
"\t[-p|--permission {r|rw}]\n"
|
||||
@ -228,7 +228,7 @@ xx(lvextend,
|
||||
"\t[-h|--help]\n"
|
||||
"\t[-i|--stripes Stripes [-I|--stripesize StripeSize]]\n"
|
||||
"\t{-l|--extents [+]LogicalExtentsNumber[%{VG|PVS|FREE}] |\n"
|
||||
"\t -L|--size [+]LogicalVolumeSize[kKmMgGtTpPeE]}\n"
|
||||
"\t -L|--size [+]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}\n"
|
||||
"\t[-m|--mirrors Mirrors]\n"
|
||||
"\t[-n|--nofsck]\n"
|
||||
"\t[-r|--resizefs]\n"
|
||||
@ -298,7 +298,7 @@ xx(lvreduce,
|
||||
"\t[-f|--force]\n"
|
||||
"\t[-h|--help]\n"
|
||||
"\t{-l|--extents [-]LogicalExtentsNumber[%{VG|LV|FREE}] |\n"
|
||||
"\t -L|--size [-]LogicalVolumeSize[kKmMgGtTpPeE]}\n"
|
||||
"\t -L|--size [-]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}\n"
|
||||
"\t[-n|--nofsck]\n"
|
||||
"\t[-r|--resizefs]\n"
|
||||
"\t[-t|--test]\n"
|
||||
@ -351,7 +351,7 @@ xx(lvresize,
|
||||
"\t[-h|--help]\n"
|
||||
"\t[-i|--stripes Stripes [-I|--stripesize StripeSize]]\n"
|
||||
"\t{-l|--extents [+|-]LogicalExtentsNumber[%{VG|LV|PVS|FREE}] |\n"
|
||||
"\t -L|--size [+|-]LogicalVolumeSize[kKmMgGtTpPeE]}\n"
|
||||
"\t -L|--size [+|-]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}\n"
|
||||
"\t[-n|--nofsck]\n"
|
||||
"\t[-r|--resizefs]\n"
|
||||
"\t[-t|--test]\n"
|
||||
@ -436,7 +436,7 @@ xx(pvresize,
|
||||
"pvresize " "\n"
|
||||
"\t[-d|--debug]" "\n"
|
||||
"\t[-h|-?|--help] " "\n"
|
||||
"\t[--setphysicalvolumesize PhysicalVolumeSize[kKmMgGtTpPeE]" "\n"
|
||||
"\t[--setphysicalvolumesize PhysicalVolumeSize[bBsSkKmMgGtTpPeE]" "\n"
|
||||
"\t[-t|--test] " "\n"
|
||||
"\t[-v|--verbose] " "\n"
|
||||
"\t[--version] " "\n"
|
||||
@ -468,9 +468,9 @@ xx(pvcreate,
|
||||
"\t[--labelsector sector] " "\n"
|
||||
"\t[-M|--metadatatype 1|2]" "\n"
|
||||
"\t[--metadatacopies #copies]" "\n"
|
||||
"\t[--metadatasize MetadataSize[kKmMgGtTpPeE]]" "\n"
|
||||
"\t[--dataalignment Alignment[kKmMgGtTpPeE]]" "\n"
|
||||
"\t[--setphysicalvolumesize PhysicalVolumeSize[kKmMgGtTpPeE]" "\n"
|
||||
"\t[--metadatasize MetadataSize[bBsSkKmMgGtTpPeE]]" "\n"
|
||||
"\t[--dataalignment Alignment[bBsSkKmMgGtTpPeE]]" "\n"
|
||||
"\t[--setphysicalvolumesize PhysicalVolumeSize[bBsSkKmMgGtTpPeE]" "\n"
|
||||
"\t[-t|--test] " "\n"
|
||||
"\t[-u|--uuid uuid] " "\n"
|
||||
"\t[-v|--verbose] " "\n"
|
||||
@ -683,7 +683,7 @@ xx(vgchange,
|
||||
"\t -x|--resizeable {y|n} |" "\n"
|
||||
"\t -l|--logicalvolume MaxLogicalVolumes |" "\n"
|
||||
"\t -p|--maxphysicalvolumes MaxPhysicalVolumes |" "\n"
|
||||
"\t -s|--physicalextentsize PhysicalExtentSize[kKmMgGtTpPeE] |" "\n"
|
||||
"\t -s|--physicalextentsize PhysicalExtentSize[bBsSkKmMgGtTpPeE] |" "\n"
|
||||
"\t --addtag Tag |\n"
|
||||
"\t --deltag Tag}\n"
|
||||
"\t[VolumeGroupName...]\n",
|
||||
@ -713,7 +713,7 @@ xx(vgconvert,
|
||||
"\t[--labelsector sector] " "\n"
|
||||
"\t[-M|--metadatatype 1|2]" "\n"
|
||||
"\t[--metadatacopies #copies]" "\n"
|
||||
"\t[--metadatasize MetadataSize[kKmMgGtTpPeE]]" "\n"
|
||||
"\t[--metadatasize MetadataSize[bBsSkKmMgGtTpPeE]]" "\n"
|
||||
"\t[-t|--test] " "\n"
|
||||
"\t[-v|--verbose] " "\n"
|
||||
"\t[--version] " "\n"
|
||||
@ -735,7 +735,7 @@ xx(vgcreate,
|
||||
"\t[-l|--maxlogicalvolumes MaxLogicalVolumes]" "\n"
|
||||
"\t[-M|--metadatatype 1|2] " "\n"
|
||||
"\t[-p|--maxphysicalvolumes MaxPhysicalVolumes] " "\n"
|
||||
"\t[-s|--physicalextentsize PhysicalExtentSize[kKmMgGtTpPeE]] " "\n"
|
||||
"\t[-s|--physicalextentsize PhysicalExtentSize[bBsSkKmMgGtTpPeE]] " "\n"
|
||||
"\t[-t|--test] " "\n"
|
||||
"\t[-v|--verbose]" "\n"
|
||||
"\t[--version] " "\n"
|
||||
|
@ -239,9 +239,10 @@ static int _size_arg(struct cmd_context *cmd __attribute((unused)), struct arg *
|
||||
{
|
||||
char *ptr;
|
||||
int i;
|
||||
static const char *suffixes = "kmgtpe";
|
||||
static const char *suffixes = "kmgtpebs";
|
||||
char *val;
|
||||
double v;
|
||||
uint64_t v_tmp, adjustment;
|
||||
|
||||
a->percent = PERCENT_NONE;
|
||||
|
||||
@ -272,13 +273,29 @@ static int _size_arg(struct cmd_context *cmd __attribute((unused)), struct arg *
|
||||
if (suffixes[i] == tolower((int) *ptr))
|
||||
break;
|
||||
|
||||
if (i < 0)
|
||||
if (i < 0) {
|
||||
return 0;
|
||||
|
||||
while (i-- > 0)
|
||||
v *= 1024;
|
||||
|
||||
v *= 2;
|
||||
} else if (i == 7) {
|
||||
/* sectors */
|
||||
v = v;
|
||||
} else if (i == 6) {
|
||||
/* bytes */
|
||||
v_tmp = (uint64_t) v;
|
||||
adjustment = v_tmp % 512;
|
||||
if (adjustment) {
|
||||
v_tmp += (512 - adjustment);
|
||||
log_error("Size is not a multiple of 512. "
|
||||
"Try using %lu or %lu.",
|
||||
v_tmp - 512, v_tmp);
|
||||
return 0;
|
||||
}
|
||||
v /= 512;
|
||||
} else {
|
||||
/* all other units: kmgtpe */
|
||||
while (i-- > 0)
|
||||
v *= 1024;
|
||||
v *= 2;
|
||||
}
|
||||
} else
|
||||
v *= factor;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user