raid技术快速入门

RAID技术

简介
raid全称为Redundant Arrays of Independent Drives,即磁盘冗余阵列。这是由多块独立磁盘(多为硬盘)组合的一个超大容量磁盘组。Raid技术意图在于把多个独立的磁盘设备组成一个容量更大,安全性更高的磁盘阵列组,将数据切为多个区段之后分别存储在不同的物理硬盘上。利用分数读写技术提升磁盘整体性能,数据同步在不同的多个磁盘,数据也得到了冗余备份的作用。

raid特性
Raid磁盘阵列能够提升数据冗余性,当然也增加了硬盘的价格成本,只不过数据本身的价值是超过硬盘购买的价格的,Raid处理能够保障数据丢失造成的严重损失,还能提升硬盘读写效率,被广泛应用在企业中。

磁盘的模式
独立模式:一块硬盘单独的工作,读写数据
热备模式:为了防止单独的一块磁盘损坏,随时准备好另一块硬盘准备接替工作
集群模式:一堆硬盘共同提高服务,提高读写效率

raid技术级别

raid技术分为多个级别,不同的级别由于技术角度的考虑,还有公司运营成本的考虑,不同的企业选择不同级别的raid技术。raid0,raid1,raid5,raid10。

Raid0–(>=2)

两个或两个以上相同型号容量的硬盘组合,磁盘阵列的总容量便是多个硬盘的总和。
数据依次写入到物理磁盘,在理想状态下,写入速度是翻盘的。
特点:
数据写入到两块磁盘中,没有备份的功能,但凡任意一块磁盘损坏,数据都将被破坏。
适用场景:
使用追求极致性能的场景,而不是关注于数据安全性的场景,读写效率高,但是数据没有安全性保障。

raid1-- (>=2)

将两块以上硬盘绑定,数据同时写入多块硬盘,因此即使硬盘故障损坏,也不惧怕数据丢失,因为由备份。但是这种方式极大降低了磁盘利用率,假设两块硬盘一共4T,真是数据只有2T,利用率只有50%,如果是三块硬盘组成raid1,利用率只有33%,也是不可取的。大小可以一样,以小的为准。缺点是浪费资源,成功过高。

raid3-- (>=3)

至少需要3块硬盘,只要校验盘没有损坏,坏了一块数据盘可以通过异或运算反推数据来恢复。特点是:存储着异或值的磁盘不得损坏。

异或运算

A B AXORB
0 0 0
0 1 1
1 0 1
1 1 0

raid5-- (>=3)

校验码均匀的放在每一刻硬盘上,依次即使挂了任意一块硬盘都能反推出原来的数据。读性能一般,写性能较差。

raid10-- (>=4)

raid10其实是raid0加速raid1,即由raid0的效率,又有raid1的安全性,因此至少需要四块硬盘搭建raid10。

1.通过raid1两两镜像复制,保证数据安全性
针对两个raid1部署raid0,进一步提升磁盘读写速度
只有坏的不是同一组中所有硬盘,那么就算坏掉一半硬盘读不会丢失数据

总结:
冗余从好到坏:1,10,5,0
性能从好到坏:0,10,5,1
成本从低到高:0,5,1,10

根据数据的存储和访问需求,匹配对应raid级别:
单台服务器,很重要,磁盘不多,系统盘,raid1
数据库服务器,主库,raid10,从库raid5\0
web服务器,如果没有太多的数据的情况下,raid5,raid0
有多台监控应用服务,raid0和raid5

部署raid10

mdadm命令

用于建设,管理和监控raid技术的命令

安装: yum install mdadm -y

参数:
-C  用于未使用的设备,创建raid
-a  yes or no ,自动创建阵列设备
-A  激活磁盘阵列
-n  指定设备数量
-l  指定raid级别
-v  显示过程
-S  停止raid阵列
-D  显示阵列详细信息
-f  移除设备
-x  指定阵列中备用盘的数量
-s  扫描配置文件或/proc/mastat,等到阵列信息
--misc  --zero-superblock  卸载磁盘

raid10的创建和使用

