
プールには2つのディスクがありました /dev/sde /dev/sdf
ディスク /dev/sde が破損したため、プールから除外し、新しいディスクに交換しました。RAID が劣化しました。
新しい /dev/sde ディスクをプールに追加した後、次の構成が得られました。
zpool status
pool: rpool
state: DEGRADED
status: One or more devices could not be used because the label is missing or
invalid. Sufficient replicas exist for the pool to continue
functioning in a degraded state.
action: Replace the device using 'zpool replace'.
see: http://zfsonlinux.org/msg/ZFS-8000-4J
scan: scrub repaired 0B in 0h25m with 0 errors on Wed Sep 2 18:32:39 2020
config:
NAME STATE READ WRITE CKSUM
rpool DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
old UNAVAIL 0 0 0
sdf2 ONLINE 0 0 0
sde2 ONLINE 0 0 0
「古いもの」を置き換えたり、オフラインにしたり、削除したりすると、常にエラーが発生します。
zpool replace rpool old
cannot open 'old': no such device in /dev
must be a full path or shorthand device name
ファイル/etc/zfs/zpool.cacheにドライブ/dev/sde2/oldがある
サーバーを再起動したり、アレイ (アレイは /) を削除したりせずに、古いディスクを削除するにはどうすればよいですか?
root@v05:/# zpool replace rpool old sde2
invalid vdev specification
use '-f' to override the following errors:
/dev/sde2 is part of active pool 'rpool'
root@v05:/# zpool replace -f rpool old sde2
invalid vdev specification
the following errors must be manually repaired:
/dev/sde2 is part of active pool 'rpool'
sde はすでに rpool メンバーです。
プールから古いディスク (/dev/sde/old) を削除する必要があります。
新しいディスクを追加してもエラーは発生せず、すべてあなたの書いたとおりに実行されました。
答え1
問題が解決しました。
ジッド
/dev/sde/old デバイスの識別子 15497986214547762579 を見つけて削除します:
zpool オフライン -f rpool 15497986214547762579
zpool デタッチ rpool 15497986214547762579
答え2
新しいディスクを追加するときにエラーが発生した可能性があります。 を発行しzpool add rpool <newdisk>
ましたが、交換する故障したディスク。つまり、次のいずれかを行う必要がありました。
zpool replace rpool <olddisk> <newdisk>
zpool detach rpool <olddisk>; zpool attach rpool sdf
(sdf
もう一方のミラーの脚)。
私が と書いた点に注意してくださいattach
。おそらく、add
zpool コマンドでは を使用します。
この問題を解決するにはどうすればよいでしょうか? ZFS 0.7.xでは、追加されたデータvdevは削除できないため、残念ながら解決できません。ZFS 0.8.xは削除できますしたがって、ZFS 0.7.x を実行している場合は、まず 0.8.x にアップデートする必要があります。次に、上記のコマンドを実行して、障害が発生したディスクを交換する必要があります。
答え3
Oracle のドキュメントに従ってディスクを交換しました。コマンド出力は以下のとおりです。
root@v05:/# zpool replace rpool old sde2 無効な vdev 指定 次のエラーを無効にするには '-f' を使用します: /dev/sde2 はアクティブ プール 'rpool' の一部です
root@v05:/# zpool replace -f rpool old sde2 無効な vdev 仕様 次のエラーは手動で修復する必要があります: /dev/sde2 はアクティブ プール 'rpool' の一部です