From 63bea03ed10fc4f10cff2c86fb23da8702e465ed Mon Sep 17 00:00:00 2001 From: Alasdair Kergon Date: Tue, 16 Nov 2004 18:09:32 +0000 Subject: [PATCH] More man page updates. --- WHATS_NEW | 1 + doc/example.conf | 6 +++++ man/lvchange.8 | 2 +- man/lvcreate.8 | 1 + man/lvextend.8 | 1 + man/lvm.8 | 21 +++++++++++++++++ man/lvm.conf.5 | 59 +++++++++++++++++++++++++++++++++++++----------- man/lvreduce.8 | 13 +++++++---- man/lvresize.8 | 3 ++- man/pvmove.8 | 4 +++- man/vgchange.8 | 28 ++++++++++++----------- man/vgcreate.8 | 6 +++-- tools/commands.h | 16 ++++++------- 13 files changed, 118 insertions(+), 43 deletions(-) diff --git a/WHATS_NEW b/WHATS_NEW index 363446a84..8224ddada 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -7,6 +7,7 @@ Version 2.00.26 - Improve clvmd error reporting during startup. Make clvmd cope with large gaps in node numbers IDs. Make clvmd initialisation cope better with debugging output. + Tidy clvmd socket callbacks so all work happens outside main loop. clvmd -V now displays lvm version too. Add optional gulm build for clvmd diff --git a/doc/example.conf b/doc/example.conf index 81c00de38..8aa2855ed 100644 --- a/doc/example.conf +++ b/doc/example.conf @@ -27,6 +27,12 @@ devices { # the device will be accepted or rejected (ignored). Devices that # don't match any patterns are accepted. + # Be careful if there there are symbolic links or multiple filesystem + # entries for the same device as each name is checked separately against + # the list of patterns. The effect is that if any name matches any 'a' + # pattern, the device is accepted; otherwise if any name matches any 'r' + # pattern it is rejected; otherwise it is accepted. + # Remember to run vgscan after you change this parameter to ensure # that the cache file gets regenerated (see below). diff --git a/man/lvchange.8 b/man/lvchange.8 index 31238a94f..1cdf3e424 100644 --- a/man/lvchange.8 +++ b/man/lvchange.8 @@ -5,7 +5,7 @@ lvchange \- change attributes of a logical volume .B lvchange [\-\-addtag Tag] [\-A/\-\-autobackup y/n] [\-a/\-\-available y/n/ey/en/ly/ln] -[\-\-alloc AllocationType] +[\-\-alloc AllocationPolicy] [\-C/\-\-contiguous y/n] [\-d/\-\-debug] [\-\-deltag Tag] [\-h/\-?/\-\-help] [\-\-ignorelockingfailure] diff --git a/man/lvcreate.8 b/man/lvcreate.8 index d2dff1598..5cc1695b5 100644 --- a/man/lvcreate.8 +++ b/man/lvcreate.8 @@ -4,6 +4,7 @@ lvcreate \- create a logical volume in an existing volume group .SH SYNOPSIS .B lvcreate [\-\-addtag Tag] +[\-\-alloc AllocationPolicy] [\-A/\-\-autobackup y/n] [\-C/\-\-contiguous y/n] [\-d/\-\-debug] [\-h/\-?/\-\-help] [\-i/\-\-stripes Stripes [\-I/\-\-stripesize StripeSize]] diff --git a/man/lvextend.8 b/man/lvextend.8 index 58c71cb00..c55acec7c 100644 --- a/man/lvextend.8 +++ b/man/lvextend.8 @@ -3,6 +3,7 @@ lvextend \- extend the size of a logical volume .SH SYNOPSIS .B lvextend +[\-\-alloc AllocationPolicy] [\-A/\-\-autobackup y/n] [\-d/\-\-debug] [\-h/\-?/\-\-help] [\-i/\-\-stripes Stripes [\-I/\-\-stripesize StripeSize]] {\-l/\-\-extents [+]LogicalExtentsNumber | diff --git a/man/lvm.8 b/man/lvm.8 index bcb0d2225..ae7f8e315 100644 --- a/man/lvm.8 +++ b/man/lvm.8 @@ -134,6 +134,27 @@ Characters allowed in tags are: A-Z a-z 0-9 _ + . - .TP \fB--deltag tag\fP Delete the tag \fBtag\fP from a PV, VG or LV, if it's present. +.TP +\fB--alloc AllocationPolicy\fP +The allocation policy to use: \fBcontiguous\fP, \fBnormal\fP, \fBanywhere\fP or \fBinherit\fP. +When a command needs to allocate physical extents from the volume group, +the allocation policy controls how they are chosen. +Each volume group and logical volume has an allocation policy. +The default for a volume group is \fBnormal\fP which applies +common-sense rules such as not placing parallel stripes on the same +physical volume. The default for a logical volume is \fBinherit\fP +which applies the same policy as for the volume group. These policies can +be changed using \fBlvchange\fP (8) and \fBvgchange\fP (8) or over-ridden +on the command line of any command that performs allocation. +The \fBcontiguous\fP policy requires that new extents are adjacent to +existing extents. If there are sufficient free extents to satisfy +an allocation request but \fBnormal\fP doesn't use them, +\fBanywhere\fP will - even if that reduces performance by +placing two stripes on the same physical volume. +.IP +N.B. The policies described above are not implemented fully yet. +In particular, \fBcontiguous\fP does not place new extents adjacent to existing +extents and \fBanywhere\fP is not implemented at all. .SH ENVIRONMENT VARIABLES .TP \fBLVM_SYSTEM_DIR\fP diff --git a/man/lvm.conf.5 b/man/lvm.conf.5 index 46251ee48..57d03bbf6 100644 --- a/man/lvm.conf.5 +++ b/man/lvm.conf.5 @@ -4,9 +4,13 @@ lvm.conf \- Configuration file for LVM2 .SH SYNOPSIS .B /etc/lvm/lvm.conf .SH DESCRIPTION -lvm.conf is loaded once, during the initialisation phase of -\fBlvm\fP. +lvm.conf is loaded during the initialisation phase of +\fBlvm\fP (8). This file can in turn lead to other files +being loaded - settings read in later override earlier +settings. File timestamps are checked between commands and if +any have changed, all the files are reloaded. .LP +Use \fBlvm dumpconfig\fP to check what settings are in use. .SH SYNTAX .LP This section describes the configuration file syntax. @@ -69,7 +73,8 @@ The sections that may be present in the file are: \fBdevices\fP \(em Device settings .IP \fBdir\fP \(em Directory in which to create volume group device nodes. -Defaults to "/dev". +Defaults to "/dev". Commands also accept this as a prefix on volume +group names. .IP \fBscan\fP \(em List of directories to scan recursively for LVM physical volumes. @@ -81,8 +86,13 @@ Patterns are regular expressions delimited by any character and preceded by \fBa\fP (for accept) or \fBr\fP (for reject). The list is traversed in order, and the first regex that matches determines if the device will be accepted or rejected (ignored). Devices that don't match -any patterns are accepted. -For example, to ignore /dev/cdrom you could use: +any patterns are accepted. If you want to reject patterns that +don't match, end the list with "r/.*/". +If there are several names for the same device (e.g. symbolic links +in /dev), if any name matches any \fBa\fP pattern, the +device is accepted; otherwise if any name matches any \fBr\fP +pattern it is rejected; otherwise it is accepted. +As an example, to ignore /dev/cdrom you could use: \fBdevices { filter=["r|cdrom|"] }\fP .IP \fBcache\fP \(em Persistent filter cache file. @@ -95,9 +105,23 @@ Defaults to 1. \fBtypes\fP \(em List of pairs of additional acceptable block device types found in /proc/devices together with maximum (non-zero) number of partitions (normally 16). By default, LVM2 supports ide, sd, md, loop, -dasd, dac960, nbd, ida, cciss, ubd and ataraid. Block devices with major -numbers of different types are ignored by LVM2. Example: -\fBtypes = ["fd", 16]\fP +dasd, dac960, nbd, ida, cciss, ubd, ataraid, drbd, power2, i2o_block +and iseries/vd. Block devices with major +numbers of different types are ignored by LVM2. +Example: \fBtypes = ["fd", 16]\fP. +To create physical volumes on device-mapper volumes +created outside LVM2, perhaps encrypted ones from \fBcryptsetup\fP, +you'll need \fBtypes = ["device-mapper", 16]\fP. But if you do this, +be careful to avoid recursion within LVM2. +.IP +\fBsysfs_scan\fP (em If set to 1 and your kernel supports sysfs and +it is mounted, sysfs will be used as a quick way of filtering out +block devices that are not present. +.IP +\fBmd_component_detection\fP (em If set to 1, LVM2 will ignore devices +used as components of software RAID (md) devices by looking for md +superblocks. This doesn't always work satisfactorily e.g. if a device +has been reused without wiping the md superblocks first. .TP \fBlog\fP \(em Default log settings .IP @@ -120,7 +144,8 @@ See /usr/include/sys/syslog.h for safe facility values to use. For example, LOG_LOCAL0 might be 128. .IP \fBindent\fP \(em When set to 1 (the default) messages are indented -according to their severity. Set to 0 to turn off indentation. +according to their severity, two spaces per level. +Set to 0 to turn off indentation. .IP \fBcommand_names\fP \(em When set to 1, the command name is used as a prefix for each message. @@ -128,6 +153,11 @@ Default is 0 (off). .IP \fBprefix\fP \(em Prefix used for all messages (after the command name). Default is two spaces. +.IP +\fBactivation\fP \(em Set to 1 to log messages while +devices are suspended during activation. +Only set this temporarily while debugging a problem because +in low memory situations this setting can cause your machine to lock up. .TP \fBbackup\fP \(em Configuration for metadata backups. .IP @@ -165,8 +195,13 @@ Defaults to 30. .TP \fBglobal\fP \(em Global settings .IP -\fBtest\fP \(em If set to 1, run tools in test mode i.e. no metadata -gets updated. +\fBtest\fP \(em If set to 1, run tools in test mode i.e. no changes to +the on-disk metadata will get made. It's equivalent to having the +-t option on every command. +.IP +\fBactivation\fP \(em Set to 0 to turn off all communication with +the device-mapper driver. Useful if you want to manipulate logical +volumes while device-mapper is not present in your kernel. .IP \fBproc\fP \(em Mount point of proc filesystem. Defaults to /proc. @@ -177,8 +212,6 @@ Defaults to 077. Use 022 to allow other users to read the files by default. .SH FILES .I /etc/lvm/lvm.conf -.br -.I $HOME/.lvm_history .SH SEE ALSO .BR lvm (8) .BR umask (2) diff --git a/man/lvreduce.8 b/man/lvreduce.8 index 14240db09..e53dabc1a 100644 --- a/man/lvreduce.8 +++ b/man/lvreduce.8 @@ -21,6 +21,10 @@ running lvreduce so that the extents that are to be removed are not in use. Shrinking snapshot logical volumes (see .B lvcreate(8) for information to create snapshots) is supported as well. +.br +Sizes will be rounded if necessary - for example, the volume size must +be an exact number of extents and the size of a striped segment must +be a multiple of the number of stripes. .SH OPTIONS See \fBlvm\fP for common options. .TP @@ -41,11 +45,12 @@ With the - sign the value will be subtracted from the logical volume's actual size and without it it will be taken as an absolute size. .SH Example -"lvreduce -l -3 /dev/vg00/lvol1" reduces the size of logical volume lvol1 +"lvreduce -l -3 vg00/lvol1" reduces the size of logical volume lvol1 in volume group vg00 by 3 logical extents. .SH SEE ALSO -.BR lvm (8), +.BR lvchange (8), .BR lvcreate (8), .BR lvextend (8), -.BR lvresize (8), -.BR lvchange (8) +.BR lvm (8), +.BR lvresize (8), +.BR vgreduce (8) diff --git a/man/lvresize.8 b/man/lvresize.8 index 6eef558a5..bb7f57d07 100644 --- a/man/lvresize.8 +++ b/man/lvresize.8 @@ -3,6 +3,7 @@ lvresize \- resize a logical volume .SH SYNOPSIS .B lvresize +[\-\-alloc AllocationPolicy] [\-A/\-\-autobackup y/n] [\-d/\-\-debug] [\-h/\-?/\-\-help] [\-i/\-\-stripes Stripes [\-I/\-\-stripesize StripeSize]] {\-l/\-\-extents [+]LogicalExtentsNumber | @@ -27,7 +28,7 @@ With the + or - sign the value is added to or subtracted from the actual size of the logical volume and without it, the value is taken as an absolute one. .TP .I \-L, \-\-size [+/-]LogicalVolumeSize[kKmMgGtT] -Change or set the logical volume size in units in units of megabytes. +Change or set the logical volume size in units of megabytes. A size suffix of M for megabytes, G for gigabytes or T for terabytes is optional. With the + or - sign the value is added to or subtracted from the actual size of the logical volume and without it, the value is taken as an diff --git a/man/pvmove.8 b/man/pvmove.8 index a97f9bd7e..6bf385b2a 100644 --- a/man/pvmove.8 +++ b/man/pvmove.8 @@ -3,7 +3,9 @@ pvmove \- move physical extents .SH SYNOPSIS .B pvmove -[\-\-abort] [\-\-background] +[\-\-abort] +[\-\-alloc AllocationPolicy] +[\-\-background] [\-d/\-\-debug] [\-h/\-\-help] [\-i/\-\-interval Seconds] [\-v/\-\-verbose] [\-n/\-\-name LogicalVolume] [SourcePhysicalVolume[:PE[-PE]...] [DestinationPhysicalVolume[:PE[-PE]...]...]] diff --git a/man/vgchange.8 b/man/vgchange.8 index 702d44d1e..87ddc4dee 100644 --- a/man/vgchange.8 +++ b/man/vgchange.8 @@ -3,22 +3,24 @@ vgchange \- change attributes of a volume group .SH SYNOPSIS .B vgchange -.RB [\-\-addtag +.RB [ \-\-addtag .IR Tag ] -.RB [\-A | \-\-autobackup " {" y | n }] -.RB [\-a | \-\-available " [e|l] {" y | n }] -.RB [\-d | \-\-debug] -.RB [\-\-deltag +.RB [ \-\-alloc +.IR AllocationPolicy ] +.RB [ \-A | \-\-autobackup " {" y | n }] +.RB [ \-a | \-\-available " [e|l] {" y | n }] +.RB [ \-d | \-\-debug] +.RB [ \-\-deltag .IR Tag ] -.RB [\-h | \-\-help] -.RB [\-\-ignorelockingfailure] -.RB [\-l | \-\-logicalvolume +.RB [ \-h | \-\-help] +.RB [ \-\-ignorelockingfailure] +.RB [ \-l | \-\-logicalvolume .IR MaxLogicalVolumes ] -.RB [\-P | \-\-partial] -.RB [-t | \-\-test] -.RB [\-v | \-\-verbose] -.RB [\-\-version ] -.RB [\-x | \-\-resizeable " {" y | n }] +.RB [ \-P | \-\-partial] +.RB [ -t | \-\-test] +.RB [ \-v | \-\-verbose] +.RB [ \-\-version ] +.RB [ \-x | \-\-resizeable " {" y | n }] .RI [ VolumeGroupName ...] .SH DESCRIPTION .B vgchange diff --git a/man/vgcreate.8 b/man/vgcreate.8 index 9a617625f..d1d9b2a03 100644 --- a/man/vgcreate.8 +++ b/man/vgcreate.8 @@ -5,6 +5,8 @@ vgcreate \- create a volume group .B vgcreate .RB [ \-\-addtag .IR Tag ] +.RB [ \-\-alloc +.IR AllocationPolicy ] .RB [ \-A | \-\-autobackup " {" y | n }] .RB [ \-d | \-\-debug ] .RB [ \-h | \-\-help ] @@ -58,11 +60,11 @@ changes of the PE size in an existing VG are not supported. To create a volume group named .B test_vg using physical volumes -.BR /dev/hdk1 ", " /dev/hdl1 ", and " /dev/hdm1 +.BR /dev/hdk1 ", and " /dev/hdl1 with default physical extent size of 4MB: .nf -\ vgcreate test_vg /dev/sd[k-m]1 +\ vgcreate test_vg /dev/sdk1 /dev/sdl1 .fi To limit kernel memory usage, there is a limit of 65536 physical extents diff --git a/tools/commands.h b/tools/commands.h index 3ce1e199e..c249d8959 100644 --- a/tools/commands.h +++ b/tools/commands.h @@ -56,7 +56,7 @@ xx(lvchange, "\t[-A|--autobackup y|n]\n" "\t[-a|--available [e|l]y|n]\n" "\t[--addtag Tag]\n" - "\t[--alloc AllocationType]\n" + "\t[--alloc AllocationPolicy]\n" "\t[-C|--contiguous y|n]\n" "\t[-d|--debug]\n" "\t[--deltag Tag]\n" @@ -83,7 +83,7 @@ xx(lvcreate, "lvcreate " "\n" "\t[-A|--autobackup {y|n}]\n" "\t[--addtag Tag]\n" - "\t[--alloc AllocationType]\n" + "\t[--alloc AllocationPolicy]\n" "\t[-C|--contiguous {y|n}]\n" "\t[-d|--debug]\n" "\t[-h|-?|--help]\n" @@ -105,7 +105,7 @@ xx(lvcreate, "\t[-c|--chunksize]\n" "\t[-A|--autobackup {y|n}]\n" "\t[--addtag Tag]\n" - "\t[--alloc AllocationType]\n" + "\t[--alloc AllocationPolicy]\n" "\t[-C|--contiguous {y|n}]\n" "\t[-d|--debug]\n" "\t[-h|-?|--help]\n" @@ -167,7 +167,7 @@ xx(lvextend, "Add space to a logical volume", "lvextend\n" "\t[-A|--autobackup y|n]\n" - "\t[--alloc AllocationType]\n" + "\t[--alloc AllocationPolicy]\n" "\t[-d|--debug]\n" "\t[-h|--help]\n" "\t[-i|--stripes Stripes [-I|--stripesize StripeSize]]\n" @@ -278,7 +278,7 @@ xx(lvresize, "Resize a logical volume", "lvresize\n" "\t[-A|--autobackup y|n]\n" - "\t[--alloc AllocationType]\n" + "\t[--alloc AllocationPolicy]\n" "\t[-d|--debug]\n" "\t[-h|--help]\n" "\t[-i|--stripes Stripes [-I|--stripesize StripeSize]]\n" @@ -432,7 +432,7 @@ xx(pvmove, "pvmove " "\n" "\t[--abort]\n" "\t[-A|--autobackup {y|n}]\n" - "\t[--alloc AllocationType]\n" + "\t[--alloc AllocationPolicy]\n" "\t[-b|--background]\n" "\t[-d|--debug]\n " "\t[-f|--force]\n" @@ -555,7 +555,7 @@ xx(vgchange, "Change volume group attributes", "vgchange" "\n" "\t[-A|--autobackup {y|n}] " "\n" - "\t[--alloc AllocationType] " "\n" + "\t[--alloc AllocationPolicy] " "\n" "\t[-P|--partial] " "\n" "\t[-d|--debug] " "\n" "\t[-h|--help] " "\n" @@ -606,7 +606,7 @@ xx(vgcreate, "vgcreate" "\n" "\t[-A|--autobackup {y|n}] " "\n" "\t[--addtag Tag] " "\n" - "\t[--alloc AllocationType] " "\n" + "\t[--alloc AllocationPolicy] " "\n" "\t[-d|--debug]" "\n" "\t[-h|--help]" "\n" "\t[-l|--maxlogicalvolumes MaxLogicalVolumes]" "\n"