RAID实验
一、前期准备
(一)添加两块硬盘
(二)验证是否能上网
ping DNS或者网站地址
ping 114.114.114.114
(三)安装mdadm
mdadm是一个用于创建、管理、监控RAID设备的工具,它使用linux中的md驱动,能完成所有软件RAID的管理功能。
yum -y install mdadm
二、RAID实验
(一)查看硬盘是否已添加
fdisk -l
(二)划分主分区
1./dev/sdb
fdisk /dev/sdb
#回显如下
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xe03c8371 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 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.
正在同步磁盘。
2./dev/sdc
fdisk /dev/sdc
#回显如下
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xb7637373 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 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.
正在同步磁盘。
(三)RAID创建
说明:
/dev/md1 md1为阵列名称,可自定义
--create / -C创建一个新的阵列
--level= / -l指定RAID的级别,目前支持raid0,1,4,5,6,10
--raid-devices= / -n指定磁盘的数量
mdadm -C /dev/md1 -l1 -n2 /dev/sdb /dev/sdc
#回显如下
mdadm: partition table exists on /dev/sdb
mdadm: partition table exists on /dev/sdb but will be lost or
meaningless after creating array
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
mdadm: partition table exists on /dev/sdc
mdadm: partition table exists on /dev/sdc but will be lost or
meaningless after creating array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
(四)查看阵列
cat /proc/mdstat 用于显示软件RAID阵列的状态。它显示了每个阵列设备的状态、阵列类型和阵列中的磁盘数量。
cat /proc/mdstat
#回显如下
Personalities : [raid1]
md1 : active raid1 sdc[1] sdb[0]
20954112 blocks super 1.2 [2/2] [UU]
unused devices: <none>
(五)查看设备
mdadm -D /dev/md1
#回显如下
/dev/md1:
Version : 1.2
Creation Time : Tue Jun 6 09:47:11 2023
Raid Level : raid1
Array Size : 20954112 (19.98 GiB 21.46 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Tue Jun 6 09:47:45 2023
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : HYX-RAID:1 (local to host HYX-RAID)
UUID : 45fb1437:49eab644:e905e5c6:a6ceb130
Events : 17
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
(六)格式化与挂载
1.格式化
mkfs.xfs /dev/md1
#回显如下
meta-data=/dev/md1 isize=512 agcount=4, agsize=1309632 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5238528, 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
2.挂载
mkdir mount #创建挂载目录
mount /dev/md1 /root/mount #挂载
df -l #查看挂载信息
#回显如下
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17811456 1242564 16568892 7% /
devtmpfs 919504 0 919504 0% /dev
tmpfs 931624 0 931624 0% /dev/shm
tmpfs 931624 9772 921852 2% /run
tmpfs 931624 0 931624 0% /sys/fs/cgroup
/dev/sda1 1038336 148536 889800 15% /boot
tmpfs 186328 0 186328 0% /run/user/0
/dev/md1 20943872 32992 20910880 1% /root/mount #挂载成功
(七)故障与恢复
1.故障
mdadm /dev/md1 -f /dev/sdb #强制删除/dev/sdb
mdadm: set /dev/sdb faulty in /dev/md1
mdadm -D /dev/md1 #查看状态
/dev/md1:
Version : 1.2
Creation Time : Tue Jun 6 09:47:11 2023
Raid Level : raid1
Array Size : 20954112 (19.98 GiB 21.46 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Tue Jun 6 11:41:04 2023
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 1
Spare Devices : 0
Consistency Policy : resync
Name : HYX-RAID:1 (local to host HYX-RAID)
UUID : 45fb1437:49eab644:e905e5c6:a6ceb130
Events : 19
Number Major Minor RaidDevice State
- 0 0 0 removed
1 8 32 1 active sync /dev/sdc
0 8 16 - faulty /dev/sdb #/dev/sdb已故障
2.恢复
mdadm /dev/md1 --add /dev/sdb
#如果回显如下则恢复失败
mdadm: Cannot open /dev/sdb: Device or resource busy
#可使用下面的命令强制恢复
#强制重新同步可能会导致数据丢失或损坏,因此请谨慎使用
mdadm /dev/md1 --re-add /dev/sdb
#回显如下
mdadm: re-add /dev/sdb to md1 succeed
#查看状态
mdadm -D /dev/md1
#回显如下
/dev/md1:
Version : 1.2
Creation Time : Tue Jun 6 09:47:11 2023
Raid Level : raid1
Array Size : 20954112 (19.98 GiB 21.46 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Tue Jun 6 11:49:59 2023
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : HYX-RAID:1 (local to host HYX-RAID)
UUID : 45fb1437:49eab644:e905e5c6:a6ceb130
Events : 38
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb #/dev/sdb恢复成功
1 8 32 1 active sync /dev/sdc
RAID故障后,恢复数据需要进行以下步骤:
1.确认故障:首先需要确认RAID组的哪个磁盘发生了故障,并且确认所有其它磁盘仍然正常工作。在某些RAID级别中,可能需要同时发生多个故障才会导致数据丢失,可以尝试重新启动RAID设备或者重新插拔磁盘来确定问题。
2.更换故障磁盘:如果确认了故障磁盘,请使用与该磁盘类型、容量、转速等方面相同的新磁盘替换故障磁盘。新磁盘状态应为未分区,未格式化或未初始化。
3.重建RAID:启动RAID,在BIOS中进行配置,或是使用RAID控制器中的工具进行重建。该过程可能需要更新RAID组配置,对数据进行重新组织和重新分布等。在重建过程中,可以选择保留原始数据,或是在重建时进行格式化,此时将丢失所有数据。
4.恢复数据:如果选择保留原始数据,那么重建完成后,可以重新对RAID组进行分配,恢复所有数据。如果RAID组上没有重要数据,可以在重建时格式化,配置RAID组后重新存储数据。
评论区