mklv Command

Purpose

Creates a logical volume.

Syntax

mklv [ -a position ] [ -b badblocks ] [ -c copies ] [ -C stripewidth ] [ -d schedule ] [ -R PreferredRead ] [ -e range ] [ -i ] [ -L label ] [ -m mapfile ] [ -o y / n ] [ -r relocate ] [ -s strict ] [ -t type ] [ -T O ] [ -u upperbound ] [ -v verify ] [ -w mirrorwriteconsistency ] [ -x maximum ] [ -y newlogicalvolume | -Y prefix ] [ -S stripsize ] [ -U userid ] [ -G groupid ] [ -P modes ] [ -p copyn=mirrorpool ] [ -O y | n ] volumegroup number [ physicalvolume ... ]

Description

The mklv command creates a new logical volume within the volumegroup. For example, all file systems must be on separate logical volumes. The mklv command allocates the number of logical partitions to the new logical volume. If you specify one or more physical volumes with the physicalvolume parameter, only those physical volumes are available for allocating physical partitions; otherwise, all the physical volumes within the volume group are available.

The default settings provide the most commonly used characteristics, but use flags to tailor the logical volume to the requirements of your system. After a logical volume is created, its characteristics can be changed with the chlv command.

The default allocation policy is to use a minimum number of physical volumes per logical volume copy, to place the physical partitions belonging to a copy as contiguously as possible, and then to place the physical partitions in the desired region specified by the -a flag. Also, by default, each copy of a logical partition is placed on a separate physical volume.

The -m flag specifies exact physical partitions to be used when creating the logical volume.

The -U, -G, and -P flags can be used to set the ownership, group, and permissions, respectively, of the logical volume device special files. Only root users can set these values. For scalable and big vg format volume groups that are exported, specify the -R flag with the importvg command to restore these values upon import.

You can specify logical volumes sizes in 512 Blocks/KB/MB/GB when using the mklv command. The logical volumes sizes must be integer values.

Physical partitions are numbered starting at the outermost edge with number one.

Note:
  1. Changes made to the logical volume are not reflected in the file systems. To change file system characteristics use the chfs command.
  2. Each logical volume has a control block. This logical volume control block is the first few hundred bytes within the logical volume. Care has to be taken when reading and writing directly to the logical volume to allow for the control block. Logical volume data begins on the second 512-byte block.
  3. To use this command, you must either have root user authority or be a member of the system group.
  4. When creating a striped logical volume using the -S flag, you must specify two or more physical volumes or use the -C or -u flag.
  5. When creating a striped logical volume, the number of partitions must be an even multiple of the striping width. If not, the number of partitions will be rounded up to the next valid value.
  6. The mklv command is not allowed on a snapshot volume group.
  7. Mirror Write Consistency (MWC) and Bad Block Relocation (BBR) are not supported in a concurrent setup with multiple active nodes accessing a disk at the same time. These two options must be disabled in this type of concurrent setup.
  8. Bad block relocation policy of a logical volume is not supported on a volume group that is created with 4 KB block physical volumes.

You can use the System Management Interface Tool (SMIT) smit mklv fast path to run this command.

File Systems on Striped Logical Volumes

If you want to create a file system on a striped logical volume, you should create the striped logical volume before you run the crfs command or mkfs command to create the file system. In order to maximize the use of disk space within the striping width, you should choose hard disks of the same size when creating the striped logical volume. The striping width is the number of hard disks that form the striped logical volume.

Flags

