Share via


Mettez à niveau, sauvegardez et restaurez l’infrastructure SDN

S’applique à : Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI versions 21H2 et 20H2

Dans cette rubrique, vous allez apprendre à mettre à niveau, sauvegarder et restaurer une infrastructure SDN.

Mettez à niveau l’infrastructure SDN

L’infrastructure SDN peut être mise à jour de Windows Server 2016 vers Windows Server 2019. Pour l’ordre de mise à jour, suivez la même séquence d’étapes que celle mentionnée dans la section « Mettre à niveau l’infrastructure SDN ». Avant la mise à jour, il est recommandé d’effectuer une sauvegarde de la base de données du contrôleur de réseau.

Pour les machines de Contrôleur de réseau, utilisez l’applet de commande Get-NetworkControllerNode pour vérifier l’état du nœud une fois la mise à jour terminée. Assurez-vous que le nœud revient à l’état « Up » avant de mettre à niveau les autres nœuds. Une fois que vous avez mis à niveau tous les nœuds du Contrôleur de réseau, le Contrôleur de réseau met à niveau les micro-services en cours d’exécution dans le cluster du Contrôleur de réseau en l’espace d’une heure. Vous pouvez déclencher une mise à jour immédiate à l’aide de l’applet de commande update-networkcontroller.

Installez les mêmes mises à niveau Windows sur tous les composants du système d’exploitation du système SDN (Software Defined Networking), notamment :

  • Hôtes Hyper-V activés par SDN
  • Machines virtuelles du Contrôleur de réseau
  • Machines virtuelles de l’équilibreur de charge logiciel Mux
  • Machines virtuelles de la passerelle RAS

Important

Si vous utilisez System Center Virtual Manager, vous devez le mettre à niveau avec les derniers correctifs cumulatifs.

Quand vous mettez à niveau chaque composant, vous pouvez utiliser n’importe laquelle des méthodes standard pour installer les mises à jour de Windows. Toutefois, pour garantir un temps d’arrêt minimal pour les charges de travail et l’intégrité de la base de données du contrôleur de réseau, procédez comme suit :

  1. Mettez à jour les consoles de gestion.

    Installez les mises à jour sur chacun des ordinateurs sur lesquels vous utilisez le module PowerShell du contrôleur de réseau. Y compris partout où vous avez installé le rôle RSAT-NetworkController installé par lui-même. À l’exception des machines virtuelles du contrôleur de réseau elles-mêmes ; vous les mettez à jour à l’étape suivante.

  2. Sur la première machine virtuelle du contrôleur de réseau, installez toutes les mises à jour et redémarrez.

  3. Avant de passer à la machine virtuelle du contrôleur de réseau suivante, utilisez l’applet de commande get-networkcontrollernode pour vérifier l’état du nœud que vous avez mis à jour et redémarré.

  4. Pendant le cycle de redémarrage, attendez que le nœud du contrôleur de réseau s’éteigne, puis se rallume.

    Après le redémarrage de la machine virtuelle, plusieurs minutes peuvent s’écouler avant qu’elle ne revienne à l’état Up. Pour obtenir un exemple de sortie, consultez

  5. Installez les mises à jour sur chaque machine virtuelle SLB Mux, une à la fois, pour garantir la disponibilité continue de l’infrastructure de l’équilibreur de charge.

  6. Mettez à jour les hôtes Hyper-V et les passerelles RAS, en commençant par les hôtes qui contiennent les passerelles RAS en mode Veille.

    Les machines virtuelles de passerelle RAS ne peuvent pas être migrées en direct sans perdre les connexions de locataire. Pendant le cycle de mise à jour, vous devez veiller à minimiser le nombre de fois où les connexions des locataires basculent vers une nouvelle passerelle RAS. En coordonnant la mise à jour des hôtes et des passerelles RAS, chaque locataire bascule une fois, au maximum.

    a. Évacuez l’hôte de machines virtuelles capables de migrer en direct.

    Les machines virtuelles de la passerelle RAS doivent rester sur l’hôte.

    b. Installez les mises à jour sur chaque machine virtuelle de la passerelle sur cet hôte.

    c. Si la mise à jour nécessite le redémarrage de la machine virtuelle de passerelle, redémarrez la machine virtuelle.

    d. Installez les mises à jour sur l’hôte contenant la machine virtuelle de la passerelle qui vient d’être mise à jour.

    e. Redémarrez l’hôte si nécessaire par les mises à jour.

    f. Répétez cette opération pour chaque hôte supplémentaire contenant une passerelle de secours.

    Si aucune passerelle de secours n’est en attente, suivez ces mêmes étapes pour tous les hôtes restants.

