다음을 통해 공유


SDN 인프라 업그레이드, 백업 및 복원

적용 대상: Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI, 버전 21H2 및 20H2

이 항목에서는 SDN 인프라를 업데이트, 백업 및 복원하는 방법에 대해 알아봅니다.

SDN 인프라 업그레이드

SDN 인프라는 Windows Server 2016에서 Windows Server 2019로 업그레이드할 수 있습니다. 업그레이드 순서 지정의 경우 "SDN 인프라 업데이트" 섹션에 멘션 것과 동일한 단계 시퀀스를 따릅니다. 업그레이드하기 전에 네트워크 컨트롤러 데이터베이스의 백업을 수행하는 것이 좋습니다.

네트워크 컨트롤러 컴퓨터의 경우 Get-NetworkControllerNode cmdlet을 사용하여 업그레이드가 완료된 후 노드의 상태 검사. 다른 노드를 업그레이드하기 전에 노드가 "위로" 상태 있는지 확인합니다. 모든 네트워크 컨트롤러 노드를 업그레이드하면 네트워크 컨트롤러는 1시간 내에 네트워크 컨트롤러 클러스터 내에서 실행되는 마이크로 서비스를 업데이트합니다. update-networkcontroller cmdlet을 사용하여 즉시 업데이트를 트리거할 수 있습니다.

다음을 포함하는 SDN(소프트웨어 정의 네트워킹) 시스템의 모든 운영 체제 구성 요소에 동일한 Windows 업데이트를 설치합니다.

  • SDN 사용 Hyper-V 호스트
  • 네트워크 컨트롤러 VM
  • 소프트웨어 Load Balancer Mux VM
  • RAS 게이트웨이 VM

Important

System Center Virtual Manager를 사용하는 경우 최신 업데이트 롤업으로 업데이트해야 합니다.

각 구성 요소를 업데이트할 때 Windows 업데이트를 설치하기 위한 표준 방법을 사용할 수 있습니다. 그러나 워크로드 및 네트워크 컨트롤러 데이터베이스의 무결성에 대한 가동 중지 시간을 최소화하려면 다음 단계를 수행합니다.

  1. 관리 콘솔 업데이트합니다.

    네트워크 컨트롤러 PowerShell 모듈을 사용하는 각 컴퓨터에 업데이트를 설치합니다. RSAT-NetworkController 역할이 자체 설치되어 있는 위치를 포함합니다. 네트워크 컨트롤러 VM 자체 제외 다음 단계에서 업데이트합니다.

  2. 첫 번째 네트워크 컨트롤러 VM에서 모든 업데이트를 설치하고 다시 시작합니다.

  3. 다음 네트워크 컨트롤러 VM으로 진행하기 전에 cmdlet을 get-networkcontrollernode 사용하여 업데이트하고 다시 시작한 노드의 상태 검사.

  4. 다시 부팅 주기 동안 네트워크 컨트롤러 노드가 다운되기를 기다린 다음 다시 올 때까지 기다립니다.

    VM을 다시 부팅한 후 Up 상태 다시 전환되기까지 몇 분 정도 걸릴 수 있습니다. 출력의 예는 를 참조하세요.

  5. 부하 분산 장치 인프라의 지속적인 가용성을 보장하기 위해 각 SLB Mux VM에 업데이트를 한 번에 하나씩 설치합니다.

  6. 대기 모드에 있는 RAS 게이트웨이가 포함된 호스트부터 시작하여 Hyper-V 호스트 및 RAS 게이트웨이를 업데이트합니다.

    RAS 게이트웨이 VM은 테넌트 연결을 잃지 않고 라이브로 마이그레이션할 수 없습니다. 업데이트 주기 동안 새 RAS 게이트웨이에 대한 테넌트 연결 장애 조치(failover) 횟수를 최소화해야 합니다. 호스트 및 RAS 게이트웨이의 업데이트를 조정하여 각 테넌트는 최대 한 번 장애 조치(fails over)됩니다.

    a. 실시간 마이그레이션이 가능한 VM 호스트를 대피합니다.

    RAS 게이트웨이 VM은 호스트에서 다시 기본 합니다.

    b. 이 호스트의 각 게이트웨이 VM에 업데이트를 설치합니다.

    c. 업데이트에서 게이트웨이 VM을 다시 부팅해야 하는 경우 VM을 다시 부팅합니다.

    d. 방금 업데이트된 게이트웨이 VM을 포함하는 호스트에 업데이트를 설치합니다.

    e. 업데이트에 필요한 경우 호스트를 다시 부팅합니다.

    f. 대기 게이트웨이를 포함하는 각 추가 호스트에 대해 반복합니다.

    대기 게이트웨이가 다시 없는 경우 기본 모든 다시 기본 호스트에 대해 동일한 단계를 수행합니다.

예: get-networkcontrollernode cmdlet 사용

이 예제에서는 네트워크 컨트롤러 VM 중 하나에서 실행되는 cmdlet에 대한 get-networkcontrollernode 출력을 볼 수 있습니다.

