はじめに
Nutanixのネットワーク要件の1つに、「10Gbps以上のNICが必要」と書かれています。一方で、同じHCIであるVMware vSANのネットワーク要件にも、「10GbpsのNICが必要」と書かれています。どちらも「10Gbps NICがあれば十分」という考え方に見えますが、「10Gbpsをどんな考え方で利用するか?」といった設計思想が異なっているようです。そこで今回はそれらの比較と整理をしてみたいと思います。
※厳密にはvSANのドキュメントには、「共有の10Gbps NICか、専用の1Gbps NICが必要」と書かれていますが、本番環境において1Gbps NICを利用する場面は少ない気がするので、今回は割愛しています。
なぜ10Gbpsなのか?
そもそもなぜ最低が「10Gbps」なのでしょうか?これは従来の3-Tier構成に由来しているようです。
従来の3-Tier構成では、サーバーとストレージ間をつなぐために、「ファイバーチャネル」を利用したSAN(ストレージ専用ネットワーク)を構成していました。そしてこのファイバーチャネルは、8Gbps / 16Gbps / 32Gbpsといった大きな帯域をもっていました。
その後HCIが登場し、LAN上でサーバーとストレージが通信できるようになりましたが、LANにはストレージ用の通信だけでなく、通常のサービス用通信も流れます。そのため、1Gbpsでは到底足りず、ネットワークがボトルネックになる可能性があります。また、近年のストレージ(ディスク)性能に対して、1Gbpsという帯域は非常に細く、十分なスループットが出せない可能性もあります。
これらの理由から、「最低でも10Gbps必要」というのが共通認識になっているようです。
vSANの考え方:ネットワーク利用を前提とする設計
Nutanixには「データローカリティ」という考えがありますが、vSANにはありません。vSANでは、データはクラスタ全体に分散配置されます。
- データは複数ノードに分散して保存。
- データ読み取りは複数ノードにまたがって実施。(ラウンドロビン)
- ユーザーVMからはデータの場所を意識させない。
これらの内容から、データがどこにあっても同じように読み書きできる状態を目指していると思われます。ネットワーク越しのアクセスを前提として性能が成立する仕組みですね。
つまり、10Gbps前提であれば、データの保管場所(ローカル・リモート)の差を意識させない設計です。
Nutanixの考え方:ネットワーク利用は最小化する設計
一方でNutanixには「データローカリティ」という考えがあります。この考えで強調されている点として以下があります。
- データをリモート保存するとネットワーク遅延の影響を受ける。
- 帯域は無制限ではない。
- サーバーの近くにデータを置くことで、エクスペリエンスを大幅に改善。
- 読み取りは可能な限りローカルノード上で実施。
これらの内容から、不要なネットワークトラフィックを抑制することが意識されています。
つまり、vSANとは対照的に、ネットワークをコストとして捉え、ストレージトラフィック量を可能な限り削減することで性能を安定させる考え方です。
おわりに
今回はネットワーク要件の1つである「10Gbps」に着目して、NutanixとvSANの設計思想の調査や比較を行ってみました。要件としては同じなのに、その裏側の考え方は対照的だということが分かり、調べていて面白かったです。実際に設計する際もただの要件として見るだけでなく、その意図や設計思想まで考えることで、「過剰なスペックの機器を入れない」や「帯域以外でボトルネックを作らない」など、より適切な設計につながると感じました。