raid 磁盘阵列:
**条带化存储:**数据分散在多个物理磁盘上的存储方式。利用多个磁盘并行读取和写入。
条带化的存储性能和读写性能是最好的。
磁盘的组成方式不同,也就是不同的raid级别:
**raid 0(条带化存储):**使用条带化存储,没有冗余能力,坏一块盘数据就会丢失。 利用率100%
*使用场景:高吞吐和低延迟的应用场景,视频,大数据处理。
面试题:**一块硬盘做raid几? ** raid0 但raid没有冗余
raid 1(镜像存储 N=2的倍数 偶数):两两复制 ,数据会存储在所有硬盘上。
盘数必须是偶数
raid1特点:提高读的性能,写性能相对较低,数据要写到每个磁盘上都要备份。
可以提供冗余,磁盘利用率50%
**raid 5(N>=3): ** 条带存储 数据分散存储,根据校验机制,循环均衡存储。
特点:1、同时读写,读性能很高,有校验机制,写性能相对不高
2、有冗余,可以坏一块盘 如果有热备份可以再坏一次
利用率:(N-1)/N raid5使用场景最多
面试:有四块硬盘,怎么选择磁盘阵列?
总结:我个人认为在当前前提下,选择raid5比较合适的选择。raid5可以多一块盘作为热备盘,可以坏两次
raid 6(N>=4):
**特点:**1、利用率(N-2)/N
2、有冗余 ,有奇偶校验,每个盘数据一致,循环按照奇数和偶数写入数据
3、最多可以坏2块盘
4、读性能比raid5强,比raid低一些。写性能最差
5、raid6 可靠性最高,最可靠的raid级别
金融、法律对数据的完整性和可靠性要求高,所有选择raid6
raid 10(N>=4 偶数)(先做镜像再做条带)
**条带化存储:**数据分散在多个物理磁盘上的存储方式。利用多个磁盘并行读取和写入。
**特点:**1、N>=4 偶数 最少需要四块盘 两两一组,先镜像再做条带
2、有冗余,可以坏两块(一边各坏一块)
3、N/2的磁盘利用率 50%
4、读写性能都很优秀。读性能比raid0低一些,写性能比raid1稍差。
**热备份:**当阵列中有一块硬盘坏了,热备份盘随时顶替,相当于磁盘的最后一层保险。
**工作原理:**热备份相当于给raid又做了一个备份,raid当中坏了一块硬盘,热备份在顶替过程中,会利用校验的算法,把阵列当中的数据同步,然后再顶替坏掉的硬盘。在替换过程中,阵列不可以使用,不能读写,顶替完成之后raid恢复正常状态。
raid 5
[root@localhost ~]# mdadm -E /dev/sd[b-e] #检查分区是否被raid使用
mdadm: No md superblock detected on /dev/sdb.
mdadm: No md superblock detected on /dev/sdc.
mdadm: No md superblock detected on /dev/sdd.
mdadm: No md superblock detected on /dev/sde.
[root@localhost ~]# mdadm -C -v /dev/md5 -l5 -n3 /dev/sd[b-d]1 -x1 /dev/sde1
-C 创建raid
-v 显示创建过程中的详细信息
/dev/md5 raid5
-l 指定raid的级别raid5
-n 指定多少个硬盘,一定要和级别相符
-x raid的热备份 有几个写几个
[root@localhost ~]# cat /proc/mdstat #查看创建过程信息
[root@localhost ~]# mdadm -D /dev/md5 #查看创建完成信息
[root@localhost ~]# # mkfs.xfs /dev/md5
[root@localhost ~]# #mkdir /data
[root@localhost ~]# #mount /dev/md5 /data
[root@localhost ~]# # mdadm /dev/md5 -f /dev/sdb1
raid 10
[root@localhost ~]# # raid 10
[root@localhost ~]# # mdadm -Cv /dev/md10 -l10 -n4 -x1 /dev/sd{b,c,d,e,f}2
[root@localhost ~]# # mdadm /dev/md10 -f /dev/sdb2
[root@localhost ~]# # mdadm -D /dev/md10 查看状态
[root@localhost ~]#
[root@localhost ~]# # mdadm -S /dev/md10 关闭前要先解挂载umount
[root@localhost ~]# # mdadm --misc --zero-superblock /dev/sdd2 #删除命令