稍前曾探讨“在Windows Azure上的Windows Server 虚拟机(VM)中灵活配置数据盘及RAID”,那么,对于在Windows Azure上创建的 Linux虚拟机(VM),如何部署RAID?

首先,部署RAID的想法,对于一些LAMP的IaaS用户,是一个具有价值和吸引力的想法,例如,在Windows Azure上创建的 Linux VM,在VM上部署MySQL等服务,同时希望能够获得性能更高的磁盘读/写访问,得到更好的数据安全、支持更多的并发访问等。

Windows Azure IaaS在实现和运营机制上,实际上为虚拟机用户提供了很多保障,例如数据盘(Data Disk)都是存储在Windows Azure Blob Storage上,而Windows Azure Storage提供了多份备份,确保了更好的数据安全备份;如果再加上Windows Azure Storage账户可选的地域冗余复制(Geo-Replication)机制,在跨地域、跨Windows Azure 数据中心(Data Center, DC)容灾方面,提供了更高的数据安全。

当然,也可以基于Windows Azure VM,结合RAID技术,提供更多的技术选择。

对于RAID的不同等级,可以参考:Standard RAID levels

对于Windows Azure上的 Linux虚拟机,可以采用以下的步骤,来创建RAID:

1. 在一个虚拟机上附加多个数据盘。

不同尺寸的虚拟机可以附加的数据盘的数量也不一样:其中8核的XL和A7最多可以增加16块1T的数据盘,即每个虚拟机最多可提供16TB。

具体请参考:Virtual Machine and Cloud Service Sizes for Windows Azure

这一工作可以在Windows Azure管理门户 (Management Portal)上来完成,也可以用PowerShell脚本等方式来添加。

clip_image001

需要注意的是,对于数据磁盘,主机缓存默认首选项为“无”,这样对于性能等角度而言更为有利。

2. 在Linux虚拟机中,利用root权限,执行下面的创建RAID、文件系统及磁盘安装命令:

mdadm --create /dev/md0 --level=0 --raid-devices=4 /dev/sdc /dev/sdd /dev/sde /dev/sdf

mkfs.ext3 /dev/md0

mount /dev/md0 /raid0

例如,利用4块数据磁盘,部署RAID-0。

不同的RAID等级,可以满足用户针对磁盘读/写性能、数据校验等方面的要求。