mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
be75076dfc
Currently, we have two modes of activation, an unnamed nominal mode (which I will refer to as "complete") and "partial" mode. The "complete" mode requires that a volume group be 'complete' - that is, no missing PVs. If there are any missing PVs, no affected LVs are allowed to activate - even RAID LVs which might be able to tolerate a failure. The "partial" mode allows anything to be activated (or at least attempted). If a non-redundant LV is missing a portion of its addressable space due to a device failure, it will be replaced with an error target. RAID LVs will either activate or fail to activate depending on how badly their redundancy is compromised. This patch adds a third option, "degraded" mode. This mode can be selected via the '--activationmode {complete|degraded|partial}' option to lvchange/vgchange. It can also be set in lvm.conf. The "degraded" activation mode allows RAID LVs with a sufficient level of redundancy to activate (e.g. a RAID5 LV with one device failure, a RAID6 with two device failures, or RAID1 with n-1 failures). RAID LVs with too many device failures are not allowed to activate - nor are any non-redundant LVs that may have been affected. This patch also makes the "degraded" mode the default activation mode. The degraded activation mode does not yet work in a cluster. A new cluster lock flag (LCK_DEGRADED_MODE) will need to be created to make that work. Currently, there is limited space for this extra flag and I am looking for possible solutions. One possible solution is to usurp LCK_CONVERT, as it is not used. When the locking_type is 3, the degraded mode flag simply gets dropped and the old ("complete") behavior is exhibited.
293 lines
12 KiB
Groff
293 lines
12 KiB
Groff
.TH LVCHANGE 8 "LVM TOOLS #VERSION#" "Sistina Software UK" \" -*- nroff -*-
|
|
.SH NAME
|
|
lvchange \(em change attributes of a logical volume
|
|
.SH SYNOPSIS
|
|
.B lvchange
|
|
.RB [ \-\-addtag
|
|
.IR Tag ]
|
|
.RB [ \-A | \-\-autobackup
|
|
.RI { y | n }]
|
|
.RB [ \-a | \-\-activate
|
|
.RI [ a | e | l ]{ y | n }]
|
|
.RB [ \-\-activationmode
|
|
.IR { complete | degraded | partial } ]
|
|
.RB [ \-k | \-\-setactivationskip { y | n } ]
|
|
.RB [ \-K | \-\-ignoreactivationskip ]
|
|
.RB [ \-\-alloc
|
|
.IR AllocationPolicy ]
|
|
.RB [ \-\-commandprofile
|
|
.IR ProfileName ]
|
|
.RB [ \-C | \-\-contiguous
|
|
.RI { y | n }]
|
|
.RB [ \-d | \-\-debug ]
|
|
.RB [ \-\-degraded ]
|
|
.RB [ \-\-deltag
|
|
.IR Tag ]
|
|
.RB [ \-\-detachprofile ]
|
|
.RB [ \-\-discards
|
|
.RI { ignore | nopassdown | passdown }]
|
|
.RB [ \-\-resync ]
|
|
.RB [ \-h | \-? | \-\-help ]
|
|
.RB [ \-\-ignorelockingfailure ]
|
|
.RB [ \-\-ignoremonitoring ]
|
|
.RB [ \-\-ignoreskippedcluster ]
|
|
.RB [ \-\-monitor
|
|
.RI { y | n }]
|
|
.RB [ \-\-poll
|
|
.RI { y | n }]
|
|
.RB [ \-\-[raid]maxrecoveryrate
|
|
.IR Rate ]
|
|
.RB [ \-\-[raid]minrecoveryrate
|
|
.IR Rate ]
|
|
.RB [ \-\-[raid]syncaction
|
|
.RI { check | repair }]
|
|
.RB [ \-\-[raid]writebehind
|
|
.IR IOCount ]
|
|
.RB [ \-\-[raid]writemostly
|
|
.IR PhysicalVolume [ : { t | n | y }]]
|
|
.RB [ \-\-sysinit ]
|
|
.RB [ \-\-noudevsync ]
|
|
.RB [ \-\-metadataprofile
|
|
.IR ProfileName ]
|
|
.RB [ \-M | \-\-persistent
|
|
.RI { y | n }]
|
|
.RB [ \-\-minor
|
|
.IR minor ]
|
|
.RB [ \-P | \-\-partial ]
|
|
.RB [ \-p | \-\-permission
|
|
.RI { r | rw }]
|
|
.RB [ \-r | \-\-readahead
|
|
.RI { ReadAheadSectors | auto | none }]
|
|
.RB [ \-\-refresh ]
|
|
.RB [ \-t | \-\-test ]
|
|
.RB [ \-v | \-\-verbose ]
|
|
.RB [ \-Z | \-\-zero
|
|
.RI { y | n }]
|
|
.I LogicalVolumePath
|
|
.RI [ LogicalVolumePath ...]
|
|
.SH DESCRIPTION
|
|
lvchange allows you to change the attributes of a logical volume
|
|
including making them known to the kernel ready for use.
|
|
.SH OPTIONS
|
|
See \fBlvm\fP(8) for common options.
|
|
.TP
|
|
.BR \-a ", " \-\-activate " [" \fIa | \fIe | \fIl ]{ \fIy | \fIn }
|
|
Controls the availability of the logical volumes for use.
|
|
Communicates with the kernel device-mapper driver via
|
|
libdevmapper to activate (\-ay) or deactivate (\-an) the
|
|
logical volumes.
|
|
.IP
|
|
Activation of a logical volume creates a symbolic link
|
|
/dev/VolumeGroupName/LogicalVolumeName pointing to the device node.
|
|
This link is removed on deactivation.
|
|
All software and scripts should access the device through
|
|
this symbolic link and present this as the name of the device.
|
|
The location and name of the underlying device node may depend on
|
|
the distribution and configuration (e.g. udev) and might change
|
|
from release to release.
|
|
.IP
|
|
If autoactivation option is used (\-aay),
|
|
the logical volume is activated only if it matches an item in
|
|
the activation/auto_activation_volume_list set in lvm.conf.
|
|
If this list is not set, then all volumes are considered for
|
|
activation. The \-aay option should be also used during system
|
|
boot so it's possible to select which volumes to activate using
|
|
the activation/auto_activation_volume_list setting.
|
|
.IP
|
|
If clustered locking is enabled, -aey will activate exclusively
|
|
on one node and -aly will activate only on the local node.
|
|
To deactivate only on the local node use -aln.
|
|
Logical volumes with single-host snapshots are always activated
|
|
exclusively because they can only be used on one node at once.
|
|
.TP
|
|
.BR \-\-activationmode " {" \fIcomplete | \fIdegraded | \fIpartial }
|
|
The activation mode determines whether logical volumes are allowed to
|
|
activate when there are physical volumes missing (e.g. due to a device
|
|
failure). \fIcomplete is the most restrictive; allowing only those
|
|
logical volumes to be activated that are not affected by the missing
|
|
PVs. \fIdegraded allows RAID logical volumes to be activated even if
|
|
they have PVs missing. (Note that the "mirror" segment type is not
|
|
considered a RAID logical volume. The "raid1" segment type should
|
|
be used instead.) Finally, \fIpartial allows any logical volume to
|
|
be activated even if portions are missing due to a missing or failed
|
|
PV. This last option should only be used when performing recovery or
|
|
repair operations. \fIdegraded is the default mode. To change it, modify
|
|
.B activation_mode
|
|
in
|
|
.BR lvm.conf (5).
|
|
.TP
|
|
.BR \-k ", " \-\-setactivationskip " {" \fIy | \fIn }
|
|
Controls whether Logical Volumes are persistently flagged to be
|
|
skipped during activation. By default, thin snapshot volumes are
|
|
flagged for activation skip. To activate such volumes,
|
|
an extra \fB\-K/\-\-ignoreactivationskip\fP option must be used.
|
|
The flag is not applied during deactivation. To see whether
|
|
the flag is attached, use \fBlvs\fP command where the state
|
|
of the flag is reported within \fBlv_attr\fP bits.
|
|
.TP
|
|
.BR \-K ", " \-\-ignoreactivationskip
|
|
Ignore the flag to skip Logical Volumes during activation.
|
|
.TP
|
|
.BR \-C ", " \-\-contiguous " {" \fIy | \fIn }
|
|
Tries to set or reset the contiguous allocation policy for
|
|
logical volumes. It's only possible to change a non-contiguous
|
|
logical volume's allocation policy to contiguous, if all of the
|
|
allocated physical extents are already contiguous.
|
|
.TP
|
|
.BR \-\-detachprofile
|
|
Detach any metadata configuration profiles attached to given
|
|
Logical Volumes. See \fBlvm.conf\fP(5) for more information
|
|
about \fBmetadata profiles\fP.
|
|
.TP
|
|
.BR \-\-discards " {" \fIignore | \fInopassdown | \fIpassdown }
|
|
Set this to \fIignore\fP to ignore any discards received by a
|
|
thin pool Logical Volume. Set to \fInopassdown\fP to process such
|
|
discards within the thin pool itself and allow the no-longer-needed
|
|
extents to be overwritten by new data. Set to \fIpassdown\fP (the
|
|
default) to process them both within the thin pool itself and to
|
|
pass them down the underlying device.
|
|
.TP
|
|
.B \-\-resync
|
|
Forces the complete resynchronization of a mirror. In normal
|
|
circumstances you should not need this option because synchronization
|
|
happens automatically. Data is read from the primary mirror device
|
|
and copied to the others, so this can take a considerable amount of
|
|
time - and during this time you are without a complete redundant copy
|
|
of your data.
|
|
.TP
|
|
.B \-\-metadataprofile " " \fIProfileName
|
|
Uses and attaches ProfileName configuration profile to the logical
|
|
volume metadata. Whenever the logical volume is processed next time,
|
|
the profile is automatically applied. If the volume group has another
|
|
profile attached, the logical volume profile is preferred.
|
|
See \fBlvm.conf\fP(5) for more information about \fBmetadata profiles\fP.
|
|
.TP
|
|
.B \-\-minor \fIminor
|
|
Set the minor number.
|
|
.TP
|
|
.BR \-\-monitor " {" \fIy | \fIn }
|
|
Start or stop monitoring a mirrored or snapshot logical volume with
|
|
dmeventd, if it is installed.
|
|
If a device used by a monitored mirror reports an I/O error,
|
|
the failure is handled according to
|
|
\fBmirror_image_fault_policy\fP and \fBmirror_log_fault_policy\fP
|
|
set in \fBlvm.conf\fP.
|
|
.TP
|
|
.BR \-\-poll " {" \fIy | \fIn }
|
|
Without polling a logical volume's backgrounded transformation process
|
|
will never complete. If there is an incomplete pvmove or lvconvert (for
|
|
example, on rebooting after a crash), use \fB\-\-poll y\fP to restart the
|
|
process from its last checkpoint. However, it may not be appropriate to
|
|
immediately poll a logical volume when it is activated, use
|
|
\fB\-\-poll n\fP to defer and then \fB\-\-poll y\fP to restart the process.
|
|
.TP
|
|
.IR \fB\-\-[raid]maxrecoveryrate " " \fIRate [ bBsSkKmMgG ]
|
|
Sets the maximum recovery rate for a RAID logical volume. \fIRate\fP
|
|
is specified as an amount per second for each device in the array.
|
|
If no suffix is given, then KiB/sec/device is assumed. Setting the
|
|
recovery rate to 0 means it will be unbounded.
|
|
.TP
|
|
.IR \fB\-\-[raid]minrecoveryrate " " \fIRate [ bBsSkKmMgG ]
|
|
Sets the minimum recovery rate for a RAID logical volume. \fIRate\fP
|
|
is specified as an amount per second for each device in the array.
|
|
If no suffix is given, then KiB/sec/device is assumed. Setting the
|
|
recovery rate to 0 means it will be unbounded.
|
|
.TP
|
|
.BR \-\-[raid]syncaction " {" \fIcheck | \fIrepair }
|
|
This argument is used to initiate various RAID synchronization operations.
|
|
The \fIcheck\fP and \fIrepair\fP options provide a way to check the
|
|
integrity of a RAID logical volume (often referred to as "scrubbing").
|
|
These options cause the RAID logical volume to
|
|
read all of the data and parity blocks in the array and check for any
|
|
discrepancies (e.g. mismatches between mirrors or incorrect parity values).
|
|
If \fIcheck\fP is used, the discrepancies will be counted but not repaired.
|
|
If \fIrepair\fP is used, the discrepancies will be corrected as they are
|
|
encountered. The 'lvs' command can be used to show the number of
|
|
discrepancies found or repaired.
|
|
.TP
|
|
.BR \-\-[raid]writebehind " " \fIIOCount
|
|
Specify the maximum number of outstanding writes that are allowed to
|
|
devices in a RAID1 logical volume that are marked as \fIwrite-mostly\fP.
|
|
Once this value is exceeded, writes become synchronous (i.e. all writes
|
|
to the constituent devices must complete before the array signals the
|
|
write has completed). Setting the value to zero clears the preference
|
|
and allows the system to choose the value arbitrarily.
|
|
.TP
|
|
.IR \fB\-\-[raid]writemostly " " PhysicalVolume [ : { t | y | n }]
|
|
Mark a device in a RAID1 logical volume as \fIwrite-mostly\fP. All reads
|
|
to these drives will be avoided unless absolutely necessary. This keeps
|
|
the number of I/Os to the drive to a minimum. The default behavior is to
|
|
set the write-mostly attribute for the specified physical volume in the
|
|
logical volume. It is possible to also remove the write-mostly flag by
|
|
appending a ":n" to the physical volume or to toggle the value by specifying
|
|
":t". The \fB\-\-writemostly\fP argument can be specified more than one time
|
|
in a single command; making it possible to toggle the write-mostly attributes
|
|
for all the physical volumes in a logical volume at once.
|
|
.TP
|
|
.B \-\-sysinit
|
|
Indicates that \fBlvchange\fP(8) is being invoked from early system
|
|
initialisation scripts (e.g. rc.sysinit or an initrd),
|
|
before writeable filesystems are available. As such,
|
|
some functionality needs to be disabled and this option
|
|
acts as a shortcut which selects an appropriate set of options. Currently
|
|
this is equivalent to using \fB\-\-ignorelockingfailure\fP,
|
|
\fB\-\-ignoremonitoring\fP, \fB\-\-poll n\fP and setting
|
|
\fBLVM_SUPPRESS_LOCKING_FAILURE_MESSAGES\fP
|
|
environment variable.
|
|
|
|
If \fB\-\-sysinit\fP is used in conjunction with lvmetad(8) enabled and running,
|
|
autoactivation is preferred over manual activation via direct lvchange call.
|
|
Logical volumes are autoactivated according to auto_activation_volume_list
|
|
set in lvm.conf(5).
|
|
.TP
|
|
.B \-\-noudevsync
|
|
Disable udev synchronisation. The
|
|
process will not wait for notification from udev.
|
|
It will continue irrespective of any possible udev processing
|
|
in the background. You should only use this if udev is not running
|
|
or has rules that ignore the devices LVM2 creates.
|
|
.TP
|
|
.B \-\-ignoremonitoring
|
|
Make no attempt to interact with dmeventd unless \fB\-\-monitor\fP
|
|
is specified.
|
|
Do not use this if dmeventd is already monitoring a device.
|
|
.TP
|
|
.BR \-M ", " \-\-persistent " {" \fIy | \fIn }
|
|
Set to y to make the minor number specified persistent.
|
|
.TP
|
|
.BR \-p ", " \-\-permission " {" \fIr | \fIrw }
|
|
Change access permission to read-only or read/write.
|
|
.TP
|
|
.BR \-r ", " \-\-readahead " {" \fIReadAheadSectors | \fIauto | \fInone }
|
|
Set read ahead sector count of this logical volume.
|
|
For volume groups with metadata in lvm1 format, this must
|
|
be a value between 2 and 120 sectors.
|
|
The default value is "auto" which allows the kernel to choose
|
|
a suitable value automatically.
|
|
"None" is equivalent to specifying zero.
|
|
.TP
|
|
.B \-\-refresh
|
|
If the logical volume is active, reload its metadata.
|
|
This is not necessary in normal operation, but may be useful
|
|
if something has gone wrong or if you're doing clustering
|
|
manually without a clustered lock manager.
|
|
.TP
|
|
.BR \-Z ", " \-\-zero " {" \fIy | \fIn }
|
|
Set zeroing mode for thin pool. Note: already provisioned blocks from pool
|
|
in non-zero mode are not cleared in unwritten parts when setting zero to
|
|
\fIy\fP.
|
|
.SH ENVIRONMENT VARIABLES
|
|
.TP
|
|
.B LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES
|
|
Suppress locking failure messages.
|
|
.SH Examples
|
|
Changes the permission on volume lvol1 in volume group vg00 to be read-only:
|
|
.sp
|
|
.B lvchange \-pr vg00/lvol1
|
|
.SH SEE ALSO
|
|
.BR lvm (8),
|
|
.BR lvmcache (7),
|
|
.BR lvmthin (7),
|
|
.BR lvcreate (8),
|
|
.BR vgchange (8)
|