RAID 10阵列简介:
建立RAID 10阵列:
有两种建立RAID 10阵列的可行方案:复杂法(一步完成)和嵌套法(先创建两个或更多的RAID 1阵列,然后使用它们组成RAID 0)。本文会讲述复杂法创建RAID 10阵列的过程,因为这种方法能够使用偶数或奇数个磁盘去创建阵列,而且能以单个RAID设备的形式被管理,而嵌套法则恰恰相反(只允许偶数个磁盘,必须以嵌套设备的形式被管理,即分开管理RAID 1和RAID 0)。
假设你的机器已经安装mdadm,并运行着相应的守护进程,细节参见。也假设每个磁盘上已经划分出一个主分区sd[bcdef]1 (LCTT 译注:共计五块磁盘,这里是从sdb – sdf)。使用命令:
ls -l /dev | grep sd[bcdef]
查看到的输出应该如下所示:
然后使用下面的命令创建一个RAID 10阵列(LCTT 译注:使用了四块磁盘 bcde 创建):
# mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sd[bcde]1 --spare-devices=1 /dev/sdf1
当阵列创建完毕后(最多花费几分钟),执行命令
# mdadm --detail /dev/md0
的输出应如下所示:
在更进一步之前需要注意以下事项。
-
Used Dev Space表示阵列所使用的每一块磁盘的容量。
-
Array Size表示阵列的整体大小。RAID 10阵列的大小通过(NC)/M计算,其中N是活跃磁盘的数目,C是每个活跃磁盘的容量,M是每一个镜像中磁盘的数目。在本文的情形下,这个值等于(48GiB)/2 = 16GiB。
-
Layout是整个数据布局的详细信息。可能的布局数值如下所示。
-
n(默认选项):代表就近(near)拷贝。一个数据块的多个拷贝在不同磁盘里有相同的偏移量。这种布局提供和RAID 0阵列相似的读写性能。
-
o代表偏移量(offset)拷贝。块并不是在条带里面复制的,而是整个条带一起复制,但是循环会打乱,所以同一个分区中复制的块会出现在不同的磁盘。因此,一个块的后续拷贝会出现在下一个磁盘中,一个块接着一个块。为了在RAID 10阵列中使用这种布局,在创建阵列的命令中添加–layout=o2选项。
-
f代表远端(far)拷贝(多个拷贝在不同的磁盘中具有不同的偏移量)。这种布局提供更好的读性能但带来更差的写性能。因此,对于读远远多于写的系统来说是最好的选择。为了在RAID 10阵列中使用这种布局,在创建阵列的命令中添加–layout=f2。
跟在布局选项n、f和o后面的数字代表所需的每一个数据块的副本数目。默认值是2,但可以是2到阵列中磁盘数目之间的某个值。提供足够的副本数目可以最小化单个磁盘上的I/O影响。
-
Chunk Size,参考的说明,是写入磁盘的最小数据单元。最佳的chunk大小取决于I/O操作的速率和相关的文件大小。对于大量的写操作,通过设置相对较大的chunk可以得到更低的开销,但对于主要存储小文件的阵列来说更小的chunk性能更好。为了给RAID 10指定一个chunk大小,在创建阵列的命令中添加–chunk=desiredchunksize。
不幸的是,并没有设置一个大小就能适合全局的策略来提高性能,但可以参考下面的一些方案。
-
文件系统:就整体而言,据说是最好的,当然EXT4也是不错的选择。
-
最佳布局:远端布局能提高读性能,但会降低写性能。
-
副本数目:更多的副本能最小化I/O影响,但更多的磁盘需要更大的花费。
-
硬件:在相同的环境下,SSD比传统(机械旋转)磁盘更能带来出性能提升
以上就是为各位朋友分享的相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多等着你!