私のサーバーはSSDをブートドライブとして使用し、RAID6設定の6TB HDD 11個を追加のストレージとして使用します。ただし、マザーボードにいくつかの問題が発生した後、マザーボードを4つのSATAポートしかないマザーボードに置き換えて、RAID6設定サイズを11台のドライブから4台のドライブに減らしました。アレイに保存される実際のデータは6 TB未満であるため、削減されたストレージスペースにデータを入れることができなければなりません。
私は配列を縮小するために次のページの指示を使用したようです。あまりにも前のことなので、これが使用されたページや指示だったかどうか、詳細もあまり覚えていません。
- https://superuser.com/questions/834100/shrink-raid-by-removing-a-disk
- https://delightlylinux.wordpress.com/2020/12/22/how-to-remove-a-drive-from-a-raid-array/
未使用の7台のドライブでスーパーブロックを0に設定したようですsudo mdadm --zero-superblock
。
使用したい4つのドライブにはマウントできません。私はアレイでパーティションを使用しているとは思わない。
sudo mount /dev/md127 /mnt/md127
mount: /mnt/md127: wrong fs type, bad option, bad superblock on /dev/md127, missing codepage or helper program, or other error.
から/var/log/syslog
:
kernel: [ 1894.040670] EXT4-fs (md127): bad geometry: block count 13185878400 exceeds size of device (2930195200 blocks)
13185878400 / 2930195200
== なのでファイルシステム4.5
を9 / 2
縮小するなどの問題があると思います。 RAID6には2つのスペアドライブがあるため、11個(アクティブドライブ9個、スペアドライブ2個)から11個(アクティブドライブ2個、スペアドライブ9個)に変更されますか? 4つ(アクティブ2、スタンバイ2)に移動すると、ブロック数がデバイスサイズの正確な倍数よりはるかに高い理由を説明できます4.5
。
デバイスの追加情報:
sudo mdadm --detail /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Wed Nov 24 22:28:38 2021
Raid Level : raid6
Array Size : 11720780800 (10.92 TiB 12.00 TB)
Used Dev Size : 5860390400 (5.46 TiB 6.00 TB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Sun Apr 9 04:57:29 2023
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : bitmap
Name : nao0:0 (local to host nao0)
UUID : ffff85d2:b7936b45:f19fc1ba:29c7b438
Events : 199564
Number Major Minor RaidDevice State
9 8 16 0 active sync /dev/sdb
1 8 48 1 active sync /dev/sdd
2 8 32 2 active sync /dev/sdc
10 8 0 3 active sync /dev/sda
sudo mdadm --examine /dev/sd[a-d]
/dev/sda:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : ffff85d2:b7936b45:f19fc1ba:29c7b438
Name : nao0:0 (local to host nao0)
Creation Time : Wed Nov 24 22:28:38 2021
Raid Level : raid6
Raid Devices : 4
Avail Dev Size : 11720780976 sectors (5.46 TiB 6.00 TB)
Array Size : 11720780800 KiB (10.92 TiB 12.00 TB)
Used Dev Size : 11720780800 sectors (5.46 TiB 6.00 TB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=176 sectors
State : clean
Device UUID : 07f76b7f:f4818c5a:3f0d761d:b2d0ba79
Internal Bitmap : 8 sectors from superblock
Update Time : Sun Apr 9 04:57:29 2023
Bad Block Log : 512 entries available at offset 32 sectors
Checksum : 914741c4 - correct
Events : 199564
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 3
Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdb:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : ffff85d2:b7936b45:f19fc1ba:29c7b438
Name : nao0:0 (local to host nao0)
Creation Time : Wed Nov 24 22:28:38 2021
Raid Level : raid6
Raid Devices : 4
Avail Dev Size : 11720780976 sectors (5.46 TiB 6.00 TB)
Array Size : 11720780800 KiB (10.92 TiB 12.00 TB)
Used Dev Size : 11720780800 sectors (5.46 TiB 6.00 TB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=176 sectors
State : clean
Device UUID : 3b51a0c9:b9f4f844:68d267ed:03892b0d
Internal Bitmap : 8 sectors from superblock
Update Time : Sun Apr 9 04:57:29 2023
Bad Block Log : 512 entries available at offset 32 sectors
Checksum : 294a8c37 - correct
Events : 199564
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 : ffff85d2:b7936b45:f19fc1ba:29c7b438
Name : nao0:0 (local to host nao0)
Creation Time : Wed Nov 24 22:28:38 2021
Raid Level : raid6
Raid Devices : 4
Avail Dev Size : 11720780976 sectors (5.46 TiB 6.00 TB)
Array Size : 11720780800 KiB (10.92 TiB 12.00 TB)
Used Dev Size : 11720780800 sectors (5.46 TiB 6.00 TB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=176 sectors
State : clean
Device UUID : 0fcca5ee:605740dc:1726070d:0cef3b39
Internal Bitmap : 8 sectors from superblock
Update Time : Sun Apr 9 04:57:29 2023
Bad Block Log : 512 entries available at offset 32 sectors
Checksum : 31472363 - correct
Events : 199564
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 2
Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdd:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : ffff85d2:b7936b45:f19fc1ba:29c7b438
Name : nao0:0 (local to host nao0)
Creation Time : Wed Nov 24 22:28:38 2021
Raid Level : raid6
Raid Devices : 4
Avail Dev Size : 11720780976 sectors (5.46 TiB 6.00 TB)
Array Size : 11720780800 KiB (10.92 TiB 12.00 TB)
Used Dev Size : 11720780800 sectors (5.46 TiB 6.00 TB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=176 sectors
State : clean
Device UUID : e1912abb:ba98a568:8effaa66:c1440bd8
Internal Bitmap : 8 sectors from superblock
Update Time : Sun Apr 9 04:57:29 2023
Bad Block Log : 512 entries available at offset 32 sectors
Checksum : 82a459ba - correct
Events : 199564
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 1
Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
fsck
オンラインで検索した後、およびをe2fsck
使用してresize2fs
問題を解決してみました。ただし、これを試しても進歩はなく、誤ってディスクのデータを変更して問題をさらに悪化させた可能性があります。
そしてresize2fs
、
sudo resize2fs /dev/md127
resize2fs 1.46.5 (30-Dec-2021)
Please run 'e2fsck -f /dev/md127' first.
resize2fs
私はそれで実際には何もできないので、それを使用しe2fsck
ながら多くのエラーが発生しています。何千ものエラーのため、プログラムが終了する前にやめました。
sudo e2fsck -f /dev/md127
e2fsck 1.46.5 (30-Dec-2021)
The filesystem size (according to the superblock) is 13185878400 blocks
The physical size of the device is 2930195200 blocks
Either the superblock or the partition table is likely to be corrupt!
Abort<y>? no
Pass 1: Checking inodes, blocks, and sizes
Error reading block 3401580576 (Invalid argument) while getting next inode from scan. Ignore error<y>? yes
Force rewrite<y>? yes
Error reading block 3401580577 (Invalid argument) while getting next inode from scan. Ignore error<y>? yes
Force rewrite<y>? yes
Error reading block 3401580578 (Invalid argument) while getting next inode from scan. Ignore error<y>? yes
Force rewrite<y>? yes
Error reading block 3401580579 (Invalid argument) while getting next inode from scan. Ignore error<y>? yes
Force rewrite<y>? yes
Error reading block 3401580580 (Invalid argument) while getting next inode from scan. Ignore error<y>? yes
Force rewrite<y>? yes
Error reading block 3401580581 (Invalid argument) while getting next inode from scan. Ignore error<y>? yes
Force rewrite<y>? yes
Error reading block 3401580582 (Invalid argument) while getting next inode from scan. Ignore error<y>? yes
Force rewrite<y>?
私の仮説は、報告されたドライブサイズにわずかな不一致がある可能性があることです。 RAIDにはパーティションやLVMボリュームがないようです。
sudo fdisk -l
...
Disk /dev/sda: 5.46 TiB, 6001175126016 bytes, 11721045168 sectors
Disk model: WDC WD60EZAZ-00S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/sdb: 5.46 TiB, 6001175126016 bytes, 11721045168 sectors
Disk model: WDC WD60EZAZ-00S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/sdc: 5.46 TiB, 6001175126016 bytes, 11721045168 sectors
Disk model: WDC WD60EZAZ-00S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/sdd: 5.46 TiB, 6001175126016 bytes, 11721045168 sectors
Disk model: WDC WD60EZAZ-00S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/md127: 10.92 TiB, 12002079539200 bytes, 23441561600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
現在使用中の4つのドライブのデータはfsck
/変更されたり、そうでない場合がe2fsck
ありますが、データは0に設定されたスーパーブロックを持つ他の7つの未使用ドライブにも存在する必要があります。私にとっては、データがどのドライブから回復するかは問題ではないので、すべてのドライブグループから回復するための効果的なソリューションを高く評価します。
追加情報が必要な場合は、喜んでご提供いたします。
答え1
ext4ファイルシステムは、ブロックデバイス(12TBブロックデバイスの54TBファイルシステム)よりはるかに大きいです。e2fsck
そして、resize2fs
このような状況では非常に非協調的かもしれません。ファイルシステムは大きな塊を失うのが嫌いです。
debugfs
データをすばやく回復するには、災害モードで運を試してください。
# debugfs -c /dev/md127
debugfs 1.47.0 (5-Feb-2023)
debugfs: ls -l
| (this should list some files)
| (damaged files usually show with 0 bytes and 1-Jan-1970 timestamp)
debugfs: rdump / /some/recovery/dir/
これにより、ファイルをコピーする必要があります(回復リポジトリに関連していないHDDを使用)、一部のファイルは類似または類似のAttempt to read block from filesystem resulted in short read
エラーを引き起こす可能性があります。
実際にファイルシステムを回復するには、通常は元のデバイスサイズを復元し、そこから移動するのが最善です。場合によっては、ブロックデバイスの縮小を元に戻すことができます。しかし、あなたの場合、これは元に戻すことはできません。
RAIDを11台のデバイスに増やすことはできますが、ドライブの順序が正しい場合でも失われたデータは回復されず、残りのディスクに残っている可能性があるデータが上書きされます。 mdadm はすべての成長操作でオフセットを移動するため、レイアウトは完全に間違っています。
したがって、カットオフポイントを超えたすべての内容は失われます。
さらに、すべてのデータを再構成するのに時間がかかり、結果は仮想ドライブ容量(ループデバイスとdm-linearまたはLVMシンボリュームなどの場合はすべて0)を追加するよりも優れていません。
最良のシナリオは、再生成して部分的に元に戻すことができます。(記録中のコピーオーバーレイでmdadm --createを使用)元の11ドライブRAID 6には4ドライブはありません(ドライブが完全にゼロになったため)。
ただし、せいぜいRAID 6が回復できるよりも多くの間隔を持つ接続が失われたデータブロックを提供します。メタデータがなくなったため、さらに複雑です(現在のレイドで変更された元のオフセットとドライブの順序を知る必要があります)。
これを行うことができる場合は、現在のRAID(0-12TB)と回復RAID(12TB-54TB)をdm-linear(すべての書き込み中にコピーオーバーレイの上にある)と関連付けて、何が見つかるかを確認できます。
しかし、この過程は複雑で成功確率も非常に低い。縮小操作で予約されている12 TBの外部に保存されているデータの場合、ブロック/ストライプファイルより小さいデータは生き残ることができますが、大きなファイルは完全に破損します。