Souvenez-vous, le SATADOM c’est ce module mémoire attaché à la carte mère de nos serveurs, ici Dell, qui contient les sources Nutanix avec la CVM et l’hyperviseur.

Depuis une récente mise à jour, j’avais une alerte sur l’obsolescence des firmwares de SATADOM sur mes plus anciens clusters :

Le support Dell a réalisé la première opération d’upgrade, rien de compliqué mais plusieurs heures de maintenances en webex et quelques lignes de commandes à exécuter, on était très loin du “One-clic Upgrade”.

Mais les choses ont changées puisque la dernière version de Life Cycle Management aka “LCM” prend justement en charge l’upgrade des SATA DOM !

Idéalement les CVM auront accès à internet,  au minimum *.nutanix.com, il existe même une procédure pour LCM sans connexion intituler “Using the Life Cycle Manager Without Web Access“.

1er étape, lancer un inventaire afin qu’il détermine les composants et nouvelles versions disponibles: cliquez sur “Perfom Inventory”

2eme étape upgrade des LCM :

Sélectionnez les LCM à upgrader, puis cliquez “Save Selection”

Cliquez sur “Update Selected”

 

Cliquez sur “Apply x Updates”

Update en cours :

Opération terminée avec succès, LCM en version 1.1a492718:

3eme étape, on relance un scan afin qu’il détecte les nouveaux composants: cliquez sur “Perfom Inventory” depuis LCM.

Cliquez sur “Define”

Selection des noeuds à upgrader :

Mettre à niveau la sélection, cliquez sur “Update Selected”

étrangement sur cette écran on ne peut pas appliquer les updates, retourner sur “all updates” :

L’application des updates est bien disponible ici, cliquez sur “Apply x Updates” pour lancer l’assistant de connexion au vCenter car sur ce cluster les hôtes sont des ESXi :

Entrer les informations de connexion au vCenter qui héberge les machines concernées par l’update:

 

Vous devriez constater de mutiples vMotion afin de libérer les noeuds, puis l’operation d’upgrade debute, il faut etre patient c’est assez long.

L’opération s’est terminé pour moi en un peu moins de 2h pour 3 noeuds.

Je suis content de constater qu’il n’y a pas que le hardware nutanix concerné par LCM et que les OEM ont de plus en plus de composants supporter par ce superbe outil qui fait vraiment gagner en OPEX.

Voici le script que j’utilise en ce moment pour les mises en maintenance des hôtes AHV des clusters Nutanix avec un menu à choix multiples :


Disconnect-NTNXCluster *

#Choisir le cluster 
$ClusterNut = Read-Host "Entrer the Ip or DNS name of your Nutanix Cluster to manage"

Connect-NTNXCluster $ClusterNut -AcceptInvalidSSLCerts -ForcedConnection
$Clusterlist = $null


for () {

# récupère la liste des noms d'hôtes du cluster
$Clusterlist = Get-NTNXHost

    #défini integer à 0
    $i=0

    $ClusterName = (Get-NTNXCluster).name

    Write-Host "Vous avez selectionné le cluster $($(Get-NTNXCluster).name)
    "

    # Créer un menu : Pour chaque hôte du cluster ajouter 1 à i et afficher le nom d'hôte associé
    write-host "0 : Sortir du script"
    foreach ($ht in $Clusterlist) {
        $i++
        Write-Host "$i : $($ht.Name) : état  $($ht.hypervisorState) : Hyperviseur $($ht.hypervisorAddress) : IPMI $($ht.ipmiAddress) " 
        }

    do {
    $Menu = Read-Host "Choisir le numéro d'hôte"
    #juste affichage : tant que le chiffre indiqué n'est pas un nombre d'un hôte possible on boucle ici
    if (0..$Clusterlist.Count -notcontains $Menu) {Write-Host "Merci d'indiquer le numéro correspond au noeud à mettre en maintenance" -ForegroundColor Red}
    }

    #tant que le chiffre indiqué n'est pas un nombre d'un hôte possible on boucle ici
    while (0..$Clusterlist.Count -notcontains $Menu)

    #Conserve le nom de l'hôte dans la variable ChoiceMenu le -1 sert car le count debute à 0.
    if ($menu -eq 0) {
                        #Déco
                        Disconnect-NTNXCluster *
                        exit
                      } 
    $ChoiceMenu = ($Clusterlist).name[$menu-1]
    write-host "Vous avez choisi le $ChoiceMenu"

    Write-Host -ForegroundColor Green "Choisir l'option 1 pour Mettre en Maintenance et l'option 2 pour remettre en ligne" 
    $Menu1 = Read-Host 

    if ($Menu1 -eq 1) {
        $uuid = (Get-NTNXHost | where {$_.name -like $ChoiceMenu}).uuid
        
        write-host "La tache de mise en maintenance de l'hôte $ChoiceMenu est en cours"
        Start-NTNXMaintenanceMode -Hostid $uuid -EvacuationOption LIVE_MIGRATE
        sleep 3 
        
    }

    if ($Menu1 -eq 2) {
    write-host "La tache remise en prod de l'hôte $ChoiceMenu est en cours"
    Stop-NTNXMaintenanceMode -Hostid $uuid
    sleep 3
    }
    
}

