Сценарий в эта вики, где 1 диск имеет немного меньшее, а другой значительно меньшее количество событий, чем остальная часть массива, предлагает сборку с --force
при этом оставив самый старый диск и добавив его (или новый, если диск действительно неисправен) обратно после массива, собранного в деградированном состоянии.
Имеет ли смысл сделать это в моей ситуации, или лучше попытаться --force
собрать со всеми 4 дисками, учитывая, что два устаревших имеют одинаковое количество событий?
Учитывая мои ограниченные знания RAID, я решил спросить о моей конкретной ситуации, прежде чем что-либо пробовать. Потеря данных на этих 4 дисках не будет для меня концом света, но было бы неплохо вернуть их.
Сначала я без проблем перенес массив RAID5 со старой машины на новую. Я использовал его около 2 дней, пока не заметил, что 2 из дисков не указаны на экране загрузки BIOS. Поскольку массив все еще собирался и работал нормально после входа в Linux, я не особо об этом думал.
На следующий день массив перестал работать, поэтому я подключил карту PCI-e SATA и заменил все кабели SATA. После этого все 4 диска появились на экране загрузки BIOS, поэтому я предполагаю, что исходную проблему вызывали либо мои кабели, либо порты SATA.
Теперь у меня остался сломанный массив. mdadm --assemble
перечисляет два диска как (possibly out of date)
, и mdadm --examine
показывает 22717
события для устаревших дисков и 23199
для двух других. Эта вики-запись предполагает, что разница в количестве событий <50
можно преодолеть сборкой с --force
, но мои 4 диска разделены 482
События.
Ниже представлена вся соответствующая информация о рейде. Я знал, что на всех 4 дисках были повреждены первичные таблицы GPT до того, как массив вышел из строя, но поскольку в то время все работало нормально, я еще не успел это исправить.
mdadm --assemble --scan --verbose
mdadm: /dev/sde is identified as a member of /dev/md/guyyst-server:0, slot 2.
mdadm: /dev/sdd is identified as a member of /dev/md/guyyst-server:0, slot 3.
mdadm: /dev/sdc is identified as a member of /dev/md/guyyst-server:0, slot 1.
mdadm: /dev/sdb is identified as a member of /dev/md/guyyst-server:0, slot 0.
mdadm: added /dev/sdb to /dev/md/guyyst-server:0 as 0 (possibly out of date)
mdadm: added /dev/sdc to /dev/md/guyyst-server:0 as 1 (possibly out of date)
mdadm: added /dev/sdd to /dev/md/guyyst-server:0 as 3
mdadm: added /dev/sde to /dev/md/guyyst-server:0 as 2
mdadm: /dev/md/guyyst-server:0 assembled from 2 drives - not enough to start the array.
mdadm --examine /dev/sd[bcde]
/dev/sdb:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 356cd1df:3a5c992d:c9899cbc:4c01e6d9
Name : guyyst-server:0
Creation Time : Wed Mar 27 23:49:58 2019
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 7813772976 (3725.90 GiB 4000.65 GB)
Array Size : 11720658432 (11177.69 GiB 12001.95 GB)
Used Dev Size : 7813772288 (3725.90 GiB 4000.65 GB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=688 sectors
State : clean
Device UUID : 7ea39918:2680d2f3:a6c3b0e6:0e815210
Internal Bitmap : 8 sectors from superblock
Update Time : Fri May 1 03:53:45 2020
Bad Block Log : 512 entries available at offset 24 sectors
Checksum : 76a81505 - correct
Events : 22717
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 0
Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdc:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 356cd1df:3a5c992d:c9899cbc:4c01e6d9
Name : guyyst-server:0
Creation Time : Wed Mar 27 23:49:58 2019
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 7813772976 (3725.90 GiB 4000.65 GB)
Array Size : 11720658432 (11177.69 GiB 12001.95 GB)
Used Dev Size : 7813772288 (3725.90 GiB 4000.65 GB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=688 sectors
State : clean
Device UUID : 119ed456:cbb187fa:096d15e1:e544db2c
Internal Bitmap : 8 sectors from superblock
Update Time : Fri May 1 03:53:45 2020
Bad Block Log : 512 entries available at offset 24 sectors
Checksum : d285ae78 - correct
Events : 22717
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 1
Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdd:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 356cd1df:3a5c992d:c9899cbc:4c01e6d9
Name : guyyst-server:0
Creation Time : Wed Mar 27 23:49:58 2019
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 7813772976 (3725.90 GiB 4000.65 GB)
Array Size : 11720658432 (11177.69 GiB 12001.95 GB)
Used Dev Size : 7813772288 (3725.90 GiB 4000.65 GB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=688 sectors
State : clean
Device UUID : 2670e048:4ebf581d:bf9ea089:0eae56c3
Internal Bitmap : 8 sectors from superblock
Update Time : Fri May 1 04:12:18 2020
Bad Block Log : 512 entries available at offset 24 sectors
Checksum : 26662f2e - correct
Events : 23199
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 3
Array State : A.AA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sde:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 356cd1df:3a5c992d:c9899cbc:4c01e6d9
Name : guyyst-server:0
Creation Time : Wed Mar 27 23:49:58 2019
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 7813772976 (3725.90 GiB 4000.65 GB)
Array Size : 11720658432 (11177.69 GiB 12001.95 GB)
Used Dev Size : 7813772288 (3725.90 GiB 4000.65 GB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=688 sectors
State : clean
Device UUID : 093856ae:bb19e552:102c9f77:86488154
Internal Bitmap : 8 sectors from superblock
Update Time : Fri May 1 04:12:18 2020
Bad Block Log : 512 entries available at offset 24 sectors
Checksum : 40917946 - correct
Events : 23199
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 2
Array State : A.AA ('A' == active, '.' == missing, 'R' == replacing)
mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Raid Level : raid0
Total Devices : 4
Persistence : Superblock is persistent
State : inactive
Working Devices : 4
Name : guyyst-server:0
UUID : 356cd1df:3a5c992d:c9899cbc:4c01e6d9
Events : 23199
Number Major Minor RaidDevice
- 8 64 - /dev/sde
- 8 32 - /dev/sdc
- 8 48 - /dev/sdd
- 8 16 - /dev/sdb
fdisk -l
The primary GPT table is corrupt, but the backup appears OK, so that will be used.
Disk /dev/sdb: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: WDC WD40EFRX-68N
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: gpt
Disk identifier: 79F4A900-C9B7-03A9-402A-7DDE6D72EA00
Device Start End Sectors Size Type
/dev/sdb1 2048 7814035455 7814033408 3.7T Microsoft basic data
The primary GPT table is corrupt, but the backup appears OK, so that will be used.
Disk /dev/sdc: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: WDC WD40EFRX-68N
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: gpt
Disk identifier: 43B95B20-C9B1-03A9-C856-EE506C72EA00
Device Start End Sectors Size Type
/dev/sdc1 2048 7814035455 7814033408 3.7T Microsoft basic data
The primary GPT table is corrupt, but the backup appears OK, so that will be used.
Disk /dev/sdd: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: WDC WD40EFRX-68N
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: gpt
Disk identifier: 1E276A80-99EA-03A7-A0DA-89877AE6E900
The primary GPT table is corrupt, but the backup appears OK, so that will be used.
Disk /dev/sde: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: WDC WD40EFRX-68N
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: gpt
Disk identifier: 11BD8020-C9B5-03A9-0860-6F446D72EA00
Device Start End Sectors Size Type
/dev/sde1 2048 7814035455 7814033408 3.7T Microsoft basic data
smartctl -a -d ata /dev/sd[bcde]
Как pastebin, поскольку он превышает лимит символов: https://pastebin.com/vMVCX9EH
Вообще говоря, в этой ситуации следует ожидать потери данных. Два из четырех дисков были извлечены из RAID примерно в один и тот же момент времени. При обратной сборке у вас будет поврежденная файловая система.
Если возможно, я буду экспериментировать дальше только после dd
- использование всех дисков в качестве резервной копии для начала.
Использование всех 4 дисков позволит вам определить, какие блоки различаются (поскольку контрольная сумма не будет совпадать), но это не поможет вам вычислить правильное состояние. Вы могли бы начать checkarray
после принудительной повторной сборки всех 4 и затем найти количество несовместимых блоков в /sys/block/mdX/md/mismatch_cnt
. Это может быть интересным, а может и не быть интересным для оценки «степени неисправности» файловой системы.
При повторном построении массива можно использовать информацию только с трех дисков для повторного вычисления четности. Поскольку у извлеченных дисков одинаковое количество событий, использование любого из извлеченных дисков должно привести к повторному вычислению той же (частично неправильной) информации о разделах.