Running Microsoft Azure Stack Development Kit at Home #AzureStack #AzureStackDevKit #Azure

Introduction

Azure Stack is an extension of Azure, thereby enabling a truly consistent hybrid cloud platform. Consistency removes hybrid cloud complexity, which helps you maximize your investments across cloud and on-premises environments. Consistency enables you to build and deploy applications using the exact same approach – same APIs, same DevOps tools, same portal which leading to increased developer productivity in your organization.

In July 2017, Microsoft announced that in coordination with hardware OEMs (Dell EMC, Hewlett-Packard Enterprise, Cisco and Lenovo) you can now order Azure Stack Integrated Systems hardware, with the first systems beginning to ship starting September 27th, 2017. These systems come ready to run and offer consistent, end-to-end customer support no matter who you call. They will initially be available in 46 countries covering key markets across the world.

This is an exciting time for everyone, now that we can finally see it all coming together where we’ll finally be able to run Azure services natively in on-premises datacenter or absolutely anywhere else. Azure Stack is going to change the world.

Azure Stack Development Kit

The Azure Stack Development Kit (ASDK) is a free version of Microsoft Azure Stack (known previously as POC), which can be installed and run on hardware with less resources that what you would use for Azure Stack Integrated Systems. The features and capabilities of Azure Stack Integrated Systems and the Azure Stack Development Kit are identical without any real difference. The only difference between the two is the support for running Production workloads and using much larger, resourceful hardware. The aim of Azure Stack Development Kit is for trial purposes, which is available for web download today. You can use it to build and validate your applications to run on Integrated Systems deployments.

As of writing this article, the current Microsoft Azure Stack Development Kit build is 20171020.1 which was released on 31/10/2017.

Hardware

The Azure Stack Development Kit (ASDK) has lower resource requirements than Azure Stack Integrated Systems. This allows you to run it on small, lower resourceful hardware in a lower cost environment to be used for Development, Testing and Learning purposes. Another benefit of running Azure Stack Development Kit is that you can run it on your own custom hardware, without the requirement to purchase a special Azure Stack system from third-party OEMs. However, Azure Stack Development Kit does still require some pretty beefy hardware in comparison to your desktop, laptop, or smartphone you’re reading this article from.

Here is the official hardware requirements announced by Microsoft for Azure Stack Development Kit:

ComponentMinimumRecommended
OS Disk drives1 OS disk with minimum of 200 GB available for system partition (SSD or HDD)1 OS disk with minimum of 200 GB available for system partition (SSD or HDD)
Data Disk drives4 disks. Each disk provides a minimum of 140 GB of capacity (SSD or HDD). All available disks will be used.4 disks. Each disk provides a minimum of 250 GB of capacity (SSD or HDD). All available disks will be used.
Compute: CPUDual-Socket: 12 Physical Cores (total)Dual-Socket: 16 Physical Cores (total)
Compute: Memory96 GB RAM128 GB RAM (This is the minimum to support PaaS resource providers.)
Compute: BIOSHyper-V Enabled (with SLAT support)Hyper-V Enabled (with SLAT support)
Network: NICWindows Server 2012 R2 Certification required for NIC; no specialized features requiredWindows Server 2012 R2 Certification required for NIC; no specialized features required
HW logo certificationCertified for Windows Server 2012 R2Certified for Windows Server 2012 R2

The above listed specifications are the minimum and the recommended requirements. In all likelihood, you’ll need to have more resources than these to really be able to test and add many of the marketplace items from Azure with the development kit. If you’d like to view the full list of Azure Stack Development Kit hardware and deployment prerequisites, you can view the full specifications on the official documentation page from Microsoft.

Bill of Materials Azure Stack Dev Kit

As you could see from the list above that most of the desktop and laptop in the market today couldn’t meet the minimum requirement. I want to run Azure Stack at home with the following in mind:

  • Less space
  • Less cooling
  • Minimal power consumption
  • Minimum noise
  • Full flash
  • Small and lightweight

Some workstations have up to 64GB RAM. For laptops, the number of disks is another issue. ASDK requires 4 disks + 1 disk for OS, however, 3 disks configuration with 1 disk for OS may work but are not tested by Microsoft. So, I had to look at a bigger workstation or server for this purpose without hacks in the code. Despite the fact that you could run ASDK in public Azure as well, but the cost of the nested Dv3 and Ev3 VMs is very high, and the Internet connection could be another issue for me. I get inspired by Larry Zhang’s article and I thought that this piece of hardware could solve my challenge.

SuperMicro SYS-E300-8D can meet the majority of Azure Stack Development Kit hardware requirements. It’s very small and 1U mini server.

The SYS-E300-D supports up to 128GB RAM, but the CPU is the bottleneck as it supports maximum 4-Core. I managed to replace the motherboard with a higher CPU version X10SDV-7TP8F, which includes a 16-Core / 32 Threats Intel(R) Xeon(R) D-1587. The next challenge is the number of disks, how to put 4 data disks into a very small chassis.

Luckily, I managed also to leverage the 1U 2 PCIe mini slots in the X10SDV-7TP8F and 1 M.2 slot embedded on the motherboard. Thus, we need two PCIe to M.2 SSD module. I added two Amfeltec SQUID PCIe Carrier Board (1U PCI Express Gen 3 Carrier Board for M.2 SSD module). With 3 X M.2 NVMe SSD drives in the mini server, we could install Azure Stack. But Microsoft recommends 4 disks and not 3. Actually, the deployment script only validates where or not you have 3 or more data disks.

I used 3 Samsung SSD 950 PRO NVMe M.2 512GB. The 950 PRO also features Dynamic Thermal Throttling Protection technology, which controls the temperature of the device to reduce overheating and maintain a high level of sustained performance.

