|
一、RAID简史 1.RAID由来 Berkeley:伯克利提出:A casefor Redundent Arrays of Inexpensive Disks 为RAID(廉价冗余阵列) 如今:Redundant Arrays of Independent Disks 独立冗余阵列 2.优点和表现方式 1)通过磁盘并行读写,提高IO能力: 2)通过磁盘冗余(容错)机制来实现提高耐用性: 3.级别:多块磁盘组织在一起的工作方式有所不同 RAID0、RAID1、RAID2、RAID3、RAID4、RAID5、RAID6、RAID7、RAID10、RAID01、RAID50、JBOD 4.实现方式 (1)软件模拟实现:Software RAID,结合内核中的md(multidevices)工具 生产环境中一般没有人使用 (2)硬件实现:硬件级别的RAID配置多块硬盘在bios中实现 外接式磁盘阵列:通过扩展卡提供适配能力 内接式RAID:主板集成RAID控制器 1)可以通过SAS接口的适配器接口扩展出串行端口附加存储,以logical unit number逻辑单元号表现 窄带:8个接口,7target 宽带:16个接口,15个target 2)RAID控制器需要系统驱动使用,在BIOS中可以设置,通过适配器连接到RAID磁盘阵列 3)RAID控制器本身有CPU,还可以有内存来加速,另外设置电源方式断电时候的应急写入
二、RAID级别和工作模式 常用级别:RAID-0, RAID-1,RAID-5, RAID-10, RAID-50, JBOD 1.RAID-0:0, 条带卷,strip; 性能:读、写性能提升;无容错能力 空间使用:N*min(S1,S2,...), 最少需要磁盘数量:至少两块 条带:会以磁盘容量最小的磁盘为主分块制作条带 2.RAID-1: 1,镜像卷,mirror; 性能:读性能提升、写性能略有下降;有冗余能力 空间使用:1*min(S1,S2,...),每块存储内容都一样 空间利用率:1/2 最少需要硬盘数量:至少两块 3.RAID-4:单块硬盘作为集中校验盘 采用独立存取方式,将条带由RAID3的小数据块改为更大的数据块 校验较为迅速,但写入速度极差,控制器的设计更加复杂 通过异或运算将其中一块硬盘,集中存放校验码 允许有一块硬盘损坏,但因为集中校验会导致性能瓶颈 4.RAID-5:循环校验存储机制 性能:读、写性能提升,有容错能力:1块磁盘 空间使用:(N-1)*min(S1,S2,...) 短板效应 空间利用率:(n-1)/n 最少磁盘数:至少三块,可降级使用 5.RAID-6:循环校验存储机制,一块硬盘专门做校验盘,校验码存储两次 性能:读、写性能提升;有容错能力:2块磁盘 空间使用:(N-2)*min(S1,S2,...) 最少磁盘数:最少四块 6.RAID-7:商业版 新的RAID标准,一个独立的“存储计算机”,自身带有智能化实时操作系统和用于存储管理的软件工具,可以完全独立与主机运行,不占用主机CPU资源 7.RAID-10:先做镜像,再做条带 性能:读、写提升,有冗余能力 空间利用率:1/2 最少磁盘数:至少需要4块 8.RAID-01:先做条带,再做镜像 性能:读、写提升,有冗余能力 空间利用率:1/2 最少磁盘数:至少需要4块 9.RAID-50: 性能:读、写提升;有冗余能力 空间利用率:(n-2)/n 最少磁盘数:至少需要6块 10.JBOD:Just a Bunch OfDisks 将多块磁盘的空间合并一个大的连续空间使用 性能表现:无提升;无冗余能力 空间使用:磁盘大小之和sum(S1,S2,...) 空间利用率:100% 最少磁盘数:至少需要2块
三、RAID内核实现观测相关命令 CentOS6上的软件RAID的实现 1.md(multidevices)工具,mdadm:模式化的工具 命令的语法格式:mdadm[mode] <raiddevice> [options] <component-devices> 支持的RAID级别:LINEAR线性方式,RAID0, RAID1, RAID4, RAID5, RAID6, RAID10; 模式:创建:-C;装配: -A;监控: -F;管理:-f, -r, -a <raiddevice>:/dev/md# <component-devices>:任意块设备 (1)-C: 创建模式 -n#: 使用#个块设备来创建此RAID; -l#:指明要创建的RAID的级别; -a{yes|no}:自动创建目标RAID设备的设备文件; -c CHUNK_SIZE: 指明块大小; 默认512k -x#: 指明空闲盘的个数; (2) 管理模式: -f:标记指定磁盘为损坏; -a:添加磁盘 -r:移除磁盘 (3)-D:显示raid的详细信息; mdadm -D /dev/md# (4)观察md的状态: cat /proc/mdstat (5)停止md设备:mdadm -S /dev/md# 2.watch:动态观测命令运行过程 格式:watch -n# 'COMMAND' -n#: 刷新间隔,单位是秒;
|