HalNiの雑記

備忘録を兼ねて。サーバマシンとかネットワークとか

Nutanix CE 2.0 をベアメタル環境・マルチノードで構築する

タイトルの通り。

Nutanixをネスト環境やシングルノードといった実験的構築ではなく、 実運用にも耐えうるようなベアメタル・マルチノード環境で構築を行った

環境:

Supermicro X10DRT x3ノード
- Xeon E5 2620v4 x2ソケット(16コア32スレッド)
- 64GB(32GB x2枚) DDR4-2400
- Mellanox connectX-3 Pro 10G-NIC
- HGST 160GB HDD(ハイパーバイザーBoot用)
- Intel S3710 200GB SSD(CVM領域用)
- Seagate ST91000640NS 1TB HDD(データ領域用)

Nutanix CE 2.0 6.5.2
Fedora 40(ゲストOS)

お手軽にNutanixを体感したく、Nutanix アプライアンスを導入した

ハードウェア構築

Nutanixの導入にはざっくりと以下のハードウェア要件がある

ノード毎に
- 32GB以上のメモリ
- 200GB以上のSSD
- 500GB以上のHDD
ノード間で同一の構成

上記要件を満たすため、ストレージは以下のものを各ノードにアタッチした
- HGST 160GB HDD(ハイパーバイザーBoot用)
- Intel S3710 200GB SSD(CVM領域用)
- Seagate ST91000640NS 1TB HDD(データ領域用)

インストール

まずはNutanixのアカウントを作成、コミュニティ版のISOイメージをダウンロードする
- https://next.nutanix.com/discussion-forum-14/download-community-edition-38417

今回使用したSupermicroのサーバーの場合、イメージリダイレクトで5.2GBあるNutanixのISOイメージをマウントできなかったため、
おとなしくUSBメモリからインストーラーを立ち上げた

インストーラーの初回画面で以下の設定を行う

Select Hypervisor
 → AHVを選択
Disk Selection:
 → SSDをCVM領域用、大容量HDDをデータ領域用に設定
Host  IP Address
CVM  IP Address
Subnet Mask
gateway
 → 環境にあった値を入力

Host IP AddressとCVM IP Addressは同一のセグメントに所属する必要がある

Caution: All Host and Controller VMs in the same cluster must be on the same subnet.

今回は以下のようなネットワーク設計とした

使用ネットワーク:192.168.1.0/24
- IPMI:192.168.1.151~153
- AHV:192.168.1.156~168
- CVM:192.168.1.161~163
- CVM 仮想IP:192.168.1.160

また、今回のようにマルチノード環境で構築を行う場合、"Create Single-node Cluster"にはチェックを入れずにNextを選択する

EULAが表示されるので、AcceptをチェックしてAHV・CVMのインストールを開始する

インストールが完了すると、インストールメディアを取り外しを指示されるため、メディアをデタッチして再起動する

Please unplug any virtual or physical media and
reboot this machine.
Please enter 'Y' to rebootnow (Y/N): y

再起動が完了すると、AHVが立ち上がる

GrubでAHVが表示されれば正常

起動が完了するとAHVのログインプロンプトが表示される
クラスタに追加するノードすべてでAHV(とCVM)のインストールを完了させる

クラスタ構築

各ノードでAHVのインストールが完了したら、AHV上で動作するCVMにログインする

ユーザー名:nutanix
パスワード:nutanix/4u

これ以下は各CVMで操作を行う必要はなく、いずれか1台のCVMで操作を行えばよい(今回はNodeA上のCVMで操作を行った)

以下コマンドを実行してクラスタ構築を構築

$ cluster -s 192.168.1.161,192.168.1.162,192.168.1.163 create

nutanix@NTNX-64e17c10-A-CVM:192.168.1.161:~$ cluster -s 192.168.1.161,192.168.1.162,192.168.1.163 create
2024-05-03 04:37:10,416Z INFO MainThread cluster:2943 Executing action create on SVMs 192.168.1.161,192.168.1.162,192.168.1.163
2024-05-03 04:37:13,441Z INFO MainThread cluster:1007 Discovered node:
ip: 192.168.1.162
        rackable_unit_serial: cad155fd
        node_position: B
        node_uuid: 4e5dc9b5-bc51-41a9-abae-719bc0b2b9ce

2024-05-03 04:37:13,441Z INFO MainThread cluster:1007 Discovered node:
ip: 192.168.1.161
        rackable_unit_serial: 64e17c10
        node_position: A
        node_uuid: 83d09dc3-4554-485d-b745-3861228134cf

