RAID:Redundant Arrays of Inexpensive(Independent) Disks 1988年由加利福尼亚大学伯克利分校(University of CaliforniaBerkeley) “A Case for Redundant Arrays of Inexpensive Disks” 多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者二者都提供
RAIDide
提升IO能力 磁盘并行读写 提升耐用性 磁盘沉余来实现 级别:多块磁盘组织在一块儿的工做方式有所不一样 RAID实现的方式 外接式磁盘阵列:经过扩展卡提供适配能力 内接式RAID:主板集成RAID控制器 安装OS前在BIOS里配置 软件RAID:经过OS实现
RAID级别工具
RAID-0:条带卷,strip RAID-1: 镜像卷,mirror RAID-2 RAID-5 RAID-6 RAID-10 RAID-01
RAID级别详解性能
RAID-0: 读写性能提高 可用空间:N*min(s1,s2) 无容错能力 最少磁盘:2,2+ RAID-1: 读性能提高,写性能略有降低 可用空间:1*min(s1,s2) 有冗余能力 最少磁盘数:2,2n RAID-5: 读,写性能提高 可用空间:(N-1)*min(s1,s2) 有容错能力:容许最多一块磁盘 最少磁盘数:3,3+ RAID-6: 读,写性能提高 可用空间:(N-2)*min(S1,S2,...) 有容错能力:容许最多2块磁盘损坏 最少磁盘数:4,4+ RAID-10: 读,写性能提高 可用空间:N*min(S1,S2,...)/2 有容错能力:每组镜像最多只能坏一块 最少磁盘数:4,4+ RAID-01: 多块磁盘先实现RAID0,在组合成RAID1 JBOD: Just a Bunch Of Disks 功能:将多块磁盘的空间合并一个大的连续空间使用 RAID7: 能够理解为一个独立存储计算机,自身带有操做系统和管理工具,,能够独自运行,理论上性能最高的RAID模式 经常使用级别: RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
软RAID测试
mdadm:为软RAID提供管理界面 为空余磁盘添加冗余 结合内核中的md RAID设备可命名为/dev/md0、/dev/md一、/dev/md二、/dev/md3等
软件RAID的实现操作系统
mdadm:模式化的工具 命令的语法格式:mdadm [mode] <raiddevice> [options] <componentdevices> 支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10 模式: 建立:-C 装配:-A 监控:-F 管理:-f, -r, -a <raiddevice>: /dev/md# <component-devices>: 任意块设备
软件RAID的实现日志
-C:建立模式 -n #: 使用#个块设备来建立此RAID -l #:指明要建立的RAID的级别 -a {yes|no}:自动建立目标RAID设备的设备文件 -a yes[意思是初始化RAID设备] -c CHUNK_SIZE: 指明块大小,单位k -x #: 指明空闲盘的个数 -D:显示raid的详解信息 mdadm -D /dev/md 管理模式: -f: 标记指定磁盘为损坏 -a: 添加磁盘 -r: 移除磁盘 观察md的状态:cat /proc/mdstat 例:实现RAID0【性能高,可是没有容错性,损坏一个硬盘就不能使用】 第一步:用四个硬盘,分别拿出相应的空间大小,分区时注意格式 t :dd if=/dev/sda of=/dev/sdb bs=1 count=512 第二步:mdadm -C /dev/md0 -a yes -l0 -n 4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 第三步:在一个是否生成用命令mdadm -D /dev/md0 第四步:先把UUID存起来 mdadm -Ds /dev/md0 > /etc/mdadm.conf 第五步:建立文件系统 mkfs.ext4 /dev/md0 blkid就能够查看了 第六步:建立一个挂载点就能够挂载了 mkdir /mnt/raid [永久挂载/etc/fstab] 例:实现RAID5【五个硬盘一个空闲,四个真正使用,】 第一步: mdadm -C /dev/md5 -a yes -l5 -n4 -x1 /dev/sd{b,c,d,e}1 /dev/sd... 第二步:先把UUID存起来 mdadm -Ds /dev/md5 > /etc/mdadm.conf 第三步:建立文件系统 mkfs.ext4 /dev/md5 blkid就能够查看了 第四步:建立文件系统 mkfs.ext4 /dev/md5 blkid就能够查看了 第五步:建立一个挂载点就能够挂载了 mkdir /mnt/raid [永久挂载/etc/fstab] 模拟磁盘故障 mdadm /dev/md5 -f /dev/sde1[模拟sde1硬盘损坏] [mdadm -D /dev/md5 查看状况] 移除磁盘 mdadm /dev/md5 –r /dev/sde1【移除sde1】mdadm /dev/md5 –a /dev/sde1【添加回来sde1】 损坏后加硬盘:mdadm /dev/md5 -a /dev/sde[添加一块/dev/sde硬盘] 【若是是硬盘直接加就行,若是是分区须要格式化还要t加......】 若是空间不够想扩展空间 【mdadm -G /dev/md5 -n 5 -a /dev/sda3 [-G是添加,-n5表明之前是四个如今加到5个 -a 是把那个加到里面]】 【df查看的是文件系统因此看不到添加后的内存】【xfs_growfs /mnt/raid5[xfs文件系统后面跟的是挂载点]】 【resize2fs /dev/md5 etx4文件系统后面跟的是设备名】
软RAID配置示例 code
使用mdadm建立并定义RAID设备 mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 用文件系统对每一个RAID设备进行格式化 mke2fs -j /dev/md0 测试RAID设备 使用mdadm检查RAID设备的情况 mdadm --detail|D /dev/md0 增长新的成员 mdadm –G /dev/md0 –n4 -a /dev/sdf1
软RAID测试和修复 component
模拟磁盘故障 mdadm /dev/md0 -f /dev/sda1 移除磁盘 mdadm /dev/md0 –r /dev/sda1 从软件RAID磁盘修复磁盘故障 • 替换出故障的磁盘而后开机 • 在备用驱动器上重建分区 • mdadm /dev/md0 -a /dev/sda1 mdadm、/proc/mdstat及系统日志信息
软RAID管理ip
生成配置文件: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 例: 删除RAID0 首先先取消挂载 umount /mnt/raid0 而后在删除 rm -rf /etc/mdadm.conf[这里是建立时手工添加的] 而后中止设备 mdadm –S /dev/md0 【mdadm –A –s /dev/md0 就激活不了了,由于删除了/etc/mdadm.conf 这个文件】 而后是清除超级块mdadm --zero-superblock /dev/sdb1【或mdadm --zero-superblock /dev/sd{c,e,d}1 一下清空】 而后blkid就看不到文件系统了 ,lsblk看一下还能够看到分区 在完全的就是用dd 清空了:dd if=/dev/zero of=dev/sdb1,dd if=/dev/zero of=dev/sdc1,dd if=/dev/zero of=dev/sde1,dd if=/dev/zero of=dev/sdd1 能够用二进制确认一下 :hexdump -c /dev/sde1 注意:写入/etc下的文件要删除