RAID详细介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RAID详细介绍相关的知识,希望对你有一定的参考价值。

什么是RAID


  RAID:Redundant Arrays of Inexpensive(Independent) Disks 1988年由加利福尼亚大学伯克利分校(University of CaliforniaBerkeley) “A Case for Redundant Arrays of Inexpensive Disks” 多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供    

RAID


提高IO能力
        磁盘并行读写
提高耐用性
        磁盘沉余来实现
级别:多块磁盘组织在一起的工作方式有所不同
RAID实现的方式
        外接式磁盘阵列:通过扩展卡提供适配能力
        内接式RAID:主板集成RAID控制器
        安装OS前在Bios里配置
        软件RAID:通过OS实现

RAID级别


RAID-0:条带卷,strip 
RAID-1: 镜像卷,mirror 
RAID-2 
RAID-5 
RAID-6 
RAID-10 
RAID-01  

RAID级别详解


RAID-0:
    读写性能提升
    可用空间:N*min(s1,s2)
    无容错能力
    最少磁盘:2,2+
RAID-1:
    读性能提升,写性能略有下降
    可用空间:1*min(s1,s2)
    有冗余能力
    最少磁盘数:2,2n
RAID-5:
    读,写性能提升
    可用空间:(N-1)*min(s1,s2)
    有容错能力:允许最多一块磁盘
    最少磁盘数:3,3+
RAID-6:
    读,写性能提升
    可用空间:(N-2)*min(S1,S2,...)
    有容错能力:允许最多2块磁盘损坏
    最少磁盘数:4,4+
RAID-10:
    读,写性能提升
    可用空间:N*min(S1,S2,...)/2 
    有容错能力:每组镜像最多只能坏一块
    最少磁盘数:4,4+
RAID-01:
    多块磁盘先实现RAID0,在组合成RAID1
JBOD:
    Just a Bunch Of Disks
    功能:将多块磁盘的空间合并一个大的连续空间使用
RAID7:
    可以理解为一个独立存储计算机,自身带有操作系统和管理工具,,可以独自运行,理论上性能最高的RAID模式
常用级别:
    RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD

软RAID


mdadm:为软RAID提供管理界面
为空余磁盘添加冗余
结合内核中的md
RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等

软件RAID的实现


mdadm:模式化的工具
命令的语法格式:mdadm [mode] <raiddevice> [options] <componentdevices>
支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10 
模式:
    创建:-C 
    装配:-A 
    监控:-F
    管理:-f, -r, -a
<raiddevice>: /dev/md# <component-devices>: 任意块设备

软件RAID的实现


-C:创建模式
    -n #: 使用#个块设备来创建此RAID
    -l #:指明要创建的RAID的级别
    -a {yes|no}:自动创建目标RAID设备的设备文件 -a yes[意思是初始化RAID设备]
    -c CHUNK_SIZE: 指明块大小,单位k
    -x #: 指明空闲盘的个数  
-D:显示raid的详解信息
    mdadm -D /dev/md
管理模式:
    -f: 标记指定磁盘为损坏
    -a: 添加磁盘 
    -r: 移除磁盘 
观察md的状态:cat /proc/mdstat

  例:实现RAID0【性能高,但是没有容错性,损坏一个硬盘就不能使用】
第一步:用四个硬盘,分别拿出相应的空间大小,分区时注意格式  t     :dd   if=/dev/sda  of=/dev/sdb  bs=1  count=512
第二步:mdadm -C  /dev/md0 -a yes -l0  -n 4   /dev/sdb1  /dev/sdc1  /dev/sdd1 /dev/sde1
第三步:在一个是否生成用命令mdadm -D /dev/md0
第四步:先把UUID存起来 mdadm -Ds /dev/md0  >  /etc/mdadm.conf 
第五步:创建文件系统  mkfs.ext4   /dev/md0     blkid就可以查看了
第六步:创建一个挂载点就可以挂载了  mkdir /mnt/raid  [永久挂载/etc/fstab]   

