除了上面说的RAID1外,还有很多RAID类型 。不同的RAID类型实现不同的功能 。比如RAID0实现条带化,主要是提升性能;RAID1则是实现数据的冗余,防止磁盘故障导致的数据丢失;由于上述RAID只能解决一方面的问题,因此有人讲两者结合,出现了RAID10和RAID01,这样既能保证数据的可靠性,又能提升性能 。
由于RAID1是一份数据写到两个设备,因此只有50%的有效数据 。为了提高有效数据率,于是发明了RAID5和RAID6等类型 。其中RAID5通过增加一个校验数据来保证数据的可靠性,以5块盘的RAID5为例,其中有效数占4块盘的空间,有效数据80% 。但是RAID5有个问题,就是一组磁盘中只能坏一块,如果损坏的磁盘超过1块就会导致数据丢失 。RAID6的算法与RAID5类似,它的特点是可以容忍2块磁盘故障 。
在实现层面,Linux的RAID实现在用户态和内核态都有涉及 。其中用户态主要进行RAID的管理,而内核态一方面配合用户态进行RAID管理,另外一方面则实现对IO的处理,这部分才是RAID最为核心的内容 。

文章插图
图4 软件架构
对于基于SCSI物理磁盘的RAID来说,Linux环境下整个软件架构如图4所示 。其中虚线以上的为用户态的软件模块,虚线以下的为内核态的软件模块 。这里比较核心的是RAID公共层,在这里主要创建md设备,该设备是一个逻辑设备,也是用户可以看到的RAID设备 。其下则是具体的RAID模块,用于实现不同的RAID级别(算法) 。
再往下就是通用SCSI驱动层了,也就是图中的SCSI磁盘驱动这一层的内容 。该层其实是SCSI系统的上层驱动(SCSI子系统分为上中下三层) 。RAID模块通过调用该层的数据访问接口就可以实现物理磁盘数据读写了 。
推荐阅读
- 介绍一种可以让Linux中存储具有弹性容量的方法
- 华为鸿蒙系统笔记本电脑 国产电脑操作系统有哪些
- 国产手机系统流畅排名 ubuntu手机操作系统教程
- 扭王字块A型B型区别,扭王字块安装方式
- 长江存储科技有限责任公司是国企吗 长江证券公司是国企吗
- 运维工程师必知的十项Linux常识
- linux基础入门知识 linux系统应用
- 大家存照片都用的什么软件啊 照片存储
- vista是什么意思 vista操作系统
- 科目二倒车入库6个点 倒车入库
