Azure Stack HCI Deployment

Since Microsoft announced the release of Azure Stack HCI in 2020 I’ve been eager to get hold of a couple of nodes.

Now you may be wondering. hasn’t Azure Stack HCI been around since 2019? Well yes, sort of. In 2019 Azure stack HCI was still running Windows Server 2019 at its core. The latest 2020 release includes a new OS which can be found here.

So, what is Azure Stack HCI? Its a hyperconverged offering from Microsoft and its OEM partners, which allows you to run your servers in your own datacentres, but also extend your datacentre into Azure with features such as:

  • Azure Backup
  • Azure Policy
  • Azure Site Recovery
  • Azure Monitor
  • Azure Security Centre
  • Azure Automation
  • Azure Support
  • Azure Network Adapter

For companies who are thinking of moving into Azure but are still a little nervous and still want to use their current management tools such as Windows Admin Centre then this is a great first step.

Switchless Storage

One of the things I like about the Azure Stack HCI deployment is the various configuration options. For larger organizations you can have management over 1GbE, VM traffic over dedicated 10GbE and storage over its own dedicated 10GbE ports, however for smaller environments, up to 4 nodes in a cluster, it can be configured to utilize the 1GbE ports for management and VM traffic, and storage can still utilize the 10GbE ports by direct connection.

In an ideal world you would want VM traffic over the 10GbE ports especially in larger environments, however in smaller environments you could get away with the 1GbE ports.

As part of a recent 2 node cluster deployment I had 2 x Dell AX640 nodes, with an additional dual port Qlogic FastLinQ 41262 card in each node directly connected to each other for storage traffic. Managment and VM traffic were configured on the 1GbE ports.

One important thing to note, if you are going to be using management and VM traffic over the same NIC’s is to ensure the native trunk port is the management VLAN.

Operating System and Drivers

The nodes should be shipped with the OS and drivers pre installed, however if they aren’t, or you need to reinstall the OS, you can download the OS here. You will also have to download the drivers from the hardware manufacturer, make sure you download the drivers for Azure Stack HCI OS, as these may be different than the Windows Server 2019 drivers.

I wont go through the OS or driver installation as these are pretty standard for any server, for the Dell I mounted the OS via the IDRAC, completed the installation, then mounted the driver ISO, and installed it via PowerShell.

Deployment Requirements

For the deployment there are a few things worth noting.

  • Management IP’s for the nodes.
  • DNS IP addresses
  • Windows Admin Center installed on a server
  • Azure subscription to register the Azure HCI Stack
  • Cluster witness for 2 node cluster, we will use an Azure storage account for the cluster witness.

Deployment Guide

For the actual deployment I followed Microsoft deployment guide which can be found here. There are a couple of things worth pointing out.

If you are utilizing the direct connect method as above, when you get to the virtual switch creation in section 7 of the guide, select one virtual switch for compute and storage.

When defining the network in section 2.5, you should receive a request to enable Credential Security Service Provider (CredSSP), if you select no, or don’t receive the request then this section will fail.

CredSSP troubleshooting steps can be found here.

The SDN section optional depending on your requirement, once the initial setup is compete you should get the following confirmation.

Connecting Azure Stack HCI to Azure

In order to register the cluster with Azure, you will first need to register Windows Admin Center with Azure. Once complete you can register the cluster:

Open Windows Admin Center and select Settings from the very bottom of the Tools menu at the left. Then select Azure Stack HCI registration from the bottom of the Settings menu. If your cluster has not yet been registered with Azure, then Registration status will say Not registered. Click the Register button to proceed. You can also select Register this cluster from the Windows Admin Center dashboard.

Additional information on registering the cluster with Azure can be found here.

Additional Information

In order to run Azure stack HCI there are a few bits of information which are worth knowing.

  • Unlike in Azure you will need to provide all OS licenses for your workloads.
  • Each server in the cluster is required to connect back to Azure endpoints at least one every 30 days.
  • In order to utilize the Azure features, Microsoft do charge you £8/physical core per month (UK Regions), additional information can be found here
  • The current version of Azure Stack HCI is 20H2. Public preview of 21H2 is available.
  • Azure Arc integration is currently only available on version 21H2
  • Azure Stack HCI documentation can be found here

Overall Impressions

As mentioned previously I do like Azure Stack HCI, how easy it is to setup and integrate with Azure. If you are looking to build an hybrid cloud environment then its certainly worth a shout.

Azure Files Transactions Part 2

In part one I explained what transactions are and the different types of transactions. In part 2 we are going to see how you can view the various transactions and add some folders and files and try determine how may transactions are produced per action.

Before viewing the number of transactions lets start with a new storage container without provisioning file storage.

Once created, we can see there are no transactions by viewing the Insights, under the monitoring section.

After waiting a few mins and before creating a file share we can see there are already few transactions.

What we would like to do is to capture these transactions, in order to do this let enabled diagnostics and send the logs to a Log Analytics Workspace.

Fist enabled diagnostics for files:

Click “Add Diagnostics Setting”

Select to send all logs and metrics to a log Analytics Workspace.

Now that we have logging enabled create a File share on the storage account. In my environment, I have created a file share on the hot tier.

Going back to the viewing the logs we can see the total has increased to 32 without adding any data to the file share.

Lets add some data.

I’ve attached the fileshare to an empty volume, and added one empty folder.

Reviewing the number of transactions after a few minutes, we notice the number of transactions have increased to just under 200.

Next I copied the same empty folder 9 time, for a total of 10 Empty folders.

Reviewing the transactions again we can see they have increased to just under 1000.

Lastly, before reviewing the details of each transaction, I have added 10 txt files each 562KB into each folder. In total, we have 10 folders each containing 10 txt files, which has increased the total count to 2,637.

To view the trasactions go to the logs (preview) section under monitor and clear the screen in the righthand section.

Close the Query editor.

Enter “StorageFileLogs” in the new query Editor and click run.

Teh results can either be viewed in the portal or exported as a CSV, there is a limit on the ammount of transactions which can be viewed at anytime which is 30000.

The following information can be gathered from the transactions logs

  • Time Generated
  • Accunt Name
  • Location
  • Protocol
  • OperationNmae
  • AuthenticationType
  • StatusCode
  • StatusText
  • DurationMS
  • ServerLatencyMS
  • Uri
  • CallerIPAddress (You may see multiple IP addresses as some transactions will be internal to Azure)
  • SchemaVersion
  • OperationVersion
  • AuthenticationHash
  • etag
  • ServiceType
  • OperationCount
  • RequestHeaderSize

Unfortunately there is no way to estimate how may transactions each storage account will generate as there are numerous factors involved such as:

  • Amount of data (Folder and files)
  • Size of data
  • Amount of Churn on the data
  • Azure background transactions (these are normally run once a day depending on the size of the share)

If we were to have some guesstimates, I would say we would be looking at 15-25 transactions per create file/folder operation.

If you consider we had 2600 transactions for only a few small folders and files, you can see how large this could be defendant on the environment, especially with thousands of objects.

I have see customers with millions of transactions per day, and with that amount of transactions there is obviously an increase in the initial storage price.

So how do we estimate the storage costs?

This is a very good question. and with all of the factors involved its impossible to give a definitive answer, however my general rule of thumb would be that the overall costs would be around 2-3 times the costs of the base storage.

Hopefully the above helps explain the transactions, what they are and how they are charged.