LUN MulitPathPolicy umstellen auf RoundRobin mit Powershell

Bei Multipathing kann mit RoundRobin mehr Performance herausgeholt werden.

Wir verwenden Dell EquaLogic als Datenspeicher und bedienen diesen mit 2x 10GBit pro Server. Standartmässig richtet sich das StorageDevice mit der MultipathPolicy Fixed (VMware) ein. Sprich er wählt einen Adapter aus und nutzt nur diesen. Bisher konnte ich einen Wechsel des Adapters nur beobachten, wenn der Stecker der aktiven NIC gezogen wird. Sprich er nutzt nur die hälfte der eigentlich zur Verfügung stehenden Adapterzahl. Wenn ein Adapter ausfallen sollte, muss der gesamte Verkehr umgeschichtet werden.

Mit dem Einsatz von RoundRobin kann nun dem Host beigebracht werden, dass er doch bitte pro 1000 I/Os den Adapter wechselt und verteilt so die Last auf beide Adapter.

Dazu bindet man zuerst die PowerCLI ein, falls man im ISE arbeitet:

Import-Module VMware.VimAutomation.Core

Anschliessend verbindet man sich mit dem gewünschten Host, auf dem man gerne die Änderung vornehmen möchte:

Connect-VIServer 'HOSTNAME'

Nun um mal ein wenig ein Gespür für die LUNs zu bekommen über die CLI, führt man mal folgende Abfrage aus:

Get-VMHost | Get-ScsiLun

Das Ergebnis gibt eine Auflistung mit CanonicalName, ConsoleDeviceName, LunType, CapacityGB und MultipathPolicy. Auf den letzten Parameter haben wir es mal abgesehen. Da steht, wie schon beschrieben, ohne Änderungen überall Fixed. Unter LunType fällt aber auch auf, dass das eine der andere Laufwerk dabei ist, welches man gerne nicht auf RoundRobin umstellen möchte, wie z.B. das cdrom. Also passen wir unsere Anfrage entsprechend so an, dass nur noch LunType disk in der Anfrage auftaucht:

Get-VMHost | Get-ScsiLun -LunType disk

Damit wir unsere Script später immer wieder nutzen können, um noch nicht umgestellte Policys zu ändern, setzen wir entsprechend einen Filter, damit nur noch die Geräte angezeigt werden, welche nicht auf RoundRobin umgestellt sind.

Get-VMHost | Get-ScsiLun -LunType disk | Where-Object {$_.MultipathPolicy -notlike 'RoundRobin'}

Wer jetzt gerne nach einem speziellen Hersteller Filtern möchte, kann die Anfrage wie folgt ergänzen:

Get-VMHost | Get-ScsiLun -LunType disk | Where-Object {$_.MultipathPolicy -notlike 'RoundRobin'} | Where-Object {$_.Vendor -eq 'EQLOGIC'}

Wer jetzt das eine oder andere Kapazität sieht, merkt, dass hier auch das eine oder andere Device aufgeführt ist, welches nicht aktiv als Storage genutzt wird. Für meine Zwecke sind habe ich einen Filter gesetzt, dass mich nur die Devices interessieren, die über 50 GB Kapazität verfügen:

Get-VMHost | Get-ScsiLun -LunType disk | Where-Object {$_.MultipathPolicy -notlike 'RoundRobin'} | Where-Object {$_.CapacityGB -ge 50}

So und das einzige, was nun gemacht werden muss, man schickt die Liste an den Command Set-ScsiLun und setzt den Parameter -MultiPathPolicy RoundRobin.

Get-VMHost | Get-ScsiLun -LunType disk | Where-Object {$_.MultipathPolicy -notlike 'RoundRobin'} | Where-Object {$_.CapacityGB -ge 50} | Set-Scsilun -MultiPathPolicy RoundRobin

Nun erledigt Powershell für euch die Aufgabe, welche ansonsten von Hand im vCenter oder wia ESX-Shell gemacht werden muss. Hier noch die Zusammenfasssung des Scripts:

Import-Module VMware.VimAutomation.Core
Connect-VIServer 'HOSTNAME'
Get-VMHost | Get-ScsiLun -LunType disk | Where-Object {$_.MultipathPolicy -notlike 'RoundRobin'} | Where-Object {$_.CapacityGB -ge 50} | Set-Scsilun -MultiPathPolicy RoundRobin

Wer den Parameter gerne im vCenter prüfen möchte, der klickt auf den Host, wählt unter Configure unter dem Reiter Storage den Punkt Storage Devices aus. Unter Device Details, Properties sind sämtliche Parameter verfasst, darunter auch Path Selection Policy, welche nun auf Round Robin (VMware) stehen sollte. Wie man schon merkt, ist dies eine Host-Option, sprich das Script darf auf jedem anderen Host mit durchgeführt werden.

Oder man führt den Befehl auf dem Host auf, von dem das Host Profil erstellt wird, kopiert anschliessend die Settings ins Profil und verteilt das Profil auf den restlichen Cluster oder die gewünschten Hosts.

Dell empfiehlt in ihren BestPractice (BestPracticesWithPSseries-VMware(TR1091).pdf) zusätzlich das verringer des Wechselzählers von 1000 auf 3.

Den Weg dazu beschreibe ich später in einem anderen Beitrag.


Drucken