raid 1 – 单磁盘

raid 1 – 单磁盘

我联系您是因为我的 raid 1 搞砸了。一切都始于一个损坏的磁盘。我用一个新的磁盘替换了原来的磁盘。同步似乎成功了。但是,我收到大量错误,并且 raid 不再可用。至少我想在采取任何进一步措施之前挽救我的数据。

xxx@ubuntu ~ $ sudo fdisk -l /dev/sdc
Disk /dev/sdc: 1,8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x000b9056

Device     Boot Start        End    Sectors  Size Id Type
/dev/sdc1        2048 3907028991 3907026944  1,8T 83 Linux

该驱动器可用作 sdc1

xxx@ubuntu ~ $ sudo mdadm --examine /dev/sdc1
/dev/sdc1:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 8a359ebe:d9785fdb:e368bf24:bd0fce41 (local to host ubuntu)
  Creation Time : Sat Oct  8 13:55:02 2016
     Raid Level : raid1
  Used Dev Size : 1953513408 (1863.02 GiB 2000.40 GB)
     Array Size : 1953513408 (1863.02 GiB 2000.40 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0

    Update Time : Sat Dec 29 17:17:56 2018
          State : clean
Internal Bitmap : present
 Active Devices : 1
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 1
       Checksum : d5e354f3 - correct
         Events : 23978


      Number   Major   Minor   RaidDevice State
this     2       8       49        2      spare         /dev/sdd1

   0     0       0        0        0      removed
   1     1       8       33        1      active sync   /dev/sdc1
   2     2       8       49        2      spare         /dev/sdd1

快速检查 mdadm

sudo mdadm --assemble --scan --verbose
mdadm: looking for devices for /dev/md0
**mdadm: no RAID superblock on /dev/sdc**
mdadm: no RAID superblock on /dev/sdb1
mdadm: no RAID superblock on /dev/sdb
mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 2.
mdadm: no uptodate device for slot 0 of /dev/md0
mdadm: no uptodate device for slot 2 of /dev/md0
mdadm: added /dev/sdc1 to /dev/md0 as 2
mdadm: /dev/md0 assembled from 0 drives and 1 spare - not enough to start the array.

在下一步中,我尝试按照其他帖子中概述的方式安装剩余的磁盘。

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
NAME     SIZE FSTYPE            TYPE MOUNTPOINT
sda      2,7T                   disk
└─sda1   2,7T btrfs             part /x-O
sdb    931,5G                   disk
└─sdb1 931,5G ext3              part /x-b
sdc      1,8T                   disk
└─sdc1   1,8T linux_raid_member part
sdd      2,7T                   disk
└─sdd1   2,7T btrfs             part /x-raid_A
sde      2,7T                   disk
└─sde1   2,7T btrfs             part
sdf    465,8G                   disk
├─sdf1 463,9G ext4              part /
├─sdf2     1K                   part
└─sdf5   1,9G swap              part [SWAP]
sdg      2,7T btrfs             disk /x-raid_B
sdh      2,7T btrfs             disk

安装本身失败并显示错误消息

xxx@ubuntu ~ $ sudo mount /dev/sdc1 disk1
mount: unknown filesystem type 'linux_raid_member'

Q1:如果我走在正确的轨道上。如何克服这个问题?

基于有限的成功,我决定强制重新组装仅使用单个磁盘的 raid 1 设备。

xxx@ubuntu ~ $ sudo mdadm --assemble --force /dev/md0 /dev/sdc1

这并没有帮助我取得进一步的进步。

mdadm: failed to RUN_ARRAY /dev/md0: Input/output error
mdadm: Not enough devices to start the array.

从这里我开始感到迷茫。任何建议都将不胜感激。

提前感谢 SFx

答案1

显然,mdadm 认为您的 RAID 1 阵列是“干净的”,但事实并非如此。您应该明确告诉 mdadm 您的第二个 (sdd1) 磁盘出现故障,将其移除并以只读模式挂载 RAID 1 阵列(以确保您可以安全地进行复制/备份或重建 RAID 1 阵列)。

因此,如果您执行以下操作:

sudo mdadm -—manage /dev/md0 —-fail /dev/sdd1
sudo mdadm -—manage /dev/md0 —-remove /dev/sdd1
sudo mdadm —-assemble —-readonly /dev/md0 /dev/sdc1

这应该会给你一个干净的、降级的 RAID 1 阵列。

如果要更换磁盘,请按照相反的顺序操作:添加磁盘,重建阵列并挂载 md0,如下所示:

sudo mdadm —-manage /dev/md0 —-add /dev/sdd1
sudo mdadm --assemble --run --update=resync /dev/md0 /dev/sdc1 /dev/sdd1

相关内容