raidz で失われたディスクを交換できません

raidz で失われたディスクを交換できません

マザーボードを変更した後、raidz の機能が低下し、ディスクが見つかりません。失われたディスクは以前は /dev/sdh でしたが、現在は /dev/sdg という名前になっています。これが問題の原因です。

劣化した zpool では、uid (zdb コマンドを使用して見つけたもの) を使用して、失われたディスクをオフラインにすることができました。これで、劣化したプールは次のようになります。

pool: Media
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
    Sufficient replicas exist for the pool to continue functioning in a
    degraded state.
action: Online the device using 'zpool online' or replace the device with
    'zpool replace'.
scrub: scrub completed after 2h10m with 0 errors on Thu May  1 14:02:43 2014 
config:

    NAME                                                      STATE     READ WRITE CKSUM
    Media                                                     DEGRADED     0     0     0
      raidz1-0                                                ONLINE       0     0     0
        disk/by-id/ata-WDC_WD2003FYYS-02W0B0_WD-WMAY00171958  ONLINE       0     0     0
        disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WCAY00424060  ONLINE       0     0     0
        disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WMAY04082675  ONLINE       0     0     0
      raidz1-1                                                DEGRADED     0     0     0
        sde                                                   ONLINE       0     0     0
        sdf                                                   ONLINE       0     0     0
        sdh                                                   OFFLINE      0     0     0

しかし、/dev/sdh を /dev/sdg に置き換えることはできません。

zpool replace Media 3840188586753206212 /dev/disk/by-id/ata-WDC_WD20EZRX-00D8PB0_WD-WMC4M1843609 -f
invalid vdev specification
the following errors must be manually repaired:
/dev/disk/by-id/ata-WDC_WD20EZRX-00D8PB0_WD-WMC4M1843609 is part of active pool 'Media'

...この問題をどうすれば解決できるでしょうか?

答え1

コマンドを発行する

sudo blkid

raidz 1-0 用に予約されたメンバーまたはスペアを使用して raidz 1-1 を修復しようとしていることに気付くかもしれません。いずれにせよ、今後は /dev/sdx ではなく id で raid アレイを組み立てるようにしてください。

メンバーシップを無視することについてのコメントへの返信です。これは危険な行為です。バックアップが最新であり、アクセス可能であることを確認してください。これは私の得意分野ではないしかし、私は次のことを発見しました:

これはここで質問され、答えられているようですzpool 内の故障したディスクを交換する

ここでも、関連があるかどうかわからない情報を見つけました:

http://docs.oracle.com/cd/E19253-01/819-5461/gaypw/index.html

zpoolのメンバーを削除するには

zpool remove pool vdev

ソース:http://manpages.ubuntu.com/manpages/lucid/man1/zpool.1M.html

答え2

解決しました。ただし、その方法はよくわかりません。途中のある時点で (プールをエクスポートし、別の名前で再度インポートした後だと思います)、ドライブは従来の名前 "/dev/sd*" ではなく ID でアドレス指定されていました。ID アドレス指定スキームを強制するために何もしたわけではありません。ただそうなっただけです。

        NAME                                                      STATE     READ WRITE CKSUM
    Media                                                     ONLINE       0     0     0
      raidz1-0                                                ONLINE       0     0     0
        disk/by-id/ata-WDC_WD2003FYYS-02W0B0_WD-WMAY00171958  ONLINE       0     0     0
        disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WCAY00424060  ONLINE       0     0     0
        disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WMAY04082675  ONLINE       0     0     0
      raidz1-1                                                ONLINE       0     0     0
        disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WCAY00788302  ONLINE       0     0     0
        disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WCAY01088068  ONLINE       0     0     0
        disk/by-id/ata-WDC_WD20EZRX-00D8PB0_WD-WMC4M1843609   OFFLINE       0     0   0

その後、上記の障害のあるデバイスを /dev/sdg に置き換えようとすると、コンピューターはデバイス /dev/sdg がビジーであるというエラーを返しました。ID アドレス指定の変更により、プールはある程度「修復」されたことが判明しました。

zpoolのエントリが、設定しようとしていたデバイス/dev/sdgのIDをすでに指していることに気づいたので、ドライブをオンラインにするだけで済みました。

zpool online Media /dev/disk/by-id/ata-WDC_WD20EZRX-00D8PB0_WD-WMC4M1843609 

そしてプールは再び銀色になり始めました。

ところで、私はまた、すべてのラベルをクリアし、ドライブがすでにアクティブ プールの一部であることを忘れるように、ドライブ /dev/sdg からデータを消去しようとしました。これは役に立ったとは思いませんが、私が知らない効果があったのかもしれません。dd のクリアについては、上記のスレッドで説明されています。

これが同様の問題を抱えている誰かの役に立つことを願っています。私の問題を読んでくださった皆様に感謝します。

関連情報