4块硬盘做raid几_CentOS7下使用mdadm实现RAID

RAID简述

磁盘阵列(Redundant Arrays of Independent Disks,RAID),是把多个物理磁盘组成一个阵列,当作一个逻辑磁盘使用。磁盘阵列将数据以分段或条带的方式储存在不同的磁盘中,这样可以通过在多个磁盘上同时存储和读取数据,进而大幅提高存储系统的数据吞吐量。另外,在磁盘阵列中通过校验数据提高系统整体的可靠性,即使出现单个磁盘故障的情况下仍然保证数据的完整性。

RAID分类

外接式磁盘阵列:独立的存储设备,常被使用在大型服务器上。专业的硬件磁盘阵列盘柜价格昂贵,但特性丰富,除了场景的RAID级别外,还有备份和容灾的特性。主要厂商有IBM、HP、EMC等。

内接式磁盘阵列:需要技术人员来使用操作,同时需要配备硬件RAID卡或者阵列卡。

软件仿真式磁盘阵列:通过操作系统自身提供的磁盘管理功能(软件功能实现)将多个硬盘配置成逻辑盘,价格相对较便宜。软件仿真的问题在于会消耗额外的CPU资源,因此性能相对要差一些。

RAID级别

RAID 0

最早出现的RAID模式,属于条带模式,至少需要两块磁盘,成本低,可以提高整个磁盘的性能和吞吐量;但是没有容错机制,磁盘损坏易丢失数据。

d2daeceb170d62f9bfb5c12011c62b81.png

RAID 1

磁盘镜像模式,同一个数据块会同时写入2个磁盘(或者多个磁盘),通过二次读写实现磁盘镜像,磁盘控制器的负载也相当大,所以多磁盘控制器使用可以缓解读写负载。

a82c12f52f397e358ccf25e0a3e00e86.png

RAID 1 + 0

高可靠性与高效磁盘结构,下层是两个RAID 1,两个RAID 1之上是RAID 0,至少四块硬盘。在该级别中,先通过RAID1提供高可靠性,然后通过RAID0增加其并发处理能力。

8f125d09c1422f3b900e9709afc7e71b.png

RAID 0 + 1

高效率与高性能磁盘结构, 下层是两个RAID 0,两个RAID 1之上是RAID 1,至少四块硬盘。

047b96f920be721be16e94d902f12e03.png

RAID 2

带海明码校验,这种编码技术需要多个磁盘存放检查及恢复信息,使得RAID 2技术实施更复杂,商业中用的比较少。

37da62c53e7c5e29c25ef598cdfbf2be.png

RAID 3

带奇偶校验码的并行传送,只能查错不能纠错。

ca452cea55674fa872d7b4c783319fac.png

RAID 4

它对数据的访问是按数据块进行的,也就是按磁盘进行的,每次是一个盘。在图上可以这么看,RAID3是一次一横条,而RAID4一次一竖条。

6fe93d3654814c0b9fb0928bf59d2995.png

RAID 5

分布式奇偶校验的独立磁盘结构,可靠性强,只损坏一块硬盘时,系统会根据存储的奇偶校验位重建数据,如果同时损坏两块硬盘时数据将完全损坏。

43af6bfbdfc9b3b5425d007fc05f636e.png

RAID 6

带有两种分布存储的奇偶校验码的独立磁盘结构,多一种校验主要是用于要求数据绝对不能出错的场合。

8e3ced14b8fbb977b8df539829be21d0.png

RAID 7

所有的I/O传送均是同步进行的,可以分别控制,这样提高了系统的并行性,提高系统访问数据的速度,带有高速缓冲存储器,由于采用并行结构和高速缓冲存储器,因此数据访问效率大大提高。

78e693996984c4a646957840671150f0.png

常见RAID级别总结

2903d8c89d0cefe0f848427f6232fd55.png

mdadm命令参数详解

主要模式

1. Assemble:装配模式,将原来属于一个阵列的每个块设备组装为阵列

-A, --assemble: 开启一个阵列-u, --uuid:可以根据组件设备的uuid开启RAID-m, --super-minor:保存在每个组件设备中的超级块中的minor号,可以根据这个开启RAID-N, -–name:根据RAID名开启RAID。-R, –-run:即使RAID中的磁盘设备不完整(例如原来创建4块盘的RAID5,现在只发现3块成员盘),RAID也被开启-–no-degraded:和–scan选项一起使用,禁止RAID中的磁盘设备不完整时启动RAID-a, -–auto:如-–create中的 –auto-b, -–bitmap:指定bitmap位图文件-–backup-file:保存关键信息的文件,例如:如果中途断电可以重启继续-U, –-update:更新每个磁盘设备的超级块信息

2. Build: 创建或组装不需要元数据(没有超级块)的阵列,每个设备没有元数据块

3. Create: 创建一个新的阵列,每个设备具有超级块

-C, --create:创建一个新的阵列 -l, --level: RAID级别 -n, --raid-devices: 活动设备个数 -a {yes|no}: 是否自动为其创建设备文件 -c, --chunk: CHUNK大小, 默认为64K,重要的参数,决定了一次向阵列中每个磁盘写入数据的大小 -x, --spare-devices: 备用盘个数