2024-05-03 04:37:13,441Z INFO MainThread cluster:1007 Discovered node:
ip: 192.168.1.163
        rackable_unit_serial: 4a12961d
        node_position: C
        node_uuid: 328120d7-ff94-4c4c-9e02-943d292c046c

2024-05-03 04:37:13,442Z INFO MainThread cluster:1025 Cluster is on arch x86_64
...(略)...
                                Flow   UP       [350, 351, 352, 363, 32619]
                             Anduril   UP       [413, 414, 415, 425, 32670]
                               XTrim   UP       [464, 465, 466, 32723]
                       ClusterHealth   UP       [364, 507, 756, 757, 765, 771, 835, 836, 838, 851, 852, 854, 857, 858, 859, 861, 862, 885, 886, 936, 937, 989, 990, 992, 993, 3699, 3741, 3742]
2024-05-03 04:41:16,980Z INFO MainThread cluster:1450 Running CE cluster post-create script
2024-05-03 04:41:16,986Z INFO MainThread cluster:3104 Success!     ★
nutanix@NTNX-64e17c10-A-CVM:192.168.1.161:~$

構築が完了すると、以下のメッセージが出力される

INFO MainThread cluster:3104 Success!

以下コマンドを実行してクラスタを起動

$ cluster start

nutanix@NTNX-64e17c10-A-CVM:192.168.1.161:~$ cluster start
2024-05-03 04:45:35,384Z INFO MainThread zookeeper_session.py:191 cluster is attempting to connect to Zookeeper
2024-05-03 04:45:35,388Z INFO Dummy-1 zookeeper_session.py:625 ZK session establishment complete, sessionId=0x14aa3520a5e010a, negotiated timeout=20 secs
2024-05-03 04:45:35,393Z INFO MainThread cluster:2943 Executing action start on SVMs 192.168.1.161,192.168.1.162,192.168.1.163
Waiting on 192.168.1.161 (Up) to start:
...(略)...
                                Flow   UP       [350, 351, 352, 363, 32619]
                             Anduril   UP       [413, 414, 415, 425, 32670]
                               XTrim   UP       [464, 465, 466, 32723]
                       ClusterHealth   UP       [364, 507, 756, 757, 765, 771, 835, 836, 838, 851, 852, 854, 857, 858, 859, 861, 862, 885, 886, 936, 937, 989, 990, 992, 993, 3699, 3741, 3742, 5910, 5911, 5913, 5914, 5916, 5917, 5918, 5919, 5920, 5921, 5922, 5939, 6026, 6028, 6075, 6076]
2024-05-03 04:45:38,839Z INFO MainThread cluster:3104 Success!     ★
nutanix@NTNX-64e17c10-A-CVM:192.168.1.161:~$

起動が完了すると、以下のメッセージが出力される

INFO MainThread cluster:3104 Success!

公式ドキュメントに沿って、以下の設定をCVMから投入する

クラスタ名を設定

$ ncli cluster edit-params new-name=NTNX-CLUSTER1

nutanix@NTNX-64e17c10-A-CVM:192.168.1.161:~$ ncli cluster edit-params new-name=NTNX-CLUSTER1
...(略)...
    Cluster Name              : NTNX-CLUSTER1
...(略)...

クラスタの仮想IPアドレスを設定

$ ncli cluster set-external-ip-address external-ip-address=192.168.1.160

nutanix@NTNX-64e17c10-A-CVM:192.168.1.161:~$ ncli cluster set-external-ip-address external-ip-address=192.168.1.160
...(略)...
    External IP address       : 192.168.1.160
...(略)...

DNSサーバを設定

$ ncli cluster add-to-name-servers servers=192.168.1.1

nutanix@NTNX-64e17c10-A-CVM:192.168.1.161:~$ ncli cluster add-to-name-servers servers=192.168.1.1

    Name Servers              : 192.168.1.1, 8.8.8.8, 8.8.4.4
nutanix@NTNX-64e17c10-A-CVM:192.168.1.161:~$

NTPサーバを設定

$ ncli cluster add-to-name-servers servers=ntp.nict.jp

nutanix@NTNX-64e17c10-A-CVM:192.168.1.161:~$ ncli cluster add-to-ntp-servers servers=ntp.nict.jp

    NTP Servers               : 1.pool.ntp.org, 0.pool.ntp.org, ntp.nict.jp
nutanix@NTNX-64e17c10-A-CVM:192.168.1.161:~$