Exemple : utilisez l’applet de commande get-networkcontrollernode

Dans cet exemple, vous voyez la sortie de l’applet de commande get-networkcontrollernode exécutée à partir de l’une des machines virtuelles du contrôleur de réseau.

L’état des nœuds que vous voyez dans l’exemple de sortie est le suivant :

  • NCNode1.contoso.com = Down
  • NCNode2.contoso.com = Up
  • NCNode3.contoso.com = Up

Important

Vous devez attendre plusieurs minutes jusqu’à ce que l’état du nœud passe à Up avant de mettre à jour les nœuds supplémentaires, un par un.

Une fois que vous avez mis à jour tous les nœuds du contrôleur de réseau, le contrôleur de réseau met à jour les micro-services en cours d’exécution dans le cluster du contrôleur de réseau dans l’heure.

Conseil

Vous pouvez déclencher une mise à jour immédiate à l’aide de l’applet de commande update-networkcontroller.

PS C:\> get-networkcontrollernode
Name            : NCNode1.contoso.com
Server          : NCNode1.Contoso.com
FaultDomain     : fd:/NCNode1.Contoso.com
RestInterface   : Ethernet
NodeCertificate :
Status          : Down

Name            : NCNode2.Contoso.com
Server          : NCNode2.contoso.com
FaultDomain     : fd:/ NCNode2.Contoso.com
RestInterface   : Ethernet
NodeCertificate :
Status          : Up

Name            : NCNode3.Contoso.com
Server          : NCNode3.Contoso.com
FaultDomain     : fd:/ NCNode3.Contoso.com
RestInterface   : Ethernet
NodeCertificate :
Status          : Up

Exemple : utilisez l’applet de commande update-networkcontroller

Dans cet exemple, vous voyez la sortie de l’applet de commande update-networkcontroller pour forcer la mise à jour du Contrôleur de réseau.

Important

Exécutez cette applet de commande lorsque vous n’avez plus de mises à jour à installer.

PS C:\> update-networkcontroller
NetworkControllerClusterVersion NetworkControllerVersion
------------------------------- ------------------------
10.1.1                          10.1.15

Sauvegardez l’infrastructure SDN

Les sauvegardes régulières de la base de données du contrôleur de réseau garantissent la continuité de l’activité en cas de sinistre ou de perte de données. La sauvegarde des machines virtuelles du contrôleur de réseau n’est pas suffisante, car elle ne garantit pas que la session continue sur les plusieurs nœuds du contrôleur de réseau.

Conditions requises :

  • Un partage SMB et des informations d’identification avec des autorisations de lecture/écriture sur le système de partage et de fichiers.
  • Vous pouvez éventuellement utiliser un compte de service administré de groupe (GMSA) si le contrôleur de réseau a également été installé à l’aide d’un GMSA.

Procédure :

  1. Utilisez la méthode de sauvegarde de machine virtuelle de votre choix ou utilisez Hyper-V pour exporter une copie de chaque machine virtuelle du contrôleur de réseau.

    La sauvegarde de la machine virtuelle du contrôleur de réseau garantit que les certificats nécessaires au déchiffrement de la base de données sont présents.

  2. Si vous utilisez System Center Virtual Machine Manager (SCVMM), arrêtez SCVMM et sauvegardez-le via SQL Server.

    L’objectif ici est de s’assurer qu’aucune mise à jour n’est apportée à SCVMM pendant cette période, ce qui peut créer une incohérence entre la sauvegarde du contrôleur de réseau et SCVMM.

    Important

    Ne redémarrez pas le service SCVMM tant que la sauvegarde du contrôleur de réseau n’est pas terminée.

  3. Sauvegardez la base de données du contrôleur de réseau avec l’applet de commande new-networkcontrollerbackup.

  4. Vérifiez l’achèvement et le succès de la sauvegarde avec l’applet de commande get-networkcontrollerbackup.

  5. Si vous utilisez SCVMM, démarrez le service SCVMM.

