一、raid磁盘阵列概述
概述:
raid(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。
raid就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。raid可以充分发挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。
二、raid工作模式
-
raid0(分条)
可以把多块硬盘连成一个容量更大的硬盘群,可以提高磁盘的性能和吞吐量。
RAID 0没有冗余或错误修复能力,成本低,要求至少两个磁盘,一般只是在那些对数据安全性要求不高的情况下才被使用。
容错性: | 无 | 冗余类型: | 无 |
---|---|---|---|
热备盘: | 无 | 读性能: | 高 |
随机写性能: | 高 | 连续写性能: | 高 |
需要的磁盘数: | 1+N(N不能为0) | 可用容量: | N*(多个磁盘的容量总和) |
典型应用 : 对数据安全性要求不高,但对读写性能要求极高,如图形工作站等应用
-
raid1(镜像)
把一个磁盘的数据镜像到另一个磁盘上,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,
具有很高的数据冗余能力,但磁盘利用率为50%,故成本最高,多用在保存关键性的重要数据的场合。
raid 1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。
容错性: | 有 | 冗余类型: | 镜像 |
---|---|---|---|
热备盘: | 有 | 读性能: | 低(与单块磁盘一样) |
随机写性能: | 低 | 连续写性能: | 低 |
需要的磁盘数: | 2*N(N代表磁盘数量) | 可用容量: | 50% |
典型应用 :对数据安全性可靠性要求高,但是读写效率低,用于服务器或数据库存储等;
-
raid5(奇偶校验)
raid 5可以理解为是raid 0和raid 1的折中方案。
raid 5可以为系统提供数据安全保障,但保障程度要比raid1低而磁盘空间利用率要比Mirror高。
raid 5具有和raid 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。
同时由于多个数据对应一个奇偶校验信息,raid 5的磁盘空间利用率要比raid 1高,存储成本相对较低。
容错性: | 有 | 冗余类型: | 奇偶校验信息存储 |
---|---|---|---|
热备盘: | 有 | 读性能: | 高(与raid0相近) |
随机写性能: | 较低 | 连续写性能: | 较低 |
需要的磁盘数: | 大于等于3 | 可用容量: | n-1 |
典型应用 :随机数据传输要求安全性高,如金融、数据库、存储等。
-
raid1+0(分条+镜像)
raid 10是一个raid 0与Raid1的组合体,所以它继承了raid0的快速和raid1的安全。
raid 1在这里就是一个冗余的备份阵列,而raid 0则负责数据的读写阵列。
情况是从主通路分出两路,做Striping操作,即把数据分割,而这分出来的每一路则再分两路,做Mirroring操作,即互做镜像。
容错性: | 有 | 冗余类型: | 镜像 |
---|---|---|---|
热备盘: | 有 | 读性能: | 高(与raid0相近) |
随机写性能: | 较低 | 连续写性能: | 较低 |
需要的磁盘数: | N*2 | 可用容量: | n/2 |
典型应用 :集成了RAID0和RAID1的优点;
总结:
三、制作raid
-
硬raid制作
- 戴尔R410服务器配置硬raid1: http://m.ouyaoxiazai.com/article/20/702.html
- IBM X3650服务器配置硬raid: http://blog.itpub.net/27771627/viewspace-1246405/
-
戴尔R740服务器配置硬raid
- 开机按f2进入system setup界面选择Device Settings
- 选择第1个进入raid卡配置
- 选择第1个 Configuration Management,进入raid卡管理
- 选择第1个 Configuration Management,进入raid卡管理
- 选择第二个 Create Virtual Disk,创建raid
- 创建双盘600G raid1
- 点击OK
- 鼠标下拉在Default Intialization 选择fast后,点击Create virtual Disk创建
- 选中Confirm后,点击yes
- 点击OK,完成raid1创建
- raid 0步骤一致
- 查看raid配置情况,可esc进入raid卡管理中选中第三个查看
- 最后点击右上角exit,退出f2,配置完成
- 开机按f2进入system setup界面选择Device Settings
-
软raid0制作:在本地虚拟机演示
- 添加三块硬盘sdb和sdc并进行分区,分为sdb1、sdc1,各5G,将其文件系统类型ID改为fd;
- 重读分区表;
- 安装软件包parted和mdadm工具;
-
mdadm命令创建raid 0;
mdadm -C /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdc1
选项:
-C 指定Raid卷位置
-l 执行Raid等级
-n 指定分区数量 - 查看raid卷初始化进度,完成后/dev/md0卷的详细信息;
cat /proc/mdstat
mdadm --detail /dev/md0 - 格式化/dev/md0卷;
- 重启服务器,使其重新加载raid关系;
- 挂载使用;
vi /etc/fstab
/dev/md/localhost:0 /data1/ ext4 defaults 0 0 - df -hT验证磁盘使用情况;
-
软raid1制作:
- 分区为sdb2、sdc2,各5G,将其文件系统类型ID改为fd;
- 重读分区表;
- mdadm命令创建raid 1;
mdadm -C /dev/md1 -l 1 -n 2 /dev/sdb2 /dev/sdc2 - 查看/dev/md1卷的详细信息;
cat /proc/mdstat
mdadm --detail /dev/md1 - 格式化/dev/md1卷;
- 重启服务器,使其重新加载raid关系;
- 挂载使用;
vi /etc/fstab
/dev/md/localhost:1 /data2/ ext4 defaults 0 0 - df -hT验证磁盘使用情况;
-
软raid5制作:
- 分区为sdb3、sdc3、sdd1,各5G,将其文件系统类型ID改为fd;
- 重读分区表;
- mdadm命令创建raid 5;
mdadm -C /dev/md2 -l 5 -n 3 /dev/sdb3 /dev/sdc3 /dev/sdd1 - 查看/dev/md2卷的详细信息;
cat /proc/mdstat
mdadm --detail /dev/md1 - 格式化/dev/md2卷;
- 重启服务器,使其重新加载raid关系;
- 挂载使用;
vi /etc/fstab
/dev/md/localhost:2 /data3/ ext4 defaults 0 0 - df -hT验证磁盘使用情况;
-
为raid1添加热备盘
注意
新增加的硬盘的容量大小需要大于等于原有硬盘;
如果原有阵列缺少工作磁盘(如raid1只有一块在工作,raid5只有2块在工作),这时新增加的磁盘直接变为工作磁盘,如果原有阵列工作正常,则新增加的磁盘为热备磁盘;
步骤- 分区为sdd2,大小为5G,并将文件系统类型改为fd,并且重读分区表;
- 将/dev/sdd2添加到RAID1,作为热备盘;
mdadm /dev/md/localhost:1 --add /dev/sdd2 - 查看raid1卷的详细信息;
cat /proc/mdstat
mdadm -D /dev/md/localhost:1 - 将raid1卷中的活跃卷/dev/sdb2模拟故障;
mdadm /dev/md/localhost:1 --fail /dev/sdb2 - 查看raid1卷的详细信息;
mdadm -D /dev/md/localhost:1 - 将故障卷在RAID1中进行移除;
mdadm /dev/md/localhost:1 -r /dev/sdb2 - 查看raid1卷的详细信息;
mdadm -D /dev/md/localhost:1
-
为raid进行动态扩容:
注解- raid0的存储方式为散列存储,无法进行扩容;
- 如若为raid1进行扩容,需要进行添加比当前工作硬盘容量大的硬盘,然后逐一替换掉原有工作硬盘,命令如下:
mdadm /dev/md/localhost:1 --add /dev/sdb3 ##添加热备盘
mdadm --grow /dev/md/localhost:1 --raid-devices=3 ##将默认两块工作硬盘数量调整到三块,热备盘自动变为工作磁盘
mdadm -D /dev/md/localhost:1 ##查看复制状态
mdadm /dev/md/localhost:1 --fail /dev/sdb2 ##模拟磁盘分区故障
mdadm /dev/md/localhost:1 -r /dev/sdb2 ##删除原有小的工作磁盘
mdadm -G /dev/md/localhost:1 --size=20G ##重新加载扩容后的大小
resize2fs /dev/md/localhost:1 ##重新读取大小 - 如若为raid5进行扩容,则直接添加硬盘即可,命令如下;
mdadm /dev/md/localhost:1 --add /dev/sdb3
mdadm --grow /dev/md/localhost:1 --raid-devices=4
mdadm -D /dev/md/localhost:1
resize2fs /dev/md/localhost:1 ##重新加载磁盘大小
-
制作raid1+0
- 分区为sdb4、sdc4、sdd3、sdd4各4G,将其文件系统类型ID改为fd;
- 重读分区表;
- mdadm命令创建第一个raid 1;
mdadm -C /dev/md3 -l 1 -n 2 /dev/sdb4 /dev/sdc4 - 查看/dev/md3卷的详细信息;
cat /proc/mdstat
mdadm --detail /dev/md3 - mdadm命令创建第二个raid1;
mdadm -C /dev/md4 -l 1 -n 2 /dev/sdd3 /dev/sdd4 - 查看/dev/md4卷的详细信息;
cat /proc/mdstat
mdadm --detail /dev/md4 - 格式化两个raid 1卷;
mkfs -t ext4 /dev/md3
mkfs -t ext4 /dev/md4 - 重启服务器,使其重新加载raid关系;
- 将上述两个raid1卷制作成为一个raid0;
mdadm -C /dev/md5 -l 0 -n 2 /dev/md/localhost:3 /dev/md/localhost:4 - 查看/dev/md5卷的详细信息;
cat /proc/mdstat
mdadm --detail /dev/md5 - 格式化新创建的raid0卷/dev/md5;
mkfs -t ext4 /dev/md5 - 重启服务器,使其重新加载raid关系;
- 挂载使用;
vi /etc/fstab
/dev/md/localhost:5 /data4/ ext4 defaults 0 0 - df -hT验证磁盘使用情况;