こんにちは。
今回はESXiを外部ストレージに接続するときのパスの設定についての備忘録です。
私は仕事柄、いろいろな環境におかれたESXiを見ます。
その中で気になったのが、ESXiを外部ストレージと接続する際、
パスの設定を考慮していない環境をちらほら見かけます。
パスの設定はある程度ストレージベンダー毎に推奨値を公開しており、
意外にも推奨値に設定していないケースがあります。
そのため、今回はパスの設定について少し記載してみようと思います。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
今回着目する設定値は、パス選択プラグイン (PSP) ポリシーと、IOPS値の設定です。
VMware KB でいうと以下の 2098075 が該当します。
【ラウンド ロビンの IOPS 制限をデフォルトの 1000 から 1 に調整する (2098075)】
https://kb.vmware.com/kb/2098075
ここでいうポリシーというのは、ストレージと接続されたESXiの複数のパスをどのように扱うのかという設定で、IOPS値というのは、どれだけのIOを行ったら次のパスからI/Oするのか、を定義する設定になります。
この部分の設定は各ストレージベンダーで推奨値がドキュメントで公開されています。
公開ドキュメントによると、DELL EMCのVMAX, Hewlett Packard Enterpriseの3PARでは、
パス選択プラグイン (PSP) ポリシーは、”ラウンドロビン”
IPOS値 は 1
が推奨となっていました。
”ラウンドロビンとはなにか?” ですが、ラウンド ロビン (RR) は
使用可能なすべてのパスを順次回転させ、構成された複数のパスにまたがる負荷分散を可能にするポリシーです。例えば3パス使用できる接続になっているようであれば、
3つのパスをすべて活用して分散しながらアクセスするということになります。
ポリシーについてもう少し理解を深めたい場合はVMware KB を見るのもいいかと思います。
【ESXi 5.x および ESXi/ESX 4.x のマルチパス ポリシー (2019882)】
https://kb.vmware.com/kb/2019882
”IPOS値 とはなにか?” ですが、例えばポリシーをラウンドロビンで "IOPS=1" に設定している場合は、I/O操作を1回行ったら、次のパスを使うという動作をするようになります。
IOPS=1にすることで、1回のI/O毎に別のパスに切り替わるような動作になります。
複数のパスからI/O処理が流れるため、負荷分散されるということになります。
■流れ(2パスのとき)
I/Oを1回実施→次のパスを使う→I/Oを1回実施→元のパスに戻ってIOする→繰り返し
このような動作で、負荷分散が動作しています。
VMware KB にも記載があります。
https://kb.vmware.com/kb/2098075
抜粋
==========================================================
1回の I/O の後にパスを切り替えることで、パス全体の I/O のバランス、ひいてはストレージ プロセッサのバランスが改善されます。パス全体で均等な I/O バランスが得られます。
==========================================================
これらの設定について、推奨していることをDELL EMC のVMAXのドキュメントにかかれていました。
【Using EMC VMAX Storage in VMware vSphere Environments】
→Page 86
また、Hewlett Packard Enterpriseの3PARでは以下のドキュメントに記載があります。
【HPE 3PAR StoreServ Storage and VMware vSphere 6 best practices】
http://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-3286ENW.pdf
→Page10
パスのポリシー設定ですが、デフォルトでは、PSP = MRU、IOPS = 1000 になっています。
MRUというのは Most Recently Used の略です。
最近一番使われたパスです。
IOPS=1000 という設定は1000回 I/O を行ったら次のパスへ移動するということです。
デフォルトの設定だと、片方のパスに1000回 I/O が一気に流れてくるため、
Storege側としては、1つのパスから多くのI/Oを受け取ることになります。
これらの推奨設定値から推測できることは、DELL EMCのストレージもHPEのストレージも、1つのパスから多くのI/Oを受け取ることは好まず、なるべく複数のパスから分散してI/Oを受け取りたいのであろう、という推測がたちます。
試しにHPEのStorageのアーキテクチャの資料を軽く検索してみるとこのような図がありました。
Storage が専門ではないので正直この部分で見解が合っているかは怪しいですが、Storage側としてはどのパスからI/Oを受け取ってもStorageのコントローラーが
フルメッシュでつながっているので大丈夫であるため、ラウンドロビンにしてほしい?のではないかなと思いました。
https://www.hpe.com/h20195/v2/GetPDF.aspx%2F4AA3-2542ENW.pdf
今回は忘れそうだったので、覚えている内容を書きました。
間違っていなければいいのですが…
おわり