Поделиться через


Резервное копирование и восстановление инфраструктуры SDN

В этой статье описывается процесс резервного копирования и восстановления программно-определяемой сети (SDN) инфраструктуры в структуре System Center диспетчер виртуальных машин (VMM) и предоставляет все применимые рекомендации по завершению процесса.

Для резервного копирования и восстановления SDN необходимо создать резервную копию и восстановить сетевой контроллер (NC), развернутый в SDN. Используйте следующие процедуры в описанной последовательности.

Резервное копирование сетевого контроллера

Резервное копирование базы данных сетевого контроллера с помощью REST API сетевого контроллера. Подробнее.

Создание нового сетевого контроллера

Используйте следующие процедуры для создания нового сетевого контроллера:

  1. В консоли VMM выберите Виртуальные машины и службы>Службы, выберите экземпляр службы сетевого контроллера и выберите Удалить.

    Примечание.

    Удалите только экземпляр службы сетевого контроллера. Не удаляйте сетевой контроллер из >

    Снимок экрана: резервное копирование и восстановление sdn.

  2. Убедитесь, что запись DNS для сетевого контроллера удалена из DNS.

  3. Разверните новый экземпляр службы сетевого контроллера из VMM с помощью тех же параметров развертывания службы, которые использовались для развертывания исходного экземпляра службы. Подробнее.

  4. Убедитесь, что задание развертывания успешно выполнено.

Восстановление сетевого контроллера из резервной копии

Восстановите сетевой контроллер из резервной копии сетевого контроллера с помощью REST API сетевого контроллера. Подробнее.

Обновление сетевого контроллера и синхронизация VMM и NC

В зависимости от состояния SDN, записанного в резервном копировании сетевого контроллера и текущем состоянии VMM, некоторые ресурсы в VMM и сетевом контроллере могут быть не синхронизированы.

Используйте следующие процедуры обновления, чтобы найти такие различия между VMM и NC и устранить их соответствующим образом.

Примечание.

  • Командлеты для обновления объектов сетевого контроллера доступны в VMM 2016 UR3.
  • Если сетевой контроллер содержит объекты, которые отсутствуют в базе данных VMM, VMM не будет обновляться (даже если эти объекты были созданы с помощью VMM ранее). Удалите эти объекты из NC и повторно создайте объекты из VMM для повторного управления этими объектами из VMM.

Примечание.

  • Обновите командлеты для перезапуска объектов сетевого контроллера.
  • Если сетевой контроллер содержит объекты, которые отсутствуют в базе данных VMM, то VMM не будет обновляться (даже если эти объекты создаются с помощью VMM ранее). Удалите эти объекты из NC и повторно создайте объекты из VMM для повторного управления этими объектами из VMM.

Обновление списков ACL портов

  1. Получите все списки управления доступом (ACL) к портам NC с помощью сервера VMM, используя следующий командлет:

    
    $portACLs = Get-SCPortACL | Where-Object {$_.ManagedByNC -eq $True}
    
    
  2. Выполните командлет Read-SCPortACL на всех портовых списках контроля доступа (ACL) под управлением NC для обновления.

    foreach($portACL in $portACLs)
    {
       Read-SCPortACL -PortACL $portACL
    }
    
    
  3. Проверьте журнал заданий VMM для состояния результата и следуйте рекомендациям из журнала, если возникли сбои.

Обновление логических сетей

  1. Получите все логические сети, управляемые NC, с сервера VMM с помощью следующего командлета:

    $logicalNetworks = Get-SCLogicalNetwork | Where-Object {$_.IsManagedByNetworkController -eq $True}
    
  2. Выполните командлет Read-SCLogicalNetwork на всех логических сетях, управляемых NC, чтобы обновить их.

    foreach($logicalNetwork in $logicalNetworks)
    {
         Read-SCLogicalNetwork -LogicalNetwork $logicalNetwork
    }
    
    
  3. Проверьте журнал заданий VMM для состояния результата и следуйте рекомендациям из журнала, если возникли сбои.

Обновление шлюзов и мультиплексоров балансировщиков нагрузки

  1. Получите все шлюзы и подсистемы балансировки нагрузки с помощью следующего командлета:

    $networkService =  Get-SCNetworkService  | Where-Object {$_.Model -eq 'Microsoft Network Controller'}
    $fabricRoles = Get-SCFabricRole -NetworkService $networkService
    $fabricRoleResources = @()
    foreach($fabricRole in $fabricRoles)
    {
         $fabricRoleResources += $fabricRole.ServiceVMs
    }
    $fabricRoleResources
    
  2. Для обновления выполните командлет Read-SCFabricRoleResource.

    foreach($fabricRoleResource in $fabricRoleResources)
    {
         Read-SCFabricRoleResource -FabricResource $fabricRoleResource
    }
    
  3. Проверьте журнал заданий VMM для состояния результата и следуйте рекомендациям из журнала, если возникли сбои.

