pSeries VIO Client Tuning
Client Virtual SCSI Adapter Settings
Option | Default | Meaning | Options | Comments |
vscsi_err_recov | delayed_fail | VSCSI Recovery Mode |
delayed_fail fast_fail |
Fast I/O failure may be desirable in situations where
multipathing software is being used. Setting 'fc_err_recov' to 'fast_fail' may decrease the
I/O fail times due to link loss between the storage device and switch and allow faster failover
to alternate paths. In single-path configurations, especially configurations with a single-path to a paging device, the default 'delayed_fail' setting is the recommended setting. |
vscsi_path_to | 0 (zero) | Virtual SCSI Path Timeout | 0 to 3600 | If no I/O requests issued to the VSCSI server adapter have been serviced within the number of seconds specified by the VSCSI path timeout value, one more attempt is made to contact the VSCSI server adapter, waiting up to 60 seconds for a response. If, after 60 seconds, there is still no response from the server adapter, all outstanding I/O requests to that adapter are failed and an error is written to the client logical partition error log. If MPIO is being used, the MPIO Path Control Module will retry the I/O requests down another path. Otherwise, the failed requests will be returned to the application. See this IBM document for full details. |
Client Virtual SCSI Disks - MPIO
Option | Default | Meaning | Options | Comments |
algorithm | fail_over | Failover Algorithm | fail_over | With MPIO, only fail_over is supported. |
hcheck_cmd | test_unit_rdy | Health Check Command | test_unit_rdy inquiry |
If you have reservation locks on your disks, use the inquiry option, as the test_unit_rdy option will fail and log an error on the client. |
hcheck_interval | 0 (zero) | Health Check Interval | 0 to 3600 | The interval in seconds between health check polls to the disk. If an mpio disks failed path is polled and found to be responding, the failed path will automatically be re-enabled. A value of 0 (zero) disable the auto polling feature. Recommended value is 20. |
hcheck_mode | nonactive | Healthcheck Mode | enabled failed nonactive |
Determines which types of device paths are health checked. The PCM checks the continuity of
a path and the ability of the target device to process commands. If this check is successful,
the path will be enabled. If the check fails, the path is left in its current state.
Select "enabled" to check only paths that are in the enabled state and have no active I/O. Select "failed" to check only paths that are in the failed state. Select "nonactive" to check only paths with no active I/O. |
queue_depth | 3 (three) | IO Queue Depth | 1 to 256 | The number of concurrent outstanding I⁄O requests
that can be queued on the disk. Additional requests will be blocked and the 'sqfull' value
shown with 'iostat -DR' will increase. Make sure you set the queue_depth on the corresponding
VIO server disk to the same value!! My recommended values. IBM XIV = 32 IBM SVC = Various - See Here IBM SDD and SDDPCM = 20 EMC Symmetrix and Clariion = 16 Hitachi USPV and VSP = 32 Hitachi HDS 9910 and 9960 = 8 |
reserve_policy | no_reserve | Disk Reserve Policy | no_reserve single_path |
Provides support for applications that are enabled to use SCSI-2 reserve functions. Typically clustering software will require the 'single_path' reserve option to be set. See this IBM document for details on how to set this correctly. |
max_transfer | 0x40000 | Maximum IO Transfer Size |
0x20000 0x40000 0x80000 0x100000 0x200000 0x400000 0x800000 0x1000000 |
The maximum amount of data that can be
transfered to the disk in a single I/O operation. By increasing this value for all disks
in a volume group, then the 'LTG size' value for a volume group can increase. You may want
increase this value so the the AIX I/O size is equal to (or greater than) your array
stripe size. Below is the size each hex value relates to. 0x20000 = 128KB 0x40000 = 256KB 0x80000 = 512KB 0x100000 = 1MB The following may not be support by AIX/LVM 0x200000 = 2MB 0x400000 = 4MB 0x800000 = 8MB 0x1000000 = 16MB |
Examples - Changing Client Virtual SCSI Disks Settings
chdev -l hdisk0 -a queue_depth=32 -a hcheck_interval=20 | Will only work if the disk is not currently in use |
chdev -l hdisk0 -a queue_depth=32 -a hcheck_interval=20 -P | Will work if the disk is in use but a reboot is required. |
varyoffvg testvg rmdev -l hdisk10 chdev -l hdisk10 -a queue_depth=32 -a hcheck_interval=20 mkdev -l hdisk10 varyonvg testvg |
Overview of the steps required to make the change to a disk that has a volume group active on it. |
Setting the MPIO active path
By default, when you run cfgmgr on an AIX LPAR with MPIO, all disks will be set with a path
priority of 1. This means that all your disk I/O (by default) will go to the first VIO server
configured to service your disks.
For best performance and to balance across multiple VIO servers, use the chpath command. chpath -l hdisk0 -p vscsi0 -a priority=1 chpath -l hdisk0 -p vscsi1 -a priority=2 chpath -l hdisk1 -p vscsi0 -a priority=2 chpath -l hdisk1 -p vscsi1 -a priority=1 |