예제 출력에 표시되는 노드의 상태 다음과 같습니다.

  • NCNode1.contoso.com = 아래쪽
  • NCNode2.contoso.com = 위쪽
  • NCNode3.contoso.com = 위쪽

Important

노드에 대한 상태 한 번에 하나씩 추가 노드를 업데이트하기 전에 Up으로 변경될 때까지 몇 분 정도 기다려야 합니다.

모든 네트워크 컨트롤러 노드를 업데이트하면 네트워크 컨트롤러는 1시간 내에 네트워크 컨트롤러 클러스터 내에서 실행되는 마이크로 서비스를 업데이트합니다.

cmdlet을 사용하여 즉시 업데이트를 트리거할 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

예: update-networkcontroller cmdlet 사용

이 예제에서는 네트워크 컨트롤러를 update-networkcontroller 강제로 업데이트하도록 cmdlet에 대한 출력을 볼 수 있습니다.

Important

설치할 업데이트가 더 이상 없으면 이 cmdlet을 실행합니다.

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

SDN 인프라 백업

네트워크 컨트롤러 데이터베이스의 정기적인 백업은 재해 또는 데이터 손실이 발생할 경우 비즈니스 연속성을 보장합니다. 여러 네트워크 컨트롤러 노드에서 세션이 계속되도록 보장하지 않으므로 네트워크 컨트롤러 VM을 백업하는 것으로 충분하지 않습니다.

요구 사항:

  • 공유 및 파일 시스템에 대한 읽기/쓰기 권한이 있는 SMB 공유 및 자격 증명입니다.
  • GMSA를 사용하여 네트워크 컨트롤러가 설치된 경우 필요에 따라 GMSA(그룹 관리 서비스 계정)를 사용할 수 있습니다.

절차:

  1. 선택한 VM 백업 방법을 사용하거나 Hyper-V를 사용하여 각 네트워크 컨트롤러 VM의 복사본을 내보냅니다.

    네트워크 컨트롤러 VM을 백업하면 데이터베이스 암호를 해독하는 데 필요한 인증서가 있는지 확인합니다.

  2. SCVMM(System Center Virtual Machine Manager)을 사용하는 경우 SCVMM 서비스를 중지하고 SQL Server를 통해 백업합니다.

    여기서 목표는 이 시간 동안 SCVMM에 대한 업데이트가 수행되지 않도록 하여 네트워크 컨트롤러 백업과 SCVMM 간의 불일치를 만들 수 있도록 하는 것입니다.

    Important

    네트워크 컨트롤러 백업이 완료될 때까지 SCVMM 서비스를 다시 시작하지 마세요.

  3. cmdlet을 사용하여 네트워크 컨트롤러 데이터베이스를 new-networkcontrollerbackup 백업합니다.

  4. cmdlet을 사용하여 백업 get-networkcontrollerbackup 완료 및 성공을 확인합니다.

  5. SCVMM을 사용하는 경우 SCVMM 서비스를 시작합니다.

예: 네트워크 컨트롤러 데이터베이스 백업

$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

예: 네트워크 컨트롤러 백업 작업의 상태 확인

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
                                    }
                }
}

백업에서 SDN 인프라 복원

백업에서 필요한 모든 구성 요소를 복원하면 SDN 환경이 작동 상태로 돌아갑니다.

Important

단계는 복원된 구성 요소 수에 따라 달라집니다.

  1. 필요한 경우 Hyper-V 호스트와 필요한 스토리지를 다시 배포합니다.

  2. 필요한 경우 백업에서 네트워크 컨트롤러 VM, RAS 게이트웨이 VM 및 Mux VM을 복원합니다.

  3. 모든 Hyper-V 호스트에서 NC 호스트 에이전트 및 SLB 호스트 에이전트를 중지합니다.

    stop-service slbhostagent
    
    stop-service nchostagent
    
  4. RAS 게이트웨이 VM을 중지합니다.

  5. SLB Mux VM을 중지합니다.

  6. cmdlet을 사용하여 네트워크 컨트롤러를 new-networkcontrollerrestore 복원합니다.

  7. 복원 이 성공적으로 완료된 시기를 확인하려면 Restore ProvisioningState 를 확인합니다.

  8. SCVMM을 사용하는 경우 네트워크 컨트롤러 백업과 동시에 생성된 백업을 사용하여 SCVMM 데이터베이스를 복원합니다.

  9. 백업에서 워크로드 VM을 복원하려면 지금 수행합니다.

  10. debug-networkcontrollerconfigurationstate cmdlet을 사용하여 시스템의 상태를 확인합니다.

$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

예: 네트워크 컨트롤러 데이터베이스 복원

$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

예: 네트워크 컨트롤러 데이터베이스 복원의 상태 확인

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
                }
}

나타날 수 있는 구성 상태 메시지에 대한 자세한 내용은 Windows Server 2016 소프트웨어 정의 네트워킹 스택 문제 해결을 참조하세요.