今天,我在备份过程中注意到docker17.05创建两个非常大的/var/lib/docker/devicemapper/devicemapper/
文件Debian Stretch。
-rw------- 1 root root 100G Dez 8 22:50 data
-rw------- 2 root root 2,0G Dez 7 01:22 metadata
我的问题:我的服务器有一个 120 GB 的 SSD,并且 / 分区是
root@server:/# df -h /
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
/dev/mapper/server--vg-root 71G 32G 37G 47% /
那么这怎么可能呢?为什么?这个文件占用了我大量的备份,所以我删除了它。没有它,Docker 守护进程就无法启动。
我在docker中运行一个应用程序:PlexMediaServer,其脚本如下:https://hub.docker.com/r/linuxserver/plex/
是的,有一个卷包含我的所有音乐和视频文件。但那是在 RAID 上,而不是在系统驱动器上。
从备份恢复文件需要花费几个小时,而且我很确定它会完全填满我的 SSD 然后停止。
答案1
该文件称为稀疏文件。以下是维基百科定义的摘录:
在计算机科学中,稀疏文件是一种计算机文件,当文件本身大部分为空时,它会尝试更有效地利用文件系统空间。这是通过将代表空块的简要信息(元数据)写入磁盘而不是构成块的实际“空”空间来实现的,从而使用较少的磁盘空间。仅当块包含“真实”(非空)数据时,才会将完整块大小作为实际大小写入磁盘。
它实际上并没有占用全部 100GB 的磁盘空间。显示的ls
是“表观大小”。要查看它实际占用的磁盘空间量,您可以使用该du
命令。
# ls -lh /var/lib/docker/devicemapper/devicemapper/data
-rw------- 1 root root 100G Dec 13 15:00 /var/lib/docker/devicemapper/devicemapper/data
# du -sh /var/lib/docker/devicemapper/devicemapper/data
43G /var/lib/docker/devicemapper/devicemapper/data
这docker 文档包含有关备份卷的最佳实践的信息。
答案2
我已经解决了这个问题:
mv /var/lib/docker /raid/docker
rm -r /var/lib/docker
ln -s /raid/docker /var/lib/docker