読者です 読者をやめる 読者になる 読者になる

NTNX>日記

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

Nutanix CE ABS の VG を Linux に 「Attach to a VM」 接続してみる。

Nutanix CE の Acropolis Block Services(ABS) の Volume Group(VG)を、Linux VM に「Attach to a VM」で接続してみました。この場合、ゲスト OS の iSCSI Initiator ではなく、Acropolis Hypervisor(AHV = KVM) の、QEMU がもつ iSCSI Initiator 機能で  VM に直接 vDisk が接続されます。

VG は、以前の投稿で作成した「vg01」を流用します。

VG には、8GB、40GB の 2つの vDisk を含みます。

f:id:gowatana:20160724203537p:plain

Linux から iSCSI デバイス切断

まず、前回の投稿で Linux に ゲスト OS の iSCSI Initiator で接続した iSCSI ディスクを切断します。ゲストOS は、Oracle Linux 7.2 (RHEL 7.2 互換)です。

[root@vm01 ~]# cat /etc/oracle-release
Oracle Linux Server release 7.2
[root@vm01 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)

ディスクは /u01 と /u02 にマウントしています。

[root@vm01 ~]# df -h /u0?
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc1       7.8G   36M  7.3G   1% /u01
/dev/sdb1        40G   49M   38G   1% /u02

アンマウントします。

[root@vm01 ~]# umount /u01 /u02

iSCSI のディスクは、まだ接続されています。

[root@vm01 ~]# lsscsi
[0:0:0:0]    cd/dvd  QEMU     QEMU DVD-ROM     2.1.  /dev/sr0
[2:0:0:0]    disk    NUTANIX  VDISK            0     /dev/sda
[3:0:0:0]    disk    NUTANIX  VDISK            0     /dev/sdc
[4:0:0:0]    disk    NUTANIX  VDISK            0     /dev/sdb
[root@vm01 ~]# iscsiadm -m session
tcp: [1] 10.1.1.13:3260,1 iqn.2010-06.com.nutanix:vg01-7656347c-143a-4235-a5cb-4161f46021b0-tgt0 (non-flash)
tcp: [2] 10.1.1.13:3260,1 iqn.2010-06.com.nutanix:vg01-7656347c-143a-4235-a5cb-4161f46021b0-tgt1 (non-flash)

iSCSI のディスクを切断します。

[root@vm01 ~]# iscsiadm -m node -p 10.1.1.13 --logout
Logging out of session [sid: 1, target: iqn.2010-06.com.nutanix:vg01-7656347c-143a-4235-a5cb-4161f46021b0-tgt0, portal: 10.1.1.13,3205]
Logging out of session [sid: 2, target: iqn.2010-06.com.nutanix:vg01-7656347c-143a-4235-a5cb-4161f46021b0-tgt1, portal: 10.1.1.13,3205]
Logout of [sid: 1, target: iqn.2010-06.com.nutanix:vg01-7656347c-143a-4235-a5cb-4161f46021b0-tgt0, portal: 10.1.1.13,3205] successful.
Logout of [sid: 2, target: iqn.2010-06.com.nutanix:vg01-7656347c-143a-4235-a5cb-4161f46021b0-tgt1, portal: 10.1.1.13,3205] successful.

iSCSI ディスクの /dev/sdb と /dev/sdc が見えなくなりました。

[root@vm01 ~]# lsscsi
[0:0:0:0]    cd/dvd  QEMU     QEMU DVD-ROM     2.1.  /dev/sr0
[2:0:0:0]    disk    NUTANIX  VDISK            0     /dev/sda

/etc/fstab から自動マウント設定を削除しておきます。今回は「_netdev」オプションの行が iSCSI 用しかないので下記で・・・

[root@vm01 ~]# sed -i -e "/_netdev/d" /etc/fstab

iscsid は、とりあえず停止しておきます。

[root@vm01 ~]# systemctl stop iscsid
Warning: Stopping iscsid.service, but it can still be activated by:
  iscsid.socket
[root@vm01 ~]# systemctl disable iscsid
Removed symlink /etc/systemd/system/multi-user.target.wants/iscsid.service.

VM への VG 接続

VG から IQN 削除

これまで接続していた Linux ゲスト OS の iSCSI Initiator IQN を削除します。

 「Storage」→「Table」→「Volume Group」を開いて、vg01 の「Update」をクリックします。

