Nexentaの操作経験、または2か月後

数か月前、大規模仮想化のニーズに対応するため、Nexentaをベースにしたストレージシステムをリリースしました。 私たちはそれを良い負荷の下に置いたが、すべてが時計仕掛けや本のようになったわけではない。 衝撃的な詳細と操作経験に興味がある人のために、猫をお願いします。





Nexentaは、ZFS / OpenSolarisに基づいたストレージシステム用の商用ソフトウェアです。 彼は多くのことを知っていますが、重複排除、キャッシュ、その他すべてのジンジャーブレッドCookieを使用して、iSCSIを介してKVMおよびHyper-V / Windows 2008 HAクラスターの下に仮想化ノードを供給する必要があります。

車はぴったりと組み立てられ、300Gb SAS 15Kの36個のディスク、300Gb SDD Intel 710シリーズ(当時はどこにもクーラーがなかった)などが見つかりました。



サーバーを組み立て、Nexentをセットアップしました。 Nexents、認定エンジニアから公式パートナーが提供されました。 すべてが起動し、動作しました。 重々しく重複排除をオンにして喜んだ。 bakapをセットアップします。



そこで、Hyper-V / Windows 2008 R2クラスターから仮想マシンを転送し始めました。 しかし、私はそれらがたくさんあり、数百であり、それらのサイズは小さくないことを言わなければなりません-平均で20 GB。 5GBがあり、200があります。



クラスターを分割し、古いクラスターは古いデータセンターにあり、新しいクラスターを新しいクラスターに組み込みました。 そのため、LAN経由ではなく、数百メガビットのVLAN経由で移行しました。200GBのディスクを持つVMの移行は数時間遅れました。



すべてうまくいきますが、1週間で最初のカントを見つけました。Nexentに移行したときに、重複排除テーブルのメモリが不足しました。 Nexentでは、重複排除テーブルは特定のボリュームではなくディスクプールを指していると言わなければなりません。 メモリが不足しても、スマートシステムが事前にファッション機能を無効にするという意味ではありません。 スマートシステムは、生産性が1つか2つ低下することで混乱に陥ります。 つまり 80から90MB / sの速度でギガビットポートを介してVMボディを駆動する前に、3-4MB / sおよび200-300 IOPSになります。



その結果、Nexenteプール内の各FSブロックについて、重複排除テーブルには約500バイトのメモリが必要です。 システムに128GBのメモリがある場合、Nexentaは256,000,000ブロックに関する情報を保存できます。

4Kブロックの最大占有プールサイズは1Tb、16Kブロック-4Tb、32Kブロック-8Tb、および64Kブロック-16Tbです。 壁に赤いマーカーで書き留めてください! 海外に行って別れのボーナス=)



ブロックサイズが最初に設定されていなかった場合、正しいサイズの新しいボリュームに移行する以外、何も役に立ちません 。 重複排除をオフにすると、何も起こりません。 重複排除テーブルには、メモリからのアクセスを含め、どこにも行けません。 できることは、重複排除なしで別の新しいボリュームを作成し、そこに古いボリュームをコピーすることだけです。 はい、DDテーブルがこの時点でいっぱいの場合、1分あたり約3〜4 GBでコピーされます。 私たちの場合、ボリュームのサイズは約4TBで、移行(zfs send / zfs receive)には約16時間かかりました。 その後、重複排除ボリュームを消去しました。数時間後、車は非常に軽く感じたため、すべてを作動させることができました。



ボリュームに空き領域があることに注意してください-これを行うことができます。 ただし、ディスクの不足やライセンスの制限のためにストレージ内に移行するための十分なスペースがない場合は、不思議と冒険の世界へようこそ。 この状況でのiSCSIはほとんど機能せず、タイムアウトによって常にWindowsから脱落し、Linuxはストイックにブレーキを転送します。 ブロックデバイスをマウントする必要があり、そこからコンテンツをマージするために何時間も、別のオプションは、Nexentaを使用してサーバーのメモリを終了することです(原則として、母親を振り回すため)。



ブロックレベルの重複排除の詳細。 これは機能しません。忘れてください。 3〜4個のテンプレートから収集された数百個のクライアントVM .vhdの配列(原文のまま)4Kbブロックを保持しているため、NetAppに関する本のように、係数は8〜10です。 これはうまくいかず、重複除去率は約2〜3でした。 つまり 基本的な圧縮を含めると、同様の結果が得られます-40%。 8〜10のオッズを達成するには、おそらくクリーピングサイズのブロックでオフライン重複排除を使用する必要があります。 新しいWindows 2012またはONTAPのストレージプールのようなものです。



