Ich habe kürzlich (von einem RedHat-Typen) gehört, dass "Direct-LVM" (Devicemapper) das empfohlene Speicher-Backend für Produktions-Setups ist, also wollte ich Probieren Sie das auf einer CentOS 7 VM aus. (Wo Loopback-LVM scheint der Standard zu sein).Wie man Docker sagt, dm/LVM-Backend für Volumes anstelle von vfs zu verwenden
Also habe ich eine separate Datenplatte und VG mit 2 LVs für Daten und Metadaten, übergeben sie in die Docker config und begann Docker up ... so weit so gut, sieht wie folgt aus:
# ps auxwf
...
/usr/bin/docker -d --selinux-enabled -H unix://var/run/docker.sock \
--log-level=warn --storage-opt dm.fs=xfs \
--storage-opt dm.datadev=/dev/vg_data/docker-data \
--storage-opt dm.metadatadev=/dev/vg_data/docker-meta \
--storage-opt dm.basesize=30G --bip=172.17.42.1/24 \
# docker info
Containers: 8
Images: 145
Storage Driver: devicemapper
Pool Name: docker-253:0-34485692-pool
Pool Blocksize: 65.54 kB
Backing Filesystem: xfs
Data file: /dev/vg_data/docker-data
Metadata file: /dev/vg_data/docker-meta
Data Space Used: 4.498 GB
Data Space Total: 34.36 GB
Data Space Available: 29.86 GB
Metadata Space Used: 6.402 MB
Metadata Space Total: 104.9 MB
Metadata Space Available: 98.46 MB
...
...
Aber heute, als ich einen Container gestartet habe, der ziemlich viele lokale Daten erzeugt (da ich das zum Testen nicht persistieren muss, habe ich diese Volumes beim Start nirgends abgebildet), bemerkte ich, dass Volume-Daten alle gesetzt sind in /var/lib/docker/vfs
Verzeichnisse statt der LVM-Thinpool wie ich erwartet habe.
Dies ist in der Tat füllen meine root-fs, die ich mit Absicht klein gehalten.
Dies ist der Datenträger-Layout als der Docker-Moderator gesehen:
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
+-sda1 8:1 0 500M 0 part /boot
+-sda2 8:2 0 9.5G 0 part
+-centos_system-root 253:0 0 8.5G 0 lvm/
+-centos_system-swap 253:1 0 1G 0 lvm [SWAP]
sdb 8:16 0 50G 0 disk
+-vg_data-docker--data 253:2 0 32G 0 lvm
| +-docker-253:0-34485692-pool 253:4 0 32G 0 dm
| +-docker-253:0-34485692-... 253:5 0 30G 0 dm
| +-docker-253:0-34485692-... 253:6 0 30G 0 dm
+-vg_data-docker--meta 253:3 0 100M 0 lvm
+-docker-253:0-34485692-pool 253:4 0 32G 0 dm
+-docker-253:0-34485692-... 253:5 0 30G 0 dm
+-docker-253:0-34485692-... 253:6 0 30G 0 dm
Wie kann ich Docker Volumes bekommen zu setzen (entweder implizit erstellt oder explizit in Datencontainer) auf die konfiguriert gestellt werden Speicher-Backend?
Oder wird das wirklich nur für (Basis-) Bilder verwendet und meine Erwartungen waren total falsch?
Dieser großartige Artikel beantwortet meine Fragen: http://container-solutions.com/2014/12/understanding-volumes-docker/ ... so war ich eigentlich falsch mit meinen Annahmen – powo