3 04 2013
Hyper-V 2012: Ajouter des LUNs iSCSI sur plusieurs hosts avec la cmdlet Invoke-Command
Si vous passez votre temps à vous connecter sur plusieurs serveurs pour lancer les mêmes commandes powershell, cette cmdlet vas vous être très utile !
Imaginez que vous êtes en train de créer un cluster Hyper-V de plusieurs 10ènes de hosts avec un stockage iSCSI à configurer sur tous les hosts.
Sur Windows Server 2008r2, il fallait se connecter sur chaque host, et configurer les luns via l’utilitaire iscsicpl.exe.
Sous Windows Server 2012, vous pouvez utiliser les commandes suivantes pour:
Ajouter le role/feature MPIO:
1 |
Install-WindowsFeature Multipath-IO -IncludeManagementTools |
Configurer le service MS iSCSI:
1 2 |
Set-Service -Name msiscsi -StartupType Automatic Start-Service msiscsi |
Ajouter un portail SAN:
1 |
New-IscsiTargetPortal -TargetPortalAddress 10.0.0.1 |
Connecter les LUNs, les mettres persistantes, et activer le multipath:
1 |
Get-IscsiTarget | Connect-IscsiTarget -IsPersistent -IsMultipathEnabled |
Et pourquoi pas sur tous les hosts en même temps ?
Pour cela, nous allons utiliser la commande magique Invoke-command.
Nous allons créer un bloque de commandes à lancer sur tous les serveurs (sorte de script):
1 2 3 4 5 6 |
$commands = { Install-WindowsFeature Multipath-IO -IncludeManagementTools Set-Service -Name msiscsi -StartupType Automatic Start-Service msiscsi New-IscsiTargetPortal -TargetPortalAddress 10.0.0.1 Get-IscsiTarget | Connect-IscsiTarget -IsPersistent -IsMultipathEnabled } |
Ajoutons nos machines:
1 |
$computers = @("HyperV1","HyperV2","HyperV3","HyperV4","HyperV5") |
Pensez à utiliser un compte qui a les droits administrator sur ces machines:
1 |
$credentials = Get-Credential -UserName "domainadmin-lacaille" -Message "Please enter your credentials:" |
Enfin nous pouvons lancer la configuration sur tous les hosts:
1 |
Invoke-Command -ComputerName $computers -Credential $credentials -ScriptBlock $commands |
Voilà, toutes les luns iSCSI sont ajoutées à vos serveurs Hyper-V !
Article initialement publié sur blog.sogeti.ch
Windows Server 2012: Cluster Manager plante SQL Server: Ouvrir les ports du firewall sous Windows Server 2012 avec Powershell