Exemple : sauvegarde de la base de données du contrôleur de réseau

$URI = "https://NC.contoso.com"
$Credential = Get-Credential

# Get or Create Credential object for File share user

$ShareUserResourceId = "BackupUser"

$ShareCredential = Get-NetworkControllerCredential -ConnectionURI $URI -Credential $Credential | Where {$_.ResourceId -eq $ShareUserResourceId }
If ($ShareCredential -eq $null) {
    $CredentialProperties = New-Object Microsoft.Windows.NetworkController.CredentialProperties
    $CredentialProperties.Type = "usernamePassword"
    $CredentialProperties.UserName = "contoso\alyoung"
    $CredentialProperties.Value = "<Password>"

    $ShareCredential = New-NetworkControllerCredential -ConnectionURI $URI -Credential $Credential -Properties $CredentialProperties -ResourceId $ShareUserResourceId -Force
}

# Create backup

$BackupTime = (get-date).ToString("s").Replace(":", "_")

$BackupProperties = New-Object Microsoft.Windows.NetworkController.NetworkControllerBackupProperties
$BackupProperties.BackupPath = "\\fileshare\backups\NetworkController\$BackupTime"
$BackupProperties.Credential = $ShareCredential

$Backup = New-NetworkControllerBackup -ConnectionURI $URI -Credential $Credential -Properties $BackupProperties -ResourceId $BackupTime -Force

Exemple : vérification de l’état d’une opération de sauvegarde du contrôleur de réseau

