《Windows Azure Platform 系列文章目录》
在前一章里我已经向大家介绍了如何创建一个预安装SQL Server 2012的Windows Server VM。
本章我将介绍如何在这个VM上挂载磁盘。
看到这里,有读者可能会产生疑问:为什么在这里要介绍挂载磁盘的功能呢?在这里笔者先简单的介绍一下概念:
在一些现有的系统里,对于系统盘(比如C盘)的操作比较少,而大部分情况下是对除系统盘以外的其他盘符(比如 F盘 G盘等)做读写操作。
我们可以按照上一章的内容,远程登录Windows Azure的Virtual Machine。我们看到默认的磁盘有2个,分别是C和D盘,如下图:
我简单介绍一下:C盘保存的内容主要是OS文件,最大容量是127G
而D盘是保存临时文件。
但是请注意:C盘中的内容是持久化的,但是D盘不是持久化的(从名字我们也不难观察出,D: Temporary Storage)。
我们知道Azure VM其实是物理RACK虚拟化出来的虚拟机。用户只能访问虚拟机,不能访问到物理机。
D盘的文件,其实是保存在物理机的磁盘上的。
也就是说,如果你将文件保存到D盘。一旦这台VM所在的物理主机发生内存故障,断电等异常情况导致无法正常服务,Azure Fabric Control会将这个VM自动迁移到另外一台正常的物理主机之上,以保证服务正常提供。但是你保存到D盘中的文件信息都将丢失。
按照以前的经验,如果我们想保存持久化的内容,就必须放到Windows Azure Storage里去(包括Blob, Table和Queue,我在前面几章已经做了介绍),但是这需要一定的手动开发过程。
Windows Azure VM提供了新的功能:首先在Azure Storage里先创建VHD,然后将这个VHD mount到VM里,作为VM的本地磁盘来使用(例如E盘或者F盘)。当挂载磁盘完毕后(比如挂载新的盘符叫E盘),你写入E盘里的内容就被写入到Windows Azure Storage的VHD文件里去了。
而且我们知道,Windows Azure Storage是支持三重备份的。这也提高了VHD文件的可靠性和完整性。我们放在Storage里面的内容就万无一失啦。
那就开始我们本次练习吧。
1.首先我们登陆Windows Azure管理界面 https://manage.windowsazure.com/
2.在列表中选择"Virtual Machines",找到之前创建的SQL2012VM1并选中它。如下图:
3.选中后,在Management Portal窗口最下面会出现菜单栏,我们点击Attach--> Attach Empty Disk。
4.在弹出的窗口里(请注意Storage Location的地址,我将会在本章最后介绍),Size设置成50GB
5.按照同样的方法,再次Attach Disk,Size我们设置成80GB
6.设置成功后,我们登陆SQL2012VM1的远程桌面
7.选择Server Manager-->Storage-->Disk Management,可以看到VM已经找到新增加的2个磁盘
7.上图中我们直接点击OK就可以了。然后我们点击Disk2,右键,New Simple Volume,初始化磁盘
8.按照同样的方法,将Disk3也初始化。可以看到F盘(大小50G)和G盘(大小80G),大小和我们之前在Management Portal设置的一样,结果如下:
在我的电脑里也能看到新创建的磁盘,如下图:
9.请注意:我们之前创建的Windows Azure VM Size为Small ,所以我在只能挂载最多2个DIsk;而VM Size为Extra Large,最多能挂载16个Disk。
不管VM Size是Extra Small还是Extra Large,他们最大支持1TB。如果你创建Disk的时候,超过1TB,你会收到如下的错误信息:
10.为了验证我之前说的,Attach Disk的内容其实是保存在Azure Storage里的。请大家在Management Portal,找到Name为Portalxxxxx的(名字之前系统自动生成的),并选中。在跳转的页面中,选择Container。点击VHDS:
11.在下图中,我们可以看到:
- 第一行的LeiSQL2012VM-SQL2012VM1是我在第一章里创建的,预装好SQL Server 2012的Virtual Machine,也就是我在远程登录Azure托管服务器的C盘。因为这个盘符的内容其实是保存到Windows Azure 的Blob,所以任何保存在Virtual Machine C盘中的内容都是持久化的。
- 接下来,是我本章创建的,容量为50GB的Disk。也就是我在远程登录Azure托管服务器的F盘
- 最后是我创建的,容量为80GB的Disk。也就是我在远程登录Azure托管服务器的G盘
- 这些内容都是以VHD的形式,保存在Azure Blob中。