設定が完了したら、上記で設定したクラスタの仮想IPアドレスにブラウザでアクセスする (この時ポート9440に自動的にリダイレクトされる)

ログイン画面が表示される

初回アクセス時は以下の認証情報でログインを行う

ユーザー名:admin
パスワード:nutanix/4u

ログイン後、adminユーザのパスワード変更を行い、続いてNutanixアカウントでログインを行う
問題なくNutanixアカウントでログインできれば、ダッシュボード画面が表示される

dashboardのHome画面が表示される
以上で構築が完了した

おまけ:仮想マシンの作成方法

初回のゲスト作成は大体以下の手順で実行する

  1. インストールISO or マスターイメージのアップロード
  2. ネットワークの作成
  3. 仮想マシンの作成
  1. インストールISO or マスターイメージのアップロード

dashboardの右上 歯車アイコン → Image Configuration からイメージのアップロードを行えばよい

今回はFedora40のISOイメージをアップロードした
これで指定したストレージコンテナ(規定値はdefault-container)にISOイメージが保存される

  1. ネットワークの作成

vm タブの右上 Network Config から適当なsubnetを作成する
管理ネットワークと同一のセグメントにゲストを立てる場合は、vs0を指定すればよい
(vs0接続ネットワーク上にDHCPサーバが存在すればIP address managementも不要)

  1. 仮想マシンの作成

vm タブの右上 + Create VM から各項目を埋めてSaveすればOK

Nutanix CE上でFedora40が動作している

おまけ2:ノードの停止方法

以下の順序で行う

1. ゲストの停止  
2. clusterの停止  
3. CVMの停止  
4. AHVの停止  

$ cluster stop

nutanix@NTNX-64e17c10-A-CVM:192.168.1.161:~$ cluster stop
2024-05-03 13:24:40,100Z INFO MainThread zookeeper_session.py:191 cluster is attempting to connect to Zookeeper
2024-05-03 13:24:40,103Z INFO Dummy-1 zookeeper_session.py:625 ZK session establishment complete, sessionId=0x28f3cbeb65c0f0e, negotiated timeout=20 secs
2024-05-03 13:24:40,106Z INFO MainThread cluster:2943 Executing action stop on SVMs 192.168.1.161,192.168.1.162,192.168.1.163
2024-05-03 13:24:40,107Z WARNING MainThread genesis_utils.py:311 Deprecated: use util.cluster.info.get_node_uuid() instead
2024-05-03 13:24:40,107Z INFO MainThread zookeeper_session.py:191 cluster is attempting to connect to Zookeeper
2024-05-03 13:24:40,110Z INFO Dummy-1 zookeeper_session.py:625 ZK session establishment complete, sessionId=0x38f3cbdce410edb, negotiated timeout=20 secs
2024-05-03 13:24:40,119Z INFO MainThread cluster:2990

***** CLUSTER NAME *****
NTNX-CLUSTER1

This operation will stop the Nutanix storage services and any VMs using Nutanix storage will become unavailable. Do you want to proceed? (I agree/[N]): I agree
...(略)...
2024-05-03 13:25:06,096Z INFO MainThread cluster:1908 Cluster has been stopped via 'cluster stop' command, hence stopping all services.
2024-05-03 13:25:06,097Z INFO MainThread cluster:3104 Success!
nutanix@NTNX-64e17c10-A-CVM:192.168.1.161:~$

ssh nutanix@CVM systemctl poweroff

nutanix@NTNX-64e17c10-A-CVM:192.168.1.161:~$ ssh nutanix@192.168.1.163 sudo systemctl poweroff
nutanix@NTNX-64e17c10-A-CVM:192.168.1.161:~$ ssh nutanix@192.168.1.162 sudo systemctl poweroff
nutanix@NTNX-64e17c10-A-CVM:192.168.1.161:~$ sudo systemctl poweroff

ssh root@AHV systemctl poweroff

PS C:\Users\Halni> ssh root@192.168.1.158
[root@NTNX-4a12961d-A ~]# virsh list --all
 Id   Name                  State
--------------------------------------
 -    NTNX-cad155fd-A-CVM   shut off
[root@NTNX-4a12961d-A ~]# poweroff

PS C:\Users\Halni> ssh root@192.168.1.157
[root@NTNX-cad155fd-A ~]# poweroff

PS C:\Users\Halni> ssh root@192.168.1.156
[root@NTNX-64e17c10-A ~]# poweroff

起動時は

1. 全ノードの起動
2. clusterの開始  

各ノードをpower ON

ssh nutanix@CVM cluster start

でOK。

参考資料

portal.nutanix.com