Vous avez configuré votre sauvegarde locale, mais votre collège Citrix préféré supprime et provisionne sans cesse de nouvelles VDI persistantes :

Je passe la partie authentification, mais voici quelques lignes pour ajouter automatiquement toutes nouvelles machines à la sauvegarde existante (avec le nom LocalBackup) et supprimer de la sauvegarde les machines qui ne seraient plus disponibles.

 

Détermine la liste des VMs qui ne sont pas des CVM et qui ne sont pas
# dans un ProtectionDomain, c'est l'endroit idéal pour exclure des machines
# qui ne seraient pas à ajouter comme les CVM ou d'autres VMs si votre
# convention de nommage permet de les identifier facilement.
$UnProtectedVMs =  (get-ntnxvm | where {$_.vmName -notlike "*CVM*"} | where {$_.ProtectionDomainName -like $null}).vmname

#Ajout les machines non protégées à la sauvegarde
foreach ($VM in $UnProtectedVMs){
    echo "VM à protéger : $VM"
    Add-NTNXProtectionDomainVM -name LocalBackup -names $VM -Consistencygroupname $VM
}

#Determine la liste des VMs protégées dans le dernier snapshot
$ProtectedVMs = (Get-NTNXProtectionDomainSnapshot | Sort-Object Snapshotid | select -last 1).ConsistencyGroups

#determine la liste des VMs hébergées sur le cluster Nutanix
$VMList = (get-ntnxvm | where {$_.vmName -notlike "*CVM*"}).vmname

#Compare la liste complète des VMs à la liste des VMS protégées et conserve les protégées qui n'existent plus
$VMstoRemove = (Compare-Object -DifferenceObject $VMList -ReferenceObject $Protectedvms | where {$_.Sideindicator -like "<="}).InputObject

#Supprime les $VMtoRemove du ProtectionDomain
foreach ($VMtoRemove in $VMstoRemove){
    Remove-NTNXProtectionDomainVM -name LocalBackup -input $VMtoRemove
    echo "VM à supprimer :" $VMtoRemove
}

Petite information Nutanix en passant pour l’emplacement des logs Foundation avec l’applet java :

http://localhost:9442/foundation/service_log

A la suite d’une commande un peu rapide, je me suis retrouvé à déployer un cluster Nutanix Dell à base d’AHV, seulement le client (pour le moment) préfère avoir un ESXi.

Après plusieurs tentatives avec l’option one-click convert qui s’est achevée par un échec systématique, j’ai décidé de partir sur foundation pour pousser l’hyperviseur de mon choix. (Même si ce n’est pas supporté par Dell)

Avec Foundation 3.5 rien de plus simple, oubliez les vieux tuto disponible à droite à gauche sur le net, ici plus de VM à monter un simple applet JAVA permet de re-imager vos noeuds.

Le guide “Field-Installation-Guide-v3-5” de Nutanix est vraiment bien fait, mais je tiens à mettre en avant un petit point qui m’a fait perdre pas mal de temps :

“It is not necessary to download an AHV ISO because both Foundation and the AOS bundle include an AHV installation bundle. However, you have the option to download an AHV upgrade installation bundle if you want to install a non-default version of AHV.”

Upload ISO ESX impossible dans foundation tant que vous n’avez pas uploadé l’iso AHV, c’est très logique et noté noir sur blanc dans la doc mais c’est moi qui buggais dessus plutôt que foundation…

 

 

L’option est ensuite deverrouillée :