えっくすじゃ〜に〜「Nutanixはじめました」

こちらは、商用版Nutanixについて調べたことや感じたことをメモったり長々とつぶやいたブログです。あくまでも個人の見解であり、正確性を保証するものではございません。参考程度にご覧ください。

Nutanixクラスター追加前のAHVホストにブリッジを追加する

本記事では、Nutanix AHV環境で仮想スイッチを追加して運用している既存クラスターへのノード追加方法について紹介します。

f:id:hmlab:20210924175112p:plain

AHV環境の既存クラスターにExpand Clusterでノードを追加しようとしたら、"Failure in  pre expand-cluster tests. Errors: Host network br1 not present on node <CVM IPアドレス>"というエラーが出ました。

 

原因は、既存環境と追加したいノードとで、AHVホストのネットワーク構成が異なるためのようです。

-->追記

本事象が発生するのには、条件があるようです。

私は追加対象ノードを事前にFoundationによって既存クラスターとAHVバージョンを合わせてイメージングしたところ、このような事象が発生しました。
しかし、PrismのExpand Cluster操作にて拡張する流れでノードのイメージングをしたケースでは本事象が発生しなかったという話も聞きました。ご参考まで。

<実行環境>
AOS:5.20.1.1
AHV:20201105.2096

 

既存クラスターと追加ノードにおけるネットワーク構成の違いを図示してみました。

f:id:hmlab:20210927225210p:plain

既存クラスターでは、管理/ストレージ系とその他のネットワークを分離するためにブリッジ「br1」を追加していますが、追加ノードはデフォルト状態ですので br1 は未作成です。この不一致により、ノード追加がエラーとなりました。

※vs0,vs1といった仮想スイッチについては後述しています。

以前まではCVMからmanage_ovsコマンドでブリッジ情報の編集が行えましたが、AOS 5.15から仕様が変わり、クラスター参加後でないとmanage_ovsコマンドが実行できなくなりました。

manage_ovs tool shows error "Failed to send RPC request. Retrying." when trying to change bridge configuration on AHV host
https://portal.nutanix.com/kb/9383

そのため、今回は追加ノードとなるAHVホストから直接Open vSwitchを操作してbr1を作成してみます。

  1. AHVホストにログインし、現在の状態を確認します。
    AHV# ovs-vsctl show
    ネットワークの設定変更作業のため、IPMI リモートコンソールまたはコンソールから行います。

    f:id:hmlab:20210925091249p:plain

    br0のボンディングポートbr0-upにeth0,eth1,eth2,eth3が所属しているのがわかります。
    今回は、br0-upからeth0とeth1を取り外し、新たなブリッジvs1およびボンディングポートvs1-upを作成します。
  2. ボンドポートbr0-upから、インタフェースeth0、eth1を削除します。
    AHV# ovs-vsctl del-bond-iface br0-up eth0
    AHV# ovs-vsctl del-bond-iface br0-up eth1
  3. ブリッジbr1を新規作成します。
    AHV# ovs-vsctl add-br br1

    f:id:hmlab:20210925090923p:plain

  4. 作成したbr1にボンドポートbr1-upを追加します。
    AHV# ovs-vsctl add-bond br1 br1-up eth0 eth1

    f:id:hmlab:20210925090840p:plain

  5. ブリッジの作成およびボンドポートが作成されたことを確認します。
    AHV# ovs-vsctl show

    f:id:hmlab:20210925091200p:plain

これにより、準備が完了しました。

Expand Clusterを再実行したところ、無事クラスター拡張に成功しました。

f:id:hmlab:20210925091653p:plain

しかし、ここでまた新たな問題が。。

"Inconsistent Virtual Switch State Detected"というアラートが発生しています。

f:id:hmlab:20210927225451p:plain

これは、追加したノードに作成したブリッジ br1 がクラスター内の仮想スイッチ vs1 に追加されておらず、不整合が起きてしまっているためです。*1 

その状態を図示したものが以下のイメージです。

f:id:hmlab:20210927222521p:plain

CVMが所属していた br0 については、既存クラスターの vs1 に自動的に登録してくれますが、br1 については vs1 には自動追加されません。

これは、CVM関連以外のブリッジと仮想スイッチの紐づけは機械的に判断できるものではないため、管理者側で指定する必要があります。

 

ここからは新機能の仮想ネットワーク管理機能を使い、Prism GUIから vs1 に対して追加ノードの br1 を参加させます。

  1. [設定]-[ネットワーク構成]-[Virtual Switch]
    vs1 の行横にある鉛筆マークをクリックします。

    f:id:hmlab:20210927231107p:plain

  2. Nextをクリックします。
    f:id:hmlab:20210927231127p:plain
  3. vs1 に参加させるネットワークポート選択します。
    既存クラスターおよび追加ノードのホスト分のすべてを選択します。
    Saveをクリックします。
    これにより、仮想スイッチ構成情報を変更するためにすべてのホストを順番にローリングアップデートされます。

    f:id:hmlab:20210927231245p:plain

  4. 追加ノードのブリッジ br1 が、クラスターの仮想スイッチ vs1 に参加していることがわかります。

    f:id:hmlab:20210927231327p:plain

    CVMからaCLIコマンドを実行することでも確認が可能です。
    仮想スイッチ構成の確認
    CVM$ acli net.get_virtual_switch vs1

仮想スイッチを追加している既存クラスターへのノード追加方法は以上となります。

 

*1:仮想スイッチはAOS 5.19で実装された機能です。クラスター内のAHVホストを横断してのネットワーク管理が可能になります。