【Nutanix CE 2.1(AOS 6.8.1)】 仮想マシンの作成・ライブ マイグレーション・NIC 障害・HA の確認手順

Prism Element でクラウド イメージを登録して仮想マシンを作り、ライブ マイグレーション、仮想スイッチのボンドの NIC 障害、ノードの電源断(HA)を確認した手順と結果です。

目次

この記事の前提

イメージの登録

(1) 歯車(Settings)→ [Image Configuration] で [+ Upload Image] をクリックし、名前、種類、ストレージ コンテナー、取得元の URL を入力して [Save] をクリックします。

イメージの作成
項目説明設定値
Nameイメージの名前rocky9-cloud
Image TypeISO(インストール用)/DISK(そのままディスクにする)DISK
Storage Containerイメージを置くコンテナーdefault-container-…
Image SourceFrom URL(クラスタが URL から取得)/Upload a file(PC からアップロード)From URL:Rocky-9-GenericCloud-Base の qcow2

(2) 取り込みが終わると State が ACTIVE になります(この環境では 600 MB のイメージで約 15 分)。

イメージの完了

仮想マシンの作成

(1) 上部のメニューで [VM] を選び、[+ Create VM] をクリックします。名前と vCPU 数を入力します。

基本設定

(2) コア数とメモリーを入力し、[Disks] の [+ Add New Disk] をクリックします。

メモリーとディスク

(3) [Operation] で Clone from Image Service を選び、[Image] で登録したイメージを選んで [Add] をクリックします。

ディスクの追加
項目説明設定値
TypeDISK/CD-ROMDISK
OperationAllocate on Storage Container(空のディスク)/Clone from Image Service(イメージから作る)Clone from Image Service
Bus TypeSCSI/SATA/PCI/IDESCSI
Image元にするイメージ。サイズはイメージと同じ(ここでは変えられない)rocky9-cloud(10 GiB)

(4) [Network Adapters (NIC)] の [+ Add New NIC] で、[Subnet Name] に前の記事で作った vm-lan を選んで [Add] をクリックします。

NIC の追加
NIC の一覧

(5) [Custom Script] にチェックを入れ、[Type Or Paste Script] に cloud-init の設定を貼り付けて [Save] をクリックします。

Custom Script
#cloud-config
password: P@$$w0rd
chpasswd: { expire: False }
ssh_pwauth: True
write_files:
  - path: /etc/NetworkManager/system-connections/eth0.nmconnection
    permissions: '0600'
    content: |
      [connection]
      id=eth0
      type=ethernet
      interface-name=eth0
      [ipv4]
      method=manual
      address1=192.168.1.177/24,192.168.1.1
      dns=192.168.1.254;
runcmd:
  - nmcli connection reload
  - nmcli connection up eth0

この書き方では、初回の起動は固定 IP(192.168.1.177)になりましたが、HA で再起動したときに DHCP の IP になりました。cloud-init が DHCP の接続「System eth0」(自動接続の優先度 120)も作るためです。仮想マシンの中で次のように直すと、再起動しても固定 IP のままになりました。

nmcli connection add type ethernet con-name static-eth0 ifname eth0 ipv4.method manual ipv4.addresses 192.168.1.177/24 ipv4.gateway 192.168.1.1 ipv4.dns 192.168.1.254 connection.autoconnect-priority 200、nmcli connection delete "System eth0"、/etc/sysconfig/network-scripts/ifcfg-eth0 を削除、/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg に network: {config: disabled} を書く。

(6) [Table] で作った仮想マシンを選び、下の [Power on] をクリックします。

電源オン

ライブ マイグレーション

(1) 仮想マシンが動いているホスト(Host 列)を確認し、[Migrate] をクリックします。

稼働中

(2) [Host] で移動先を選び(自動で選ばせることもできます)、[Migrate] をクリックします。

移動先

(3) Host 列が移動先のホストに変わります。

移動後

CLI では CVM で acli vm.migrate <VM 名> host=<移動先の AHV の IP> を実行します(既定でライブ)。

項目結果(3 回)
移動にかかった時間15.3 秒(Prism)・19.1 秒・16.7 秒(acli)
ping の欠落(0.2 秒間隔)3 回とも 0

NIC 障害(ボンドの片側のリンク断)

仮想マシンが動いているホスト(192.168.1.59)で、ボンドの稼働側の NIC(eth1)のリンクを、仮想化基盤の側で切りました。仮想マシンでは 1.5 GB の書き込み(dd、oflag=direct)を続けました。

実行する場所:AHV(root ユーザー)

# ovs-appctl bond/show | grep -E "active slave mac|^slave"

期待する出力(eth1 を切った後):

active slave mac: bc:24:11:4f:76:fe(eth0)
slave eth0: enabled
slave eth1: disabled
項目結果
ボンドeth0 に切り替わった(リンクを戻すと eth1 も enabled に戻り、稼働側は eth0 のまま)
書き込み止まらずに完了
仮想マシンへの ping最長 1.7 秒の途切れ(欠落 7 回)

vs0 には CVM どうしのストレージの通信も載っているため、この切り替えでストレージの通信も継続しました。

HA(ノードの電源断)

仮想マシンが動いているホスト(192.168.1.59)の電源を強制的に切りました。

(1) [Hardware] に「Host 192.168.1.59 appears to have failed.」のアラートが出ます。

ホストの障害

(2) 仮想マシンは別のホスト(192.168.1.61)で起動し直します。

再起動
経過(電源断から)状態
73 秒止めたホストが HAFailoverSource(フェイルオーバー中)に
134 秒仮想マシンが 192.168.1.61 で動作
171 秒ゲストが起動し ping が通った(途切れは 171 秒)

HA は既定で有効で、方式はベストエフォート(予約なし。空いているリソースがあれば別のホストで起動する)です(CVM で acli ha.get を実行すると ha_state: "kAcropolisHABestEffort"・reservation_type: "kAcropolisHANoReservations" と表示されます)。

(3) 止めたホストの電源を入れると、CVM が戻り、データの冗長度(ノード障害を 1 台まで許容)が回復します。この環境では、電源投入から 269 秒で 3 台の CVM がそろい、427 秒で Current Fault Tolerance が 1 に戻りました。仮想マシンは、ホストが戻ると元のホストに戻されました(VM の配置の復元)。

結果のまとめ

試験結果
ライブ マイグレーション15〜19 秒、ping の欠落なし
ボンドの片側の NIC 障害書き込み継続、ping の途切れ 1.7 秒
ノードの電源断(HA)134 秒で別のホストで起動、171 秒で ping 応答
ノードの復旧427 秒で耐障害性が回復

次の手順

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次