El último punto para configurar en un cluster y que también podemos hacer con PowerCLI es la gestión de las reglas DRS.
Para configurar las reglas tenemos por un lado la creación de grupos de máquinas y grupos de host y por otro lado las propias reglas que configuran el comportamiento de las máquinas virtuales o los grupos de máquinas y host.
Entre los comandos que nos proporciona PowerCLI podemos gestionar las reglas DRS (New-DrsRule, Set-DrsRule, Remove-DrsRule, Get-DrsRule) pero sólo nos permiten gestionar las reglas DRS de tipo Máquina-Máquina, no nos permiten gestionar las reglas de Máquinas-Host
Grupos de máquinas
Continuamos con el objeto ClusterConfigSpecEx en este caso para crear un grupo de máquinas.
1 2 3 4 5 6 |
$ClusterspecEx = New-Object VMware.Vim.ClusterConfigSpecEx $ClusterspecEx.groupspec = New-Object VMware.Vim.ClusterGroupSpec[](1) $ClusterspecEx.groupspec[0] = New-Object VMware.Vim.ClusterGroupSpec $ClusterspecEx.groupspec[0].operation = "add" $ClusterspecEx.groupspec[0].info = New-Object VMware.Vim.ClusterVmGroup $ClusterspecEx.groupspec[0].info.Name = "GrupoVM01" |
Podemos añadir una máquina o varías
1 2 |
$ClusterspecEx.groupspec[0].info.VM = (Get-VM MAQUINA01).ExtensionData.MoRef $ClusterspecEx.groupspec[0].info.VM += (Get-VM MAQUINA02).ExtensionData.MoRef |
Grupos de hosts
De forma similar creamos un grupo de hosts
1 2 3 4 5 6 |
$ClusterspecEx = New-Object VMware.Vim.ClusterConfigSpecEx $ClusterspecEx.groupspec = New-Object VMware.Vim.ClusterGroupSpec[](1) $ClusterspecEx.groupspec[0] = New-Object VMware.Vim.ClusterGroupSpec $ClusterspecEx.groupspec[0].operation = "add" $ClusterspecEx.groupspec[0].info = New-Object VMware.Vim.ClusterHostGroup $ClusterspecEx.groupspec[0].info.Name = "GrupoHost01" |
Añadimos un host o varios
1 |
$ClusterspecEx.groupspec[0].info.host = (Get-VMHost centsmvd01*).ExtensionData.MoRef |
Cambiando la propiedad operation podemos editar un grupo en lugar de crearlo
1 |
$ClusterspecEx.groupspec[0].operation = "edit" |
Crear las reglas
Con el comando New-DrsRule creamos reglas para
- Separar máquinas
1 |
New-DrsRule -Cluster VMCLUSTERD01 -Name "Regla01" -KeepTogether $false -VM MAQUINA01,MAQUINA02 |
- Mantener máquinas juntas
1 |
New-DrsRule -Cluster VMCLUSTERD01 -"Regla02" $nombreregla -KeepTogether $true -VM MAQUINA01,MAQUINA02 |
1 2 3 4 |
$ClusterspecEx = New-Object VMware.Vim.ClusterConfigSpecEx $ClusterspecEx.rulesSpec = New-Object VMware.Vim.ClusterRuleSpec[](1) $ClusterspecEx.rulesSpec[0] = New-Object VMware.Vim.ClusterRuleSpec $ClusterspecEx.rulesSpec[0].operation = "add" |
1 2 3 4 5 6 7 8 |
$ClusterspecEx.rulesSpec[0].info = New-Object VMware.Vim.ClusterVmHostRuleInfo $ClusterspecEx.rulesSpec[0].info.affineHostGroupName = "GrupoHost01" $ClusterspecEx.rulesSpec[0].info.antiAffineHostGroupName = "GrupoHost01" $ClusterspecEx.rulesSpec[0].info.vmGroupName = "GrupoVM01" $ClusterspecEx.rulesSpec[0].info.mandatory = $false (Should) $ClusterspecEx.rulesSpec[0].info.mandatory = $true $ClusterspecEx.rulesSpec[0].info.enabled = $true $ClusterspecEx.rulesSpec[0].info.name = "Regla03" |
¿Te ha gustado la entrada SÍGUENOS EN TWITTER O INVITANOS A UN CAFE?