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 も自動的に登録されます。
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" } ]
つづく・・・