CloudDrive被用来在Azure云上模拟硬盘。
这里面有个一概念先要弄清楚就是VHD(Virtul Hard Disk)。
VHD在Windows7和Vista中是已经实现的技术。用的比较多的是在VHD中安装Win7和WinServer2008等。
简单点说在win7,vista和win server 2008中可以通过简单的命令行工具创建指定大小的VHD文件。
这个VHD文件可以被接到操作系统中当作一个HardDisk使用。
Win7下VHD相关的命令行工具说明
新建一个VHD文件,在运行中输入“cmd”,然后在命令行工具中输入“diskpart”打开磁盘管理工具
在diskpart的命令行中依次输入:
create vdisk file=d:\win7_64.vhd maximum=30000 tpye=expandable
其中d:\win7_64.vhd代表在D盘根目录下建立一个名为win7_64.vhd的文件,maximum=30000为这个
VHD文件最大容量为30G
在操作系统中挂VHD硬盘
select vdisk file=d:\win7_64.vhd(选择这个VHD)
attach vdisk(加载这个VHD)
create partition primary(建立主分区)
assign letter=r(分配盘符为R盘,此时会弹出格式化对话框,选择快速格式化即可)
Windows Auzre Drive相关的几个技术点
1.一个Dirve本身是一个Page类型的Blob文件。他被格式化成VHD格式。大小可以在16M到1T之间。
(参考链接微软云平台 Azure简介 (四)Windows Azure 存储之Blob)。
2.通过挂接VHD文件来达到模拟硬盘。
3.一个VM最多可以挂接16个Drive
4.一个Drive只可以被一个VM挂接为读写模式,但可以被多个VM挂接为只读模式。
5.Drive使用的VHD文件可以通过Blob的访问接口上传,可以下载到本地使用。
6.Cloud Dirve只能供Windows Azure中的程序访问,不能通过接口访问。
可以下载VHD到本地,在本地修改后在上传?
要使用CloudDrive必须在VM本地初始化一个Cache,然后才能使用。
Windows Azure Drive示意图
Windows Azure Drive使用简介
//初始化云存贮帐号
CloudStorageAccount storageAccount =CloudStorageAccount.FromConfigurationSetting(
"DataConnectionString");
//初始化Drive Cache
LocalResourcelocalCache = RoleEnvironment.GetLocalResource("InstanceDriveCache");
CloudDrive.InitializeCache(localCache.RootPath, localCache.MaximumSizeInMegabytes);// 检查Blob Container是否存在,不存在则创建
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
blobClient.GetContainerReference("drives").CreateIfNotExist();// 创建Cloud Drive
CloudDrive myCloudDrive = storageAccount.CreateCloudDrive(
blobClient
.GetContainerReference("drives")
.GetPageBlobReference("mydrive.vhd")
.Uri.ToString()
);myCloudDrive.Create(64); //创建64M的NTFS格式的Windows Azure Drive
//挂接Drive
DriveLetter = myCloudDrive.Mount(0, DriveMountOptions.Force);//UnMount Drive
myCloudDrive.Unmount();