NTNX>日記

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

ESXi で Nested Nutanix CE を構成してみる。(ce-2018.01.31-stable 対応版)

以前に Nutanix CE を ESXi 6.x の VM にインストールする方法を投稿しました。しかし 最新の ce-2018.01.31-stable だといくつか工夫が必要なので、ひととおりの流れを記載してみます。

以前の投稿は下記です。

下記の対応も、今回の投稿には含まれます。

今回のインストール環境です。

  • ESXi の管理には vCenter の vSphere Web Client を使用しています。
  • Nutanix CE のバージョンは ce-2018.01.31-stable を使用しています。
  • ESXi のデータストアは SSD を使用しています。

なお今回も Nested Nutanix CE 特有の部分を中心に説明して、一般的な Nutanix CE インストール部分は簡単に済ませています。

VM の作成

下記のような設定にします。設定項目の名前は、vSphere Client ではなく vSphere Web Client(vCenter の)の表記です。

  • 仮想マシンのバージョン: ESXi 6.0 以降 (VM バージョン 11 / vmx-11)
  • ゲスト OS の選択: Red Hat Enterprise Linux 7 (64 ビット)
    AHV のベースとなる CentOS 7 なので、それに近い RHEL7 を選択。
    「CentOS 4/5/6/7」もあるが、CentOS 7 自体には RHEL7 のほうがよさそうな気がするため。
    →これは、vmx-13 では CentOS 7 が選択できるようになったのでそれがよいと思います。
  • CPU: 4
    物理CPUコアが2でも、Hyper-Threading で 4 スレッドあれば設定可能。
    Nested Hypervisor として使用するので「ハードウェア アシストによる仮想化をゲスト OS に公開」チェックを ON にする。
    → EVC(Enhanced vMotion Compatibility)を利用していない環境では、CVM が起動できない問題を回避するために、さらに「仮想 CPU のパフォーマンス カウンタの有効化」のチェックを ON にします。
  • メモリ: 16GB
    VMのメモリ容量を大きくするとCVMのメモリ割り当てが大きく(16GB)なるので、Nutanix CE インストール時は最少の 16GB にしておく。
    → 経験上、できればさらにメモリ容量を割り当てたほうが Nutanix CE が落ちにくくなるように感じています。(そして CE の推奨は 32GB)
  • 仮想 SCSI コントローラ: VMware 準仮想化
  • 仮想ハードディスク: すべて削除します。
  • 仮想NIC: vmxnet3 の NIC を1つだけ接続。VLAN ID 4095 でプロミスキャスモード有効のポートグループを指定する。
    →うちでは vDS を利用しているホストがあり、そこでは VLAN ID 4095 が設定できないので VLAN トランク(ざっくり 0-4094 とか)設定にしています。
  • 仮想フロッピードライブは不要なので削除。

VM のディスク構成変更

Nutanix CE のインストール イメージ ファイルを VM に接続します。

Nutanix コミュニティ サイトからダウンロードしておいた インストール イメージを解凍して、ESXi のデータストア上に作成されている Nutanix CE をインストールする VM のフォルダに配置します。

配置するファイルは下記の2つです。

  • インストール イメージ ファイル: ce.img
  • VMDK ディスクリプタ ファイル: ce.vmdk

インストール イメージ ファイル配置: ce.img

ダウンロードしておいた ce-2018.01.31-stable.img.gz を解凍して、ce.img にリネームしたものを配置します。

# tar zxf ce-2018.01.31-stable.img.gz
# mv ce-2018.01.31-stable.img ce.img

VMDK ディスクリプタ ファイル作成: ce.vmdk

VMDK ファイルのデスクリプタ ファイルは、テキストエディタで作成してからデータストアに転送するか、SSH で ESXi に接続 して vi 等で作成します。

ファイルの内容は、下記のサイトのファイルを参考にしました。(ファイル名と VM バージョンだけ環境に合わせて変更)

www.virtuallifestyle.nl

今回の ce.vmdk ファイルの内容です。
ID などは VM に接続したときに自動追記されるので削除してみました。
まだ修正できる箇所はあるかもしれません・・・

gist.github.com

VM への仮想ディスク追加

VM の「設定の編集」で、ディスク構成を変更します。
VM の BIOS での起動設定を変更するのが面倒なので、SCSI デバイスノードの順序が USB ブートイメージ、VMDK#1、VMDK#2 の順となるように仮想ディスクを追加します。

  1. VM の「設定の編集」を再度ひらく。
  2. 「既存のハードディスク」で ce.vmdk を追加する。
    → ハードディスク 1 で SCSI(0:0) になる。
  3. 「新規ハード ディスク」で 200GB の仮想ディスクを Thin Provisioning で追加。
    → ハードディスク 2 で SCSI(0:1) になる。
  4. 「新規ハード ディスク」で 500GB の仮想ディスクを Thin Provisioning で追加。
    → ハードディスク 3 で SCSI(0:2) になる。
  5. 「OK」で VM の設定を保存する。

このとき、ハードディスク 1 に Nutanix CE のインストール イメージ ファイルだけ追加した状態(200GB、500GB の仮想ディスクを未作成の状態)で止めておくと、今後 Nutanix CE を大量にクローンする場合は便利です。

f:id:gowatana:20180306071907p:plain

