Linux之Raid详解
RAID即廉价冗余磁盘阵列(Redundant Array of Inexpensive Disk),从Linux2.4内核开始,Linux就提供软件RAID。实现方式为将多个磁盘按照一定的机制组织起来;能够提高IO性能,提升耐用性,并且支持冗余功能。
RAID类型:
外接式磁盘阵列:通过扩展卡实现
内接式RAID:主板集成RAID控制器
Software RAID:软RAID
硬件式的RAID在BIOS中进行单独配置
Level:
RAID-0:(Stripe),中文译为集带工作方式。它是将要存取的数据以条带状形式平均分配到多个硬盘上,读写时多个硬盘同时进行读写。
读写性能提升
可用空间:磁盘数*单块磁盘容量
无冗余功能
最少磁盘数:2
RAID-1:(Mirror),中文译为镜像方式。这种工作方式是为了数据安全考虑的,它是把用户写入磁盘的数据百分之百地复制到另外一个硬盘上。读取数据时,系统从源盘读取,如果读取成功就不去管镜像盘;如果读取失败,则系统自动转而读取镜像盘上的数据。
读性能提升,写性能下降
可用空间:1*单块磁盘容量
有冗余能力
最少磁盘数:2
由于RAID2,3很少用到,在这里就不多做解释
RAID-4:带奇偶校验码的独立磁盘结构。RAID4对数据的访问时按磁盘进行的,每次是一个盘,每次写操作都需要访问奇偶盘,这时奇偶盘会成为写操作的瓶颈。
读写能力下降
最少磁盘数:3
RAID-5:是一种存储性能、数据安全和存储成本兼顾的存储解决方案。各快独立硬盘进行条带化分割,相同的条带区进行奇偶校验,校验数据平均分布在每块硬盘上。
读写性能提升
可用空间:(磁盘数-1)*单块磁盘容量
有冗余能力
最少磁盘数:3
RAID10:高可靠性与高效磁盘结构。这种结构就是一个带区结构和一个镜像结构,因为两种结构相互补充,达到既高效又高速的目的。
先做RAID1,再做RAID0
读写性能提升
可用空间:磁盘数*单块磁盘容量/2
有冗余能力
最少磁盘数:4
以上所介绍的RAID级别都是在现实生产坏境中常用的。
下面介绍下在linux中软件RAID的实现方式
CentOS 6上的软件RAID实现:
结合内核中的md(multi devices)工具
mdadm:模式化的工具
语法格式:mdadm [mode] <raiddevice> [options] <component-devices>
支持的RAID级别:RAID0,RAID1,RAID5,RAID10等
mode:模式
-C:创建
-n #:使用多少个块设备来创建此RAID
-l #:创建什么RAID级别
-a{yes|no}:是否自动创建目标RAID的设备文件
-c CHUNK_SIZE:指定块大小
-x #:空闲盘个数指定
-A:装配
-F:监控
-f,-r,-a:普通
<raiddevice>:/dev/md#
<component-devices>:任意块设备
注意:使用前先把分区设置为fd格式,代表RAID
例:创建一个RAID5设备
mdadm -C -l 5 -a yes -n 2 /dev/设备名 /dev/设备名