f:id:gowatana:20160724204418p:plain

IQN の「x」ボタンをクリックします。

f:id:gowatana:20160724205159p:plain

 確認画面で、「Yes」をクリックします。

f:id:gowatana:20160724205238p:plain

いったん Save します。ここで Save せずに「Attach to a VM」しようとするとエラーになります。

f:id:gowatana:20160724205345p:plain

VG の VM への接続

ふたたび VG「vg01」の 「Update」を開いて、「Attach to a VM」をクリックします。

f:id:gowatana:20160724205828p:plain

接続する VM (今回は vm01)を選択して、「Attach」をクリックします。

vm01 は、これまでゲスト OS の iSCSI Initiator で VG を接続していた VM でもあります。

f:id:gowatana:20160724205858p:plain

Save します。

f:id:gowatana:20160724205940p:plain

VM での接続確認

Prism で vm01 の「VM Tasks」タブを見ると、vg01 が接続されたことが分かります。

f:id:gowatana:20160724210447p:plain

ただし、「Virtual Disks」タブには VG のディスクは表示されないようです。もともと接続している ゲスト OS のインストールされたディスクだけ表示されています。

f:id:gowatana:20160724210626p:plain

AHV にログインして virsh コマンドを実行すると、VM が iSCSI 接続していることがわかります。

[root@NTNX-b3b7a3a8-A ~]# virsh list
 Id    Name                           State
----------------------------------------------------
 2     NTNX-b3b7a3a8-A-CVM            running
 3     e5a1c372-b219-4a2f-94c3-8e90347f52e6 running

[root@NTNX-b3b7a3a8-A ~]# virsh dumpxml 3 | grep -C1 -n iscsi
      <driver name='qemu' type='raw' cache='none' error_policy='report' io='native'/>
      <source protocol='iscsi' name='iqn.2010-06.com.nutanix:vmdisk-473eb057-14ba-49b7-bdc9-869ff39282a0/0'>
        <host name='127.0.0.1' port='3261'/>
--
      <driver name='qemu' type='raw' cache='none' error_policy='report' io='native'/>
      <source protocol='iscsi' name='iqn.2010-06.com.nutanix:vg01-7656347c-143a-4235-a5cb-4161f46021b0/0'>
        <host name='127.0.0.1' port='3261'/>
--
      <driver name='qemu' type='raw' cache='none' error_policy='report' io='native'/>
      <source protocol='iscsi' name='iqn.2010-06.com.nutanix:vg01-7656347c-143a-4235-a5cb-4161f46021b0/1'>
        <host name='127.0.0.1' port='3261'/>      

ゲスト OS での接続確認

vDidk は VM のレイヤで iSCSI 接続されているため、ゲスト OS では直接接続された SCSI ディスクとして認識されています。ゲスト OS 自身では iSCSI 接続がない状態です。

[root@vm01 ~]# cat /etc/oracle-release
Oracle Linux Server release 7.2
[root@vm01 ~]# iscsiadm -m session
iscsiadm: No active sessions.

しかし、VM の iSCSI Initiator で vDisk が接続されるので、VG のディスクが見えるようになっています。

[root@vm01 ~]# lsscsi
[0:0:0:0]    cd/dvd  QEMU     QEMU DVD-ROM     2.1.  /dev/sr0
[2:0:0:0]    disk    NUTANIX  VDISK            0     /dev/sda
[2:0:1:0]    disk    NUTANIX  VDISK            0     /dev/sdb
[2:0:1:1]    disk    NUTANIX  VDISK            0     /dev/sdc

マウントして中のファイルを見ると、以前の投稿で作成したテストファイルがそのまま見えます。

[root@vm01 ~]# mount -L /u01 /u01
[root@vm01 ~]# mount -L /u02 /u02
[root@vm01 ~]# df -h /u0?
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       7.8G   36M  7.3G   1% /u01
/dev/sdc1        40G   49M   38G   1% /u02
[root@vm01 ~]# cat /u01/test.f /u02/test.f
poke
go

今回は Nutanix CE 内の VM で iSCSI / Attach to a VM の接続を試しましたが、IQN 登録をする iSCSI 接続であれば Nutanix 外部のサーバにも接続することができます。工夫すれば、VG やその Snapshot を利用したデータのやり取りが可能になります。

以上。