Nutanix AHV 上の仮想マシンに作成される vDisk は、基本的には仮想マシンに紐づけられて管理されます。しかし、仮想マシン間でのデータ受け渡しなどで vDisk を独立させて管理したいことがあります。
AHV で vDisk を独立管理するには、次の方法が考えられます。
- イメージ サービスを利用する
- ボリューム グループを利用する(今回の方法)
今回は仮想マシンの vDisk を、ボリューム グループの vDisk に変換して管理してみます。
今回の内容です。
ボリューム グループ(VG)での vDisk 管理
Nutanix HCI では、Nutanix Volumes によってブロック ストレージをボリューム グループ(VG)として提供できます。そこで VG に含まれる vDisk を、既存の仮想マシン vDisk からクローン作成します。
今回の作業の流れです。
- VG を作成する。
- 既存の仮想マシンに作成されている vDisk から、VG に vDisk を作成する。
- 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
以上。