As for the OS Disk, I tried to leverage my exiting 1TB mSATA (Full Size) Samsung SSD 850 EVO for the system drive, but unfortunately, Azure Stack Dev Kit installation was failing at Step 60.61.101. I worked with Azure Stack Team on troubleshooting this issue for one month. Kudos to the Team. After checking with SuperMicro, I found out that the mSATA should be Mini (Half Size) versus the traditional mSATA (Full Size). So, I ordered 256GB mSATA Mini (Half Size) SATAIII SSD for the system drive, and I am good to go.

The motherboard X10SDV-7TP8F also supports SATA-DOM. Microsoft announced recently support for SATA-DOM boot drives for the operating system in Windows Server 2016. You could even order two SATA-DOM drives and configure them as RAID1. However, the maximum size for SATA-DOM drives as of this writing is 128 GB which does NOT meet the minimum requirements for Azure Stack 200 GB. In all cases, I ordered 1 SATA-DOM drive (SSD-DM128-SMCMVN1) for additional storage.

So, here is the final bill of materials what I bought:

Part NumberProductPrice USD
CSE-E300Supermicro CSE-E300 Flex-ATX/Mini-ITX Compact Desktop 1U Chassis$3,762
MB-SMDX10SDV-7TP8FSupermicro X10SDV-7TP8F Mini-ITX Motherboard; Intel Xeon D-1587
16C/32T; 128GB ECC RDIMM; 2 10G SFP+ and 6 GbE;12V DC-IN/ATX
Power
-
MM-SM393A4K40BB1-CRC4 X Samsung Memory M393A4K40BB1-CRC 32GB DDR4 2433 Registered Bare-
FAN-0065L4Supermicro 40x40x28mm 13000 RPM 4 Pin PWM (additional Fan)-
MB-AOMTPM9665V-SSupermicro AOM-TPM-9665V-S TPM 2.0 Module w/ Provisioning-
RC-A086-312 X Amfeltec SQUID PCIe Carrier Board for 1 M.2 SSD module$184
SSD-DM128-SMCMVN11 X Supermicro 128GB SATADOM$145
PS-SPI120WACL6SPI 120W 12V@10.0A AC Adapter, ROHS, Level 6 0.00T - 150C Power Cable, NEMA5-15P/IEC320-C13, 150cm/3C,RoHS,75-
mSATA Mini (MO-300B Variation B)1 X 256GB mSATA Mini (Half Size) SATAIII SSD$179
MZ-V5P512BW3 X Samsung 950 PRO Series - 512GB PCIe NVMe - M.2 Internal SSD$1,797
Shipping & HandlingShipping & Handling Charges (INSURED)$87
CustomsTax$70
TOTAL$6,224

I know the price is quite expensive. I am by no means recommending that you should buy the same hardware that I have, you should buy the hardware that suits your requirements and is also within your budget. Please add to the comments if you have any relevant experience on different products that you prefer.

The little monster now perfectly matches the recommended hardware requirements for Azure Stack Development Kit:

ComponentMicrosoft RecommendationSuperMicro Custom Config
OS Disk drives1 OS disk with minimum of 200 GB available for system partition (SSD or HDD)1 OS Disk: miniSATA 256GB SSD
Data Disk drives4 disks. Each disk provides a minimum of 250 GB of capacity (SSD or HDD). All available disks will be used.3 X 512 GB NVMe SSD
Compute: CPUDual-Socket: 16 Physical Cores (total)Single-Socket: 16 Physical Cores (total)
Compute: Memory128 GB RAM (This is the minimum to support PaaS resource providers.)128 GB RAM
Compute: BIOSHyper-V Enabled (with SLAT support)Hyper-V Enabled (with SLAT support)
Network: NICWindows Server 2012 R2 Certification required for NIC; no specialized features Windows Server 2012 R2 Certification required for NIC; no specialized features
HW logo certificationCertified for Windows Server 2012 R2Certified for Windows Server 2012 R2

Here is how it looks like eventually.

Running Azure Stack Dev Kit at Home

Now before we start the deployment, let’s run Azure Stack prerequisites checker and validate the system.

You can disregard the failure message regarding CPU count and physical disks in the pre-checks.

As you can see, all NVMe drives can be pooled to create the shared storage. As we all know that Azure Stack is built on top of Storage Spaces Direct (S2D) cluster.

Then I kick-off the deployment script.

After 4 hours and 20 minutes, the deployment of Azure Stack Development Kit build 20171020.1 has completed successfully.

Here is the view after the deployment:

Failover Cluster Manager

Hyper-V Manager

Task Manager

We still have around 55 GB of RAM remaining to deploy Azure Stack services (IaaS and PaaS).

Azure Stack Administrator Portal

Conclusion

I would like to give a huge thanks to Eric Yui from MITXPC Embedded Systems Solutions for working with me on this project and helping out reaching my objective.

Good luck building out your mini Private Azure Cloud at home!

Cheers,
-Ch@rbel-

About Charbel Nemnom 325 Articles

Charbel Nemnom is a Microsoft Cloud Consultant and Technical Evangelist, totally fan of the latest’s IT platform solutions, accomplished hands-on technical professional with over 15 years of broad IT Infrastructure experience serving on and guiding technical teams to optimize performance of mission-critical enterprise systems. Excellent communicator adept at identifying business needs and bridging the gap between functional groups and technology to foster targeted and innovative IT project development. Well respected by peers through demonstrating passion for technology and performance improvement. Extensive practical knowledge of complex systems builds, network design and virtualization.

Be the first to comment

Leave a Reply