Save to My DOJO
Table of contents
Hello once again everyone!
I’ve put together a few different items in this follow-up post to the webinar on high impact Windows Server 2016 features. I’ve got the recording of the webinar and the questions that were asked and the ones that went unanswered in the Q & A below. Additionally, I saw many requests during the webinar for the various scripts and code snippets that I used throughout the webinar, so I’ve included those as well along with some annotation that somewhat walks you through each particular demo.
NOTE: The Script that I mentioned to automated the nested cluster deployment will be published as a separate post in the coming weeks, so keep an eye out for that.
With that said, let’s start by taking another look at the webinar!
Revisit the Webinar
Q & A
Q. Will Node Fairness adhere to host placement rules?
A: Yes. If you have preferred owner rules in place in your cluster, node fairness will adhere to those rules when attempting to load balance a cluster.
Q: Is the startup delay for start order priorities configurable?
A: Yes. There is no need to stick with the default of 20 seconds if you don’t want to. Using the Set-ClusterGroupSet with the -StartupDelay parameter will allow you to configure the startup delay.
Q: Are all the mentioned features available on the free Hyper-V Server?
A: All features covered in the webinar are available on all editions of Hyper-V.
Q: I thought it was required that each nested Hyper-V host have 4GBs of memory?
A: I’m not aware of any such requirement. All the nested hosts in my demo had a static 2GBs of memory configured.
Q: Similar to Start Up Priorities, is there a feature to Power off VMs in a specific order?
A: Not in the same sense as Start-Up Priorities where one VM requires another VM be running to boot. What you can do is create a PowerShell script that calls the Stop-VM cmdlet to stop VMs one at a time in a specific order.
Q: Does Altaro VM Backup now support Windows Server 2016?
A: Yes! Windows Server 2016 support was added as part of our version 7 release.
Q: Is ReFS file level restore now supported in version 7 of Altaro VM Backup
A: While we don’t support doing file level restores of an ReFS volume, remember that ReFS was designed primarily with Storage Spaces Direct and Hyper-V in mind. The chances of you actually having to recover an individual file on an ReFS volume are remote. However, you could take advantage of some of the new ReFS features by hosting your Hyper-V VMs on an ReFS volume. Then, as long as the file system inside of the protected VM is NTFS, you can still do a file level restore with Altaro VM Backup even though that VM is hosted on an ReFS volume. The filesystem contained within the VM is the important one.
Scripts from the Webinar
NOTE – IMPORTANT: The below code blocks aren’t meant to be executed as scripts. They simply walk you through the steps (With commenting) and needed PowerShell Cmdlets for each feature mentioned in the webinar and are *NOT* intended for production use. They are simply intended to be informational.
Fixed VHDX Creation Demo
# Targeting Varibles $DomainName = "ANDOHV.mobile" $TargetHost = "ANDO-MB-HV1.andohv.mobile" $NTFSPath = "ANDO-MB-DC1VMS" $REFSPath = "ANDO-MB-DC1ReFS_VMs" # Credential Variables $DomainUser = "$DomainNameadministrator" $DomainPWord = ConvertTo-SecureString -String "Password01" -AsPlainText -Force $DomainCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $DomainUser, $DomainPWord # First let's make a new VHDX on NTFS Storage Invoke-Command -Computer $TargetHost -Credential $DomainCredential -ScriptBlock { param ($NTFSPath) Measure-Command {New-VHD -Path $NTFSPathNTFSDisk.VHDX -Fixed -SizeBytes 30GB} } -ArgumentList $NTFSPath # Now let's do the same thing with ReFS Storage Invoke-Command -Computer $TargetHost -Credential $DomainCredential -ScriptBlock { param ($REFSPath) Measure-Command {New-VHD -Path $REFSPathREFSDisk.VHDX -Fixed -SizeBytes 30GB} } -ArgumentList $REFSPath # Clean up for disks below Del $NTFSPathNTFSDisk.vhdx Del $REFSPathREFSDisk.vhdx
Start Order Priorities Demo
# Targeting Variables $TargetHost = "ANDO-MB-HV1" # Let's Remote into one of the Clustered Hyper-V Hosts Enter-PSSession -ComputerName $TargetHost # Now Let's Setup Some Cluster Groups New-ClusterGroupSet -Name "Databases" New-ClusterGroupSet -Name "WebServices" # Now Let's Assign VMs to these groups $MYSQLVM = "ANDO-MB-SQL1" $WEBVM = "ANDO-MB-WEB1" Add-ClusterGroupToSet -Name "Databases" -Group "$MYSQLVM" Add-ClusterGroupToSet -Name "WebServices" -Group "$WEBVM" # Now that Groups are created and VMs assigned, let's setup the dependency Add-ClusterGroupSetDependency -Name "Webservices" -Provider "Databases" # Now Let's take a look Get-ClusterGroupSet # Clean up the created Cluster Group Sets Remove-ClusterGroupSet -Name "WebServices" Remove-ClusterGroupSet -Name "DataBases" # Then we Exit the Remote Session Exit
PowerShell Direct Demo
# First let's get a list of virtual machines running on this host Get-VM # We're going to target ANDO-MB-PSD1. First let's verify the vNIC is disconnected $TargetVM = "ANDO-MB-PSD1" Start-VM $TargetVM Get-VMNetworkAdapter $TargetVM # Now we'll capture credentials, and run commands against the target VM with PS Direct. $LocalUser = "$TargetVMAdministrator" $LocalPWord = ConvertTo-SecureString -String "Password01" -AsPlainText -Force $LocalCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $LocalUser, $LocalPWord Invoke-Command -VMName $TargetVM -Credential $LocalCredential -ScriptBlock {Get-Volume} Invoke-Command -VMName $TargetVM -Credential $LocalCredential -ScriptBlock {Get-WindowsFeature -Name *FS-FileServer*} # We can also run an interactive PS Session over PS Direct as well. Enter-PSSession -VMName $TargetVM -Credential $LocalCredential Get-Process Get-Service Exit # Clean up Stop-VM $TargetVM
Nested Virtualization Configuration
# Targeting Variables $TargetVM = "ANDO-MB-HV1" # Checking the status of the virtualization extensions Get-VMProcessor -VMName $TargetVM | Select-Object * # Configuring the Virtualization Extensions Set-VMProcessor -VMName $TargetVM -ExposeVirtualizationExtensions $true
Wrap-Up
That wraps things up for this webinar!
As always, if you have any further follow-up questions feel free to use the comment form below and I’ll be sure to get back to you ASAP.
I hope these resources have been helpful!
Thanks for watching!
Not a DOJO Member yet?
Join thousands of other IT pros and receive a weekly roundup email with the latest content & updates!