| .TH LVCONVERT 8 "LVM TOOLS #VERSION#" "Red Hat, Inc" \" -*- nroff -*- |
| .SH NAME |
| lvconvert \(em change LV type and other utilities |
| . |
| .SH SYNOPSIS |
| |
| .B lvconvert |
| .RI [ OPTION ]... |
| .IR VolumeGroup / LogicalVolume |
| |
| OPTIONS: |
| .br |
| .BR \-b , |
| .BR \-\-background |
| .br |
| .BR \-\-cachepolicy |
| .IR Policy |
| .br |
| .BR \-\-cachepool |
| .IR CachePoolLogicalVolume { Name | Path } |
| .br |
| .BR \-\-cachesettings |
| .IB Key = Value |
| .br |
| .BR \-c , |
| .BR \-\-chunksize |
| .BR \fIChunkSize [ b | B | s | S | k | K | m | M | g | G ] |
| .br |
| .BR \-\-corelog |
| .br |
| .BR \-\-discards |
| .RB { ignore | nopassdown | passdown } |
| .br |
| .BR \-i , |
| .BR \-\-interval |
| .IR Seconds |
| .br |
| .BR \-\-merge |
| .br |
| .BR \-\-mirrorlog |
| .RB { disk | core | mirrored } |
| .br |
| .BR \-m , |
| .BR \-\-mirrors |
| .IR Number |
| .br |
| .BR \-n , |
| .BR \-\-name |
| .IR Name |
| .br |
| .BR \-\-noudevsync |
| .br |
| .BR \-\-originname |
| .IR NewExternalOriginVolumeName |
| .br |
| .BR \-\-poolmetadata |
| .IR PoolMetadataLogicalVolume { Name | Path } |
| .br |
| .BR \-\-poolmetadatasize |
| .BR \fIPoolMetadataSize [ b | B | s | S | k | K | m | M | g | G ] |
| .br |
| .BR \-\-poolmetadataspare |
| .RB { y | n } |
| .br |
| .BR \-r , |
| .BR \-\-readahead |
| .RB { \fIReadAheadSectors | auto | none } |
| .br |
| .BR \-R , |
| .BR \-\-regionsize |
| .IR MirrorLogRegionSize |
| .br |
| .BR \-\-repair |
| .br |
| .BR \-\-replace |
| .IR PhysicalVolume |
| .br |
| .BR \-\-splitcache |
| .br |
| .BR \-\-splitmirrors |
| .IR Number |
| .br |
| .BR \-\-splitsnapshot |
| .br |
| .BR \-\-stripes |
| .IR Number |
| .br |
| .BR \-I , |
| .BR \-\-stripesize |
| .IR StripeSize |
| .br |
| .B \-\-type striped |
| .br |
| .B \-\-type snapshot |
| | |
| .B \-\-snapshot |
| | |
| .B \-s |
| .br |
| .B \-\-type mirror |
| .br |
| .B \-\-type raid* |
| .br |
| .B \-\-type thin |
| | |
| .B \-\-thin |
| | |
| .B \-T |
| .br |
| .B \-\-type cache |
| | |
| .B \-\-cache |
| | |
| .B \-H |
| .br |
| .B \-\-type thin\-pool |
| .br |
| .B \-\-type cache\-pool |
| .br |
| .BR \-\-thinpool |
| .IR ThinPoolLogicalVolume { Name | Path } |
| .br |
| .BR \-\-trackchanges |
| .br |
| .BR \-\-uncache |
| .br |
| .BR \-Z , |
| .BR \-\-zero |
| .RB { y | n } |
| .br |
| |
| Common options: |
| .br |
| .BR \-A , |
| .BR \-\-alloc |
| .IR AllocationPolicy |
| .br |
| .BR \-f , |
| .BR \-\-force |
| .br |
| .BR \-\-commandprofile |
| .IR ProfileName |
| .br |
| .BR \-h , |
| .BR \-? , |
| .BR \-\-help |
| .br |
| .BR \-v , |
| .BR \-\-verbose |
| .br |
| .BR \-y , |
| .BR \-\-yes |
| .br |
| .BR \-\-version |
| |
| |
| |
| |
| .SH DESCRIPTION |
| |
| lvconvert changes the LV type and includes various LV utilities. |
| |
| To display the current LV type, run the command: |
| |
| .B lvs \-o name,segtype |
| .IR VG / LV |
| |
| To change the LV type, run the command: |
| |
| .B lvconvert \-\-type |
| .I NewType |
| .IR VG / LV |
| |
| .SS LV types |
| |
| The LV type is also called the "segment type" or "segtype". |
| |
| LVs with the following types can be modified by lvconvert: |
| .B striped, |
| .B snapshot, |
| .B mirror, |
| .B raid*, |
| .B thin, |
| .B cache, |
| .B thin\-pool, |
| .B cache\-pool. |
| |
| The specific operations available on each LV type are listed below. |
| |
| The |
| .B linear |
| type is equivalent to the |
| .B striped |
| type when one stripe exists. |
| In that case, the types can sometimes be used interchangably. |
| |
| In most cases, the |
| .B mirror |
| type is deprecated and the |
| .B raid1 |
| type should be used. They are both implementations of mirroring. |
| |
| The |
| .B raid* |
| type refers to one of many raid levels, e.g. |
| .B raid1, |
| .B raid5. |
| |
| .SS LV layers |
| |
| In some cases, an LV is a single device mapper (dm) layer above physical |
| devices. In other cases, hidden LVs (dm devices) are layered between the |
| visible LV and physical devices. LVs in the middle layers are sometimes |
| called sub LVs. |
| |
| Changing the LV type will often change the composition of sub LVs. |
| |
| Sub LVs can be displayed with the command |
| .B lvs -a. |
| |
| A command run on a visible LV sometimes operates on a sub LV rather than |
| the specified LV. These cases are noted below. |
| |
| Sometimes a sub LV must be specified directly on the command line, but |
| this is a non-standard form. These cases may change in the future to |
| avoid the direct use of hidden LVs. |
| |
| .SH COMMANDS |
| |
| .SS Operations on a StripedLV with type striped or linear: |
| |
| \& |
| |
| .B lvconvert \-\-merge |
| VG/StripedLV |
| ./" FIXME: use --merge-mirror |
| .br |
| \[bu] |
| Merge StripedLV into an LV when it is a previously split mirror. |
| .br |
| \[bu] |
| Options \-\-background, \-\-interval. |
| .br |
| \[bu] |
| See corresponding operation --splitmirrors. |
| |
| .B lvconvert \-\-type snapshot |
| VG/StripedLV VG/SnapshotLV |
| .br |
| \[bu] |
| Recombine StripedLV with SnapshotLV which was previously split. |
| .br |
| \[bu] |
| Options \-\-chunksize, \-\-zero. |
| .br |
| \[bu] |
| See corresponding operation --splitsnapshot. |
| |
| .B lvconvert \-\-type thin |
| VG/StripedLV |
| .br |
| \[bu] |
| Convert StripedLV to type thin with an external origin. |
| .br |
| \[bu] |
| StripedLV becomes a read\-only external origin LV with a new name. |
| .br |
| \[bu] |
| Requires \-\-thinpool to specify the thin pool to use. |
| .br |
| \[bu] |
| Options \-\-originname. |
| |
| .B lvconvert \-\-type cache |
| VG/StripedLV |
| .br |
| \[bu] |
| Convert StripedLV to type cache. |
| .br |
| \[bu] |
| Requires \-\-cachepool to specify the cache pool to use. |
| .br |
| \[bu] |
| Options \-\-cachepolicy, \-\-cachesettings. |
| |
| .B lvconvert \-\-type thin\-pool |
| VG/StripedLV |
| .br |
| \[bu] |
| Convert StripedLV to type thin\-pool. |
| .br |
| \[bu] |
| The StripedLV is used for thin pool data. |
| .br |
| \[bu] |
| Options \-\-chunksize, \-\-discards, \-\-poolmetadata{size,spare}, |
| .br |
| \-\-readahead, \-\-zero. |
| |
| .B lvconvert \-\-type cache\-pool |
| VG/StripedLV |
| .br |
| \[bu] |
| Convert StripedLV to type cache\-pool. |
| .br |
| \[bu] |
| Options \-\-chunksize, \-\-poolmetadata{size,spare}. |
| |
| .B lvconvert \-\-type mirror |
| VG/StripedLV |
| .br |
| \[bu] |
| Convert StripedLV to type mirror. |
| .br |
| \[bu] |
| Requires \-\-mirrors to specify the number of mirrors to use. |
| .br |
| \[bu] |
| Options \-\-mirrorlog, \-\-regionsize. |
| |
| .B lvconvert \-\-type raid* |
| VG/StripedLV |
| .br |
| \[bu] |
| Convert StripedLV to type raid*. |
| .br |
| \[bu] |
| Required options depend on the raid level. |
| |
| .SS Operations on RaidLV with type raid*: |
| |
| \& |
| |
| .B lvconvert \-\-mirrors |
| Number |
| VG/RaidLV |
| .br |
| \[bu] |
| Change the number of images in raid1 RaidLV. |
| |
| .B lvconvert \-\-splitmirrors |
| Number |
| VG/RaidLV |
| .br |
| \[bu] |
| Split images from raid1 RaidLV and use them to create a new LV. |
| .br |
| \[bu] |
| Requires \-\-name for the new LV, or the use of \-\-trackchanges. |
| |
| .B lvconvert \-\-merge |
| VG/RaidLV |
| ./" FIXME: use --merge-mirror |
| .br |
| \[bu] |
| Merge RaidLV into an LV when it is a previously split mirror. |
| .br |
| \[bu] |
| Options \-\-background, \-\-interval. |
| .br |
| \[bu] |
| See corresponding operation --splitmirrors. |
| |
| .B lvconvert \-\-repair |
| VG/RaidLV |
| .br |
| \[bu] |
| Replace failed PVs in RaidLV. |
| |
| .B lvconvert \-\-replace |
| PV |
| VG/RaidLV |
| .br |
| \[bu] |
| Replace specific PV(s) in a raid* LV with another PV. |
| .br |
| \[bu] |
| The new PV(s) to use can be optionally specified after the LV. |
| .br |
| \[bu] |
| Repeat to replace multiple: \-\-replace PV1 \-\-replace PV2 ... |
| |
| .B lvconvert \-\-type snapshot |
| VG/RaidLV |
| VG/SnapshotLV |
| .br |
| \[bu] |
| Combine RaidLV with SnapshotLV that was previously split. |
| .br |
| \[bu] |
| Options \-\-chunksize, \-\-zero. |
| .br |
| \[bu] |
| See corresponding operation \-\-splitsnapshot. |
| |
| .B lvconvert \-\-type thin |
| VG/RaidLV |
| .br |
| \[bu] |
| Convert RaidLV to type thin with an external origin. |
| .br |
| \[bu] |
| RaidLV becomes a read\-only external origin LV with a new name. |
| .br |
| \[bu] |
| Requires \-\-thinpool to specify the thin pool to use. |
| .br |
| \[bu] |
| Options \-\-originname. |
| |
| .B lvconvert \-\-type cache |
| VG/RaidLV |
| .br |
| \[bu] |
| Convert RaidLV to type cache. |
| .br |
| \[bu] |
| Requires \-\-cachepool to specify the cache pool to use. |
| .br |
| \[bu] |
| Options \-\-cachepolicy, \-\-cachesettings. |
| |
| .B lvconvert \-\-type thin\-pool |
| VG/RaidLV |
| .br |
| \[bu] |
| Convert RaidLV to type thin\-pool. |
| .br |
| \[bu] |
| The RaidLV is used for thin pool data. |
| .br |
| \[bu] |
| Options \-\-chunksize, \-\-discards, \-\-poolmetadata{size,spare}, |
| .br |
| \-\-readahead, \-\-zero. |
| |
| .B lvconvert \-\-type cache\-pool |
| VG/RaidLV |
| .br |
| \[bu] |
| Convert RaidLV to type cache\-pool. |
| .br |
| \[bu] |
| Options \-\-chunksize, \-\-poolmetadata{size,spare}. |
| |
| .B lvconvert \-\-type raid* |
| VG/RaidLV |
| .br |
| \[bu] |
| Convert RaidLV to use a different raid level. |
| .br |
| \[bu] |
| Required options depend on the raid level. |
| |
| .B lvconvert \-\-type striped |
| VG/RaidLV |
| .br |
| \[bu] |
| Convert RaidLV to type striped. |
| |
| .B lvconvert \-\-type linear |
| VG/RaidLV |
| .br |
| \[bu] |
| Convert RaidLV to type linear. |
| |
| .SS Operations on MirrorLV with type mirror: |
| |
| \& |
| |
| .B lvconvert \-\-mirrors |
| Number |
| VG/MirrorLV |
| .br |
| \[bu] |
| Change the number of images in MirrorLV. |
| |
| .B lvconvert \-\-splitmirrors |
| Number |
| VG/MirrorLV |
| .br |
| \[bu] |
| Split images from MirrorLV and use them to create a new LV. |
| .br |
| \[bu] |
| Requires \-\-name for the new LV. |
| |
| .B lvconvert \-\-mirrorlog |
| LogType |
| VG/MirrorLV |
| .br |
| \[bu] |
| Change the type of log used by MirrorLV. |
| |
| .B lvconvert \-\-repair |
| VG/MirrorLV |
| .br |
| \[bu] |
| Replace failed PVs in MirrorLV. |
| |
| .B lvconvert \-\-type linear |
| VG/MirrorLV |
| .br |
| \[bu] |
| Convert MirrorLV to type linear. |
| |
| .B lvconvert \-\-type raid* |
| VG/MirrorLV |
| .br |
| \[bu] |
| Convert MirrorLV to type raid*. |
| .br |
| \[bu] |
| Required options depend on the raid level. |
| |
| .SS Operations on CachePoolLV with type cache\-pool: |
| |
| \& |
| |
| .B lvconvert \-\-splitcache |
| VG/CachePoolLV |
| .br |
| \[bu] |
| Split the cache LV from CachePoolLV. |
| .br |
| \[bu] |
| Equivalent to --splitcache on CacheLV. |
| |
| .SS Operations on CacheLV with type cache: |
| |
| \& |
| |
| .B lvconvert \-\-splitcache |
| VG/CacheLV |
| .br |
| \[bu] |
| Split and keep the cache pool from CacheLV. |
| |
| .B lvconvert \-\-uncache |
| VG/CacheLV |
| .br |
| \[bu] |
| Split and remove the cache pool from CacheLV. |
| |
| .B lvconvert \-\-splitmirrors |
| Number |
| VG/CacheLV |
| .br |
| \[bu] |
| Split images from the mirrored origin of CacheLV to create a new LV. |
| .br |
| \[bu] |
| Operates on mirror or raid1 sub LV. |
| .br |
| \[bu] |
| Requires \-\-name for the new LV, or the use of \-\-trackchanges. |
| |
| .B lvconvert \-\-type thin\-pool |
| VG/CacheLV |
| .br |
| \[bu] |
| Convert CacheLV to type thin-pool. |
| .br |
| \[bu] |
| The CacheLV is used for thin pool data. |
| .br |
| \[bu] |
| Options \-\-chunksize, \-\-discards, \-\-poolmetadata{size,spare}, |
| .br |
| \-\-readahead, \-\-zero. |
| |
| |
| .SS Operations on ThinPoolLV with type thin\-pool: |
| |
| \& |
| |
| .B lvconvert \-\-splitcache |
| VG/ThinPoolLV |
| .br |
| \[bu] |
| Split and keep the cache pool from the data portion of ThinPoolLV. |
| .br |
| \[bu] |
| Operates on the data sub LV of the thin pool LV. |
| .br |
| \[bu] |
| The data sub LV of the thin pool must be a cache LV. |
| |
| .B lvconvert \-\-uncache |
| VG/ThinPoolLV |
| .br |
| \[bu] |
| Split and remove the cache pool from the data portion of ThinPoolLV. |
| .br |
| \[bu] |
| Operates on the data sub LV of the thin pool LV. |
| .br |
| \[bu] |
| The data sub LV of the thin pool must be a cache LV. |
| |
| .B lvconvert \-\-type cache |
| VG/ThinPoolLV |
| .br |
| \[bu] |
| Convert the data portion of ThinPoolLV to type cache. |
| .br |
| \[bu] |
| Operates on the data sub LV of the thin pool LV. |
| .br |
| \[bu] |
| Options \-\-cachepolicy, \-\-cachesettings. |
| |
| .B lvconvert \-\-repair |
| VG/ThinPoolLV |
| .br |
| \[bu] |
| Repair ThinPoolLV. |
| |
| .SS Operations on ThinLV with type thin: |
| |
| \& |
| |
| .B lvconvert \-\-merge |
| VG/ThinLV |
| ./" FIXME: use --merge-snapshot |
| .br |
| \[bu] |
| Merge ThinLV into its origin LV. |
| .br |
| \[bu] |
| ThinLV must have been created as a snapshot of another thin LV. |
| .br |
| \[bu] |
| Options \-\-background, \-\-interval. |
| |
| .SS Operations on SnapshotLV with type snapshot: |
| |
| \& |
| |
| .B lvconvert \-\-splitsnapshot |
| VG/SnapshotLV |
| .br |
| \[bu] |
| Separate COW snapshot SnapshotLV from its origin LV. |
| |
| .B lvconvert \-\-merge |
| VG/SnapshotLV |
| ./" FIXME: use --merge-snapshot |
| .br |
| \[bu] |
| Merge COW snapshot SnapshotLV into its origin. |
| .br |
| \[bu] |
| Options \-\-background, \-\-interval. |
| |
| .SH OPTIONS |
| . |
| See \fBlvm\fP(8) for common options. |
| .br |
| . |
| .HP |
| .BR \-b , |
| .BR \-\-background |
| .br |
| If the operation requires polling, this option causes the command to |
| return before the operation is complete, and polling is done in the |
| background. |
| . |
| .HP |
| .BR \-\-cachepolicy |
| .IR Policy |
| .br |
| Specifies the cache policy for a cache LV. Also see |
| .BR lvmcache (7). |
| . |
| .HP |
| .BR \-\-cachepool |
| .IR CachePoolLogicalVolume { Name | Path } |
| .br |
| Specifies the cache pool to use when converting an LV to a cache LV. If |
| CachePoolLogicalVolume is not yet a cache pool, the command will attempt |
| to convert it into a cache pool prior to the cache LV conversion. |
| Also see |
| .BR lvmcache (7). |
| . |
| .HP |
| .BR \-\-cachesettings |
| .IB Key = Value |
| .br |
| Specifies tunable values for a cache LV. (The default values should |
| usually be adequate.) The special string value \fBdefault\fP switches |
| settings back to their default kernel values and removes them from the |
| list of settings stored in LVM metadata. |
| Also see |
| .BR lvmcache (7). |
| . |
| .HP |
| .BR \-c , |
| .BR \-\-chunksize |
| .BR \fIChunkSize [ b | B | s | S | k | K | m | M | g | G ] |
| .br |
| Sets the chunk size for a snapshot, cache pool or thin pool. |
| The default unit is in kilobytes. |
| .sp |
| For snapshots, the value must be a power of 2 between 4KiB and 512KiB |
| and the default value is 4. |
| .sp |
| For a cache pool the value must be between 32KiB and 1GiB and |
| the default value is 64. |
| .sp |
| For a thin pool the value must be between 64KiB and |
| 1GiB and the default value starts with 64 and scales |
| up to fit the pool metadata size within 128MiB, |
| if the pool metadata size is not specified. |
| The value must be a multiple of 64KiB. |
| (Early kernel support until thin target version 1.4 required the value |
| to be a power of 2. Discards were not supported for non-power of 2 values |
| until thin target version 1.5.) |
| . |
| .HP |
| .BR \-\-corelog |
| .br |
| Specifies or changes the log type for a mirror LV. |
| It is an alias for \fB\-\-mirrorlog core\fP. |
| (This option does not apply to the \fBraid1\fP LV type.) |
| . |
| .HP |
| .BR \-\-discards |
| .RB { ignore | nopassdown | passdown } |
| .br |
| Specifies if discards will be processed by the thin layer in the |
| kernel and passed down to the Physical Volume. This applies only |
| to thin pools. The default is \fBpassdown\fP. |
| Also see |
| .BR lvmthin (7). |
| . |
| .HP |
| .BR \-H , |
| .BR \-\-cache |
| .br |
| Alias for |
| .B \-\-type cache. |
| See COMMANDS description for |
| .br |
| .B lvconvert \-\-type cache. |
| . |
| .HP |
| .BR \-i , |
| .BR \-\-interval |
| .IR Seconds |
| .br |
| Report progress as a percentage at regular intervals. |
| . |
| .HP |
| .BR \-\-merge |
| .br |
| Merges a snapshot that was split from an origin LV using |
| \fB\-\-splitsnapshot\fP, back into the origin LV. |
| |
| Merges a raid1 image that was split from a raid1 LV using |
| \fB\-\-splitsnapshot\fP and \fB\-\-trackchanges\fP, back into |
| the original raid1 LV. |
| |
| To check if the kernel supports the snapshot merge feature, look for |
| "snapshot\-merge" in the output of \fBdmsetup targets\fP. |
| |
| When merging a snapshot, if both the origin and snapshot LVs are not open, |
| the merge will start immediately. Otherwise, the merge will start the |
| first time either the origin or snapshot LV are activated and both are |
| closed. Merging a snapshot into an origin that cannot be closed, for |
| example a root filesystem, is deferred until the next time the origin |
| volume is activated. When merging starts, the resulting LV will have the |
| origin's name, minor number and UUID. While the merge is in progress, |
| reads or writes to the origin appear as being directed to the snapshot |
| being merged. When the merge finishes, the merged snapshot is removed. |
| Multiple snapshots may be specified on the command line or a @tag may be |
| used to specify multiple snapshots be merged to their respective origin. |
| . |
| .HP |
| .BR \-\-mirrorlog |
| .RB { disk | core | mirrored } |
| .br |
| Specifies or changes the log type for a mirror LV. |
| The default is \fBdisk\fP, which is persistent and requires |
| a small amount of storage space, usually on a separate device |
| from the data being mirrored. |
| \fBCore\fP may be useful for short-lived mirrors. It means the mirror is |
| regenerated by copying the data from the first device again every |
| time the device is activated - e.g. possibly after every reboot. |
| Using \fBmirrored\fP will create a persistent log that is itself mirrored. |
| (This option does not apply to the \fBraid1\fP LV type.) |
| . |
| .HP |
| .BR \-m , |
| .BR \-\-mirrors |
| .IR Number |
| .br |
| Specifies the number mirror images in addition to the original LV image, |
| e.g. \fB\-\-mirrors 1\fP means two copies of the data, the original and |
| one mirror image. |
| |
| This option is required when converting an LV to a \fBraid1\fP or |
| \fBmirror\fP LV. |
| |
| This option can be used alone to change the number of mirror images in an |
| existing \fBraid1\fP or \fBmirror\fP LV. |
| |
| The special case \fB\-\-mirrors 0\fP has been used historically to |
| indicate a linear LV with no mirror images. |
| . |
| .HP |
| .BR \-n , |
| .BR \-\-name |
| .IR Name |
| .br |
| Specifies the name to use when the command is creating a new LV, e.g. |
| .B \-\-splitmirrors. |
| . |
| .HP |
| .BR \-\-noudevsync |
| .br |
| Disables 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 LVM creates. |
| . |
| .HP |
| .BR \-\-originname |
| .IR NewExternalOriginVolumeName |
| .br |
| Specifies the name to use for the external origin LV when converting an LV |
| to a thin LV. The LV being converted becomes a read\-only external origin |
| with this name. |
| .br |
| Without this option, the default name of "lvol<n>" will be generated where |
| <n> is the LVM internal number of the LV. |
| .br |
| . |
| .\" .HP |
| .\" .BR \-\-pooldatasize |
| .\" .IR PoolDataVolumeSize [ \fBbBsSkKmMgGtTpPeE ] |
| .\" .br |
| .\" Sets the size of pool's data logical volume. |
| .\" The option \fB\-\-size\fP could be still used with thin pools. |
| . |
| .HP |
| .BR \-\-poolmetadata |
| .IR PoolMetadataLogicalVolume { Name | Path } |
| .br |
| Specifies the LV to use for thin pool metadata when converting an LV to a |
| thin pool LV. |
| .br |
| Specifies the LV to use for cache pool metadata when converting an LV to a |
| cache pool LV. |
| .br |
| The size should be between 2MiB and 16GiB. |
| .br |
| (This option can also be used when a thin pool or cache pool are created |
| as an auxiliary operation within a different command.) |
| Also see |
| .BR lvmthin (7), |
| and |
| .BR lvmcache (7). |
| . |
| .HP |
| .BR \-\-poolmetadatasize |
| .BR \fIPoolMetadataSize [ b | B | s | S | k | K | m | M | g | G ] |
| .br |
| Specifies the size of a cache pool metadata LV or a thin pool metadata LV. |
| This is used if a command creates a pool metadata LV automatically as part |
| of the operation. This option is not used when an existing LV is |
| specified as the pool metadata LV, i.e. \fB\-\-poolmetadata\fP. |
| The default unit is megabytes. |
| Also see |
| .BR lvmthin (7), |
| and |
| .BR lvmcache (7). |
| . |
| .HP |
| .BR \-\-poolmetadataspare |
| .RB { y | n } |
| .br |
| Specifies if a spare pool metadata LV should be created. |
| A spare pool metadata LV will be used for pool repair. |
| Only one spare pool metadata LV is maintained within a VG, with the size |
| of the largest existing pool metadata LV. |
| The default is \fBy\fPes. |
| . |
| .HP |
| .BR \-r , |
| .BR \-\-readahead |
| .RB { \fIReadAheadSectors | auto | none } |
| .br |
| Specifies the read ahead sector count of a thin pool metadata LV. |
| The default value is \fBauto\fP which allows the kernel to choose |
| a suitable value automatically. |
| \fBNone\fP is equivalent to specifying zero. |
| . |
| .HP |
| .BR \-R , |
| .BR \-\-regionsize |
| .IR MirrorLogRegionSize |
| .br |
| A mirror LV is divided into regions of this size (in MB), and the mirror |
| log uses this granularity to track which regions are in sync. |
| (This option does not apply to the \fBraid1\fP LV type.) |
| . |
| .HP |
| .BR \-\-repair |
| .br |
| Replaces failed PVs in a raid1 or mirror LV with other PVs available in |
| the VG. By default, the original number of mirror images will be restored |
| if possible. Specify \fB\-y\fP on the command line to skip the prompts. |
| Use \fB\-f\fP if you do not want any replacement. You may use |
| \fB\-\-use\-policies\fP to use the device replacement policy specified in |
| \fBlvm.conf\fP(5), see \fBactivation/mirror_log_fault_policy\fP or |
| \fBactivation/mirror_device_fault_policy\fP. |
| |
| When used with a thin pool LV, this option automates the use of the |
| \fBthin_repair\fP(8) tool on the thin pool. This repairs a very limitted |
| number of problems. Only inactive thin pools can be repaired. There is |
| no validation of metadata between kernel and LVM. This requires further |
| manual work. After successfull repair the old unmodified metadata are |
| still available in "<pool>_meta<n>" LV. |
| Also see |
| .BR lvmthin (7). |
| . |
| .HP |
| .BR \-\-replace |
| .IR PhysicalVolume |
| .br |
| Remove the specified device \fIPhysicalVolume\fP and replace it with one |
| that is available in the VG, or from a specific list of PVs specified on |
| the command line following the LV name. This option may be repeated multiple |
| times depending on the RaidLV type. |
| . |
| .HP |
| .BR \-s , |
| .BR \-\-snapshot |
| .br |
| Alias for |
| .B \-\-type snapshot. |
| See COMMANDS description for |
| .br |
| .B lvconvert \-\-type snapshot. |
| .HP |
| .BR \-\-split |
| .br |
| Separates \fISplitableLogicalVolume\fP. |
| This option tries to detect the necessary split operation from its arguments. |
| Avoid using this option and use one of the following instead: |
| .B \-\-splitcache, \-\-splitmirrors, \-\-splitsnapshot. |
| . |
| .HP |
| .BR \-\-splitcache |
| .br |
| Separates a cache pool from a cache LV, and keeps the unused cache pool |
| LV. Before the separation, the cache is flushed. See similar option |
| .B \-\-uncache. |
| Also see |
| .BR lvmcache (7). |
| . |
| .HP |
| .BR \-\-splitmirrors |
| .IR Number |
| .br |
| Splits the specified number of images from a \fBraid1\fP or \fBmirror\fP |
| LV and uses them to create a new LV. |
| |
| If \fB\-\-trackchanges\fP is also specified, changes to the raid1 LV are |
| tracked while the split LV remains detached. |
| .B lvconvert \-\-merge |
| can be used to recombine the split images with the original raid1 LV. |
| |
| A name can be specified for the new LV with \fB\-\-name\fP (a name is |
| required without \fB\-\-trackchanges\fP). |
| . |
| .HP |
| .BR \-\-splitsnapshot |
| .br |
| Separates a COW snapshot from its origin LV. The LV that is split off |
| contains the chunks that differ from the origin LV along with metadata |
| describing them. This LV can be wiped and then destroyed with lvremove. |
| See corresponding operation |
| .B lvconvert \-\-type snapshot. |
| . |
| .HP |
| .BR \-\-stripes |
| .IR Number |
| .br |
| Specifies the number of stripes in a striped LV. This is the number of |
| physical volumes (devices) that a striped LV is spread across. Data that |
| appears sequential in the LV is spread across multiple devices in units of |
| the stripe size (see \fB\-\-stripesize\fP). This does not apply to |
| existing allocated space, only newly allocated space can be striped. |
| . |
| .HP |
| .BR \-I , |
| .BR \-\-stripesize |
| .IR StripeSize |
| .br |
| Specifies the stripe size in kilobytes for a striped LV. The stripe size |
| is the number of kilobytes written to each stripe, i.e. to one device, |
| before writing to the next stripe/device. StripeSize must be a power of 2 |
| and cannot exceed the VG physical extent (PE) size. |
| . |
| .HP |
| .BR \-\-type |
| .IR SegmentType |
| .br |
| Converts an LV from one segment type to another. |
| See COMMANDS section for a description of converting between each type. |
| . |
| .HP |
| .BR \-\-thinpool |
| .IR ThinPoolLogicalVolume { Name | Path } |
| .br |
| Specifies the thin pool to use when converting an LV to a thin LV. If |
| ThinPoolLogicalVolume is not yet a thin pool, the command will attempt to |
| convert it to a thin pool prior to the thin LV conversion. |
| Also see |
| .BR lvmthin (7). |
| . |
| .HP |
| .BR \-\-trackchanges |
| .br |
| Can be used with \fB\-\-splitmirrors\fP on a raid1 LV. This causes |
| changes to the original raid1 LV to be tracked while the split images |
| remain detached. This allows the read\-only detached image(s) to be |
| merged efficiently back into the raid1 LV later. Only the regions with |
| changed data are resynchronized during merge. (This option only applies |
| to the \fBraid1\fP LV type.) |
| . |
| .HP |
| .BR \-T , |
| .BR \-\-thin |
| .br |
| Alias for |
| .B \-\-type thin. |
| See COMMANDS description for |
| .br |
| .B lvconvert \-\-type thin. |
| . |
| .HP |
| .BR \-\-uncache |
| .br |
| Separates a cache pool from a cache LV, and removes the unused cache pool |
| LV. Before the separation, the cache is flushed. See similar option |
| .B \-\-splitcache. |
| Also see |
| .BR lvmcache (7). |
| . |
| .HP |
| .BR \-Z , |
| .BR \-\-zero |
| .RB { y | n } |
| .br |
| For snapshots, this controls zeroing of the first 4KiB of data in the |
| snapshot. If the LV is read\-only, the snapshot will not be zeroed. |
| |
| For thin pools, this controls zeroing of provisioned blocks. |
| Provisioning of large zeroed chunks negatively impacts performance. |
| Also see |
| .BR lvmthin (7). |
| . |
| |
| .SH Examples |
| . |
| Convert a linear LV to a two-way mirror LV: |
| .br |
| .B lvconvert \-\-type mirror \-\-mirrors 1 vg/lvol1 |
| |
| Convert a linear LV to a two-way RAID1 LV: |
| .br |
| .B lvconvert \-\-type raid1 \-\-mirrors 1 vg/lvol1 |
| |
| Convert a mirror LV to use an in\-memory log: |
| .br |
| .B lvconvert \-\-mirrorlog core vg/lvol1 |
| |
| Convert a mirror LV to use a disk log: |
| .br |
| .B lvconvert \-\-mirrorlog disk vg/lvol1 |
| |
| Convert a mirror or raid1 LV to a linear LV: |
| .br |
| .B lvconvert --type linear vg/lvol1 |
| |
| Convert a mirror LV to a raid1 LV with the same number of images: |
| .br |
| .B lvconvert \-\-type raid1 vg/lvol1 |
| |
| ./" Split and merge a COW snapshot: |
| ./" TODO |
| Convert a linear LV to a two-way mirror LV, allocating new extents from specific |
| PV ranges: |
| .br |
| .B lvconvert \-\-mirrors 1 vg/lvol1 /dev/sda:0\-15 /dev/sdb:0\-15 |
| |
| Convert a mirror LV to a linear LV, freeing physical extents from a specific PV: |
| .br |
| .B lvconvert \-\-type linear vg/lvol1 /dev/sda |
| |
| Split one image from a mirror or raid1 LV, making it a new LV: |
| .br |
| .B lvconvert \-\-splitmirrors 1 \-\-name lv_split vg/lvol1 |
| |
| Split one image from a raid1 LV, and track changes made to the raid1 LV |
| while the split image remains detached: |
| .br |
| .B lvconvert \-\-splitmirrors 1 \-\-trackchanges vg/lvol1 |
| |
| Merge an image (that was previously created with \-\-splitmirrors and |
| \-\-trackchanges) back into the original raid1 LV: |
| .br |
| .B lvconvert \-\-merge vg/lvol1_rimage_1 |
| ./" FIXME: use merge-mirror |
| |
| Replace PV /dev/sdb1 with PV /dev/sdf1 in a raid1/4/5/6/10 LV: |
| .br |
| .B lvconvert \-\-replace /dev/sdb1 vg/lvol1 /dev/sdf1 |
| |
| Replace 3 PVs /dev/sd[b-d]1 with PVs /dev/sd[f-h]1 in a raid1 LV: |
| .br |
| .B lvconvert \-\-replace /dev/sdb1 \-\-replace /dev/sdc1 \-\-replace /dev/sdd1 |
| .RS |
| .B vg/lvol1 /dev/sd[fgh]1 |
| .RE |
| |
| Replace the maximum of 2 PVs /dev/sd[bc]1 with PVs /dev/sd[gh]1 in a raid6 LV: |
| .br |
| .B lvconvert \-\-replace /dev/sdb1 \-\-replace /dev/sdc1 vg/lvol1 /dev/sd[gh]1 |
| |
| Convert an LV into a thin LV in the specified thin pool. The existing LV |
| is used as an external read\-only origin for the new thin LV. |
| .br |
| .B lvconvert \-\-type thin \-\-thinpool vg/tpool1 vg/lvol1 |
| |
| Convert an LV into a thin LV in the specified thin pool. The existing LV |
| is used as an external read\-only origin for the new thin LV, and is |
| renamed "external": |
| .br |
| .B lvconvert \-\-type thin \-\-thinpool vg/tpool1 |
| .RS |
| .B \-\-originname external vg/lvol1 |
| .RE |
| |
| Convert an LV to a cache pool LV using another specified LV for cache pool |
| metadata: |
| .br |
| .B lvconvert \-\-type cache-pool \-\-poolmetadata vg/poolmeta1 vg/lvol1 |
| |
| Convert an LV to a cache LV using the specified cache pool and chunk size: |
| .br |
| .B lvconvert \-\-type cache \-\-cachepool vg/cpool1 \-c 128 vg/lvol1 |
| |
| Detach and keep the cache pool from a cache LV: |
| .br |
| .B lvconvert \-\-splitcache vg/lvol1 |
| |
| Detach and remove the cache pool from a cache LV: |
| .br |
| .B lvconvert \-\-uncache vg/lvol1 |
| |
| .SH SEE ALSO |
| .BR lvm (8), |
| .BR lvm.conf (5), |
| .BR lvmcache (7), |
| .BR lvmthin (7), |
| .BR lvdisplay (8), |
| .BR lvextend (8), |
| .BR lvreduce (8), |
| .BR lvremove (8), |
| .BR lvrename (8), |
| .BR lvscan (8), |
| .BR vgcreate (8), |
| .BR cache_dump (8), |
| .BR cache_repair (8), |
| .BR cache_restore (8), |
| .BR thin_dump (8), |
| .BR thin_repair (8), |
| .BR thin_restore (8) |