NTNX>日記

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

Nutanix AHV の仮想マシンで vDisk を独立管理する。(Volume Group 編)

Nutanix AHV 上の仮想マシンに作成される vDisk は、基本的には仮想マシンに紐づけられて管理されます。しかし、仮想マシン間でのデータ受け渡しなどで vDisk を独立させて管理したいことがあります。

AHV で vDisk を独立管理するには、次の方法が考えられます。

  1. イメージ サービスを利用する
  2. ボリューム グループを利用する(今回の方法)

今回は仮想マシンの vDisk を、ボリューム グループの vDisk に変換して管理してみます。

今回の内容です。

ボリューム グループ(VG)での vDisk 管理

Nutanix HCI では、Nutanix Volumes によってブロック ストレージをボリューム グループ(VG)として提供できます。そこで VG に含まれる vDisk を、既存の仮想マシン vDisk からクローン作成します。

今回の作業の流れです。

  1. VG を作成する。
  2. 既存の仮想マシンに作成されている vDisk から、VG に vDisk を作成する。
  3. VG を、別の仮想マシンに接続する。

イメージ サービスを利用した「都度 vDisk をクローン作成」する方法とは異なり、vDisk を仮想マシンに接続 / 切断できるので、データ更新した vDisk を他の仮想マシンに渡せるようになります。

今回の環境

作業開始時点の Nutanix と仮想マシンの構成については、前回の投稿と同様です。

仮想マシン vDisk から VG vDisk の作成

VG と vDisk は Prism から作成できますが、既存 vDisk から VG vDisk を作成するには acli での操作が必要になります。そこで今回は、VG の作成から acli を利用します。

「test-vg-01」という名前で、VG を作成します。

CVM$ acli vg.create test-vg-01
test-vg-01: pending
test-vg-01: complete

仮想マシン「test-vm-01」に作成されている 2つ目の vDisk(scsi.1)をクローンして、VG に vDisk を作成します。今回はも仮想マシンを起動したまま実行していますが、可能ならば停止して実行するとよいかなと思います。

CVM$ acli vg.disk_create test-vg-01 clone_from_vmdisk=vm:test-vm-01:scsi.1
DiskCreate: pending
DiskCreate: complete

VG の disk_list に vDisk が追加されました。

CVM$ acli vg.get test-vg-01
test-vg-01 {
  disk_list {
    container_id: 6333
    container_uuid: "25d58e3b-32d9-4766-867f-cc8a9d76041a"
    index: 0
    vmdisk_size: 10737418240
    vmdisk_uuid: "351fa00e-d974-47b3-a2b0-b0a442103d95"
  }
  iscsi_target_name: "test-vg-01-596933e2-1652-40df-bc4e-5dc76897fef0"
  logical_timestamp: 2
  name: "test-vg-01"
  uuid: "596933e2-1652-40df-bc4e-5dc76897fef0"
}

Prism では、「ストレージ」→「テーブル」→「Volume Group」画面で、VG「test-vg-01」の「Virtual Disks」タブを開くと、10 GiB の vDisk が追加されています。

仮想マシンへの VG 接続

VG「test-vg-01」を、仮想マシン「test-vm-02」に接続します。

$ acli vg.attach_to_vm test-vg-01 test-vm-02
AttachToVm: pending
AttachToVm: complete

Prism で確認すると、VG の vDisk は仮想マシンの Virtual Disks タブには表示されません。

仮想マシンの Update 画面を確認すると、「Volume Groups」に追加した VG が表示されています。

ゲスト OS でのファイルシステムのマウント

仮想マシンに接続した VG に含まれる vDisk は、ゲスト OS 側では、仮想マシンに作成する vDisk と同様に扱うことになります。

前回の投稿と同様に、デバイス名を確認してマウントすることで、データにアクセスできるようになります。

ただし、/dev/sdx といったデバイス名は、Linux では OS 再起動ごとに変化する可能性があります、VG の接続 / 切断を頻繁に行う場合は、ファイルシステムのラベルや UUID を指定してマウントするほうが無難です。

[root@test-vm-02 ~]# blkid | grep /dev/sd
/dev/sda1: UUID="cac092f3-ea45-4c92-9106-9b1b08f41b50" BLOCK_SIZE="4096" TYPE="xfs" PARTUUID="0723b28f-01"
/dev/sda2: UUID="gcXFmM-AcLo-1bVG-ODrZ-uXf0-aT6M-76VTbP" TYPE="LVM2_member" PARTUUID="0723b28f-02"
/dev/sdb1: UUID="8d0db49b-b8d6-4219-943b-96b7aa2b7485" BLOCK_SIZE="4096" TYPE="xfs" PARTUUID="1ca59a8e-01"
[root@test-vm-02 ~]# mount UUID=8d0db49b-b8d6-4219-943b-96b7aa2b7485 /mnt/
[root@test-vm-02 ~]# df -h /mnt/
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/sdb1         10G  104M  9.9G    2% /mnt
[root@test-vm-02 ~]# cat /mnt/test.txt
test

以上。

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