本日は、Day10 で構築したvSANを構成するネットワークについて、解説したいと思います。
良く分からない用語が続き、難しいと感じた方もいらっしゃったのではないでしょうか?やってみて気づくのは、vSANの難しさの半分くらいは、vSphereネットワークの難しさ なんじゃないかなと思います。でも本来は、お金をかけて様々なハードウェアを買い、さらには設置場所まで取られるものを、全部仮想化して構築できちゃうなんて凄くないですか?慣れると凄く便利なので、基本的な概念は、このタイミングで覚えてしまいましょう。
#NUCの構成要素
今回NUCに行っていったネットワーク設定を、1枚の図にしてみました。私が事前に用意したものは、物理ルータと(物理)NUCだけなので、薄緑枠の中は、全て仮想的に構築したものとなります。
ESXiの大きな特徴といえば、この仮想スイッチを中心としたネットワーク接続となります。何故こんな仮想のスイッチなんて用意するのかというと、ESXi上で多くのVMを管理することが前提で作られているからです。
図の各リソースの説明をまとめてみました。
リソースメニュー | 図中の名称 (リソースの種類) |
説明 |
---|---|---|
仮想スイッチ | vSwitch DSwitch |
vSwitchは、ESXiの中の他のリソース同士をつなぎ合わせるものとなります。一般的な物理スイッチ同様、スイッチを中心としたN対Nのシンプルな結線となります。 DSwitchは、、上図では表現しきれないので、この後、別途説明します! |
物理NIC | vmnic0, vmnic1.. | 名前には物理と付きますが、macアドレスを管理するリソース。よって、実際に物理か仮想かは関係ありません(便宜上、仮想NICと呼び分けることはある)。例えば今回、NUC自体は一つの物理NICしか持ちませんが、nested構成にすることで、複数NIC構成を実現できました!仮想化の強みと言えます。 |
VMkernel NIC | vmk0, vmk1.. | 図の青色のリソースであり、IPアドレスを管理。仮想スイッチを介して物理NICと1対1で紐付けられます。モジュール化することで、柔軟な管理が可能となります。 |
(標準)ポートグループ | VM Network ※図中に記載なし |
vSwitchを介したネットワーク内で、どのようなメンバーが所属するか管理するために用いられます。 |
(分散仮想)ポートグループ | DSwitch-xx | DSwitchを介したネットワーク内の所属メンバーを管理。 |
なお、↑のリソースメニューは、ESXiの管理画面で上部のメニューとマッピングしています。TCP/IPスタックとファイアウォールルールは、またの機会に。。
###なんでそんなにネットワークを分けたいの?
上記のようなネットワークの仮想化の概念により、複数のネットワークを容易に制御することが可能になりました。ここで疑問に思うのが、「そんなに細かく制御しなくて良くない?」と思うかもしれません。ネットワーク分割の目的として、主に、「セキュリティ」と「パフォーマンス」の2つの観点により、エンタープライズ仕様のインフラを実現します。
####セキュリティ観点
「最小限の対象」に「最低限のアクセス許可」を与えることが目的となります。ネットワークを分割することで、「必要なターゲットのみ」に対し、「必要なサービス(Port)のみを許可」することが可能になります。
####パフォーマンス観点
ネットワークの帯域は有限です。特にVM環境では、多くのネットワークリソースを必要とします。限られた帯域のなかで、「この用途には優先的に多くの帯域を割り当てる」といった、QoS(サービス品質)の対象として、ネットワークを分割します。
###どのようにネットワークを分ける?
まず最低限、以下の2つにより、他のリソースへのアクセスを実現します。
ネットワーク名 | 概要 |
---|---|
VMネットワーク | VM間をつなげるネットワーク。Macアドレス同士をつなげる |
Managementネットワーク | MacアドレスとIPアドレスを紐付けるネットワーク |
ここから、用途によって分けていきます。以下はポピュラーな例です。 |
- バックアップ用ネットワーク
- vSAN用ネットワーク
- vMotion用ネットワーク
さらに、サービスレベルで分ける場合もあります。
- 開発用ネットワーク
- 本番用ネットワーク
分ければ分けるほど、インフラとしての品質は良くなりますが、その分運用が大変になってくるので、トレードオフとなります。
#分散スイッチ
先ほど保留にしていた、分散スイッチについて説明します。
分散スイッチは、vCenter上で複数のネットワークを一元管理することが目的となります。
まずは、この今回のNUCとvCenterを含めた構成図を見て下さい。
つまりDSwitchとは、各ESXi上に散らばったスイッチを、vCenter上では見かけ上、ネットワーク毎に一つのスイッチとして取り扱えます。Uplinkと呼ばれるポートグループによって、ネットワーク分離を実現します。また、最初のNICの図にもある通り、DSwitchには、分散先につなげるための「DSwitch-xx」と、IPアドレスと紐付けるための「DSwitch-management」の2つのポートグループを、セットで作成する必要があります。
このような構成を仮に物理的に行うとすると、vCenter側に12個のLANポートと12本のLANケーブルが必要ですよね?もっとesxiやNICの数が多くなると、乗算的に膨れ上がり、HW的な実現不可能なケースも出てきます。つまり、DSwitchが複雑なのではなく、このような構成をとること自体が複雑で、むしろ、仮想化により手軽に実現しやすくなっため、生まれた概念と言えます。
はい、本日は座学でしたね。。
今日まで、まったくKubernetesが出てきませんでしたので、明日からはいよいよTKGの話に入っていきたいと思います!