交换磁盘前的状态

交换磁盘前的状态

我正在运行 Ubuntu 16.04 服务器。该系统上的数据存储使用软件 raid 6 上的 lvm,而操作系统安装在带有 lvm 的单独 raid 1 上。raid 6 由 7 个磁盘上的 7 个分区组成。在其中一个磁盘上出现大量智能错误后,我决定在阵列降级之前将此磁盘换成新磁盘。

在更换磁盘之前,我做了sudo mdadm /dev/md2 --fail /dev/sdd4,然后是。下次启动后,一切似乎都正常,所以我开始对新磁盘进行分区。我做了以调整其他磁盘的分区。sudo mdadm /dev/md2 --remove /dev/sdd4sudo parted --list

这时出现了一个奇怪的问题,parted 无法访问一个旧磁盘。我注意到另一个驱动器从阵列中消失了,几秒钟后又有一个驱动器消失了。阵列出现故障。我非常震惊,关闭了系统以防止进一步出现错误。

稍后我尝试重新启动系统并出现了如下奇怪的故障:

ata2: irq_stat 0x00000040, connection status changed
ata2: SError: { CommWake DevExch }

此时我只有一个应急控制台,因此我启动了实时 Linux 以进一步检查问题。我读到我可以安全地执行mdadm --assemble --scan以尝试修复阵列,但它仍处于奇怪的状态,因此我仅从mdadm.conf和中删除了该阵列fstab

该 raid 现在显示为具有 7 个备用驱动器的 raid0,但在剩余的 RAID1 中的最后几个小时里,驱动器似乎运行正常。

我不知道现在该做什么,我预计会丢失所有数据,但我也希望有机会挽救至少一部分数据。我有备份,但只有一部分,因为它是一个 19TB 阵列。

交换磁盘前的状态

chris@uranus:~$ sudo mdadm --detail /dev/md2
/dev/md2:
        Version : 1.2
  Creation Time : Thu Aug  6 00:45:41 2015
     Raid Level : raid6
     Array Size : 18723832320 (17856.44 GiB 19173.20 GB)
  Used Dev Size : 3744766464 (3571.29 GiB 3834.64 GB)
   Raid Devices : 7
  Total Devices : 7
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Fri Jul 13 17:39:04 2018
          State : clean
 Active Devices : 7
Working Devices : 7
 Failed Devices : 0
  Spare Devices : 0

     Layout : left-symmetric
 Chunk Size : 512K

       Name : uranus:2  (local to host uranus)
       UUID : 607914eb:666e2a46:b2e43557:02cc2983
     Events : 2738806

Number   Major   Minor   RaidDevice State
   0       8       20        0      active sync   /dev/sdb4
   1       8       36        1      active sync   /dev/sdc4
   2       8       52        2      active sync   /dev/sdd4
   6       8        1        3      active sync   /dev/sda1
   5       8       68        4      active sync   /dev/sde4
   8       8       97        5      active sync   /dev/sdg1
   7       8       81        6      active sync   /dev/sdf1

实际状态

chris@uranus:/$ sudo mdadm --detail /dev/md2
/dev/md2:
      Version : 1.2
   Raid Level : raid0
Total Devices : 6
  Persistence : Superblock is persistent

        State : inactive

         Name : uranus:2  (local to host uranus)
         UUID : 607914eb:666e2a46:b2e43557:02cc2983
       Events : 2739360

Number   Major   Minor   RaidDevice

   -       8        1        -        /dev/sda1
   -       8       20        -        /dev/sdb4
   -       8       36        -        /dev/sdc4
   -       8       68        -        /dev/sde4
   -       8       81        -        /dev/sdf1
   -       8       97        -        /dev/sdg1

澄清事实

6 个驱动器没有故障,第 7 个驱动器有错误,但我将其换成了新的。更换这个故障驱动器后,所有驱动器的智能数据都正常。没有错误、没有坏块、没有待处理、无法纠正或重新分配的扇区。

我最后--detail只显示 6 个驱动器,因为我没有将新驱动器添加到现有阵列。

操作系统所依赖的 raid 1 基本上是 7 个磁盘中的 3 个 + 1 个备用磁盘,但这些磁盘有自己的分区。当我删除 /dev/sdd 时,备用驱动器取代了它的位置,因此它现在由 3 个分区组成,没有备用分区。其中 3 个磁盘上还有启动分区,其中 2 个磁盘上的 raid 1 中有交换分区。

问题是,mdadm 现在将此阵列显示为具有 7 个备用驱动器的 raid 0 cat /proc/mdstat,我必须将其恢复到原始 raid6 配置,其中 7 个驱动器中有 6 个处于降级状态。配置似乎有问题,但我没有对此进行任何更改。之后,并且只有在我可以恢复阵列的情况下,我才会将切换的第 7 个分区添加回阵列以获取我原来的第 7 个驱动器 raid6。

如果我正确阅读了手册页,则会mdadm --assemble --scan根据配置恢复阵列信息,/proc/mdstat但这些似乎已经是错误的。

