【发布时间】:2022-04-05 23:17:45
【问题描述】:
您好,我有几个使用 AWS beanstalk 运行 docker 映像的集群。我的 Docker 映像大小为 680MB,并且我验证了 Docker 数据卷 (/dev/xvdcz) 的容量为 12GB。我还验证了没有需要修剪的悬空图像/陈旧容器。目前它有 2 张图片(所以应该是大约 1.4GB)。
也就是说,我的新应用程序部署一直失败并出现错误:
layer: devmapper: Thin Pool has 1805 free data blocks which is less than minimum required 2425 free data blocks. Create more free space in thin pool or use dm.min_free_space option to change behavior
在未来的调查中,我发现/etc/sysconfig/docker-storage 中有一个设置将 dm.baseSize 设置为 100GB。这是文件内容:
DOCKER_STORAGE_OPTIONS="--storage-driver devicemapper --storage-opt dm.thinpooldev=/dev/mapper/docker-docker--pool --storage-opt dm.use_deferred_removal=true --storage-opt dm.use_deferred_deletion=true --storage-opt dm.fs=ext4 --storage-opt dm.basesize=100G"
这来自默认 AWS AMI。之后,我添加了一个 ebextension 以将 docker 卷 (/dev/xvdcz) 增加到 120GB,此后一切都没有失败。
我的问题是为什么我们需要 baseSize 为 100GB,有没有办法可以将它减少到 10GB,这样我就不必为每个盒子附加额外的存储空间?理想情况下,无需构建自定义 AMI。
这是我将卷更新到 120GB 后的新配置。
[ec2-user ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:1 0 8G 0 disk
├─nvme0n1p1 259:2 0 8G 0 part /
└─nvme0n1p128 259:3 0 1M 0 part
nvme1n1 259:0 0 120G 0 disk
└─nvme1n1p1 259:6 0 120G 0 part
├─docker-docker--pool_tdata 253:1 0 118.6G 0 lvm
│ └─docker-docker--pool 253:2 0 118.6G 0 lvm
│ └─docker-259:2-394917-4a52cb647e0a91037aaf4fb64345ae55567f2d8c5ff073048981987e6dcba7b0 253:3 0 100G 0 dm /var/lib/docker/devicemapper/mnt/4a52cb647e0a91037aaf4fb64345ae55567f2d8c5ff073048981987e6dcba7b0
└─docker-docker--pool_tmeta 253:0 0 124M 0 lvm
└─docker-docker--pool 253:2 0 118.6G 0 lvm
└─docker-259:2-394917-4a52cb647e0a91037aaf4fb64345ae55567f2d8c5ff073048981987e6dcba7b0 253:3 0 100G 0 dm /var/lib/docker/devicemapper/mnt/4a52cb647e0a91037aaf4fb64345ae55567f2d8c5ff073048981987e6dcba7b0
【问题讨论】:
-
我遇到了和你一样的问题..你能粘贴你的.ebextension文件的内容吗?
-
同样的问题,我将大小增加到 128 Gb,但错误仍然存在。
标签: amazon-web-services docker amazon-elastic-beanstalk