VMware 新卒 SE 社員が贈る vSphere のキソ!、第2回目は、内部の仮想マシン同士や外部の世界とやりとりを担う「ネットワーク」、そして仮想化したからこそ成せる様々な機能を実現するために欠かせない「ストレージ」、この2つについて解説致します!
§1. ネットワーク編 ~仮想マシンはなぜネットワークに接続できるのか~
第1回の記事では、仮想マシンは1台の物理サーバ上で複数台動作させる事ができるとお伝えしました。一方で物理サーバに搭載する事のできる NIC の枚数は限られていますよね。では、どうやって仮想マシンはネットワーク接続を行っているのでしょうか?
§1.1. 仮想マシンのネットワーク概要 ~仮想化されたネットワーク機器~
仮想マシンは、 CPU 、メモリ、ストレージ等が割当てられており、仮想マシンに入っているOS(= ゲスト OS) はあたかも物理サーバ上で動作していると思い込んでいます。ネットワークの接続を行うため、 NIC も他のハードウェアと同様に仮想的なハードウェアとして仮想マシンに搭載する事ができます。この仮想 NIC 「 vNIC 」と呼びます。ゲスト OS は本物の NIC だと思い、 このvNIC に IP アドレスを割り当て、通信を行います。
次は、 ESXi サーバが外部や仮想マシン同士の通信を行うために必要な vSphere の機能について説明を進めます。
vNIC は仮想的な NIC なため、仮想マシンが vNIC から送信しようとする信号を物理ネットワークへ送るためには、 ESXi サーバに搭載された物理 NIC との紐付けが必要になります。しかし前述の通り、1つの vNIC につき1つの物理 NIC を割り当てとなると、 ESXi サーバには膨大な NIC が必要になってしまいます。そこで、 vSphere がどの様なアプローチを取っているかというと、 ESXi サーバの内部で仮想的なスイッチ「 vSwitch = 仮想スイッチ 」を作り、 ネットワークコントロールを行っています(図1)。想像してみてください。まさに物理サーバにケーブルを接続して、スイッチに接続する、という行為をESXiサーバ内部でも実施しているイメージです。
図1. 仮想マシンの物理ネットワークへの接続
図 1 の物理 NIC と物理スイッチの2つの「物理」と書かれた機器が実際に「目に見える」機器で、「仮想」と書かれた機器は全て ESXi サーバ内部で実現される「目に見えない」機器です。つまり ESXi サーバ内部では物理ネットワークと同じように仮想的にネットワークの構築に必要な機器を作り上げ、仮想マシンがネットワークへ接続できるようにしています。
§1.2. vSwitch ~物理と仮想を繋ぐ装置~
vNIC と vSwitch 、2つの機能についてご紹介させて頂きました。 vSwitch には、vSphere ならではの考え方がありますので補足させていただきますね。 まず、図2 をご覧ください。
図2. vSwitch のポートの種類(上:概念図、下:実際の管理画面)
vSwitch には3種類のポートが存在します。まず、物理 NIC と対応づけられる「アップリンクポート」、 ESXi サーバの管理や vMotion 、vSphere HA 、vSphere FT など vSphere の機能を使用するための 「VMkernel ポート」、そして最後に仮想マシンの vNIC を接続するための「仮想マシンポートグループ」です。
ここで、仮想マシンの接続用ポートだけ、「ポートグループ」とされていることに注目してください。 vSwitch は、各ポートのポート番号で接続を管理するのではなく、ひとまとまりのポート群、「ポートグループ」でポートを管理しています。このポートグループは L2 レイヤのネットワークを形成しており、VLAN ID もポートグループ毎に割当てることができます。
図2 の下の画像は vSphere Web Client からみた vSwitch の管理画面のキャプチャです。 この例では ESXi サーバ内のネットワーク(左側)はポートグループ毎にわかれて vSwitch に接続され、アップリンクポート(右側)には物理 NIC が割り当てられていることが解ります。物理 NIC は「 vmnic0, vmnic1, vmnic2, vmnic3,… 」など、「 vmnic 」というラベルを付けて ESXi サーバが管理していることが確認できます。ここでアップリンクポートに vmnic が2つある理由は、物理 NIC の冗長性を確保するためです。 vSwitch に複数の物理 NIC を割り当てることによって、冗長性を確保する設定を行う事が簡単にできます。
§1.3. ネットワーク編、まとめ
ここでは、vmnic、 vNIC、 vSwitch、 vSwitch 内のポートの概念をご紹介しました。vSwitch は仮想環境のネットワーク接続に欠かせない概念です。「 vmnic 」と「 vNIC 」は一文字違いで物理 NIC を指しているか仮想 NIC を指しているかが違う事などが理解できたのではないでしょうか。
今回説明した vSwitch は 「 標準 vSwitch 」と呼ばれ、 ESXi 内部に複数作成することが可能です。 ESXi サーバの台数が増えてしまうと仮想スイッチの管理も複雑になってきてしまうことから、複数の ESXi サーバにまたがって仮想スイッチを一元管理する事ができる 「 vSphere Distributed Switch 」という機能も存在します。これについては今後の連載でご紹介しますね。
§2. ストレージ編 ~実際の作業からキーワードを知る~
vSphere には、仮想マシンが動的に他の ESXi サーバに移行する「 vMotion 」や、 ESXi サーバが停止した際に、他の ESXi サーバから仮想マシンを再起動させる「 vSphere HA 」、2つの ESXi サーバで同一の仮想マシンを動作させてダウンタイムなしの可用性を実現する「 vSphere FT 」等、代表的な機能がありますが、この機能の実現にはストレージが大きく関わっています。ここではまず基本に戻って、 vSphere 環境でストレージを使用するまでの手順を追いながら用語と概念を押さえていきましょう。
図3. vSphere の構成とストレージの関係
§2.1. LUN, ボリューム ~ESXiとストレージの接続~
ESXi サーバが新しいストレージを使用するためにはまず、 ESXi サーバがストレージを認識する必要があります。設定を行うと、 ESXi サーバは LUN やボリュームをを検出します。次に ESXi サーバは、検出した LUN を仮想マシンファイル等を収容するための「データストア」として登録します。
図4. ストレージの検出
図4 は iSCSI ソフトウェアアダプタを確認した際に ESXi サーバに接続された iSCSI ストレージを確認している画面です。画面中央下段の「デバイス」タブにて検出した LUN が確認できます。ここでは45 GB の LUN が見えています。
図5. データストアの追加( ストレージの選択 )
次に検出した LUN をvSphereが管理するためにデータストアとして登録します。追加する画面では、図5 の様に ESXi サーバに接続されているストレージを参照する事ができ、この中からストレージを選択してデータストアとして登録します。
また、データストアに追加する際、FCやiSCSIのブロックアクセスストレージであれば 「 VMFS 」というファイルシステム でフォーマットします。(図6)。
図6. データストアの追加( VMFS )
VMFS は、「 Virtual Machine File System 」の略で、仮想マシンを収容するために VMware が開発した仮想環境に最適なファイルシステムです。 LUN、ボリュームを設定されたストレージは VMFS にフォーマットされることでデータストアとして ESXi サーバ 内で使用する事ができるようになります(ストレージのブロックを直接操作する事のできる RDM ( Raw Device Mapping )という方式も存在しますが、簡単のためここでは割愛します)。
VMFS について詳しい内容が知りたい方は、2014年1月20日の記事をご覧ください。
登録を終えると、データストアが図7 の様に追加されます。 vSphere からデータストア = 仮想マシン等がおかれる倉庫 として使用されます。
図7. データストア一覧
§2.2. 仮想ディスク( vmdk ) ~仮想マシンのディスクもファイル~
データストアとして登録が終了すると、いよいよ仮想マシンのファイルを ESXi サーバから収容する事ができるようになります。第1回目の記事で、仮想マシンの実体は複数のファイルであるとお伝えいたしましたが、ここではそのファイルの中のひとつ、「仮想ディスク = vmdk」について説明します。
「仮想マシンの実体はファイルである」とお伝えいたしましたが、仮想ディスクは「 .vmdk 」という拡張子のファイルとして存在し、仮想マシンにおいてローカルディスクの役割を果たします。この仮想ディスクは Windows であれば 例えばCドライブやDドライブとして認識され、このローカルディスクにファイルを書き込もうとしますが、実際は ESXi サーバが書き込み命令を検知して仮想ディスクファイルに内容を書き込んでいます。
図8. 仮想マシンのディスク容量の設定
図9. データストアから見た仮想ディスクファイル
図8 の様に、新しい仮想マシン「 kiso 」を、15 GB のディスクを搭載すると設定して作成すると、データストアには約 15 GB の仮想ディスクファイル 「 kiso.vmdk 」が作成されている事が解ります(図9)。
§2.3. ストレージ編、まとめ
vSphere におけるストレージをこれから深く学ぶにあたって必要な語句を、 ESXi サーバがストレージを認識して仮想マシンを作成するまでの手順を追って説明いたしました。どのレイヤでどのような語句が使用されているか解っていただけたのではないでしょうか。
§3. おわりに
vSphere 環境におけるネットワークやストレージは、見えない分用語の理解とイメージをつかむ事がとても大事になってきます。今回のご説明で vSphere 環境におけるネットワークやストレージの理解が少しでも深まれば幸いです。
次回は川崎君による「 vSphere HA / vMotion / vSphere FT 」の説明です。楽しみにしていてくださいね!!
VMware SE 椨木正博
新卒 SE 社員が贈る vSphereのキソ!
第1回 vSphereを俯瞰する
第2回 仮想環境におけるネットワークとストレージ
第3回 vMotionとvSphere HA/vSphere FTの違いとは?
第4回 仮想マシンの配置管理はDRSにお任せ!
第5回 様々な仮想マシンが混在&混雑しても大丈夫!?ネットワーク と ストレージの帯域を維持する仕組み
第6回 vSphere でココまでできる!データ保護
第7回 仮想環境となが〜くお付き合いしていく
第8回 ( 追加編 ) まだまだあった!ストレージ関連機能