ECS上linux创建RAID阵列
模式 | 优势 | 劣势 | 适用场景 |
---|---|---|---|
RAID0 | I/O在存储卷内以条带化的方式分布在各云盘上。增加云盘空间会直接增加吞吐量,阵列中的容量和带宽等于各个云盘容量和带宽之和。 | 单块云盘的损坏有可能造成整个虚拟盘数据丢失,缺乏数据冗余能力。 | 对I/O性能要求很高,并且已通过其他方式备份数据,或者不需要备份数据的应用。 |
RAID1 | 数据以镜像的方式存储在各云盘上,可以获取更高的数据冗余性。阵列中的容量和带宽等于阵列中容量和带宽最小的云盘。 | 因为要同时向多块云盘写入数据,写性能较差。 | 容错能力比 I/O 性能更重要,例如在关键应用程序中。 |
操作步骤
以root权限远程连接ECS实例。连接方式请参见连接方式概述。
运行以下命令查看ECS实例上所有云盘信息。
lsblk
结果如下所示。
使用mdadm命令创建RAID阵列/dev/md0。
请根据您的实际情况,创建RAID0或RAID1模式。
说明
--level=1
表示用于将阵列镜像化的RAID1模式。--raid-devices=5
:表示RAID阵列由五块云盘组成。/dev/vd[bcdef]
:表示使用/dev/vdb、/dev/vdc、/dev/vdd、/dev/vde和/dev/vdf五块云盘组成一个RAID阵列。--level=0
:表示用于将阵列条带化的RAID0模式。--raid-devices=5
:表示RAID阵列由五块云盘组成。/dev/vd[bcdef]
:表示使用/dev/vdb、/dev/vdc、/dev/vdd、/dev/vde和/dev/vdf五块云盘组成一个RAID阵列。创建RAID0模式,运行以下命令。
mdadm --create /dev/md0 --level=0 --raid-devices=5 /dev/vd[bcdef]
结果如下所示。
创建RAID1模式,运行以下命令。
mdadm --create /dev/md0 --level=1 --raid-devices=5 /dev/vd[bcdef]
以下示例中
/dev/vd[bcdef]
表示为/dev/vdb、/dev/vdc、/dev/vdd、/dev/vde和/dev/vdf五块云盘组成RAID阵列。如果您使用其他云盘,需要修改成对应的云盘。如果提示未安装mdadm,请先运行
apt-get install mdadm
命令安装mdadm工具。运行以下命令查看创建的RAID阵列/dev/md0信息。
mdadm --detail /dev/md0
结果如下所示。
运行以下命令在RAID阵列上创建一个文件系统,例如,ext4文件系统。
您也可以创建其他类型的文件系统。
mkfs.ext4 /dev/md0
结果如下所示。
运行以下命令,创建一份包含RAID信息的配置文件,设置RAID阵列在启动ECS实例时自动重组。
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
挂载RAID阵列的文件系统。
运行以下命令,创建挂载点,例如/media/raid0。
mkdir /media/raid0
说明 您也可以将云盘挂载到已有目录下,例如/mnt。
运行以下命令挂载文件系统,例如将/dev/md0挂载至/media/rad0。
mount /dev/md0 /media/raid0
运行以下命令查看RAID阵列的挂载信息。
df -h
结果如下所示,返回信息中,文件系统已经挂载到指定的挂载点。
后续步骤
如果您需要在每次启动ECS实例时设置自动加载RAID阵列,可以在/etc/fstab配置文件中添加如下信息。
运行以下命令,向/etc/fstab配置文件写入自启动设置。
echo `blkid /dev/md0 | awk '{print $2}' | sed 's/\"//g'` /media/raid0 ext4 defaults 0 0 >> /etc/fstab
说明 如果您需要在未挂载RAID阵列的情况下启动ECS实例,可以添加nofail配置。即使在安装云盘时出现错误,nofail配置也允许启动ECS实例。如果您使用的是Ubuntu系统,还需要额外添加nobootwait配置。
/dev/md0
:磁盘阵列名称。/media/raid0
:挂载点信息,如果需要挂载到其他路径,您需要修改成对应路径。运行以下命令挂载/etc/fstab配置文件中的所有文件系统。
mount -a