4. Grow:改变阵列中每个设备被使用的容量或阵列中的设备的数目,改变阵列属性

-G, --grow: 改变阵列的大小或设备的数量-n, --raid-devices=: 活动设备个数-x, --spare-devices=:备用盘个数-c, --chunk=: CHUNK大小, 默认为64K,重要的参数,决定了一次向阵列中每个磁盘写入数据的大小-z, --size=:阵列中从每个磁盘获取的空间总数-l, --level=: RAID级别-p, --layout=:设定raid5 和raid10的奇偶校验规则;并且控制故障的故障模式--parity: 类似于--layout--assume-clean:目前仅用于 --build 选项-R, --run: 强制激活RAID,使用这个选项,设备上有旧的元数据信息的提示会被忽略-N, --name=: 设定阵列的名称–-rounding:在linear array中的rounding factor,等于条带大小

5. Monitor:监控RAID的状态,报指定的事件,可以实现全局热备

-F, --follow,  --monitor:选择监控(Monitor)模式 --alert:当检测到一个事件时运行指定的程序-m,--mail: 事件报警时给谁发电子邮件-p,--program, -y, --syslog: 事件记录于syslog中-d, –-delay:隔多少秒轮询各个RAID,默认是60秒-f, --daemonise:创建一个子进行作为后台监控程序-i, –-pid-file:与--daemonise一起使用,子进程PID记录文件-l, –-oneshot:只会检测RAID一次-t, --test,生成test报警信息,用来测试报警信息是否能正确收到

6. Manage:管理存储阵列中的设备,比如增加热备磁盘或者设置某个磁盘失效、阵列中移除失效的磁盘

-a,-–add:在线添加磁盘设备,例如可以添加热备盘–-re-add:给RAID重新添加一个以前被移除的设备-r,-–reomve:移除设备,只能移除failed(失效)磁盘和spare(热备)磁盘设备-f,–-fail:使RAID中某个磁盘设备失效

7. Incremental Assembly:添加设备到阵列中

8. Misc: 报告或者修改阵列中相关设备的信息,比如查询阵列或者设备的状态信息、对阵列中的某个设备进行操作(例如抹去超级块或停止阵列)

-Q, --query: 查询一个RAID或者一个RAID组件设备的信息-D, --detail: 查询一个RAID的详细信息-E, --examine:查询组件设备上的超级块信息-R, -–run:启动不完整的RAID(例如本来是有4块盘的RAID5,现在3块盘也可以启动)-S, -–stop:停止RAID-o, -–readonly:使RAID只能只读-w, -–readwrite:使RAID能读写 -–zero-superblock:超级块信息被写0覆盖。

9. Auto-detect: 只是要求在Linux内核启动时自动检测到阵列

无任何模式参数

```-v, -–verbose:显示更详细的信息-f, -–force:某些选项强制执行-c, -–config:指定配置文件,默认是 /etc/mdadm.conf 或者是/etc/mdadm/mdadm.conf-s, –-scan:从配置文件或者/proc/mdstat中扫描信息-e, -–metadata:定义组件设备上超级块的类型-–homehost:创建一个RAID时,homehost名会记录在超级块中-b, --brief:较少的细节,用于 --detail 和 --examine选项-q, --quit:安静模式;加上该选项能使mdadm不显示纯消息性的信息,除非那是一个重要的报告;-c, --config=: 指定配置文件,缺省为 /etc/mdadm.conf```

创建RAID5举例

如下有5个分区:

/dev/sdb 10GB /dev/sdc 10GB /dev/sdd 10GB /dev/sde 10GB/dev/sdf 10GB

建各个分区,以/dev/sdb1分区为例,其他分区依次建立

fdisk /dev/sdb

240edbc537bad123773d5439731d370f.png

创建RAID5,加入sdb,sdc,sdd

mdadm --creat /dev/md0 --level=5 --raid-device=3 /dev/vd{b,c,d}1

添加一个热备盘

mdadm -a /dev/md0 /dev/sde1

移除一个热备盘

mdadm -r /dev/md0 /dev/sde1

模拟硬盘故障

mdadm -f /dev/md0 /dev/sdb1

移除故障的硬盘,现在已经没有热备盘了,再添加一个热备盘

mdadm -r /dev/md0 /dev/sdb1mdadm -a /dev/md0 /dev/sdf1

生成mdadm的配置文件

echo DEVICE /dev/sd[c-f]1 > /etc/mdadm.confmdadm -Ds >>/etc/mdadm.conf

格式化并挂载 /dev/md0 设备

mkdir /mnt/raid5mkfs.ext4 /dev/md0mount /dev/md0 /mnt/raid5

前景展望

随着目前磁盘容量越来越大,传统的RAID方式已经不占优势。这主要是因为在出现磁盘故障情况下,RAID恢复的时间太长。以8TB硬盘为例,如果出现磁盘故障,即使满载恢复情况下,其耗时也要达到近20小时,这个时间窗口对于关键业务几乎是不可接受的。

目前很多厂商都开发了新的RAID算法,算法差异较大,但主要目标是相同的,就是如何降低磁盘故障情况下的恢复时间。后续我们逐一介绍新的RAID算法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值