RAID(Redundant Array of Independent Disks )
一、独立冗余磁盘阵列
1、RAID:由多个独立的磁盘构成的一个容量巨大的磁盘组。
2、优点:1)、容量得到大的提升
2)、数据安全得到保障
3)、性能得到提升
通过独立冗余磁盘阵列,可以极大地扩展存储容量,增加数据安全性以及提升性能。
3、缺点:由于需要数据冗余,所以通常会损失 一定比例的磁盘的容量。
还有就是提高了支出成本。
e.g. 极端的情况下,RAID1 中,两块磁盘互为镜像,但是只能使用一块磁盘的容量。这时,容量损失了50%。
二、RAID的级别
1、RAID0
RAID0是最早出现的阵列技术。多个磁盘通过阵列控制器并联在一起,构成一个大的磁盘组合。在RAID0,数据呈现条带分布。
以上共有两块磁盘,数据块A1 和 数据块A2 组成条带0,依次类推。
1)、RAID0 可以提高磁盘的性能和读写速度,但是不能提供容错。所以,当阵列中的一块磁盘损坏后,就会导致数据丢失。
2)、数据被依次写入到各个物理硬盘中,即disk1 和disk2硬盘设备会分别保存数据资料。提升了读取,写入的速度,但是不具备数据备份和数据错误修复能力。
2、RAID1
RAID1又被称为磁盘镜像,由两块磁盘组成,一块作为主盘,另外一块作为备份盘。将两块硬盘进行绑定。
1)、当向主盘写入数据时,控制器会同时向备份盘写入同样的数据。因此,RAID1中存在着两块数据完全相同的磁盘。
2)、RAID1是数据安全性最好的RAID级别。即使另外一块磁盘完全损坏,一般会立即自动以热交换的方式来恢复数据,从备份的磁盘中还原数据。
3)、缺点:导致50%的容量损失以及写入性能的下降
3、RAID2
RAID2很少使用,与RAID0类似,只是以条带为单位,而不是块。组成RAID2至少3块硬盘。
4、RAID3
RAID3与RAID2数据存取方式类似,把数据以位为单位分割,分散存储在各个磁盘上。在数据安全方面,用奇偶校验做错误校正与检测,只需要一个额外的校验盘。
5、RAID4
RAID4和RAID3很像,数据都是依次存储在多个硬盘上的,奇偶校验码放在独立的奇偶校验盘上,唯一的不同,在数据分割上RAID3对数据的访问是按位进行的,RAID4以数据块为单位。
6、RAID5
RAID5是一种使用非常广泛的RAID。RAID5兼顾了存储性能,数据安全,和存储成本。RAID5至少需要3块硬盘
1)、由上图可知,RAID5是将数据和相应的奇偶校验信息分散存储在组成RAID5的各个磁盘上,并且奇偶校验信息和对应得数据可以位于不同的磁盘上。
2)、RAID5中的一个磁盘出现故障,控制器会利用剩下的数据和奇偶校验信息去恢复损坏的数据。
7、RAID10
RAID10是RAID0和RAID1的一个组合体。RAID至少需要4块硬盘
1)、先分别两两制作成RAID1 磁盘阵列,保证数据的安全性。
2)、然后再对两个RAID1磁盘阵列实施RAID0技术,提高硬盘设备的读写速度。
3)、RAID10继承了RAID0的高读写速度和RAID1的数据安全性。
4)、在不考虑成本下,RAID10是超过RAID5的性能,成为生产环境主要使用的技术。
三、部署RAID10
一)、虚拟机添加四块硬盘
二)、mdadm命令
mdadm是Linux系统中创建和管理阵列的工具,默认情况下,Ubuntu没有安装该工具,用户可以输入以下命令安装:
sudo su
apt install mdadm
mdadm的基本命令如下:
mdadm [mode] <RAID 设备名称> [options] [成员设备名称]
1、开始创建RAID
mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
-C :创建一个RAID阵列卡
-v :显示创建过程
/dev/md0 :新创建的RAID名
-a yes :自动创建设备文件
-n 4 :用4块硬盘来部署这个RAID
-l 10 :RAID10 方案
/dev/sdb /dev/sdc /dev/sdd /dev/sde :包含的4块硬盘设备名称
2、格式化RAID类型为ext4
mkfs.ext4 /dev/md0
3、挂载RAID:md0
1)、创建挂载点
mkdir /raidmount
2)、挂载到/raidmount
mount /dev/md0 /raidmount
3)、查看挂载信息
df -h
4)、查看挂载的RAID的详细信息
-D 选项
mdadm -D /dev/md0
5)、挂载信息写入配置文件中
echo "/dev/md0 /raidmount ext4 defaults 0 0" >> /etc/fstab
测试已经写入:cat /etc/fstab
四、损坏RAID和修复
1、在确认有一块物理硬盘设备损坏而不能继续使用时,应该使用mdadm -f 删除损坏的硬盘,然后观察RAID的详细信息
1)、mdadm /dev/md0 -f /dev/sdb
-f :模拟设备损坏,移除
2)、mdadm -D ./dev/md0
关键是看这里:
-D:显示新建的RAID的详细信息(detail)
2、在RAID10级别的磁盘阵列中,当RAID1中存在一个故障盘时并不影响RAID10的使用,购买了新硬盘后再使用这个mdadm命令替换就可以了。
在损坏期间,可以对/raidmount 目录中创建和删除文件。
在虚拟机中,只需要重启系统,添加一个新的硬盘,然后再将这个新硬盘添加到RAID中。
umount /raidmount
mdadm /dev/md0 -a /dev/sde
mdadm -D /dev/md0
五、RAID备份盘
RAID10 中最多允许50%的硬盘设备发生故障。但是也有一种极端情况。
同一RAID1的磁盘阵列中的硬盘设备若全部损坏,也会导致数据丢失。
在RAID10中,RAID1中的某一块硬盘坏了,我们在修复的路上,发现RAID1的另一块硬盘设备也坏了。这时数据就会彻底丢失。
使用RAID备份盘技术来预防这类事故。
核心理念:准备一块足够大的硬盘,平时处于闲置状态,一旦RAID中硬盘出现事故马上自动顶替。
六、部署RAID5
部署RAID5至少需要3块硬盘,还需要加一块备份盘,因此一共也是需要4块硬盘设备。
1、开始创建RAID5+备份盘
1)、创建RAID5,并查看RAID的详细信息
mdadm -Cv /dev/md1 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
-n 3:创建这个RAID5需要的硬盘数
-l 5 :RAID 的级别 RAID5
-x 1:创建一块备份盘
查看新建的RAID5的详细信息:mdadm -D /dev/md1
2)、格式化RAID5(创建文件系统类型为ext4)
mkfs.ext4 /dev/md1
3)、 挂载在/raidmount目录上
mount -a
4)、移除损坏硬盘设备/dev/sdb查看RAID5的情况
mdadm /dev/md1 -f /dev/sdb
mdadm -D /dev/md1
发现备份盘马上顶替上去