Azure IaaS Disk Add Error

Today I saw that one of our Azure IaaS VM’s was getting low in disk space. The VM was configured with a number of data disks in a storage pool so adding a disk to expand space would not be a problem. In fact we have done this quite a few times for this specific VM, so the process is all too familiar. However this time I ran into a problem. I stepped through the process to add a new disk using the Azure Portal and received the following error:

Azure Disk Add Error
Failed to attach new disk ‘disk13’ to the virtual machine ‘server01’. Error: CannotAddOrRemoveNetworkInterfacesFromARunningVirtualMachine: Secondary network interfaces cannot be added or removed from a running virtual machine.

Wait….what? I can’t add a disk because I can’t add a NIC when the machine is running? But I’m trying to add a disk not a network adapter! I attempted to stop the VM to see if I could add this disk while the VM was offline. “No soup for you!

Failed to stop the virtual machine ‘server01’. Error: Secondary network interfaces cannot be added or removed from a running virtual machine.

What? Now what do I do? I restarted the guest OS and attempted a redeploy of the VM, but nothing worked. I opened a ticket with Azure support. After walking the support technician through my issue he was also stumped. However after a few hours of research he came back with the solution which was to force the first (and only) network adapter to be primary through PowerShell.

After executing these commands the VM shutdown without warning or intervention after which I was able to add my additional data disk, power on the VM, and get back to work.

I’m glad to find a solution, but this is definitely a pain point. I don’t have access to the hypervisor to force stop or reset a VM to fix the configuration through Hyper-V Manager, Failover cluster manager, or System Center Virtual Machine Manager. I know that’s not going to happen ever with Azure, nor should it. This is just one of those edge cases where you have to reach out to support for help.

Nugget of Wisdom

Purchase your Azure support before you need it. When you’re in the thick of it you don’t want to be establishing a support contract which can take time before you can even open a ticket.

Meet Azure IaaS

This year I embarked upon a journey into the world of the cloud, specifically Microsoft’s IaaS offering in their Azure public cloud. I’ve learned a lot, and I have oh so much more to learn. Over the next few posts I want to share the highlights and pain points that may help the next person.


Prolegomena

Currently there are three types of cloud service models, but instead of using lots of words, I’ll just “borrow” an image from @NTFAQGuy that should clear things up.

"Know your aaS" --@mminasi
“Know your aaS” —@mminasi

The Opportunity

I was assigned to architect a completely separate infrastructure for a business unit. They required their own application, database, and infrastructure servers as well as messaging. So I set out to research the possibility of using Azure IaaS in combination with Office 365 as a solution.

The Challenge

Getting started with Azure IaaS has been quite a challenge. There are so many facets to Azure that it is difficult to even define it. Furthermore its features, services, and even the limitations are constantly evolving. Typically you would want to dip your toe in the water with Azure by setting up a small proof-of-concept environment. It could be as simple as signing up for an account, deploying a few VM’s, and establish a site-to-site (S2S) VPN back to your on-premise network. Of course everything that seems simple in life tends to be a lot more complicated once you start to dig a little deeper.

For starters the process of signing up for an account seems dead simple. You go to the Azure website, give them a credit card, and you’re in. However if you’re signing up for Azure for your company there are additional questions that need to be answered. Who manages the subscription(s)? Is your subscription part of your existing Enterprise Agreement? How do you configure the Azure pieces so that the proper services are billed to the correct departments? How do you give access and reporting to the accounting department for the Azure subscription(s)?

Fortunately you don’t have to answer all of these questions right away, but you should be asking them. Remember that all things temporary in IT usually end up being permanent so take care how you get started.

The Nugget of Wisdom

Pay special attention to which account that initially signs up for the Azure account. That email account will be the subscription owner. Don’t use a person who may one day leave the company (like yourself). Setup a mailbox or distribution list that will function as the main account.

Next time we’ll dig deeper into the IaaS offerings including dealing with ASM vs. ARM and what does that even mean.