linux管理— RAID阵列 4.16
一.RAID
(1)技术背景:如果很大的文件,磁盘无法存储,需要扩容咋办?
人为因素数据丢失如何恢复?
(2) 磁盘阵列全名是(Redundant Arrays of Inexpensive Disks, RAID ),意思是:容错式廉价磁盘阵列。 RAID 可以透过一个技术(软件 或硬件),将多个较小的磁盘整合成为一个较大的磁盘装置; 而这个 较大的磁盘功能可不止是储存而已,他还具有数据保护的功能。整个 RAID 由于选择的等级 (level) 不同,而使得整合后的磁盘具有不同的 功能。基本常见的 level 有这几种:
a) RAID-0 (等量模式, stripe):效能最佳
b) RAID-1 (映射模式, mirror):完整备份
c) RAID 0+1,RAID 1+0
d) RAID 5:效能与数据备份的均衡考量
e) Spare Disk:预备磁盘
(3)RAID-0
说明:RAID-0模式会首先将磁盘按区块分割,要存储的文件也按照等大的块分割,等量的存储到两个磁盘中。(尽量选择同型号等大小的)
优点:磁盘负责数据减小,磁盘的性能更好。
缺点:磁盘中有一块区域损坏,整个存储的数据可能就丢失了;如果磁盘的大小不同,小容量的存满后,大容量的就会相遇一般的存储,发挥不出优势。
(4)RAID-1:让同一份数据,完整的保存在两颗磁盘上头
原理说明:将数据资料在每个磁盘上都复制一份
优点:一个磁盘的数据丢失可以通过备份找回
缺点:磁盘的写入效能减半。
(5)RAID 0+1 RAID 1+0
所谓的 RAID 0+1 就是: (1)先让两颗磁盘组成 RAID 0,并且这样 的配置共有两组; (2)将这两组 RAID 0 再组成一组 RAID 1。这就是 RAID 0+1。反过来说,RAID 1+0 就是先组成 RAID-1 再组成 RAID-0 的意思。
(6) RAID-5::效能与数据备份的均衡考量
RAID-5 至少需要三颗以上的磁盘才能够组成这种类型的磁盘阵列。 这种磁盘阵列的数据写入有点类似 RAID-0 , 不过每个循环的写入过 程中,在每颗磁盘还加入一个同位检查数据 (Parity) ,这个数据会记 录其他磁盘的备份数据, 用于当有磁盘损毁时的救援。
优缺点:在读写效能的比较上,读取的效能与 RAID-0 差不多,不过写的效能一般, 这是因为要写入 RAID-5 的数据还得要经过计算同位检查码 (parity) 的关系。由于加上这个计算的动作, 所以写入的效能与系统的硬件关系较大。
Spare Disk:没有包含在原本磁盘阵列等级 中的磁盘,这颗磁盘平时并不会被磁盘阵列所使用,
当磁盘阵列的磁盘损毁时,就得要将坏掉的磁盘拔除,然后换一颗新的磁盘。
换成新磁盘并且顺利启动磁盘阵列后, 磁盘阵列就会开始主动的 重建 (rebuild) 原本坏掉的那颗磁盘数据到新的磁盘上!然后你 磁 盘阵列上面的数据就复原了! 这就是磁盘阵列的优点。
(7)磁盘阵列的优点 你的系统如果需要磁盘阵列的话,其实重点在于:
数据安全与可靠性:指的并非资讯安全,而是当硬件 (指磁盘) 损 毁时,数据是否还能够安全的救援或使用之意;
读写效能:例如 RAID 0 可以加强读写效能,让你的系统 I/O 部 分得以改善;
容量:可以让多颗磁盘组合起来,故单一文件系统可以有相当大 的容量。
尤其数据的可靠性与完整性更是使用 RAID 的考量重点!毕竟硬 件坏掉换掉就好了,软件数据损毁那可不是闹着玩的!
三.RAID的应用
(1)CentOS 提供的软件磁盘阵列为 mdadm 这套软件,这套软件会以 partition 或 disk 为磁碟的单位
mdadm 支持RAID0/RAID1/RAID5/spare disk 等,而且提供的管 理机制还可以达到类似热拔插的功能
附:热插拔(hot-plugging或Hot Swap)功能就是允许用户在不关闭系统,不切断电源的情况下取出和更换损坏的硬盘、电源或板卡等部件,从而提高 了系统对灾难的及时恢复能力、扩展性和灵活性等,例如一些面向高端应用的磁盘镜像系统都可以提供磁盘的热插拔功能。
(2)mdadm的参数
(3)以RAID-5的创建为例:(RAID-0、RAID-1的创建较简单)
<1>准备工作:RAID5 至少需要三块硬盘,我们拿/dev/sdf, /dev/sdg, /dev/sdh, /dev/sdi 这四块硬盘来做实验,三块做为活动 盘,另一块做为热备盘。
<2>创建RAID-5:
mdadm -C /dev/md5 -ayes -l5 –n3 -x1 /dev/sd[f,g,h,i]1
-n(活动磁盘的数量) -x(热备份磁盘的数量) -l(RAID的等级)
<3>查看raid5 状态 # cat /proc/mdstat # mdadm -D /dev/md5
<4> 添加raid5 到RAID配置文件/etc/mdadm.conf 并修改
# echo DEVICE /dev/sd{f,g,h,i}1 >> /etc/mdadm.conf
# mdadm –Ds >> /etc/mdadm.conf
<5>格式化磁盘阵列 # mkfs.ext4 /dev/md5
<6> 建立挂载点并挂载 # mkdir /raid5
# mount /dev/md5 /raid5
<7>写入/etc/fstab,开机重启后自动加载,不配置重启后丢失配置
这样就可以使用这个磁盘阵列了,就像加了一块大的空间,切换到挂载目录下使用。
(4)维护阵列的常用命令:
(5) 模拟raid5 中磁盘损坏来讲解软RAID 的维护操作 :
<1>加入测试的数据:touch 文件 或者是 dd一个文件
<2># mdadm /dev/md5 -f /dev/sdh1(模拟/sdh1损坏)
<3> cat /proc/mdstat 查看重建状态
<4> 测试之前的数据是否丢失(应该是未损坏的)
如何移除损坏的盘:
如何加一个新的热备盘:
如何加入一个新的存储磁盘而不是热备盘:
将加入的热备盘使用如下命令转化为活动盘:
最后一步:扩容文件系统 RAID 构建完毕后,阵列容量增加,但是文件系统还没有增加,这时 我们还需要对文件系统进行扩容。 # df –TH
# resize2fs /dev/md5
# df –TH
修改一下配置文件
(6)
为了防止系统启动时启动raid,还要删除/etc/fstab中的相关内容,防止因为找不到文件中的内容而出错。