Задание по настройке балансировки Round Robin в VMware vSphere

Мы ранее уже писали о политиках балансировки и о том, как их настроить через скрипт. Но к сожалению, с течением времени часть хостов меняются, хранилища также меняются на другие и актуальность этих настроек может быть потеряна.

К примеру, я точно помню, что настраивал Round Robin для своего кластера и своей СХД HP EVA пару лет назад.

Однако, текущий вывод скрипта по балансировке показывает, что это далеко не так:

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

А вот так 🙂

Поэтому родилась идея запускать задание, которое будет выполняться раз в неделю и выставлять политику балансировки для дисковых устройств.

Если рассмотреть вывод команды Get-ScsiLun -LunType disk | fl, то там есть два параметра, к которым можно привязаться: это vendor и model дискового устройства. Соответственно, если вы используете несколько СХД с различными рекомендуемыми настройками, то вам потребуется настраивать хитрую логику работы скрипта. На текущий момент я использую в качестве СХД HP 3Par7200 и HP EVA 6000. С обеими СХД рекомендуется использовать политику балансировки Round Robin.

EVA 6000:

Vendor        : HP
Model         : HSV200

3PAR:

Vendor        : 3PARdata
Model         : VV

Нам остается запрограммировать логику скрипта, меняющую политику балансировки для дискового устройства с такими параметрами.

(get-date -format dd.MM.yyyy) | out-file C:\scripts\multipath\log.txt -append -encoding unicode
connect-viserver vCenter
Get-Cluster Cluster| Get-VMHost | Get-ScsiLun -LunType disk | %{if(($_.multipathpolicy -eq "MostRecentlyUsed")-and((($_.vendor -eq "HP")-and($_.model -match "HSV200"))-or(($_.vendor -eq "3PARdata")-and($_.model -match "VV")))){
$_.runtimename | out-file C:\scripts\multipath\log.txt -append -encoding unicode
set-ScsiLun -scsilun $_ -MultipathPolicy RoundRobin
}
}
Данный скрипт помимо смены режима балансировки еще и сделает пометку о том, какое дисковое устройство было изменено и когда.

Теперь этот скрипт готов для запуска в виде задания.

Создаем задание и указываем в строке для запуска следующую команду:

C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -psc "C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" -c ". \"C:\scripts\multipath.ps1\""

Задание обязательно запускайте от имени той учетной записи, что имеет права на смену политики балансировки.

Напоследок повторим скрипт, анализирующий тип балансировки:

9 thoughts on “Задание по настройке балансировки Round Robin в VMware vSphere”

  1. А вроде же можно задавать правило дефолтное для определенного устройства/вендора с политикой балансировки по умолчанию как раз для таких случаев. Например:
    esxcli storage nmp satp set –s VMW_SATP_CX –P VMW_PSP_RR

  2. Можно, но эту же настройку придется повторить на всех серверах. И при добавлении нового сервера ставить себе галочку “ага, не забыть выполнить вон тот скрипт конфигурации”…

  3. А еще для HP EVA в “HP ENTERPRISE VIRTUAL ARRAY FAMILY WITH VMWARE VSPHERE 4.0 , 4.1 AND 5.0 CONFIGURATION BEST PRACTICES” (http://www.vmware.com/files/pdf/techpaper/hp-enterprise-virtual-array-family-vsphere-configuration.pdf, где-тго был такой же для 5.5 вроде бы, сходу не нашел..) есть:
    esxcli nmp roundrobin setconfig -t iops -I 1 -d naa.xxxxxxxxx

    Используете?
    И еще, у нас MSCS кластер с RR на HP EVA при переключении дисков с узла на узел (с хоста на хост) не всегда снимал резервацию SCSI-3 PR, и ресурс не поднимался.

  4. Думал ставить IOPS=1, но командлет воспринимать не захотел.
    Спорная рекомендация.
    Лучшие практики считают, что настройка “маст хэв”. Duncan Epping – что нет или надо еще подумать
    http://www.yellow-bricks.com/2010/03/30/whats-the-point-of-setting-iops1/
    Да и вообще, положа руку на HCL, EVA 6000 не поддерживается с VMware vSphere 5.0 🙂
    Поэтому я решил на эту настройку забить…
    С кластером все неоднозначно.
    До относительно недавнего времени для кластеров была рекомендация делать MRU.
    http://kb.vmware.com/kb/2052238
    In vSphere 5.5, round robin policy is now supported for disks engaged in MSCS clustering.

    However, these restrictions apply:
    •Supported on Windows 2008, Windows 2012 and Windows 2012 R2 server guest operating systems only.

    •Supported on Cluster Across Boxes (CAB) and N+1 configurations (виртуальные машины на разных хостах). Cluster in a box uses Virtual Reservations.
    •Shared disk (Quorum OR Data) must be provisioned to guest in pass-through RDM mode only.
    •Windows 2012 and Windows 2012 R2 cluster validation may fail with “resource busy” error while using PSP_RR. This error can be ignored.

  5. •Windows 2012 and Windows 2012 R2 cluster validation may fail with «resource busy» error while using PSP_RR. This error can be ignored.

    Вот этого пункта не помню.. или не было его там тогда, когда ставили и настраивали MSCS на VMware. Видимо из-за этого же и при переключении ресурсов (а не только при cluster validate) проиходит ошибка. Поэтому так и остался MRU. Пробовали прорваться через кейс, но, как Вы правильно заметили, HCL дал от ворот поворот.

    (Из-за этого же кстати закрыли долгий кейс в полгода. Когда VMware подключала разные уровни поддержки, и добрались до глубинных проблем внутри, на последнем уровне отметили – о, а вы ж не в HCL. И хотя поведение ESXi не совсем правильное, кейс закрыли и предложили открыть Feature Request… пока руки до него не дошли, Но это совсем другая история :))

  6. $esxcli.storage.nmp.psp.roundrobin.deviceconfig.set($null,$null,$device.CanonicalName,1,”iops”,$null)

  7. esxcli storage nmp satp rule add -s “VMW_SATP_ALUA” -P “VMW_PSP_RR” –O “iops=1″ -c “tpgs_on” -V
    “3PARdata” -M “VV” -e “HPE 3PAR Custom Rule”

    Точная команда по включению Round Robin на хосте, меняющая тип балансировки для вновь подключаемых устройств. Уже подключенные – только руками или после перезагрузки.

Leave a Reply

Your email address will not be published. Required fields are marked *