다음을 통해 공유


SDN 인프라 업데이트, 백업 및 복원

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

SDN 인프라 업그레이드

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

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

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

  • SDN 지원 Hyper-V 호스트
  • 네트워크 컨트롤러 VM
  • 소프트웨어 부하 분산 장치 Mux VM
  • RAS Gateway VMs

Important

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

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

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

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

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

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

  4. 재부팅 주기 동안 네트워크 컨트롤러 노드가 다운되었다가 다시 작동할 때까지 기다립니다.

    VM을 재부팅한 후 다시 작동 상태로 전환되기까지 몇 분 정도 걸릴 수 있습니다. 출력 예제는 다음을 참조하십시오.

  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 중 하나에서 실행되는 get-networkcontrollernode cmdlet에 대한 출력을 볼 수 있습니다.

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

  • NCNode1.contoso.com = 다운
  • NCNode2.contoso.com = 작동
  • NCNode3.contoso.com = 작동

Important

추가 노드를 한 번에 하나씩 업데이트하기 전에 노드 상태가 작동으로 변경되려면 몇 분 정도 기다려야 합니다.

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

update-networkcontroller cmdlet을 사용하여 즉시 업데이트를 트리거할 수 있습니다.

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. new-networkcontrollerbackup cmdlet을 사용하여 네트워크 컨트롤러 데이터베이스를 백업합니다.

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

  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. new-networkcontrollerrestore cmdlet을 사용하여 네트워크 컨트롤러를 복원합니다.

  7. 복원이 완료된 시기를 확인하려면 복원 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 소프트웨어 정의 네트워킹 스택 문제 해결을 참조하세요.