RAID基础原理

目录

一、作用及基本原理

1.改善性能

2.提高可靠性

二、RAID级别

1.RAID-0:条带卷,strip

2.RAID-1:镜像卷,mirror

3.RAID-4:块交织奇偶结构

4.RAID-5:块交织分布奇偶结构

5.RAID-6:P+Q冗余方案

6.混合类型

7.其他

8.JBOD

三、CentOS 6上的软件RAID的实现

1. -C:创建模式

2. -D:显示raid的详细信息

3.管理模式

4.删除软件RAID,并移除磁盘

参考资料

RAID:Redundant Arrays of Independent Disks        独立冗余磁盘阵列

      拥有大量磁盘的系统,有机会改善数据读写速度和提高数据存储的可靠性

一、作用及基本原理

1.改善性能

通过负荷平衡增加吞吐量;降低访问响应时间

基本原理:磁盘并行读写

                                   位级分散

                                   块级分散

2.提高可靠性

      在磁盘出错时,重新修补损坏信息

基本原理:引入磁盘冗余

P.S. RAID不能代替备份,防止因磁盘损坏而终止业务;但若误删文件,则镜像盘的相应文件也被删除,因而即使有RAID仍需要做备份

二、RAID级别

      级别level:多块磁盘组织在一起的工作方式有所不同

      RAID实现的方式:

                  外接式磁盘阵列:通过扩展卡提供适配能力

                  内接式RAID:主板集成RAID控制器

                  Software RAID:

      常用级别:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD

1.RAID-0:条带卷,strip

      按块级分散的,无冗余的磁盘阵列

      特点:

            读、写性能提升

            可用空间:N*min(S1,S2,...)

            无容错能力

            最少磁盘数:2, 2+

      应用场景:数据损失并不会有特别大影响的某些高性能应用

2.RAID-1:镜像卷,mirror

      磁盘镜像

      特点:

读性能提升(配合镜像盘一起读)、写性能略有下降

            可用空间:1*min(S1,S2,...)

            有冗余能力

            最少磁盘数:2, 2+

            高存储空间开销

      应用场景:需要高可靠性和快速恢复的应用

3.RAID-4:块交织奇偶结构

      采用与RAID-0一样的块级分散,并在一块独立磁盘上保存其他磁盘相应块进行异或运算后的奇偶块

 

      特点:

            允许块全为0的磁盘无缝加到RAID集合

            P.S. 0⊕0 = 0     0⊕1 = 1

一个磁盘错了,奇偶磁盘块可以和其他磁盘的相应块一起用于恢复出错磁盘的块

对于小于块大小的数据必须访问磁盘所在块,修改数据后写回;两次读入旧块(一块是奇偶块),两次写入新块

应用:WAFL文件系统

4.RAID-5:块交织分布奇偶结构

      将数据和奇偶块分布在所有N+1个磁盘上

      特点:

            避免了RAID-4对单个奇偶磁盘的过度使用,导致所有奇偶丢失的情形

读、写性能提升

            可用空间:(N-1)*min(S1,S2,...)

            有容错能力:1块磁盘

            最少磁盘数:3, 3+

5.RAID-6:P+Q冗余方案

      在RAID-5基础上,还额外多使用一个差错纠正码(不同于奇偶校验)保存冗余信息以防止多个磁盘出错

      特点:

读、写性能提升,写入效率比RAID5差

            可用空间:(N-2)*min(S1,S2,...)

            有容错能力:2块磁盘

            最少磁盘数:4, 4+

6.混合类型

①RAID-10

磁盘先镜像,再分散

      特点:

读、写性能提升

            可用空间:N*min(S1,S2,...)/2

有容错能力:每组镜像最多只能坏一块

最少磁盘数:4, 4+

      应用场景:小型数据库

②RAID-01

7.其他

①RAID-2:内存方式的差错纠正代码结构

      以汉明码(Hamming Code)的方式将数据进行编码后分区为独立的比特,并将数据分别写入硬盘中

      应用场景:大型机、超级计算机

②RAID-3:位交织奇偶结构

      特点:

相对于RAID-1,RAID-3只需要一个奇偶磁盘,降低了额外存储,采用N路分散数据,因而速度是RAID-1的N倍

            奇偶校验带来的性能问题通过专用奇偶奇偶计算硬件的控制器,将CPU上的奇偶计算转移到RAID阵列上,并借助NVRAM提高计算及缓存速度

