Clustering FileServer Data Deduplication on Windows 2016 Step by Step #sofs #winserv #ReFS #WindowsServer2016 #Dedupe

Building a File server in Server 2016 isn’t that different tan in Server 2012R2 except there are different options, ReFS, DeDupe and a lot more options. As we start with the basic file server clustered and using ReFS and Data Duplication. This is a common scenario and can also be used in Azure.

Data Deduplication can effectively minimize the costs of a server application’s data consumption by reducing the amount of disk space consumed by redundant data. Before enabling deduplication, it is important that you understand the characteristics of your workload to ensure that you get the maximum performance out of your storage.

In this demo I have a two node cluster a quick create of the cluster. This is a demo for file services.

Create Sample Cluster :

#installing the File server and cluster features

Get-WindowsFeature Failover-Clustering
install-WindowsFeature "Failover-Clustering","RSAT-Clustering" -IncludeAllSubFeature
Restart-Computer –Computername Astack16n014,Astack16n015 –force
 
#Create cluster validation report
Test-Cluster -Node Astack16n014,Astack16n015
 
#Create cluster
New-Cluster -Name Astack16R5 -Node Astack16n014,Astack16n015 -NoStorage -StaticAddress "10.255.255.41"

 

image

Now that the Cluster is in place we can start with the basic of the file cluster, the disks need to be sharable so no local disks.

If you want to build a file server with local disk only then we should use storage spaces direct, I’ll use this in the next blog post.

We add a shared disk to the cluster. Enable the disk and format the disk.

imageimage

I format the disk with ReFS as this is the next file structure and has more options than NTFS.

The next iteration of ReFS provides support for large-scale storage deployments with diverse workloads, delivering reliability, resiliency, and scalability for your data. ReFS introduces the following improvements:
  • ReFS implements new storage tiers functionality, helping deliver faster performance and increased storage capacity. This new functionality enables:
    • Multiple resiliency types on the same virtual disk (using mirroring in the performance tier and parity in the capacity tier, for example).
    • Increased responsiveness to drifting working sets.
    • Support for SMR (Shingled Magnetic Recording) media.
  • The introduction of block cloning substantially improves the performance of VM operations, such as .vhdx checkpoint merge operations.
  • The new ReFS scan tool enables the recovery of leaked storage and helps salvage data from critical corruptions.

image

The disk is formatted and added to the cluster,showing as Available Storage.

image

Our next step would be Adding the File server role to the cluster.

image

image

The question here is is this a normal file server or do you want to build a sofs cluster. Currently SOFS is only supported for RDS UPD,Hyper-v,SQL. Comparing both SOFS and a file server.

SOFS = Active – Active File share

Fileserver = Active – Passive File share

We are sing the file server for general usage.

image 

Give your file server a name. Remember this is the netbios name and needs to be in the DNS!

imageimage

Default is a DHCP IP but I assume you will set this to fixed or make this static in the DHCP & DNS

image

Now that the file server and the disk is added to the cluster we can start the file Server and add some shares to this

add the file share.

image

image

When adding the file share we see this error “ client access point is not ready to be used for share creation”

This is a brand new File Server and already broken ? well no reading this error message it said we can’t access the netbios name

image

We we do properties on the file server you can see there is a DNS failure. It can’t add the server to the DNS or the registration is not correct.

Just make sure the name is in the DNS and a nslookup works.

image

When adding the file share you get a couple off options, and lets pick the SMB share Quick option

image

Get the file share location, this would be on the shared disk in the cluster. if there are no folders make the folder first.

imageimage

I Give the folder a name and put this to the right disk.

image

Here you can pick a couple of options and some are already tagged. I this case I only use access-based enumeration.

imageimage

The file server is ready. clients can connect. Access ACL must be set but this depends on the environment.

Our next step is enable Data Deduplication on this share. It is a new option in Server 2016. Want to know what is new in Windows Server 2016 https://docs.microsoft.com/en-us/windows-server/storage/whats-new-in-storage

Data Deduplication

Install Data Deduplication every node in the cluster must have the Data Deduplication server role installed.

To install Data Deduplication, run the following PowerShell command as an administrator:

Install-WindowsFeature -Name FS-Data-Deduplication

image

  • Recommended workloads that have been proven to have both datasets that benefit highly from deduplication and have resource consumption patterns that are compatible with Data Deduplication’s post-processing model. We recommend that you always enable Data Deduplication on these workloads:
    • General purpose file servers (GPFS) serving shares such as team shares, user home folders, work folders, and software development shares.
    • Virtualized desktop infrastructure (VDI) servers.
    • Virtualized backup applications, such as Microsoft Data Protection Manager (DPM).
  • Workloads that might benefit from deduplication, but aren’t always good candidates for deduplication. For example, the following workloads could work well with deduplication, but you should evaluate the benefits of deduplication first:
    • General purpose Hyper-V hosts
    • SQL servers
    • Line-of-business (LOB) servers
Before enabling the Data Deduplication we can first check and see if there any savings are by doing this.

Run this in a Command or powershell command where e:\data is or data location that we are using for the dedupe

C:\Windows\System32\DDPEval.exe e:\data

image

Even with a few files there is a saving.

get-volume -DriveLetter e

image

To enable the dedupe go to server manager , volumes and select the disk that need to be enabled.

image

Selecting the volume that needs Dedupe other volumes won’t be affected. It’s important to note that you can’t run data deduplication on boot or system volumes

imageimageimage

The setting of the # days can be changed in to something what suite you.

image

When enabling Deduplication, you need to set a schedule, and you can see above that you can set two different time periods, the weekdays and weekends and you can also enable background optimization to run during quieter periods, and for the rest it is all powershell there is no gui on this.

Get-Command -Module Deduplication will list all the powershell commands

image

Measure-DedupFileMetadata -Path e:\data

image

I places some of the same ISO files on the volume and as you can see there is a storage saving.

get get the data run an update on the dedupe status.

Update-DedupStatus -Volume e:

image

image

It is all easy to use and to maintain. If you have any cluster questions just go to https://social.technet.microsoft.com/Forums/windowsserver/en-US/home?forum=winserverClustering and I’m happy to help you there and also other community or microsoft guys are there.

 

Follow Me on Twitter @ClusterMVP

Follow My blog https://robertsmit.wordpress.com

Linkedin Profile Robert Smit MVP Linkedin profile

Google  : Robert Smit MVP profile

Bing  : Find me on Bing Robert Smit

LMGTFY : Find me on google Robert Smit

Windows Server 2016 Setting port priority Adjusting the Network #Protocol Bindings multiple networks #winserv

When building complex network configurations with Server 2016 you will need to adjust sometimes configuration settings that are not that easily to change in the GUI.

Suppose I have a big S2D cluster Or a NLB farm

In this configuration I have a Cluster that is using Storage spaces direct #S2D but On the SMB nic I don’t want to connect with RDP 

Or in the NLB farm I want to use a NLB nic that is used for RDP.

with the  Get-NetIPInterface we get a listing of the networks

image

Get-NetAdapter shows us the name and nic name

image

Our net step is list the current configuration and his settings for the Ports, in this case RDP

# list current settings
gwmi Win32_TSNetworkAdapterSetting -filter "TerminalName=’RDP-Tcp’" -namespace "root/cimv2/TerminalServices" | Select NetworkAdapterLanaID,NetworkAdapterName

image

ID 0 which is "All network adapters configured with this protocol"

More info about Win32_TSNetworkAdapterSetting can be found here :

https://msdn.microsoft.com/en-us/library/aa383811(v=vs.85).aspx

when we combine this in a variable to get some more info

#show netadapter bindings for RDS

$MVPRDP = gwmi Win32_TSNetworkAdapterSetting -filter "TerminalName=’RDP-Tcp’" -namespace "root/cimv2/TerminalServices"

$MVPRDP | select -expand DeviceIDList

image

As this is the network name it is not that handy use this with the get-netadapter
$MVPRDP | select -expand NetworkAdapterList

image

Now we know what to set on which adapter

# ID 0 which is "All network adapters configured with this protocol". 0,1,2,3

SO ID 0 is all and start counting with 1 as I want RDP only on my MGT lan I set this on Adapter 2

$MVPRDP.SetNetworkAdapterLanaID(2)

image

