Script para criar vSwitch iSCSI no VMware ESXi

Script para criar vSwitch iSCSI no VMware ESXi

# Read this post in english
Este script conecta no vCenter Server e cria um vSwitch Standard (vSS) para a utilização de rede iSCSI em três hosts VMware ESXi. São utilizadas duas interfaces de rede e três VMKernels (iSCSI01, iSCSI02 e Storage Heartbeat). Para executar o script é necessário o VMware PowerCLI, hostname ou IP e credenciais de acesso de administrador do vCenter Server, hostname ou IP dos servidores ESXi, nomenclatura para o vSwitch, VMKernels e IPs da rede iSCSI. É necessário também definir quais serão as interfaces de rede atribuídas a este vSwitch, além da possibilidade de definir o MTU. O Script também ativa uma interface de rede para um VMKernel, enquanto a outra interface fica sem uso.

script-vswitch-iscsi-2

script-vswitch-iscsi-3

Abaixo alguns detalhes do script:

##########################
### Configuração Geral ###
##########################
$nome_vcenter = "rc-vc01.rc.local"
$nome_vswitch = "iSCSI"
$nome_portgroup1 = "iSCSI01"
$nome_portgroup2 = "iSCSI02"
$nome_portgroup3 = "StorageHeartbeat"
$nome_nic1 = "vmnic2"
$nome_nic2 = "vmnic3"
$valor_mtu = "9000"
$mascara_rede = "255.255.255.0"

script-vswitch-iscsi-1

###################################################################
########################## VMware ESXi 1 ##########################
###################################################################
$nome_esxi1 = "rc-esxi01.rc.local"
$ip_portgroup1_esxi1 = "10.0.0.11"
$ip_portgroup2_esxi1 = "10.0.0.21"
$ip_portgroup3_esxi1 = "10.0.0.31"

# Conecta no vCenter Server
Connect-VIServer $nome_vcenter

# Cria o vSwitch nos hosts do vCenter Server
Foreach ($vmhost in (get-vmhost))
{
New-VirtualSwitch -VMHost $vmhost -Name $nome_vswitch -Nic $nome_nic1,$nome_nic2 -MTU $valor_mtu
}

###################################################################
########################## VMware ESXi 1 ##########################
###################################################################
New-VMHostNetworkAdapter -VMHost $nome_esxi1 -PortGroup $nome_portgroup1 -VirtualSwitch $nome_vswitch -IP $ip_portgroup1_esxi1 -SubnetMask $mascara_rede -FaultToleranceLoggingEnabled:$false -ManagementTrafficEnabled:$false -VsanTrafficEnabled:$false -VMotionEnabled:$false -Mtu $valor_mtu
New-VMHostNetworkAdapter -VMHost $nome_esxi1 -PortGroup $nome_portgroup2 -VirtualSwitch $nome_vswitch -IP $ip_portgroup2_esxi1 -SubnetMask $mascara_rede -FaultToleranceLoggingEnabled:$false -ManagementTrafficEnabled:$false -VsanTrafficEnabled:$false -VMotionEnabled:$false -Mtu $valor_mtu
New-VMHostNetworkAdapter -VMHost $nome_esxi1 -PortGroup $nome_portgroup3 -VirtualSwitch $nome_vswitch -IP $ip_portgroup3_esxi1 -SubnetMask $mascara_rede -FaultToleranceLoggingEnabled:$false -ManagementTrafficEnabled:$false -VsanTrafficEnabled:$false -VMotionEnabled:$false -Mtu $valor_mtu
Get-VirtualPortGroup -VMHost $nome_esxi1 -Name $nome_portgroup1 | Get-NicTeamingPolicy | Set-NicTeamingPolicy -MakeNicActive $nome_nic1 -MakeNicUnused $nome_nic2
Get-VirtualPortGroup -VMHost $nome_esxi1 -Name $nome_portgroup2 | Get-NicTeamingPolicy | Set-NicTeamingPolicy -MakeNicActive $nome_nic2 -MakeNicUnused $nome_nic1

É possível editar o script para utilizar com mais ou menos hosts, interfaces de rede e VMKernels. Fique a vontade para edita-lo de acordo com a sua necessidade.

Download do Script:
Create-vSwitch-iSCSI.ps1

  • UPDATE:
    • Compatível com VMware ESXi 5.x e 6.x
    • O portgroup StorageHeartbeat é necessário apenas para as versões inferiores ao 5.0 do VMware ESXi

Ricardo Conzatti é especialista em TI e apaixonado por Virtualização. É graduado em Sistemas de Informação, pós-graduado em Gestão de TI e acredita muito na teoria da pirâmide de aprendizagem de William Glasser. Ricardo também é blogger, palestrante, podcaster e muito envolvido com comunidades técnicas. Ex-líder do VMUG Paraná e ex-host do vBrownBag Brasil, além de ser VMware vExpert & vExpert PRO. Possui várias certificações técnicas VMware e Microsoft. Você com certeza irá encontra-lo no twitter @RicardoConzatti.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *