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

NTNX>日記

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

Nutanix CE で Acropolis Container Services (ACS) 。Part.4

ACS の Nutanix Volume Plug-In による Docker Data Volume を、Docker Host 側から見てみようと思います。ACS では、Nutanix の Acropolis Block Services (ABS) という機能による iSCSI 接続の Volume を使用しています。

前回はこちら。

ABS については、こちらもどうぞ。

今回の構成

使用している IP アドレスは下記です。

  • Nutanix CVM IP:10.1.1.11
  • Nutanix Cluster VIP: 10.1.1.12
  • Nutanix Cluster Data Service IP: 10.1.1.13  
  • Docker Host VM: 10.1.1.211 (ホスト名は docker-vm-01)

Docker Host の OS は CentOS 7.2 です。

[root@docker-vm-01 ~]# cat /etc/centos-release
CentOS Linux release 7.2.1511 (Core)

Docker コンテナのの起動

まず、Docker コンテナを起動します。今回も Nutanix Volume Plug-In を使用した「ntnx-vg01」ボリュームを指定します。

[root@docker-vm-01 ~]# docker run -it --volume-driver nutanix --name ct01 -v ntnx-vg01:/u01 oraclelinux

Nutanix ABS のボリュームは、自動的に作成されます。Nutanix Prism の「Volume Group」では、docker run コマンドの「-v」オプションで指定した名前の Volume Group (VG) が作成されます。既に VG が作成されている場合は、その VG を接続します。

VG には、Docker Host の iSCSI Initiator IQN も自動的に登録されます。

f:id:gowatana:20161016203949p:plain

Docker Host 側の iSCSI Initiator がもつ IQN と一致します。

[root@docker-vm-01 ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1994-05.com.redhat:d8b77ad6379d

ちなみに、作成された VG は、デフォルトでは複数の IQN からの接続が許可されていないので、別の Docker Host VM で起動する Docker コンテナに接続しようとするとエラーとなります。

[root@docker-vm-01 ~]# docker run -it --volume-driver nutanix --name ct03 -v ntnx-vg01:/u01 oraclelinux
docker: Error response from daemon: create ntnx-vg01: Error with request: post : volume_groups/81b755ef-d00e-4329-8761-a0f52c922c60/open, got status code 500; err: {u'message': u'Application error kInUse raised: VG is already attached and is in exclusive mode.'}.
See 'docker run --help'.

Docker Host の iSCSI セッションです。 

[root@docker-vm-01 ~]# iscsiadm -m session -P1
Target: iqn.2010-06.com.nutanix:ntnx-vg01:nutanix-docker-volume-plugin-tgt0 (non-flash)
        Current Portal: 10.1.1.11:3205,1
        Persistent Portal: 10.1.1.13:3260,1
                **********
                Interface:
                **********
                Iface Name: default
                Iface Transport: tcp
                Iface Initiatorname: iqn.1994-05.com.redhat:a42eadb5d50
                Iface IPaddress: 10.1.1.211
                Iface HWaddress: <empty>
                Iface Netdev: <empty>
                SID: 1
                iSCSI Connection State: LOGGED IN
                iSCSI Session State: LOGGED_IN
                Internal iscsid Session State: NO CHANGE 

iSCSI 接続しているデバイスは /dev/sdb と認識されていて、ext4 ファイルシステムです。

[root@docker-vm-01 ~]# ls -l /dev/disk/by-path/ip*
lrwxrwxrwx. 1 root root 9 Oct 15 04:36 /dev/disk/by-path/ip-10.1.1.13:3260-iscsi-iqn.2010-06.com.nutanix:ntnx-vg01:nutanix-docker-volume-plugin-tgt0-lun-0 -> ../../sdb
[root@docker-vm-01 ~]# blkid /dev/sdb
/dev/sdb: UUID="8adc7c5d-2c8e-4aeb-adf0-58b4741d6148" TYPE="ext4"

/dev/sdb は Docker Host で /var/lib/nutanix/ntnx-vg01 にマウントされています。

[root@docker-vm-01 ~]# lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb    8:16   0  10G  0 disk /var/lib/nutanix/ntnx-vg01

そして Data Volume「ntnx-vg01」は、/var/lib/nutanix/ntnx-vg01 に紐づいています。

[root@docker-vm-01 ~]# docker volume ls
DRIVER              VOLUME NAME
nutanix             ntnx-vg01
[root@docker-vm-01 ~]# docker volume inspect ntnx-vg01
[
    {
        "Name": "ntnx-vg01",
        "Driver": "nutanix",
        "Mountpoint": "/var/lib/nutanix/ntnx-vg01/ntnx-vg01",
        "Labels": null,
        "Scope": "local"
    }
]

つづく・・・