Linux磁盘管理三:RAID详情介绍

1.RAID(了解)

1.1.概念

独立磁盘冗余阵列(Redundant Array of Independent Disks),通俗的讲就是把多块硬盘组成一个独立的磁盘阵列进行管理。
白皮书上的解释:RAID(独立冗余磁盘阵列)是一项能提升外部存储解决方案性能的简单技术。它能让您根据自己的需要选择最佳的设备使用方式。简单地说,RAID技术可以将一个硬盘上的任务分散或复制到多个(少则两个)磁盘上,借此来提高性能或建立数据冗余以防驱动器发生故障。您可以通过设定设备的RAID模式来决定设备以何种方式处理数据。

1.2.作用

容错、提升读写速率,即将一个硬盘上的任务分散或复制到多个(少则两个)磁盘上,借此来提高性能或建立数据冗余以防驱动器发生故障。

1.3.常见类型

RAID0:条带集 2块磁盘以上,读写速率快 100%*N,但不容错。
RAID1:镜像集 2块磁盘,容量50%,读写速率一般,容错。
RAID5:带奇偶校验条带集 3块磁盘以上,利用率(n-1)/n读写速率快,容错。

1.4.不同场景(软/硬)RAID的使用

  • 硬RAID:有专门的RAID控制处理器和I/O处理芯片来处理RAID任务,不需占用主机cpu资源,处理速度快,分有电池和无电池。
  • 软RAID:功能都依赖于主机cpu完成,没有第三方的控制处理器和I/O芯片,通过操作系统实现,比如Windows、Linux。

1.5.软RAID5示例

1.5.1.准备4块硬盘,(3块数据盘) + (1块热备硬盘)

[root@localhost ~]# ll /dev/sd*

1.5.2.创建RAID

[root@localhost ~]# yum -y install mdadm //确保mdadm命令可用
[root@localhost ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{d,e,f,g}

语法解释如下:
-C:创建RAID;
/dev/md0:第一个RAID设备;
-l:RAID类型;
-n:RAID成员的数量;
-x:热备磁盘的数量

1.5.3.格式化,挂载

[root@localhost ~]# mkfs.ext4 /dev/md0
[root@localhost ~]# mkdir /mnt/raid5
[root@localhost ~]# mount /dev/md0 /mnt/raid5
[root@localhost ~]# cp -rf /etc /mnt/raid5/etc1

1.5.4.查看RAID信息

[root@localhost ~]# mdadm -D /dev/md0 //-D 查看详细信息

字段解释如下:
/dev/md0:
Version : 1.2
Creation Time : Mon Jan 13 16:28:47 2016
Raid Level : raid5 ----raid类型
Array Size : 2095104 (2046.34 MiB 2145.39 MB)
Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)
Raid Devices : 3 ----组中设备的数量
Total Devices : 4 ----总设备数
Persistence : Superblock is persistent
Update Time : Mon Jan 13 16:34:51 2016
State : clean ----状态,卫生的,哈哈
Active Devices : 3 ----活跃3个
Working Devices : 4 ----4个在工作
Failed Devices : 0 ----坏了1就危险了,2个就完蛋了
Spare Devices : 1 ----热备的1个
Layout : left-symmetric
Chunk Size : 512K ----校验码大小
Number Major Minor RaidDevice State
0 8 48 0 active sync /dev/sdd ----同步
1 8 64 1 active sync /dev/sde ----同步
4 8 80 2 active sync /dev/sdf ----同步
3 8 96 - spare /dev/sdg

1.5.5.模拟一块硬盘损坏,并移除

终端一:watch持续查看
[root@localhost ~]# watch -n 0.5 'mdadm -D /dev/md0 | tail' 

终端二:模拟磁盘坏了并移除;-f --fail、-r --remove
[root@localhost ~]# mdadm /dev/md0 -f /dev/sde -r /dev/sde  

附:
1、6块300G的硬盘做raid5,新的设备容量是多大?
由于RAID5磁盘阵列兼顾了安全性和速度,所以有一块磁盘是要被用作安全备份区的,所以6块300G的磁盘实际使用到的只有5块 5*300=1500G

2、假设服务器具有6块900G本地磁盘,单块磁盘IO约为150M/S,现对磁盘进行RAID划分,简述理论上6块盘做成RAID5级别后实际存储大小、实际IO为多少?
理论上6块硬盘做raid5;其中有一块盘做冗余;因为有校验位;所以实际大小是900*(6-2)=3600G
实际IO是:写的速率150m/s*4=600m/s(小于,理论上写过程中,RAID5会进行校验耗费时间)
因为读取数据的时候校验位的盘是需要读取的所以实际:读的速率是(6-1)*150=750m/s

2.其他RAID类型

RAID 可以按照硬盘数量和组织方式不同分为不同类型的 RAID 实现。

  • 常见的: RAID 0、RAID 1、RAID 5、RAID 6、RAID 01、RAID 10
  • 不常见的:RAID 2、RAID3、RAID 4、RAID 7、RAID 50、RAID 53

常用RAID级别的比较:
(RAID-0,RAID-1,RAID-5,RAID-10,RAID-50,JBOD)
RAID-0性能最好;
RAID-1冗余度最高;
相同可用容量下,RAID-1和RAID-10开销最高

RAID-0:
读、写性能提升
可用空间:N*min(S1,S2,...)
无容错能力
最少磁盘数:2, 2+
优点:读、写性能提升,不存在校验,不会占太多CPU资源,设计、使用和配置比较简单;
缺点:无冗错能力,不能用于对数据安全性要求高的环境;
可用空间:N (硬盘个数) *min (s1,s2...取决于最小的硬盘空间)
适用领域:视频生成和编辑、图形编辑,其它需要大的传输宽带的操作

