Windows Azure Virtual Machines are the new IaaS offering from Windows Azure that allows for Virtual Machines in the Cloud. Using Windows Azure Virtual Machines you have the ability to add additional Data Disks in addition to your core Operating System Disk to your Virtual Machines. The number of disks you can add depends on the size of your Virtual Machine and range from 1 for an Extra Small VM to 16 for an Extra Large VM.
Data disks should be used for installing all your program files used on the Virtual Machines. In general, the Cache level should be set to Read Only to ensure optimal disk performance. Each data disk can get up to 500 IOPS (Input / Output Operations per Second). So as you can see spreading things out over more Data Disks should be able to boost IO throughput.
This brings me to the main point of this post – how to add a Data Disk to a Virtual Machine. To do so, select the Virtual Machine inside the Management Portal and hover over the Attach link on the bottom. If you have a Disk available to be attached, you will see an option to Attach A Disk or Attach Empty Disk. Use the Attach Empty Dish to create a new Data Disk. If you already have an uploaded VHD and want to attach it as a Data Disk, you must first go to the DISKS tab and create a Disk for the VHD.
What can get confusing is WHY any existing disk might not be able to be added to a Virtual Machine.
I have found four reasons why an existing Disk cannot be added to a Virtual Machine and two of them are not very obvious using the Portal.
The reasons you cannot add an existing Disk include:
- It is being used by another Virtual Machine
- You have reached the limit of adding Disks to your Virtual Machine
- The Disk is created in a different data center / location than your Virtual Machine (view this on the DISK tab)
- The Disk is created using a different subscription than the Virtual Machine (view this on the DISK tab)
Have you found any other reasons you cannot attach an existing Disk?
Hope this helps someone stuck trying to add a Data Disk to a Windows Azure Virtual Machine.