Item Description
-a position Sets the intra-physical volume allocation policy (the position of the logical partitions on the physical volume). The position variable can be one of the following:
m
Allocates logical partitions in the outer middle section of each physical volume. This is the default position.
c
Allocates logical partitions in the center section of each physical volume.
e
Allocates logical partitions in the outer edge section of each physical volume.
ie
Allocates logical partitions in the inner edge section of each physical volume.
im
Allocates logical partitions in the inner middle section of each physical volume.
-b badblocks Sets the bad-block relocation policy. The Relocation variable can be one of the following:
y
Causes bad-block relocation to occur. This is the default.
n
Prevents bad-block relocation from occurring.
-c copies Sets the number of physical partitions allocated for each logical partition. The copies variable can be set to a value from 1 to 3; the default is 1.
-C stripewidth Sets the Stripe width of the logical volume. If the Stripewidth is not entered it is assumed to be the upperbound or the total number of disks specified on the command line.
-d schedule Sets the scheduling policy when more than one logical partition is written. The schedule variable can be one of the following:
p
Establishes a parallel scheduling policy. This is the default for scheduling policy.
ps
Parallel write with sequential read policy. All mirrors are written in parallel but always read from the first mirror if the first mirror is available.
pr
Parallel write round robin read. This policy is similar to the parallel policy except an attempt is made to spread the reads to the logical volume more evenly across all mirrors.
s
Establishes a sequential scheduling policy.
Note: The -R flag overwrites the read policy specified by the -d flag. If the preferred copy is not available, the read operations follow the scheduling policy.
-R PreferredRead Sets read preference to the copy of the logical volume. If the -R flag is specified and if the preferred copy is available, the read operation occurs from the preferred copy. If the preferred copy is not available, the read operations follow the scheduling policy of the logical volume. The PreferredRead variable can be set to a value in the range 0 -3. The default value is 0.
-e range Sets the inter-physical volume allocation policy (the number of physical volumes to extend across, using the volumes that provide the best allocation). The Range value is limited by the upperbound variable, (set with the -u flag) and can be one of the following:
x
Allocates across the maximum number of physical volumes.
m
Allocates logical partitions across the minimum number of physical volumes. This is the default range.
-G groupid Specifies group ID for the logical volume special file.
-i Reads the physicalvolume parameter from standard input. Use the -i flag only when physicalvolume is entered through standard input.
-L Sets the logical volume label. The default label is None. The maximum size of the label file is 127 characters.
Note: If the logical volume is going to be used as a journaled file system (JFS), then the JFS will use this field to store the mount point of the file system on that logical volume for future reference.
-m mapfile Specifies the exact physical partitions to allocate. Partitions are used in the order given by the file designated by the mapfile parameter. All physical partitions belonging to a copy are allocated before allocating for the next copy. The mapfile format is:
PVname:PPnum1[-PPnum2]
where pvname is a physical volume name (for example, hdisk0). It is one record per physical partition or a range of consecutive physical partitions.
PVname
Name of the physical volume as specified by the system.
PPnum
Physical partition number.
Important: When you use map files, you must understand and adhere to all LV-allocation parameters such as strictness, upperbound, and stripe width. Using map files bypasses the checks done in the LVM-allocation routines. This is important for striped LVs, which are assumed to have a typical striped allocation pattern conforming to the stripe width.
-o y / n Turns on/off serialization of overlapping I/Os. If serialization is turned on then overlapping I/Os are not allowed on a block range and only a single I/O in a block range is processed at any one time. Most applications like file systems and databases do serialization so serialization should be turned off. The default for new logical volumes is off.
-O y / n Enables the infinite retry option of the logical volume.
n
The infinite retry option of the logical volume is not enabled. The failing I/O of the logical volume is not retried. This is the default value.
y
The infinite retry option of the logical volume is enabled. The failed I/O request is retried until it is successful.
Note: The infinite retry option is ignored for a logical volume (LV) when active mirror write consistency is set. The infinite retry option must be enabled at the volume group level to work for a logical volume when active mirror write consistency is set.
Note: The infinite retry option is not supported in the Geographic Logical Volume Manager (GLVM) environment.
-p copyn=mirrorpool Enables mirror pools for the logical volume. A mirror pool is assigned to a copy using the copyn=mirrorpool parameter. Specify a mirror pool for each copy. To specify more than one copyn=mirrorpool pair, provide multiple -p copyn=mirrorpool flags. Mirror pool names can be up to 15 characters and follow the same rules that apply to volume group names and logical volume names.
-P modes Specifies permissions (file modes) for the logical volume special file.
-r relocate Sets the reorganization relocation flag. For striped logical volumes, the relocate parameter must be set to n (the default for striped logical volumes). The relocate parameter can be one of the following:
y
Allows the logical volume to be relocated during reorganization. This is the default for relocation.
n
Prevents the logical volume from being relocated during reorganization.
-s strict Determines the strict allocation policy. Copies of a logical partition can be allocated to share or not to share the same physical volume. The strict parameter is represented by one of the following:
y
Sets a strict allocation policy, so copies for a logical partition cannot share the same physical volume. This is the default for allocation policy.
n
Does not set a strict allocation policy, so copies for a logical partition can share the same physical volume.
s
Sets a super strict allocation policy, so that the partitions allocated for one mirror cannot share a physical volume with the partitions from another mirror.
-S stripSize Specifies the number of bytes per strip (the strip size multiplied by the number of disks in an array equals the stripe size). Valid values include 4K, 8K, 16K, 32K, 64K, 128K, 256K, 512K, 1M, 2M, 4M, 8M, 16M, 32M, 64M, and 128M.
Note: The -d, -e, and -s flags are not valid when creating a striped logical volume using the -S flag.
-t type Sets the logical volume type. The standard types are jfs (journaled file systems), jfslog (journaled file system logs), jfs2 (enhanced journaled file system), jfs2log (enhanced journaled file system logs), and paging (paging spaces), but a user can define other logical volume types with this flag. You cannot create a striped logical volume of type boot. The default is jfs. If a log is manually created for a file system, the user must run the logform command to clean out the new jfslog before the log can be used. For example, to format the logical volume logdev, type:
logform /dev/logdev

