mdadm RAID5 3*3TB,1 个带数据的驱动器

mdadm RAID5 3*3TB,1 个带数据的驱动器

我目前在一张磁盘 ( sdd) 上存储了我的数据。我现在有两个新的 3TB 磁盘 ( sdb&sdc),并且想要在所有三个磁盘上创建 RAID5 阵列。

  • sdb:gpt表,空分区sdb1
  • sdc:gpt表,空分区sdc1
  • sdd:gpt 表,btrfs-partition sdd1 与我的数据

我的计划是这样的:

  • 创建RAID5 阵列md0sdb1sdc1
  • 在其上创建 btrfs 文件系统。
  • 将数据从sdd1复制到md0
  • 重新分区(=擦除)sdd
  • 将数组增长到sdd1

我目前正致力于创建 2 磁盘 RAID5 阵列。我构建了数组

# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=2 /dev/sdc1 /dev/sdb1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 2900832256K
mdadm: automatically enabling write-intent bitmap on large array
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

/proc/mdstat显示它正在执行初始同步:我有一个磁盘 ( sdd),目前已在其中存储数据。我现在有两个新的 3TB 磁盘 ( sdb&sdc),并且想要在所有三个磁盘上创建 RAID5 阵列。

  • sdb:gpt表,空分区sdb1
  • sdc:gpt表,空分区sdc1
  • sdd:gpt 表,btrfs-partition sdd1 与我的数据

我的计划是这样的:

  • 创建RAID5 阵列md0sdb1sdc1
  • 在其上创建 btrfs 文件系统。
  • 将数据从sdd1复制到md0
  • 重新分区(=擦除)sdd
  • 将数组增长到sdd1

我目前正致力于创建 2 磁盘 RAID5 阵列。我构建了数组

# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=2 /dev/sdc1 /dev/sdb1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 2900832256K
mdadm: automatically enabling write-intent bitmap on large array
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

/proc/mdstat显示它正在执行初始同步:

Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
        md0 : active raid5 sdb1[2] sdc1[0]
          2900832256 blocks super 1.2 level 5, 512k chunk, algorithm 2 [2/1] [U_]
          [>....................]  recovery =  0.6% (19693440/2900832256) finish=308.8min speed=155487K/sec
          bitmap: 0/22 pages [0KB], 65536KB chunk

    unused devices: <none>

顶部显示,在此期间,md(adm) 使用了约 35% 的 CPU:

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  989 root      20   0       0      0      0 S  29.1  0.0   0:17.69 md0_raid5
  994 root      20   0       0      0      0 D   6.6  0.0   0:03.54 md0_resync

到目前为止,一切都很好。这应该需要约 6 小时。在我的第一次尝试中,我不得不重新启动服务器,从而在大约 5 小时后停止阵列,第二次我的sdb驱动器神秘地消失了,所以我还必须重新启动系统。

数组自动启动,但进度条消失了:

Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]      
md127 : active (auto-read-only) raid5 sdb1[2] sdc1[0]
      2900832256 blocks super 1.2 level 5, 512k chunk, algorithm 2 [2/1] [U_]
      bitmap: 0/22 pages [0KB], 65536KB chunk

unused devices: <none>

top报告没有 CPU 使用。

所以我尝试手动停止并组装它:

~# mdadm --stop /dev/md127
mdadm: stopped /dev/md127
~# mdadm --assemble --verbose /dev/md0 /dev/sdc1 /dev/sdb1
mdadm: looking for devices for /dev/md0
mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdb1 is identified as a member of /dev/md0, slot 1.
mdadm: added /dev/sdb1 to /dev/md0 as 1
mdadm: added /dev/sdc1 to /dev/md0 as 0
mdadm: /dev/md0 has been started with 1 drive (out of 2) and 1 rebuilding.

尽管它说正在重建,但 mdstat 没有显示任何迹象:

Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] 
md0 : active (auto-read-only) raid5 sdc1[0] sdb1[2]
      2900832256 blocks super 1.2 level 5, 512k chunk, algorithm 2 [2/1] [U_]
      bitmap: 0/22 pages [0KB], 65536KB chunk

unused devices: <none>

顶部也再次显示没有 CPU 使用情况。

所以我在网上搜索了一种手动强制同步的方法并找到了--update=resync,但尝试这个也没有取得胜利:

~# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
~# mdadm --assemble --verbose --force --run --update=resync /dev/md0 /dev/sdc1 /dev/sdb1
mdadm: looking for devices for /dev/md0
mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdb1 is identified as a member of /dev/md0, slot 1.
mdadm: Marking array /dev/md0 as 'clean'
mdadm: added /dev/sdb1 to /dev/md0 as 1
mdadm: added /dev/sdc1 to /dev/md0 as 0
mdadm: /dev/md0 has been started with 1 drive (out of 2) and 1 rebuilding.
root@server:~# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] 
md0 : active (auto-read-only) raid5 sdc1[0] sdb1[2]
      2900832256 blocks super 1.2 level 5, 512k chunk, algorithm 2 [2/1] [U_]
      bitmap: 0/22 pages [0KB], 65536KB chunk

unused devices: <none>

(仍然没有CPU使用)


经过两天的尝试自行修复后,我将非常感谢任何帮助或建议

答案1

由于 raid 阵列上没有任何内容,因此简单的选择是擦除所有内容并重新开始:

  • mdadm /dev/md127 --fail /dev/sdb1; mdadm /dev/md127 --fail /dev/sdc1; mdadm /dev/md127 --remove failed
  • wipefs -a /dev/sdb1; wipefs -a /dev/sdc1

顺便说一句,我建议创建一个降级的 RAID 5 阵列,然后向其中添加第三个磁盘。重建通常比重塑更快,但如果重建期间磁盘发生故障,数据丢失的可能性会增加(您确实有备份,不是吗?)

  • mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdc1 /dev/sdb1 missing
  • 创建新的文件系统
  • 复制数据
  • wipefs -a /dev/sdd1
  • mdadm /dev/md0 --add /dev/sdd1

相关内容