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 ),那就

  1. 运行 gdisk 命令:

    gdisk /dev/sdb
    
  2. gdisk 的提示符下,输入 x 进入专家模式。

  3. 输入 z 来删除 GPT 数据,并选择不保存更改。

  4. 退出 gdisk

  5. 然后再运行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
  1. 暂停检查: 您可以暂时停止正在进行的检查。这可以通过写入 RAID 设备的 sync_action 控制文件来实现:

    sudo sh -c 'echo idle > /sys/block/md0/md/sync_action'
    
  2. 重新安排检查: 如果您想在系统负载较低时自动启动检查,您可能需要编写一个 cron 作业或使用 at 命令来安排。例如,使用 cron 在每天凌晨 2 点开始检查:

    • 编辑 crontab 文件:

      sudo crontab -e
      
    • 添加以下行以安排检查:

      0 2 * * * echo check > /sys/block/md0/md/sync_action
      

请注意,调整 RAID 操作可能会对数据完整性和系统性能产生影响。在进行任何更改之前,确保您了解这些命令的作用,并始终保证重要数据的备份。如果您不确定,建议咨询专业的 IT 支持或系统管理员。

posted @ 2023-12-27 19:17  河在谈  阅读(169)  评论(0编辑  收藏  举报