Wednesday, 20 July 2011

Logical Volume Manager (LVM) Commands for AIX

Logical Volume Manager (LVM) Commands for AIX

Journaled File System (JFS)
File system that uses a journaled log for faster, more reliable data recovery

Logical Partition (LP)
The LV is made up of LPs. The LP corresponds to 1 or more (in the case of mirroring) PPs.

Logical Volume (LV)
The VG is subdivided into logical volumes and each LV can have a file system on it.

Physical Partition (PP)
All physical volumes are subdivided into pps. PPs are all the same size.

Physical Volume (PV)
Disk that is being managed by LVM.

Rootvg
Default volume group created during installation. The vg holds the OS filesystems ( /,/usr, /home, /proc /opt, /tmp, /var and swap space )

Volume Group (VG)
Area of storage that consists of one or more PVs

Command Summary

chfs -a size=<#512 byte blocks> <file system>
Increases the size of a journaled file system to the total number of 512 byte blocks specified

chfs -a size=<+512 byte blocks> <mount point> Increases the size of a journaled file system by the addional number of 512 byte blocks specified. For example "chfs -a size=+393216 /usr"

chlv -n <newname> <oldname> Change the name of a logical volume (it must be inactive)
crfs -v jfs -m <mount point> -g <volume group> -a size=<# of 512 byte blocks>

crfs -v jfs -m <mount point> -d <logical volume>
This command makes a logical volume, mount point with a journaled file system:
creates a jfs file system on a logical volume

df -k
Shows the disk usage of logical volumes on the server.

exportvg <volume group>
removes a volume group from a machine and entry from ODM

extendvg <volume group> <physical volume> Adds a new physical volume to an existing volume group

importvg -y <volume group> <physical volume> add a volume group to another machine

lslv <logical volume> [-l, m]
Lists information about the logical volumes. The -l option lists the disks in the logical volume.

lspv <physical volume> [-l, M, p]
Lists the disks on the server, including the physical volume will give details about that disk. The -l option will list the details of how the filesystems are distributed on the disk.

lsvg <volume group> [-l]
Lists the volume groups on the server, including the volume group name will give details about that vg. The -l option will list the logical volumes in the volume group.

lsvpcfg
Lists each vpath and the hdisks that make up the vpath

mklv -y <new lv> <vg> Makes a logical volume in a volume group

mksysb -l -f <device> makes a bootable backup of rootvg

mkvg -y <volume group> <physical volume> . . . <physical volume> Makes a volume group out of one or more physical volumes

mount <logical volume> <file system> or
mount <filesystem> if it is already in /etc/filesystems
Mounts the file system for use.

reducevg <volume group> <physical volume> Removes a physical volume from a volume group

rmfs <file system> removes a file system and it's logical volume

rmlv <lv> Removes a logical volume (it must be inactive)

savevg -l -f <device> <volume group> makes a backup copy of another volume group

umount <file system> dismount the file system,Unmounts the filesystem. 

Sample LVM Procedures:

Filesystem ProceduresProcedure to create a filesystem using JFS:
See below the procedure for creating a logical volume and a filesystem using JFS:
Procedure to extend the size of filesystem using JFS:

"df" to see the filesystem, it's current size, % utilization and the name of it's logical volume

"lslv <logical_volume>" to show information about the logical volume including it's volume group name.

"lsvg <volume_group>" to show information about the volume group, including number of free pp's and the pp size

If there are not enough free pp's then see below for procedure to add a disk to a volume group.

"chfs -a size= +4194304 <MOUNT_POINT>" to grow the filesystem by 2 GB (4194304=2*1024*1024*1024/512)

NOTE: Growing the file system will automatically grow the logical volume
df" shows the file system's current size is 2 GB more than before.Troubleshooting extending the size of a filesystem using JFS:

Error Message: 0516-787 extendlv: Maximum allocation for logical volume <LV_Name> is 512.
Maximum number of LPs for the logical volume has been exceeded - must increase the allocation
Calculate the number of LPs needed = LV Size in MB / LP size in MB

chlv -x <new_max_lps> <logical_volume>Procedure to remove a file system

Unmount the filesystem

Remove the logical volume "rmlv <lv_name>"
Remove the filesystem information from /etc/filesystems