さらにもっと。 重複排除をオフにすると、すべてが始まりました。 大容量、それぞれ7TB。 古いクラスターから新しいクラスターへのHyper-V VMの移行を続行します。MRTGに気付きました-書き込み速度が低下します。 すぐではなく、ゆっくり。 2ごとに50〜60 MB /秒の速度での1日あたりの移行。



なんで? 次に、マーケティング資料にすぐに記載されていない2番目の枠が表示されます。 ZFSプールがいっぱいになると、パフォーマンスが大幅に低下します 。 空きスペースの30%以上は明らかではありませんが(グラフで見ることができます)、30から10%ではすべてが3倍遅くなり、スペースが10%未満になるとすべてが1桁遅くなります。



道徳、 場所に目を光らせてください 。 プールにスペースが残っていない場合、災害になります。ディスク/シェルフ/ライセンスで異常に停止しているプールを拡張するか、データを隣接するストレージ/ローカルディスクノードに移行する必要があります。 Nexentaは30%以上の空き領域がある場合、健康状態が良いと感じています-サーバーの計算時にこれを計画してください。



しかし、これは最も不快ではありません。 最も不愉快なのは、Hyper-Vが4TBのクォーラムディスクまたはクラスター共有ボリューム全体を失い、3つの大きなノードにデータを送信し、いずれかのノードにマウントすることが不可能な場合です。 このような魔法のような結果を達成する方法:1つのCSVボリュームにWindowsで数百のVMを配置し、それらを開始して、このボリュームにさらにいくつかのVMの移行を開始します。 最初に、すべてが活発にコピーされ、次にコピープロセスがフリーズし、CSVが低下します。 はい、クラスター全体で。 同時に、ターゲットは表示されますが、ターゲットからボリュームをマウントすることはできません。



場合によっては、マウントして戻すことができ、場合によっては、MSおよびNexentaのサポートと毎日通信した後、.vhdファイルが配置されているボリュームを以前のクラスターのノードの1つに構成なしでマウントできます。 その後、上記の速度でそれらをノードの古き良きハードドライブにコピーし、一度に1つずつ実行して、Hyper-Vペンに変換することができます。



これはHyper-V / Windows 2008 R2にのみ適用され、KVMには適用されません。 これはStarwindには適用されません-このモードではスムーズに動作します。 私たちの意見では、iSCSI Windows 2008とNexentは相互に完全に互換性がなく、大量の並列書き込み/読み取りがロック、タイムアウト、クラッシュを引き起こします。 両方の会社をサポートするのにわかりやすいことを私たちに話した人はいなかった。 フォーラムは、いくつかのパッチがいくつかのケースでWindowsを助け、LUNタイプを変更する必要があるなどと言っています。



さらに、 Nexentでのシステムアップグレードには再起動が必要です。 ストレージからアクセスしやすいクラスターがない場合は、技術的な作業を発表する準備をするか、すべてのVMを隣接するストレージに移行します。 これを念頭に置いて、Nexentaのバージョン間の変更ログは膨大です。

さらに、Nexentaディスクプールは、理想的には同じRAIDグループにアセンブルされた同じディスクで構成する必要があります。 これらのグループを引き続き展開したり、それらのRAIDタイプを変更したりすることはできません。



一般に、2か月の作業後のこれらのNexentaの印象について。 現在、Linux仮想化はNexentaとかなりスムーズかつ迅速に連携しています。Windows2012 ClusterはStarwindと連携し、ストレージプールSMB 3.0のメカニズムと速度をテストして、アクセスしやすいCSVを整理します。 はい、オフライン重複排除はそこで機能し、かなりの可能性がありますが、これは別の記事のトピックです。



一般的なパフォーマンス上の理由とIOパターンのため。 VPSタスクの場合、プール内のSASディスクは必要ありません。各1TBのSATAディスクが12個必要でした。 私たちはすべてが重複排除を使用することを計画しましたが、それはなしで判明しました。 前もって知っていれば、お金を節約できます。 そこではディスクモニタが便利で、ディスクの操作数がすぐに表示されます。 キャッシュ内のSSDはサーバークラスである必要があり、読み取りと書き込みの両方に常に深刻な負荷がかかります。



そして、数十TBのボリュームでNexentaをどのように操作しますか? 負荷がなければ、誰もが美しいです。



All Articles