Windows Server 2012 Beta - Test cases for Hyper-V over SMB (includes PowerShell examples)
This blog posts lists a few of the common test cases for the new "Hyper-V over SMB" scenario in Windows Server 2012 Beta.
If you are not familiar with this new scenario in Windows Server 2012 Beta, please read the following TechNet articles before proceeding:
- High-Performance, Continuously Available File Share Storage for Server Applications
- Windows Server 2012 Beta, File and Storage Services, SMB 2.2
All commands shown in this blog post should be run using Windows PowerShell. In these instructions specific server names and user accounts are used consistently:
- Dom is the name of the Active Directory Domain
- DomHVAdmin is the user that will manage Hyper-V hosts and VMs
- FS1 and FS2 are File Servers or File Server cluster nodes
- HV1 and HV2 are Hyper-V hosts or Hyper-V cluster nodes
- HVC is the name of the Hyper-V cluster itself (the Hyper-V cluster name object)
- FST is a File Server cluster for general use (also known as File Server cluster)
- FSO is a File Server cluster for scale-out application data (also known as scale-out File Server cluster)
Configure a Standalone File Server
- Install Windows Server 2012 Beta.
- Add the File and Storage Services role.
- Install-WindowsFeature File-Services, FS-FileServer
- Configure the network interfaces. If using SMB Multichannel, make sure two NICs of the same type and speed are configured.
- Get-NetAdapter
- Get-SmbServerNetworkInterface
Configure a Failover Cluster with a File Server
- Install Windows Server 2012 beta on two servers.
- Add the File and Storage Services role and the Failover Clustering feature to both of them.
- Install-WindowsFeature File-Services, FS-FileServer, Failover-Clustering
- Install-WindowsFeature RSAT-Clustering -IncludeAllSubFeature
- Configure the network interfaces. If using SMB Multichannel, make sure two NICs of the same type and speed are configured on different subnets.
- Get-NetAdapter
- Get-SmbServerNetworkInterface
- Form a Windows Failover Cluster using the two servers.
- New-Cluster –Name FSC -Node FS1, FS2
- Create a File Server Cluster to host the continuously available SMB 2.2 file share.
- Add-ClusterFileServerRole -Name FST -Storage “Cluster Disk 1” –StaticAddress 192.168.101.22/24, 192.168.102.22/24
Configure a Failover Cluster with a Scale-Out File Server
- Install Windows Server 2012 beta on two servers.
- Add the File and Storage Services role and the Failover Clustering feature to both of them.
- Install-WindowsFeature File-Services, FS-FileServer, Failover-Clustering
- Install-WindowsFeature RSAT-Clustering -IncludeAllSubFeature
- Configure the network interfaces. If using SMB Multichannel, make sure two NICs of the same type and speed are configured on different subnets.
- Get-NetAdapter
- Get-SmbServerNetworkInterface
- Form a Windows Failover Cluster using the two servers.
- New-Cluster –Name FSC -Node FS1, FS2
- Create a Scale-Out File Server Cluster to host the continuously available SMB 2.2 file share.
- Add-ClusterSharedVolume “Cluster Disk 2”
- Add-ClusterScaleOutFileServerRole -Name FSO
Configure a server to run Hyper-V
- Install Windows Server 2012 beta.
- Add the Hyper-V role and tools.
- Install-WindowsFeature Hyper-V, Hyper-V-PowerShell, Hyper-V-Tools
- Configure the network interfaces. If using SMB Multichannel, make sure two NICs of the same type and speed are configured that are not connected to a VMSwitch.
- Get-NetAdapter
- Get-SmbClientNetworkInterface
Configuring a file share for Hyper-V over SMB (standalone server or a File Server cluster)
- Create a folder for storing VM data
- MD X:VMS
- Set the required file system permissions and remove inheritance
- ICACLS.EXE X:VMS --% /Grant DomHVAdmin:(CI)(OI)F
- ICACLS.EXE X:VMS --% /Grant DomHV1$:(CI)(OI)F
- ICACLS.EXE X:VMS --% /Grant DomHV2$:(CI)(OI)F
- ICACLS.EXE X:VMS --% /Grant DomHVC$:(CI)(OI)F
- ICACLS.EXE X:VMS /Inheritance:R
- Create an SMB file share with the required permissions
- New-SmbShare -Name VMS -Path X:VMS –FullAccess DomHVAdmin, DomHV1$, DomHV2$, DomHVC$
Note: If the syntax using "--%" looks strange to you, review my post on using PowerShell to run command line tools.
Configuring a file share for Hyper-V over SMB (Scale-Out File Server cluster)
- Create a folder for storing VM data
- MD C:ClusterStorageVolume1VMS
- Set the required file system permissions and remove inheritance
- ICACLS.EXE C:ClusterStorageVolume1VMS --% /Grant DomHVAdmin:(CI)(OI)F
- ICACLS.EXE C:ClusterStorageVolume1VMS --% /Grant DomHV1$:(CI)(OI)F
- ICACLS.EXE C:ClusterStorageVolume1VMS --% /Grant DomHV2$:(CI)(OI)F
- ICACLS.EXE C:ClusterStorageVolume1VMS --% /Grant DomHVC$:(CI)(OI)F
- ICACLS.EXE C:ClusterStorageVolume1VMS /Inheritance:R
- Create an SMB file share with the required permissions
- New-SmbShare -Name VMS -Path C:ClusterStorageVolume1VMS -FullAccess DomHVAdmin, DomHV1$, DomHV2$, DomHVC$
Creating a new VM on an SMB Share
- Create a VHDX file on an SMB file share
- New-VHD -Path \FSTVMSVM1.VHDX -Fixed -SizeBytes 20GB
- Create a VM using the file share
- New-VM -Path \FSTVMS -Name VM1 -VHDPath \FSTVMSVM1.VHDX -SwitchName External -Memory 1GB
- Start the VM
- Start-VM VM1
- Verify that the connection is established with the right version of the protocol (dialect)
- Get-SmbConnection
- Verify that SMB Multichannel is properly using multiple paths
- Get-SmbMultichannelConnection
- Attach an ISO file with the Windows Server 2012 image
- Set-VMDvdDrive VM1 -Path \FSTLibraryWS8.ISO
- Install Windows Server 2012 as the guest OS.
Failing one of multiple NICs while VM is running
- With a VM running, confirm that multiple paths are being used
- Get-VM VM1 | Format-Table Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Get-SmbConnection
- Get-SmbMultichannelConnection
- Start a long-running file copy workload inside guest OS
- Disable one of the network adapters being used by the connection
- Disable-NetAdapter –InterfaceAlias Network1
- After 30 seconds, verify that only the surviving network paths are being used, the VM is running and the workload is not interrupted
- Get-VM VM1 | FT Name, Path, State
- Get-SmbMultichannelConnection
- Re-enable the network adapter
- Enable-NetAdapter –InterfaceAlias Network1
- After 30 seconds, verify that all the network paths are again being used, the VM is running and the workload is not interrupted
- Get-VM VM1 | FT Name, State
- Get-SmbMultichannelConnection
Live Storage Migration of VM from DAS to an SMB share
- Confirm there is a VM running using local storage
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Start a long-running file copy workload inside guest OS
- Live Storage Migrate the VM to an SMB file share
- Move-VMStorage –VMName VM1 –DestinationStoragePath \FSTVMS
- Confirm there is a VM running using an SMB file share and the workload is not interrupted
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
Live Storage Migration of VM from one SMB share to another
- Confirm there is a VM running using one file share
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Start a long-running file copy workload inside guest OS
- Live Storage Migrate the VM to another file share
- Move-VMStorage –VMName VM1 –DestinationStoragePath \FSOVMS
- Confirm there is a VM running using the other file share and the workload is not interrupted
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
Planned Live Migration within a Hyper-V cluster using an SMB share
- Confirm there is a VM running in a cluster node using an SMB file share
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Get-ClusterGroup VM1 | FT Name, OwnerNode, State
- Start a long-running file copy workload inside guest OS
- Live Migrate the VM to another node
- Move-ClusterVirtualMachineRole -Name VM1 -Node HV2 –VmMigrationType Live
- Confirm there is a VM moved to another cluster node and the workload is not interrupted
- Get-ClusterGroup VM1 | FT Name, OwnerNode, State
Unplanned failover of Hyper-V cluster using an SMB share
- Confirm there is a VM running in a cluster node using an SMB file share
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Get-ClusterGroup VM1 | FT Name, OwnerNode, State
- Pull the power plug on the Hyper-V cluster node running the VM
- Confirm that the VM moved to another cluster node
- Get-ClusterGroup VM1 | FT Name, OwnerNode, State
Planned Live Migration between standalone hosts using an SMB share
- Confirm there is a VM running (on HV1)
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Start a long-running file copy workload inside guest OS
- Live Migrate the VM to HV2
- Move-VM –Name VM1 –DestinationHost HV2
- Confirm that the VM moved (on HV2) and the workload is not interrupted
- Get-VM VM1 | FT Name, Path, State
Live Migration of VM on DAS with Live Storage Migration to an SMB share
- Confirm there is a VM running using local storage in HV1
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Start a long-running file copy workload inside guest OS
- Live Virtual Machine Migrate the VM to HV2 and the storage to an SMB file share
- Move-VM –Name VM1 -DestinationHost HV2 –DestinationStoragePath \FSTVMS
- Confirm there is a VM running in HV2 using the file share and the workload is not interrupted
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
Live Migration of VM on an SMB share with Live Storage Migration to another SMB share
- Confirm there is a VM running on HV1 using one file share in FST
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Start a long-running file copy workload inside guest OS
- Live Virtual Machine Migrate the VM to HV2 with VM's storage migrated to another file share
- Move-VM –Name VM1 -DestinationHost HV2 –DestinationStoragePath \FSOVMS
- Confirm there is a VM running in HV2 using the other file share and the workload is not interrupted
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
Save and Resume a VM on an SMB share
- Confirm there is a VM running using an SMB file share
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Save the VM
- Save-VM VM1
- Confirm the VM is saved
- Get-VM
- Resume the VM
- Start-VM VM1
- Confirm the VM is restored
- Get-VM VM1 | FT Name, Path, State
Create a Hyper-V Snapshot for a VM on an SMB share
- Confirm there is a VM running using an SMB file share with no snapshots
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Get-VMSnapshot VM1
- Create a VM snapshot
- CheckPoint-VM VM1
- Confirm the VM is snapshotted
- Get-VMSnapshot VM1
- Remove the VM snapshot
- Remove-VMSnapshot VM1
- Confirm the VM has no snapshots
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Get-VMSnapShot VM1
Create a Hyper-V Replica of a VM on an SMB share
- Make sure HV1 and HV2 are two unclustered Hyper-V hosts
- Configure HV2 as the replica Server
- Set-VMReplicationServer –ReplicationEnabled $true –ReplicationAllowedFromAnyServer $true –DefaultStorageLocation \FSOVMS –AuthType Integrated –IntegratedAuthenticationPort 80
- New-NetFirewallRule -Name AllowPort1 -DisplayName AllowPort1 -Direction Inbound -Action Allow -Protocol TCP -LocalPort 80
- Confirm there is a VM running on HV1 using \FSTVMS
- Get-VM VM1 | FT Name, Path, ReplicationState
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Create a Hyper-V Replica of the VM on HV2
- Set-VMReplication VM1 –ReplicaServerName HV2 –ReplicaServerPort 80 –AuthenticationType Integrated
- Start-VMInitialReplication VM1
- Confirm the VM is replicating
- Get-VM VM1 | FT Name, Path, ReplicationState
- Get-VMReplication VM1
VM storage throughput using single NIC
- Confirm there is a VM running using an SMB file share, using a single NIC
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Get-SmbMultichannelConnection
- Create load on the server for 10 minutes
- Confirm the throughput of the storage
- Use Performance Monitor inside the Guest OS (Physical Disk counters)
- Use Performance Monitor on the Host OS (SMB2 Client Shares counters)
VM storage throughput using dual NICs
- Confirm there is a VM running using an SMB file share, using dual NICs
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Get-SmbMultichannelConnection
- Create load on the server for 10 minutes
- Confirm the throughput of the storage
- Use Performance Monitor inside the Guest OS (Physical Disk counters)
- Use Performance Monitor on the Host OS (SMB2 Client Shares counters)
VM storage throughput using SMB Direct and a single RDMA NIC
- Confirm there is a VM running using an SMB file share, using a single NIC that is RDMA-capable
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Get-SmbMultichannelConnection
- Create load on the server for 10 minutes
- Confirm the throughput of the storage
- Use Performance Monitor inside the Guest OS (Physical Disk counters)
- Use Performance Monitor on the Host OS (SMB2 Client Shares counters)
VM storage throughput using SMB Direct and dual RDMA NICs
- Confirm there is a VM running using an SMB file share, using dual NICs that are RDMA-capable
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Get-SmbMultichannelConnection
- Create load on the server for 10 minutes
- Confirm the throughput of the storage
- Use Performance Monitor inside the Guest OS (Physical Disk counters)
- Use Performance Monitor on the Host OS (SMB2 Client Shares counters)
Planned move of File Share between cluster while VM is running (File Server cluster)
- Confirm there is a VM running using an SMB file share (on the Hyper-V host)
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Move the file share between nodes (on the File Server cluster)
- Get-ClusterGroup FST | FT Name, OwnerNode, State
- Move-ClusterGroup FST
- Get-ClusterGroup FST | FT Name, OwnerNode, State
- Confirm there is a VM continues to run uninterrupted (on the Hyper-V host)
- Get-VM VM1 | FT Name, Path, State
Move of Hyper-V host to a different File Server cluster node while VM is running (Scale-Out File Server cluster)
- Confirm there is a VM running using an SMB file share (on the Hyper-V host)
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Move the file share between nodes (on the File Server cluster)
- Get-SmbSession
- Get-SmbWitnessClient | FT ClientName, FileServerNodeName, State
- Move-SmbWitnessClient -ClientName HV1 -DestinationNode FS2
- Get-SmbWitnessClient | FT ClientName, FileServerNodeName, State
- Confirm there is a VM continues to run uninterrupted (on the Hyper-V host)
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
Unplanned failover of File Server node while VM is running (all File Server types)
- Confirm there is a VM running using an SMB file share (on the Hyper-V host)
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Pull the power plug on the File Server cluster node currently in use
- Confirm there is a VM continues to run uninterrupted (on the Hyper-V host)
- Get-VM VM1 | FT Name, Path, State
Host-based backup of a VM using VSS for SMB File Shares
- Confirm there is a VM running using an SMB file share
- Get-VM VM1 | FT Name, Path, State
- Get-VMHardDiskDrive VM1 | FT VMName, Path
- Confirm with VSS that the provider for SMB file shares and the writer for Hyper-V are available
- VSSADMIN.EXE List Providers
- VSSADMIN.EXE List Writers
- Create a VSS backup from the Hyper-V host using a VSS Requester
- DISKSHADOW.EXE
- Set Context Persistent
- Begin Backup
- Add Volume \FSTVMS
- Create
- End Backup
- DISKSHADOW.EXE
Comments
Anonymous
January 01, 2003
Storage migration is a new feature in Windows 8 Server that allows moving the files for a virtual machineAnonymous
January 01, 2003
Overview1.1. IntroductionWindows Server 2012 provides Windows PowerShell cmdlets and WMIAnonymous
January 01, 2003
- IntroductionWe have covered the basics of SMB Direct and some of the use cases in previous
- Anonymous
March 06, 2012
For additional details on creating continuously available storage solutions in Windows Server “8” Beta please see the following whitepaper.go.microsoft.com/fwlink - Anonymous
March 28, 2012
Thanks for putting this up. This was very helpfull.