Обновление подключений NAT и правил NAT

  1. Получите все подключения NAT с помощью следующего командлета:

    
    $vmNetworks = Get-SCVMNetwork | Where-Object {$_.NetworkManager.Model -eq 'Microsoft Network Controller' -and $_.IsolationType -eq 'WindowsNetworkVirtualization'}
    
    $natConnections = @()
    foreach($vmNetwork in $vmNetworks)
    {
         $natConnections += $vmNetwork.NATConnections
    }
    $natConnections
    
    
  2. Выполните командлет Read-SCNATConnection, чтобы обновить подключения NAT и правила NAT.

    foreach($natConnection in $natConnections)
    {
         Read-SCNATConnection -NATConnection $natConnection
    }
    
  3. Проверьте журнал заданий VMM для состояния результата и следуйте рекомендациям из журнала, если возникли сбои.

Обновление всех IP-адресов подсистемы балансировки нагрузки

  1. Получите все виртуальные IP-адреса балансировщика нагрузки, настроенные на NC, с помощью следующего командлета:

    $loadBalancerVIPs = Get-SCLoadBalancerVIP |  Where-Object {$_.LoadBalancer.Model -eq 'Microsoft Network Controller'}
    
  2. Запустите командлет Read-SCLoadBalancerVIP, чтобы обновить все VIP'ы балансировщика нагрузки.

    foreach($loadBalancerVIP in $loadBalancerVIPs)
    {
        Read-SCLoadBalancerVIP -LoadBalancerVIP $loadBalancerVIP
    }
    
    
  3. Проверьте журнал заданий VMM для состояния результата и следуйте рекомендациям из журнала, если возникли сбои.

Обновление сетей виртуальных машин

  1. Чтобы получить все сети виртуальных машин, управляемые NC, с сервера VMM, используйте следующий командлет:

    $VMNetworks = Get-SCVMNetwork | Where-Object {$_.NetworkManager.Model -eq 'Microsoft Network Controller' -and $_.IsolationType -eq 'WindowsNetworkVirtualization'}
    
  2. Выполните командлет Read-SCVMNetwork для обновления всех сетей виртуальных машин.

    foreach($VMNetwork in $VMNetworks)
    {
        Read-SCVMNetwork -VMNetwork $VMNetwork
    }
    
    
  3. Проверьте журнал заданий VMM для состояния результата и следуйте рекомендациям из журнала, если возникли сбои.

Обновите пулы шлюзов

  1. Получите роль структуры шлюза с сервера VMM с помощью следующего командлета:

    $networkService =  Get-SCNetworkService  | Where-Object {$_.Model -eq 'Microsoft Network Controller'}
    $gatewayFabricRole = Get-SCFabricRole -NetworkService $networkService | Where-Object {$_. RoleType -eq ‘Gateway ’}
    
    
  2. Выполните командлет Read-SCFabricRole, чтобы обновить роль структуры.

    foreach($fabricRole in $gatewayFabricRole )
    {
        Read-SCFabricRole -FabricRole $fabricRole
    }
    
  3. Проверьте журнал заданий VMM для состояния результата и следуйте рекомендациям из журнала, если возникли сбои.

Обновление сетевых шлюзов виртуальной машины

  1. Получите список всех шлюзов, настроенных для сетей виртуальных машин, с помощью следующего командлета:

    $vmNetworks = Get-SCVMNetwork | Where-Object {$_.NetworkManager.Model -eq 'Microsoft Network  Controller' -and $_.IsolationType -eq 'WindowsNetworkVirtualization'  -and $_.VMNetworkGateways.Count -gt 0}}
    $VMNetworkGateways = @()
    foreach($vmNetwork in $vmNetworks)
    {
         $VMNetworkGateways += $vmNetwork.$VMNetworkGateways
    }
    
    
  2. Выполните командлет Read-SCVMNetworkGateway, чтобы обновить сетевые шлюзы.

    foreach($VMNetworkGateway in $VMNetworkGateways)
    {
        Read-SCVMNetworkGateway -VMNetworkGateway $VMNetworkGateway
    }
    
  3. Проверьте журнал заданий VMM для состояния результата и следуйте рекомендациям из журнала, если возникли сбои.