更多输出

cat /proc/mdstat- 现在

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md2 : inactive sdg1[8](S) sdf1[7](S) sdb4[0](S) sda1[6](S) sde4[5](S) sdc4[1](S)
      22468633600 blocks super 1.2

md129 : active raid1 sdb3[0] sde3[4] sdc3[1]
      146353024 blocks super 1.2 [3/3] [UUU]

md128 : active raid1 sdb2[0] sde2[4](S) sdc2[1]
      15616896 blocks super 1.2 [2/2] [UU]

unused devices: <none>

cat /etc/mdadm/mdadm.conf- 现在

#DEVICE partitions containers

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays

ARRAY /dev/md128 metadata=1.2 UUID=6813258b:250929d6:8a1e9d34:422a9fbd name=uranus:128
   spares=1
ARRAY /dev/md129 metadata=1.2 UUID=ab06d13f:a70de5a6:c83a9383:b1beb84c name=uranus:129
ARRAY /dev/md2 metadata=1.2 UUID=607914eb:666e2a46:b2e43557:02cc2983 name=uranus:2

# This file was auto-generated on Mon, 10 Aug 2015 18:09:47 +0200
# by mkconf $Id$
#ARRAY /dev/md/128 metadata=1.2 UUID=6813258b:250929d6:8a1e9d34:422a9fbd name=uranus:128
#   spares=2
#ARRAY /dev/md/129 metadata=1.2 UUID=ab06d13f:a70de5a6:c83a9383:b1beb84c name=uranus:129
#   spares=1
#ARRAY /dev/md/2 metadata=1.2 UUID=607914eb:666e2a46:b2e43557:02cc2983 name=uranus:2

cat /etc/fstab- 现在

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/vgSystem-vRoot /               ext4    errors=remount-ro 0       1
# swap was on /dev/md128 during installation
UUID=5a5b997d-9e94-4391-955f-a2b9a3f63820 none            swap    sw              0       0
#/dev/vgData/vData      /srv    ext4    defaults        0       0
#10.10.0.15:/srv/BackupsUranusAutomatic/data    /mnt/mars/uranus/automatic/data nfs     clientaddr=10.10.0.10,vers=4,noatime,addr=10.10.0.15,noauto     0       0
#10.10.0.15:/srv/BackupsUranusAutomatic/media   /mnt/mars/uranus/automatic/media        nfs     clientaddr=10.10.0.10,vers=4,noatime,addr=10.10.0.15,noauto     0       0
#/srv/shares/Videos/Ungesichert/Videorecorder   /srv/vdr/video  bind    bind    0       0
#/dev/sdh1      /mnt/usbdisk    ntfs    noatime,noauto  0       0

磁盘和分区 - 问题发生之前

Medium /dev/sda: 3,7 TiB, 4000787030016 Bytes, 7814037168 Sektoren
Einheiten: sectors von 1 * 512 = 512 Bytes
Sektorengröße (logisch/physisch): 512 Bytes / 4096 Bytes
I/O Größe (minimal/optimal): 4096 Bytes / 4096 Bytes
Typ der Medienbezeichnung: gpt
Medienkennung: 98C35BD3-BFBC-4A4B-AEC9-6D4AFB775AF4

Gerät           Start       Ende   Sektoren Größe Typ
/dev/sda1        2048 7489808383 7489806336   3,5T Linux RAID
/dev/sda2  7489808384 7791525887  301717504 143,9G Linux RAID


Medium /dev/sdb: 3,7 TiB, 4000787030016 Bytes, 7814037168 Sektoren
Einheiten: sectors von 1 * 512 = 512 Bytes
Sektorengröße (logisch/physisch): 512 Bytes / 4096 Bytes
I/O Größe (minimal/optimal): 4096 Bytes / 4096 Bytes
Typ der Medienbezeichnung: gpt
Medienkennung: 49102EF7-9FA2-4990-8C30-6C5B463B917E

Gerät          Start       Ende   Sektoren Größe Typ
/dev/sdb1       2048      20479      18432     9M BIOS boot
/dev/sdb2      20480   31270911   31250432  14,9G Linux RAID
/dev/sdb3   31270912  324239359  292968448 139,7G Linux RAID
/dev/sdb4  324239360 7814035455 7489796096   3,5T Linux RAID



Medium /dev/sdc: 3,7 TiB, 4000787030016 Bytes, 7814037168 Sektoren
Einheiten: sectors von 1 * 512 = 512 Bytes
Sektorengröße (logisch/physisch): 512 Bytes / 4096 Bytes
I/O Größe (minimal/optimal): 4096 Bytes / 4096 Bytes
Typ der Medienbezeichnung: gpt
Medienkennung: 6A037D00-F252-4CA0-8D68-430734BCA765