RAID-1:
读性能提升、写性能略有下降
可用空间:1*min(S1,S2,...)
有容错能力
最少磁盘数:2, 2N
磁盘数:最低2个,2n个,n大于等于1
优点:读性能提升、写性能略有下降,具有100%数据冗余,提供最高的数据安全保障,理论上可实现2倍的读取效率设计和使用较简单;
缺点:开销大,空间利用率只有50%,在写性能方面提升不大;
有冗余能力
可用空间:1*min (s1,s2...由最小硬盘的空间决定)
适用领域:财务、金融等高可用、高安全的数据存储环境

RAID-2:
采用校验冗余,把数据分散为位或块,加入汉明码,间隔写入到磁盘阵列的每个磁盘中在成员磁盘上的地址都一样
采用并行存取的方式
花费大、成本昂贵

RAID-3:
数据块被分成更小的块,并行传输到各个成员磁盘上,同时计算xor校验数据存放到专用的校验磁盘上;
xor算法:(异或)
相同为假、不同为真
磁盘数:最低3个
优点:读写性能都较好,当磁盘损坏时,对整体吞吐量影响较小,减少了开销;
缺点:控制器设计复杂,采用并行的存取方式,主轴同步时吞吐量没有提高,校验磁盘的写性能有瓶颈;
适用领域:视频生成和图形、视频编辑等;需要高吞吐量的应用环境;

RAID-4:
多块数据盘异或运算值存于专用校验盘
校验存储在固定磁盘
最少需要3块硬盘;
数据交叉存储在2块硬盘中,再由第3块硬盘存储数据的校验码;
校验码是由2块硬盘中的chunk块按位进行异或运算后而得的值;
其中1块硬盘坏了不影响文件数据读写操作,数据还可以恢复,但就是有些慢;即使坏了1块硬盘仍然继续在线工作时,称为降级模式,此时数据没有保障,风险较大;所以要马上用新硬盘替换坏硬盘,暂定业务,用2块可用盘进行计算,按位校验恢复数据到新硬盘即可,当所有数据都恢复到新硬盘后,就能继续正常工作了;但是万一在恢复过程中也是有风险的;
RAID4还有一个固有缺点:用单块盘作为存放校验码,无论前面哪块盘访问数据,校验盘都得被访问;即集中存放校验码的校验盘访问压力过大,很容易造成性能瓶颈;所以,尽早发现坏盘损坏,就能尽早更换;可以在接1块新硬盘当做空闲备用盘。
异或运算,存储校验码:
例如:1101,0110按位校验,校验码为:1011  
               
RAID-5:
读、写性能提升
可用空间:(N-1)*min(S1,S2,...)
有容错能力:允许最多1块磁盘损坏
最少磁盘数:3, 3+
校验有序的存储在不同磁盘
采用独立存取的阵列方式,校验信息被均匀的分散到阵列的各个磁盘上;
相对于RAID-4把校验码存放在一块硬盘上,而RAID-5是将3块盘循环轮流作存放校验码。左对称即校验码存放各盘的顺序是先在前2块盘存数据,第3块盘存校验码,依次类推,右对称相反。 
磁盘数:最低3个
优点:读性能较高,中等的写特性,校验信息的分布方式存取,避免出现写操作的瓶颈;
缺点:控制器设计复杂,磁盘重建的过程比较复杂;
可用空间:(N-1)*min(S1,S2,...其中的最小空间)
有容错能力:1块磁盘
适用领域:文件服务器、email服务器、web服务器等环境,数据库应用;

RAID-6:
读、写性能提升
可用空间:(N-2)*min(S1,S2,...)
有容错能力:允许最多2块磁盘损坏
最少磁盘数:4, 4+
有两个校验

RAID-10:
读、写性能提升
可用空间:N*min(S1,S2,...)/2
有容错能力:每组镜像最多只能坏一块
最少磁盘数:4, 4+
先使用RAID 1连接两块磁盘,在使用RAID 0连接4块磁盘
磁盘数:最低4个,2n个,n大于等于2;
优点: 读性能很高,写性能比较好,数据安全性好,允许同时有N个磁盘失效;
缺点:利用率只有50%,开销大;
可用空间:N*min(S1,S2,...其中最小空间)/2;
有容错能力:每组镜像最多只能坏一块;
适用领域:多用于要求高可用性和高安全性的数据库应用;

RAID-01:
多块磁盘先实现RAID0,再组合成RAID1
同RAID 10 ,只不过是先采用RAID 0
先分成两组做成RAID-0,再把组成的RAID-0做成RAID-1;不符合常用方法,每一组有一块坏的硬盘可能性大;

RAID-50:
多块磁盘先实现RAID5,再组合成RAID0
是RAID5和RAID0的结合,先实现RAID5,再条带化;(先做RAID-5在做RAID-0,最少6块盘,每组允许坏1块盘,空间利用率灵活)、RAID7(某家公司的私有技术,实际是文件服务器)
磁盘数:最低6个;
优点:比RAID5有更好的读性能,比相同容量的RAID5重建时间更短,可以容许N个磁盘同时失效;
缺点:设计复杂,比较难实现;同一个RAID5组内的两个磁盘失效会导致整个阵列失效;
适用领域:大型数据库服务器、应用服务器、文件服务器等应用;

JBOD:Just a Bunch Of Disks
功能:将多块磁盘的空间合并一个大的连续空间使用
可用空间:sum(S1,S2,...)

RAID7:
可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TA548464

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值