where /dev/logdev is the absolute path to the logical volume.

-T O The -T O option indicates that the logical volume control block does not occupy the first block of the logical volume. Therefore, the space is available for application data. Applications can identify this type of logical volume with the IOCINFO ioctl operation. The logical volume has a device subtype of DS_LVZ.

A logical volume created without this option has a device subtype of DS_LV.

-U userid Specifies user ID for logical volume special file.
-u upperbound Sets the maximum number of physical volumes for new allocation. The value of the upperbound variable should be between one and the total number of physical volumes. When using super strictness, the upper bound indicates the maximum number of physical volumes allowed for each mirror copy. When using striped logical volumes, the upper bound must be multiple of stripewidth. If upperbound is not specified it is assumed to be stripewidth for striped logical volumes.
-v verify Sets the write-verify state for the logical volume. Causes (y) all writes to the logical volume to either be verified with a follow-up read, or prevents (n) the verification of all writes to the logical volume. The verify parameter is represented by one of the following:
n
Prevents the verification of all write operations to the logical volume. This is the default for the -v flag.
y
Causes the verification of all write operations to the logical volume.
-w mirrorwriteconsistency
y or a
Turns on active mirror write consistency that ensures data consistency among mirrored copies of a logical volume during typical I/O processing.
p
Turns on passive mirror write consistency that ensures data consistency among mirrored copies during volume group synchronization after a system interruption.
Note: This function is available only on big type and scalable type of volume groups.
n
No mirror write consistency. See the -f flag of the syncvg command.
-x maximum Sets the maximum number of logical partitions that can be allocated to the logical volume. The default value is 512. The number represented by the number parameter must be equal to or less than the number represented by the maximum variable.
-y newlogicalvolume

Specifies the logical volume name rather than having the name generated automatically. Logical volume names must be unique system wide and can range from 1 to 15 characters. If the volumegroup is varied on in concurrent mode, the new logical volume name should be unique across all the concurrent nodes where the volumegroup is varied on. The name cannot begin with a prefix already defined in the PdDv class in the Device Configuration Database for other devices.

The logical volume name created is sent to standard output. The logical volume name can only contain the following characters:
  • "A" through "Z"
  • "a" through "z"
  • "0" through "9"
  • "_" (the underscore)
  • "-" (the minus sign)
  • "." (the period)
All other characters are considered not valid.
-Y prefix Specifies the prefix to use instead of the prefix in a system-generated name for the new logical volume. The prefix must be less than or equal to 13 characters. The name cannot begin with a prefix already defined in the PdDv class in the Device Configuration Database for other devices, nor be a name already used by another device.

Security

Attention RBAC users and Trusted AIX users: This command can perform privileged operations. Only privileged users can run privileged operations. For more information about authorizations and privileges, see Privileged Command Database in Security. For a list of privileges and the authorizations associated with this command, see the lssecattr command or the getcmdattr subcommand.

Examples

  1. To make a logical volume in volume group vg02 with one logical partition and a total of two copies of the data, type:
    mklv -c 2 vg02 1
  2. To make a logical volume in volume group vg03 with nine logical partitions and a total of three copies spread across a maximum of two physical volumes, and whose allocation policy is not strict, type:
    mklv -c 3  -u 2  -s n vg03 9
  3. To make a logical volume in vg04 with five logical partitions allocated across the center sections of the physical volumes when possible, with no bad-block relocation, and whose type is paging, type:
    mklv -a c -t paging -b n vg04 5
  4. To make a logical volume in vg03 with 15 logical partitions chosen from physical volumes hdisk5, hdisk6, and hdisk9, type:
    mklv vg03 15 hdisk5 hdisk6 hdisk9
  5. To make a striped logical volume in vg05 with a strip size of 64K across 3 physical volumes and 12 logical partitions, type:
    mklv -u 3 -S 64K vg05 12
  6. To make a striped logical volume in vg05 with a strip size of 8K across hdisk1, hdisk2, and hdisk3 and 12 logical partitions, type:
    mklv -S 8K vg05 12 hdisk1 hdisk2 hdisk3
  7. To request a logical volume with a minimum size of 10MB, type:
    mklv VGNAME 10M # 

    The mklv command will determine the number of partitions needed to create a logical volume of at least that size.

    You can use uppercase and lowercase letters as follows:
        B/b       512 byte blocks
        K/k       KB
        M/m       MB
        G/g       GB
  8. To create three copies of logical volume in volume group testvg and to set the read preference to the second logical volume copy, enter the following command:
    mklv -c 3 -R 2 -y testlv testvg 10

Files

Item Description
/usr/sbin Directory where the mklv command resides.
/tmp Directory where the temporary files are stored while the command is running.
/dev Directory where the character and block device entries for the logical volume are created.