小さなVMwarevSphereファームのNFSバッキングストアとして使用しているNexenta/ZFS NASがあります。現時点では、9x1TBのディスクがすべてミラーリングされています(最後のディスクは次のように構成されています)書き込みログデバイス)。
ディスクのパフォーマンスは、NFSを介した私のニーズにはかなり適しています。ただし、私が気づいたことの1つは、NASに直接、IOを多用する操作を実行すると、VMパフォーマンスが低下してクロールすることです。例同じzpool内の2つの異なるZFSファイルシステム間で1TBのデータをコピーすることになります。
NFSデーモンによって実行されるIO要求が、ディスク上の他のIO操作よりも優先されるようにするための良い方法はありますか?理想的な世界では、私は ' d VMを完全に別のzpoolにバックアップして、ZFSファイルシステムの負荷の影響を受けないようにします。ただし、単一のzpoolでそれを行う良い方法があるかどうか疑問に思っています。
Linuxにはioniceがあるので、それを使用している場合、大量のデータを低い値で移動する場合は、mv
コマンドの前にionice
を付けることができますIO =優先度。ただし、Solarisカーネルでは利用できないと思います。
助言がありますか?
AFAIK、ZFSにとってすべてのI/OはI/Oです。つまり、ローカル操作とNFSがZFSに要求している操作を区別しないということです。
スケジューリングクラスを試して、このすべてのデータをローカルにコピーしているユーザーランドプロセスを何らかの方法で遅くすることができます。
ところで、書き込みログデバイス専用の1TBディスクは、その特定のディスクが他のディスクよりもはるかに高速でない限り、まったく役に立ちません(たとえば、SATA 7200 vs SAS 15k)。通常は使用します)。ログ/キャッシュデバイス用のSSD、またはまったくありません。
RAMを追加します。その後。 RAMの追加を検討することをお勧めします。 SSD上のL2ARCは素晴らしいです、私はいくつか持っています。ミラーリングする必要はありません。 ZILはミラーリングする必要があります(ミラーリングする必要はありませんが、ミラーリングしていない場合はゲームオーバーであり、何らかの障害が発生します)。 RAMも追加することをお勧めします。
デレク
pv
とdd
...の醜い調合を使用しない限り、I/Oを調整する方法はありませんが、それだけの価値はありません。もう1つのポスターは、9番目のディスクがZILとして役に立たないという点で正しいです。そのためには、SSDまたはディスクなしの方が適しています。ただし、L2arcキャッシュには役立つ可能性があります。
参照: http://opensolaris.org/jive/thread.jspa?messageID=493112