centos7部署raid5阵列
前言
①实验环境
系统:Linxu centos7
内存:
硬盘:20GB系统盘一块,3块5GB拓展硬盘
②目的:
用4块硬盘在 centos 7系统中模拟软Radi 5磁盘阵列,当其中一块盘坏掉,保证生产正常运行。
一.什么是磁盘阵列
RAID(Redundant Array of Independent Disk 独立冗余 磁盘 阵列 ) 技术是加州大学伯克利分校 1987 年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。 RAID 就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。 RAID 可以充分发挥出多块硬盘的优势,可以提升硬盘速度,增大容量 , 提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。
如需详细了解磁盘阵列的具体分类和功能,请看我另一篇博客,本文主要模拟创建过程,这里就不过多赘述。
二.安装磁盘阵列
1.
查看现有磁盘lsblk
,可以看到现在模拟机上有一块20GB的主磁盘和3块5GB的磁盘。我们把3块5GB的磁盘组成RAID5阵列。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
sdc 8:32 0 5G 0 disk
sdd 8:48 0 5G 0 disk
sr0 11:0 1 4.4G 0 rom
2.
① 将磁盘sdb磁盘分区,fdisk /dev/sda
, 进入磁盘会话界面。
③ 输入n
,创建分区。
④ 输入p
,创建主分区。
⑤ 只创建一个主分区,占用sdb磁盘全部空间,一直回车即可。
② 创建分区后,按“t
”修改磁盘格式。
③ 选择修改的文件系统,我们选择1(这里可以直接回车,应为我们上面只创建了一个分区sdb1,默认的就是这个),输入fd,把sdb1改为fd格式(修改HEX代码为fd)。
⑤“w
”保存退出。
为什么要,修改为fd格式呢,应为这是raid支持的文件系统格式。
[root@localhost ~]# fdisk /dev/sdb
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-10485759,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):
将使用默认值 10485759
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]#
⑧ 把sdc磁盘和sdd磁盘按照以上操作进行分区转换磁盘格式。
⑨ 最后检查,fdisk -l /dev/sdb /dev/sdc /dev/sdd
可以看到都是fd格式了(Linux raid autodetect)
4. 完成以上所有的准备工作后,下面就是正式构建RAID的步骤了
使用“mdadm -C /dev/md0 -l5 -n2 -x1 /dev/sdb1 /dev/sdc1 /dev/sdd1
”其中:
-C
——创建磁盘阵列
md0
——是阵列的名字
-v
——显示详细过程
-l5
——表示级别为5级
-n2
——由两块磁盘组成
-x1
——有一块作为热备盘
/dev/sdb1 /dev/sdc1 /dev/sdd1
——这些是指定那些分区来组raid
[root@localhost ~]# mdadm -C /dev/md0 -l5 -n2 -x1 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
5. 查看下,已经创建好raid5的 md0,成员盘sdb1,sdc1,sdd1都在。
lsblk
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
└─sdb1 8:17 0 5G 0 part
└─md0 9:0 0 5G 0 raid5
sdc 8:32 0 5G 0 disk
└─sdc1 8:33 0 5G 0 part
└─md0 9:0 0 5G 0 raid5
sdd 8:48 0 5G 0 disk
└─sdd1 8:49 0 5G 0 part
└─md0 9:0 0 5G 0 raid5
sr0 11:0 1 4.4G 0 rom
6. 格式化md0
mkfs.ext4 /dev/md0
7. 挂载md0
mount /mnt/raid5 /dev/md0
8. 写入文件,测试正常
[root@localhost /]# touch /mnt/raid5/123.txt
[root@localhost /]# echo 123546 > /mnt/raid5/123.txt
[root@localhost /]# cat /mnt/raid5/123.txt
123546
三.模拟磁盘坏掉
1.卸载sdb1
[root@localhost /]# mdadm /dev/md0 -f /dev/sdb1 -r /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0
mdadm: hot removed /dev/sdb1 from /dev/md0
2.查看 sdb1已不是raid5阵列盘
[root@localhost /]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
└─sdb1 8:17 0 5G 0 part
sdc 8:32 0 5G 0 disk
└─sdc1 8:33 0 5G 0 part
└─md0 9:0 0 5G 0 raid5 /mnt/raid5
sdd 8:48 0 5G 0 disk
└─sdd1 8:49 0 5G 0 part
└─md0 9:0 0 5G 0 raid5 /mnt/raid5
sr0 11:0 1 4.4G 0 rom
3.测试查看原来创建的文件,并无损坏,模拟完成。
[root@localhost raid5]# cat /mnt/raid5/123.txt
123546