centos - 如何告诉 Docker 为卷使用 dm/LVM 后端而不是 vfs

标签 centos docker redhat lvm device-mapper

我最近听说(来自 RedHat 的人)“direct-LVM”(devicemapper) 是推荐用于生产设置的存储后端,所以我想在 CentOS 7 VM 上尝试一下。 (其中 loopback-LVM 似乎是默认设置)。

所以我创建了一个单独的数据磁盘和具有 2 个 LV 用于数据和元数据的 VG,将它们传递到 docker config 并启动 docker ...到目前为止一切顺利,如下所示:

# 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
 ...
 ...

但是今天当我启动一个生成几乎所有本地数据的容器时(因为我不需要为测试而持久化它,所以我没有在启动时将卷映射到任何地方),我注意到卷数据是全部放入 /var/lib/docker/vfs 目录,而不是我预期的 LVM Thinpool。

这实际上填满了我故意保持较小的 root-fs。

这是 Docker-Host 看到的磁盘布局:

# 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   

如何让 Docker 将卷(在数据容器中隐式创建或显式创建)放入配置的存储后端?

或者这真的只用于(基本)图像而我的期望完全错误?

最佳答案

您需要指定一个挂载点,例如“-g/docker”。

关于centos - 如何告诉 Docker 为卷使用 dm/LVM 后端而不是 vfs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30201276/

相关文章:

linux - Pecl Swoole php插件在linux centos上安装失败

ruby - CentOS 5.4 和 Rubyworks——它变老了

docker - 发生错误 :Nosuch container? 时如何将文件复制到 docker 容器

docker - 当您将服务帐户分配给 Cloud Run 服务时,究竟会发生什么?

c++ - 红帽 : using <atomic> compiles fine but linker can't find __atomic_store_16; what library?

mysql - 为什么 mariaDB 错误地要求缺少组件

Docker 挂载卷 GID 不匹配导致错误 : dial unix/var/run/docker. sock: connect: permission denied

linux - 如何设置 R 的环境变量以在 RedHat Linux (RHEL6) 上的 Tomcat 中使用

linux -/proc/sys/vm/flush_mmap_pages 去哪儿了?

ruby - rvm在centos上安装ruby 2.2.0