RAID磁盘冗余阵列

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

RAID功能实现

  提高IO能力,磁盘并行读写

  提高耐用性,磁盘冗余算法来实现

RAID实现的方式

  外接式磁盘阵列:通过扩展卡提供适配能力

  内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置

  软件RAID:通过OS实现,比如:群晖的NAS

RAID级别
级别:多块磁盘组织在一起的工作方式有所不同
RAID-0:条带卷,strip
RAID-1:镜像卷,mirror
RAID-2
..
RAID-5
RAID-6
RAID-10
RAID-01
RAID级别

RAID 0

    建议大小一样
    
  读、写性能提升

  可用空间:N*min(S1,S2,...),磁盘利用率100%

  每个硬盘同时写入,无容错能力

  最少磁盘数:2, 2+

RAID 1

  读性能提升、写性能略有下降
  
  删除数据,如果是两块磁盘,就两块磁盘一起删除,raid是防物理的,删除了就没有了

  可用空间:1*min(S1,S2,...),磁盘利用率50%

  有备份数据,有冗余能力,(可以坏一块硬盘)但是删除如上

  最少磁盘数:2, 2N

RAID 4

  多块数据盘异或运算值存于专用校验盘

  磁盘利用率 (N-1)/N

  有冗余能力

  至少3块硬盘才可以实现

RAID 5

  读、写性能提升

  可用空间:(N-1)*min(S1,S2,...)

  有容错能力:允许最多1块磁盘损坏

  最少磁盘数:3, 3+

RAID 6

  读、写性能提升

  可用空间:(N-2)*min(S1,S2,...)

  有容错能力:允许最多2块磁盘损坏

  最少磁盘数:4, 4+

RAID 1 0

  读、写性能提升
 
  可用空间:N*min(S1,S2,...)/2,磁盘利用率50%
  
  有容错能力:每组镜像最多只能坏一块
  
  最少磁盘数:4, 4+
  
  坏的几率是1/3

RAID 0 1

  多块磁盘先实现RAID0,再组合成RAID1,磁盘利用率50%
  
  坏的几率2/3

RAID 5 0

  多块磁盘先实现RAID5,再组合成RAID0

其他级别

JBOD:Just a Bunch Of Disks

  功能:将多块磁盘的空间合并一个大的连续空间使用

  可用空间:sum(S1,S2,...)

常用级别:

RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
RAID等级 最少硬盘 最大容错 可用容量 读取性能 写入性能 安全性 目的 安全性目的应用场景
单一硬盘 (参考) 0 1 1 1
JBOD 1 0 n 1 1 无(同RAID0) 增加容量 个人(暂时)存储备份
0 1 0 n n n 一个硬盘异常,全部硬盘都会异常 追求最大容量、速度 影片剪接缓存用途
1 2 n-1 1 n 1 高,一个正常即可 追求最大安全性 个人、企业备份
5 3 1 n-1 n-1 n-1 追求最大容量、最小预算 个人、企业备份
6 4 2 n-2 n-2 n-2 安全性较RAID5高 同RAID 5,但较安全 个人、企业备份
10 4 综合RAID 0/1优点,理论速度较快 大型数据库、服务器
50 6 提升数据安全
60 8 提升数据安全

实现软RAID

mdadm工具:为软RAID提供管理界面,为空余磁盘添加冗余,结合内核中的md(multi devices)
RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等
mdadm:模式化的工具,支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10
命令的语法格式:

mdadm [mode] <raiddevice> [options] <component-devices>

常用选项说明

模式:
  创建: -C
  装配: -A
  监控: -F
  管理: -f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意块设备
-C     创建模式
-n #   使用#个块设备来创建此RAID
-l #    指明要创建的RAID的级别
-a {yes|no}  自动创建目标RAID设备的设备文件
-c CHUNK_SIZE   指明块大小,单位k
-x #   指明空闲盘的个数
-D  显示raid的详细信息
mdadm -D /dev/md#
管理模式:
-f   标记指定磁盘为损坏
-a  添加磁盘
-r   移除磁盘
观察md的状态: cat /proc/mdstat

范例

#使用mdadm创建并定义RAID设备
mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1

#用文件系统对每个RAID设备进行格式化
mkfs.xfs /dev/md0

#使用mdadm检查RAID设备的状况
mdadm --detail|D /dev/md0

#增加新的成员
mdadm –G /dev/md0 –n4 -a /dev/sdf1

#模拟磁盘故障
mdadm /dev/md0 -f /dev/sda1

#移除磁盘
mdadm /dev/md0 –r /dev/sda1

#在备用驱动器上重建分区
mdadm /dev/md0 -a /dev/sda1

#系统日志信息
cat /proc/mdstat

生成配置文件

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
posted @ 2021-04-13 19:04  空白的旋律  阅读(290)  评论(0编辑  收藏  举报