Tuesday, July 10, 2012

Introducing SMB3.0 with Virtual Machine Manager


Virtual Machine Manager 2012 SP1 | Adding a SMB3.0 File Share to your Hyper-V Cluster

It`s been a long time since I`ve blogged detailed about Virtual Machine Manager.

I am a virtualization dude by heart, and I have spent most of the time on Hyper-V in Windows Server 2012 lately, and the rest of the components in System Center 2012.

But as we`re getting close to release of System Center 2012 SP1 (I guess, since Windows Server 2012 was announced to be RTM the first week in August today at WPC), it`s time to dive into the details once again.

Since there`s some major new features and changes in Windows Server 2012, and most of it is very tightly to the Hypervisor, we will see Virtual Machine Manager adopt these asap.

Today, we`ll take a look at the SMB3.0 protocol, and how it`s being used by VMM to create flexible Fabric solutions.

SMB3.0 

So what exactly is SMB3.0?

Server Message Block protocol operates as an application layer network protocol, for providing shared access to serial ports, printers and files. You have most likely been using this protocol for decades in your network. One of the good things with SMB3.0 in Windows Server 2012 is that you can now run virtual machines and SQL user databases from a SMB3.0 file share.

Needless to say, this will create some new options for your private cloud to host VMs.

And when we add Multi-channel and RDMA to the table, this will actually be able to scale out beyond traditional datacenter implementations.

To be able to scale out a SMB3.0 share, you would need a Failover Cluster with the SMB Scale Out File Server role. I will blog more about this in the future, but as an easy overview, the Hyper-V hosts will access the SMB share on the cluster, using every possible network route. This will also introduce us to something called CA – Continuous Availability – meaning no downtime for your VHDs.

Scale-Out File Server is designed to provide scale-out file shares for server applications.

Benefits of using Scale-Out File Server in Windows Server 2012:

Increased bandwidth by using the total bandwidth of all cluster nodes in the Scale-Out File Server Cluster. You`ll notice this during cluster creation when you add the Scale-Out File Server role, that you don’t assign an IP address to the cluster. You only define the subnet. This means that every possible route to the cluster will be used for maximum performance, and is quite simple, cheap and easy to scale out by adding more routes/servers/NIC`s.

This leads to the term “Active-Active file shares” since all nodes in the Scale-Out File Server Cluster can accept and serve SMB client requests, also known as Continuous Availability since this provides transparent failover during planned – and unplanned downtime.

Scale-Out File Server role is built upon Clustered Shared Volumes, meaning that you create your file shares on a CSV. This will also give some of the other new benefits like CHKDSK with zero downtime on your CSV (this is independent of the Scale-Out File Server role), without any impact on your applications. Another neat feature is the CSV cache for increased performance in your virtual environment, especially for VDI scenarios.

To summarize a bit before we focus on Virtual Machine Manager, we can recommend using Scale-Out File Server for the ability to scale in an easy, reliable, cost effective and reliable manner. It`s not recommended to use this role for workloads that generates a lot of metadata operations such as typical information workers. Think of it this way: If you have a large datacenter running many many many virtualization hosts and you would have to purchase a large volume of new virtualization hosts to respond to business requirements, and you`re using a FC SAN as storage. You would have to buy additional HBA ports for every single new host, increasing the cost additionally. If you had a SMB Scale-Out File Server Cluster, you would only need the HBA ports on these nodes, and could connect your virtualization hosts to the cluster using 10GBe.

You can easily set this up by using Failover Cluster Manager or Server Manager today, and point the locations for your VHD`s to be on this share in Hyper-V Manager, Failover Cluster Manager and Powershell.

But we will also need a solution on the management side. This is where Virtual Machine Manager comes handy.

A couple of important things to notice prior to adding your SMB share to your Hyper-V servers/clusters:



·    We recommend that you use a dedicated file server.

·    For SMB 3.0 files shares to work correctly with VMM, the file server must not be a Hyper-V host. This also applies to a highly available file server. Do not add the file server (stand-alone or cluster) as a managed host in VMM.

·    The file share must not be added as a VMM library share.

·    The VMM service account must have local administrative permissions on the file server where the SMB 3.0 share resides. You must assign these permissions outside of VMM.

·    If you used a domain account for the VMM service account, add the domain account to the local Administrators group on the file server.

·    If you used the local system account for the VMM service account, add the computer account for the VMM management server to the local Administrators group on the file server. For example, for a VMM management server that is named VMMServer01, add the computer account VMMServer01$.

·    Any host or host cluster that will access the SMB 3.0 file share must have been added to VMM by using a Run As account. VMM automatically uses this Run As account to access the SMB 3.0 file share.

Adding a SMB3.0 File Share to your Hyper-V Cluster

Navigate to your Fabric workspace in VMM and right click the Hyper-V Cluster you`d like to use a SMB3.0 File Share, and click properties.

Click ‘File Share Storage’, Add and type in the UNC path to your SMB share.

Once this is done, you should be able to specify the SMB share as the location for your VMs during creation.

You can also perform this task by using Powershell:

Example:
$hostCluster = Get-SCVMHostCluster -Name "hvcluster.private.cloud"

Register-SCStorageFileShare -FileSharePath "\\smboslo\smb" -VMHostCluster $hostCluster

No comments: