Вышел VMware vSphere Docker Volume Driver - средство работы с хранилищами для данных контейнеров приложений.
Вышел VMware vSphere Docker Volume Driver - средство работы с хранилищами для данных контейнеров приложений.
Автор: Александр Самойленко
Дата: 21/06/2016
|
На днях мы писали о том, что компания VMware выпустила релизную версию своей минимальной операционной системы Photon OS 1.0, которая предназначена для исполнения виртуальных контейнеров Docker. Многие сразу задумались о том, как дело обстоит с работой контейнеров с хранилищами своих данных.
Как раз в этой связи компания VMware выпустила технологическое превью драйвера vSphere Docker Volume Driver, позволяющего напрямую работать с виртуальными хранилищами прямо из контейнеров Docker (версии 1.9 или выше).
Архитектура решения выглядит так:

Как видно из картинки, нам потребуется установить Volume Driver на серверы VMware ESXi, а также плагины vSphere Docker Volume Plugin на виртуальные машины Docker Host, где будут исполняться наши контейнеры. Также мы видим, что в качестве хранилищ поддерживаются практически все, что поддерживает платформа vSphere: тома VMFS (локальные и общие), NFS-хранилища, а также тома Virtual SAN (и соответственно их политики по обеспечению избыточности данных в целях отказоустойчивости).
Рассмотрим развертывание решения vSphere Docker Volume Driver по шагам.
1. На серверы VMware ESXi 6.0 или выше устанавливается компонент vSphere Data Volume Driver в виде обычного VIB-пакета.
Делается это примерно так:
[root@esxi-hp-08:~] esxcli software vib install \
-d "/vmfs/volumes/569c904a-8880cc78-a5c7-a0369f56ddc0/\
vmdkops/vmware-esx-vmdkops-0.1.0.tp.zip" --no-sig-check -f
Installation Result
Message: Operation finished successfully.
Reboot Required: false
VIBs Installed: VMWare_bootbank_esx-vmdkops-service_1.0.0-0.0.1
VIBs Removed:
VIBs Skipped:
[root@esxi-hp-08:~]
Предварительно нужно загрузить драйвер по этой ссылке.
2. Проверяем статус установленных пакетов.
[root@esxi-hp-08:~] /etc/init.d/vmdk-opsd status
vmdkops-opsd is running pid=12343527
[root@esxi-hp-08:~]
3. Развертываем Photos OS, которая будет служить нам как Docker Host.
Скачать Photon OS можно по этой ссылке.
4. Устанавливаем VMDK Plugin (Docker Volume Plugin) на хост ESXi.
Проверяем версию Docker:
root@photon-machine [ ~ ]# docker version
Client:
Version: 1.11.0
API version: 1.23
Go version: go1.5.4
Git commit: 4dc5990
Built: Wed Apr 13 19:36:04 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.0
API version: 1.23
Go version: go1.5.4
Git commit: 4dc5990
Built: Wed Apr 13 19:36:04 2016
OS/Arch: linux/amd64
root@photon-machine [ ~ ]#
Install the RPM (I’ve used “-U” out of habit, but “-i” can also be used):
Устанавливаем RPM-пакет с плагином в гостевую ОС:
root@photon-machine [ ~ ]# ls
docker-volume-vsphere-0.1.0.tp-1.x86_64.rpm
root@photon-machine [ ~ ]# rpm -Uvh docker-volume-vsphere-0.1.0.tp-1.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:docker-volume-vsphere-0:0.1.0.tp-################################# [100%]
File: '/proc/1/exe' -> '/usr/lib/systemd/systemd'
Created symlink from /etc/systemd/system/multi-user.target.wants/\
docker-volume-vsphere.service to /usr/lib/systemd/system/docker-volume-vsphere.service.
5. Проверяем статус плагина:
root@photon-machine [ ~ ]# systemctl status docker-volume-vsphere
* docker-volume-vsphere.service - "Docker Volume Driver for vSphere"
Loaded: loaded (/usr/lib/systemd/system/docker-volume-vsphere.service;\
enabled; vendor preset: enabled)
Active: active (running) since Mon 2016-05-30 09:04:21 UTC; 28s ago
Main PID: 256 (docker-volume-v)
CGroup: /system.slice/docker-volume-vsphere.service
`-256 /usr/local/bin/docker-volume-vsphere
May 30 09:04:21 photon-machine systemd[1]: Started "Docker Volume Driver\
for....
Hint: Some lines were ellipsized, use -l to show in full.
root@photon-machine [ ~ ]#
6. Создаем том для использования его контейнером.
root@photon-machine [ ~ ]# docker volume create --driver=vmdk \
--name=MyVolume -o size=20gb
MyVolume
7. Проверяем созданный том.
root@photon-machine [ ~ ]# docker volume ls
DRIVER VOLUME NAME
vmdk MyVolume
root@photon-machine [ ~ ]#
8. Смотрим детали.
root@photon-machine [ ~ ]# docker volume inspect MyVolume
[
{
"Name": "MyVolume",
"Driver": "vmdk",
"Mountpoint": "/mnt/vmdk/MyVolume",
"Labels": {}
}
]
root@photon-machine [ ~ ]#
9. Теперь с машины с Photon OS запустим контейнер с образом Ubuntu внутри и направим его хранилище к только что созданному.
root@photon-machine [ ~ ]# docker run -it -v MyVolume:/MyVolume ubuntu bash
root@bd9410fb4c1d:/# ls
Myvolume bin boot dev etc home lib lib64 media mnt opt proc \
root run sbin srv sys tmp usr var
root@fe8c21d003fa:/# df
Filesystem 1K-blocks Used Available Use% Mounted on
overlay 8122788 6095776 1591356 80% /
tmpfs 4085412 0 4085412 0% /dev
tmpfs 4085412 0 4085412 0% /sys/fs/cgroup
/dev/disk/by-path/pci-0000:0b:00.0-scsi-0:0:0:0 20642428 44992 19548860 1% /MyVolume
/dev/root 8122788 6095776 1591356 80% /etc/hosts
shm 65536 0 65536 0% /dev/shm
root@fe8c21d003fa:/#
root@bd9410fb4c1d:/# cd Myvolume/
root@bd9410fb4c1d:/Myvolume# ls
root@bd9410fb4c1d:/Myvolume#
10. Также можно создавать хранилища и на кластерах Virtual SAN.
Тома можно создавать с учетом политики FTT или QoS. Например:
docker volume create --driver=vmdk --name=vol2 -o size=20gb -o vsan-policy-name=FTT=0
11. Сами VMDK-диски с хранилищами Docker можно посмотреть в обычном браузере хранилищ.
Например, для кластера Virtual SAN их можно найти в следующем месте:

Более подробная информация о драйвере размещена тут, тут и тут (там же есть более подробная информация о его развертывании).
|