NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix CE の Open vSwitch に追加作成した Bridge に、ネットワークを追加してみる。

Nutanix CE の Open vSwitch に追加作成した Bridge(br1)にネットワークを作成してみました。Prism の Web UI からだと設定できないので、CVM にログインして acli を使用します。

  • Acropolis のネットワーク作成には、acli を使用します。
  • CE のバージョンは ce-2018.01.31-stable です。
  • すでに Bridge は作成済みです。br0 と br1 があります。

Bridge は下記のように作成してあります。

ネットワークの作成(br0)

まず標準的な、br0 に接続するネットワークを作成します。br0 はデフォルトで作成される Bridge でPrism の Web UI から作成したネットワークはこちらに接続されます。
Prism で「Network Configuration」を開いて・・・

f:id:gowatana:20180321161956p:plain

「User VM Interfaces」→「Create Netowrk」をクリック。

f:id:gowatana:20180321162006p:plain

この画面で NAME と VLAN ID を入力して「Save」します。ここで作成されたネットワークは、br0 への接続になります。

f:id:gowatana:20180321162019p:plain

acli では下記のように見えます。

CVM$ acli net.get nw-vlan-1011
nw-vlan-1011 {
  identifier: 1011
  logical_timestamp: 1
  name: "nw-vlan-1011"
  type: "kBridged"
  uuid: "13bf48bc-a97e-4d79-a738-cae8fca535cf"
}
CVM$

ネットワークの作成(br1)

acli で、追加 Bridge である br1 にネットワークを作成します。これは Prism から作成できません。
作成します。
CVM$ acli net.create nw-vlan-1011-br1 vlan=1011 vswitch_name=br1
作成されました。「vswitch_name: "br1"」となっています。
CVM$ acli net.get nw-vlan-1011-br1
nw-vlan-1011-br1 {
  identifier: 1011
  logical_timestamp: 1
  name: "nw-vlan-1011-br1"
  type: "kBridged"
  uuid: "ee32a361-e52a-4f99-834d-041e27394811"
  vswitch_name: "br1"
}
CVM$

VM 作成(br0 の nw-vlan-1011 に接続)

VM を用意して、br0 のネットワークに接続してみます。

CVM$ acli vm.create vm01 num_vcpus=1 memory=512M
vm01: pending
vm01: complete
CVM$ acli vm.update vm01 extra_flags=machine_type=pc-i440fx-rhel7.2.0
vm01: pending
vm01: complete
CVM$ acli vm.disk_create vm01 clone_from_image=CentOS-7-x86_64-GenericCloud-1802
DiskCreate: pending
DiskCreate: complete
CVM$ acli vm.nic_create vm01 network=nw-vlan-1011
NicCreate: pending
NicCreate: complete

VM の起動

acli では、AHV ホストは名前解決されているようなので、対象ホストの指定は下記で見えるホスト名で指定します。

CVM$ acli host.list
Hypervisor address      Host UUID                             Schedulable  Hypervisor Type  Hypervisor Name
ntnx-n11-ahv.go-lab.jp  4eab5074-1b2b-4ae7-97f1-222221e61b8c  True         kKvm             AHV
ntnx-n12-ahv.go-lab.jp  96a615fc-67b4-4ef8-a6b3-b5501ede2dae  True         kKvm             AHV
ntnx-n13-ahv.go-lab.jp  e92d5654-c8c7-4eb6-a90f-7cc58189a96d  True         kKvm             AHV
ntnx-n14-ahv.go-lab.jp  5f255651-7a46-46b2-9a38-910c5ba166d6  True         kKvm             AHV
CVM$

VM を起動します。

CVM$ acli vm.on vm01 host=ntnx-n11-ahv.go-lab.jp
vm01: pending
vm01: complete

今回は、わかりやすく User VM(CVM ではない VM。UVM)が1台だけの状態にしています。

CVM$ acli vm.list
VM name  VM UUID
vm01     460c2689-2f01-4424-b70b-831942bdcfe3
CVM$

VM の vNIC(tapX)は、br0(に関連する br0.local)に接続されました。ネットワークでは VLAN ID 1011 を指定していたので、tag: 1011 が付与されています。AOS 5.5 あたりからマイクロセグメンテーション機能の追加の影響か、UVM は br0 ではなく br0.local という Bridge に接続されます。

CVM$ hostssh ovs-vsctl show | egrep '^=|Bridge "br."|Bridge "br..local"|tap|tag'
============= 192.168.1.184 ============
    Bridge "br1"
    Bridge "br0.local"
    Bridge "br0"
    Bridge "br1.local"
============= 192.168.1.183 ============
    Bridge "br0.local"
    Bridge "br0"
    Bridge "br1"
    Bridge "br1.local"
============= 192.168.1.182 ============
    Bridge "br1"
    Bridge "br0.local"
    Bridge "br0"
    Bridge "br1.local"
============= 192.168.1.181 ============
    Bridge "br0.local"
        Port "tap0"
            tag: 1011
            Interface "tap0"
    Bridge "br1.local"
    Bridge "br0"
    Bridge "br1"
CVM$

ライブ マイグレーション(br0)

別のホスト(ntnx-n12-ahv.go-lab.jp)にライブマイグレーションします。

CVM$ acli vm.migrate vm01 live=true host=ntnx-n12-ahv.go-lab.jp
vm01: pending
vm01: complete

移動されました。移動先の AHV ホスト(ntnx-n12-ahv.go-lab.jp の IP アドレスは 192.168.1.182)でも、vNIC は br0.local に接続されています。