gwmi Win32_TSNetworkAdapterSetting -filter "TerminalName=’RDP-Tcp’" -namespace "root/cimv2/TerminalServices" | Select NetworkAdapterLanaID,NetworkAdapterName

image

now a little reboot and just to make sure there are no old connections and your done.

 
Or use a register key to set this option but what fun is that.

set HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Terminal Server\Winstations\RDP-tcp\LanAdapter
 

image

Follow Me on Twitter @ClusterMVP

Follow My blog https://robertsmit.wordpress.com

Linkedin Profile Http://nl.linkedin.com/in/robertsmit

Google Me : https://www.google.nl

Bing Me : http://tinyurl.com/j6ny39w

LMGTFY : http://lmgtfy.com/?q=robert+smit+mvp+blog

Building a Windows Server 2016 Domain Controller #winserv #Hybrid #cloud #Azure #powershell

Building a Domain Controller is not that Difficult but what about building this with Powershell and use the 2016 Bits.

Well lets take a peek at the Technet site https://technet.microsoft.com/en-us/library/hh974720(v=wps.630).aspx nothing about 2016.

-DomainMode<DomainMode>

Specifies the domain functional level of the first domain in the creation of a new forest. Supported values for this parameter can be either a valid integer or a corresponding enumerated string value. For example, to set the domain mode level to Windows Server 2008 R2, you can specify either a value of 4 or Win2008R2. So

The following are the supported values:
     — Windows Server 2003: 2 or Win2003
     — Windows Server 2008: 3 or Win2008
     — Windows Server 2008 R2: 4 or Win2008R2
     — Windows Server 2012: 5 or Win2012
     — Windows Server 2012 R2: 6 or Win2012R2

Well it makes sense that the Next line would be  — Windows Server 2016: 7 or Win2016

Le me try that in Azure.

First I deploy the windows feature Active Directory

Install-windowsfeature AD-domain-services -IncludeAllSubFeature –IncludeManagementTools

The next step would be Deploy Active Directory and at the end you will be asked for a recovery password.

