RAID磁盘冗余阵列
RAID磁盘冗余阵列
RAID技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果。
RAID 0、1、5、10方案技术对比
RAID级别 | 最少硬盘 | 可用容量 | 读写性能 | 安全性 | 特点 |
0 | 1 | n | n | 低 | 追求最大容量和速度,任何一块盘损坏,数据全部异常。 |
1 | 2 | n/2 | n | 高 | 追求最大安全性,只要阵列组中有一块硬盘可用,数据不受影响。 |
5 | 3 | n-1 | n-1 | 中 | 在控制成本的前提下,追求硬盘的最大容量、速度及安全性,允许有一块硬盘异常,数据不受影响。 |
10 | 4 | n/2 | n/2 | 高 | 综合RAID1和RAID0的优点,追求硬盘的速度和安全性,允许有一半硬盘异常(不可同组),数据不受影响 |
部署磁盘阵列
mdadm命令用于创建、调整、监控和管理RAID设备,英文全称为“multiple devices admin”,语法格式为“mdadm参数 硬盘名称”。
mdadm命令中的常用参数及作用如表所示
参数 | 作用 |
-a | 检测设备名称 |
-n | 指定设备数量 |
-l | 指定RAID级别 |
-C | 创建 |
-v | 显示过程 |
-f | 模拟设备损坏 |
-r | 移除设备 |
-Q | 查看摘要信息 |
-D | 查看详细信息 |
-S | 停止RAID磁盘阵列 |
创建RAID 10
1.创建RAID磁盘阵列
[root@superwu ~]# mdadm -Cv /dev/md/hoho -n 4 -l 10 /dev/sd[b-e] //在/dev/md目录下创建hoho阵列(默认没有md目录,创建阵列时会自动创建,且阵列卡必须在md目录下创建),使用sdb-e磁盘(也可以将硬盘单独写出/dev/sdb /dev/sdc /dev/sdd /dev/sde) mdadm: layout defaults to n2 mdadm: layout defaults to n2 mdadm: chunk size defaults to 512K mdadm: size set to 20954112K mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md/hoho started. [root@superwu md]# mdadm -Q /dev/md/hoho //磁盘阵列创建需要几分钟,查看阵列信息,-D可查看详细信息。 /dev/md/hoho: 39.97GiB raid10 4 devices, 0 spares. Use mdadm --detail for more detail.
2.格式化磁盘阵列
注意:创建磁盘阵列需要时间,建议等待几分钟或者查看阵列状态正常后进行格式化操作。
[root@superwu md]# mkfs.ext4 /dev/md/hoho mke2fs 1.44.3 (10-July-2018) Creating filesystem with 10477056 4k blocks and 2621440 inodes Filesystem UUID: face2652-48c3-4883-9260-12fa11976a97 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624 Allocating group tables: done Writing inode tables: done Creating journal (65536 blocks): done Writing superblocks and filesystem accounting information: done
3.挂载磁盘阵列
[root@superwu md]# mkdir /hoho //创建挂载点 [root@superwu md]# mount /dev/md/hoho /hoho [root@superwu md]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 969M 0 969M 0% /dev tmpfs 984M 0 984M 0% /dev/shm tmpfs 984M 9.6M 974M 1% /run tmpfs 984M 0 984M 0% /sys/fs/cgroup /dev/mapper/rhel-root 17G 3.9G 14G 23% / /dev/sr0 6.7G 6.7G 0 100% /media/cdrom /dev/sda1 1014M 152M 863M 15% /boot tmpfs 197M 16K 197M 1% /run/user/42 tmpfs 197M 3.5M 194M 2% /run/user/0 /dev/md127 40G 49M 38G 1% /hoho [root@superwu md]# echo "/dev/md/hoho /hoho ext4 defaults 0 0" >> /etc/fstab //将挂载信息写入配置文件,实现开机自动挂载。 [root@superwu md]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Tue Jan 11 03:26:57 2022 # # Accessible filesystems, by reference, are maintained under '/dev/disk/'. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info. # # After editing this file, run 'systemctl daemon-reload' to update systemd # units generated from this file. # /dev/mapper/rhel-root / xfs defaults 0 0 UUID=d7f53471-c95f-44f2-aafe-f86bd5ecebd7 /boot xfs defaults 0 0 /dev/mapper/rhel-swap swap swap defaults 0 0 /dev/cdrom /media/cdrom iso9660 defaults 0 0 /dev/md/hoho /hoho ext4 defaults 0 0 [root@superwu md]# mdadm -D /dev/md/hoho //查看磁盘阵列详细信息 /dev/md/hoho: Version : 1.2 Creation Time : Wed Feb 9 18:35:22 2022 Raid Level : raid10 Array Size : 41908224 (39.97 GiB 42.91 GB) Used Dev Size : 20954112 (19.98 GiB 21.46 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Wed Feb 9 18:53:54 2022 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : near=2 Chunk Size : 512K Consistency Policy : resync Name : superwu.10:hoho (local to host superwu.10) UUID : 6af87cfc:47705900:20fcf416:eeac2363 Events : 17 Number Major Minor RaidDevice State 0 8 16 0 active sync set-A /dev/sdb 1 8 32 1 active sync set-B /dev/sdc 2 8 48 2 active sync set-A /dev/sdd 3 8 64 3 active sync set-B /dev/sde
磁盘阵列故障盘处理
磁盘阵列中如果有硬盘出现故障,需要及时更换,负责会造成数据丢失风险。
1.模拟硬盘故障
虚拟机环境需要模拟硬盘损坏
[root@superwu md]# mdadm /dev/md/hoho -f /dev/sdc //模拟一块硬盘失效 mdadm: set /dev/sdc faulty in /dev/md/hoho [root@superwu md]# mdadm -D /dev/md/hoho /dev/md/hoho: Version : 1.2 Creation Time : Wed Feb 9 18:35:22 2022 Raid Level : raid10 Array Size : 41908224 (39.97 GiB 42.91 GB) Used Dev Size : 20954112 (19.98 GiB 21.46 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Wed Feb 9 19:12:37 2022 State : clean, degraded Active Devices : 3 Working Devices : 3 Failed Devices : 1 Spare Devices : 0 Layout : near=2 Chunk Size : 512K Consistency Policy : resync Name : superwu.10:hoho (local to host superwu.10) UUID : 6af87cfc:47705900:20fcf416:eeac2363 Events : 19 Number Major Minor RaidDevice State 0 8 16 0 active sync set-A /dev/sdb - 0 0 1 removed 2 8 48 2 active sync set-A /dev/sdd 3 8 64 3 active sync set-B /dev/sde 1 8 32 - faulty /dev/sdc
2.将故障硬盘从阵列中移除
[root@superwu md]# mdadm /dev/md/hoho -r /dev/sdc //-r移除磁盘 mdadm: hot removed /dev/sdc from /dev/md/hoho [root@superwu md]# mdadm -D /dev/md/hoho /dev/md/hoho: Version : 1.2 Creation Time : Wed Feb 9 18:35:22 2022 Raid Level : raid10 Array Size : 41908224 (39.97 GiB 42.91 GB) Used Dev Size : 20954112 (19.98 GiB 21.46 GB) Raid Devices : 4 Total Devices : 3 Persistence : Superblock is persistent Update Time : Wed Feb 9 19:16:27 2022 State : clean, degraded Active Devices : 3 Working Devices : 3 Failed Devices : 0 Spare Devices : 0 Layout : near=2 Chunk Size : 512K Consistency Policy : resync Name : superwu.10:hoho (local to host superwu.10) UUID : 6af87cfc:47705900:20fcf416:eeac2363 Events : 20 Number Major Minor RaidDevice State 0 8 16 0 active sync set-A /dev/sdb - 0 0 1 removed 2 8 48 2 active sync set-A /dev/sdd 3 8 64 3 active sync set-B /dev/sde
// /dev/md/hoho阵列中已经没有了/dev/sdc硬盘。
3.更换硬盘
注意:在生产环境中,服务器一般都使用RAID卡,对于RAID1、10会自动同步。
[root@superwu md]# mdadm /dev/md/hoho -a /dev/sdc //更换硬盘后,将新硬盘加入到阵列中,-a添加 mdadm: added /dev/sdc [root@superwu md]# mdadm -D /dev/md/hoho /dev/md/hoho: Version : 1.2 Creation Time : Wed Feb 9 18:35:22 2022 Raid Level : raid10 Array Size : 41908224 (39.97 GiB 42.91 GB) Used Dev Size : 20954112 (19.98 GiB 21.46 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Wed Feb 9 19:25:14 2022 State : clean, degraded, recovering Active Devices : 3 Working Devices : 4 Failed Devices : 0 Spare Devices : 1 Layout : near=2 Chunk Size : 512K Consistency Policy : resync Rebuild Status : 15% complete Name : superwu.10:hoho (local to host superwu.10) UUID : 6af87cfc:47705900:20fcf416:eeac2363 Events : 24 Number Major Minor RaidDevice State 0 8 16 0 active sync set-A /dev/sdb 4 8 32 1 spare rebuilding /dev/sdc //此时raid正在重构,重构需要时间,重构时间与磁盘大小有关。 2 8 48 2 active sync set-A /dev/sdd 3 8 64 3 active sync set-B /dev/sde
磁盘阵列+备份盘
RAID5+备份盘
备份盘的核心理念就是准备一块足够大的硬盘,这块硬盘平时处于闲置状态,一旦RAID磁盘阵列中有硬盘出现故障后则会马上自动顶替上去。
注意:备份盘的大小应等于或大于RAID成员盘。
1.创建磁盘阵列
[root@superwu ~]# mdadm -Cv /dev/md/hehe -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde //-x 表示有一块备份盘 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/md/hehe started. [root@superwu ~]# mdadm -D /dev/md/hehe /dev/md/hehe: Version : 1.2 Creation Time : Wed Feb 9 23:25:36 2022 Raid Level : raid5 Array Size : 41908224 (39.97 GiB 42.91 GB) Used Dev Size : 20954112 (19.98 GiB 21.46 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Wed Feb 9 23:25:43 2022 State : clean, degraded, recovering Active Devices : 2 Working Devices : 4 Failed Devices : 0 Spare Devices : 2 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Rebuild Status : 12% complete Name : superwu.10:hehe (local to host superwu.10) UUID : 2bb20f83:f96626bb:04d1ccd4:fc94809e Events : 2 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc 4 8 48 2 active sync /dev/sdd 3 8 64 - spare /dev/sde
2.格式化磁盘阵列
[root@superwu ~]# mkfs.ext4 /dev/md/hehe mke2fs 1.44.3 (10-July-2018) Creating filesystem with 10477056 4k blocks and 2621440 inodes Filesystem UUID: 65b5dd45-b4a7-4db8-b5d9-1331a95b4fba Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624 Allocating group tables: done Writing inode tables: done Creating journal (65536 blocks): done Writing superblocks and filesystem accounting information: done
3.挂载磁盘阵列
[root@superwu ~]# mkdir /opt/hehe [root@superwu ~]# mount /dev/md/hehe /opt/hehe/ [root@superwu ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 969M 0 969M 0% /dev tmpfs 984M 0 984M 0% /dev/shm tmpfs 984M 9.6M 974M 1% /run tmpfs 984M 0 984M 0% /sys/fs/cgroup /dev/mapper/rhel-root 17G 3.9G 14G 23% / /dev/sr0 6.7G 6.7G 0 100% /media/cdrom /dev/sda1 1014M 152M 863M 15% /boot tmpfs 197M 16K 197M 1% /run/user/42 tmpfs 197M 3.5M 194M 2% /run/user/0 /dev/md127 40G 49M 38G 1% /opt/hehe [root@superwu ~]# echo "/dev/md/hehe /opt/hehe ext4 defaults 0 0" >> /etc/fstab //加入开机自动挂载
当RAID中的硬盘故障时,备份盘会立即自动顶替故障盘。
[root@superwu ~]# mdadm /dev/md/hehe -f /dev/sdb //模拟sdb盘故障 mdadm: set /dev/sdb faulty in /dev/md/hehe [root@superwu ~]# mdadm -D /dev/md/hehe /dev/md/hehe: Version : 1.2 Creation Time : Wed Feb 9 23:25:36 2022 Raid Level : raid5 Array Size : 41908224 (39.97 GiB 42.91 GB) Used Dev Size : 20954112 (19.98 GiB 21.46 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Wed Feb 9 23:42:59 2022 State : clean, degraded, recovering Active Devices : 2 Working Devices : 3 Failed Devices : 1 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Rebuild Status : 1% complete Name : superwu.10:hehe (local to host superwu.10) UUID : 2bb20f83:f96626bb:04d1ccd4:fc94809e Events : 20 Number Major Minor RaidDevice State 3 8 64 0 spare rebuilding /dev/sde //sde自动顶替故障盘,并开始同步数据 1 8 32 1 active sync /dev/sdc 4 8 48 2 active sync /dev/sdd 0 8 16 - faulty /dev/sdb
删除磁盘阵列
1.卸载磁盘阵列,停用成员盘
[root@superwu ~]# umount /opt/hehe //卸载阵列 [root@superwu ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 969M 0 969M 0% /dev tmpfs 984M 0 984M 0% /dev/shm tmpfs 984M 9.6M 974M 1% /run tmpfs 984M 0 984M 0% /sys/fs/cgroup /dev/mapper/rhel-root 17G 3.9G 14G 23% / /dev/sr0 6.7G 6.7G 0 100% /media/cdrom /dev/sda1 1014M 152M 863M 15% /boot tmpfs 197M 16K 197M 1% /run/user/42 tmpfs 197M 3.5M 194M 2% /run/user/0 [root@superwu ~]# mdadm /dev/md/hehe -f /dev/sdb mdadm: set /dev/sdb faulty in /dev/md/hehe [root@superwu ~]# mdadm /dev/md/hehe -f /dev/sdc mdadm: set /dev/sdc faulty in /dev/md/hehe [root@superwu ~]# mdadm /dev/md/hehe -f /dev/sde mdadm: set /dev/sde faulty in /dev/md/hehe [root@superwu ~]# mdadm /dev/md/hehe -f /dev/sdd mdadm: set /dev/sdd faulty in /dev/md/hehe [root@superwu ~]# mdadm -D /dev/md/hehe /dev/md/hehe: Version : 1.2 Creation Time : Wed Feb 9 23:25:36 2022 Raid Level : raid5 Array Size : 41908224 (39.97 GiB 42.91 GB) Used Dev Size : 20954112 (19.98 GiB 21.46 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Wed Feb 9 23:52:31 2022 State : clean, FAILED Active Devices : 0 Failed Devices : 4 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Number Major Minor RaidDevice State - 0 0 0 removed - 0 0 1 removed - 0 0 2 removed 0 8 16 - faulty /dev/sdb 1 8 32 - faulty /dev/sdc 3 8 64 - faulty /dev/sde 4 8 48 - faulty /dev/sdd
2.移除成员盘
[root@superwu ~]# mdadm /dev/md/hehe -r /dev/sdb mdadm: hot removed /dev/sdb from /dev/md/hehe [root@superwu ~]# mdadm /dev/md/hehe -r /dev/sdc mdadm: hot removed /dev/sdc from /dev/md/hehe [root@superwu ~]# mdadm /dev/md/hehe -r /dev/sdd mdadm: hot removed /dev/sdd from /dev/md/hehe [root@superwu ~]# mdadm /dev/md/hehe -r /dev/sde mdadm: hot removed /dev/sde from /dev/md/hehe [root@superwu ~]# mdadm -D /dev/md/hehe /dev/md/hehe: Version : 1.2 Creation Time : Wed Feb 9 23:25:36 2022 Raid Level : raid5 Array Size : 41908224 (39.97 GiB 42.91 GB) Used Dev Size : 20954112 (19.98 GiB 21.46 GB) Raid Devices : 3 Total Devices : 0 Persistence : Superblock is persistent Update Time : Wed Feb 9 23:55:36 2022 State : clean, FAILED Active Devices : 0 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Number Major Minor RaidDevice State - 0 0 0 removed - 0 0 1 removed - 0 0 2 removed
3.停用磁盘阵列
[root@superwu ~]# mdadm --stop /dev/md/hehe mdadm: stopped /dev/md/hehe [root@superwu ~]# ls -l /dev/md/hehe ls: cannot access '/dev/md/hehe': No such file or directory