raid (独立的磁盘冗余阵列)

  • 高并发的因素:
    • 网速、内存、CPU、磁盘、系统的优化;
  • 系统扩展的方式:
    • 横向扩展:
      • 扩展实例,加服务器、磁盘;
    • 垂直扩展:
      • 加CPU、内存、网卡、磁盘. . .

1、历史

  • 1988年,由伯克利大学的D.A.Patterson出品;
  • 名字的变更: 独立的磁盘冗余阵列---->廉价的磁盘冗余阵列;

2、raid概念

    **磁盘阵列**(Redundant Arrays of Independent Disks,RAID),有“**独立磁盘构成的具有冗余能力的阵列**”之意。
    磁盘阵列是由很多块独立的[磁盘](https://baike.baidu.com/item/%E7%A3%81%E7%9B%98/2842227),**组合**成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。
    磁盘阵列还能利用同位检查(Parity Check)的观念,当[数组](https://baike.baidu.com/item/%E6%95%B0%E7%BB%84/3794097)中任意一个硬盘发生故障时,仍可读出数据。在数据重构时,可将数据经计算后重新置入新硬盘中;

3、raid实现的分类

(1)软RAID:由操作系统自身的算法来实现的,需要依赖消耗系统本身的资源,不适用与大型,密集型的计算场景

(2)硬RAID:由一个物理的RAID来组成的RAID,不需要依赖消耗操作系统本身的资源,性能好。
  • 目前常见的分类由raid0,raid1,raid5,raid 6,raid10,RAID 01,raid50等

4、硬raid

   RAID卡就是一种利用独立硬件来实现RAID功能的方法。要在硬件上实现RAID功能,必须找一个物理硬件作为载体,SCSI卡或者主板上的南桥无疑就是这个载体了,RAID卡有PCI-E插槽的,也有直接集成在主板上的类型,但是他们的功能都是一样,RAID卡上有一套单独的计算单元(比如CPU,内存,IO处理总线等),用于实现RAID的功能。
1、由于RAID功能是单独通过RAID卡来完成的,不在依赖于底层操作系统来完成,因此它的性能更好

2、如果是使用的PCI-E插槽的RAID,可以更换性能更强的RAID卡,可以提高更好,更稳定的IO性能,更加灵活
1、RAID卡属于一种单独的设备,如果需要升级需要单独购买

2、软RAID由于RAID的信息是写在磁盘上的,迁移方便,但是硬件RAID的信息是写在RAID卡上,一旦RAID出现问题,会导致系统无法识别硬盘。

5、raid的形态

5.1、raid0(条带卷

  • raid0:条带卷;
  • 磁盘的数量:>=1 ;
  • 性能:n倍单块磁盘的新能;
  • 最多有几块磁盘故障:不能出现单边磁盘故障;
  • 磁盘的利用率:100%(所有raid中磁盘利用率最高);
优点: 
1. 充分利用I/O总线性能使其带宽翻倍,读写速度翻倍。

2. 充分利用磁盘空间,利用率为100%。

缺点: 1. 不提供数据冗余。

1. 无数据检验,不能保证数据的正确性。
2. 存在单点故障。

应用场景:

1. 对数据完整性要求不高的场景,如:日志存储,个人娱乐。
2. 要求读写效率高,安全性要求不高,如图像工作站。

5.2、raid1(镜像卷)

  • raid1:镜像卷;
  • 磁盘的数量:>=2 ;
  • 性能:没有提升(下降);
  • 最多有几块磁盘故障:可以允许有单块磁盘出现故障;
  • 磁盘的利用率:n-1/n;
优点:

1. 提供数据冗余,数据双倍存储。
2. 提供良好的读性能

缺点:

1. 无数据校验。
2. 磁盘利用率低,成本高。

应用场景:

1. 存放重要数据,如数据存储领域。

5.3、raid4\5

  • raid4和5,是一样的。只不过raid4是有一块单独的磁盘存放奇偶校验值的;raid5是采用依次、按右对齐的算法进行排序的;
  • 磁盘的数量:>=3;
  • 性能:(n-1)*单块磁盘的IO性能;
  • 最多有几块磁盘故障:1;
  • 磁盘的利用率:n-1/n;
  • raid 5 奇偶验证值,是依次的放在磁盘中,使用右对齐算法;
优点:

1. 读写性能高
2. 有校验机制
3. 磁盘空间利用率高

缺点:

磁盘越多安全性越差

应用场景:

安全性高,如金融、数据库、存储等、

5.4、raid6

  • 与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。双重奇偶校验;
  • 原理:两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,写性能比RAID5差。
  • 磁盘的数量>=4;
  • 性能=(n-2)*单块磁盘的IO性能;
  • 最多有几块磁盘故障:2;
  • 磁盘的利用率:n-2/n;
优点:

1、 良好的随机读性能

2、 有校验机制

 

缺点:

1、 写入速度差

2、 成本高

应用场景:

对数据安全级别要求比较高的企业

5.5、raid 01

  • raid 01 \ 10 \50 \60 都是组合型raid;
  • RAID 01:RAID 0和RAID 1的组合形式;
  • 原理:先做RAID 0再将RAID 0组合成RAID 1,拥有两种RAID的特性;

  • 数量:>=4
  • IO性能:有所提升;
  • 允许单边单块或双块的故障,不允许双边单块的故障;
  • 利用率:n - 2 / n
优点:

1、 较高的IO性能

2、 有数据冗余

3、 无单点故障

缺点:

1、 成本稍高

2、 安全性比RAID 10 差 

5.6、raid 10

  • 原理:先做RAID 1再将RAID 1组合成RAID 0,拥有两种RAID的特性,安全性高;
  • 数量:>=4
  • IO性能:有所提升;
  • 允许双边单块的故障,不允许单边单块或双块的故障;
  • 利用率:n - 2 / n
优点:

1. RAID 10的读性能将优于RAID 01
2. 较高的IO性能
3. 有数据冗余
4. 无单点故障
5. 安全性高

缺点:

成本稍高

应用场景:特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,如银行、金融、商业超市、仓储库房、各种档案管理等。

5.7、raid 50 \ 60 \ 7

  • 50的数量 >=6
  • 60的数量 >=8
  • raid7是私有的,性能好;

5.8、磁盘簇(jbod)

  • 将多个组合在一块,第一个使用完了再使用第二个;

5.9、不同raid的对比

数量 性能 容错 利用率
raid0 >=1 n * 单块磁盘的IO性能 磁盘不允许出错 100%
raid1 >=2 没有提升(些许下降) 允许单块磁盘出现故障 50%
raid4 >=3 n -1 * 单块磁盘的IO性能 允许单块磁盘出现故障 n-1/n
raid5 >=3 n -1 * 单块磁盘的IO性能 允许单块磁盘出现故障 n-1/n
raid 6 >= 4 n -2 * 单块磁盘的IO性能 允许两块磁盘出现故障 n-2/n
raid 01 >=4 有提升 允许单边单块或两块出现故障,不允许双边单块出现故障; n-2/n
raid 10 >=4 有提升 允许双边单块出现故障,不允许单边单块出现故障; n-2/n
raid 50 \ 60 50 >=6 60 >=8 有提升 n-2/n

6、软raid的实例分配

  • 安装mdadm 软件
yum -y install mdadm

  • mdadm的语法格式
mdadm语法格式
mdadm [options] device


选项参数说明:

-C  创建阵列  create
-A  激活磁盘阵列  active
-D  打印阵列详细信息  display
-s  扫描磁盘阵列/porc/mdstat,得到阵列缺省信息
-f   将设备状态定位故障
-a  自动创建目标RAID设备的设备文件
-v  显示详细信息
-r   移除设备
-S  解除阵列,释放所有资源  stop
-l   设定磁盘阵列的级别
-x   指定磁盘阵列的备用用盘数量
-c   设定阵列的块chunk大小,单位KB ,默认512KB   
-G  该表阵列大小或形态  grow
-n  磁盘阵列的数量  


例如:(创建raid0的配置实例)
mdadm -C /dev/md0 -n2 -l0 /dev/sda /dev/sdb 

例如:

例如:(创建raid0的配置实例)
mdadm -C /dev/md0 -n2 -l0 /dev/sda /dev/sdb -x /dev/sde 

-x 是指定热备盘;
查看raid0 的信息;
mdadm -D /dev/md0     ##查看raid信息
创建md0的配置文件;
[root@localhost ~]# mdadm -Ds > /etc/mdadm.conf
[root@localhost ~]# cat /etc/mdadm.conf 
ARRAY /dev/md0 metadata=1.2 name=localhost.localdomain:0 UUID=1c2a95dd:157de9e1:d1114fab:15205fa6
创建文件系统,挂载使用;
格式化: mkfs.ext4 /dev/md0 


挂载:
[root@localhost ~]# mkdir /raid0
[root@localhost ~]# mount /dev/md0 /raid0
停止raid 0
先取消挂载:umount /raid0

停止:mdadm -S /dev/md0
激活raid 0
mdadm -A /dev/md0
故障模拟
模拟磁盘sdc6 出现故障:
mdadm /dev/md1 -f /dev/sdc6

移除故障磁盘:
[root@localhost ~]# mdadm /dev/md1 -r /dev/sdc6

加入新的磁盘:
[root@localhost ~]# mdadm /dev/md1 -a /dev/sdc6

更改阵列形态:
mdadm -G /dev/md6 -n 5     ##改变阵列形态

添加热备盘:
mdadm /dev/md10 -a /dev/sdb7     ##添加热备盘
删除创建的raid
mdadm --zero-superblock /dev/sdc1
posted @ 2024-04-06 21:43  Honey-pot  阅读(65)  评论(0)    收藏  举报