例:实现RAID5【五个硬盘一个空闲,四个真正使用,】
第一步: mdadm -C  /dev/md5 -a yes -l5  -n4  -x1 /dev/sd{b,c,d,e}1  /dev/sd...  
第二步:先把UUID存起来 mdadm -Ds /dev/md5 >  /etc/mdadm.conf 
第三步:创建文件系统  mkfs.ext4   /dev/md5    blkid就可以查看了
第四步:创建文件系统  mkfs.ext4   /dev/md5    blkid就可以查看了
第五步:创建一个挂载点就可以挂载了  mkdir /mnt/raid  [永久挂载/etc/fstab] 

模拟磁盘故障
mdadm /dev/md5  -f  /dev/sde1[模拟sde1硬盘损坏]  [mdadm -D /dev/md5 查看情况] 

移除磁盘 
mdadm /dev/md5 –r /dev/sde1【移除sde1】mdadm /dev/md5 –a /dev/sde1【添加回来sde1】

损坏后加硬盘:mdadm /dev/md5 -a /dev/sde[添加一块/dev/sde硬盘]  【如果是硬盘直接加就行,如果是分区需要格式化还要t加......】
如果空间不够想扩展空间  【mdadm -G  /dev/md5 -n  5 -a /dev/sda3   [-G是添加,-n5代表以前是四个现在加到5个 -a 是把那个加到里面]】
【df查看的是文件系统所以看不到添加后的内存】【xfs_growfs   /mnt/raid5[xfs文件系统后面跟的是挂载点]】
【resize2fs   /dev/md5  etx4文件系统后面跟的是设备名】

软RAID配置示例


使用mdadm创建并定义RAID设备
mdadm -C  /dev/md0 -a yes -l 5 -n 3 -x 1  /dev/sdb1  /dev/sdc1  /dev/sdd1 /dev/sde1
用文件系统对每个RAID设备进行格式化 
mke2fs -j  /dev/md0
测试RAID设备
使用mdadm检查RAID设备的状况
mdadm --detail|D /dev/md0
增加新的成员
mdadm –G /dev/md0 –n4  -a /dev/sdf1  

软RAID测试和修复


模拟磁盘故障
mdadm /dev/md0  -f  /dev/sda1
移除磁盘 
mdadm /dev/md0 –r /dev/sda1
从软件RAID磁盘修复磁盘故障
    ? 替换出故障的磁盘然后开机
    ? 在备用驱动器上重建分区 
    ? mdadm /dev/md0  -a  /dev/sda1
mdadm、/proc/mdstat及系统日志信息  

软RAID管理


生成配置文件:mdadm –D –s  >> /etc/mdadm.conf
停止设备:mdadm –S /dev/md0
激活设备:mdadm –A –s /dev/md0 激活 
强制启动:mdadm –R /dev/md0
删除raid信息:mdadm --zero-superblock /dev/sdb1 

例: 删除RAID0
首先先取消挂载 umount /mnt/raid0 
然后在删除 rm -rf /etc/mdadm.conf[这里是创建时手工添加的]
然后停止设备  mdadm –S /dev/md0  【mdadm –A –s /dev/md0 就激活不了了,因为删除了/etc/mdadm.conf 这个文件】
然后是清除超级块mdadm --zero-superblock /dev/sdb1【或mdadm --zero-superblock /dev/sd{c,e,d}1 一下清空】
然后blkid就看不到文件系统了 ,lsblk看一下还可以看到分区
在彻底的就是用dd 清空了:dd if=/dev/zero of=dev/sdb1,dd if=/dev/zero of=dev/sdc1,dd if=/dev/zero of=dev/sde1,dd if=/dev/zero of=dev/sdd1
可以用二进制确认一下 :hexdump -c /dev/sde1 
注意:写入/etc下的文件要删除

以上是关于RAID详细介绍的主要内容,如果未能解决你的问题,请参考以下文章

RAID卡

Linux磁盘阵列技术详解--raid 1创建

MegaCli使用

Nginx配置文件详细介绍

详细解说RAID6结构及原理

vbscript 各种自定义代码片段 - 有关详细信息,请参阅注释