quinta-feira, 26 de maio de 2011

Alterando a Multipath Policy para ‘FIXED’

                 

Um dia desses precisei alterar a política de acesso ao storage (conhecida como Multipath Policy) para todas as LUN’s, em todos os hosts de um cluster. Pesquisei na internet pra ver se encontrava algum script pronto para isso, mas só achei alguns que alteravam a política para ‘RoudRobin’. Infelizmente estes não serviam para mim, já que no meu caso precisava alterar a política para ‘Fixed’. Fui obrigado a desenvolver o script e abaixo compartilho o resultado com todos:


ForEach ($host1 in Get-VMHost) {
#If ($host1.Name -match "esxserver") {
$sl = @()
$sl = $host1 | Get-ScsiLun
Write-Host "Alterando a política de multipath para as LUNS do host:"$host1.name
ForEach ($cn in $sl) {
$slp = @()
$slp = $cn | Get-ScsiLunPath If ($cn.CanonicalName -match "naa.600*") {
Write-Host "LUN = "$cn.RuntimeName
Write-Host "Paths encontrados:"
Write-Host "1 = " $slp[0].Name
Write-Host "2 = " $slp[1].Name
#Write-Host "3 = " $slp[2].Name
#Write-Host "4 = " $slp[3].Name
$path = Read-Host "Informe o path preferido: "
switch ($path){
1 { $cn | Set-ScsiLun -MultipathPolicy “Fixed” -PreferredPath $slp[0]; break}
2 { $cn | Set-ScsiLun -MultipathPolicy “Fixed” -PreferredPath $slp[1]; break}
#3 { $cn | Set-ScsiLun -MultipathPolicy “Fixed” -PreferredPath $slp[2]; break}
#4 { $cn | Set-ScsiLun -MultipathPolicy “Fixed” -PreferredPath $slp[3]; break}
}
}
}
Write-Host "As LUNS do host " $host1.Name " foram alteradas!!"
}
#}


Obs.: Como qualquer outro script criado por terceiros, recomendo observar com cuidado os parâmetros e modificá-los de acordo com o seu ambiente.

Qualquer dúvida quanto ao funcionamento e a lógica do script fique a vontade para tirar suas dúvidas através dos comentários.

Nenhum comentário:

Postar um comentário