2016-03-28 44 views
3

我的系统上的docke info命令输出如下:Docker中为什么使用“数据空间”+“数据空间可用”!=“数据空间总量”?

# docker info 
Containers: 0 
Images: 0 
Storage Driver: devicemapper 
..... 
Data Space Used: 1.821 GB 
Data Space Total: 107.4 GB 
Data Space Available: 32.92 GB 
Metadata Space Used: 1.479 MB 
Metadata Space Total: 2.147 GB 
Metadata Space Available: 2.146 GB 
...... 

的 “Metadata Space Used” + “Metadata Space Available”= Metadata Space Total,但为什么 “Data Space Used” + “Data Space Available”= “Data Space Total”?

+0

这是磁盘卷的?文件分配在整个页面大小块中:一个1字节的文件使用尽可能多的磁盘空间作为一个10字节的文件。在添加个人大小时,您只能看到报告的11个字节,但磁盘空闲空间减少了2个整页。 – usr2564301

回答

0

如果devicemapper使用loop-lvm配置,则使用“稀疏”存储设备。您可以使用任意大小指定该设备的大小,但永远不会使用比机器上实际可用的更多的存储空间。

Data Space Total报告的大小是为“稀疏”设备(在此例为100 GB)中指定的大小。 “可用数据空间”显示您系统上可用的空间量实际上可用。例如,下面,我在具有40GB实际存储空间(使用-s devicemapper --storage-opt dm.loopdatasize=200G守护程序选项)的系统上创建了一个200GB的设备;

Storage Driver: devicemapper 
Pool Name: docker-253:1-138480-pool 
Pool Blocksize: 65.54 kB 
Base Device Size: 10.74 GB 
Backing Filesystem: ext4 
Data file: /dev/loop0 
Metadata file: /dev/loop1 
Data Space Used: 305.7 MB 
Data Space Total: 214.7 GB 
Data Space Available: 39.79 GB 
Metadata Space Used: 1.147 MB 
Metadata Space Total: 2.147 GB 
Metadata Space Available: 2.146 GB 
Udev Sync Supported: true 
Deferred Removal Enabled: false 
Deferred Deletion Enabled: false 
Deferred Deleted Device Count: 0 

你可以看到,它的报告Data Space Total: 214.7 GB(这是200GB),但显示39.79 GB可用(系统上的物理可用空间)

注意用完时物理空间,你会得到数据损坏,你可能无法从中恢复,所以值得监视你剩下多少空间。

有关配置devicemapper(也可用于生产,使用直接LVM)的更多信息,请参阅https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/