CVM$ hostssh ovs-vsctl show | egrep '^=|Bridge "br."|Bridge "br..local"|tap|tag'
============= 192.168.1.184 ============
    Bridge "br1"
    Bridge "br0.local"
    Bridge "br0"
    Bridge "br1.local"
============= 192.168.1.183 ============
    Bridge "br0.local"
    Bridge "br0"
    Bridge "br1"
    Bridge "br1.local"
============= 192.168.1.182 ============
    Bridge "br1"
    Bridge "br0.local"
        Port "tap0"
            tag: 1011
            Interface "tap0"
    Bridge "br0"
    Bridge "br1.local"
============= 192.168.1.181 ============
    Bridge "br0.local"
        Port "tap0"
            tag: 1011
            Interface "tap0"
                error: "could not open network device tap0 (No such device)"
    Bridge "br1.local"
    Bridge "br0"
    Bridge "br1"
CVM$

すこし待つと、移動元の tap が削除されます。

CVM$ hostssh ovs-vsctl show | egrep '^=|Bridge "br."|Bridge "br..local"|tap|tag'
============= 192.168.1.184 ============
    Bridge "br1"
    Bridge "br0.local"
    Bridge "br0"
    Bridge "br1.local"
============= 192.168.1.183 ============
    Bridge "br0.local"
    Bridge "br0"
    Bridge "br1"
    Bridge "br1.local"
============= 192.168.1.182 ============
    Bridge "br1"
    Bridge "br0.local"
        Port "tap0"
            tag: 1011
            Interface "tap0"
    Bridge "br0"
    Bridge "br1.local"
============= 192.168.1.181 ============
    Bridge "br0.local"
    Bridge "br1.local"
    Bridge "br0"
    Bridge "br1"
CVM$

VM の接続先ネットワーク変更(br1 の nw-vlan-1011-br1)

VM をいちど停止して、br1 のネットワークに接続してみます。

VM を停止します。

CVM$ acli vm.off vm01
vm01: pending
vm01: complete

ネットワークを変更します。

CVM$ acli vm.nic_update vm01 50:6b:8d:0b:99:4c network=nw-vlan-1011-br1
NicUpdate: pending
NicUpdate: complete
CVM$ acli vm.nic_list vm01
Mac Address        IP Address  Network UUID                          Network Name
50:6b:8d:0b:99:4c              ee32a361-e52a-4f99-834d-041e27394811  nw-vlan-1011-br1
CVM$

VM を起動します。

CVM$ acli vm.on vm01 host=ntnx-n11-ahv.go-lab.jp
vm01: pending
vm01: complete

vNIC は、br1.local(br1 に関連する Bridge)に接続されました。

CVM$ hostssh ovs-vsctl show | egrep '^=|Bridge "br."|Bridge "br..local"|tap|tag'
============= 192.168.1.184 ============
    Bridge "br1"
    Bridge "br0.local"
    Bridge "br0"
    Bridge "br1.local"
============= 192.168.1.183 ============
    Bridge "br0.local"
    Bridge "br0"
    Bridge "br1"
    Bridge "br1.local"
============= 192.168.1.182 ============
    Bridge "br1"
    Bridge "br0.local"
    Bridge "br0"
    Bridge "br1.local"
============= 192.168.1.181 ============
    Bridge "br0.local"
    Bridge "br1.local"
        Port "tap0"
            tag: 1011
            Interface "tap0"
    Bridge "br0"
    Bridge "br1"
CVM$

ライブ マイグレーション(br0)

別の AHV ホストにライブ マイグレーションしてみます。

CVM$ acli vm.migrate vm01 live=true host=ntnx-n12-ahv.go-lab.jp
vm01: pending
vm01: complete

移行先のホスト(192.168.1.182)でも、br1.local に接続されました。

CVM$ hostssh ovs-vsctl show | egrep '^=|Bridge "br."|Bridge "br..local"|tap|tag'
============= 192.168.1.184 ============
    Bridge "br1"
    Bridge "br0.local"
    Bridge "br0"
    Bridge "br1.local"
============= 192.168.1.183 ============
    Bridge "br0.local"
    Bridge "br0"
    Bridge "br1"
    Bridge "br1.local"
============= 192.168.1.182 ============
    Bridge "br1"
    Bridge "br0.local"
    Bridge "br0"
    Bridge "br1.local"
        Port "tap0"
            tag: 1011
            Interface "tap0"
============= 192.168.1.181 ============
    Bridge "br0.local"
    Bridge "br1.local"
        Port "tap0"
            tag: 1011
            Interface "tap0"
                error: "could not open network device tap0 (No such device)"
    Bridge "br0"
    Bridge "br1"
CVM$

すこし待つと、移行元の tap は削除されます。

CVM$ hostssh ovs-vsctl show | egrep '^=|Bridge "br."|Bridge "br..local"|tap|tag'
============= 192.168.1.184 ============
    Bridge "br1"
    Bridge "br0.local"
    Bridge "br0"
    Bridge "br1.local"
============= 192.168.1.183 ============
    Bridge "br0.local"
    Bridge "br0"
    Bridge "br1"
    Bridge "br1.local"
============= 192.168.1.182 ============
    Bridge "br1"
    Bridge "br0.local"
    Bridge "br0"
    Bridge "br1.local"
        Port "tap0"
            tag: 1011
            Interface "tap0"
============= 192.168.1.181 ============
    Bridge "br0.local"
    Bridge "br1.local"
    Bridge "br0"
    Bridge "br1"
CVM$

以上。