Azure Drive Eases the Migration to Microsoft’s Cloud
Initially announced as XDrive during PDC 2009, Microsoft has released the beta version of Windows Azure Drive, a storage access solution simplifying the migration of Windows applications to the cloud by creating an NTFS virtual drive on top of a storage blob.
The Windows Azure Storage Services is a REST-based service dealing with blobs. Blobs are storage entities that can contain binary or text files. Blobs are organized in containers. There are two types of blobs:
- Block blobs – coming in sizes of up to 200GB and providing sequential read/write access; these blobs are useful for streaming.
- Page blobs – can be up to 1TB in size and provide random read/write access, being useful for storing general purpose text/binary files.
The Storage Service’ API provides the necessary tools for working with blobs, but that is handy for writing new applications targeted to the Azure cloud. Existing Windows applications have no knowledge of blobs and they would need a major re-write to be able to run in the cloud. That is where Azure Drive is helpful.
The Windows Azure OS has an OS driver that can mount a page blob as a Virtual Hard Drive (VHD) and can execute read/write operations to the VHD. For the application it looks like accessing a mounted NTFS Windows drive, but the OS driver actually works with a blob. All unbuffered or flushed writes are synchronously sent to the storage so the user can rest assured that his data is safe when receiving “success” from the driver. That is important in case the application crashes or the drive is unmounted.
The Azure team has disclosed a few technical details of the Azure Drive:
- A Drive is a Page Blob formatted as a Fixed NTFS VHD between 16 MB and 1TB.
- A VM can dynamically mount up to 16 drives.
- A Page Blob can only be mounted by one VM at a time for read/write access. A snapshot page blob can be mounted as read only by multiple different VMs at the same time.
- The storage account used to store the Page Blob and the compute account used to run the application should be allocated in the same geo-location in the Windows Azure Developer Portal in order to get the best performance out of the drive.
- Drives can be uploaded or downloaded via the Windows Azure Blob interface. The formatted Fixed NTFS VHDs can be uploaded as a Page Blob using the blob interface and then mounted as a drive. Similarly, a formatted Page Blob can be downloaded through the Page Blob interface and then the downloaded drive can be used as a VHD.
- The OS driver provided by Windows Azure is only available within the Windows Azure VM instances in the Windows Azure cloud. No driver is distributed by Microsoft at this time to allow you to mount drives remotely. Even so, you can download a drive using GetBlob and mount the downloaded VHD drive where it is downloaded for use, but any updates to that downloaded version will not be sent to the Windows Azure Blob service.
The Azure Drive is available with the February Azure SDK containing Guest OS 1.1 with OS Driver.
Amongst features announced at PDC 2009 that are yet to arrive are:
- Better control over cloud VMs through:
- Administrator privileges on cloud VMs
- User-driven construction and configuration of VM images
- Remote terminal server access to cloud VMs
- User-selectable geo-locations for replicas
- Secondary indices for tables