Балансировка хранилищ Round Robin в VMware vSphere и iops=1

В одном ЦОДе нашей компании используется VMware vSphere и HP EVA 6400. Так получилось, что техподдержка HPE ткнула нас носом в «Best Practice Guide» и посоветовала применить рекомендации по RoundRobin-балансировке и переключению путей на каждый iops.

Я был настроен скептически, так как я прекрасно помню статью Duncan Epping о том, что это (iops=1) — бесполезный совет. Однако я перечитал комментарии и решил, что я был неправ. Если вкратце — то у каждого порта HP EVA (равно как и других массивов) своя очередь в 1000 команд. И, оставив параметр по умолчанию (или вообще используя MRU), легко упереться в эту очередь.

Я уже писал статью по балансировке через PowerShell. Минус этой статьи — необходимо периодически запускать скрипт, который будет менять балансировку для хранилищ. Поэтому было решено использовать скрипт совместно с «родными» методами — а именно, SATP-правила на хостах. Для централизации и ускорения решения я воспользовался PowerCLI 6.5R1.

Важно: балансировка для хранилища настраивается на каждом сервере ESXi.

Настройка балансировки и iops=1

После запуска PowerCLI подключитесь к vCenter:

Connect-VIServer vcenter_name

Посмотрите, какая балансировка сейчас используется в кластере Production:

Get-Cluster Production | Get-VMHost | Get-ScsiLun -LunType disk | group multipathpolicy

Count Name                      Group

----- ----                      -----

Count Name                      Group
----- ----                      -----
  229 MostRecentlyUsed          {naa.6001438005de9f140001e00000500000, naa.6...
   37 Fixed                     {naa.600508b1001ce3f030fcc148205bcf13, naa.6...
    4 RoundRobin                {naa.60002ac000000000000001bc0000cdfb, naa.6...

Если эти 229 устройств с Active-Active СХД, то балансировку возможно, стоит исправить (читайте рекомендации и лучшие практики от вендора).

А если с Евы, то еще и сделать балансировку каждого IOPS.

Так как у меня EVA6400, то я указываю скрипт, изменяющий настройки балансировки для ее хранилищ (и RDM-дисков) на Round Robin и iops=1, фильтруя по модели дискового устройства:

Get-Cluster Production | Get-VMHost | Get-ScsiLun -LunType disk | where {$_.model –eq “HSV400”} | Set-ScsiLun -CommandsToSwitchPath 1 -MultipathPolicy RoundRobin

Чтобы узнать, какая модель у вас, выведите всю информацию по дисковому устройству:

Get-Cluster Production | Get-VMHost | Get-ScsiLun -LunType disk | fl | more

Минусом скрипта является то, что он обрабатывает только существующие VMFS-хранилища. Каждое новое хранилище получит настройки по умолчанию (балансировку MRU и переключение каждые 1000 iops).

Создание satp-правил

Создать satp-правило нужно для того, чтобы не повторять периодически скрипт по настройке балансировки.

Подключим функционал ESXCLI через PowerCLI:

$esxcli = Get-EsxCli -VMhost esx_name -V2

Подготовим шаблон для правила и наполним его данными:

$satpargs=$esxcli.storage.nmp.satp.rule.add.CreateArgs()

$satpArgs.description="EVA6400 custom rule"

$satpArgs.model="HSV400"

$satpArgs.vendor="HP"

$satpArgs.satp="VMW_SATP_ALUA"

$satpArgs.psp="VMW_PSP_RR"

$satpArgs.pspoption="iops=1"

Данное правило для любого нового VMFS-хранилища, созданного вендором «HP» и имеющего модель «HSV400» (EVA6400), выставит настройки, которые мы указали в предыдущем пункте.

Создадим это правило:

Get-Cluster Production | Get-VMHost | %{$esxcli = Get-EsxCli -VMhost $_.name -V2; $esxcli.storage.nmp.satp.rule.add.invoke($satpArgs)}

Добавление новых серверов ESXi

После того как вы установите VMware vSphere на новый сервер (и перед презентацией дисковых устройств с СХД), выполните следующий скрипт:

Connect-VIServer vcenter_name$esxcli = Get-EsxCli -VMhost new_esx_name -V2
$satpargs=$esxcli.storage.nmp.satp.rule.add.CreateArgs()
$satpArgs.description="EVA6400 custom rule"
$satpArgs.model="HSV400"
$satpArgs.vendor="HP"
$satpArgs.satp="VMW_SATP_ALUA"
$satpArgs.psp="VMW_PSP_RR"
$satpArgs.pspoption="iops=1"
$esxcli.storage.nmp.satp.rule.add.invoke($satpArgs)

Резюме

Так легко можно решить часть проблем по оптимизации вашей инфраструктуры.

Когда дойдут руки, укажу вендора и модель для остальных своих массивов: HPE  3PAR 7200, HPE MSA P2000 G3, HPE MSA 2050, HPE EVA6000.

Вдохновлялся парой источников: раз и два.

Запись опубликована в рубрике 5.5, VMware, vSphere с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *