Archive for the ‘Windows Server 2015’ Tag

Build a G5 G-Series #azure VM SQL Server 2014 Cluster With shared cloud Storage #yam

This Morning I thought why not build a rocking Fast SQL Cluster in Azure. But the Next next Cluster operation is way to easy I decided to build this with the G series and with the Windows technical preview with the latest options.  A G5 Server has 32 Cores and 448GB memory and only 6TB disk space. In this demo setup I used 3 G5 Servers and a  little disk space

So I created a fresh new network for this.


and later I can create a hybrid S2S VPN to my other Clusters.  See My other Blog post about VPN

I Create a DC that is holding my Service Accounts and I use Azure For the Cloud Witness

Check my blog on how to configure Cloud Witness


Doing a quick performance test on the G5 Machine.  D and C drive

image  image 


The same on a A1 machine D and C drive


 image image


image image

The G5  CPU

As we Create the Cluster and I added some disk to the Cluster we have the following Configuration

With SQL 2014 I can use a CSV for the Database files So I created a CSV from 300GB this is more than enough to hold this test install and hold my two G5 Series SQL Server 2014 Ent. instances 




To save Time and Costs I use the SQL ini file that I used in the first SQL Instance for the Second instance, This will not bring the fully automatic install as I don’t use the Service accounts But a Quick Next Next Finish will do the trick.



Using the CSV as Storage


On the Second instance I do a Install From ini file based setup.  If you need more info on how to do this read my previous blog posts

Installing the SQL server is just as described in my blog post below 

AlwaysOn Failover Cluster Instances SQL Server 2014

Windows 2012R2 Failover Cluster With SQL Server 2014 AlwaysOn Options

If you want to see the installation Steps I created a movie with about the same steps. the whole Process creating and install SQL in just 15 Minutes. not fully untended just for showing you what is possible.


Now that We have 2 SQL servers Running One instance on both nodes


The First node is holding my CSV volume ( more about this on another blog )


for demo I can’t fully load the SQL and this is only for showing that you can build a SQL Server 2014 Cluster Based on a CSV in Windows Azure.



And you can resize the G5 VM’s to a smaller size if needed. 

But keep in mind the D drive is a temporary drive and will not hold data if the server is turned off !!

With the vNext there a re a lot off new options possible. For now I burned my Azure Credits See you next time.


Happy clustering

Robert Smit


Technorati Tags: Windows Azure,Azure File service,Windows,Server,Clustermvp,Blob,cloud witness

Posted February 2, 2015 by Robert Smit in Azure

Tagged with ,

Getting started with Windows Volume Replication (Storage Replica) to Azure Configuration does it Work ? #winserv #SR #Azure #WVR #MVPBuzz

As in my previous blog post I named Storage Replication and Storage Spaces Shared nothing. This item is all about Storage Replication.

As there are many blog post all about this item I will show you not the easy part but a Hybrid Replication to Azure. As machines are getting faster in Azure I guess this will do for my Storage Replication.

Storage Replica (SR) is a new feature that enables storage-agnostic, block-level, synchronous replication between servers for disaster recovery, as well as stretching of a failover cluster for high availability. Synchronous replication enables mirroring of data in physical sites with crash-consistent volumes ensuring zero data loss at the file system level. Asynchronous replication allows site extension beyond metropolitan ranges with the possibility of data loss.

see the Windows Server Technical Preview Step-by-Step Guide for Storage Replica.

Disaster Recovery (DR) refers to a contingency plan for recovering from site catastrophes so that the business continues to operate. Data DR means multiple copies of production data in a separate physical location. For example, a stretch cluster, where half the nodes are in one site and half are in another. When using synchronous replication this is also known as a metro-cluster; when using asynchronous replication, it is often referred to as a geo-cluster.

Service level agreements (SLAs) define the availability of a business’ applications and their tolerance of down time and data loss during planned and unplanned outages. Recovery Time Objective (RTO) defines how long the business can tolerate total inaccessibility of data. Recovery Point Objective (RPO) defines how much data the business can afford to lose.

Storage Replication is:

The destination volume is not accessible while replicating

The Microsoft implementation of asynchronous replication is different than most.

SR is not DFSR

SR is not backup

SR is not Hyper-V Replica or SQL AlwaysOn

WVR is SR.

You will find many instances of the terms “WVR” or “Windows Volume Replication” in the Windows Server Technical Preview.

The Setup

The Setup between on-premise and Azure is based on a Azure VPN for Site-to-Site Described in this blog post :  How to setup Azure VPN for Site-to-Site Cross-Premises or Create a Virtual Network for Point-to-Site 

All my servers are running windows Server Technical Preview

The Nodes are named win2015-3,win2015-4 and in azure win2015-6 All the machines are domain joined and pingable

Appropriate firewall and router rules to allow ICMP, SMB (port 445) and WS-MAN (port 5985) bi-directional traffic between all cluster nodes.

A network between the two sets of servers with at least 8Gbps throughput and average of ≤5ms round trip latency when sending non-fragmented 1472-byte ICMP packets for at least 5 minutes. ( I do not have this in this configuration )

The problem is when you dan’t have a connection that is fast enough the replica will drop the connection and you will see this in the eventlog

So testing the the Line holds : But I know I’m in trouble with this.

ping win2015-6.mvp.local -4  -l 1472 -n 300

Ping statistics for

Packets: Sent = 300, Received = 300, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 4ms, Maximum = 54ms, Average = 6ms

This should be something like this:

To test If the Disk Holds use DISKSPD or copy a large file to generate some write load on the source server volume.

The goal is to keep 95th percentile latency under 50ms

My sample line diskspd.exe -c10G -d120 -t4 -o8 -h -w100 -b32K -r32k -L H:\testfile.dat > c:\win2015-3base.txt

  %-ile |  Read (ms) | Write (ms) | Total (ms)
    min |        N/A |      0.275 |      0.275
   95th |        N/A |     32.694 |     32.694

IOPS are important but latency is a true indicator of application performance.


To install All the options that are needed in the cluster you can use PowerShell or do this by hand in the GUI.

my $servers holds all the nodes and then I install the Features. ( a reboot in needed )

$Servers = ‘win2015-3′,’win2015-4′,’win2015-5′,’win2015-6′

$Servers | ForEach { Install-WindowsFeature –ComputerName $_ –Name WVR,Failover-Clustering,Multipath-IO,Hyper-V –IncludeManagementTools -restart }


Now that all the bits are in place we can create a new cluster Or if you already have a cluster you can use that one. ( see my blog post 15 minute install )

New-Cluster -Name HybridClu -Node ‘win2015-3′,’win2015-4′,’win2015-5′,’win2015-6′ -StaticAddress

Configure a File Share Witness or Cloud (Azure) witness ( see my blog post Configuring cloud witness quorum Windows Server Cluster Azure Files ) 

Now that the Cluster is in place We can start with the Storage I have attached 3 extra disk to my Azure VM

And Several Disks to my on-premises Cluster nodes all small disk as I just want to test this and all is just as an Sample.

There are several options in the Configuration As shown in the Guides see the Windows Server Technical Preview Step-by-Step Guide for Storage Replica.

So this Config is not the basic and see If I can find the Borders of the Configuration. Remember IOPS and Latency is important to get this done ( Express route to the Home will be the best Christmas gift )

I build a Storage Pool off 3 disks and created here 2 disk on with the Exact same Size.

Keep in mind that the Disk needs to be GPT and you can set this in the Disk manger but also with diskpart





But This is not always  enough when you see Event ID 10381 in the WVR then you need to set Microsoft Reserved (MSR) partition

Status: Unknown NTSTATUS Error code: 0xc0530191

A serious problem has been identified with the contents of the disk partitioning layout resulting from a missing Microsoft Reserved (MSR) partition. WVR requires that the disk have an MSR partition prior to the creation of the WVR partition database. Without the MSR partition, WVR cannot create the WVR partition database which prevents the disk, or any of the partitions or volumes contained by the disk, being involved in replication. To correct the problem, the MSR partition must be created on the disk. This is typically achieved by (re-)initializing the disk. Note that initializing the disk will involve the destruction of all the contained partitions and volumes on that disk. To use the disk for WVR, the disk must have been initialized with the GPT (GUID Partition Table) layout. Once this has been done, the required partitions and volumes can be created, and the partitions and/or volumes can be provisioned for replication as normal.

So clean the partition and start over. Create Partition with MSR and GPT. Only then the Disk will work for Storage Replication ( WVR )




Create Partition MSR Size=32


So I created 4 disk with the exact same size and GPT and MSR this should do the Trick. In my case I use only 3GB disks as this is the minimal specs for most things.

Now Create and Place Holder for your Disk in the Cluster Name it and place One disk in this Role


Now the easy part just run one-liner in PowerShell you can do this in the GUI but this is not the best method now in the Technical Preview.

In PowerShell you will see Quickly if it is working

What We will need :

Two node names Source :win2015-3  and Destination : win2015-6

Create Two Replication groups Azure_group08 & Azure_group09  ( tested this a lot and broke all Replica’s )

Pick the Drive Letters

Source Data : H

Source LOG :  E

Destination Data : I

Destination LOG : W

And Pick a Logsize


To create the Windows Volume Replication all in one PowerShell

New-SRPartnership -SourceComputerName win2015-3 -SourceRGName Azure_group08 -SourceVolumeName h: -SourceLogVolumeName e: -DestinationComputerName win2015-6 -DestinationRGName Azure_group09 -DestinationVolumeName i: -DestinationLogVolumeName w: -LogSizeInBytes 2gb

This will trigger the Cluster and this will create the Groups and it will add the Log disk to the Data Disk group after a bit of ping pong with the disk they will failover and come on/offline failover the disks and the Cluster Layout will be something like this

My Resource Group Hybrid Repl and the Replication has created the WVR Azure_group09

now with all Running you can see what is my Group and Partnership




You can also reverse the Replication if needed

but looking at the Events in WVR you can see if the Replication is ok  Ensure that events 5002, 2200, 5015 , 5005, 5001, and 5009


Event logs Source and Destination

If you want to change the Logsize  “ LogSizeInBytes 2gb “ then you have to rebuild the Replica there is currently no option for that.



