RAID磁盘阵列配置
RAID磁盘阵列配置
文章目录
- RAID磁盘阵列配置
- 一、磁盘管理其他相关命令
- 1.fsck-检查文件的正确性
- 2.dd-建立和使用交换文件
- 3.mkswap-建立和设置SWAP交换分区
- 二、RAID配置
一、磁盘管理其他相关命令
1.fsck-检查文件的正确性
[root@localhost ~]# fsck -aC /dev/sda1 //检查文件系统正确性,如果有错误,则自动修复
fsck,来自 util-linux 2.23.2
/sbin/fsck.xfs: XFS file system.
2.dd-建立和使用交换文件
常用参数 | 功能 |
---|---|
if | 输入文件 |
of | 输出文件 |
bs | 块大小 |
count | 块个数 |
-h | 显示帮助信息 |
-v | 显示版本信息 |
/dev/zero 是类UNIX操作系统中的一个特殊设备文件。当你读取它时,它会提供无限的空字符。
[root@localhost ~]# dd if=/dev/zero of=File count=1 bs=500M //生成一个指定大小(500MB)的新文件
记录了1+0 的读入
记录了1+0 的写出
524288000字节(524 MB)已复制,3.3121 秒,158 MB/秒
3.mkswap-建立和设置SWAP交换分区
交换分区是硬盘驱动器的一部分,用作交换内存,即RAM的溢出空间。当RAM开始填满时,操作系统会将不太常用的进程或数据从RAM移动到交换分区,以扩展可用内存。交换分区在Linux系统中被称为swap,它的作用是在物理内存不足时,将部分内存数据转移到硬盘上,从而缓解内存压力。
[root@localhost ~]# mkswap /dev/sdb1 //创建此分区为交换分区
正在设置交换空间版本 1,大小 = 2096124 KiB
无标签,UUID=3dee93a7-ced0-4b01-92fc-d63ae5dc3ace
[root@localhost ~]# swapon /dev/sdb1 //加载交换分区
[root@localhost ~]# swapon -s //显示加载的交换分区
文件名 类型 大小 已用 权限
/dev/dm-1 partition 2097148 0 -1
/dev/sdb1 partition 2096124 0 -2
[root@localhost ~]# swapoff /dev/sdb1 //关闭交换分区
[root@localhost ~]# swapon -s //
文件名 类型 大小 已用 权限
/dev/dm-1 partition 2097148 0 -1
二、RAID配置
# 创建4个大小都为2GB的磁盘,并将其中3个创建为RAID5阵列磁盘,1个创建为热备磁盘。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part ├─centos-root 253:0 0 50G 0 lvm /├─centos-swap 253:1 0 2G 0 lvm [SWAP]└─centos-home 253:2 0 47G 0 lvm /home
sdb 8:16 0 2G 0 disk
sdc 8:32 0 2G 0 disk
sdd 8:48 0 2G 0 disk
sde 8:64 0 2G 0 disk
sr0 11:0 1 4.2G 0 rom # 由于RAID5要用到整块磁盘,所以直接将磁盘全部空间创建一个主分区,类型改为fd
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。命令(输入 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-4194303,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-4194303,默认为 4194303):
将使用默认值 4194303
分区 1 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk -l | grep sdb
磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区
/dev/sdb1 2048 4194303 2096128 fd Linux raid autodetect# 使用同样的方法设置另外3块盘
[root@localhost ~]# fdisk -l | grep sd[b-e]
磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区
/dev/sdb1 2048 4194303 2096128 fd Linux raid autodetect
磁盘 /dev/sdc:2147 MB, 2147483648 字节,4194304 个扇区
/dev/sdc1 2048 4194303 2096128 fd Linux raid autodetect
磁盘 /dev/sdd:2147 MB, 2147483648 字节,4194304 个扇区
/dev/sdd1 2048 4194303 2096128 fd Linux raid autodetect
磁盘 /dev/sde:2147 MB, 2147483648 字节,4194304 个扇区
/dev/sde1 2048 4194303 2096128 fd Linux raid autodetect# 使用mdadm命令创建RAID5阵列及其热备份
# 直接将4个磁盘中的3个创建为RAID5阵列,1个创建为热备磁盘
[root@localhost ~]# yum install -y mdadm
[root@localhost ~]# mdadm --create /dev/md0 --auto=yes --level=5 --raid-devices=3 --spare-devices=1 /dev/sd[b-e]1
mdadm: Fail to create md0 when using /sys/module/md_mod/parameters/new_array, fallback to creation via node
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:Version : 1.2Creation Time : Sat May 31 23:28:38 2025Raid Level : raid5Array Size : 4188160 (3.99 GiB 4.29 GB)Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Sat May 31 23:28:49 2025State : clean Active Devices : 3Working Devices : 4Failed Devices : 0Spare Devices : 1Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:0 (local to host localhost.localdomain)UUID : 0449f536:b1852c5e:feb4197e:f6d664c5Events : 18Number Major Minor RaidDevice State0 8 17 0 active sync /dev/sdb11 8 33 1 active sync /dev/sdc14 8 49 2 active sync /dev/sdd13 8 65 - spare /dev/sde1
[root@localhost ~]# # 添加RAID5阵列到配置文件/etc/mdadm.conf中,默认此文件是不存在的
[root@localhost ~]# echo 'DEVICE /dev/sd[b-e]1' >> /etc/mdadm.conf
[root@localhost ~]# mdadm -Ds >> /etc/mdadm.conf
[root@localhost ~]# cat /etc/mdadm.conf
DEVICE /dev/sd[b-e]1
ARRAY /dev/md0 metadata=1.2 spares=1 name=localhost.localdomain:0 UUID=0449f536:b1852c5e:feb4197e:f6d664c5# 格式化磁盘阵列
[root@localhost ~]# mkfs.xfs /dev/md0
meta-data=/dev/md0 isize=512 agcount=8, agsize=130944 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1047040, imaxpct=25= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# # 挂载磁盘阵列
[root@localhost ~]# mkdir /mnt/raid5
[root@localhost ~]# mount /dev/md0 /mnt/raid5/
[root@localhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 1.8G 49G 4% /
devtmpfs devtmpfs 476M 0 476M 0% /dev
tmpfs tmpfs 488M 0 488M 0% /dev/shm
tmpfs tmpfs 488M 7.7M 480M 2% /run
tmpfs tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/mapper/centos-home xfs 47G 33M 47G 1% /home
/dev/sda1 xfs 1014M 130M 885M 13% /boot
tmpfs tmpfs 98M 0 98M 0% /run/user/0
/dev/md0 xfs 4.0G 33M 4.0G 1% /mnt/raid5
[root@localhost ~]# # 测试以热备磁盘替换阵列中的磁盘并同步数据,移除损坏的磁盘,添加一个新磁盘作为热备磁盘,并删除RAID阵列
1.写入测试文件
# 在RAID5阵列上写入一个大小为10MB的文件,命名为10M_file,以供数据恢复是测试使用
[root@localhost ~]# cd /mnt/raid5/
[root@localhost raid5]# dd if=/dev/zero of=10M_file count=1 bs=10M
记录了1+0 的读入
记录了1+0 的写出
10485760字节(10 MB)已复制,0.00878638 秒,1.2 GB/秒
[root@localhost raid5]# ll
总用量 10240
-rw-r--r--. 1 root root 10485760 5月 31 23:36 10M_file2.RAID设备的数据恢复
# 如果RAID设备中的某个磁盘损坏,则系统会自动停止该磁盘工作,使热备磁盘代替损坏的磁盘继续工作。
[root@localhost raid5]# mdadm /dev/md0 -f /dev/sdc1 //模拟sdc损坏,进行标记失效
mdadm: set /dev/sdc1 faulty in /dev/md0
[root@localhost raid5]# mdadm -D /dev/md0 //查看阵列状态
/dev/md0:Version : 1.2Creation Time : Sat May 31 23:28:38 2025Raid Level : raid5Array Size : 4188160 (3.99 GiB 4.29 GB)Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Sat May 31 23:39:56 2025State : clean Active Devices : 3Working Devices : 3Failed Devices : 1 # 失效1块Spare Devices : 0Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:0 (local to host localhost.localdomain)UUID : 0449f536:b1852c5e:feb4197e:f6d664c5Events : 37Number Major Minor RaidDevice State0 8 17 0 active sync /dev/sdb13 8 65 1 active sync /dev/sde1 # sde代替sdc继续工作4 8 49 2 active sync /dev/sdd11 8 33 - faulty /dev/sdc1
[root@localhost raid5]# ll
总用量 10240
-rw-r--r--. 1 root root 10485760 5月 31 23:36 10M_file
[root@localhost raid5]# 3.移除损坏的磁盘
[root@localhost raid5]# mdadm /dev/md0 -r /dev/sdc1
mdadm: hot removed /dev/sdc1 from /dev/md0
[root@localhost raid5]# mdadm -D /dev/md0
/dev/md0:Version : 1.2Creation Time : Sat May 31 23:28:38 2025Raid Level : raid5Array Size : 4188160 (3.99 GiB 4.29 GB)Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)Raid Devices : 3Total Devices : 3Persistence : Superblock is persistentUpdate Time : Sat May 31 23:42:48 2025State : clean Active Devices : 3Working Devices : 3Failed Devices : 0Spare Devices : 0Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:0 (local to host localhost.localdomain)UUID : 0449f536:b1852c5e:feb4197e:f6d664c5Events : 38Number Major Minor RaidDevice State0 8 17 0 active sync /dev/sdb13 8 65 1 active sync /dev/sde14 8 49 2 active sync /dev/sdd14.添加新的磁盘作为热备磁盘
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part ├─centos-root 253:0 0 50G 0 lvm /├─centos-swap 253:1 0 2G 0 lvm [SWAP]└─centos-home 253:2 0 47G 0 lvm /home
sdb 8:16 0 2G 0 disk
└─sdb1 8:17 0 2G 0 part └─md0 9:0 0 4G 0 raid5
sdc 8:32 0 2G 0 disk
└─sdc1 8:33 0 2G 0 part
sdd 8:48 0 2G 0 disk
└─sdd1 8:49 0 2G 0 part └─md0 9:0 0 4G 0 raid5
sde 8:64 0 2G 0 disk
└─sde1 8:65 0 2G 0 part └─md0 9:0 0 4G 0 raid5
sdf 8:80 0 2G 0 disk
sr0 11:0 1 4.2G 0 rom
[root@localhost ~]# fdisk /dev/sdf
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。Device does not contain a recognized partition table
使用磁盘标识符 0x80ae3207 创建新的 DOS 磁盘标签。命令(输入 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-4194303,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-4194303,默认为 4194303):
将使用默认值 4194303
分区 1 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# mkfs.xfs /dev/sdf1
meta-data=/dev/sdf1 isize=512 agcount=4, agsize=131008 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=524032, imaxpct=25= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# # 将新添加的磁盘加入阵列,会自动变为热备磁盘
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:Version : 1.2Creation Time : Sat May 31 23:28:38 2025Raid Level : raid5Array Size : 4188160 (3.99 GiB 4.29 GB)Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Sat May 31 23:47:46 2025State : clean Active Devices : 3Working Devices : 4Failed Devices : 0Spare Devices : 1Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:0 (local to host localhost.localdomain)UUID : 0449f536:b1852c5e:feb4197e:f6d664c5Events : 39Number Major Minor RaidDevice State0 8 17 0 active sync /dev/sdb13 8 65 1 active sync /dev/sde14 8 49 2 active sync /dev/sdd15 8 81 - spare /dev/sdf1 # 热备磁盘
[root@localhost ~]# 5.删除RAID阵列
# RAID的删除一定要慎重,操作不当可能会导致系统无法启动
# 卸载阵列,如果配置了自动挂载,一定要在/etc/fstab中删除配置
[root@localhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 1.8G 49G 4% /
devtmpfs devtmpfs 476M 0 476M 0% /dev
tmpfs tmpfs 488M 0 488M 0% /dev/shm
tmpfs tmpfs 488M 7.7M 480M 2% /run
tmpfs tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/mapper/centos-home xfs 47G 33M 47G 1% /home
/dev/sda1 xfs 1014M 130M 885M 13% /boot
tmpfs tmpfs 98M 0 98M 0% /run/user/0
[root@localhost ~]# # 停止RAID工作
[root@localhost ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0# 删除RAID中的相关磁盘
[root@localhost ~]# mdadm --misc --zero-superblock /dev/sd[b,d-f]1# 删除RAID相关配置文件
[root@localhost ~]# rm -f /etc/mdadm.conf# 查看验证
[root@localhost ~]# mdadm -D /dev/md0
mdadm: cannot open /dev/md0: No such file or directory
[root@localhost ~]#