AHVで仮想マシンを作るときのドライブ選択とその変更方法

 Nutanix Advent Calendar 2017に参加しています。
 Nutanix Advent Calendar 2017 の1枚目。19日目への投稿です。

Nutanix独自のハイパーバイザーであるAHVは使えるものなんですが、使いだした方がよくはまるポイントがあります。
私もはまったポイントがあったので共有します。

今回のお話は、AHVで仮想マシンを作るときのドライブ選択とその変更方法についてです。

AHV上の仮想マシンのドライブ選択

ドキュメントによると次のような記載があります。

SUPPORTED GUEST VM TYPES FOR AHV
-----OS types with SCSI (recommended) and IDE bus types
Windows 7, 8, 8.1, 10
Windows Server 2008 R2, 2012, 2012 R2, 2016
RHEL 6.4, 6.5, 6.6, 6.7, 6.8, 7.0, 7.1, 7.2, 7.3
CentOS 6.4, 6.5, 6.6, 6.7, 6.8, 7.0, 7.1, 7.2, 7.3
Ubuntu 12.04.5, 14.04.x, 16.04.x, 16.10, Server, Desktop (32-bit and 64-bit)
FreeBSD 9.3, 10.0, 10.1,10.2, 10.3, 11.0
SUSE Linux Enterprise Server 11 SP3 / SP4
SUSE Linux Enterprise Server 12
Oracle Linux 6.x, 7.x

OS types with PCI (recommended) and IDE bus types
RHEL 5.10, 5.11, 6.3
CentOS 5.10, 5.11, 6.3
Ubuntu 12.04
SUSE Linux Enterprise Server 12
-----

どのバスタイプを選択するとよいのでしょうか?

正解は、recommendと記載されている「scsi」です。

sataの場合、AsyncDR(Nutanix TimeStream)によるスナップショットをとると、
次のようなエラーにより静止点確保に失敗します。

「VSS snapshot is not supported for the VM <VM Name>, because VM has IDE disks attached. 」

 NGTにIDEは非対応であることは認識していましたが、SATAもIDEの一種とみなされるようですね。

検証用の環境を作ってHotfixも当てて、スナップショットも取ってさあばっちり遊ぼう!
と思った矢先に気づきました。
静止点とれてない...。

なお、現状のAHVではPrismからバスタイプを変更することはできません。

一からやり直しか…とへこむ前に模索してみました。

busタイプの変更方法

GUIでダメならCLIで。

ACLIで仮想マシンの構成を調査します。
$ acli vm.get <vm name>

nutanix@NTNX-2200ee4c-A-CVM:192.168.0.130:~$ acli

<acropolis> vm.get nDC02
nDC02 {
  config {
    agent_vm: False
    allow_live_migrate: True
    disk_list {
      addr {
        bus: "ide"
        index: 0
      }
      cdrom: True
      empty: True
    }
    disk_list {
      addr {
        bus: "sata"
        index: 0
      }
      container_id: 4
      container_uuid: "967bd4ac-1bce-4c97-843d-f8b8c0148f42"
      source_nfs_path: "/default-container-77139635402391/.snapshot/80/3509993304633724615-1513076510228572-180/.acropolis/vmdisk/1b535d83-8d56-4571-9050-17d25fdcef19"
      vmdisk_size: 64424509440
      vmdisk_uuid: "0e83b0e4-b15d-42d9-8941-eda50bb5d487"
    }



「bus: "sata"」「bus: "scsi"」に変わればSCSIとして認識するはずです。

acliにはディスクを作成するコマンドがあります。
<acropolis> vm.disk_create

TABで補完していくと、busタイプを選べます。
<acropolis> vm.disk_create <vm name> bus=scsi

さらにTABで補完していくと、既存のvdiskからクローンするコマンドを発見!
cdrom=                        Indicates if the disk is a CDROM drive
clone_from_adsf_file=   Path to an ADSF file
clone_from_image=      An image name/UUID
clone_from_vmdisk=     A vmdisk UUID
clone_min_size=           Minimum size of the resulting clone (only applies to cloned disks)
container=                   Container (only applies to newly-created disks)
create_size=                Size of new disk
empty=                       Whether the disk is empty (only applies to CDROMs)
index=                         Device index on bus
scsi_passthru=             Passthrough disk?


次のコマンドでクローニングに成功!
<acropolis> vm.disk_create nDC02 bus=scsi clone_from_vmdisk=vm:nDC02:sata.0

Prismからもscsiのボリュームがマウントされていることが確認できます。

xをクリックして不要なsataドライブを削除します。

あらためてacliで仮想マシンの構成を確認します。

<acropolis> vm.get nDC02
nDC02 {
  config {
    agent_vm: False
    allow_live_migrate: True
    disk_list {
      addr {
        bus: "ide"
        index: 0
      }
      cdrom: True
      empty: True
    }
    disk_list {
      addr {
        bus: "scsi"
        index: 0
      }
      container_id: 4
      container_uuid: "967bd4ac-1bce-4c97-843d-f8b8c0148f42"
      source_vmdisk_uuid: "0e83b0e4-b15d-42d9-8941-eda50bb5d487"
      vmdisk_size: 64424509440
      vmdisk_uuid: "f52092c8-918c-418d-9064-5dc6d8fd2978"
    }

/td>

 bus: "scsi"としてドライブがマウントされています。

仮想マシンを起動してみると…。起動しました!
デバイスマネージャーを確認しても、SCSIドライブとして認識されています。

SATAの場合

SCSIの場合

これで今日も安心して眠れます。


しくじり先生からのお約束:
・AHVで作成する仮想マシンのbusタイプはSCSIを選びましょう。
・間違った場合もacliで何とかなります。あきらめずにチャレンジしましょう!

次回のNutanix Advent Calendarは「nominiikou_net」さんによる、運用者目線の記事です。

コメント

人気の投稿