③RAID-7

RAID 7并非公开的RAID标准,而是Storage Computer Corporation的专利硬件产品名称,RAID 7是以RAID 3及RAID 4为基础所发展的,但是经过强化以解决原来的一些限制

使用大量的高速缓存以及用以实现异步数组管理的专用即时处理器,使得RAID 7可以同时处理大量的IO要求,所以性能甚至超越了许多其他RAID标准的实做产品

价格非常高昂

④RAID-50

RAID 5与RAID 0的组合,先作RAID 5,再作RAID 0,也就是对多组RAID 5彼此构成Stripe访问。由于RAID 50是以RAID 5为基础,而RAID 5至少需要3颗硬盘,因此要以多组RAID 5构成RAID 50,至少需要6颗硬盘。

RAID 50由于在上层把多组RAID 5构成Stripe,性能比起单纯的RAID 5高,容量利用率比RAID5要低

8.JBOD

Just a Bunch Of Disks

      功能:将多块磁盘的空间合并一个大的连续空间使用

数据的存放机制:由第一颗硬盘开始依序往后存放

      可用空间:sum(S1,S2,...)

三、CentOS 6上的软件RAID的实现

软件实现RAID是基于内核中的md(multi devices)模块

      mdadm模式化的工具

      命令的语法格式:mdadm [mode] <raiddevice> [options] <component-devices>

      支持的RAID级别:LINEAR(即JBOD), RAID0, RAID1, RAID4, RAID5, RAID6, RAID10

      模式:

            创建:-C    (create)

            装配:-A    (assemble)

            监控:-F    (follow)

            管理:-f, -r, -a

      <raiddevice>:/dev/md#

      <component-devices>:任意块设备

1. -C:创建模式

-n #:使用#个块设备来创建此RAID

            -l #:指明要创建的RAID的级别

            -a {yes|no}:自动创建目标RAID设备的设备文件

            -c CHUNK_SIZE:指明块大小

            -x #:指明空闲盘的个数

e.g. 创建一个10G可用空间的RAID5(越多盘浪费的空间越小),允许坏一块空闲盘和一个磁盘,然后进入降级模式

            P.S. 需要调整类型为fd

调整完记得w写入

由blkid命令取得UUID,再修改/etc/fstab实现开机挂载

2. -D:显示raid的详细信息

mdadm -D /dev/md#

3.管理模式

-f:标记指定磁盘为损坏

-a:添加磁盘

-r:移除磁盘

观察md的状态:

cat /proc/mdstat

停止md设备:

mdadm -S /dev/md#

watch命令:

            -n #:刷新间隔,单位是秒

watch -n#  ' COMMAND '

4.删除软件RAID,并移除磁盘

①标记磁盘损坏再移除

      mdadm -f /dev/sda[5-8] -r /dev/sda[5-8]

      ②停止并移除软件RAID

      mdadm -S /dev/md0

      mdadm –remove /dev/md0

      ③删除RAID分区中的元数据

mdadm --misc --zero-superblock /dev/sda[5-8]

其他

防止系统启动时候启动raid

cat /dev/null > /etc/mdadm.conf

cat /dev/null > /etc/raidtab

练习

①创建一个可用空间为10G的RAID1设备,要求其chunk大小为128k,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录

mdadm -C /dev/md0 -l 1 -n 2 -x 1 -c 128k /dev/sda{6,7,8}

mke2fs -t ext4 /dev/md0

mkdir /backup

mount /dev/md0 /backup

blkid /dev/md0

vim /etc/fstab

UUID=’’ /backup          ext4      defaults      0    0

②创建一个可用空间为10G的RAID10设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录

mdadm -C /dev/md0 -l 10 -n 4 -x 1 -c 256k /dev/sda{6,7,8,9,10}

mke2fs -t ext4 /dev/md0

mkdir /mydata

mount /dev/md0 /mydata

blkid /dev/md0

vim /etc/fstab

UUID=’’ /mydata    ext4      defaults      0    0

参考资料:

①马哥随堂笔记

②操作系统概念(第7版,翻译版),【美】Abraham Silbers等著,郑扣根译,高等教育出版社

③https://wk.mekaku.com/wiki/RAID

注:诚恳欢迎读者对本文提出批评意见,若发现存在错误,我定第一时间修改。如果读者觉得文章对您有帮助,欢迎点赞鼓励一下哟٩(๑❛ᴗ❛๑)۶。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值