mdadm raid cretion:显然超级块未写入磁盘

mdadm raid cretion:显然超级块未写入磁盘

我和MDADM 突袭在重启后“丢失”

我跟着本指南设置带有两个磁盘的 raid-1 阵列(我在恢复 shell 中工作,因此没有“sudo”):

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
mkfs.ext4 -F /dev/md0
e2label /dev/md0 home
echo >>/etc/fstab 'LABEL=home /home ext4 defaults 0 2
mkdir -p /mnt/md0
mount /dev/md0 /mnt/md0
( cd /home && tar cf - * ) | ( cd /mnt/md0 && tar xvf - )

一切顺利,直到下次重启(我等待同步成功完成)。

重启后 /dev/md0 丢失,我重新发出初始命令:

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdc /dev/sdd

...并重新创建了磁盘,内容完整(我用“rsync”检查过),但又重新启动了同步。

我再次等待它终止(几个小时!)并再次重新启动。

Raid 设备再次丢失,而且显然超级块从未写入磁盘,因为我在第一个扇区的末尾发现了两个空的分区表(参见 aa55 签名)。

root@cinderella:~# mdadm --assemble /dev/md0 /dev/sdc /dev/sdd
mdadm: Cannot assemble mbr metadata on /dev/sdc
mdadm: /dev/sdc has no superblock - assembly aborted
root@cinderella:~# mdadm --misc --examine /dev/sd[cd]
/dev/sdc:
   MBR Magic : aa55
Partition[0] :   3907029167 sectors at            1 (type ee)
/dev/sdd:
   MBR Magic : aa55
Partition[0] :   3907029167 sectors at            1 (type ee)
root@cinderella:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
unused devices: <none>

我准备从头开始重做一切,但这需要花费很多时间(那些是 2T 磁盘,我需要复制的内容约为 1T),并且我想在再次旋转之前了解出了什么问题。

说实话,这看起来像是一个 mdadm 错误(严重的错误!),但是我当然也可能错了。

现在我重新创作并且......

root@cinderella:~# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
mdadm: partition table exists on /dev/sdc
mdadm: partition table exists on /dev/sdc 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/sdd
mdadm: partition table exists on /dev/sdd but will be lost or
       meaningless after creating array
mdadm: size set to 1953382464K
mdadm: automatically enabling write-intent bitmap on large array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
root@cinderella:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdd[1] sdc[0]
      1953382464 blocks super 1.2 [2/2] [UU]
      [>....................]  resync =  0.1% (2260544/1953382464) finish=230.1min speed=141284K/sec
      bitmap: 15/15 pages [60KB], 65536KB chunk

unused devices: <none>
root@cinderella:~# mount -v /dev/md0 /mnt/md0
mount: /dev/md0 mounted on /mnt/md0.
root@cinderella:~# ls -la /mnt/md0
total 36
drwxr-xr-x   6 root  root   4096 Feb 18 22:40 .
drwxr-xr-x   4 root  root   4096 Feb 18 22:34 ..
drwxr-xr-x   7 mauro mauro  4096 Feb 23  2018 etherpad
drwx------   2 root  root  16384 Feb 18 11:10 lost+found
drwxr-xr-x  16 mauro mauro  4096 Nov 10 11:42 mauro
drwxr-xr-x 127 mcon  mcon   4096 Feb 19 15:09 mcon
root@cinderella:~# 

任何想法?

答案1

对于任何处于我这种情况的人:

我不知道这是不是一个错误,但它似乎mdadm 对 MBR 中的分区表非常敏感。

经过多次尝试我终于解决了我的问题,方法如下:

  • 重启
  • 打开 MBR每个驱动器在阵列中:
    • dd if=/dev/zero of=/dev/sdc bs=512 count=1
    • dd if=/dev/zero of=/dev/sdd bs=512 count=1
  • 重新创建阵列(这将触发重新同步):
    • mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
  • 检查内容没有丢失
    • 挂载 /dev/md0 /mnt
    • 检查内容
    • 卸载 /mnt
    • 等待重新同步终止(否则 fsck 将非常慢的)
    • fsck -pfC /dev/md0
  • 持久化数组
    • mdadm --examine --scan >> /etc/mdadm/mdadm.conf
    • 如果存在,则删除旧的持久线。
    • 更新-initramfs -u
  • 再次重新启动(以确保一切正常)。
  • 享受!

答案2

我知道这是一个僵尸线程,但我完全被一个无法在重启后持续存在的 raid 阵列困住了,这解决了这个问题。磁盘是从另一台服务器回收的。

相关内容