RAID-0で2つの300GBドライブを備えたiSCSI-Targetを実行している1UUbuntuサーバーでの貧弱な人SANセットアップです。次に、仮想マシンのブロックレベルのストレージに使用しています。ハイパーバイザーは専用のSANおよびインターフェイス上のギガビットを介してVLANに接続されています。
仮想マシンのセットアップは1つだけで、いくつかのベンチマークを実行しています。仮想マシンからhdparm -t /dev/sda1
を実行すると、仮想マシンからSANまで75MB /秒の「ok」パフォーマンスが得られます。次に、基本的に./configure
とmake
を使用してパッケージをコンパイルします。物事は順調に始まりますが、突然SANの負荷平均は7+に増加し、クロールまで遅くなります。SAN =そしてトップを実行し、負荷が7+であることを確認しますが、CPU使用率は基本的に何もありません。また、サーバーには1.5GBのメモリがあります。仮想マシンでコンパイルを強制終了すると、SANはサブ1の数字に戻ります。
世界でこれを引き起こしているのは何ですか?どうすればこれをさらに診断できますか?
これは、高負荷時のSANからの2つのスクリーンショットです。
1> Output of iotop on the SAN:
2> Output of top on the SAN:
ターゲット(詳細は実装によって異なります-何を使用していますか、tgt?)とディスクで書き込みキャッシュを有効にすると、パフォーマンスが大幅に向上するはずです。
hdparm -W 1 /dev/sda
hdparm -W 1 /dev/sdb
ただし、代償があります。これは、停電やSANのシステムハングの場合に、データの整合性を危険にさらします。これは、永続的にディスクに書き込まれたと考えられるデータが揮発性にのみ存在するためです。 DRAM。このリスクを軽減するには、BBWC(バッテリーでバックアップされた書き込みキャッシュ)を備えたコントローラーを使用する必要があります。この場合、データはしばらくの間(通常は1〜2日)停電に耐えることができます。
ESXiの主な「問題」は、ディスクを常に同期()していることです。メタデータをVMFSに書き込む必要がある場合(ある場合)、さらに悪化します。ヴイエムウェアのコミュニティフォーラムは、書き込みキャッシュのないコントローラーを使用しているときはいつでも、「ディスクが遅い」という投稿でいっぱいです。
仮想マシンでiometerを実行します。
たった2つの7.2krpmドライブで、ランダムアクセスはあなたを傷つけます。それらから取得できるIOPSは非常に多くなります。
Iometerで2つのシナリオを実行してみてください。
1)シーケンシャル読み取り/書き込み-これにより、ニースで太い数値が得られるはずです。 2)ドライブへのランダムアクセス-ここでは、傷ついた土地にいる必要があります。
仮想マシンのキャッシュから強制的にプッシュされるのに十分な大きさのテスト用にファイルをセットアップします。
私はいくつかのことを試すことをお勧めします:
dd if=/dev/zero bs=1M | nc ...
)、負荷が同じように急上昇するかどうかを確認します(負荷とCPU%sの両方を比較します)。おそらく、1つの接続のみでテストを実行し、それらのテストのうち約8つを同時に実行する必要があります。そして、両方向でデータを送受信してみてください。また、最近、いくつかの iSCSIパフォーマンスチューニングガイドライン に遭遇しました。これらの推奨事項では、発生している特定の問題に対処できない場合でも、役立つことがあります。