Did you know you are charged for a Windows Azure Virtual Machine every hour it is deployed even if it is not running? I would guess many people are not using their Virtual Machines at night when they sleep so shouldn’t we have a simple way to take them offline? Wouldn’t it be nice to have a simple GUI interface to view Virtual Machines (VM) and Virtual Hard Disks (VHD)?
This tool solves all those problems! This tool can be used to easily reduce your monthly Windows Azure compute usage and SAVE YOU MONEY!
I am pleased to announce the release of a community project called the Windows Azure Virtual Machine and Virtual Hard Disk Management Tool. I have put over 300 hours into researching, building, and testing this tool.
Download Link: Windows Azure Virtual Machine and Virtual Hard Disk Management Tool
Read the current list of Known Issues: Known Issues
The list of issues currently relates to Virtual Machines, Disks, and Virtual Networks that were created more than a few months ago.
The purpose of this tool is to make working with Windows Azure Virtual Machines and Virtual Hard Disk easier to use, easier to understand, and more cost effective. Take a look at the feature list below.
Sure – things like taking a VM offline can be done via PowerShell, but I have made it so easy using a simple WinForm even my mom could take a VM offline (if she only knew what offline meant)! Better yet, setting up and configuring PowerShell for Azure is not required to run this tool. All you need is .Net 4.0 or higher, a management certificate installed in Azure, and your subscription ID.
Features:
- Virtual Machines
- View the Service Name, Deployment Name, Virtual Machine Name, and Location of online Virtual Machines
- Take a Virtual Machine offline to save on compute time charges (they are stored on your local file system as XML)
- Bring a local Virtual Machine online to use it again
- Virtual Hard Disks
- View all the VHD’s in the Source and Destination storage account container
- Copy a VHD from one account to another account, even in a different data center
- View the Lease status of VHD’s in the Source or Destination storage account
- Break the Lease of a VHD in the Source or Destination storage account (for orphaned VHDs)
- Delete a VHD in the Source or Destination storage account
- Download a VHD in the Source storage account (this is slow – do not close the form)
- View all the Disks and Disk Details associated with a single Azure subscription
- View all the Images and Image Details associated with a single Azure subscription
- Prevents you from making a copy of a vhd with an existing Lease
See the download link or ReadMe.txt for more details and basic How To’s.
Please keep in mind this is a free tool without support or warranty of any kind. In the event of “bad things happening” I store a backup of the raw exported XML in the local folder. I also do not touch the underlying VHDs when taking a VM offline. Worse case, the VMs would need to be recreated using the Windows Azure portal.
If you run into any issues, please use the Email Me link inside the form to let me know so I can research the issue. I want this to be the best tool possible.
Stay current with the latest information on Windows Azure Virtual Machines Management by joining our Windows Azure Virtual Machine and Virtual Hard Disk Management Newsletter.
To use this tool you need to setup on values in the App.Config file.
<!-- Enter the Source Storage Account Details here. -->
<add key="SourceStorageConnection" value="DefaultEndpointsProtocol=https;AccountName=NAME;AccountKey=KEY" />
<!-- Uncomment and Enter the Destination Storage Account Details here. To work with only one account leave commented out.
To copy to the same store set this to the same as Source Account above. -->
<add key="DestinationStorageConnection" value="DefaultEndpointsProtocol=https;AccountName=NAME;AccountKey=KEY" />
<!-- Select to enable REST API Advanced Features - Subscription ID and Certificate are Required for this feature. true | false -->
<add key='EnableRESTApi' value='true' />
<!-- Enter the full path to the -->
<add key='CertificatePath' value='--Required for REST API not for File Copy--'/>
<!-- Your Windows Azure Subscription ID -->
<add key='SourceSubscriptionID' value='--Required for REST API not for File Copy--' />
<!-- Local folder for exported VMs -->
<add key='LocalVMLocation' value='--Required for REST API not for File Copy--' />
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
Basic Steps to take a Virtual Machine Offline – Note – the Disk and VHD are not touched in this process
- Ensure the 4 REST related configuration values are set in the App.config file
- Make sure you have clicked Start Query on the Manage and Copy VHD tab
- On the Manage Virtual Machines, select the VMs you want to take offline
- Click Take Selected VMs Offline
- Process will run in more than one thread unless you have more than one operation on the same service, those will queue
- Output is stored on the file system in the Local VM Location defined in the App.config
- Watch for Status and Error messages in the Status window
Basic Steps to take a Virtual Machine Online – Note – the Disk and VHD are not touched in this process
- Launch the tool and click on the Manage Virtual Machine tab
- Select the VMs you want to bring online
- Click Restore Selected VMs
- Process will run in more than one thread unless you have more than one operation on the same service, those will queue
- Watch for Status and Error messages in the Status window
Download Link: Windows Azure Virtual Machine and Virtual Hard Disk Management Tool
Can you please advise where I can source the following information that you require in the config file:
CertificatePath
LocalVMLocation
Hello.
You only need those values if you are using the REST API. If so, Certificate Path is the full path locally to your Windows Azure Management certificate. Local VM Location is any local folder that can be used to store your exported VM’s.
Hope this helps.
Does the management certificate information comes from Azure.PublishSettings
Chirag Shah %u2013 great question. This release assumes you have created your own certificate and uploaded it to the portal. I have an internal release that just uses the string from the publishing file. I%u2019m not sure I%u2019ll make another public release of this tool but if you want the latest version just email me through Contact Me page at http://www.biztalkguru.com/contact/