环境准备
准备四块硬盘
[root@localhost ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb  /dev/sdc  /dev/sdd  /dev/sde

2.创建raid10
[root@localhost ~]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Fail to create md0 when using /sys/module/md_mod/parameters/new_array, fallback to creation via node
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

3.检查raid10分区
[root@localhost ~]# fdisk -l |grep /dev/md
Disk /dev/md0: 42.9 GB, 42914021376 bytes, 83816448 sectors

4.格式化磁盘阵列文件系统
[root@localhost ~]# mkfs.xfs /dev/md0

5.挂载使用
[root@localhost ~]# mkdir /myraid10
[root@localhost ~]# mount /dev/md0 /myraid10/
[root@localhost ~]# mount -l |grep md0
/dev/md0 on /myraid10 type xfs (rw,relatime,attr2,inode64,sunit=1024,swidth=2048,noquota)

6.检查挂载分区使用情况
[root@localhost ~]# df -hT | grep md0
/dev/md0       xfs        40G   33M   40G   1% /myraid10

7.检查raid10磁盘阵列的信息
mdadm -D  /dev/md0

8.将raid10加入开机挂载配置文件,让它开机自动挂载
[root@localhost ~]# echo -e "/dev/md0 /myraid10 xfs  defaults 0 0" >> /etc/fstab 
[root@localhost ~]# tail -1 /etc/fstab
/dev/md0 /myraid10 xfs  defaults 0 0
#至此raid10创建完成

raid故障修复

1.剔除一块硬盘,模拟一块硬盘故障
[root@localhost ~]# mdadm /dev/md0 -f /dev/sdd
mdadm: set /dev/sdd faulty in /dev/md0

2.检查raid10的状态
[root@localhost ~]# mdadm -D /dev/md0 
#结论:挂掉一块磁盘并影响使用,只需重新替换损坏硬盘即可

3,修复
a.在无人使用的时候先取消raid阵列的挂与开机自动挂载   
b.从重启操作系统	reboot

4.添加新设备
mdadm /dev/md0 -a /dev/sdd
在此有一个修复过程,等待raid10修复完毕
可用是mdadm -D /dev/md0 #检查进程
[root@localhost ~]# mdadm -D /dev/md0 | grep Rebuild
    Rebuild Status : 25% complete
# 等到修复完毕即可

软raid10 重启

注意要配置raid配置文件,否则如果停止软raid后就无法激活了,严格按照笔记操作。

1.手动创建配置文件
[root@localhost ~]# echo DEVICE /dev/sd[b-e] > /etc/mdadm.conf
#扫描磁盘阵列信息,追加到/etc/mdadm.conf下
[root@localhost ~]# mdadm -Ds >> /etc/mdadm.conf 
[root@localhost ~]# cat /etc/mdadm.conf 
DEVICE /dev/sdb /dev/sdc /dev/sdd /dev/sde
ARRAY /dev/md/0 metadata=1.2 name=localhost.localdomain:0 UUID=a6783a55:84dea1f9:ad400817:d7aac4ed

2.取消挂载
[root@localhost ~]# umount  /dev/md0
umount: /dev/md0: not mounted

3.停止raid10
[root@localhost ~]# mdadm  -S /dev/md0
mdadm: stopped /dev/md0
# 检查
[root@localhost ~]# mdadm -D /dev/md0
mdadm: cannot open /dev/md0: No such file or directory

4.在有配置文件的情况下,可用正常启动raid10
mdadm -A /dev/md0

5.检查激活情况
mdadm -D /dev/md0 

删除raid10

1.先卸载磁盘
[root@localhost ~]# umount /dev/md0
umount: /dev/md0: not mounted

2.停止raid服务
mdadm -S /dev/md0

3.卸载raid中所有的硬盘
mdadm --misc --zero-superblock  /dev/sdb
mdadm --misc --zero-superblock  /dev/sdc
mdadm --misc --zero-superblock  /dev/sdd
mdadm --misc --zero-superblock  /dev/sde

4.删除raid配置文件
rm /etc/mdadm.conf 

5.删除开机自动挂载配置文件中的相关内容
sed '$d' /etc/fstab -i

raid与备份盘

1.用四块硬盘做演示,三块盘搭建raid阵列组,一块左备份盘
以raid5来配置三块磁盘,加上一块备份盘
[root@localhost ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Fail to create md0 when using /sys/module/md_mod/parameters/new_array, fallback to creation via node
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

2.检查raid状态
mdadm -D /dev/md0

3.格式化文件系统
 mkfs.xfs -f /dev/md0

4.挂载文件系统开始使用分区
 mount /dev/md0 /mnt

5.检查挂载情况
mount -l |grep md0

6.写入数据,检查raid阵列是否可用正常使用
[root@localhost ~]# df  -hT |grep md0
/dev/md0       xfs        40G   74M   40G   1% /mnt

7.查看备用盘
[root@localhost ~]# mdadm -D /dev/md0 |grep spare
       3       8       64        -      spare   /dev/sde

8.见证备份磁盘的作用,提出一块磁盘
[root@localhost ~]# mdadm /dev/md0 -f /dev/sdd
mdadm: set /dev/sdd faulty in /dev/md0

8.惊喜发现备份磁盘自动补上
[root@localhost ~]# mdadm -D /dev/md0 |grep sd
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       3       8       64        2      active sync   /dev/sde
       4       8       48        -      faulty   /dev/sdd


[root@localhost ~]# mdadm -D /dev/md0 |grep spare
       3       8       64        2      spare rebuilding   /dev/sde
# rebuilding  重建,使复原
# faulty  错误的

9.恢复
# 取消挂载
umount /dev/md0
# 重新加进来
mdadm /dev/md0 -a /dev/sdd
#此时备份盘已经变成了sdd
[root@localhost ~]# mdadm -D /dev/md0 |grep spare
       4       8       48        -      spare   /dev/sdd

上一篇:存储设备的硬盘安装到服务器上无法使用的问题?


下一篇:Linux 磁盘管理-磁盘阵列-一些基本知识