共计 3947 个字符,预计需要花费 10 分钟才能阅读完成。
本章内容:
1、RAID 详细描述
2、mdadm 工具
3、创建 raid
4、磁盘阵列的管理
RAID 描述:
RAID:(Redundant Array of indenpensive Disk)独立磁盘冗余阵列: 磁盘阵列是把多个磁盘组成一个阵列, 当作单一磁盘使用, 它将数据以分段 (striping) 的方式储存在不同的磁盘中, 存取数据时, 阵列中的相关磁 盘一起动作, 大幅减低数据的存取时间, 同时有更佳的空间利用率。
功能:
提高 IO 能力:磁盘并行读写。
提高耐用性:磁盘冗余来实现。
RAID 级别:多块磁盘组织在一起的工作方式有所不同,称为 RAID level。不同的 level 针对不同的系统及应用, 以解 决数据安全的问题。简单来说,RAID 把多个硬盘组合成为一个逻辑扇区。因此,操作系统只会把它当作 一个硬盘。
RAID 的实方式:
1. 硬件 RAID:用 RAId 接口卡来实现;需要内核支持其驱动,并且该类设备设备显示为 SCSI 设备,代号 为 /dev/sd*。
2. 软件 RAID:用内核中的 MD(multiple devices)模块实现,该类设备在 /etc/ 下表示为:md*;使用 mdadm 工具管理软 RAID;
虽然来说可以用软件模拟实现 raid,但是相对对磁盘控制的功能及性能不如硬件实现的好,生产环境中最 好使用硬件 raid。
常见的 RAID 类型描述:
RAID0:条带卷(striping),至少需要两块磁盘,做 RAID 分区的大小最好是相同的(也可以用相同大小的 两块磁盘直接做 RAID);把数据分割成若干个相同大小的 chunk,依次均匀的存储在不同的磁盘 上,在读写的时候可以实现并发,所以读、写性能好;但是没有容错功能,任何一块磁盘损坏,将导 致全部数据的损坏。磁盘利用率 100%。
如下图:
RAID1:镜像卷(mirroring),至少需要两块硬盘,raid 大小等于两个 raid 分区中最小的容量(最好将分区 大小分为一样),磁盘利用率 50%;数据有冗余,在存储时同时写入两块硬盘,实现了数据备份;但 相对降低了写入性能,但是读取数据时可以并发,几乎类似于 raid0 的读取效率。
如下图:
RAID5:最少需要三块硬盘,可以提供热备盘实现故障的恢复;采用异或运算,可靠性强,允许损坏一块磁盘,只有同时 损坏两块硬盘时数据才会完全损坏,只损坏一块硬盘时,系统会根据存储的异或校验位重建数据,临时提供服务;此 时如果磁盘阵列中有备用盘,系统会自动在备用盘上重建故障磁盘上的数据。
如下图:
注:RAID 中的容错表示即使磁盘故障, 数据仍能保持完整, 可让系统存取到正确的数据, 而 SCSI 的磁盘阵列更可在工作中抽换 磁盘, 并可自动重建故障磁盘的数据。
mdadm:模式化的工具
命令语法格式:mdadm [mode] <raiddevice> [options] <component-devices>
支持的 RAID 级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10
[mode]:
-C, –create: 创建一个新的阵列
-A, –assemble: 激活 RAID 设备
-F, –follow, –monitor:选择监控 (Monitor) 模式
-G, –grow: 改变激活阵列的大小或形态
<raiddevice>: /dev/md#
<component-devices>: 任意块设备
[options]: 选择一个模式的选项
-C: 创建模式
-n #: 使用 #个块设备来创建此 RAID
-l #:指明要创建的 RAID 的级别
-a {yes|no}:自动创建目标 RAID 设备的设备文件
-c CHUNK_SIZE: 指明块大小
-x #: 指明空闲盘的个数
-D:显示 raid 的详细信息;
mdadm -D /dev/md#
-s:–scan: 扫描配置文件或 /proc/mdstat 以搜寻丢失的信息。
默认配置文件:/etc/mdadm.conf
管 理模式: -f: 标记指定磁盘为损坏
-a: 添加磁盘
-r: 移除磁盘
创建软 RAID 的过程:
以四个分区模拟创建一个 raid5 为操作示例。
步骤:
1、创建 RAID5 的组员
Linux 中阵列组成单元是分区,分区可以是整个设备也可以是设备多个分区中的一个;组成的阵列中,每个分区 的大小必须一样;在 fdisk 分区后需要将分区标志改为 Linux raid auto 类型;分区后如下:
Device Boot Start EndBlocks Id System
2、建立 RAID5 磁盘阵列;如下图:
3、查看阵列状态;cat /proc/mdstat
上图中,通过 cat /proc/mdstat 信息查看所有运行的 RAID 阵列的状态,在第一行中首先是 MD 的设备名 md0,active 和 inactive 选项表示阵列是否能读 / 写,接着是阵列的 RAID 级别 raid5,后面是属于阵列的块设备,方括号 [] 里的数字表示设 备在阵列中的序号,(S)表示其是热备盘,(F)表示这个磁盘是 faulty 状态。下一行中首先是阵列的大小,用块数来表示;后面有 chunk-size 的大小,然后是 layout 类型,不同 RAID 级别的 layout 类型不同,[3/3] [UUU]表示阵列有 3 个磁盘并且 3 个磁盘都是正常运行的,而 [2/3] 和[_UU] 表示阵列有 3 个磁盘中 2 个是正常运行的,下划线对应的那个位置的磁盘是 faulty 状态。
4、生成 RAID 的配置文件;
mdadm.conf 是该软件的默认配置文件,主要作用是方便跟踪软 RAID 的配置,尤其是可以配置监视和事件上报选项。其中写入每 一个阵列组成的详细情况,用于在下次开启阵列后依据此文件重新装配开启阵列,否则就需要在开启时手动定义阵列中的成 员;当然是推荐创建该文件,防止出现意外情况。
5、创建文件系统;
6、挂载;
7、查看阵列的详细信息;
磁盘阵列管理:
1、RAID5 磁盘阵列中模拟一块磁盘故障;下图中模拟 /dev/sdb 盘损坏,发现热备的盘 /dev/sdd1/ 自动替换损坏的磁盘,并显示数 据构建的进度条。
2、移除损坏的磁盘;损坏的磁盘状态是 faulty.
注意:对于有冗余的 raid 形式,在单一磁盘故障时一般能在一段时间内重建数据;但是数据量非常大时,重建会非常缓慢,且重 建系统过程压力比较大,此时需要多关注系统负载,防止重建过程出现错误;在热移除故障盘后,也需要尽快的换上新 硬盘,并且添加 spare 盘;在故障修复,重建重建之后,需要重新生成配置文件,防止在下次开启时,按照最初的定义模 式开启。
3、RAID 阵列添加新的组员;
#mdadm -G /dev/md0 -n4 -a /dev/sdb
4、停止 RAID 设备;如下图:
5、激活 RAID 设备;如下图:
6、删除 RAID 设备,如下图:
- 先取消挂载:#umount /mnt/raid
- 停止 RAID 设备:mdadm -S /dev/md0
- 删除配置文件:rf -f /etc/mdadm.conf
- 删除 /etc/fsatb 文件下的对应挂载信息
- 分别清除 RAID 成员上的 raid 元数据:
# mdadm –zero-superblock /dev/sda6
RAID-10 的创建方法:
1、先创建两个底层的 RAID-1:
#mdadm -C /dev/md0 -a yes -l 1 -n 2 /dev/sd{a6,b}
#mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sd{c1,d1}
2、用两个 RAID-1,创建上层 RAID-0
#mdadm -C /dev/md2 -a yes -l 0 -n 2 /dev/md{0,1}
3、查看状态;如下图:
4、创建配置文件
5、停止与开启阵列;
上图中:关闭与开启过程,系统只能识别层级,关闭先关闭上层的 RAID-0, 再关闭底层的两个 RAID-1;
开启也是与关闭过程一样;防止了冲突。