web-dev-qa-db-ja.com

zfsプールからディスクを永続的に削除する

ZILでSSDをzpoolに追加しようとしましたが、間違えました。

私は期待していました..zpooladd zone log c0t1d0
しかし、私はしました... zpool追加ゾーンc0t1d0

Zone remove、detach、offlineコマンドを実行しようとしましたが、失敗しました。
zpoolでデータを失うことなくSSDを取り外すにはどうすればよいですか?

$ zpool status
pool: zones
state: ONLINE
scan : non requested
config:
   NAME          STATE     READ  WRITE CKSUM
   zones          ONLINE      0      0      0
       c0t0d0     ONLINE      0      0      0
       c0t1d0     ONLINE      0      0      0


$ zpool iostat -v               
capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
zones        280G   109G     40    139  1.28M  13.7M  
     c0t0d0  263G  15.3G     39     35  1.25M  2.61M  
     c0t1d0 17.6G  93.4G      0    104  20.9K  11.1M
----------  -----  -----  -----  -----  -----  -----
8
iskim

残念ながら、破壊して新たに作成する必要があります。 zfs send/recvを使用すると、すべてのスナップショットやメタデータなどを保持しながらすべてのデータを移行でき、通常のcpよりも高速にコピーできます。

2
user121391

更新:ZoL0.8.0リリースにはこの機能が含まれます。

@ user121391は、todayは、send/recvストレージの移行以外では不可能であることを示しています。

ただし、Matt Ahrens(OpenZFSコミュニティの責任者)によって開発された新機能があり、マスターブランチに着陸する寸前であり、最終的には他のプラットフォーム(FreeBSD/Linux/macOSなど)に移行します。 Githubでのプルリクエスト へのリンクは次のとおりです。

統合すると、任意のトップレベルvdevでzpool removeを実行できるようになります。これにより、ストレージがプール内の別のデバイスに移行され、古い場所から新しい場所への間接的なマッピングが追加されます。削除するvdevがすでにデータでいっぱいになっている場合(そのデータへのアクセスは間接マッピングを経由する必要があるため)は良くありませんが、話しているユースケースでうまく機能するように設計されています(すぐに気付いた設定ミス)。

4
Dan