RAID 独立冗余磁盘阵列,其思想是将多块独立的磁盘按照不同的方式组成一个逻辑磁盘,从而提高存储容量以及保证数据存储的持久化,同时提升存储性能以及提高数据的备份功能。RAID 存储的组合方式根据 RAID 的级别来定义。
而 RAID 同时分为软 raid 和硬 raid。一般在现有的操作系统中如 windows、Linux、unix中都已经集成了 raid 功能。软 raid 可以和硬 raid实现同样的功能。软 raid 没有独立的硬件设备且不依赖于硬件设备,所以性能不如硬 raid,但是软 raid 实现起来相对于硬 raid 比较简单一些。硬 raid 通常需要独立的硬件 raid 卡。通常,riad 卡本身会占有一定的内存并且有自己的控制组件,性能比较强大。现在大多数的主板都集成了 raid 卡。
在企业应用中,有部分企业会去用动态扩容,就是将磁盘分区后,会创建 LVM 去实现动态扩容、缩容对服务器的磁盘进行动态管理,还有部分企业会直接采用 raid 去管理磁盘,实现数据的备份和校验。
同时,raid根据磁盘的组合方式不同,又分为很多种级别。最常见的有raid0、raid1、raid5、raid10。
1、raid0至少需要两块盘。数据写入riad 时,会被分割成多个部分。如果当其中的一块盘损坏以后,换言之,就是磁盘中的任何一块磁盘损坏之后数据就无法在写入,并且文件也无法进行读取。
2、raid1同样至少需要两块盘符。但是和 raid0 不同的是,当其中的一块磁盘损坏之后,另外一块盘依旧是可以来进行正常工作的。如果数据写入其中的一块盘符,那么这个盘符上的数据会自动复制到另外一块盘上。但是有一点磁盘的空间利用率比较低,如果两块盘的存储容量分别为 100 G,那么raid 1 的总存储容量依然为 100 G。
3、raid5至少需要三块硬盘。并且自带校验。总容量是(N-1)×单块硬盘容量(N是硬盘的个数),比如每块盘的容量是1T、则总容量是2T,剩余的1T就是用来做数据校验用的。但是raid5 不会去自己做数据备份,当RAID5的一个磁盘数据损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。自带恢复功能。因此当RAID5的一个磁盘发生损坏后,不会影响数据的完整性,从而保证了数据安全。当损坏的磁盘被替换后,RAID还会自动利用剩下奇偶校验信息去重建此磁盘上的数据,来保持RAID5的高可靠性。
4、raid10是需要至少两块盘组成raid0,再至少用两块硬盘组成raid1。所以至少需要4块硬盘。兼顾安全性和速度。基础4盘的情况下,raid10允许对柜盘2块故障,随着硬盘数量的提示,容错量也会相对应提升。
那么我们接下来进行软 raid 创建。需要提前将 Linux 下的磁盘分区。根据服务器上的盘符实际情况将其分区,接下来就可以进行软 raid 5了。采用命令:
mdadm -C /dev/md5 -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
mdadm -C 指创建raid,就是create。
md5指raid名称。
-l指定raid级别。
-n指定磁盘个数。
-x指定备用设备个数。
查看raid详细信息:
mdadm --detail /dev/md5
创建完之后需要对其进行格式化,采用mkfs去格式化。一般会新建一个目录,如 mkdir raid5。之后进行 monut /dev/md5 /raid5 挂载后即可使用。
同时需要开启开机自启动功能的话,需要写入/etc/mdadm.conf 文件中。就如同挂盘后写入 etc下的fstab中一样。
采用:
echo "DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1" > /etc/mdadm.conf
mdadm -Evs >>/etc/mdadm.conf
之后将raid信息写入/etc/fstab中即可。
echo "dev/md5 /raid5 xfs defaults 0 0" /etc/fstab
这样就完成了软 raid 的制作。至于硬 raid,则需要进入主机的raid卡中去配置,选择天价的盘符和选择raid模式,较为复杂一些。
希望你面试能够用的上。因为说不准哪天,写代码也会被问到。
推荐阅读
懂业务的技术人!
我的世界不只有coding。