PS C:\ > Get-NetworkControllerBackup -ConnectionUri $URI -Credential $Credential -ResourceId $Backup.ResourceId
| ConvertTo-JSON -Depth 10
{
    "Tags":  null,
    "ResourceRef":  "/networkControllerBackup/2017-04-25T16_53_13",
    "InstanceId":  "c3ea75ae-2892-4e10-b26c-a2243b755dc8",
    "Etag":  "W/\"0dafea6c-39db-401b-bda5-d2885ded470e\"",
    "ResourceMetadata":  null,
    "ResourceId":  "2017-04-25T16_53_13",
    "Properties":  {
                    "BackupPath":  "\\\\fileshare\backups\NetworkController\\2017-04-25T16_53_13",
                    "ErrorMessage":  "",
                    "FailedResourcesList":  [

                                            ],
                    "SuccessfulResourcesList":  [
                                                    "/networking/v1/credentials/11ebfc10-438c-4a96-a1ee-8a048ce675be",
                                                    "/networking/v1/credentials/41229069-85d4-4352-be85-034d0c5f4658",
                                                    "/networking/v1/credentials/b2a82c93-2583-4a1f-91f8-232b801e11bb",
                                                    "/networking/v1/credentials/BackupUser",
                                                    "/networking/v1/credentials/fd5b1b96-b302-4395-b6cd-ed9703435dd1",
                                                    "/networking/v1/virtualNetworkManager/configuration",
                                                    "/networking/v1/virtualSwitchManager/configuration",
                                                    "/networking/v1/accessControlLists/f8b97a4c-4419-481d-b757-a58483512640",
                                                    "/networking/v1/logicalnetworks/24fa1af9-88d6-4cdc-aba0-66e38c1a7bb8",
                                                    "/networking/v1/logicalnetworks/48610528-f40b-4718-938e-99c2be76f1e0",
                                                    "/networking/v1/logicalnetworks/89035b49-1ee3-438a-8d7a-f93cbae40619",
                                                    "/networking/v1/logicalnetworks/a9c8eaa0-519c-4988-acd6-11723e9efae5",
                                                    "/networking/v1/logicalnetworks/d4ea002c-c926-4c57-a178-461d5768c31f",
                                                    "/networking/v1/macPools/11111111-1111-1111-1111-111111111111",
                                                    "/networking/v1/loadBalancerManager/config",
                                                    "/networking/v1/publicIPAddresses/2c502b2d-b39a-4be1-a85a-55ef6a3a9a1d",
                                                    "/networking/v1/GatewayPools/Default",
                                                    "/networking/v1/servers/4c4c4544-0058-5810-8056-b4c04f395931",
                                                    "/networking/v1/servers/4c4c4544-0058-5810-8057-b4c04f395931",
                                                    "/networking/v1/servers/4c4c4544-0058-5910-8056-b4c04f395931",
                                                    "/networking/v1/networkInterfaces/058430d3-af43-4328-a440-56540f41da50",
                                                    "/networking/v1/networkInterfaces/08756090-6d55-4dec-98d5-80c4c5a47db8",
                                                    "/networking/v1/networkInterfaces/2175d74a-aacd-44e2-80d3-03f39ea3bc5d",
                                                    "/networking/v1/networkInterfaces/2400c2c3-2291-4b0b-929c-9bb8da55851a",
                                                    "/networking/v1/networkInterfaces/4c695570-6faa-4e4d-a552-0b36ed3e0962",
                                                    "/networking/v1/networkInterfaces/7e317638-2914-42a8-a2dd-3a6d966028d6",
                                                    "/networking/v1/networkInterfaces/834e3937-f43b-4d3c-88be-d79b04e63bce",
                                                    "/networking/v1/networkInterfaces/9d668fe6-b1c6-48fc-b8b1-b3f98f47d508",
                                                    "/networking/v1/networkInterfaces/ac4650ac-c3ef-4366-96e7-d9488fb661ba",
                                                    "/networking/v1/networkInterfaces/b9f23e35-d79e-495f-a1c9-fa626b85ae13",
                                                    "/networking/v1/networkInterfaces/fdd929f1-f64f-4463-949a-77b67fe6d048",
                                                    "/networking/v1/virtualServers/15a891ee-7509-4e1d-878d-de0cb4fa35fd",
                                                    "/networking/v1/virtualServers/57416993-b410-44fd-9675-727cd4e98930",
                                                    "/networking/v1/virtualServers/5f8aebdc-ee5b-488f-ac44-dd6b57bd316a",
                                                    "/networking/v1/virtualServers/6c812217-5931-43dc-92a8-1da3238da893",
                                                    "/networking/v1/virtualServers/d78b7fa3-812d-4011-9997-aeb5ded2b431",
                                                    "/networking/v1/virtualServers/d90820a5-635b-4016-9d6f-bf3f1e18971d",
                                                    "/networking/v1/loadBalancerMuxes/5f8aebdc-ee5b-488f-ac44-dd6b57bd316a_suffix",
                                                    "/networking/v1/loadBalancerMuxes/d78b7fa3-812d-4011-9997-aeb5ded2b431_suffix",
                                                    "/networking/v1/loadBalancerMuxes/d90820a5-635b-4016-9d6f-bf3f1e18971d_suffix",
                                                    "/networking/v1/Gateways/15a891ee-7509-4e1d-878d-de0cb4fa35fd_suffix",
                                                    "/networking/v1/Gateways/57416993-b410-44fd-9675-727cd4e98930_suffix",
                                                    "/networking/v1/Gateways/6c812217-5931-43dc-92a8-1da3238da893_suffix",
                                                    "/networking/v1/virtualNetworks/b3dbafb9-2655-433d-b47d-a0e0bbac867a",
                                                    "/networking/v1/virtualNetworks/d705968e-2dc2-48f2-a263-76c7892fb143",
                                                    "/networking/v1/loadBalancers/24fa1af9-88d6-4cdc-aba0-66e38c1a7bb8_10.127.132.2",
                                                    "/networking/v1/loadBalancers/24fa1af9-88d6-4cdc-aba0-66e38c1a7bb8_10.127.132.3",
                                                    "/networking/v1/loadBalancers/24fa1af9-88d6-4cdc-aba0-66e38c1a7bb8_10.127.132.4"
                                                ],
                    "InProgressResourcesList":  [

                                                ],
                    "ProvisioningState":  "Succeeded",
                    "Credential":  {
                                        "Tags":  null,
                                        "ResourceRef":  "/credentials/BackupUser",
                                        "InstanceId":  "00000000-0000-0000-0000-000000000000",
                                        "Etag":  null,
                                        "ResourceMetadata":  null,
                                        "ResourceId":  null,
                                        "Properties":  null
                                    }
                }
}

