NTNX>日記

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

Nutanix CE で NGT インストール済み VM をクローンしてみる。(Oracle Linux 8)

Nutanix CE で、Nutanix Guest Tools(NGT)をインストールしてある Linux VM をクローンしてみます。ゲスト OS は、Oracle Linux 8.5 です。

今回の内容

今回の環境

  • Nutanix CE 2020.09.16
  • ゲスト OS は、Oracle Linux 8.5

クローン元の VM(vm01)

クローン元の VM は「vm01」です。ゲスト OS は Oracle Linux 8.5 です。

[root@vm01 ~]# cat /etc/oracle-release
Oracle Linux Server release 8.5

このあとのコマンドで必要になるので、VM の UUID を取得しておきます。

CVM$ acli vm.list | grep vm01
vm01               15e8a6a8-f454-47d4-ab7b-7992f294333b
CVM$ VM_UUID=$(acli vm.list | grep vm01 | awk '{print $2}')
CVM$ echo $VM_UUID
15e8a6a8-f454-47d4-ab7b-7992f294333b

 

ゲスト OS に NGT がインストール済みです。Prism から確認すると、VM でも NGT が有効な状態になっています。

  • NGT Enabled: true
  • Communication Link Active: true
CVM$ ncli ngt get vm-id=$VM_UUID

    VM Id                     : 0005bcc8-1ddc-c8ba-37dd-1c697a630d37::15e8a6a8-f454-47d4-ab7b-7992f294333b
    VM Name                   : vm01
    NGT Enabled               : true
    Tools ISO Mounted         : false
    Vss Snapshot              : true
    File Level Restore        : true
    Communication Link Active : true

VM ごとにユニークな値となる ngt_uuid は、f38c2669-6f7f-4fb8-8cd3-e0e9fe0d8226 です。

[root@vm01 ~]# cat /usr/local/nutanix/ngt/config/ngt_config.json | /usr/local/nutanix/ngt/python36/python3 -m json.tool
{
    "cluster_ip": "192.168.20.50",
    "ngt_uuid": "f38c2669-6f7f-4fb8-8cd3-e0e9fe0d8226",
    "ngt_version": "2.0",
    "port": 2074
}

VM クローンのみ(vm02)

ゲスト OS に NGT をインストールしている場合、VM のクローン後に NGT UUID を変更する必要があります。ただクローンしただけでは、NGT UUID は変更されません。

vm01 から、vm02 をクローン → パワーオンしてみます。

CVM$ acli vm.clone vm02 clone_from_vm=vm01
vm02: pending
vm02: complete
CVM$ acli vm.on vm02
vm02: pending
vm02: complete

Prism では、NGT は無効な状態になります。

CVM$ VM_UUID=$(acli vm.list | grep vm02 | awk '{print $2}')
CVM$ ncli ngt get vm-id=$VM_UUID
Error: Nutanix Guest Tools are not enabled for this VM.

そして、ゲスト OS の NGT UUID は変更されていません。

[root@vm02 ~]# cat /usr/local/nutanix/ngt/config/ngt_config.json | /usr/local/nutanix/ngt/python36/python3 -m json.tool
{
    "cluster_ip": "192.168.20.50",
    "ngt_uuid": "f38c2669-6f7f-4fb8-8cd3-e0e9fe0d8226",
    "ngt_version": "2.0",
    "port": 2074
}

VM クローン後の NGT 有効化(vm03)

VM クローン後に、NGT の ISO ファイルをマウントしてから VM をパワーオンすることで、NGT UUID が再生成されます。

vm01 から、vm03 をクローンします。

CVM$ acli vm.clone vm03 clone_from_vm=vm01
vm03: pending
vm03: complete

今回は、Prism ではなく ncli で NGT の ISO ファイルをマウントします。

CVM$ VM_UUID=$(acli vm.list | grep vm03 | awk '{print $2}')
CVM$ ncli ngt mount vm-id=$VM_UUID
Successfully initiated mount of Nutanix Guest Tools.

NGT の ISO ファイルがマウントされた状態(Tools ISO Mounted: true)になりました。同時に NGT Enabled も true になります。

CVM$ ncli ngt get vm-id=$VM_UUID

    VM Id                     : 0005bcc8-1ddc-c8ba-37dd-1c697a630d37::7f74bc72-278a-49c7-974c-9b5c8cbdf69f
    VM Name                   : vm03
    NGT Enabled               : true
    Tools ISO Mounted         : true
    Vss Snapshot              : true
    File Level Restore        : false
    Communication Link Active : false

VM をパワーオンします。

CVM$ acli vm.on vm03
vm03: pending
vm03: complete

少し待つと、NGT が有効な状態になります。ちなみに、今回は ncli のデフォルト設定で NGT を有効化したので、クローン元とは異なる状態になっています。

CVM$ ncli ngt get vm-id=$VM_UUID

    VM Id                     : 0005bcc8-1ddc-c8ba-37dd-1c697a630d37::7f74bc72-278a-49c7-974c-9b5c8cbdf69f
    VM Name                   : vm03
    NGT Enabled               : true
    Tools ISO Mounted         : true
    Vss Snapshot              : true
    File Level Restore        : false
    Communication Link Active : true

NGT UUID の再生成が終わると、ISO ファイルは自動的にアンマウント解除(Tools ISO Mounted: false)されます。

CVM$ ncli ngt get vm-id=$VM_UUID

    VM Id                     : 0005bcc8-1ddc-c8ba-37dd-1c697a630d37::7f74bc72-278a-49c7-974c-9b5c8cbdf69f
    VM Name                   : vm03
    NGT Enabled               : true
    Tools ISO Mounted         : false
    Vss Snapshot              : true
    File Level Restore        : false
    Communication Link Active : true

ちなみにこの NGT 設定は、Prism では下記のような状態です。

f:id:gowatana:20211225213623p:plain

ゲスト OS 側で確認すると、NGT UUID が再生成されています。

クローン元の vm01 では f38c2669-6f7f-4fb8-8cd3-e0e9fe0d8226 でしたが、再生成により b89cbd9b-0e56-4821-a229-2e7bcc9f74e6 になりました。

[root@vm03 ~]# cat /usr/local/nutanix/ngt/config/ngt_config.json | /usr/local/nutanix/ngt/python36/python3 -m json.tool
{
    "cluster_ip": "192.168.20.50",
    "ngt_uuid": "b89cbd9b-0e56-4821-a229-2e7bcc9f74e6",
    "ngt_version": "2.0",
    "port": 2074
}

最後に VM をパワーサイクル(シャットダウン → パワーオン)しておくと、NGT 関連サービスの自動起動なども確認できて確実かなと思います。

CVM$ acli vm.shutdown vm03
CVM$ acli vm.on vm03

以上。

©2021 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。