软硬RAID 和 不常见的RAID
若转载请于明显处标明出处:http://www.cnblogs.com/kelamoyujuzhen/p/5561809.html
为啥子引入RAID?
存储最现实的两个问题:速度、容量
回顾计算机发展历史,以我们最常用的minicomputer为例,一个tower或cabinet也就装几块硬盘,虽然现在SATA单块盘都做到3T了,但是对于企业而言还是远远不够。这是容量问题。
速度问题:
1、无论单碟盘 还是 多碟盘,单位时间只能有一个磁头在读写,多磁头并发读写的产品目前还没有。
2、影响磁盘速度的主要原因在于换道,如何有效减少换道时间
针对 速度+容量 这2个问题,RAID问世了。将多块磁盘组成RAID,既提高了容量,又提高了速度(一块磁盘在换道,其他磁盘不一定啊,因此大大提高效率)。
RAID类型
软RAID
1、占用内存空间
2、占用CPU资源
3、软件RAID程序无法将安装有OS的那个Disk 分区做成RAID模式
硬RAID(RAID卡)
种类:
0通道RAID
无驱RAID
RAID on chip (ROC技术)
所谓初始化就是说在系统加电之后, CPU 执行系统总线特定地址上的第一句指令,这个地址便是主板 BIOS 芯片的地址。BIOS 芯片中包含着让 CPU 执行的第一条指令, CPU将逐条执行这些指令, 执行到一定阶段的时候, 有一条指令会让 CPU 寻址总线上其他设备的 ROM 地址(如果有)。 也就是说,系统加电之后, CPU 总会执行 SCSI 卡这个设备上 ROM 中的程序代码来初 始化这块卡。 初始化的内容包括检测卡型号 、 生产商以及扫描卡上的所有 SCSI 总线以找出每个设备并显示在显示器上。在初始化的过程中, 可以像进入主板 BIOS 样, 进入 SCSI 卡自身的BIOS中进行设置,设置的内容包括查看各个连接到SCSI总线上的设备的容量、生产商、状态、SCSI ID和LUN ID等。
其余RAID介绍见:004——最最常用的RAID
RAID 2
RAID0激进,RAID1太保守。RAID2是 RAID0 1的折中。引入校验盘,校验算法为汉明码。在写数据的时候写校验数据。
RAID 3
与RAID2 一样,只不过校验方式由汉明码改为逻辑校验。
RAID 4
拉个大弓,放个小屁。虚张声势而已
考虑到RAID2、3 他们的并发都是单次IO对多块磁盘之间的并发,那RAID4能不能做到多个IO的并发呢?当然可以,为此需要磁盘做出相应修改
要想多IO并发,就要保证有磁盘未被IO占用,为此可以增大Stripe深度。这样就将IO限制在数量很少的磁盘上面。同时避免不要连续读写一块磁盘,增大数据分布随机性。RAID4做到了这几点,但是忽略了一个问题——校验盘
每次IO,都是数据盘+校验盘一起写,校验盘成为了热点盘。即使某块盘上面的IO写完了,但是校验盘还在忙活,其他的IO看着这块空闲的磁盘也用不了,必须等待校验盘空闲下来才能上位。相当于面对大海却渴死了,因此,RAID4并没有实现并发IO。
RAID5E
RAID5 相比较RAID4 实现了并发IO(通过打散校验盘),看起来很美好,但是也有可靠性问题。试想,一旦一块磁盘跪了,针对这块故障盘的读IO,实际上其他磁盘+校验盘 算出来返回的。写IO是被RAID卡从定向到正常磁盘+校验盘的。外界感觉不到有磁盘故障。如果有一块盘故障,系统IO负担无疑加大,如置之不理,很有可能再坏一块盘,继而故障雪崩。RAID5的做法是在发现故障盘后,赶紧插上一块好的磁盘,其他磁盘+校验盘 计算出损坏的数据写到新插入的此磁盘上面。但是这有个前提,就是在恢复故障盘的时候不能再有其他磁盘损坏,否则玉石俱焚!为此引入热备盘,热备盘也跟校验盘一样被打散分布在各个磁盘上面。按照校验盘是否像数据盘一样条带化,又分为RAID5E、RAID5EE
最新文章
- .Net JIT
- Android中dip、dp、sp、pt和px的区别
- target 事件属性
- python4delphi 使用
- Pureftp-安全的ftp服务器部署
- CTE计算层级关系
- DB2 的create or update方法
- jsp 多条记录提交
- UVA 796	Critical Links(无向图求桥)
- c#中关于virtual,override和new的理解
- java读取TXT文件的方法
- HTML学习笔记之中的一个(input文件选择框的封装)
- 【网络流24题】最长k可重区间集(费用流)
- 《CSS世界》读书笔记(十六)
- mvc中异常页面的设置
- 【机器学习_7】numpy
- Codeforces Round #519 by Botan Investments F. Make It One
- 记录使用git submodule时踩的坑
- 利用express.js连接mongodb数据库
- px、pt和em的区别
热门文章
- LeetCode_401. Binary Watch
- Redis应用场景大全
- 【Tools】PDF编辑软件-pdfelement 6.8 官网文件中文+破解版本
- [bzoj4345][POI2016]Korale_堆_贪心_线段树_dfs
- scrapy工具创建爬虫工程
- Java的设计模式(7)— 生产者-消费者模式
- PAT甲级 链表题_C++题解
- Swing的基本操作
- WUSTOJ 1346: DARK SOULS(Java)并查集
- 【HC89S003F4开发板】 8c转义成汇编工程