mdadm 创建软raid5
在开始操作之前,需要提醒您,操作 RAID 数组和磁盘分区是一个风险较高的操作,可能会导致数据丢失。在进行此类操作前,请务必备份所有重要数据。
要使用 mdadm
命令在 /dev/sda
至 /dev/sde
这五块硬盘上创建一个 RAID 5 阵列,您需要先清除这些硬盘上的分区信息。以下是操作步骤:
1. 备份数据
确保这些硬盘上的所有重要数据都已经备份。
2. 安装 mdadm
如果尚未安装 mdadm
,请先安装。在基于 Debian 的系统中,可以使用以下命令:
sudo apt-get update
sudo apt-get install mdadm
3. 清除旧的分区信息
对每个硬盘执行以下命令以清除分区表。警告:这将删除硬盘上的所有数据。
sudo mdadm --zero-superblock /dev/sd[a-e]
如果这一步有报错,先确定这些盘都没挂载或使用中,那就使用这个命令
sudo wipefs -a /dev/sda
sudo wipefs -a /dev/sdb
sudo wipefs -a /dev/sdc
sudo wipefs -a /dev/sdd
sudo wipefs -a /dev/sde
如果还报错(wipefs: error: /dev/sdb: probing initialization failed: Device or resource busy ),那就
-
运行
gdisk
命令:gdisk /dev/sdb
-
在
gdisk
的提示符下,输入x
进入专家模式。 -
输入
z
来删除 GPT 数据,并选择不保存更改。 -
退出
gdisk
。 -
然后再运行wipefs那个命令。
如果还不行,重启服务器就好了。
4. 创建 RAID 5 阵列
使用以下命令创建 RAID 5 阵列:
sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=5 /dev/sd[a-e]
这将创建一个名为 /dev/md0
的 RAID 5 阵列。
5. 格式化 RAID 阵列
选择一个文件系统格式化 RAID 阵列。例如,使用 ext4 文件系统:
sudo mkfs.ext4 /dev/md0
6. 挂载 RAID 阵列
创建一个挂载点并挂载 RAID 阵列:
sudo mount /dev/md0 /opt
7. 配置自动挂载
编辑 /etc/fstab
文件以实现启动时自动挂载:
echo '/dev/md0 /opt ext4 defaults,nofail 0 2' | sudo tee -a /etc/fstab
8. 保存 RAID 配置
为了确保 RAID 阵列在系统重启后能够正确组装,需要保存 RAID 配置:
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
9. 更新初始化内存盘
更新 initramfs 以确保系统能在启动时识别 RAID 阵列:
sudo update-initramfs -u
10. 检查阵列状态
最后,您可以检查 RAID 阵列的状态:
cat /proc/mdstat
sudo mdadm --detail /dev/md0
这些都做完了,你会发现最后一块盘在rebuilding,这应该是初始化过程,等这他执行完了再用,不然。。。太卡了。。。rebuilding的也慢,教训深刻啊。。。
一次异常断电后的硬盘 check 导致应用很卡
可以看到: Check Status : 57% complete
root@yxm:/opt/server/yky# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Dec 28 05:05:50 2023
Raid Level : raid5
Array Size : 62502989824 (58.21 TiB 64.00 TB)
Used Dev Size : 15625747456 (14.55 TiB 16.00 TB)
Raid Devices : 5
Total Devices : 5
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Wed Jan 10 01:39:57 2024
State : clean, checking
Active Devices : 5
Working Devices : 5
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : bitmap
Check Status : 57% complete
Name : yxm:0 (local to host yxm)
UUID : 5d24bb57:ee35fa63:c5a3c645:834c6b35
Events : 56639
Number Major Minor RaidDevice State
0 8 0 0 active sync /dev/sda
1 8 16 1 active sync /dev/sdb
2 8 32 2 active sync /dev/sdc
3 8 48 3 active sync /dev/sdd
5 8 64 4 active sync /dev/sde
-
暂停检查: 您可以暂时停止正在进行的检查。这可以通过写入 RAID 设备的
sync_action
控制文件来实现:sudo sh -c 'echo idle > /sys/block/md0/md/sync_action'
-
重新安排检查: 如果您想在系统负载较低时自动启动检查,您可能需要编写一个 cron 作业或使用
at
命令来安排。例如,使用cron
在每天凌晨 2 点开始检查:-
编辑 crontab 文件:
sudo crontab -e
-
添加以下行以安排检查:
0 2 * * * echo check > /sys/block/md0/md/sync_action
-
请注意,调整 RAID 操作可能会对数据完整性和系统性能产生影响。在进行任何更改之前,确保您了解这些命令的作用,并始终保证重要数据的备份。如果您不确定,建议咨询专业的 IT 支持或系统管理员。