一.RAID
1.什么是RAID
独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列。利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组,目的为提升性能或数据冗余,或是两者同时提升。RAID 层级不同,数据会以多种模式分散于各个硬盘,RAID 层级的命名会以 RAID 开头并带数字,例如:RAID 0、RAID 1、RAID 5、RAID 6、RAID 7、RAID 01、RAID 10、RAID 50、RAID 60。每种等级都有其理论上的优缺点,不同的等级在两个目标间获取平衡,分别是增加数据可靠性以及增加存储器群)读写性能。
简单来说,RAID把多个硬盘组合成为一个逻辑硬盘,因此,操作系统只会把它当作一个实体硬盘。RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。由于硬盘价格的不断下降与RAID功能更加有效地与主板集成,它也成为普通用户的一个选择,特别是需要大容量存储空间的工作,如:视频与音频制作。
2.raid功能实现
提高IO能力
提高耐用性
磁盘冗余备份
3.raid实现方式
外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置
软件RAID:通过OS实现,比如:群晖的NAS存储
RAID-0:条带卷,strip
RAID-1:镜像卷,mirror
RAID-0:因为读写时都可以并行处理,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0既没有冗余功能,也不具备容错能力,如果一个磁盘(物理)损坏,所有数据都会丢失。无备份功能
RAID-1:也称为镜像, 两组以上的N个磁盘相互作镜像,在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于硬盘数量的倍数,与RAID 0相同。另外写入速度有微小的降低。
读性能提升、写性能略有下降
磁盘利用率 50%
有冗余能力
最少磁盘数:2n n>=1
RAID-5
读、性能提升
写的性能略微降低
利用率: n-1
有容错能力:允许最多1块磁盘损坏
最少磁盘数:3, 3+
RAID-10
提升了读、写的性能
可用空间:n/2
有容错能力:每组镜像最多只能坏一块
最少磁盘数:4, 4+(偶数)
实现软raid
mdadm工具:为软RAID提供管理界面,为空余磁盘添加冗余,结合内核中的md(multi devices)RAID设备可命名 为/dev/md0、/dev/md1、/dev/md2、/dev/md3等
做raid(分区)
建立文件系统
挂载
mdadm [mode] <raiddevice> [options] <component-devices>
命令 模式 阵列名字(md0) 选项 选择/dev/sdb /dev/sdd
mdadm -Cv /dev/md0 -l 10(raid) -n 4 -x 1 /dev/sd[bcde] {b,c,d,e,f}
常用选项说明:
模式:
创建:-C
装配:-A
监控:-F
管理:-f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意块设备
-C: 创建模式
-n #: 使用#个块设备来创建此RAID
-l #:指明要创建的RAID的级别 0 1 5 10
-c CHUNK_SIZE: 指明块大小,单位k
-x #: 指明空闲盘的个数 热备 盘 -x 1 /dev/sd#
-D:显示raid的详细信息
mdadm -D /dev/md#
软raid名字
管理模式:
-f: 标记指定磁盘为损坏
-a: 添加磁盘
-r: 移除磁盘
观察md的状态: cat /proc/mdstat
例
#使用mdadm创建并定义RAID设备
mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1
命令 raid名 级别 盘数 热备
#用文件系统对每个RAID设备进行格式化
mkfs.xfs /dev/md0
#使用mdadm检查RAID设备的状况
mdadm --detail /dev/md0
mdadm -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
建立raid5
[root@localhost ~]#mdadm -Cv /dev/md0 -l 5 -n 3 /dev/sd{b,c,d}1 -x1 /dev/sde1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]#cat /proc/mdstat
#查看状态
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[4] sde1[3](S) sdc1[1] sdb1[0]
41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
[==>..................] recovery = 11.4% (2403328/20954112) finish=1.4min speed=218484K/sec
unused devices: <none>
[root@localhost ~]#watch -n 5 'cat /proc/mdstat'
#每5秒看一次
[root@localhost ~]#mdadm -D /dev/md0
#查看状态
[root@localhost ~]#mdadm /dev/md0 -r /dev/sdb
mdadm: hot remove failed for /dev/sdb: Device or resource busy
[root@localhost ~]#mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
[root@localhost ~]#mdadm /dev/md0 -r /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md0
[root@localhost ~]#mdadm -D /dev/md0
建立raid10
#创建RAID10 (先做镜象,再做条带)
mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[bc]1
mdadm -Cv /dev/md1 -l1 -n2 /dev/sd[de]1
mdadm -Cv /dev/md10 -l10 -n2 /dev/md0/dev/md1