数据保护:RAID
RAID级别
RAID级别根据分条、数据镜像以及奇偶校验技术的不同而定义。
分条
条带
将磁盘上一块由若干地址连续的磁盘块构成的、大小固定的区域定义为条带。
位于RAID集所有磁盘上相同位置的条带构成了分条。
条带尺寸(分条深度)
描述构成条带的磁盘块数目。
如果数据访问总从条带的起始位置开始,那么条带尺寸等于单个磁盘单次所能读写的最大数据量,此后的读写将切换至下一块磁盘。
分条尺寸
=条带尺寸*RAID集中硬盘数量
分条宽度
=一个分条包含的数据条带的数目=硬盘个数
作用
可将数据分为几块,分块并发写入(读)各个磁盘,提升读写操作性能。
数据镜像
同一数据存储在两块不同硬盘,产生两个副本。
一个损坏另一个可以提供服务。当用新磁盘替换损坏磁盘后,数据会从幸存磁盘完整拷贝过去。这个过程对于主机是完全透明的。
作用
- 数据冗余;
- 磁盘故障恢复(但不适用于备份,因为备份要保存不同时间点的数据状态,而磁盘镜像只会不断更新最新的);
- 提升读操作性能
场景
所需的磁盘容量为实际存储数据总量的两倍,因此只有在极端无法承受数据损坏的应用中才会考虑如此高昂的代价。此外,可以提高访问的性能,因为两块磁盘可以同时响应一个读请求。但每个写访问将导致两次写操作,其写访问性能会下降。
奇偶校验
在分条中增加一个硬盘(分条宽度+1)来存储校验值。
实际上,校验值计算采用异或操作。校验值计算也是RAID控制器的功能之一。
作用
提供数据保护又不像镜像需要大量开销
局限
由于校验信息由数据产生,一旦数据改变需要重新计算校验值,耗时的校验值计算将影响RAID控制器的性能
RAID 0
分条
空间利用100%
读取:分别从各硬盘并发读取,然后组合
写入:将数据拆分,并发写入到各个硬盘
优点:并发读写,适合对IO带宽需求很大的程序,但无法提供高可用性(数据保护功能以及应对磁盘故障的高可用性)。
RAID 1
数据镜像
至少两块硬盘构成
优点:RAID 1的数据恢复代价是所有RAID级别中最小的,可利用镜像磁盘进行恢复并同时继续对外提供服务。适用于对高可用性有需求的应用。
嵌套RAID -1+0
分条+数据镜像
需要偶数数量磁盘,且至少4块磁盘
优点:适用于写密集、随机访问、数据量小的IO负载(高事务率的在线事务处理、大型消息服务、需要高IO吞吐率,随机访问和高可用性的数据库应用)
注:RAID1+0和RAID0+1不同,二者磁盘损坏时的数据重构过程不同