Last Part is the Removal of the Replica , It make sense that in the Cluster Failover manager you can delete the replica but If you do this the replica is not totally removed this is a bug. so best to remove the replica is by PowerShell.

Get-SRPartnership | Remove-SRPartnership

Get-SRGroup | % { Remove-SRGroup -Name $ }


Removing the Replica will give the disk the status Available Storage.

As I meshed up my other Replication on deleting this in the Cluster Failover Manager GUI, This is hard To fix and you have to go deep to fix this.

Diskpart is you best friend on this.

Hopefully this walk true is helpful and see what you can do with the hybrid environment. If you need more help here is the Forum

Other Options for storage Replication : While Windows “Shared Disk Failover Cluster” is not yet supported for Microsoft Azure Virtual
Machines, 3rd-party software SIOS Datakeeper can be used as an alternative:

Source :


My next blog post will be : How does DAS-only storage work in a failover cluster?  at [11:00]: ( Storage Spaces Shared Nothing )

If you want more info about Windows Server Technical Preview get here the Guides that you can use to start with the new Stuff

Guides :

Happy clustering

Robert Smit


Technorati Tags: Windows Azure,Azure File service,Windows,Server,Clustermvp,Blob,cloud witness

Posted December 17, 2014 by Robert Smit in Window Server 2015

Tagged with ,

What is change in Windows Server 2015 (10) cluster – Setting Cluster Common Properties

In the new Windows Server 2015 ( Windows Server Technical Preview )there are a lot of new features an not all are clear what they are doing.

I call it here Windows server 2015 there is currently no indication that the server 10 will be named 2015 but as the product will come in 2015 it will make sense that it will be called Windows server 2015. 

I made a Quick compare from the old cluster Windows Server 2012R2 to the new Windows server 2015

In the GUI there is not much change the only part that is real changed is the Enclosure part. ( See my other blog about this )

image  image

But what is change is underwater. when we do a Get-cluster | fl *  We get a list of all the cluster property’s that can be set.


Check this MSDN site for more info about Cluster Common Properties


There are a lot of new options but one option is gone RootMemoryReserved is not longer available.

cluster environment variable RootMemoryReserved was introduced to ensure that clustered VM hosts have a minimum amount of physical memory reserve for the host.

The RootMemoryReserved is by default set at 512 MB. This should be sufficient for the host VM that is not performing any operation other than manage the VMs.

As above windows10 is my cluster name and must be used in the PowerShell command

(get-cluster windows10).RootMemoryReserved

To change the RootMemoryReserved, the desired reserved memory size is assigned to the PowerShell cmdlet above. Use the following PowerShell cmdlet to set RootMemoryReserved to 1024 MB:

(get-cluster <cluster name>).RootMemoryReserved=1024

So it is no longer there.!

But now what is new.

When we do a Get-cluster | fl *

It will give us a long list but I filtered out and here are only the new parts that is only available in Windows Server 2015

ClusSvcRegroupStageTimeout        5
ClusSvcRegroupTickInMilliseconds        300
ClusterFunctionalLevel        9
ResiliencyDefaultPeriod        0
QuarantineDuration        0
ResiliencyLevel        Default
ClusterGroupWaitDelay        120
QuorumArbitrationTimeMax        20
RequestReplyTimeout        60
DumpPolicy        69913

When we need to change these options that can be done with (get-cluster).ClusterFunctionalLevel=9

(get-cluster).< with the name> = Value

As I noticed there are options from 2008 back and all have to do with latency so a logical conclusion would be will the cluster go to Azure or is there something coming that we need the values to get a better cluster. and all

Let us review these Commands



These options where there in 2008 but removed in 2012 and now they are back.

Controls the amount of time, in seconds, that a node waits on other nodes in a membership stage before deciding that they have failed.

Controls the interval of time, in milliseconds, that the membership algorithm waits between issuances of periodic membership messages.


Upgrading a Hyper-V or Scale-Out File Server cluster from Windows Server 2012 R2 to Windows Server Technical Preview no longer requires downtime. The cluster will continue to function at a Windows Server 2012 R2 level until all of the nodes in the cluster are running Windows Server Technical Preview. The cluster functional level is upgraded to Windows Server Technical Preview by using the Windows PowerShell cmdlt Update-ClusterFunctionalLevel.


The default resiliency period for the cluster, in seconds


Specifies the amount of time groups will wait for their default or preferred owner node to come up during cluster cold start, before the groups are moved to another node.


Specifies the maximum number of seconds a node is allowed to spend arbitrating for the quorum resource in a cluster.


Describes the length of time a request from a node with a cluster state update will wait for replies from the other healthy nodes before the request times out. Any nodes that do not reply within the request time out period will be removed from active membership in the cluster. The following table summarizes the attributes of the RequestReplyTimeout property.


Queries that can be used to export resource type specific logs.


There a fresh new options and currently not well documented or <NDA> but I’m sure when the server product is right a lot more new features will be made public. 

When the next release of Windows Server will be available I’ll discuss the DASMode properties in a future blog

Happy clustering

Robert Smit


  • Tag