私はraidzプールに新しいデバイスを追加するときにZFSがこれを自動的に実行する必要があると思いましたが、間違えました。
:~# zpool status
pool: data
state: ONLINE
scan: resilvered 78,3G in 2h4m with 0 errors on Tue May 10 18:12:31 2016
config:
NAME STATE READ WRITE CKSUM
data ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
c2t2d0 ONLINE 0 0 0
c2t3d0 ONLINE 0 0 0
c2t4d0 ONLINE 0 0 0
c2t5d0 ONLINE 0 0 0
c2t6d0 ONLINE 0 0 0
c2t7d0 ONLINE 0 0 0
c2t8d0 ONLINE 0 0 0
c2t9d0 ONLINE 0 0 0
c2t10d0 ONLINE 0 0 0
c2t11d0 ONLINE 0 0 0
c2t13d0 ONLINE 0 0 0
spares
c2t12d0 AVAIL
c2t14d0 AVAIL
c2t13d0はraidzプールにないようですが、そうですか?データプールからどのように削除しますか?
ご協力ありがとうございます。
答え1
あなたはできません。これで、単一ドライブvdevとしてプールに配置されます。プールからvdevを削除できません。
これは悪いニュースです。
raidz2-0
より悪いニュースは、vdevとvdevを介して実際にRAID-0があることですc2t13d0
。非常に良いではありません。ダブルプラスには良くありません。
あなたのオプションは次のとおりです。
- あなたが作ったプールで暮らす
- プールをバックアップ、削除、および再作成および復元します。
どちらのオプションも良くありません。バックアップ/再生/復元の例正しいこれは長期的に見て選択するオプションですが、ダウンタイムに時間がかかります(これを防ぐ唯一の方法は、同じサイズまたはより大きい2番目のプールを作成することですzfs send
)。
しかし、重複する問題を解決する1つの方法は、ミラーをvdevに接続することですc2t13d0
。寸法が等しい場合は、スペアパーツのいずれかを使用できます。
次のようなものを使用してください。
zpool attach data c2t13d0 anotherdisk
これは理想的なものとは離れていますが、ミラー化されたvdevを使用するRAIDZ2ストライプには冗長性がありますが(まだ面倒ですがデータを消費しません)、単一ドライブを使用するRAIDZ2ストライプにはI(一部のデータ)のみが安定した冗長性がありません。シングルドライブvdevに。これは常にあなたの最も価値があり、置き換えられないデータになります。)
少なくとも今は最初のオプション(「ただそのまま生きてください」)があまり悪くないようになります。長期的にはプールを再建したいと思います。
私はSolarisのマニュアルページにアクセスできませんが、以下はzpool
ZFS On Linuxバージョンのマニュアルページからの関連抜粋です(強調のために太字で追加しました)。 Solaris バージョンは同じか非常に似ている必要があります。
zpool attach [-f] [-o property=value] pool device new_device
new_deviceを既存のzpoolデバイスに接続します。既存のデバイスは raidz 構成に含めることはできません。。デバイスが現在のミラー構成の一部ではない場合、デバイスは自動的にデバイスと new_device の双方向ミラーに変換されます。デバイスが双方向ミラーの一部である場合、new_deviceを追加すると3方向ミラーが作成されます。どちらの場合も、new_device は直ちに再同期を開始します。
答え2
そうですね。プールは、ストライプ化された2つのvdev、ディスクc2t13d0、およびraidz2-0で構成されています。
残念ながら、ZFSは(まだ)プールからvdevを削除する機能を提供しません。したがって、唯一のオプションは、プールを削除して再作成してからバックアップから復元することです。