Events
Apr 29, 2 PM - Apr 30, 7 PM
Join the ultimate Windows Server virtual event April 29-30 for deep-dive technical sessions and live Q&A with Microsoft engineers.
Sign up nowThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
This article describes the backup and recovery process of a software defined network (SDN) infrastructure in the System Center Virtual Machine Manager (VMM) fabric and provides any applicable recommendations for the process completion.
To back up and restore an SDN, you must back up and restore the network controller (NC) that is deployed in the SDN. Use the following procedures in the sequence explained.
Back up the network controller database by using the network controller Rest API. Learn more.
Use the following procedures to bring up a new network controller:
In the VMM console, VMs and Services > Services, select the network controller service instance and select Delete.
Note
Remove the network controller service instance only. Do not remove the network controller from Fabric > Network Services.
Ensure that the DNS record for the network controller is removed from the DNS.
Deploy a new network controller service instance from the VMM by using the same service deployment settings that were used for the original service instance deployment. Learn more.
Verify that the deployment job is successful.
Restore the network controller from a network controller backup by using the network controller Rest API. Learn more.
Depending on the SDN state captured in the network controller backup and the current VMM state, some of the resources in VMM and network controller can be out of sync.
Use the following refresh procedures to find any such differences between VMM and NC and resolve them accordingly.
Note
Note
Get all the NC-managed port ACLs from the VMM server by using the following cmdlet:
$portACLs = Get-SCPortACL | Where-Object {$_.ManagedByNC -eq $True}
Run the Read-SCPortACL cmdlet on all the NC-managed port ACLs to refresh.
foreach($portACL in $portACLs)
{
Read-SCPortACL -PortACL $portACL
}
Verify the VMM jobs' log for the result status and follow the recommendations from the log if there're any failures.
Get all the NC-managed logical networks from the VMM server by using the following cmdlet:
$logicalNetworks = Get-SCLogicalNetwork | Where-Object {$_.IsManagedByNetworkController -eq $True}
Run the Read-SCLogicalNetwork cmdlet on all the NC-managed logical networks to refresh.
foreach($logicalNetwork in $logicalNetworks)
{
Read-SCLogicalNetwork -LogicalNetwork $logicalNetwork
}
Verify the VMM jobs' log for the result status and follow the recommendations from the log if there're any failures.
Get all the gateways and load balancer muxes by using the following cmdlet:
$networkService = Get-SCNetworkService | Where-Object {$_.Model -eq 'Microsoft Network Controller'}
$fabricRoles = Get-SCFabricRole -NetworkService $networkService
$fabricRoleResources = @()
foreach($fabricRole in $fabricRoles)
{
$fabricRoleResources += $fabricRole.ServiceVMs
}
$fabricRoleResources
Run the Read-SCFabricRoleResource cmdlet to refresh.
foreach($fabricRoleResource in $fabricRoleResources)
{
Read-SCFabricRoleResource -FabricResource $fabricRoleResource
}
Verify the VMM jobs' log for the result status and follow the recommendations from the log if there're any failures.
Get all the NAT connections by using the following cmdlet:
$vmNetworks = Get-SCVMNetwork | Where-Object {$_.NetworkManager.Model -eq 'Microsoft Network Controller' -and $_.IsolationType -eq 'WindowsNetworkVirtualization'}
$natConnections = @()
foreach($vmNetwork in $vmNetworks)
{
$natConnections += $vmNetwork.NATConnections
}
$natConnections
Run the Read-SCNATConnection cmdlet to refresh NAT connections and NAT rules.
foreach($natConnection in $natConnections)
{
Read-SCNATConnection -NATConnection $natConnection
}
Verify the VMM jobs' log for the result status and follow the recommendations from the log if there're any failures.
Get all the load balancer VIPs configured on NC by using the following cmdlet:
$loadBalancerVIPs = Get-SCLoadBalancerVIP | Where-Object {$_.LoadBalancer.Model -eq 'Microsoft Network Controller'}
Run the Read-SCLoadBalancerVIP cmdlet to refresh all the load balancer VIPs.
foreach($loadBalancerVIP in $loadBalancerVIPs)
{
Read-SCLoadBalancerVIP -LoadBalancerVIP $loadBalancerVIP
}
Verify the VMM jobs' log for the result status and follow the recommendations from the log if there're any failures.
Get all the NC-managed HNV VM networks from the VMM server by using the following cmdlet:
$VMNetworks = Get-SCVMNetwork | Where-Object {$_.NetworkManager.Model -eq 'Microsoft Network Controller' -and $_.IsolationType -eq 'WindowsNetworkVirtualization'}
Run the Read-SCVMNetwork cmdlet on all the VM networks to refresh.
foreach($VMNetwork in $VMNetworks)
{
Read-SCVMNetwork -VMNetwork $VMNetwork
}
Verify the VMM jobs' log for the result status and follow the recommendations from the log if there're any failures.
Get the gateway fabric role from the VMM server by using the following cmdlet:
$networkService = Get-SCNetworkService | Where-Object {$_.Model -eq 'Microsoft Network Controller'}
$gatewayFabricRole = Get-SCFabricRole -NetworkService $networkService | Where-Object {$_. RoleType -eq ‘Gateway ’}
Run the Read-SCFabricRole cmdlet to refresh the fabric role.
foreach($fabricRole in $gatewayFabricRole )
{
Read-SCFabricRole -FabricRole $fabricRole
}
Verify the VMM jobs' log for the result status and follow the recommendations from the log if there're any failures.
Get all the VM network gateways that are configured for the VM networks by using the following cmdlet:
$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
}
Run the Read-SCVMNetworkGateway cmdlet to refresh the gateways.
foreach($VMNetworkGateway in $VMNetworkGateways)
{
Read-SCVMNetworkGateway -VMNetworkGateway $VMNetworkGateway
}
Verify the VMM jobs' log for the result status and follow the recommendations from the log if there're any failures.
Events
Apr 29, 2 PM - Apr 30, 7 PM
Join the ultimate Windows Server virtual event April 29-30 for deep-dive technical sessions and live Q&A with Microsoft engineers.
Sign up nowTraining
Certification
Microsoft Certified: Azure Network Engineer Associate - Certifications
Demonstrate the design, implementation, and maintenance of Azure networking infrastructure, load balancing traffic, network routing, and more.
Documentation
Configure guest clusters in SDN using System Center Virtual Machine Manager.
This article explains about how to configure guest clusters in SDN through VMM.