Nexus 1000V の vTracker はけっこう便利なのです

VMware vSphereによる仮想化環境に対してNexus 1000Vを導入した環境では、サーバ管理者はネットワークに関して以下の様な作業のみを行えばよくなります。

  • 仮想マシンの仮想NICに対して正しいポートグループを割り当てる
  • ESXホスト追加時にNexus 1000VのVEM(Virtual Ethernet Module)をパッチや他のモジュールなどの適用と同じようにVIBを使って導入する
  • ESXホストのどの物理NIC(vmnic)をNexus 1000V用として使用するか管理する

これらの作業は、物理サーバの管理における「サーバのネットワークを正しいスイッチポートに接続する」であったり「ネットワーク接続に必要なデバイスドライバを導入する」といったことと同じような範疇のサーバ管理者にとっても慣れた作業と位置付けられるかと思いますし、自身の作業範囲が明確になるメリットもあるかと思います。

対して、Nexus 1000Vを使った分散仮想スイッチにおいて「vSphere側からはポートグループとして認識されている論理的なグルーピング」は、Nexus 1000VをVSM(Virtual Supervisor Module)を通じてNX-OSが実行されたスイッチとして管理するネットワーク管理者側からは、「パラメータ設定を事前に定義したポートプロファイル」として扱われています。ポートプロファイルには、VLANやACL、セキュリティ、QoSなどが事前にネットワーク管理者によって定義されているため、サーバ管理者はそれらのパラメータ値について都度自身で構成したり確認したりすることなく、ポートグループ=ポートプロファイルを選択するだけで仮想マシンのネットワークを適切に構成することを確実に行うことができますし、ネットワーク管理者としても新しいVMを接続する度毎にネットワークの設定を行うような必要はなくなります。

このように、Nexus 1000Vを導入することによってvSphereを用いた仮想化環境であってもサーバ管理者とネットワーク管理者の作業範疇を明確化することができるわけですが、そうはいっても構成確認やトラブルシューティングなどが必要となった場合にはお互いの範囲について、相互に確認する必要が出てくる場合もあるかと思います。特にネットワーク管理者側からは、サーバ管理者やゲストOSの管理者などから「つながらない」や「なんかパフォーマンスが悪い」などというリクエストが来た場合に、サーバ側が正しく構成されているのかどうかや、どの仮想マシンが影響を受けているのか、などについて確認が必要となる場面がでてくるでしょう。そのために使用できる仕組みとして、Nexus 1000Vには vTracker という機能が用意されています。ただし、この機能は4.2(1)SV2(1.1)から実装された新機能ですので、それよりも古いバージョンのNexus 1000Vでは使用できませんのでご注意ください。なお、vTrackerは無償で使用頂けるEssentialエディションのNexus 1000Vでもご利用いただけます。

vTrackerは仮想マシンに関する情報をNexus 1000VのVSMからvCenterに対して確認した結果をNX-OSのCLIに返すコマンドセットです。vTrackerによって、ネットワーク管理者は以下のような情報をCLIを通して確認することができます。

  • 上流接続構成の確認
  • 物理NIC確認
  • VLAN構成確認
  • 仮想NIC情報
  • 仮想マシン情報
  • vMotion情報

各コマンドではどのような情報を参照することができるのか、以下で見ていきましょう。
…と、その前に、vTrackerは1つのFeatureとして実装されており、デフォルトでは無効となっておりますので使用する場合は有効化が必要です。

って感じでサクッと有効化してください。すぐに機能は使用可能になります。ステータス確認はshow featureで。

(この例では、初期状態を示しているので、vTrackerがdisableになっていますが…)

  • 上流接続構成の確認(show vtracker upstream-view)


この機能ではCDPが使用されていますので、上位スイッチ側でもCDPが有効となっている必要があります。
Device-NameやDevice-IPでは、VEMが接続している上位スイッチ側についての情報(ホスト名やIPアドレス)を確認することができます。
Device-Portは上位スイッチ側の接続先ポート、Local-Portは上位スイッチへ接続しているNexus 1000V側のポートです。Local-Port横のAdapterとStatusで、ESXホストとしてそのインターフェイスがどのvmnicXで、リンクアップしているのかどうかなども一覧で確認することができます。Server-NameはESXホスト名です(ここではIPアドレスになっていますが…)。
PC-TypeはPortChannelのタイプです。UplinkポートでPortChennelを構成していない場合はn/aとなります。MacPinnはMACアドレスベースでPinningされていることを意味しており、右側のVeth-interfaces欄にある番号のVethポートに接続している仮想NICからの通信はこのインターフェイスを使って通信が行われています(上位スイッチ側がvPCやVSSなどに対応していない場合に使用します)。対して、Defaultとなっている場合は通常のPortChennelとなりますので、右側のVeth-interfacesも重複して両方のインターフェイスを使って通信が行われていることを意味します。

  • 物理NICの確認(show vtacker module-view pnic)


Modの3や4といった番号は、Nexus 1000Vにおけるモジュール番号を示します。スイッチモジュールであるVEMはつまりはESXホスト毎の仮想スイッチモジュールを意味していますので、つまりはESXホストを識別していることになります。
EthIfは、Nexus 1000Vにおいて物理NICに割り当てられたインターフェイス番号です。IOSやNX-OSと同じように、EthX/X形式となります。
AdapterはEthIfに対応してESXホスト側で識別に使用されているvmnic番号です。
特に価値があるのはDescriptionにある使用されているNIC情報、DriverにあるESXホストとしてこのNICのために使用しているドライバ情報なども確認できるところでしょう。わざわざサーバ管理者(もしくはvCenterサーバ)に確認しなくても、Nexus 1000V側からさっと確認することができます。

  • VLAN構成の確認(show vtracker vlan-view)


どのVLANにどのVethインターフェイスが接続されており、それらはどの仮想マシンのどの仮想NICで、どのVEM経由なのか、などの情報を確認することができます。仮想マシンからの通信がうまくいかない、といったトラブルの場合などにこれはとても便利な情報といえます。Private VLANを使用している場合は、それらの構成も確認できるところはとても便利です。

分散仮想スイッチにはとても多くのVLANが構成されたり、仮想マシンが接続されたりしますので、情報を出力する範囲を絞り込んで表示することももちろんできます。

  • 仮想NIC情報(show vtracker vm-view vnic)


より詳細に、特定のVMについてのネットワーク情報を取得したい場合に使用すると便利なコマンドです。
仮想マシンと分散仮想スイッチとしての接続ポート番号、Nexus 1000VとしてのVeth番号、仮想マシン側で使用されているvNIC種別、MACアドレスやアダプタ番号、接続先VLANやUplinkポートの紐付け先などの情報を一元的に確認することができます。


仮想マシン名、ゲストOS種別、電源ステータス、UUID、CPUやメモリなどのリソース割り当て状況と使用率、VMware Toolsの導入状況、配置先データストア、稼働時間など、かなり詳細な仮想マシンについての情報を取得することができます。ネットワーク関連の切り分けを行うためであれば、十分な情報といえるかと思います。

  • vMotion情報(show vtracker vmotion-view)

どの仮想マシンが、どのVEMからどのVEM(つまりはどのESXからどのESX)に対して、いつからいつまでの間にvMotionが行われたのか、確認することができます。
現在実行されているvMotionステータスだけを確認したければ、nowとして実行します。

過去20回分のvMotionのステータスを確認したければ、last 20として実行します。

いやいやvTracker、どのコマンドもちょっとした機能ですが使いこなせばけっこう便利ですね。
さて、今週はInterop Weekです。