Restaurez l’infrastructure SDN à partir d’une sauvegarde

Lorsque vous restaurez tous les composants nécessaires à partir d’une sauvegarde, l’environnement SDN redevient opérationnel.

Important

Les étapes varient en fonction du nombre de composants restaurés.

  1. Si nécessaire, redéployez les hôtes Hyper-V et le stockage nécessaire.

  2. Si nécessaire, restaurez les machines virtuelles du contrôleur de réseau, les machines virtuelles de passerelle RAS et les machines virtuelles Mux à partir de la sauvegarde.

  3. Arrêtez l’agent hôte NC et l’agent hôte SLB sur tous les hôtes Hyper-V :

    stop-service slbhostagent
    
    stop-service nchostagent
    
  4. Arrêtez les machines virtuelles de la passerelle RAS.

  5. Arrêtez les machines virtuelles SLB Mux.

  6. Restaurez le contrôleur de réseau avec l’applet de commande new-networkcontrollerrestore.

  7. Vérifiez la restauration ProvisioningState pour savoir quand la restauration s’est terminée avec succès.

  8. Si vous utilisez SCVMM, restaurez la base de données SCVMM à l’aide de la sauvegarde créée en même temps que la sauvegarde du contrôleur de réseau.

  9. Si vous souhaitez restaurer des machines virtuelles de charge de travail à partir d’une sauvegarde, faites-le maintenant.

  10. Vérifiez l’intégrité de votre système avec l’applet de commande debug-networkcontrollerconfigurationstate.

$cred = Get-Credential
Debug-NetworkControllerConfigurationState -NetworkController "https://NC.contoso.com" -Credential $cred

Fetching ResourceType:     accessControlLists
Fetching ResourceType:     servers
Fetching ResourceType:     virtualNetworks
Fetching ResourceType:     networkInterfaces
Fetching ResourceType:     virtualGateways
Fetching ResourceType:     loadbalancerMuxes
Fetching ResourceType:     Gateways

Exemple : restauration d’une base de données du contrôleur de réseau

$URI = "https://NC.contoso.com"
$Credential = Get-Credential

$ShareUserResourceId = "BackupUser"
$ShareCredential = Get-NetworkControllerCredential -ConnectionURI $URI -Credential $Credential | Where {$_.ResourceId -eq $ShareUserResourceId }

$RestoreProperties = New-Object Microsoft.Windows.NetworkController.NetworkControllerRestoreProperties
$RestoreProperties.RestorePath = "\\fileshare\backups\NetworkController\2017-04-25T16_53_13"
$RestoreProperties.Credential = $ShareCredential

$RestoreTime = (Get-Date).ToString("s").Replace(":", "_")
New-NetworkControllerRestore -ConnectionURI $URI -Credential $Credential -Properties $RestoreProperties -ResourceId $RestoreTime -Force

Exemple : Vérification de l’état d’une restauration d’une base de données du contrôleur de réseau

PS C:\ > get-networkcontrollerrestore -connectionuri $uri -credential $cred -ResourceId $restoreTime | convertto-json -depth 10
{
    "Tags":  null,
    "ResourceRef":  "/networkControllerRestore/2017-04-26T15_04_44",
    "InstanceId":  "22edecc8-a613-48ce-a74f-0418789f04f6",
    "Etag":  "W/\"f14f6b84-80a7-4b73-93b5-59a9c4b5d98e\"",
    "ResourceMetadata":  null,
    "ResourceId":  "2017-04-26T15_04_44",
    "Properties":  {
                    "RestorePath":  "\\\\sa18fs\\sa18n22\\NetworkController\\2017-04-25T16_53_13",
                    "ErrorMessage":  null,
                    "FailedResourcesList":  null,
                    "SuccessfulResourcesList":  null,
                    "ProvisioningState":  "Succeeded",
                    "Credential":  null
                }
}

Pour plus d’informations sur les messages d’état de configuration qui peuvent apparaître, consultez Résoudre les problèmes de la pile de mise en réseau SDN (Software Defined Networking) dans Windows Server 2016.