现在的位置: 首页 > 综合 > 正文

磁盘冗余阵列(RAID)——软件磁盘阵列应用

2013年04月21日 ⁄ 综合 ⁄ 共 2709字 ⁄ 字号 评论关闭
基本概念
RAID使用主要原因高可靠性、高数据传输率。
位级分散:在多个磁盘上分散每个字节的各个位。
块级分散:一个文件的块可分散在多个磁盘上,对于n个磁盘,一个文件的块i可存在磁盘(i mod n)+1
RAID级别
RAID  0:指块级别分散的磁盘阵列,但没有冗余
RAID  1:指磁盘镜像,在0级别基础上多了一组镜像磁盘
RAID  2:又称为内存方式的差错纠正代码结构。内存系统一直实现基于奇偶位的错误检测。内存系统的每个字节都有一个相关奇偶位,以记录字节中位置为1的个数是偶数(parity=0)或奇数(parity=1)。如果字节的1个位损坏(0变1或1变0),那么字节的奇偶也将改变。
RAID  3:又称位交织奇偶结构,它对2级别做了改进,与内存系统不同,磁盘控制器能检测到一个扇区是否正确读取,这样单个奇偶位就可用于差错检测和差错纠正。方案如下:如果一个扇区损坏,那么知道是哪个扇区,通过计算其他磁盘的扇区相应位的奇偶值可得出损坏位是1还是0。如果其他位的奇偶值等于存储奇偶值,那么缺少位就是0,否则为1。
RAID  4:又称块交织奇偶结构,采用与级别0一样的块级分散,另外在一独立磁盘上保存其他N个磁盘相应的块奇偶块
RAID  5:又称块交织分布奇偶结构,不同于级别4,它将数据和奇偶分布在所有N+1块磁盘上,而不是将数据存放在N块磁盘上而奇偶存放在单个磁盘上。对于每一块,一个磁盘存储奇偶,而其他存放数据。例如对于5个磁盘阵列,第n块的奇偶保存在磁盘(n mod 5)+1,其他4个磁盘第n块保存该奇偶块对应的真正的数据。
RAID  6:又称P+Q冗余方案,与级别5相似,但是保存了额外冗余的信息以防止多个磁盘出错。它不是使用奇偶检验,而是使用差错纠正码
RAID  0+1:指的是0级别和1级别组合,先0级别再1级别
RAID  1+0:指的是1级别和0级别组合,先1级别再0级别
RAID级别选择
RAID级别0应用于数据损失并不关键的高性能应用
RAID级别1应用于需要高可靠性和快速回复应用
RAID级别5应用于存储大量数据
RAID 级别0+1/1+0 应用于性能和可靠性都很重要应用
软件和硬件磁盘阵列区别
硬件磁盘阵列是透过磁盘阵列卡来达成数组的目的。磁盘阵列卡上面有一块专门的芯片在处理RAID的任务,因此性能方面会比较好。
软件磁盘阵列是透过软件来仿真数组的任务,因此会损耗较多的系统资源。
软件磁盘阵列应用
注意:这里使用linux操作系统提供软件磁盘阵列软件——mdadm软件
硬件磁盘阵列装置文件名为/dev/sd[a-p],软件磁盘阵列装置文件名/dev/md[0-N]
mdadm [参数]
选项与参数:
--create:创建RAID选项
--auto=yes:决定建立后面接软件磁盘阵列装置即/dev/md0
--raid-devices=数字:使用几个磁盘作为磁盘阵列装置
--spare-devices=数字:使用几个磁盘作为备用装置
--level=数字:设定这组磁盘阵列的等级,一般建议用0,1,5
--detail 后接磁盘阵列装置名称:输出磁盘阵列详细信息
--manage:管理RAID选项
--add:将后面的装置加入到md中
--remove:将后面的装置从md移除
--fail:将后面的装置设定为出错状态
RAID5环境:
每个磁盘大小为5G
利用3个磁盘组成RAID5
利用2个磁盘设定为spare disk
将此RAID5挂载到/mnt/raid目录下
建立磁盘装置
[root@localhost ~]# fdisk /dev/sdf    (磁盘装置名称)
Command (m for help): n
省去中间内容,详细见fdisk用法
Command (m for help): w
用mdadm建立RAID
[root@localhost ~]# mdadm --create --auto=yes /dev/md0 --level=5 --raid-devices=3 --spare-devices=2 /dev/sd{b,c,d,e,f}
查看RAID信息
[root@localhost ~]# mdadm --detail /dev/md0 (建raid需要一段时间哦)
省略中间内容
  State : clean
 Active Devices : 3
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 2
查看RAID状态
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sdd[2] sdf[3](S) sde[4](S) sdc[1] sdb[0]
      10485632 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
      
unused devices: <none>
第二行:指出md0为raid5,而且使用sdb,sdc,sdbd等三颗磁盘装置。每个装置后面的中括号[]内的数字为磁盘在raid中的顺序,sdf,sde后面括号中的S代表spare
第三行:此磁盘阵列拥有10485632个block(每个block单位为1k),所以总量为10G,(只有用2个磁盘,还有有一个磁盘作为奇偶检验使用)使用RAID等级5,写入磁盘小区块大小为64k,使用algorithm 2磁盘阵列算法,[m/n]代表此数组需要m个装置,且n个装置正常运行,后面的[uuu]代表3个所需要的装置(就是[m/n]里面的m)的启动情况,U代表正常,若为_则代表不正常
格式化与挂载使用RAID
[root@localhost ~]# mkfs -t ext3 /dev/md0  格式化
[root@localhost ~]# mkdir /mnt/raid 
[root@localhost ~]# mount /dev/md0 /mnt/raid  挂载
开机自动启动RAID并自动挂载
[root@localhost ~]# mdadm –detail /dev/md0|grep –i uuid
显示UUID信息
[root@localhost ~]# vim /etc/mdadm.conf  添加如下内容
ARRAY /dev/md0 UUID=换成相应的标识号
[root@localhost ~]#vim /etc/fstab 添加如下内容
/dev/md0 /mnt/raid ext3 default 1 2
关闭
[root@localhost ~]# mdadm --stop /dev/md0
模拟磁盘出错
[root@localhost raid]# mdadm --manage /dev/md0 --fail /dev/sdb

抱歉!评论已关闭.