Gerät          Start       Ende   Sektoren Größe Typ
/dev/sdc1       2048      20479      18432     9M BIOS boot
/dev/sdc2      20480   31270911   31250432  14,9G Linux RAID
/dev/sdc3   31270912  324239359  292968448 139,7G Linux RAID
/dev/sdc4  324239360 7814035455 7489796096   3,5T Linux RAID


Medium /dev/sdd: 3,7 TiB, 4000787030016 Bytes, 7814037168 Sektoren
Einheiten: sectors von 1 * 512 = 512 Bytes
Sektorengröße (logisch/physisch): 512 Bytes / 4096 Bytes
I/O Größe (minimal/optimal): 4096 Bytes / 4096 Bytes
Typ der Medienbezeichnung: gpt
Medienkennung: EADC29D6-C2E9-4AC8-B1B2-F01A5233467C

Gerät          Start       Ende   Sektoren Größe Typ
/dev/sdd1       2048      20479      18432     9M BIOS boot
/dev/sdd2      20480   31270911   31250432  14,9G Linux RAID
/dev/sdd3   31270912  324239359  292968448 139,7G Linux RAID
/dev/sdd4  324239360 7814035455 7489796096   3,5T Linux RAID


Medium /dev/sde: 3,7 TiB, 4000787030016 Bytes, 7814037168 Sektoren
Einheiten: sectors von 1 * 512 = 512 Bytes
Sektorengröße (logisch/physisch): 512 Bytes / 4096 Bytes
I/O Größe (minimal/optimal): 4096 Bytes / 4096 Bytes
Typ der Medienbezeichnung: gpt
Medienkennung: 3D7EBBFD-C00D-4503-8BF1-A71534F643E1

Gerät          Start       Ende   Sektoren Größe Typ
/dev/sde1       2048      20479      18432     9M Linux filesystem
/dev/sde2      20480   31270911   31250432  14,9G Linux filesystem
/dev/sde3   31270912  324239359  292968448 139,7G Linux filesystem
/dev/sde4  324239360 7814035455 7489796096   3,5T Linux filesystem


Medium /dev/sdf: 3,7 TiB, 4000787030016 Bytes, 7814037168 Sektoren
Einheiten: sectors von 1 * 512 = 512 Bytes
Sektorengröße (logisch/physisch): 512 Bytes / 4096 Bytes
I/O Größe (minimal/optimal): 4096 Bytes / 4096 Bytes
Typ der Medienbezeichnung: gpt
Medienkennung: FCA42FC2-C5E9-45B6-9C18-F103C552993D

Gerät           Start       Ende   Sektoren Größe Typ
/dev/sdf1        2048 7489824767 7489822720   3,5T Linux RAID
/dev/sdf2  7489824768 7791525887  301701120 143,9G Linux RAID


Medium /dev/sdg: 3,7 TiB, 4000787030016 Bytes, 7814037168 Sektoren
Einheiten: sectors von 1 * 512 = 512 Bytes
Sektorengröße (logisch/physisch): 512 Bytes / 4096 Bytes
I/O Größe (minimal/optimal): 4096 Bytes / 4096 Bytes
Typ der Medienbezeichnung: gpt
Medienkennung: 8FF8C4CC-6788-47D7-8264-8FA6EF912555

Gerät           Start       Ende   Sektoren Größe Typ
/dev/sdg1        2048 7489824767 7489822720   3,5T Linux RAID
/dev/sdg2  7489824768 7791525887  301701120 143,9G Linux RAID


Medium /dev/md2: 17,4 TiB, 19173204295680 Bytes, 37447664640 Sektoren
Einheiten: sectors von 1 * 512 = 512 Bytes
Sektorengröße (logisch/physisch): 512 Bytes / 4096 Bytes
I/O Größe (minimal/optimal): 524288 Bytes / 2621440 Bytes


Medium /dev/md128: 14,9 GiB, 15991701504 Bytes, 31233792 Sektoren
Einheiten: sectors von 1 * 512 = 512 Bytes
Sektorengröße (logisch/physisch): 512 Bytes / 4096 Bytes
I/O Größe (minimal/optimal): 4096 Bytes / 4096 Bytes


Medium /dev/md129: 139,6 GiB, 149865496576 Bytes, 292706048 Sektoren
Einheiten: sectors von 1 * 512 = 512 Bytes
Sektorengröße (logisch/physisch): 512 Bytes / 4096 Bytes
I/O Größe (minimal/optimal): 4096 Bytes / 4096 Bytes


Medium /dev/mapper/vgSystem-vRoot: 74,5 GiB, 79997960192 Bytes, 156246016 Sektoren
Einheiten: sectors von 1 * 512 = 512 Bytes
Sektorengröße (logisch/physisch): 512 Bytes / 4096 Bytes
I/O Größe (minimal/optimal): 4096 Bytes / 4096 Bytes


Medium /dev/mapper/vgData-vData: 17,4 TiB, 19173199577088 Bytes, 37447655424 Sektoren
Einheiten: sectors von 1 * 512 = 512 Bytes
Sektorengröße (logisch/physisch): 512 Bytes / 4096 Bytes
I/O Größe (minimal/optimal): 524288 Bytes / 2621440 Bytes


