ZFS-重複排除されたzvolまたはデータセットを破壊すると、サーバーが停止します。回復する方法


11

12個のミッドライン(7200 RPM)SASドライブを搭載したHP ProLiant DL180 G6で実行されているセカンダリストレージサーバーでNexentastorを使用しています。システムにはE5620 CPUと8GB RAMがあります。ZILまたはL2ARCデバイスはありません。

先週、750 GBのスパースzvolを作成し、重複除去と圧縮を有効にしてiSCSI経由でVMWare ESXホストと共有しました。次に、Windows 2008ファイルサーバーイメージを作成し、約300 GBのユーザーデータをVMにコピーしました。システムに満足したら、仮想マシンを同じプールのNFSストアに移動しました。

NFSデータストア上のVMで起動して実行したら、元の750GB zvolを削除することにしました。そうすると、システムが停止します。Nexenta WebインターフェイスとNMCへのアクセスが停止しました。最終的には生のシェルに到達することができました。ほとんどのOS操作は問題ありませんでしたが、システムはzfs destroy -r vol1/filesystemコマンドを停止していました。醜い。次の2つのOpenSolaris bugzillaエントリを見つけましたが、今度は、マシンが未知の期間ブリックされることを理解しています。14時間が経過しているため、サーバーへのアクセスを回復できるようにする計画が必要です。

http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6924390

そして

http://bugs.opensolaris.org/bugdatabase/view_bug.do;jsessionid=593704962bcbe0743d82aa339988?bug_id=6924824

将来的には、おそらくbuzillaの回避策の1つで与えられたアドバイスに従うでしょう。

Workaround
    Do not use dedupe, and do not attempt to destroy zvols that had dedupe enabled.

更新:システムの電源をオフにする必要がありました。再起動すると、システムはで停止しImporting zfs filesystemsます。それは今から2時間ずっとそうです。

回答:


15

これは解決されました。重要なのは、重複排除されたボリュームでは、削除する前に重複除去フラグをオフにする必要があるということです。これは、プールレベルおよびzvolまたはファイルシステムレベルで実行する必要があります。それ以外の場合、削除は本質的に重複排除されます。ZFS重複排除テーブルが参照されているため、プロセスには時間がかかります。この場合、RAMが役立ちます。システムに16ギガバイトのRAMを一時的に追加し、サーバーをオンラインに戻しました。zpoolは4時間以内に完全にインポートされました。

教訓は、おそらく重複排除は洗練されたものではなく、RAMはそのパフォーマンスに不可欠であるということです。環境に応じて、24GB以上を推奨しています。それ以外の場合は、ZFS重複排除をオフのままにします。これは、ホームユーザーや小規模なシステムには絶対に合理的ではありません。


5

Sun / Oracle ZFS 7000シリーズアプライアンスの長年のユーザーとして、私は間違いなく重複排除が洗練されていないことを伝えることができます。販売と配送を混同しないでください!営業担当者から「ああ、それは修正されました」と言われます。実生活-私の実生活-24GBでは「DDTテーブル」を処理するには不十分であることがわかります。つまり、重複排除テーブルを格納するバックエンドインデックス。そのテーブルは、ディスクに書き込む必要があるかどうかを判断するために、各I / Oが実行中にインターセプトされるようにシステムメモリに常駐する必要があります。ストレージプールが大きいほど、変更されるデータが多くなり、このテーブルが大きくなり、システムメモリに対する要求が大きくなります。そのメモリはARC(キャッシュ)を犠牲にし、時にはOS自体を犠牲にします。これが、特定のコマンドがフォアグラウンドで、一部がバックグラウンドで発生するため、ハングする理由です。CLIで特に指定しない限り、プールの削除はフォアグラウンドで発生するようです。GUIウィザードはこれを行いません。

ZFSへの「書き込み」を処理してデータを削除するように指示するための十分なメモリがない場合、重複排除されたボリュームで定義された共有内のNFSデータの一括削除でもシステムが半分になります。

全体として、メモリを使い果たして、それでも、ARCとDDTを制限することでOSのメモリを予約する方法を見つけない限り(そして、DDTをその性質上制限できるとは思わない、それはまさに結び付けられたインデックスだI / Oに)-その後、大量の削除や破壊的なzvol / poolの実行中にうんざりします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.