Docker devicemapper目录下data和metadata文件大小显示的问题


首先我的docker版本
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8/1.4.1
OS/Arch (client): linux/amd64
Server version: 1.4.1
Server API version: 1.16
Go version (server): go1.3.3
Git commit (server): 5bc2ff8/1.4.1

系统是 Linux 192.168.3.73 2.6.32-504.12.2.el6.x86_64
root@pts/1 # ls -lart /var/lib/docker/devicemapper/devicemapper/
total 1365364
drwx------ 2 root root         4096 Apr 15 13:18 .
drwx------ 5 root root         4096 Apr 15 13:33 ..
**-rw------- 1 root root *107374182400* Apr 16 16:04 data**
**-rw------- 1 root root   *2147483648* Apr 16 16:04 metadata**
192.168.3.73  2015-04-16 16:06:08
root@pts/1 # du -sh /var/lib/docker/devicemapper/devicemapper/data 
1.3G    /var/lib/docker/devicemapper/devicemapper/data
192.168.3.73  2015-04-16 16:06:15
root@pts/1 # du -sh /var/lib/docker/devicemapper/devicemapper/metadata 
2.5M    /var/lib/docker/devicemapper/devicemapper/metadata

实际这两个文件大小和显示的不一致,我在多台centos下查看了这个值,显示都是 1073741824002147483648 ,这个是怎么回事?
已邀请:

徐新坤 - 京东商城-TIG-JDOS团队

赞同来自:


dm的这两个文件,也就是data和metadata,都是稀疏文件。稀疏文件的大小在创建时候指定。你应该是采用默认启动的,所以两个稀疏文件通过ls显示的是其理论所占空间100G和20G。但是由于是稀疏文件,中间若干字节其实是由0填充,通过稀疏的方式,实际所占空间就没有那么大了。du查看的是其实际所占磁盘大小。

Colin506

赞同来自:


@xiaohunsanguo 哪这两个文件大小设置的参数是什么?

zjumoon - 蘑菇街-牧白 mubai@mogujie.com

赞同来自:


可以参考docker配置文件中的这两个参数dm.basesize dm.loopdatasize
例如:
dm.basesize=100G --storage-opt dm.loopdatasize=1000G

要回复问题请先登录注册