Medium /dev/mapper/vgSystem-testBtrfs: 5 GiB, 5368709120 Bytes, 10485760 Sektoren
Einheiten: sectors von 1 * 512 = 512 Bytes
Sektorengröße (logisch/physisch): 512 Bytes / 4096 Bytes
I/O Größe (minimal/optimal): 4096 Bytes / 4096 Bytes

磁盘、分区、 RAID 设备和卷 - 问题发生之前

NAME                     UUID                                   FSTYPE            MOUNTPOINT LABEL        SIZE
sda                                                                                                       3,7T
├─sda1                   607914eb-666e-2a46-b2e4-355702cc2983   linux_raid_member            uranus:2     3,5T
│ └─md2                  OTNyDe-fNAP-aLzy-Uwat-yYVH-E11D-d1LyzH LVM2_member                              17,4T
│   └─vgData-vData       a9b3d18d-e45f-4d0f-ab3d-9fe8bfa42157   ext4              /srv       data        17,4T
└─sda2                                                                                                  143,9G
sdb                                                                                                       3,7T
├─sdb1                                                                                                      9M
├─sdb2                   6813258b-2509-29d6-8a1e-9d34422a9fbd   linux_raid_member            uranus:128  14,9G
│ └─md128                5a5b997d-9e94-4391-955f-a2b9a3f63820   swap              [SWAP]                 14,9G
├─sdb3                   ab06d13f-a70d-e5a6-c83a-9383b1beb84c   linux_raid_member            uranus:129 139,7G
│ └─md129                7QXSVM-dauj-RUQ1-uoQp-IamT-TTZo-slzArT LVM2_member                             139,6G
│   ├─vgSystem-vRoot     fb4bfbb3-de6c-47ef-b237-27af04fa2f4c   ext4              /          root        74,5G
│   └─vgSystem-testBtrfs 27bbab4c-3c9f-4743-83ac-61e8b41f2bd3   btrfs                                       5G
└─sdb4                   607914eb-666e-2a46-b2e4-355702cc2983   linux_raid_member            uranus:2     3,5T
  └─md2                  OTNyDe-fNAP-aLzy-Uwat-yYVH-E11D-d1LyzH LVM2_member                              17,4T
    └─vgData-vData       a9b3d18d-e45f-4d0f-ab3d-9fe8bfa42157   ext4              /srv       data        17,4T
sdc                                                                                                       3,7T
├─sdc1                                                                                                      9M
├─sdc2                   6813258b-2509-29d6-8a1e-9d34422a9fbd   linux_raid_member            uranus:128  14,9G
│ └─md128                5a5b997d-9e94-4391-955f-a2b9a3f63820   swap              [SWAP]                 14,9G
├─sdc3                   ab06d13f-a70d-e5a6-c83a-9383b1beb84c   linux_raid_member            uranus:129 139,7G
│ └─md129                7QXSVM-dauj-RUQ1-uoQp-IamT-TTZo-slzArT LVM2_member                             139,6G
│   ├─vgSystem-vRoot     fb4bfbb3-de6c-47ef-b237-27af04fa2f4c   ext4              /          root        74,5G
│   └─vgSystem-testBtrfs 27bbab4c-3c9f-4743-83ac-61e8b41f2bd3   btrfs                                       5G
└─sdc4                   607914eb-666e-2a46-b2e4-355702cc2983   linux_raid_member            uranus:2     3,5T
  └─md2                  OTNyDe-fNAP-aLzy-Uwat-yYVH-E11D-d1LyzH LVM2_member                              17,4T
    └─vgData-vData       a9b3d18d-e45f-4d0f-ab3d-9fe8bfa42157   ext4              /srv       data        17,4T
sdd                                                                                                       3,7T
├─sdd1                                                                                                      9M
├─sdd2                   6813258b-2509-29d6-8a1e-9d34422a9fbd   linux_raid_member            uranus:128  14,9G
│ └─md128                5a5b997d-9e94-4391-955f-a2b9a3f63820   swap              [SWAP]                 14,9G
├─sdd3                   ab06d13f-a70d-e5a6-c83a-9383b1beb84c   linux_raid_member            uranus:129 139,7G
│ └─md129                7QXSVM-dauj-RUQ1-uoQp-IamT-TTZo-slzArT LVM2_member                             139,6G
│   ├─vgSystem-vRoot     fb4bfbb3-de6c-47ef-b237-27af04fa2f4c   ext4              /          root        74,5G
│   └─vgSystem-testBtrfs 27bbab4c-3c9f-4743-83ac-61e8b41f2bd3   btrfs                                       5G
└─sdd4                   607914eb-666e-2a46-b2e4-355702cc2983   linux_raid_member            uranus:2     3,5T
  └─md2                  OTNyDe-fNAP-aLzy-Uwat-yYVH-E11D-d1LyzH LVM2_member                              17,4T
    └─vgData-vData       a9b3d18d-e45f-4d0f-ab3d-9fe8bfa42157   ext4              /srv       data        17,4T