Procedure to reduce the size of a file system - shareold is 8mb and needs to be reduced to 4mb

Create the file system
crfs -v jfs -m /usr/sharenew -g rootvg -a size=8192
this makes a logical volume in the root volume group of 4MB that uses jfs

Mount the volume
mount /usr/sharenew

Move the files from the old file system (/usr/shareold)
cd /usr/shareold

tar cf - | (cd /usr/sharenew; tar xvf -)
cd

Unmount the file systems
umount /usr/sharenew
umount /usr/shareold

Remove the old file system and it's logical volume
rmfs /usr/shareold

chfs -m /usr/shareold /usr/sharenew
Mount the new filesystem
mount /usr/shareold
Delete the temporary mount point
rmdir /usr/share

Logical Volume Procedures
Procedure to create a logical volume and filesystem in a volume group using JFS:

lsvg to determine the size of the PP
lslv in similar logical volumes to determine if mirroring is in effect

Calculate the number of PPs needed for the logical volume

bc
scale=2
<size of lv in MB>/<size of PP in MB>
quit

mklv -y "<LV_NAME>" <VG_NAME> <# of LPS> --> creates the logical volume

crfs -v jfs -d <LV_NAME> -m /<MOUNTPOINT> -A yes --> makes the filesystem, creates the mountpoint and puts it in /etc/filesystems

mount /<MOUNTPOINT> --> mounts the new fileystem

df /<MOUNTPOINT> --> verifies the mount and the size of the new filesystem

Check the ownership and permissions of the new mount point
ls -ld <mountpoint>
chown owner:group <mountpoint>
chmod XXX <mountpoint>

If mirroring is in effect, then mirror this logical volume to another disk (original and 1 mirror):
mklvcopy -s y <LV_NAME> 2

Check to see if all of the logical volumes in a volume group are mirrored

lsvg -l
Mirror a logical volume after the fact

mklvcopy -s y <LV_NAME> 2

Volume Group Procedures

Procedure to create a volume group:


lsdev -C -c disk -> lists available disks (and the hdisk#) on the server

mkvg -y "<VG_NAME>" hdisk# --> creates the volume group on the named hard disk

varyonvg <VG_NAME> --> activates the volume groupProcedure to add a disk to a volume group (extend the volume group)

extendvg <vg> <disk#>

Verify the disk has been successfully added to the vg
lsvg -p <vg>
Procedure to mirror the rootvg:

lspv --> determine the hdisk#

extendvg rootvg hdisk<number> --> add the hdisk to the volume group

lspv --> verify that the hdisk has been successfully added to the volume group

chvg -Q 'n' rootvg --> change the quorum so that the vg will stay active if one of the mirrors fail

mirrorvg -S -c 2 rootvg --> mirror all of the logical volumes in the volume group

lsvg -l rootvg --> verify successful mirroring (pps will appear "stale" until synchronization is complete).

bosboot -a --> update the boot image information

bootlist -m normal -o hdisk0 hdisk1 --> create a new bootlist

bootlist -m normal -o --> verify the bootlist is correct

Procedure to increase the number of LP's available

Assume we receive an error that the maximum number of LP's had been exceeded, and the maximum number of LP's defined was 1100:

"lsvg <volume_group>" to show the total PP's available in the volume group =1250

"lsvg -l <volume_group>" to show the total PP's used in all logical volumes in that volume group (showed sys1log, the jfs log was using 2 PP's)

"chlv -x 1248 <logical_volume>" to change the maximum number of LP's from 1100 to 1248 (1250 PP's in the volume group - 2 PP's used by the jfs log = 1248 available)


Physical Disk Procedures
Procedure to find disks/vpaths that are unallocated

lsvpcfg
This will show disks/vpaths and the volume group they are allocated to

lspv|grep None This will show pvs and whether they are asssociated with a volume group

Note: For vpaths, the hdisks will show as none, but they may be allocated to a vpath - you must grep each hdisk with the lsvpcfg

Procedure to make a new lun available to AIX

Allocate the new lun on the SAN
Run "cfgmgr"
Verify the new vpatch/hdisk by running "lsvpcfg"
There should be a new vpath and it should be available with no volume group - if not, rerun cfgmgr

Procedure to list the PVs in a volume group:
lsvg -p <volume group>


No comments:

Post a Comment