Improving IO Performance On AIX
Improving IO Performance On AIX
Ravi Singh
Technical Sales Specialist System p Southfield, MI email: [email protected]
Page 1 of 41
TABLE OF CONTENTS
1. 2. 3. 4. 5. 6. 7. 8. 9. Introduction Striping and maximum allocation policy Comparison of striping and max. allocation policy Filesystems and JFS logs Creating VGs, LVs and Filesystems I/O Performance Tuning Guidelines Example References ... 3 4 7 9 14 18 22 23 41
Page 2 of 41
Introduction
1.1. Pre-Requisites
Reader of these Guidelines is expected to have basic understanding of AIX LVM and LVM commands.
1.3. Planning
AIX LVM provides multiple features and options for creating logical volumes and filesystems. It is a good practice to spend some time to collect information and discuss the data layout procedure before installing and customizing a new server. The useful information would be: 1. 2. 3. 4. 5. Are the disks striped at H/W level? Will the data be striped across multiple filesystems by the dB (UDB, Sybase or Oracle)? Are the disks RAID protected (either 1, 5 or 10)? Filesystems required with mount point and size. Filesystem usage: Data, log, temp, dump and application binaries.
If the answer to (1) and (2) are no, then one should consider either striping or creating LVs with maximum allocation policy at AIX LVM level. This helps to reduce I/O performance problems that typically show up as the first bottleneck after the dB is built, data loaded and when the system is rolled into production. Discussion here assumes the following. Third party disks are mirrored for availability Disks are not striped. Multiple paths are configured for adapter availability and load balancing Database does not stripe the data across filesystems or containers or LVs.
1.4. Disclaimer
The discussion here should be used as guidelines and does not guaranty optimum performance. The performance of servers may vary and depend on many factors including varying peak load, system hardware configuration, software installed and tuned, applications installed and configured, I/O and network performance, tuning of H/W, OS and application for optimum performance. The suggested method here is one of the alternatives to improve I/O performance and not necessarily provide a guaranteed system performance.
Page 3 of 41
Page 4 of 41
..
Page 5 of 41
of the physical partitions. The migration of physical partitions (executed by the migratepv command) is a procedure that moves the entire physical partition from one physical volume to another within a volume group. This reorganization relocation flag does not prohibit the migration of the physical disk that accommodates the striped logical volume.
Page 6 of 41
Page 7 of 41
striped logical volume from AIX Version 4.3.3), and also remove the mirror from the mirrored logical volumes. But, you cannot convert a non-striped logical volume to a striped logical volume, or vice versa. The only way to create the striped logical volumes is to explicitly specify the -S flag on the mklv command line or use the corresponding SMIT panel. The AIX LVM provides many ways to control the physical partitions allocation of the logical volumes. They are forced by optional flags of the mklv command. But, if you attempt to create a striped logical volume, some of these optional flags cannot be used with the -S flag.
In AIX Version 4.3.3, prohibited optional flags with S are -e, -d, -m, -s.
Page 8 of 41
The dumpfs command shows you the superblock as well as the i-node map, and disk map information for the file system or special device specified.
disk addresses. Instead, the i-node points to an indirect block that contains the additional addresses. The number of disk i-nodes available to a file system depends on the size of the file system, the allocation group size (8 MB by default), and the ratio of bytes per i-node (4096 by default). These parameters are given to the mkfs command at file system creation. When enough files have been created to use all the available i-nodes, no more files can be created, even if the file system has free space. The number of available i-nodes can be determined by using the df -v command.
4.2.6 Fragments
The journaled file system fragment support allows disk space to be divided into allocation units that are smaller than the default size of 4096 bytes. Smaller allocation units or fragments minimize wasted disk space by more efficiently storing the data in a file or directory's partial logical blocks. The functional behavior of journaled file system fragment support is based on that provided by Berkeley Software Distribution (BSD) fragment support. Similar to BSD, the JFS fragment support allows users to specify the number of i-nodes that a file system has.
Page 10 of 41
The file system fragment size and the number-of-bytes-per-i-node (NBPI) value can be identified through the lsfs command or the System Management Interface Tool (SMIT). For application programs, the statfs subroutine can be used to identify the file system fragment size.
Page 11 of 41
If the jfslog is made bigger than the default, I/O can continue to proceed because the jfslog wrap threshold would not be reached as easily. The steps taken to increase the jfslog would be as follows: 1. Backup the file system. 2. Create the jfslog logical volume with two logical partitions now, instead of one. # mklv -t jfslog -y LVname VGname 2 Pvname where LVname is the name of the jfslog logical volume, VGname is the name of the volume group on which it is to reside, and PVname is the hdisk name on which the jfslog is to be located. 3. When the jfslog logical volume has been created, it has to be formatted: # /usr/sbin/logform /dev/LVname 4. The next step is to modify the affected filesystem or filesystems and the logical volume control block (LVCB). # chfs -a logname=/dev/LVname /filesystemname 5. Finally, unmount and then mount the affected file system so that this new jfslog logical volume can be used. # unmount /filesystemname; mount /filesystemname
Page 12 of 41
The names of the RAM disks are in the form of /dev/rramdiskx where x is the logical RAM disk number (0 through 63). The mkramdisk command also creates block special device entries (for example, /dev/ramdisk5) although use of the block device interface is discouraged because it adds overhead. The device special files in /dev are owned by root with a mode of 600. However, the mode, owner, and group ID can be changed using normal system commands. Up to 64 RAM disks can be created. Note: The size of a RAM disk cannot be changed after it is created. The mkramdisk [ -u ] size[ M | G ] command is responsible for generating a major number, loading the ram disk kernel extension, configuring the kernel extension, creating a ram disk, and creating the device special files in /dev. Once the device special files are created, they can be used just like any other device special files through normal open, read, write, and close system calls. RAM disks can be removed by using the rmramdisk command. RAM disks are also removed when the machine is rebooted.
4.6.2. An example
To set up a RAM disk that is approximately 20 MB in size and create a file system on that RAM disk, enter the following: mkramdisk 40000 ls -l /dev |grep ram mkfs -V jfs /dev/ramdisk x mkdir /ramdisk0 mount -V jfs -o nointegrity /dev/ramdisk x /ramdisk x where x is the logical RAM disk number. By default, RAM disk pages are pinned. Use the -u flag to create RAM disk pages that are not pinned. Note: In AIX 5.1 and 4.3.3, the max. size of ramdisk is 2 GB.
Page 13 of 41
Grouping the filesystems on the basis of its usage is the first step while creating them. This helps to separate PVs used for accessing data, dump and applications and gives a better control to manage disks. As a guideline, do not create a VG with more than 32 disks, it is easy to manage, AIX LVM commands run faster and easy to administer. During disk migration from one SAN to another or from one frame of disks to another, it is easy to use LVM mirroring to mirror a new set of disks by adding them to the VG, mirroring and then breaking the mirror on old disks. To plan for such a migration later, create VGs with big VG enabled so that a VG can have upto 128 PVs and 512 LVs. It is equally important to have free PPs available in each VG and each PV, so that a filesystem can be expanded later and also when free PPs are required during disk migration.
being accessed at the same time by multiple filesystems gets reduced and may result in reduced I/O wait.
5.2.3. JFSlogs
As discussed in Section 4.5, create one JFSlog for each LV created and distribute them across multiple PVs. Using the above example of three LVs on three PVs, commands given below create three JFSlogs. mklv y loglv11 tjfslog datavg 1 hdiskpower11 mklv y loglv12 tjfslog datavg 1 hdiskpower12 mklv y loglv13 tjfslog datavg 1 hdiskpower13 Each of the JFSlog created here will be used later while creating filesystems and assigned to one filesystem only. These JFSlogs created should be formatted before assigning to filesystems, example given below. echo y|logform /dev/loglv11 echo y|logform /dev/loglv12 echo y|logform /dev/loglv13 In AIX 5.1 and 5.2, if JFS2 filesystems are used, then the type (-t flag) should be specified as jfs2log.
mount /filesystemname The flag abf=true indicates large file enabled and alogname specifies the name of the jfslog/jfs2log to be used.
5.4.
If the jfslog for a filesystem is to be changed, do not edit /etc/filesystems and change the jfslog value in the stanza for that filesystem. The jfslog inf. is stored in /etc/filesystems as well in Logical Volume Control Block (LVCB) on the disk. Hence you should unmount the filesystem, change jfslog using chfs command and then mount the filesystem back. umount /filesystemname chfs a logname=/dev/Lvname /filesystemname mount /filesystemname
Expand the filesystem using smitty chfs or from command line using chfs command.
Page 16 of 41
Command line examples for expanding a filesystem by adding one PV at a time to the VG and adding multiple PVs to the VG are given below. The distribution of PPs across the PVs is given in the Sample Output section. It can be seen that, a new JFSlog is created for each PV added and this can be used if a new filesystem is created or if a jfslog is to be changed to one of the existing filesystems. Example for adding one PV at a time extendvg -f datavg hdiskpower14 echo 'Creating JFSlog loglv14' mklv -y loglv14 -tjfslog datavg 1 echo y|logform /dev/loglv14 echo '\nNow expanding /data1, /data2 and /data3 by adding 22 PPs to each' chfs -asize=+2793042 /data1 chfs -asize=+2793042 /data2 chfs -asize=+2793042 /data3 extendvg -f datavg hdiskpower15 echo 'Creating JFSlog loglv15' mklv -y loglv15 -tjfslog datavg 1 echo y|logform /dev/loglv15 echo 'Now expanding /data1, /data2 and /data3 by adding 22 PPs to each' chfs -asize=+2793042 /data1 chfs -asize=+2793042 /data2 chfs -asize=+2793042 /data3
Example for adding two PVs together extendvg -f datavg hdiskpower14 hdiskpower15 echo 'Creating JFSlog loglv14' mklv -y loglv14 -tjfslog datavg 1 echo y|logform /dev/loglv14 echo 'Creating JFSlog loglv15' mklv -y loglv15 -tjfslog datavg 1 echo y|logform /dev/loglv15 echo 'Now expanding /data1, /data2 and /data3 by adding 22 PPs to each' chfs -asize=+5586086 /data1 chfs -asize=+5586086 /data2 chfs -asize=+5586086 /data3
Page 17 of 41
a situation, the minperm and maxperm values should be lowered. Fifty percent would be a good start. maxpgahead If large files are going to be read into memory often, the maxpgahead should be increased from its default value of 8. The new value could be any power of 2 value because the algorithm for reading ahead keeps doubling the pages read. The flag to modify maxpgahead is -R. So, to set the value to 16, you would enter: # /usr/samples/kernel/vmtune -R 16 Turning on and tuning these parameters (numclust and maxrandwrt) could result in a reduced I/O bottleneck because now, writes to disk to not have to wait on the syncd daemon, but rather, can be spread more evenly over time. There will also be less file fragmentation because dirty pages are clustered first before being written to disk. The other vmtune parameters that can be tuned for I/O performance are listed below. It is important to bear in mind, though, that using large files does not necessarily warrant any tuning of these parameters. The decision to tune them will depend very much on what type of I/Os are occurring to the files. The size of the I/O, whether it is raw or journaled file system I/O, and the rate at which the I/O is taking place are important considerations. numfsbufs This parameter specifies the number of file system buf structs. Buf structs are defined in /usr/include/sys/buf.h. When doing writes, each write buffer will have an associated buffer header as described by the struct buf. This header describes the contents of the buffer. Increasing this value will help write performance for very large writes size on devices that support very fast writes. A filesystem will have to be unmounted and then mounted again after changing this parameter in order for it to take effect. # /usr/samples/kernel/vmtune -b 512 The default value for this parameter is 93 for AIX V4. Each filesystem gets two pages worth of buf structs. Since two pages is 8192 bytes and since sizeof(struct buf) is about 88, the ratio is around 93 (8192/88=93). The value of numfsbufs should be based on how many simultaneous I/Os you would be doing to a single filesystem. Usually, though, this figure will be left unchanged, unless your application is issuing very large writes (many megabytes at a time) to fast I/O devices such as HIPPI. lvm_bufcnt This parameter specifies the number of LVM buffers for raw physical I/Os. If the striped logical volumes are on raw logical volumes and writes larger than 1.125 MB are being done to these striped raw logical volumes, increasing this parameter might increase throughput of the write activity. # /usr/samples/kernel/vmtune -u 16 The 1.125 MB figure comes about because the default value of lvm_bufcnt is 9, and the maximum size the LVM can handle in one write is 128 KB. (9 buffers * 128 KB equals 1.125 MB.). hd_pbuf_cnt
Page 19 of 41
This attribute controls the number of pbufs available to the LVM device driver. Pbufs are pinned memory buffers used to hold I/O requests. In AIX V4, a single pbuf is used for each sequential I/O request regardless of the number of pages in that I/O. The default allows you to have a queue of at least 16 I/Os to each disk, which is quite a lot. So, it is often not a bottleneck. However, if you have a RAID array which combines a lot of physical disks into one hdisk, you may need to increase it.
Page 20 of 41
6.4. SSA adapters and loops 6.4.1. SSA Adapters and enclosure
If the adapter has fast write cache, make sure it is enabled on SSA logical disks. Check the microcode level on SSA adapter and SSA enclosure, and upgrade if required.
6.8. Filemon
The filemon command is one of the performance tools used to investigate I/O related performance. The syntax of the command can be found in the AIX documentation or in the Performance and Tuning Guide.
Page 21 of 41
Guidelines
7.1. Initial setup
Create VGs with big VG enabled (-B flag in mkvg command) so that if needed the VG can have upto 128 PVs and 512 LVs. Choose the lowest possible no. for the PP size while creating VGs. This gives a better distribution of data across multiple PVs. Create a separate VG for data, dump, application binaries and so on. Create Filesystems always large file enabled (-abf=true in crfs command). Create filesystems and jfslogs of type=jfs2 in AIX 5.1 and later. Create one jfslog on each PV in a VG (loglv01, loglv02..loglv08, if there are 8 PVs in a VG). Create an LV with maximum allocation policy (-ex in mklv command) by specifying all LVs in the VG. Do not use all PPs in PVs, always have few GBs of free space in a VG and few free PPs on each PV. Do not allocate all the PPs in a VG to multiple LVs, if needed add an extra PV right in the beginning. Using free PPs in a VG and few free PPs on each PV, you can easily expand the filesystem later by spreading it across the same set of disks. Create each LV starting from a disk different from the previous LV. If you used hdisk1, hdisk2.hdisk8 as the sequence for datalv1, use hdisk2, hdisk3hdisk8, hdisk1 as the sequence for datalv2. This gives each LV a different PV as the starting point. Allocate a separate JFSLog for each filesystem created on a separate disk.
7.5. ulimits
Tune ulimits for specific or all users so that files greater than 2GB can be created.
Page 22 of 41
Example
8.1. Sample script disk-layout.ksh
#!/usr/bin/ksh # Ravi SIngh, IBM # Create datavg, LVs datalv1, datalv2 and datalv3 on three PVs. # LVs have maximum allocation policy to create each PP on a separate PV # in round-robin. # The starting PV for each LV is different. # Create one JFSLog for each filesystem, each one on a separate PV. # Create /data1 on datalv1 using loglv11, /data2 on datalv2 using # loglv12 and /data3 on datalv3 using loglv13. # Phase2 : Expand the filesystems already created. # Option 1: Add one PV at a time and expand filesystems. # Option 2: Add two PVs together and expand filesystems. # # 04/23/2003 : Ver 1 echo 'This script assumes hdiskpower11, 12, 13, 14 and 15 are free' echo 'Creates VG datavg, LVs datalv1, datalv2 and datalv3' echo 'Creates JFSLog loglv11, loglv12 and loglv13' echo 'Creates filesystems /data1, /data2 and /data3' echo 'Is it OK (y/n)?' read OPT JUNK if [ "$OPT" = "y" ] then echo 'Log file is /tmp/disk-layout.log' echo 'Check if datavg exists, umount all filesystems and export vg' lsvg -o|grep -i "datavg" if [ $? = 0 ] then echo 'Unmounting Filesystems' lsvg -l datavg|tail +3|awk '{print $7}'|while read FS do if [ "$FS" != "N/A" ] then echo "$FS" fuser -cxku "$FS" umount $FS fi done echo 'Exporting datavg' varyoffvg datavg exportvg datavg fi echo 'Creating VG datavg' mkvg -f -y datavg -s64 hdiskpower11 hdiskpower12 hdiskpower13 echo 'Creating JFS logs'
Page 23 of 41
mklv -y loglv11 -tjfslog datavg 1 hdiskpower11 mklv -y loglv12 -tjfslog datavg 1 hdiskpower12 mklv -y loglv13 -tjfslog datavg 1 hdiskpower13 echo 'Formatting JFSlogs' echo y|logform /dev/loglv11 echo y|logform /dev/loglv12 echo y|logform /dev/loglv13 echo 'Creating LVs' mklv -ydatalv1 -ex datavg 66 hdiskpower11 hdiskpower12 hdiskpower13 mklv -ydatalv2 -ex datavg 66 hdiskpower12 hdiskpower13 hdiskpower11 mklv -ydatalv3 -ex datavg 66 hdiskpower13 hdiskpower11 hdiskpower12
echo 'Creating Filesystems' crfs -vjfs -ddatalv1 -m/data1 -Ano -prw -tno -afrag=4096 -anbpi=4096 -aag=8 -alogname=loglv11 crfs -vjfs -ddatalv2 -m/data2 -Ano -prw -tno -afrag=4096 -anbpi=4096 -aag=8 -alogname=loglv12 crfs -vjfs -ddatalv3 -m/data3 -Ano -prw -tno -afrag=4096 -anbpi=4096 -aag=8 -alogname=loglv13 echo 'Mounting Filesystems' mount /data1 mount /data2 mount /data3 ( date echo 'This is an example to show' echo '1> Creating LVs and Filesystems on three PVs with max allocation policy' echo '2> Creating one JFSLog on a separate PV for each filesystem' echo '3> Creating filesystems' echo '4> When the VG is full, extending it by adding PV(s)' echo '5> Expanding Filesystems' echo '\nDisplaying layout of LVs' echo echo 'Each LV spreads on three PVs and each JFSlog on a separate PV' echo 'Each Filesystem uses a separate JFSLog' echo 'loglv01 for /data1, loglv02 for /data2 and loglv03 for /data3' echo lsvg -l datavg echo '\n df -k' df -k |grep data echo echo 'LV starts from hdiskpower11 to hdiskpower12 to hdiskpower13 in round-robin' lslv -l datalv1 lslv -m datalv1 echo echo 'LV starts from hdiskpower12 to hdiskpower13 to hdiskpower11 in round-robin' lslv -l datalv2 lslv -m datalv2 echo
Page 24 of 41
echo 'LV starts from hdiskpower13 to hdiskpower12 to hdiskpower12 in round-robin' lslv -l datalv3 lslv -m datalv3 ) > /tmp/disk-layout.log 2>&1
echo 'Enter 1 to add hdiskpower14 or 2 to add hdiskpower14 and 15' read OPT JUNK if [ "$OPT" = 1 ] then echo '\nNow extending VG datavg by adding one PV hdiskpower14' extendvg -f datavg hdiskpower14 echo 'Creating JFSlog loglv14' mklv -y loglv14 -tjfslog datavg 1 echo y|logform /dev/loglv14 echo '\nNow expanding /data1, /data2 and /data3 by adding 22 PPs to each' chfs -asize=+2793042 /data1 chfs -asize=+2793042 /data2 chfs -asize=+2793042 /data3 ( echo '\n===========================================' echo '\nPhase 2 : Adding more PVs and expanding already created LVs and FSs' date echo '\nAfter adding hdiskpower14 to datavg' echo lsvg -l datavg echo '\nAll the added PPs now resides only on hdiskpower14' lslv -l datalv1 echo '\n df -k' df -k /data1 echo '\nAll the added PPs now resides only on hdiskpower14' lslv -l datalv2 echo '\n df -k' df -k /data2 echo '\nAll the added PPs now resides only on hdiskpower14' lslv -l datalv3 echo '\n df -k' df -k /data3
) >> /tmp/disk-layout.log 2>&1 echo 'Now extending VG datavg by adding second PV hdiskpower15' extendvg -f datavg hdiskpower15 echo 'Creating JFSlog loglv15' mklv -y loglv15 -tjfslog datavg 1 echo y|logform /dev/loglv15 echo 'Now expanding /data1, /data2 and /data3 by adding 22 PPs to each' chfs -asize=+2793042 /data1
Page 25 of 41
chfs -asize=+2793042 /data2 chfs -asize=+2793042 /data3 ( echo date echo '\nAfter adding hdiskpower15' echo lsvg -l datavg echo '\nAll the added PPs now resides only on hdiskpower15' lslv -l datalv1 echo '\n df -k' df -k /data1 echo lslv -m datalv1 echo '\nAll the added PPs now resides only on hdiskpower15' lslv -l datalv2 echo '\n df -k' df -k /data2 echo lslv -m datalv2 echo '\nAll the added PPs now resides only on hdiskpower15' lslv -l datalv3 echo '\n df -k' df -k /data3 echo lslv -m datalv3 ) >> /tmp/disk-layout.log 2>&1
else echo 'Now extending VG datavg by adding PVs hdiskpower14 and 15' extendvg -f datavg hdiskpower14 hdiskpower15 echo 'Creating JFSlog loglv14' mklv -y loglv14 -tjfslog datavg 1 echo y|logform /dev/loglv14 echo 'Creating JFSlog loglv15' mklv -y loglv15 -tjfslog datavg 1 echo y|logform /dev/loglv15 echo 'Now expanding /data1, /data2 and /data3 by adding 22 PPs to each' chfs -asize=+5586086 /data1 chfs -asize=+5586086 /data2 chfs -asize=+5586086 /data3 ( echo '\n===========================================' echo 'Phase 2 : Adding more PVs and expanding already created LVs and FSs' date echo
Page 26 of 41
echo '\nAfter adding hdiskpower14 and 15 to datavg' lsvg -l datavg echo echo '\nAll the added PPs round-robin between hdiskpower14 and hdiskpower15' lslv -l datalv1 lslv -m datalv1 echo '\n df -k' df -k /data1 echo echo '\nAll the added PPs roundrobin between hdiskpower14 and hdiskpower15' lslv -l datalv2 lslv -m datalv2 echo '\n df -k' df -k /data2 echo echo '\nAll the added PPs roundrobin between hdiskpower14 and hdiskpower15' lslv -l datalv3 lslv -m datalv3 echo '\n df -k' df -k /data3 echo echo date ) >> /tmp/disk-layout.log 2>&1 fi echo 'Log file is /tmp/disk-layout.log' fi
Page 27 of 41
datalv3 Creating Filesystems Based on the parameters chosen, the new /data1 JFS file system is limited to a maximum size of 134217728 (512 byte blocks) New File System size is 8650752 Based on the parameters chosen, the new /data2 JFS file system is limited to a maximum size of 134217728 (512 byte blocks) New File System size is 8650752 Based on the parameters chosen, the new /data3 JFS file system is limited to a maximum size of 134217728 (512 byte blocks) New File System size is 8650752 Mounting Filesystems Enter 1 to add hdiskpower14 or 2 to add hdiskpower14 and 15 2 Now extending VG datavg by adding PVs hdiskpower14 and 15 Creating JFSlog loglv14 loglv14 Creating JFSlog loglv15 loglv15 Now expanding /data1, /data2 and /data3 by adding 22 PPs to each Filesystem size changed to 14286848 Filesystem size changed to 14286848 Filesystem size changed to 14286848 Log file is /tmp/disk-layout.log shcladv1b #
LPs PPs PVs LV STATE 1 1 open/syncd N/A 1 1 open/syncd N/A 1 1 open/syncd N/A 66 3 open/syncd /data1 66 3 open/syncd /data2 66 3 open/syncd /data3
MOUNT POINT
4% 4% 4%
17 17 17
LV starts from hdiskpower11 to hdiskpower12 to hdiskpower13 in roundrobin datalv1:/data1 PV COPIES IN BAND DISTRIBUTION hdiskpower11 022:000:000 54% 000:012:010:000:000 hdiskpower12 022:000:000 54% 000:012:010:000:000 hdiskpower13 022:000:000 54% 000:012:010:000:000 datalv1:/data1 LP PP1 PV1 PP2 PV2 PP3 PV3 0001 0016 hdiskpower11 0002 0016 hdiskpower12 0003 0016 hdiskpower13 0004 0017 hdiskpower11 0005 0017 hdiskpower12 0006 0017 hdiskpower13 0007 0018 hdiskpower11 0008 0018 hdiskpower12 0009 0018 hdiskpower13 0010 0019 hdiskpower11 0011 0019 hdiskpower12 0012 0019 hdiskpower13 0013 0020 hdiskpower11 0014 0020 hdiskpower12 0015 0020 hdiskpower13 0016 0021 hdiskpower11 0017 0021 hdiskpower12 0018 0021 hdiskpower13 0019 0022 hdiskpower11 0020 0022 hdiskpower12 0021 0022 hdiskpower13 0022 0023 hdiskpower11 0023 0023 hdiskpower12 0024 0023 hdiskpower13 0025 0024 hdiskpower11 0026 0024 hdiskpower12 0027 0024 hdiskpower13 0028 0025 hdiskpower11 0029 0025 hdiskpower12 0030 0025 hdiskpower13 0031 0026 hdiskpower11 0032 0026 hdiskpower12 0033 0026 hdiskpower13 0034 0027 hdiskpower11 0035 0027 hdiskpower12 0036 0027 hdiskpower13 0037 0028 hdiskpower11 0038 0028 hdiskpower12 0039 0028 hdiskpower13 0040 0029 hdiskpower11 0041 0029 hdiskpower12 0042 0029 hdiskpower13 0043 0030 hdiskpower11 0044 0030 hdiskpower12
Page 29 of 41
0045 0046 0047 0048 0049 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 0060 0061 0062 0063 0064 0065 0066
0030 hdiskpower13 0031 hdiskpower11 0031 hdiskpower12 0031 hdiskpower13 0032 hdiskpower11 0032 hdiskpower12 0032 hdiskpower13 0033 hdiskpower11 0033 hdiskpower12 0033 hdiskpower13 0034 hdiskpower11 0034 hdiskpower12 0034 hdiskpower13 0035 hdiskpower11 0035 hdiskpower12 0035 hdiskpower13 0036 hdiskpower11 0036 hdiskpower12 0036 hdiskpower13 0037 hdiskpower11 0037 hdiskpower12 0037 hdiskpower13
LV starts from hdiskpower12 to hdiskpower13 to hdiskpower11 in roundrobin datalv2:/data2 PV COPIES IN BAND DISTRIBUTION hdiskpower12 022:000:000 0% 014:000:003:005:000 hdiskpower13 022:000:000 0% 014:000:003:005:000 hdiskpower11 022:000:000 0% 014:000:003:005:000 datalv2:/data2 LP PP1 PV1 PP2 PV2 PP3 PV3 0001 0038 hdiskpower12 0002 0038 hdiskpower13 0003 0038 hdiskpower11 0004 0039 hdiskpower12 0005 0039 hdiskpower13 0006 0039 hdiskpower11 0007 0040 hdiskpower12 0008 0040 hdiskpower13 0009 0040 hdiskpower11 0010 0001 hdiskpower12 0011 0001 hdiskpower13 0012 0001 hdiskpower11 0013 0002 hdiskpower12 0014 0002 hdiskpower13 0015 0002 hdiskpower11 0016 0003 hdiskpower12 0017 0003 hdiskpower13 0018 0003 hdiskpower11 0019 0004 hdiskpower12 0020 0004 hdiskpower13 0021 0004 hdiskpower11 0022 0005 hdiskpower12 0023 0005 hdiskpower13 0024 0005 hdiskpower11 0025 0006 hdiskpower12
Page 30 of 41
0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 0060 0061 0062 0063 0064 0065 0066
0006 hdiskpower13 0006 hdiskpower11 0007 hdiskpower12 0007 hdiskpower13 0007 hdiskpower11 0008 hdiskpower12 0008 hdiskpower13 0008 hdiskpower11 0009 hdiskpower12 0009 hdiskpower13 0009 hdiskpower11 0010 hdiskpower12 0010 hdiskpower13 0010 hdiskpower11 0011 hdiskpower12 0011 hdiskpower13 0011 hdiskpower11 0012 hdiskpower12 0012 hdiskpower13 0012 hdiskpower11 0013 hdiskpower12 0013 hdiskpower13 0013 hdiskpower11 0014 hdiskpower12 0014 hdiskpower13 0014 hdiskpower11 0041 hdiskpower12 0041 hdiskpower13 0041 hdiskpower11 0042 hdiskpower12 0042 hdiskpower13 0042 hdiskpower11 0043 hdiskpower12 0043 hdiskpower13 0043 hdiskpower11 0044 hdiskpower12 0044 hdiskpower13 0044 hdiskpower11 0045 hdiskpower12 0045 hdiskpower13 0045 hdiskpower11
LV starts from hdiskpower13 to hdiskpower12 to hdiskpower12 in roundrobin datalv3:/data3 PV COPIES IN BAND DISTRIBUTION hdiskpower13 022:000:000 0% 000:000:000:008:014 hdiskpower11 022:000:000 0% 000:000:000:008:014 hdiskpower12 022:000:000 0% 000:000:000:008:014 datalv3:/data3 LP PP1 PV1 PP2 PV2 PP3 PV3 0001 0046 hdiskpower13 0002 0046 hdiskpower11 0003 0046 hdiskpower12 0004 0047 hdiskpower13 0005 0047 hdiskpower11 0006 0047 hdiskpower12
Page 31 of 41
0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 0060 0061 0062
0048 hdiskpower13 0048 hdiskpower11 0048 hdiskpower12 0049 hdiskpower13 0049 hdiskpower11 0049 hdiskpower12 0050 hdiskpower13 0050 hdiskpower11 0050 hdiskpower12 0051 hdiskpower13 0051 hdiskpower11 0051 hdiskpower12 0052 hdiskpower13 0052 hdiskpower11 0052 hdiskpower12 0053 hdiskpower13 0053 hdiskpower11 0053 hdiskpower12 0054 hdiskpower13 0054 hdiskpower11 0054 hdiskpower12 0055 hdiskpower13 0055 hdiskpower11 0055 hdiskpower12 0056 hdiskpower13 0056 hdiskpower11 0056 hdiskpower12 0057 hdiskpower13 0057 hdiskpower11 0057 hdiskpower12 0058 hdiskpower13 0058 hdiskpower11 0058 hdiskpower12 0059 hdiskpower13 0059 hdiskpower11 0059 hdiskpower12 0060 hdiskpower13 0060 hdiskpower11 0060 hdiskpower12 0061 hdiskpower13 0061 hdiskpower11 0061 hdiskpower12 0062 hdiskpower13 0062 hdiskpower11 0062 hdiskpower12 0063 hdiskpower13 0063 hdiskpower11 0063 hdiskpower12 0064 hdiskpower13 0064 hdiskpower11 0064 hdiskpower12 0065 hdiskpower13 0065 hdiskpower11 0065 hdiskpower12 0066 hdiskpower13 0066 hdiskpower11
Page 32 of 41
=========================================== Phase 2 : Adding more PVs and expanding already created LVs and FSs Mon May 12 15:06:39 EDT 2003
After adding hdiskpower14 and 15 to datavg datavg: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT loglv11 jfslog 1 1 1 open/syncd N/A loglv12 jfslog 1 1 1 open/syncd N/A loglv13 jfslog 1 1 1 open/syncd N/A datalv1 jfs 109 109 5 open/syncd /data1 datalv2 jfs 109 109 5 open/syncd /data2 datalv3 jfs 109 109 5 open/syncd /data3 loglv14 jfslog 1 1 1 closed/syncd N/A loglv15 jfslog 1 1 1 closed/syncd N/A
All the added PPs roundrobin between hdiskpower14 and hdiskpower15 datalv1:/data1 PV COPIES IN BAND DISTRIBUTION hdiskpower11 022:000:000 54% 000:012:010:000:000 hdiskpower12 022:000:000 54% 000:012:010:000:000 hdiskpower13 022:000:000 54% 000:012:010:000:000 hdiskpower14 022:000:000 54% 000:012:010:000:000 hdiskpower15 021:000:000 57% 000:012:009:000:000 datalv1:/data1 LP PP1 PV1 PP2 PV2 PP3 PV3 0001 0016 hdiskpower11 0002 0016 hdiskpower12 0003 0016 hdiskpower13 0004 0017 hdiskpower11 0005 0017 hdiskpower12 0006 0017 hdiskpower13 0007 0018 hdiskpower11 0008 0018 hdiskpower12 0009 0018 hdiskpower13 0010 0019 hdiskpower11 0011 0019 hdiskpower12 0012 0019 hdiskpower13 0013 0020 hdiskpower11 0014 0020 hdiskpower12 0015 0020 hdiskpower13 0016 0021 hdiskpower11 0017 0021 hdiskpower12 0018 0021 hdiskpower13 0019 0022 hdiskpower11 0020 0022 hdiskpower12 0021 0022 hdiskpower13 0022 0023 hdiskpower11 0023 0023 hdiskpower12
Page 33 of 41
0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079
0023 hdiskpower13 0024 hdiskpower11 0024 hdiskpower12 0024 hdiskpower13 0025 hdiskpower11 0025 hdiskpower12 0025 hdiskpower13 0026 hdiskpower11 0026 hdiskpower12 0026 hdiskpower13 0027 hdiskpower11 0027 hdiskpower12 0027 hdiskpower13 0028 hdiskpower11 0028 hdiskpower12 0028 hdiskpower13 0029 hdiskpower11 0029 hdiskpower12 0029 hdiskpower13 0030 hdiskpower11 0030 hdiskpower12 0030 hdiskpower13 0031 hdiskpower11 0031 hdiskpower12 0031 hdiskpower13 0032 hdiskpower11 0032 hdiskpower12 0032 hdiskpower13 0033 hdiskpower11 0033 hdiskpower12 0033 hdiskpower13 0034 hdiskpower11 0034 hdiskpower12 0034 hdiskpower13 0035 hdiskpower11 0035 hdiskpower12 0035 hdiskpower13 0036 hdiskpower11 0036 hdiskpower12 0036 hdiskpower13 0037 hdiskpower11 0037 hdiskpower12 0037 hdiskpower13 0027 hdiskpower14 0027 hdiskpower15 0026 hdiskpower14 0026 hdiskpower15 0025 hdiskpower14 0025 hdiskpower15 0024 hdiskpower14 0024 hdiskpower15 0023 hdiskpower14 0023 hdiskpower15 0022 hdiskpower14 0022 hdiskpower15 0021 hdiskpower14
Page 34 of 41
0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 0100 0101 0102 0103 0104 0105 0106 0107 0108 0109
0021 hdiskpower15 0020 hdiskpower14 0020 hdiskpower15 0019 hdiskpower14 0019 hdiskpower15 0018 hdiskpower14 0018 hdiskpower15 0017 hdiskpower14 0017 hdiskpower15 0016 hdiskpower14 0016 hdiskpower15 0040 hdiskpower14 0040 hdiskpower15 0039 hdiskpower14 0039 hdiskpower15 0038 hdiskpower14 0038 hdiskpower15 0037 hdiskpower14 0037 hdiskpower15 0036 hdiskpower14 0036 hdiskpower15 0035 hdiskpower14 0035 hdiskpower15 0034 hdiskpower14 0034 hdiskpower15 0033 hdiskpower14 0033 hdiskpower15 0032 hdiskpower14 0032 hdiskpower15 0031 hdiskpower14
All the added PPs roundrobin between hdiskpower14 and hdiskpower15 datalv2:/data2 PV COPIES IN BAND DISTRIBUTION hdiskpower12 022:000:000 0% 014:000:003:005:000 hdiskpower13 022:000:000 0% 014:000:003:005:000 hdiskpower11 022:000:000 0% 014:000:003:005:000 hdiskpower15 022:000:000 0% 014:000:004:004:000 hdiskpower14 021:000:000 0% 014:000:003:004:000 datalv2:/data2 LP PP1 PV1 PP2 PV2 PP3 PV3 0001 0038 hdiskpower12 0002 0038 hdiskpower13 0003 0038 hdiskpower11 0004 0039 hdiskpower12 0005 0039 hdiskpower13 0006 0039 hdiskpower11 0007 0040 hdiskpower12 0008 0040 hdiskpower13 0009 0040 hdiskpower11 0010 0001 hdiskpower12
Page 35 of 41
0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 0060 0061 0062 0063 0064 0065 0066
0001 hdiskpower13 0001 hdiskpower11 0002 hdiskpower12 0002 hdiskpower13 0002 hdiskpower11 0003 hdiskpower12 0003 hdiskpower13 0003 hdiskpower11 0004 hdiskpower12 0004 hdiskpower13 0004 hdiskpower11 0005 hdiskpower12 0005 hdiskpower13 0005 hdiskpower11 0006 hdiskpower12 0006 hdiskpower13 0006 hdiskpower11 0007 hdiskpower12 0007 hdiskpower13 0007 hdiskpower11 0008 hdiskpower12 0008 hdiskpower13 0008 hdiskpower11 0009 hdiskpower12 0009 hdiskpower13 0009 hdiskpower11 0010 hdiskpower12 0010 hdiskpower13 0010 hdiskpower11 0011 hdiskpower12 0011 hdiskpower13 0011 hdiskpower11 0012 hdiskpower12 0012 hdiskpower13 0012 hdiskpower11 0013 hdiskpower12 0013 hdiskpower13 0013 hdiskpower11 0014 hdiskpower12 0014 hdiskpower13 0014 hdiskpower11 0041 hdiskpower12 0041 hdiskpower13 0041 hdiskpower11 0042 hdiskpower12 0042 hdiskpower13 0042 hdiskpower11 0043 hdiskpower12 0043 hdiskpower13 0043 hdiskpower11 0044 hdiskpower12 0044 hdiskpower13 0044 hdiskpower11 0045 hdiskpower12 0045 hdiskpower13 0045 hdiskpower11
Page 36 of 41
0067 0068 0069 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 0100 0101 0102 0103 0104 0105 0106 0107 0108 0109
0031 hdiskpower15 0030 hdiskpower14 0030 hdiskpower15 0029 hdiskpower14 0029 hdiskpower15 0028 hdiskpower14 0028 hdiskpower15 0014 hdiskpower14 0014 hdiskpower15 0013 hdiskpower14 0013 hdiskpower15 0012 hdiskpower14 0012 hdiskpower15 0011 hdiskpower14 0011 hdiskpower15 0010 hdiskpower14 0010 hdiskpower15 0009 hdiskpower14 0009 hdiskpower15 0008 hdiskpower14 0008 hdiskpower15 0007 hdiskpower14 0007 hdiskpower15 0006 hdiskpower14 0006 hdiskpower15 0005 hdiskpower14 0005 hdiskpower15 0004 hdiskpower14 0004 hdiskpower15 0003 hdiskpower14 0003 hdiskpower15 0002 hdiskpower14 0002 hdiskpower15 0001 hdiskpower14 0001 hdiskpower15 0053 hdiskpower14 0053 hdiskpower15 0052 hdiskpower14 0052 hdiskpower15 0051 hdiskpower14 0051 hdiskpower15 0050 hdiskpower14 0050 hdiskpower15
All the added PPs roundrobin between hdiskpower14 and hdiskpower15 datalv3:/data3 PV COPIES IN BAND DISTRIBUTION hdiskpower13 022:000:000 0% 000:000:000:008:014 hdiskpower11 022:000:000 0% 000:000:000:008:014 hdiskpower12 022:000:000 0% 000:000:000:008:014 hdiskpower14 022:000:000 0% 000:000:000:009:013
Page 37 of 41
hdiskpower15 021:000:000 0% datalv3:/data3 LP PP1 PV1 PP2 PV2 0001 0046 hdiskpower13 0002 0046 hdiskpower11 0003 0046 hdiskpower12 0004 0047 hdiskpower13 0005 0047 hdiskpower11 0006 0047 hdiskpower12 0007 0048 hdiskpower13 0008 0048 hdiskpower11 0009 0048 hdiskpower12 0010 0049 hdiskpower13 0011 0049 hdiskpower11 0012 0049 hdiskpower12 0013 0050 hdiskpower13 0014 0050 hdiskpower11 0015 0050 hdiskpower12 0016 0051 hdiskpower13 0017 0051 hdiskpower11 0018 0051 hdiskpower12 0019 0052 hdiskpower13 0020 0052 hdiskpower11 0021 0052 hdiskpower12 0022 0053 hdiskpower13 0023 0053 hdiskpower11 0024 0053 hdiskpower12 0025 0054 hdiskpower13 0026 0054 hdiskpower11 0027 0054 hdiskpower12 0028 0055 hdiskpower13 0029 0055 hdiskpower11 0030 0055 hdiskpower12 0031 0056 hdiskpower13 0032 0056 hdiskpower11 0033 0056 hdiskpower12 0034 0057 hdiskpower13 0035 0057 hdiskpower11 0036 0057 hdiskpower12 0037 0058 hdiskpower13 0038 0058 hdiskpower11 0039 0058 hdiskpower12 0040 0059 hdiskpower13 0041 0059 hdiskpower11 0042 0059 hdiskpower12 0043 0060 hdiskpower13 0044 0060 hdiskpower11 0045 0060 hdiskpower12 0046 0061 hdiskpower13 0047 0061 hdiskpower11 0048 0061 hdiskpower12 0049 0062 hdiskpower13 0050 0062 hdiskpower11 0051 0062 hdiskpower12 0052 0063 hdiskpower13 0053 0063 hdiskpower11
Page 38 of 41
0054 0055 0056 0057 0058 0059 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 0100 0101 0102 0103 0104 0105 0106 0107 0108 0109
0063 hdiskpower12 0064 hdiskpower13 0064 hdiskpower11 0064 hdiskpower12 0065 hdiskpower13 0065 hdiskpower11 0065 hdiskpower12 0066 hdiskpower13 0066 hdiskpower11 0066 hdiskpower12 0067 hdiskpower13 0067 hdiskpower11 0067 hdiskpower12 0049 hdiskpower14 0049 hdiskpower15 0048 hdiskpower14 0048 hdiskpower15 0047 hdiskpower14 0047 hdiskpower15 0046 hdiskpower14 0046 hdiskpower15 0045 hdiskpower14 0045 hdiskpower15 0044 hdiskpower14 0044 hdiskpower15 0043 hdiskpower14 0043 hdiskpower15 0042 hdiskpower14 0042 hdiskpower15 0041 hdiskpower14 0041 hdiskpower15 0067 hdiskpower14 0067 hdiskpower15 0066 hdiskpower14 0066 hdiskpower15 0065 hdiskpower14 0065 hdiskpower15 0064 hdiskpower14 0064 hdiskpower15 0063 hdiskpower14 0063 hdiskpower15 0062 hdiskpower14 0062 hdiskpower15 0061 hdiskpower14 0061 hdiskpower15 0060 hdiskpower14 0060 hdiskpower15 0059 hdiskpower14 0059 hdiskpower15 0058 hdiskpower14 0058 hdiskpower15 0057 hdiskpower14 0057 hdiskpower15 0056 hdiskpower14 0056 hdiskpower15 0055 hdiskpower14
Page 39 of 41
Page 40 of 41
References
9.1. Redbooks
AIX Version 4.3 Differences Guide, SG24-2014 AIX Version 5.2 Differences Guide, SG24-5765 RS/6000 Performance Tools in Focus, SG24-4989 Understanding IBM RS/6000 Performance and Sizing, SG24-4810 AIX 64-bit Performance in Focus SG24-5103-00 AIX Logical Volume Manager, from A to Z: Introduction and Concepts SG24-5432-00 AIX 5L Version 5.2 Commands Reference, Volume 3
Page 41 of 41