sde                                                                                                       3,7T
├─sde1                                                                                                      9M
├─sde2                   6813258b-2509-29d6-8a1e-9d34422a9fbd   linux_raid_member            uranus:128  14,9G
│ └─md128                5a5b997d-9e94-4391-955f-a2b9a3f63820   swap              [SWAP]                 14,9G
├─sde3                   ab06d13f-a70d-e5a6-c83a-9383b1beb84c   linux_raid_member            uranus:129 139,7G
│ └─md129                7QXSVM-dauj-RUQ1-uoQp-IamT-TTZo-slzArT LVM2_member                             139,6G
│   ├─vgSystem-vRoot     fb4bfbb3-de6c-47ef-b237-27af04fa2f4c   ext4              /          root        74,5G
│   └─vgSystem-testBtrfs 27bbab4c-3c9f-4743-83ac-61e8b41f2bd3   btrfs                                       5G
└─sde4                   607914eb-666e-2a46-b2e4-355702cc2983   linux_raid_member            uranus:2     3,5T
  └─md2                  OTNyDe-fNAP-aLzy-Uwat-yYVH-E11D-d1LyzH LVM2_member                              17,4T
    └─vgData-vData       a9b3d18d-e45f-4d0f-ab3d-9fe8bfa42157   ext4              /srv       data        17,4T
sdf                                                                                                       3,7T
├─sdf1                   607914eb-666e-2a46-b2e4-355702cc2983   linux_raid_member            uranus:2     3,5T
│ └─md2                  OTNyDe-fNAP-aLzy-Uwat-yYVH-E11D-d1LyzH LVM2_member                              17,4T
│   └─vgData-vData       a9b3d18d-e45f-4d0f-ab3d-9fe8bfa42157   ext4              /srv       data        17,4T
└─sdf2                                                                                                  143,9G
sdg                                                                                                       3,7T
├─sdg1                   607914eb-666e-2a46-b2e4-355702cc2983   linux_raid_member            uranus:2     3,5T
│ └─md2                  OTNyDe-fNAP-aLzy-Uwat-yYVH-E11D-d1LyzH LVM2_member                              17,4T
│   └─vgData-vData       a9b3d18d-e45f-4d0f-ab3d-9fe8bfa42157   ext4              /srv       data        17,4T
└─sdg2 

阵列设备超级块

mdadm --examine /dev/sd<array-member-harddrives>- 现在

只有 6 个驱动器,因为第 7 个“新”驱动器尚未添加到阵列中。

chris@uranus:/$ sudo mdadm --examine /dev/sda1
[sudo] Passwort für chris:
/dev/sda1:   
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 607914eb:666e2a46:b2e43557:02cc2983
           Name : uranus:2  (local to host uranus)
  Creation Time : Thu Aug  6 00:45:41 2015
     Raid Level : raid6
   Raid Devices : 7

 Avail Dev Size : 7489544192 (3571.29 GiB 3834.65 GB)
     Array Size : 18723832320 (17856.44 GiB 19173.20 GB)
  Used Dev Size : 7489532928 (3571.29 GiB 3834.64 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=11264 sectors
          State : active
    Device UUID : 49c6404e:ee9509ba:c980942a:1db9cf3c

Internal Bitmap : 8 sectors from superblock
    Update Time : Fri Jul 13 22:34:48 2018
       Checksum : aae603a7 - correct
         Events : 2739360

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 3
   Array State : AA.AAAA ('A' == active, '.' == missing, 'R' == replacing)

chris@uranus:/$ sudo mdadm --examine /dev/sdb4
/dev/sdb4:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 607914eb:666e2a46:b2e43557:02cc2983
           Name : uranus:2  (local to host uranus)
  Creation Time : Thu Aug  6 00:45:41 2015
     Raid Level : raid6
   Raid Devices : 7

 Avail Dev Size : 7489533952 (3571.29 GiB 3834.64 GB)
     Array Size : 18723832320 (17856.44 GiB 19173.20 GB)
  Used Dev Size : 7489532928 (3571.29 GiB 3834.64 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=1024 sectors
          State : clean
    Device UUID : 61d97294:3ce7cd84:7bb4d5f1:d301c842

Internal Bitmap : 8 sectors from superblock
    Update Time : Fri Jul 13 22:42:15 2018
       Checksum : 890fbe3d - correct
         Events : 2739385

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 0
   Array State : AA..A.. ('A' == active, '.' == missing, 'R' == replacing)

chris@uranus:/$ sudo mdadm --examine /dev/sdc4
/dev/sdc4:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 607914eb:666e2a46:b2e43557:02cc2983
           Name : uranus:2  (local to host uranus)
  Creation Time : Thu Aug  6 00:45:41 2015
     Raid Level : raid6
   Raid Devices : 7

 Avail Dev Size : 7489533952 (3571.29 GiB 3834.64 GB)
     Array Size : 18723832320 (17856.44 GiB 19173.20 GB)
  Used Dev Size : 7489532928 (3571.29 GiB 3834.64 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=1024 sectors
          State : clean
    Device UUID : ee70c4ab:5b65dae7:df3a78f0:e8bdcead

Internal Bitmap : 8 sectors from superblock
    Update Time : Fri Jul 13 22:42:15 2018
       Checksum : 6d171664 - correct
         Events : 2739385

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 1
   Array State : AA..A.. ('A' == active, '.' == missing, 'R' == replacing)

chris@uranus:/$ sudo mdadm --examine /dev/sde4
/dev/sde4:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 607914eb:666e2a46:b2e43557:02cc2983
           Name : uranus:2  (local to host uranus)
  Creation Time : Thu Aug  6 00:45:41 2015
     Raid Level : raid6
   Raid Devices : 7

 Avail Dev Size : 7489533952 (3571.29 GiB 3834.64 GB)
     Array Size : 18723832320 (17856.44 GiB 19173.20 GB)
  Used Dev Size : 7489532928 (3571.29 GiB 3834.64 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=1024 sectors
          State : clean
    Device UUID : 6ce5311f:084ded8e:ba3d4e06:43e38c67

Internal Bitmap : 8 sectors from superblock
    Update Time : Fri Jul 13 22:42:15 2018
       Checksum : 572b9ac7 - correct
         Events : 2739385

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 4
   Array State : AA..A.. ('A' == active, '.' == missing, 'R' == replacing)

chris@uranus:/$ sudo mdadm --examine /dev/sdf1
/dev/sdf1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 607914eb:666e2a46:b2e43557:02cc2983
           Name : uranus:2  (local to host uranus)
  Creation Time : Thu Aug  6 00:45:41 2015
     Raid Level : raid6
   Raid Devices : 7

 Avail Dev Size : 7489560576 (3571.30 GiB 3834.66 GB)
     Array Size : 18723832320 (17856.44 GiB 19173.20 GB)
  Used Dev Size : 7489532928 (3571.29 GiB 3834.64 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=27648 sectors
          State : clean
    Device UUID : 7c4fbe19:d63eced4:1b40cf79:e759fe4b

Internal Bitmap : 8 sectors from superblock
    Update Time : Fri Jul 13 22:36:17 2018
       Checksum : ef93d641 - correct
         Events : 2739381

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 6
   Array State : AA..A.A ('A' == active, '.' == missing, 'R' == replacing)

chris@uranus:/$ sudo mdadm --examine /dev/sdg1
/dev/sdg1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 607914eb:666e2a46:b2e43557:02cc2983
           Name : uranus:2  (local to host uranus)
  Creation Time : Thu Aug  6 00:45:41 2015
     Raid Level : raid6
   Raid Devices : 7

 Avail Dev Size : 7489560576 (3571.30 GiB 3834.66 GB)
     Array Size : 18723832320 (17856.44 GiB 19173.20 GB)
  Used Dev Size : 7489532928 (3571.29 GiB 3834.64 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=27648 sectors
          State : clean
    Device UUID : 36d9dffc:27699128:e84f87e7:38960357

Internal Bitmap : 8 sectors from superblock
    Update Time : Fri Jul 13 22:35:47 2018
       Checksum : 9f34d651 - correct
         Events : 2739377

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 5
   Array State : AA..AAA ('A' == active, '.' == missing, 'R' == replacing)

答案1

发生以下情况时,您有一个驱动器 (您正在更换的那个驱动器) 发生故障:

这时出现了一个奇怪的问题,parted 无法访问一个旧磁盘。我注意到另一个驱动器从阵列中消失了,几秒钟后又有一个驱动器消失了。阵列出现故障。我非常震惊,关闭了系统以防止进一步出现错误。

如果故障是致命的,则需要 3 次驱动器。

您说操作系统在 RAID 1 上,我假设那是 2 个磁盘,而其他 7 个磁盘在 RAID 6 上。

RAID 6 可以承受阵列中两个磁盘的丢失。如果 RAID 6 阵列中发生 3 次故障(假设所有故障磁盘均不属于 RAID 1),并且磁盘状态不佳,则数据很可能丢失。

您可以使用以下命令验证每个磁盘的状态:

sudo smartctl -a /dev/sdX

然后你就可以发现这 3 个磁盘是否都出来了或者是否只是侥幸。如果这只是一个意外,而且你确定一切都好,你的 mdadm.conf 和 fstab 是正确的,因为你的数组似乎是不活跃,那么你可以尝试使用(强制重新组装警告:危险,请阅读以下免责声明):

sudo mdadm --stop /dev/md2
sudo mdadm --assemble --scan --force

注意:最后的--detail输出显示 6 个磁盘,而不是 7 个/dev/sdd。似乎丢失了。

您可以粘贴您的配置文件文件系统以及 LVM VG、LV 和分区以帮助理解配置。

免责声明:尝试使用损坏的 RAID 进行操作非常危险,我根据您提供的可用信息推荐一些步骤,但我无法保证它会起作用或不会破坏您的数据。请自行承担责任和风险。

答案2

mdadm 用于superblocks确定如何组装磁盘等。在这种情况下,查看物理驱动器的实际超级块数据总是非常有帮助和有用的正在做任何行动对磁盘进行某些操作(例如mdadm --assemble --scan --force,它将更新 mdadm 超级块)。

用于mdadm --examine /dev/sd<your-array-member-harddrives>查看超级块包含的内容。它应该可以让您了解发生故障时的情况、写入时磁盘之间的偏移量等等。

在清楚了解了根据物理驱动器的当前状态,您可以制定策略来修复问题。

但首先,我还认为主板/sata 控制器/scsi 控制器/... 存在物理缺陷。如此多的磁盘在很短的时间内发生故障是不寻常的(除非有人想出了一个好主意,使用来自同一制造商的所有磁盘和生产批次来构建 raid 系统),这可能表明存在控制器问题。在最终发生故障的硬盘控制器上重建/重新同步损坏的 raid 只会导致灾难。

答案3

我仅提供一些关于如何/分析什么以了解当前状态的想法:

第一部分不是很有趣,并且对于所有数组成员来说都应该相同。

          Magic : a92b4efc               
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 607914eb:666e2a46:b2e43557:02cc2983
           Name : uranus:2  (local to host uranus)
  Creation Time : Thu Aug  6 00:45:41 2015
     Raid Level : raid6
   Raid Devices : 7

 Avail Dev Size : 7489544192 (3571.29 GiB 3834.65 GB)
     Array Size : 18723832320 (17856.44 GiB 19173.20 GB)
  Used Dev Size : 7489532928 (3571.29 GiB 3834.64 GB)

仍然不是很有趣,如果磁盘大小不相等,偏移量可能会有所不同。UUID 是硬盘 UUID,并且对于每个驱动器都是唯一的。

    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=11264 sectors
          State : active
    Device UUID : 49c6404e:ee9509ba:c980942a:1db9cf3c

Internal Bitmap : 8 sectors from superblock

这里开始变得有趣了,评论开头是#

    Update Time : Fri Jul 13 22:34:48 2018   # last write activity on the drive
       Checksum : aae603a7 - correct   # should be equal on all disks, when the state is clean
         Events : 2739360   # Events on the disk, in bock/chunk units

         Layout : left-symmetric   # could be relevant for rebuilding the array, left-symmetric is default for x86
     Chunk Size : 512K

下一节对于重建数组很有趣,特别是在形成命令时,这一点Device Role很重要。

   Device Role : Active device 3
   Array State : AA.AAAA ('A' == active, '.' == missing, 'R' == replacing)

数组状态仅提供信息,但不会有太大帮助。

首先我们想了解一下How far have disks run apart during the failure?

50如果我没记错的话,在尝试时,mdadm 代码中有一个事件阈值assemble --force。这意味着,如果事件有差异,>50 assemble --force将不再起作用。尽管<50事件有差异也不能保证强制组装会起作用。在这种情况下,唯一的可能性是使用与现有参数完全相同的参数重新创建数组,并指示 mdadm --create --assume-clean。当一个人处于所有超级块都可用并且可以读取的“幸运”情况下时,这应该相当“容易”但要小心。

事件计数看起来像是第一个磁盘首先出局,然后是最后一个,然后是倒数第二个。不同之处在于<50,它最终可能会变得相当容易。

     Events : 2739360
     Events : 2739385
     Events : 2739385
     Events : 2739385
     Events : 2739381
     Events : 2739377

Array State只有关注Events计数 &才有可能正确地解释Drive Role

Device Role : Active device 3
Device Role : Active device 0
Device Role : Active device 1
Device Role : Active device 4
Device Role : Active device 6
Device Role : Active device 5

Array State : AA.AAAA ('A' == active, '.' == missing, 'R' == replacing)
Array State : AA..A.. ('A' == active, '.' == missing, 'R' == replacing)
Array State : AA..A.. ('A' == active, '.' == missing, 'R' == replacing)
Array State : AA..A.. ('A' == active, '.' == missing, 'R' == replacing)
Array State : AA..A.A ('A' == active, '.' == missing, 'R' == replacing)
Array State : AA..AAA ('A' == active, '.' == missing, 'R' == replacing)

mdadm从 开始计数0。驱动器2首先发生故障,然后是驱动器3,然后是驱动器,5最后是驱动器6。请注意,驱动器5仍将驱动器列为6活动驱动器,驱动器也将和3列为活动驱动器。因此,当另一个驱动器发生故障时,很可能驱动器尚未更新超级块。356

在看到之后Array States,我确实认为自动操作assemble --force不会很好地发挥作用,因为 上的 5 个设备之间没有一致性Array State。阵列有raid67 个磁盘,因此在这种情况下,我们需要有 5 个磁盘在 上一致,Array State并且事件差异小于 50,但事实并非如此。

请记住,mdadm/ 的raid构建目的是不丢失数据。因此,代码中存在一些机制,可以防止mdadm可能损害数据的操作。即使使用 --force,自动重组也只会触发很可能成功的操作。如果超级块中没有足够/一致的信息供 mdadm 做出保存决定,它将失败。如果您真的知道自己在做什么,您可以简单地重写超级块以及create --assume-clean将 raid 重新投入运行所需的所有信息。但这将是一项手动任务,您作为管理员/用户必须指示软件具体要做什么。

我不会在这里提供复制和粘贴命令,因为我认为在这种情况下,在执行“repair-my-raid”命令之前,了解自己要做什么是至关重要的。为了加深知识,阅读 Linux RAID Wiki 上与 RAID Recovery 相关的整个文章是必不可少的,这是我对此答案的结论。

https://raid.wiki.kernel.org/index.php/Linux_Raid#When_Things_Go_Wrogn https://raid.wiki.kernel.org/index.php/RAID_Recovery https://raid.wiki.kernel.org/index.php/Recovering_a_failed_software_RAID

答案4

1. Would you suggest first trying --assemble --force, maybe with an overlay file?

在我看来,这绝对是第一个值得尝试的选项。是否使用覆盖文件取决于您的数据和风险承受能力。到目前为止,我在这种情况下都有备份,因此没有使用覆盖选项。如果您想稳妥行事,请使用它。在这方面我想强调几点:

  • 不要考虑使用 mdadm< 4.0版本。制作反向移植版或编译版本>= 4.0。 中存在一些错误3.x,导致assemble --force与 配合良好的操作失败4.0

  • 当尝试assemble --force使用时--verbose,它将为您提供一组很好的信息,这些信息有助于采取进一步的步骤并了解发生了什么或失败了什么。


2. If i use a --create --assume-clean, is it a better choice to create the last functioning setup with 6 disks or maybe a setup with only 5 drives that have the highest event count? The Is this even possible? My goal is restoring some important data from the array and no permanent solution.

在您的情况下,事件偏移量如此之小,我认为用 6/7 个磁盘重新创建阵列没有任何问题。如果您怀疑 HBA(sata/ide/scsi 控制器)可能有问题,最终应该考虑忽略可疑端口。但这取决于硬件和接线。是的,这是可能的,但取决于 raid 类型。使用 raid6,您可以尝试仅使用 5/7 个磁盘进行重建,从技术上讲,这样做应该没有任何限制。重要的是,如果您使用 5/7 重新创建它,驱动器肯定不会再发生故障。

3. I have details about the array before the crash occured. According to this i would come up with a mdadm --create --assume-clean --level=6 --raid-devices=7 --size=3744766464 /dev/sdb4 /dev/sdc4 missing /dev/sda1 /dev/sde4 /dev/sdg1 /dev/sdf1 for 6 drives, respectively mdadm --create --assume-clean --level=6 --raid-devices=7 --size=3744766464 /dev/sdb4 /dev/sdc4 missing missing /dev/sde4 /dev/sdg1 /dev/sdf1 on a 5 drive solution. Would you agree with this?

我还没有核实细节(驱动器顺序、大小、缺失位置等),但命令看起来不错。不过,正如 Linux Raid Wiki 上提到的那样,重新创建应该被视为最后的求助。当需要这样做时,我总是尽量做到尽可能具体。只需记住,我上次查看了 mdadm 手册页并添加了所有我知道数据的选项(例如,甚至是块大小、对齐方式等)。有很多默认值可以省略,但是当确定值时,为什么不具体一点呢。


针对您的情况,我会尝试以下方法:

  • mdadm出一个版本>=4.0
  • 停止阵列(如果正在运行)。检查/proc/mdstat并使用mdadm --stop ...
  • 验证磁盘和 HBA(sata/ide/scsi 控制器)。检查dmesgsmartctl记录。尝试从磁盘读取(例如。。dd if=/dev/hda1 of=/dev/null bs=1M count=2048重新检查dmesgsmartctl记录。重复此操作,添加一些ibs=skip=。重新检查dmesg和记录。如果您在 HBA上smartctl看到任何内容,请停止使用该硬件的磁盘上的任何程序。resets|timeouts|failuresata|sata|scsi|...
  • 在所有磁盘上重复验证磁盘和 HBA。
  • 运行mdadm --assemble --scan --verbose。这很可能会失败,但它可以让您很好地了解 mdadm 发现了什么,并让您了解当您force这样做时会发生什么。
  • 研究上述输出,检查您所看到的内容是否与您已经收集的有关驱动器/阵列的信息相符。
  • 停止阵列(如果它正在运行或者已启动)。
  • 如果您对 mdadm 的操作感到满意--assemble --scan --verbose,请尝试一下--force
  • 如果所有这些都失败了,请进行全盘备份(或创建覆盖文件),然后返回到最后的采取并重新创建整个阵列,使用assume-clean和从阵列收集的所有信息。

相关内容