この場合、残りの仮想ディスク(200GB と 500GB)はクローン後に作成します。

インストーラ実行準備

VM の起動

Nutanix CE をインストールする VM を起動します。
インストーラ―が起動するので、一度 install ユーザ(パスワードなし)でログインして、最初の日本語キーボード設定(jp106 など)をして、そのあとのメニューで Cancel で抜けます。これで、この後のコンソールでのファイル編集を、日本語キーボード設定で作業できるようになります。

インストーラむけディスク認識調整

Nutanix CE のインストーラから、ハードディスク 1 (/dev/sdb) のディスクが SSD として認識されるように調整します。

root / nutanix/4u でログインします。

lsblk コマンドなどで、デバイス認識が下記になっていることを確認しておきます。

  • sda(/dev/sda)→ 約7GB
  • sdb(/dev/sdb)→ 200GB
  • sdc(/dev/sdc)→ 500GB

/dev/sdb を SSD として認識するように下記のように設定します。

[root@localhost ~]# echo 0 > /sys/block/sdb/queue/rotational
[root@localhost ~]# cat /sys/block/sdb/queue/rotational
0

CVM の設定に反映される default.xml の編集

下記のファイルを vi などで編集しておきます。
/home/install/phx_iso/phoenix/svm_template/kvm/default.xml

編集個所は下記です。(8行目あたりから)

1か所目
machine='pc'

machine='pc-i440fx-rhel7.2.0'

2か所目(これは追記)

  • これは「仮想 CPU のパフォーマンス カウンタの有効化」のチェックを ON にできない(EVC を有効にしている)場合に必要です。
  • 日本語キーボードに変更していない場合は、2行上のもの(<apic eoi='on'/>)をコピー&編集すると楽かもしれません。

<features>
  <acpi/>
  <apic eoi='on'/>
  <pae/>
  <pmu state='off'/>
</features>

<features>
  <acpi/>
  <apic eoi='on'/>
  <pae/>
  <pmu state='off'/>
</features> 

(既に失敗している場合のみ)以前のインストールのクリーンアップ

以前にインストールが失敗している場合は、下記のスクリプトを実行します。

[root@localhost ~]# ./cleanup.sh

root ユーザからのログアウト

ファイルを編集したら、いったん root ユーザからログアウトします。

[root@localhost ~]# exit

Nutanix CE のインストール

install ユーザでログインすることで、インストールを進めます。

  1. install ユーザでログインする。
  2. キーボード指定: jp106
  3. Host(AHV) と CVM のアドレス(IP、サブネットマスク、Gateway)を指定する。
  4. 「Create single-node cluster ?」のチェックは外したままにする。
    Single-node Cluster を作成するつもりでも、これまで失敗することが多かったので後から cluster create コマンドで手動構成しています。
  5. CE EULA をすべて読んだうえで(下までスクロールしたうえで)ライセンス同意して「Start」する。 

Nutanix Cluster 作成

CVM にログインして、cluster create コマンドでクラスタを作成します。
今回は Single-Node Cluster です。「-s」には、CVM の IP アドレスを指定します。

nutanix@NTNX-419d7d2f-A-CVM:192.168.1.191:~$ cluster -s 192.168.1.191 create

クラスタの作成が成功したら、Web ブラウザから CVM に https 9440 番ポートでアクセスします。admin / admin でログインした直後に、パスワード変更、NEXT アカウントでの認証があります。

f:id:gowatana:20160923025138p:plain

AHV への VMware Tools のインストール

Nested 環境では、VMware Tools がインストールされていると便利なので、AHV にインストールしてしまいます。AHV は CentOS 7 ベースなので、VMware Tools としてopen-vm-tools を yum install します。

AHV には DNS サーバと、YUM リポジトリの参照が自動的に設定されているので、root でログインすれば yum install コマンドで RPM がインストールできてしまいます。

タイミング(マルチノードクラスタを構成した時になってた)によっては AHV の /etc/resolv.conf ファイル自体がなくなって名前解決できなくなっていることもあるので、その場合は /etc/resolv.conf を作成して「nameserver <DNS サーバアドレス>」を追記して、名前解決できるようにしてしまいます。

[root@NTNX-419d7d2f-A ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
repo id                            repo name
!base/7/x86_64                     CentOS-7 - Base
!extras/7/x86_64                   CentOS-7 - Extras
!updates/7/x86_64                  CentOS-7 - Update
repolist: 10,119

それでは、インストールします。

[root@NTNX-419d7d2f-A ~]# yum install -y open-vm-tools

サービスを起動しておきます。

[root@NTNX-419d7d2f-A ~]# systemctl start vmtoolsd

これで、vSphere Client / Web Client から AHV の IP アドレスを確認したり、シャットダウンできるようになります。
ちなみに CVM は AHV の上で起動されるので VMware Tools はインストールしません。

ユーザ VM の設定修正

ce-2018.01.31-stable では、VM を起動するために、ユーザ VM(CVM 以外の VM)でも machine_type の変更が必要です。Prism や acli などで VM を作成した後、下記のように acli で設定修正します。

  • 対象のユーザ VM を停止した状態で設定します。
  • 設定ずみの VM をクローンした場合も、再設定が必要でした。
CVM$ acli vm.update VM名 extra_flags=machine_type=pc-i440fx-rhel7.2.0

以上。