Solaris 10 x86 - zpool 内のディスクを交換しようとしています

Solaris 10 x86 - zpool 内のディスクを交換しようとしています

x86 プロセッサで Solaris 10 を実行しているシステム上の既存の zpool のディスクを交換するのに問題があります。zpool は元々 2 つのミラー スライスで作成されました。ドライブの 1 つが故障したため、物理的に新しいドライブと交換しました。prvtoc と fmthard を実行して、動作中のドライブから新しいドライブにディスク ラベルをコピーしました。

prtvtoc /dev/rdsk/c1t0d0s2 >/tmp/c1t0d0s2.out
fmthard -s /tmp/c1t0d0s2.out >/dev/rdsk/c1t1d0s2

その後、新しいドライブをオンラインにしようとしましたが、デバイスにまだ障害があるという警告が表示されました。

$ zpool online pool c1t1d0s6 
warning: device 'c1t1d0s6' onlined, but remains in faulted state

zpool status -v の出力は次のとおりです。

NAME          STATE     READ WRITE CKSUM
pool          DEGRADED     0     0     0
mirror-0    DEGRADED     0     0     0
c1t0d0s6  ONLINE       0     0     0
c1t1d0s6  UNAVAIL      0     0     0  corrupted data

(c1t1d0 は交換されたドライブです。)

次に、c1t1d0 を再びオフラインにして、zpool replace コマンドを実行してみましたが、これも機能しませんでした。

$ zpool replace pool c1t1d0s6
invalid vdev specification
use '-f' to override the following errors:
/dev/dsk/c1t1d0s6 overlaps with /dev/dsk/c1t1d0s2

何が起こっているのか知っている人はいませんか? 「-f」フラグを使用しても安全ですか?

編集:zpool replace -f を実行すると、次のようになります。

pool: pool
state: DEGRADED
status: The pool is formatted using an older on-disk format.  The pool can
        still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the
    pool will no longer be accessible on older software versions.
scrub: none requested
config:

    NAME                STATE     READ WRITE CKSUM
    pool                DEGRADED     0     0     0
      mirror-0          DEGRADED     0     0     0
        c1t0d0s6        ONLINE       0     0     0
        replacing-1     UNAVAIL      0     0     0  insufficient replicas
          c1t1d0s6/old  OFFLINE      0     0     0
          c1t1d0s6      UNAVAIL      0   342     0  experienced I/O failures

iostat -e の出力で、新しいドライブにエラーが表示されます。新しいドライブも故障している可能性がありますか?

編集2: 何が起こっているのかわかりません。同じ手順で別のドライブを試しました。zpool replace -f を実行した後、zfs プールはスクラブを実行しましたが、ステータス出力は次のようになります。

  pool: pool
 state: ONLINE
 status: The pool is formatted using an older on-disk format.  The pool can
    still be used, but some features are unavailable.
 action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the
    pool will no longer be accessible on older software versions.
 scrub: scrub completed after 12h56m with 0 errors on Wed Aug 29 06:49:16 2012
config:

    NAME                STATE     READ WRITE CKSUM
    pool              ONLINE       0     0     0
      mirror-0          ONLINE       0     0     0
        c1t0d0s6        ONLINE       0     0     0
        replacing-1     ONLINE   5.54M 19.9M     0
          c1t1d0s6/old  UNAVAIL      0     0     0  corrupted data
          c1t1d0s6      UNAVAIL      0     0     0  corrupted data

c1t1d0s6 をオフラインにした後、zpool ステータスの出力は次のようになります。

  pool: pool
 state: ONLINE
status: The pool is formatted using an older on-disk format.  The pool can
    still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the
    pool will no longer be accessible on older software versions.
scrub: scrub completed after 12h56m with 0 errors on Wed Aug 29 06:49:16 2012
config:

    NAME                STATE     READ WRITE CKSUM
    pool                ONLINE       0     0     0
      mirror-0          ONLINE       0     0     0
        c1t0d0s6        ONLINE       0     0     0
        replacing-1     ONLINE   5.54M 19.9M     0
          c1t1d0s6/old  UNAVAIL      0     0     0  corrupted data
          c1t1d0s6      UNAVAIL      0     0     0  corrupted data

わかりません。システムは c1t0d0s6 のミラーを使用して c1t1d0s6 を置き換えることができるはずではないですか?

答え1

のアラートをクリアしましたかfmadm? そしてzpool clear... スイッチを使用して zpool replace を実行するのは安全です-fが、不良ディスクをすでに削除していない限り、あなたの記述は間違っていると思います。

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

答え2

ケーブルまたはドライブ スレッドとスロットを確認してください。ノイズの多い SATA 接続はエラーを引き起こし、fmadm はその情報を使用してデバイスに障害が発生したかどうかを判断します。ドライブが不良だと思ったことがありますが、それは ZFS が有効なデータを確実に取得していないことに気付いただけでした。SATA ケーブルが挟まっていることに気付き、交換して実行したところzpool clearzpool scrubエラーはなくなりました。

関連情報