Install-ADDSForest `
-CreateDnsDelegation:$false `
-DatabasePath "C:\Windows\NTDS" `
-DomainMode "7" `
-DomainName "mvpdemo01.local" `
-DomainNetbiosName "mvpdemo01" `
-ForestMode "7" `
-InstallDns:$true `
-LogPath "C:\Windows\NTDS" `
-NoRebootOnCompletion:$false `
-SysvolPath "C:\Windows\SYSVOL" `
-Force:$true

I did a Force:$true So a reboot is following so no time for a screenshot and wait for things.!

But After the reboot you will have a DC

image

and Joining a DC Member : Add-WindowsFeature AD-Domain-Services

Install-windowsfeature AD-domain-services -IncludeAllSubFeature –IncludeManagementTools

Add-WindowsFeature AD-Domain-Services `
-CreateDnsDelegation:$false `
-DatabasePath "C:\Windows\NTDS" `
-DomainMode "7" `
-DomainName "mvpdemo01.local" `
-DomainNetbiosName "mvpdemo01" `
-ForestMode "7" `
-InstallDns:$true `
-LogPath "C:\Windows\NTDS" `
-NoGlobalCatalog:$false `
-NoRebootOnCompletion:$false `
-SysvolPath "C:\Windows\SYSVOL" `
-Force:$true

 

Joining a Member server

I created a noob account that is only allowed to join a server to the domain

 

Write-Host "Hostname / Node Names" -ForegroundColor yellow
$domain = "mvpdemo01.local"
$password = "Password01" | ConvertTo-SecureString -asPlainText -Force
$username = "$domain\noob"
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
Add-Computer -DomainName $domain -Credential $credential
restart-computer -force

image

See how easy things can be.

 

 

Flickr Tags: Windows Server 2016,CloudOS

Follow Me on Twitter @ClusterMVP

Follow My blog https://robertsmit.wordpress.com

Linkedin Profile Http://nl.linkedin.com/in/robertsmit

Google Me : https://www.google.nl

Bing Me : http://tinyurl.com/j6ny39w

LMGTFY : http://lmgtfy.com/?q=robert+smit+mvp+blog

Upgrading Hyper-v Server 2012R2 to Server 2016 now what ? #hyperv #winserv #RollingOS

So you have done a rolling Upgrade – see Cluster operating system rolling upgrade To all your Hyper-V servers but other than a different logon screen you see no difference. Where are all the options ? Well you will need to do some extra steps. To get the full Hyper-v 2016 Server.

Illustration showing the three stages of a cluster OS rolling upgrade: all nodes Windows Server 2012 R2, mixed-OS mode, and all nodes Windows Server 2016

All the VM options are the Same Did I miss something or is there another configuration option as I created a new VM it has all the new options.

Do I need to recreate all the VM’s ?, where is the hidden option to change this ? a while a go I created a blog post on

Windows Server 2016 with Hyper-v Upgrading Configurations —Windows Server 2016 with Hyper-v Integrations tools & configuration versions

Well this was still on a TP version so the numbers has changed but not the methods. But there is no gui option in the Hyper-v Server that can flip the bit to the new Configuration version. It is done only by Powershell. with that Let us see how this is changed.

image image

Old VM settings vs the New VM Settings.

Do I need to recreate all the VM ? NO are you nuts. this would be odd. Lets dive in a little bit deeper.

In the Hyper-v Manager you can see the configuration and generation version in the 2012R2 this is version 5.0

image

In windows server 2016 the Hyper-v configuration version is now 8.0

image

With the get-VM we can see the Configuration version of the VM

Get-VM | ft Name, IntegrationServicesVersion,version 

image

as you can see I have a version 5.0 and a 8.0 just as in the screen shots above.

Now changing this is a ONEWAY thing and If you have an OLD none 2016 version in your Cluster then the VM would fail if it runs on this node. Version 8.0 runs only on Hyper-V 2016 !

To list all the Supported Configurations On this Server we can do a “ Get-VMHostSupportedVersion “

 

image

So there are Currently seven different versions. With all the options why should I care setting this.

Well there are a couple of reasons why you should set this option. Make the latest Hyper-V features available on your virtual machines by upgrading the configuration version. Don’t do this until:

  • You upgrade your Hyper-V hosts to the latest version of Windows or Windows Server.
  • You upgrade the cluster functional level.
  • You’re sure that you won’t need to move the virtual machine back to a Hyper-V host that runs a previous version of Windows or Windows Server.

And you you replicate from a Hyper-v 2016 Server to a Hyper-v 2012 Server for DR then make sure you don’t run in a higher version than 5.0

When you move or import a virtual machine to a computer that runs Hyper-V on Windows Server 2016 or Windows 10, the virtual machine’s configuration isn’t automatically updated. This means that you can move the virtual machine back to a Hyper-V host that runs a previous version of Windows or Windows Server. But, this also means that you can’t use some of the new virtual machine features until you manually update the configuration version. You can’t downgrade the virtual machine configuration version after you’ve upgraded it.

The virtual machine configuration version represents the compatibility of the virtual machine’s configuration, saved state, and snapshot files with the version of Hyper-V. When you update the configuration version, you change the file structure that is used to store the virtual machines configuration and the checkpoint files. You also update the configuration version to the latest version supported by that Hyper-V host. Upgraded virtual machines use a new configuration file format, which is designed to increase the efficiency of reading and writing virtual machine configuration data. The upgrade also reduces the potential for data corruption in the event of a storage failure

Building a VM based on Windows 2012R2 configuration You should use this PowerShell command as you could see the 8.0 Configuration is default.

New-VM -Name “DemoVM17” -Version 5.0

When listing the VM Configurations you can see the difference. and easily see the 5.0 Version VM’s  config.XML

Virtual machine configuration information that is stored in binary file format. File name extension: .vmcx

image

But what if I want to upgrade the VM’s ? yes you can but only to the default level and PowerShell Only

Update-VMVersion “VM Name”

image

as you can see the DemoVm06 is already at the max level but when updating the DemoVM01 which has Version 5.0 it will be upgraded to Version 8.0 and the Config file will be transferred this can’t be undone!

Virtual machine configuration information that is stored in binary file format. File name extension: .vmcx

you can automate this and do all upgrades in onetime or have a pick list to do this. But the VM needs to be OFF no running VM can be upgraded.

TO upgrade all VM’s   Update-VMVersion * -force

Or pick the VM by yourself with a before and after version.

#Select a VM to upgrade
$vm2016= (Get-VM | select Name, Status, version | Out-GridView -Title "Select VM for update the configuration version" -PassThru).Name
#list VM configuration Version
Get-VM $vm2016 | ft Name, IntegrationServicesVersion,version 
#Convert the Config TO the default Configuration
Update-VMVersion $vm2016 -Force -Verbose
#list VM configuration Version
Get-VM $vm2016 | ft Name, IntegrationServicesVersion,version 

image

 

 

Flickr Tags: Windows Server 2016,CloudOS

Follow Me on Twitter @ClusterMVP

Follow My blog https://robertsmit.wordpress.com

Linkedin Profile Http://nl.linkedin.com/in/robertsmit

Google Me : https://www.google.nl

Bing Me : http://tinyurl.com/j6ny39w

LMGTFY : http://lmgtfy.com/?q=robert+smit+mvp+blog

Windows Server 2016 NLB Network Load Balancing non-SDN or Software Load Balancing (SLB) for SDN #NLB #SLB #SDN

Windows Server 2016 Network Load Balancing. You can use Network Load Balancing to manage two or more servers as a single virtual cluster. Network Load Balancing enhances the availability and scalability of Internet server applications such as those used on web, FTP, firewall, proxy, virtual private network (VPN), and other mission-critical servers.

New in Windows Server 2016 is it includes a new Azure-inspired Software Load Balancer (SLB) as a component of the Software Defined Networking (SDN) infrastructure. Use SLB instead of NLB if you are using SDN, are using non-Windows workloads, need outbound network address translation (NAT), or need Layer 3 (L3) or non-TCP based load balancing. You can continue to use NLB with Windows Server 2016 for non-SDN deployments.

So We got now two Load Balancing features :

Network Load Balancing (NLB) for non-SDN

Software Load Balancing (SLB) for SDN

Software Defined Networking (SDN) provides a method to centrally configure and manage physical and virtual network devices such as routers, switches, and gateways in your datacenter. Virtual network elements such as Hyper-V Virtual Switch, Hyper-V Network Virtualization, and Windows Server Gateway are designed to be integral elements of your software defined networking infrastructure. While you can still use your existing physical switches, routers, and other hardware devices, you can achieve deeper integration between the virtual network and the physical network if these devices are designed for compatibility with software defined networking.

Network Load Balancing (NLB) for non-SDN

For this demo I created a NLB script that can be found here Create a Windows Server 2016 NLB Network Load Balancing farm https://gallery.technet.microsoft.com/Create-a-Windows-Server-05a13f14

I use a couple of Windows Server 2016 server for the Load Balancing each node has two network adapters and runs IIS with a default website

Network Load Balancing and other software components

 

Network Load Balancing is not nic teaming as nic teaming is on the same host and Network Load Balancing is combining all nodes to one VIP Virtual IP address.

First we install the NLB feature on each node.

Install-WindowsFeature NLB –IncludeManagementTools

To view a complete list of NLB CMDlets type the following CMDlet, Get-command -module NetworkLoadBalancingClusters

image

To Create a New NLB Cluster you can do this in the GUI or in Powershell

image

First I rename the Network Adapter to get a better overview

#Rename NIC
Rename-NetAdapter -Name "Ethernet" -NewName "NLB"

#Create NLB
New-NLBCluster –Interface “NLB” -OperationMode Unicast -ClusterPrimaryIP  -ClusterName WS2016NLB –verbose

Showing the NLB cluster info

Get-NLBClusterNode | Format-List *

image

then I removed all the default rules why would you NLB all the ports ?

#Removing default port rule for the NLB Cluster
Write-Host "Removing default port rule…" -ForegroundColor yellow
Get-NlbClusterPortRule -HostName . | Remove-NlbClusterPortRule -Force

#Adding port rules 80
Write-Host "Added port rule for http (tcp 80)" -ForegroundColor yellow
Add-NlbClusterPortRule -Protocol Tcp -Mode Multiple -Affinity Single -StartPort 80 -EndPort 80 -InterfaceName $InterfaceName -IP $ClusterPrimaryIP| Out-Null
#Adding port rules 443
Write-Host "Added port rule for https (tcp 443)" -ForegroundColor yellow
Add-NlbClusterPortRule -Protocol Tcp -Mode Multiple -Affinity Single -StartPort 443 -EndPort 443 -InterfaceName $InterfaceName -IP $ClusterPrimaryIP| Out-Null

Now that Port 80 and 443 are in the NLB we can add some nodes

As I added the -Affinity Single option keep in mind that your application support this option. Running websites parts from different servers is sometimes a pain for the developer.

The Affinity parameter is applicable only for the Multiple hosts filtering mode.

  • The None option specifies that multiple connections from the same client IP address can be handled by different cluster hosts (there is no client affinity). To allow Network Load Balancing to properly handle IP fragments, you should avoid using None when selecting UDP or Both for your protocol setting.
  • The Single option specifies that NLB should direct multiple requests from the same client IP address to the same cluster host. This is the default setting for affinity. You can optionally modify the NLB client affinity to direct all client requests from a TCP/IP Class C address range (instead of a single IP address) to a single cluster host by enabling the Network option instead of the Single option. This feature ensures that clients that use multiple proxy servers to access the cluster can have their TCP connections directed to the same cluster host.
  • The Network option specifies that NLB direct multiple requests from the same TCP/IP Class C address range to the same cluster host. Enabling Network affinity instead of Single affinity ensures that clients that use multiple proxy servers to access the cluster have their TCP connections directed to the same cluster host.
    The use of multiple proxy servers at the client’s site causes requests from a single client to appear to originate from different computers. Assuming that all of the client’s proxy servers are located within the same address range, Network affinity ensures that client sessions are properly handled. If you do not need this capability, use Single affinity to maximize scaled performance.

 

adding a second node is easy in Powershell or do this in the GUI add node and follow the steps.

$InterfaceName = “NLB”
$Node2Fqdn=”MVPNLB502.mvp.local”

Get-NlbCluster -HostName $env:COMPUTERNAME | Add-NlbClusterNode -NewNodeName $Node2Fqdn -NewNodeInterface $InterfaceName –Verbose

image

and as you can see if you don’t rename all the nic adapters it looks a bit messy. If you ever need to troubleshoot then it is easy to get NLB traffic and or other network traffic.

Now that the NLB cluster is ready we can use it for say a webserver. make sure the DNS Record is created in the DNS and If you are using multiple Cluster Virtual IP’s make sure they are also in the DNS. I always use an IP for the cluster and for the websites I use separate IP’s and all sites running on different IP’s / NLB VIP If I need to change some thing on the webserver it has no impact on all the other servers. I also Added a few more NLB nodes. that has already a configured website.

 

Now to get this to work with IIS

image

That is right page not found. Check the DNS see if the record is created. and make sure the website IIS is running on this IP

Go to the IIS manager and check the website bindings, default it is listening on all IP but this is not the behavior that I want I want a NLB. So we need to set the website on the NLB IP configured earlier.  When Having multiple IP on the NLB pick the right IP!

imageimageimage

Remember this you need to do this on all the Webservers!

image

For creating a NLB farm you can use my script that is posted in the TechNet gallery.

 Create a Windows Server 2016 NLB Network Load Balancing farm https://gallery.technet.microsoft.com/Create-a-Windows-Server-05a13f14

 

 

Flickr Tags: Windows Server 2016,CloudOS

Follow Me on Twitter @ClusterMVP

Follow My blog https://robertsmit.wordpress.com

Linkedin Profile Http://nl.linkedin.com/in/robertsmit

Google Me : https://www.google.nl

Bing Me : http://tinyurl.com/j6ny39w

LMGTFY : http://lmgtfy.com/?q=robert+smit+mvp+blog

Upgrading to Windows Server 2016 Failure or Success #Windows2016 #Server #CloudOS

How ever Windows Server 2016 is supporting Rolling Upgrades Upgrading to Windows Server 2016 but this is only for a Cluster.

For other Servers you can upgrade your server or better reinstall. Bet you all choose for the Clean install.

image

Installation is the basic concept of getting the new operating system on your hardware. Specifically, a clean installation requires deleting the previous operating system. For information about installing Windows Server 2016, see System Requirements and Installation Information for Windows Server 2016. For information about installing other versions of Windows Server, see Windows Server Installation and Upgrade.

https://technet.microsoft.com/en-us/windows-server-docs/get-started/supported-upgrade-paths

Well in this case I try a sample Domain controller. This has several roles and is migrated from 2008<>2012<>2012R2 and now to 2016 so is this the best option ? Well this DC has ADFS,CA,had Identity Management for UNIX. So a not so typical DC.

image

So I removed all unneeded components like ADFS and the Identity Management for UNIX was not available on my DC. ( did not make a screenshot )

no mater what I did I need to deinstall the components the following article was a help https://msdn.microsoft.com/en-us/library/cc731178(v=ws.11).aspx

Well not totally the message was still there reboot / showdown nothing. Was there anything stuck on this DC ?

Well this the DC is getting replaced the fastest way Clean install. I build a new DC with Windows Server 2016 installed the AD role on the server. Important is moving the FSMO roles.

After I did a Forest prep and Domain prep I joined the Server to the domain.

Finding the FSMO roles

netdom query fsmo

image

Moving the Roles can done in the old way but also in powershell

Move-ADDirectoryServerOperationMasterRole -Identity “Your-DC” -OperationMasterRole SchemaMaster,RIDMaster,InfrastructureMaster,DomainNamingMaster,PDCEmulator

After I moved the FSMO roles and rebooted and Updated both DC’s I thought lets find why the upgrade won’t work on the original Domain controller.

After I started the upgrade I was shocked that the Upgrade had no Issues anymore. Leasons learned In case of Upgrading the Domain controller and you have some Issues : create a new DC and Join move the FSMO roles reboot the DC’s and try again if you really need this DC. but a Clean OS install is much faster and better but you will need to install some apps again or tools. maybe this is a good time to automate this. 

image

Installing or removing Identity Management for UNIX by using a command line

https://blogs.technet.microsoft.com/activedirectoryua/2016/02/09/identity-management-for-unix-idmu-is-deprecated-in-windows-server/

Quick reference table of supported upgrade paths from older Windows Server retail editions to Windows Server 2016 retail editions:

If you are running these versions and editions: You can upgrade to these versions and editions:
Windows Server 2012 Standard Windows Server 2016 Standard or Datacenter
Windows Server 2012 Datacenter Windows Server 2016 Datacenter
Windows Server 2012 R2 Standard Windows Server 2016 Standard or Datacenter
Windows Server 2012 R2 Datacenter Windows Server 2016 Datacenter
Hyper-V Server 2012 R2 Hyper-V Server 2016 (using Cluster OS Rolling Upgrade feature)
Windows Server 2012 R2 Essentials Windows Server 2016 Essentials
Windows Storage Server 2012 Standard Windows Storage Server 2016 Standard
Windows Storage Server 2012 Workgroup Windows Storage Server 2016 Workgroup
Windows Storage Server 2012 R2 Standard Windows Storage Server 2016 Standard
Windows Storage Server 2012 R2 Workgroup Windows Storage Server 2016 Workgroup

 

License conversion

You can convert Windows Server 2016 Standard (retail) to Windows Server 2016 Datacenter (retail).

You can convert Windows Server 2016 Essentials (retail) to Windows Server 2016 Standard (retail).

You can convert the evaluation version of Windows Server 2016 Standard to either Windows Server 2016 Standard (retail) or Datacenter (retail).

You can convert the evaluation version of Windows Server 2016 Datacenter to Windows Server 2016 Datacenter (retail).

 

Upgrading to Windows Server 2012 R2

For details, including important caveats and limitations on upgrade, license conversion between editions of Windows Server 2012 R2, and conversion of evaluation editions to retail, see Upgrade Options for Windows Server 2012 R2.

Quick reference table of supported upgrade paths from older Windows Server retail editions to Windows Server 2012 R2 retail editions:

If you are running: You can upgrade to these editions:
Windows Server 2008 R2 Datacenter with SP1 Windows Server 2012 R2 Datacenter
Windows Server 2008 R2 Enterprise with SP1 Windows Server 2012 R2 Standard or Windows Server 2012 R2 Datacenter
Windows Server 2008 R2 Standard with SP1 Windows Server 2012 R2 Standard or Windows Server 2012 R2 Datacenter
Windows Web Server 2008 R2 with SP1 Windows Server 2012 R2 Standard
Windows Server 2012 Datacenter Windows Server 2012 R2 Datacenter
Windows Server 2012 Standard Windows Server 2012 R2 Standard or Windows Server 2012 R2 Datacenter
Hyper-V Server 2012 Hyper-V Server 2012 R2

License conversion

You can convert Windows Server 2012 Standard (retail) to Windows Server 2012 Datacenter (retail).

You can convert Windows Server 2012 Essentials (retail) to Windows Server 2012 Standard (retail).

You can convert the evaluation version of Windows Server 2012 Standard to either Windows Server 2012 Standard (retail) or Datacenter (retail).

Use Full Links :

Upgrade and conversion options for Windows Server 2016 https://technet.microsoft.com/en-us/windows-server-docs/get-started/supported-upgrade-paths

Release Notes: Important Issues in Windows Server 2016 https://technet.microsoft.com/en-us/windows-server-docs/get-started/windows-server-2016-ga-release-notes

What’s New in Windows Server 2016 https://technet.microsoft.com/en-us/windows-server-docs/get-started/what-s-new-in-windows-server-2016-technical-preview-5

Server role upgrade and migration matrix for Windows Server 2016 https://technet.microsoft.com/en-us/windows-server-docs/get-started/server-role-upgradeability-table?f=255&MSPPError=-2147217396

Cluster operating system rolling upgrade https://technet.microsoft.com/windows-server-docs/failover-clustering/cluster-operating-system-rolling-upgrade

 

 

Follow Me on Twitter @ClusterMVP

Follow My blog https://robertsmit.wordpress.com

Linkedin Profile Http://nl.linkedin.com/in/robertsmit

Google Me : https://www.google.nl

Bing Me : http://tinyurl.com/j6ny39w

LMGTFY : http://lmgtfy.com/?q=robert+smit+mvp+blog

How To use Windows Server 2016 Hyper-V VMGroups #winserv #Cloud #Hyperv #Windowsserver2016

Suppose you have some Hyper-v Machine’s and running Azure Stack and the VM’s have all follow up codes and there are say 1000 DC and 2000 File servers etc this is a hard time to manage. So there for in Windows Server 2016 you can work with VMGroups. So you don’t have to list all 11151 VM’s on the Hyper-v server to manage a VM you can create groups and manage the Group.  multiple changes in one simple action.

All these options are PowerShell only there is no GUI or indication that there is a configuration active So be careful when you are starting with this.

New-VMGroup

Just a Quick selection how many VM’s are on this host.

New-VMGroup

VMGroups how does this work and how can I use it.

First check what commands we have Add-Get-New-Remove

Get-Command *vmgroup* to get a listing on the Group commands

New-VMGroup

VM groups comes in two types

  • VM collections: which is a logical collection of VMs on which you can take some actions at the level group.
  • Management collection: is a logical collection of VM collection groups and or mixed groups

VM Groups can be used when doing the same task to multiple VM’s say backing up Shared VHDX or setting up Replication or start stop VM’s . Its also provide easy management of multiple VMs when using VM Collection Groups.

First we need to create a new group

In this sample I’m using several groups as I have a lot off VM’s running on this Hyper-V server they are divided in several groups.

as the –Verbose will show you some text on what the command did.

# Create new VM Group
New-VMGroup -Name AstackDC -GroupType VMCollectionType –Verbose

New-VMGroup

Now that the Group is created we can add members to the group. as Currently there are no members in any group

Get-VMGroup |SELECT NAME,VMMEMBERS

New-VMGroup

As I have a lot off VM’s with all follow up numbers if need to combine them and not picking them by hand.

First my first 20 Machines are all tenant Domain controllers I create a VM group to combine all these DC’s

$AstackDCten=1..10 | % { Get-VM -Name azurestvm0$_}

New-VMGroup

#Add VMs to the VM Collection Groups

$AstackDCten=1..10 | % { Get-VM -Name azurestvm0$_}
Add-VMGroupMember -VMGroup (Get-VMGroup AstackDCten) -VM $AstackDCten
Get-VMGroup AstackDCten

New-VMGroup

Suppose you want to do maintenance on the DC’s you could create a A and B group and during patching you reboot A first and then B.  It is all possible.

#View the membership of the groups
Get-VM | ft Name, Groups -AutoSize

image

Get-VMGroup AstackDC

As you can see there are now multiple ways to show the VM’s  Say you have a test lab or during maintenance you want to stop some VM’s

#Perform actions on the group as if it were a VM
Stop-VM -VM (Get-VMGroup AstackDC).VMMembers
Start-VM -VM (Get-VMGroup AstackDC).VMMembers

Or you can setup a VM replication

Enable-VMReplication -VM (Get-VMGroup AstackDC).VMMembers –ReplicaServerName SOFS08 -ReplicaServerPort 50001 -AuthenticationType Kerberos -CompressionEnabled 1 -ReplicationFrequencySec 30 -AutoResynchronizeEnabled 1  –recoveryhistory 4 –vsssnapshotfrequency 4

Or check the memory and upgrade all VM’s in a group Plenty of options there.

 

#Create combined VM Management Group with AstackDC and AstackDCten

New-VMGroup -Name MgmtDCGroup -GroupType ManagementCollectionType

image
Add-VMGroupMember -VMGroup (Get-VMGroup MgmtDCGroup) -VMGroupMember (Get-VMGroup AstackDC)
Add-VMGroupMember -VMGroup (Get-VMGroup MgmtDCGroup) -VMGroupMember (Get-VMGroup AstackDCten)

Get-VMGroup -Name MgmtDCGroup

image

#Create VM Management Group with MgmtDCGroup and AVMDCWAPGroup to show nesting

New-VMGroup -Name MgmtDCFullGroup -GroupType ManagementCollectionType

Add-VMGroupMember -VMGroup (Get-VMGroup MgmtDCFullGroup ) -VMGroupMember (Get-VMGroup MgmtDCGroup )
Add-VMGroupMember -VMGroup (Get-VMGroup MgmtDCFullGroup ) -VMGroupMember (Get-VMGroup AVMDCWAPGroup )
Get-VMGroup MgmtDCFullGroup | Select-Object -ExpandProperty VMGroupMembers

image

As you can see with a view VM’s this is not that complicated but with a large amount of VM’s this can rapidly grow to a uncontrolled situation. As this must be done from PowerShell use the ISE if you do something wrong you can easily delete the groups and add them again and think about the group names and members before you start

VM Collection Groups are fairly simple. They maintain a membership of virtual machines, those VM groups contain actual VMs.

Management Collection Groups

The Management Collection Groups, on the other hand maintain a membership of VM Collection Groups. Please note that VMs cannot directly belong to the membership of a management collection.

The group name for VM and Management collection groups might be confusing a little bit, in order to differentiate between both groups, we can refer to the collection group using the first name “VM” (membership of individual virtual machines), and “Management” “MGMT” (membership of VM groups).

 

image

VMGROUP Removal

If you want to delete the management collection group, you need to remove first the VM groups from the management collection and then delete the management group.

image

The following PowerShell script will allow you to do so:
# Remove VM Group Members from Management Collection
Remove-VMGroupMember -VMGroup (Get-VMGroup MgmtDCGroup) -VMGroupMember (Get-VMGroup AstackDCten) –Verbose

Remove-VMGroupMember -VMGroup (Get-VMGroup MgmtDCGroup) -VMGroupMember (Get-VMGroup AstackDC) -Verbose

image

remove-VMGroup -Name MgmtDCGroup –Verbose

So always remove the nested Groups first there is no Force option that deletes the whole Tree at once.

image

When there are no nested groups or VM’s in the group you can delete the Group.

image

VM management is getting more complicated as the VM’s are growing and central management is great and now with the VMgroups you can easy manage a large amount of VM single handed.

 

 

Follow Me on Twitter @ClusterMVP

Follow My blog https://robertsmit.wordpress.com

Linkedin Profile Http://nl.linkedin.com/in/robertsmit

Google Me : https://www.google.nl

Bing Me : http://tinyurl.com/j6ny39w

LMGTFY : http://lmgtfy.com/?q=robert+smit+mvp+blog

Deploying Storage Spaces Direct with VMM 2016 or with Powershell #Cloud #hyperconverged #SysCtr #S2D

Windows Server 2016 comes with al lot of new options and Hyper-converged is one of the new options. In this blog post I’ll show you what options you have when using VMM and S2D. The tools are great but so is PowerShell and it always depends on what and how you are building things.

Storage Spaces Direct is a bit like building a Do It Your Self San multiple heads lots of Storage can lose one Head , low costs.

Storage Spaces Direct seamlessly integrates with the Hyper-V / Files Servers you know today. The Windows Server 2016 software defined storage stack, including Clustered Shared Volume File System (CSVFS), Storage Spaces and Failover Clustering.

The hyper-converged deployment scenario has the Hyper-V servers and Storage Spaces Direct components on the same cluster. Virtual machine’s files are stored on local CSVs. This allows for scaling Hyper-V clusters together with the storage it is using. Once Storage Spaces Direct is configured (Enable-ClusterS2D) and the CSV volumes are available, configuring and provisioning Hyper-V is the same process and uses the same tools that you would use with any other Hyper-V deployment on a failover cluster. but now with System Center Virtual Machine Manager 2016 we can also configure this during the deployment.

Hyper-Converged Stack

Above are the layers shown, as you can see the Storage is defined in 3 parts physical disks, spaces and the CSV volumes.

So basically we can configure the cluster with Storage Spaces Direct by hand (PowerShell) or if you are using VMM you can do this by using templates and the GUI. but is this the same and is this handy ? The only change I did in this post is create a Scale out file server to use the Storage Spaces Direct volumes.

Well it is nice that you can do this but when configuring this by hand it gives you much more flexibility and configuration and yes maybe more complex but understanding the method is better than following a wizard.

Let see the options we have in VMM there are a couple of ways to configure this it all depends.

imageimage

Create a Hyper-V cluster and tap the enable Storage Spaces Direct option.

 

image

Or Create a Scale Out file server and check what you want shared Storage or enable Storage Spaces Direct option.

But you can also Create the cluster in VMM and configure later the Storage Spaces Direct. The fact is that VMM 2016 can create and maintain the Storage layer. all from a single interface.

So for this demo I use 4 Servers Sofs02,Sofs04,Sofs06,Sofs08 each server has 8 local Disks

 

image

These 4 servers will be transformed to a Storage Space Direct Cluster

first let me check of all the disks on the server.

Get-PhysicalDisk | ? CanPool -EQ 1 | FT FriendlyName, BusType, MediaType, Size

image

Storage Spaces Direct uses BusType and MediaType to automatically configure caching, storage pool and storage tiering. In Hyper-V virtual machines, the media type is reported as unspecified. So if you are using tools that are expecting certain types of disk you need to fix this.

else when running the cluster validation the cluster creation will fail.

Found a disk with unsupported media type on node ‘Sofs02.mvp.local’. Supported media types are SSD and HDD.

image

Step one is creating a Hyper-v cluster.

 

imageimage

As my servers are in the Storage VMM host group I’ll pick this group. Give the cluster a name and Check the Storage Spaces Direct check box.

So typical when creating this by hand you would do this in PowerShell

install-WindowsFeature "Failover-Clustering","RSAT-Clustering" -IncludeAllSubFeature –ComputerName “sofs02”,”sofs04”,”sofs06”,”sofs08”

Test-Cluster -Node “sofs02”,”sofs04”,”sofs06”,”sofs08”

New-Cluster –Name Democlu201 -Node “sofs02”,”sofs04”,”sofs06”,”sofs08”  -NoStorage -StaticAddress "10.255.255.110"

Enable-ClusterS2D -CacheMode Disabled -AutoConfig:0 –SkipEligibilityChecks  ( as you are running VHDX disks )

The big difference here is you can’t customize this cluster during this step so no Quorum or any other settings.

image

Selecting all the nodes

image

Giving the Cluster a Fix IP or pick one random from the IP pool

image

All the tasks are running an in a few minutes we have a Cluster that holds a Storage Space Direct unless it Fails the cluster validation test.

If you are using the S2D you must run the Cluster validation test and remember only SSD and HDD media type Disks are supported. So if the media type is unspecified or unknown the Validation report will fail and so is this job.

image

In our case the job went successful and the cluster with Storage Space Direct is ready for usage.

image

Now that the cluster is ready you can use the Storage after creating the pool.

And if you already have build a hyper-converged  Cluster Hyper-V servers and Storage Spaces Direct components then you can us this also in VMM.

image

Now that the Cluster is added we can create a Pool.

In case you build the Storage Spaces Direct with Powershell you end up with something like this :

#Create storage pool 
New-StoragePool  -StorageSubSystemName Pool01.mvp.local –FriendlyName Pool01 -WriteCacheSizeDefault 0 -FaultDomainAwarenessDefault StorageScaleUnit -ProvisioningTypeDefault Fixed -ResiliencySettingNameDefault Mirror -PhysicalDisk (Get-StorageSubSystem  -Name Pool01.mvp.local| Get-PhysicalDisk)

#list Storage pool

Get-StoragePool Pool01

#removal of the Storagepool 
Remove-StoragePool –Name Pool01.mvp.local

But when using the VMM Gui tool you will not get the friendly name as when you do this in Powershell

image

image

But this is easy changable

TO check if the Cluster Storage Spaces Direct is enabled you can run a PowerShell command

(Get-Cluster).S2DEnabled

Or check your Cluster under Storage en Enclosures Every server is listed as his own enclosure.

image

Now that the Enclosures are listed We create the pools and the disks

image

We select the Clustered Pool and do manage to create the Virtual disk

image

image

We create a New Pool and if you not created a Classification you will need to do this to.

Give this a name and Pick the disk that you want I select all the Disk and use them for one big Pool.

image

Now that we have selected all the disk and created the pool we can create a Virtual disk on the Pool

image

Creating the disk can be a little confusing in the VMM GUI as you need to press Cancel and OK.

imageimage

Give the disk a name

imageimage

Pick the right Size as my pool s 168GB and I can only do a Mirror you understand I can’t create a 160Gb disk, I have 4 nodes press ca

 

How can this guide help you? You can use this guide and the Software-Defined Storage Design Calculator spreadsheet to design a storage solution that uses the Storage Spaces and Scale-Out File Server functionality of Windows Server 2012 R2 along with cost-effective servers and shared serial-attached SCSI (SAS) storage enclosures.

#Create virtual disks
New-Volume –StoragePoolFriendlyName Pool01 -FriendlyName CSV02 -PhysicalDiskRedundancy 1 -FileSystem CSVFS_REFS –Size 48GB

As you can see I created a Scale out file server and used the Storage Spaces Direct as storage.

image

#create Cluster
New-StorageFileServer –StorageSubSystemName DemoClu201.mvp.local –FriendlyName Demosofs201 -HostName Demosofs201.mvp.local -Protocols SMB

#Create file shares and Folders 
md C:\ClusterStorage\Volume1\shares\VM01

New-SmbShare –Name VM01 -Path C:\ClusterStorage\Volume1\shares\VM01 -FullAccess "mvp\Domain Admins"

image

Now that the File share and SOFS is in place we can add the share to the hyper-v server or cluster for usage.

image

When creating a VM we can use the Storage Spaces Direct to place a VM but as you can see in this post there are several methods to do things and each option has a different choice the right one well it is all on you and it depends. see this table below with the pros and cons.

Storage Spaces deployment tools

Tool

Advantages

Disadvantages

Failover Cluster Manager & Server Manager

  • Easy to use

  • Slow automatic refreshes in Server Manager when working with storage

  • Some tasks require Windows PowerShell

  • No automation can make provisioning more than a couple virtual disks and file shares tedious

System Center Virtual Machine Manager

  • Easy to use

  • Partial automation of cluster deployment

  • Automated management of file share permissions

  • Can be used to deploy and manage VMs

  • Some tasks require Windows PowerShell (including storage tiers)

  • Requires System Center licenses

  • Might require additional infrastructure if you don’t already have System Center or are deploying at a scale that’s greater than your existing deployment can handle

Microsoft Deployment Toolkit

  • Lots of control over operating system installation options

  • Can be used to deploy other PCs and servers

  • Can be complex

  • Some approaches require System Center Configuration Manager licenses

Windows PowerShell

  • Complete control over all aspects of storage

  • Can automate by writing scripts

  • Requires knowledge of Windows PowerShell

  • Scripts require development and testing

After writing this post I can see If you should do this then I would use PowerShell to build the cluster and Storage Spaces direct and add them to VMM but for deploying the basics VMM could be very handy but it all depends on your infra structure.

The VMM option is really great but for me it takes to long to do stuff and often the job fails because I made a typo or the naming is not the way I want it. And the usage of the Storage Spaces Well the Hyper-Converged option vs the Converged option it has it challenges and it all depends on the hardware you have. but for my testlab or in Azure S2D runs great.

Follow Me on Twitter @ClusterMVP

Follow My blog https://robertsmit.wordpress.com

Linkedin Profile Http://nl.linkedin.com/in/robertsmit

Google Me : https://www.google.nl

Bing Me : http://tinyurl.com/j6ny39w

LMGTFY : http://lmgtfy.com/?q=robert+smit+mvp+blog

System Center 2016 VMM Place template VM in Custom OU #sysctr #Cloud #Deploy #VM

when using VMM and deploying templates you not always want to place them in the default OU computers

image

But instead you want the Template Server 2016 places in OU TP5 and Hyper-V server directly placed in the OU Hyper-v.

Default there is no Gui item in the VMM console to do this. Say on the domain join tab place this VM in the Hyper-V OU

 image

Instead of this you need to fill in the Value in Powershell. and Make a custom OU field.

image

You can Add Custom Properties as you like.

But first we are creating a Custom Guest OS profile this profile is the basis for the new build template and the Custom OU Placement.

image

Now that the Custom OS profile is in place we can check it there is a domain OU field

Get-SCGuestOSProfile

image

this shows us the field that we must fill in to get the right OU placement.

Get-SCGuestOSProfile |select Name

image

Get-SCGuestOSProfile -name "Guest OS 2016TP5"

Setting this in the OS profile

Get-SCGuestOSProfile -name "Guest OS 2016TP5" |Set-SCGuestOSProfile -DomainJoinOrganizationalUnit "OU=SCVMM16,DC=MVP,DC=local"

image

Now when I create a new template with this OS profile the VM is place in the SCVMM16 OU but it is not anywhere visible in the GUI.

and what if I have already build templates how to place them in Custom OU.

Yes you can do this. First I select all the templates to pick the right one

Get-SCVMTemplate |select name

image

 

$template = Get-SCVMTemplate | where {$_.Name -eq "ws2016G2"}
$template |select name

image

As I made the OU a variable :

$ou = "OU=SCVMM16,DC=MVP,DC=local"

Set-SCVMTemplate -VMTemplate $template -DomainJoinOrganizationalUnit $ou

 

image

So now the Template has a custom OU also.

But still there is no GUI property to show this. therefore go to the Template and create a Custom Property

image

go to the Manage custom Properties

image

Select Virtual Machine Template Properties give it a name “ custom OU “ and assign this to the template

image

Now that tis is assigned we can enable this in the GUI

imageimage

But before we get any value in this field we need match this with the PowerShell Value DomainJoinOrganizationalUnit

 

Get-SCVMTemplate | %{ Set-SCCustomPropertyValue -InputObject $_ -CustomProperty $(Get-SCCustomProperty -Name "Custom OU") -Value $_.DomainJoinOrganizationalUnit }

 

image

As you can see there is an error this is because one template has no value.

image image

 

Now With new deployments the VM’s will be places in the Custom OU

image

 

 

Follow Me on Twitter @ClusterMVP

Follow My blog https://robertsmit.wordpress.com

Linkedin Profile Http://nl.linkedin.com/in/robertsmit

Google Me : https://www.google.nl

Bing Me : http://tinyurl.com/j6ny39w

LMGTFY : http://lmgtfy.com/?q=robert+smit+mvp+blog

System Center 2016 VMM Current Updates installation | Cumulative Update 1 & 2

When testing with Windows Server 2016 and system Center 2016 you need to install the CU1 and CU2 update to get the best results. there are several fixes in these updates.

 

 

 

Issue 1: As a Delegated Administrator (DA), when you try to configure the load balancer on the Network Controller Service, the service crashes with a NULL pointer exception.

Issue 2: When you try to configure VPN connections that are running on a Network Controller-managed gateway, VMM does not display the VPNServerAddress object on the VMM Console.

Issue 6: Creating Shielded VMs on Guarded Hosts on an untrusted network or on a perimeter network fails.

To get more info on all the fixes and solutions and read the KB you may need to change something in the Database! So no hit and run on the System Center  cumulative Updates. 

image

As you can see only 86 days left on this evaluation.

image

After the updates make sure the Hyper-v servers have the latest Agent version!

 

How to obtain and install CU1 for System Center 2016 VMM Technical Preview 5

Download information

Update packages for VMM are available by manual download.

Manual download of the update packages

Go to the following websites to manually download the update packages from the Microsoft Download Center:

Installation instructions
 
How to obtain and install Cumulative Update 2 for System Center 2016 Virtual Machine Manager Technical Preview 5
 
Download information
Update packages for Virtual Machine Manager are available by manual download.
Manual download of the update packages
Go to the following websites to manually download the update packages from the Microsoft Download Center:

DownloadDownload the Server update package now.

Add your Azure Subscription v1 only to System Center Virtual Machine manager 2016 #SCVMM #Azure #MSCloud

When you are testing Virtual Machine Manager (VMM) in System Center 2016 and you want to connect your Azure Subscription connected you need a Certificate and publish this is the admin portal. But as you thought he cool I can access all my resource groups VM’s and my old VM’s eh no VMM 2016 Preview can only manage  the old VM’s.

To do this go to the VMM Console and Add Subscription

image

Easy as it is fill in the blanks

The Display name is the name you want and has no pointer to Azure

the Subscription ID is directly linked to Azure this is where your VM’s are

image

The Certificate we need to make this by hand.

First the Subscription ID go to the Azure.com portal and in the Subscriptions there is the ID.

image

image

Next we need a Certificate for a selfsigned certificate we can use Makecert but what fun is that .

Makecert.exe

https://robertsmit.wordpress.com/2015/05/01/manage-azure-with-system-center-2012-r2-virtual-machine-manager-scvmm-2012-r2-ur6/

 

Create a new self-signed certificate

You can use any tool available to create a self-signed certificate as long as they adhere to these settings:

  • An X.509 certificate.
  • Contains a private key.
  • Created for key exchange (.pfx file).
  • Subject name must match the domain used to access the cloud service. > You cannot acquire an SSL certificate for the cloudapp.net (or for any Azure related) domain; the certificate’s subject name must match the custom domain name used to access your application. For example, contoso.net, not contoso.cloudapp.net.
  • Minimum of 2048-bit encryption.
  • Service Certificate Only: Client-side certificate must reside in the Personal certificate store.

There are two easy ways to create a certificate on Windows, with the makecert.exe utility, or IIS.

Makecert.exe

This utility has been deprecated and is no longer documented here. Please see this MSDN article for more information.

Create a Certificate with Powershell

there is a new command in powershell : New-SelfSignedCertificate

this is how we create a certificate quick and easy and I also exported the Certificate

#Create new Certificate
$cert = New-SelfSignedCertificate -Subject AzureVMM01 -FriendlyName AzureVMM01 -Type Custom -CertStoreLocation "Cert:\currentuser\My" -KeyExportPolicy ExportableEncrypted -KeyLength 2048 -KeySpec KeyExchange

#set password for PFX
$password = ConvertTo-SecureString -String "P@ssw0rd" -Force -AsPlainText

#Export Certificate
Export-PfxCertificate -Cert $cert -FilePath "c:\cert\scvmm16azure.pfx" -Password $password

# to use this certificate in the Azure management portal export it to a .cer file
Export-Certificate -Type CERT -Cert $cert -FilePath "c:\cert\scvmm16azure.cer"

 

image

Now that the Certificate is exported I can upload this in the Old Azure V1 portal

image

Go to Settings and Management Certificates at the bottom there is a upload link.

image

Select the fresh created Certificate with the right subscription ( must be the same as the ID picked earlier )

image

Now that the Azure Certificate is in place I check browse and see the local certificate also.

image

After these steps we see the subscription in the console

image

here you can manage the VM’s with out the Azure v1 Portal.

As the the Resource Group option is still unavailable you can Vote for this in the user https://systemcentervmm.uservoice.com

Add Azure Resource Manager Stack based Azure VMs to the subscription view

 

Follow Me on Twitter @ClusterMVP

Follow My blog https://robertsmit.wordpress.com

Linkedin Profile Http://nl.linkedin.com/in/robertsmit

Google Me : https://www.google.nl

Bing Me : http://tinyurl.com/j6ny39w

LMGTFY : http://lmgtfy.com/?q=robert+smit+mvp+blog

Windows Server 2016 with Hyper-v Integrations tools & configuration versions

Hyper-v vm’s are depending on the integration tools. And often the tools are not updated or in line with the Hyper-v Server. Or there are unsupported versions of VM’s So even if you think you are mastering Hyper-v with just tagging the checkbox or running a Powershell command.

Install-WindowsFeature –Name Hyper-V -ComputerName <computer_name> -IncludeManagementTools –Restart

Well let me tell you that is where the Fun starts.

Take a look at the integration Versions you can easily see this in VMM but you can also see this quickly in PowerShell. and I’m not talking about the VMM Agent.

image

So is this windows only ? no as Microsoft is loving Linux there is also a Pack for Linux. With his own guidance 

Hyper-V Linux Integration Services (LIS)

Hyper-V Linux Integration Services, sometimes referred to simply as Hyper-V LIS, provides two types of components: drivers and services. The drivers play an important role in enhancing the performance of Linux virtual machines, and services are designed to perform a specific job.

Linux Integration Services Version 4.0 for Hyper-V

Current version: 4.0.11 Please refer to the Linux Virtual Machines on Hyper-V topics for up to date information on the LIS feature set, all supported Linux distributions, availability and download locations.

Download the ISO

Back to the Windows Versions as the Integration services differ there is also an option on  virtual machine configuration versions that are supported on a host. is this different than the IS yes as you can migrate a VM to and from a Hyper-v 2012R2 to a Hyper-v 2016 and back so the VM needs to know that.

Let us check the Integration Services Version (IS)

Get-VM | ft Name, IntegrationServicesVersion  – On a Hyper-v 2012R2

image

Get-VM | ft Name, IntegrationServicesVersion  – On a Hyper-v 2016

image

image VMM output

As you can see there is clearly a difference between Windows Server 2012R2 and 2016.

PowerShell Hyper-V Supported Version

But what about the Tag in the Hyper-v Console there is also a Version.

image

This is a Windows Server 2016 and as you can see two different versions is this Wrong ? No it isn’t.

Get-VMHostSupportedVersion will list the output below ( works only in Windows Server 2016 )

image

So there are Currently six different versions. With all the options why should I care setting this.

Well there are a couple of reasons why you should set this option. Make the latest Hyper-V features available on your virtual machines by upgrading the configuration version. Don’t do this until:

  • You upgrade your Hyper-V hosts to the latest version of Windows or Windows Server.
  • You upgrade the cluster functional level.
  • You’re sure that you won’t need to move the virtual machine back to a Hyper-V host that runs a previous version of Windows or Windows Server.

And you you replicate from a Hyper-v 2016 Server to a Hyper-v 2012 Server for DR then make sure you don’t run in a higher version than 5.0

When you move or import a virtual machine to a computer that runs Hyper-V on Windows Server 2016 or Windows 10, the virtual machine’s configuration isn’t automatically updated. This means that you can move the virtual machine back to a Hyper-V host that runs a previous version of Windows or Windows Server. But, this also means that you can’t use some of the new virtual machine features until you manually update the configuration version. You can’t downgrade the virtual machine configuration version after you’ve upgraded it.

The virtual machine configuration version represents the compatibility of the virtual machine’s configuration, saved state, and snapshot files with the version of Hyper-V. When you update the configuration version, you change the file structure that is used to store the virtual machines configuration and the checkpoint files. You also update the configuration version to the latest version supported by that Hyper-V host. Upgraded virtual machines use a new configuration file format, which is designed to increase the efficiency of reading and writing virtual machine configuration data. The upgrade also reduces the potential for data corruption in the event of a storage failure

image

So Creating a VM in Hyper-v 2016 Server it will always have version 7.1 when you create this in the GUI

But When using Powershell you can set the Version tag only then is the VM compatible with Hyper-v Server 2012

New-VM -Name “DemoVM17” -Version 5.0

When listing the VM Configurations you can see the difference. and easily see the 5.0 Version VM’s  config.XML

Virtual machine configuration information that is stored in binary file format. File name extension: .vmcx

image

But what if I want to upgrade the VM’s ? yes you can but only to the default level and PowerShell Only

Update-VMVersion “VM Name”

image

as you can see the DemoVm06 is already at the max level but when updating the DemoVM01 which has Version 5.0 it will be upgraded to Version 7.1 and the Config file will be transferred this can’t be undone!

Virtual machine configuration information that is stored in binary file format. File name extension: .vmcx

image

More about this https://technet.microsoft.com/en-us/library/mt695898.aspx

HAppY Vm

Follow Me on Twitter @ClusterMVP

Follow My blog https://robertsmit.wordpress.com

Linkedin Profile Http://nl.linkedin.com/in/robertsmit

Google Me : https://www.google.nl

Bing Me : http://tinyurl.com/j6ny39w

Save the date! System Center Summer Night 2016 – donderdag 23 juni 2016

Save the date! System Center Summer Night 2016 – donderdag 23 juni 2016

SCUG.6001_summer_night_bbq_V01

Het is alweer enige tijd geleden dat we als User Group een evenement hebben georganiseerd. Gelukkig komt daar binnenkort een einde aan. Dit jaar organiseren we namelijk weer de System Center Summer Night en wel op donderdag 23 juni 2016! Naast een mooie agenda hebben we dit jaar ook een aantal verrassende sprekers bereid gevonden om te komen spreken. Het is een gevarieerd programma over actuele onderwerpen als cloud & security en hoe we omgaan met identity & productivity.

Keynote
Als keynote speaker hebben we dit jaar niemand minder dan Andrew de la Haye. Andrew is COO van RIPE en is verantwoordelijk voor alle ip adres registraties van Europa, Azie en Midden Oosten. Zoals iedereen weet raken de IPv4 adressen op, terwijl de vraag alleen maar toeneemt met zaken zoals tablets, smartphones, IoT, etc. Welke trends ziet RIPE in andere werelddelen zoals China waar al veel eerder dan in Europa de IP adressen op waren ? Er is tevens een levendige handel ontstaan in ip adressen, hoe gaat RIPE hier mee om? Kortom wat is de toekomst van ons internet?

Programma
Momenteel werken wij nog aan de laatste details van het programma en deze zal de komende dagen concreet gemaakt worden. Het programma bestaat uit een tweetal tracks (Azure/Platform & Productivity/Workplace). Ter afsluiting wordt aan het eind van het programma de BBQ ontstoken! Onder het genot van een hapje en een drankje biedt dit gelegenheid om experts, sprekers en sponsoren vragen te stellen die tijdens de sessies niet aan bod zijn gekomen. Het voorlopige programma willen we je niet onthouden en kun je hieronder terug vinden.

Track 1 Azure/Datacenter

Track 2 Productivity/Workplace

14:30 Walk in/welcome

15:00 Keynote – Andrew de la Haye (RIPE)

16:00 Marc Scholman (Inovativ) Azure

Pieter Wigleven (Microsoft) Windows 10

17:00 Break

17:15 Pascal Naber (Xpirit) Azure/Dev

Stefan van der Wiele (Microsoft) Identity

18:15 Wouter Janssen (Fox-IT) Forensic

Session 7

19:15 The Sourcing Company

Session 8

20:15 BBQ

Sponsoren
Dergelijke community evenementen als deze is zonder sponsoren niet mogelijk. We zijn dan ook erg blij met de volgende sponsored die de System Center Summer Night 2016 mogelijk maken!

HPEnterprise
Proxysys_small inovativ_small

Logo-Savision

 

Locatie
De Landgoederij
Camminghalaan 30
3981 GH Bunnik
http://www.delandgoederij.nl/

Inschrijven:

Voor dit unieke event kunt u zich

hier inschrijven. Om dit event mogelijk te maken

vragen wij u om een kleine bijdrage van EUR 12,50. Schrijf je dus nu direct inSystem Center User Group NL

First Errors in Azure Stack Deployment #MAS #AzureStack #Azure #MASCUG Microsoft Azure Stack POC is ready to deploy

Playing with the AzureStack deployment is no picknick there is a Pre-check but you must have the perfect machine to deploy the Azure Stack Bits. So I tweaked the scripts a bit. this is the logical architecture of the Azure Stack POC and its components. all running on a single Hyper-v host.

But even then something can go wrong. As shown below some errors are highlighted.

Check disks failed. At least 3 disks of the same bus type (RAID/SAS/SATA) and with CanPool attribute equals true are
required.   ( I added some other Storage also )

Cannot bind argument to parameter ‘PackagePath’ because it is an empty string  ( used a variable setting before running the script )

image

Welcome to the Microsoft Azure Stack POC Deployment!
There are several prerequisites checks to verify that your machine meets all the minimum requirements for deploying Microsoft A
zure Stack POC.
All of the prerequisite checks passed.
Please enter the password for the built-in administrator. The password must meet the Azure Active Directory password complexity
requirements.
Password: **********
Confirm password: **********
Setup system admin account
Please sign in to your Azure account in the Microsoft Azure sign in window.
Press any key to continue …

 

image

But after Concurring All the Pre-Requirements you are ready to go Or not ?

During the Deployment I had this error :  Method "NewTriggerByStartup" not found
This seams an updated Powershell module is in place and I have a bug in my build. After some digging in the Powershell modules I managed to fix this.

image

Microsoft Azure Stack POC is ready to deploy. Continue?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y
New-ScheduledTaskTrigger : Method "NewTriggerByStartup" not found
At F:\AzureStackInstaller\PoCDeployment\AzureStackDeploymentScheduledTask.psm1:27 char:16
+     $trigger = New-ScheduledTaskTrigger -AtStartup
+                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (PS_ScheduledTask:Root/Microsoft/…S_ScheduledTask) [New-ScheduledTaskTrigger]
   , CimException
    + FullyQualifiedErrorId : HRESULT 0x80041002,New-ScheduledTaskTrigger

 

The real fix is this mofcomp C:\Windows\System32\wbem\SchedProv.mof

and after Some digging I find already a uservoice post on this issue. So vote for this

image

I must say the scripts are awesome lots of handy stuff in there.  I did the Next Next Finish setup to see what I could expect and how to Build this in a not default environment. SO no single server.

That’s All For now.

Greetings,

Robert Smit

Twitter: @clustermvp

Cloud and Datacenter MVP ( Expertise:  High Available )

Windows Server cluster issues moving cluster resources cno object is gone #winserv #cluster #cloud #fail #cno #migrate

Suppose you have a nice cluster and one day your fellow IT guys comes and say he lets move all the Cluster Resources to a specific cluster node.

This seams a normal step but wait there is more there is also a Cluster resource that needs to be moved. “The CNO object”

image

The Cluster Resources up and running

image

Always hard to find where to move the cluster resource components. but it is Labeled “Move Core Cluster Resource”  easy

image

But what if my IT guy can’t find this option ? mmm in a normal roll you can do “ assign to another role” this sounds ok move the CNO to another role. eh ?? why is this in there ? well it is there so let me use this option and see what happened.

So let me move this CNO to node 2.

image

Done het Joe I’m ready all the resources are to node 2.

image

All fine all the resources are over. ok let me failover to the other node. And place this back to the original place. Well this sounds easy but where are all the options.

 

imageimage

Eh.. what ? let me reboot the server and the cluster, checking for updates…. call for help..

The Cloud IT pro comes back and looks at the CCR objects Gone but the cluster is still running and tons of Scom errors Cluster is down CNO etc

 image Ok but where are my Cluster objects ?

Let me do some PowerShell 

Get-ClusterGroup

image

Oh ok all the Resources are there and up. but why can’t I move the resource back in the GUI ? well I guess Microsoft keep you away from the Cluster Core Resources maybe you will break the cluster.

image

Now that we have the Cluster Resource groups and cluster Groups we can move back the CNO object to the right place.

$CLU=get-cluster
Move-ClusterResource -Cluster $clu  -Name "Cluster IP Address" -Group "Cluster Group"

image

The Cluster objects need to be online!! Else you get an error. just bring the resources online and try again.

image

So next time don’t move the CNO object to a Cluster Resource.  And this is why there are Cluster Admins Winking smile

 

 

Greetings,

Robert Smit

Twitter: @clustermvp

Cloud and Datacenter MVP ( Expertise:  High Available )