Очередной этап тонкой настройки политик выбора пути в vSphere 5.1.
Виталий Волнянский около полутора лет назал писал обзор “Настройка значения IOOperationLimit для RoundRobin на нескольких виртуальных хранилищ одновременно“, но есть небольшие изменения в vSphere 5.1, да и скрипты на PowerShell попривлекательней.
Одним из самых эффективных методов увеличения скорости доступ к системам хранения, поддерживающих для Native Multipathing (NMP) Path Selection Plug-ins (PSP) режим работы Round Robin, и снижения задержек является уменьшение значения по умолчанию параметра I/O operation limit с 1000 операций ввода-вывода до 1-10. Данный параметр регулирует “такт” перехода к следующему активному пути(для ALUA по умолчанию с учетом оптимального пути, регулируется параметром useano), то есть через сколько операций переключиться на следующий путь.
Что даёт и для каких систем рекомендуется/протестировано:
Как включить?
Это самое простое, но грабля есть.
Подаем команду на нужных дисках и готово:
|
esxcli storage nmp psp roundrobin deviceconfig set -t iops -I 1 -d naa.xxxxxxxxx |
Грабля в vSphere 5.1.
В vSphere 5.1 у команды добавился параметр cfgfile, что повлияло на реализацию функции в PowerShell, сейчас синтаксис такой(2 часа выяснял причину сбоя в работе старых скриптов):
boolean set(long bytes, boolean cfgfile, string device, long iops, string type, boolean useano),
как получить описание функций:
|
$esxcli=Get-EsxCli $esxcli.storage.nmp.psp.roundrobin.deviceconfig|Get-Member|fl |
пример на PowerShell:
|
$esxcli.storage.nmp.psp.roundrobin.deviceconfig.set($null,$null,'naa.xxx',1,'iops',$false) |
P.S. Если для вашей системы нет рекомендаций от производителя по уменьшению значения параметра, то вся ответственность за последствия изменений лежит на вас.
P.P.S. Продолжаем изучать PowerShell
Скрипт опроса LUN, подключенных с IBM SVC. Для установки параметра код поправите сами. 😉
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
#### Variables $VC = "vcenter" $psp = "VMW_PSP_RR" $satp = "VMW_SATP_SVC" #### Connect to Your vCenter Connect-viserver -Server $VC #### Get IBM SVC Round Robin's LUNs status $vchosts = Get-VMHost foreach ($vmhost in $vchosts) { $myesxcli=get-esxcli -VMHost $vmhost write-host $vmhost.name Get-VMHost $vmhost | Get-ScsiLun -CanonicalName "naa.6005*" | Where {$_.MultipathPolicy -eq "RoundRobin"} | %{$myesxcli.storage.nmp.psp.roundrobin.deviceconfig.get($_.CanonicalName)} } #### Disconnect from Your vCenter Disconnect-VIServer $VC -Confirm:$false |