Merge pull request #16303 from coolljt0725/add_docker_info_show_base_size

Add docker info show base filesystem size of container/image when use devicemapper
This commit is contained in:
Vincent Demeester 2015-10-13 14:43:52 +02:00
commit 5ecbc9747f
3 changed files with 14 additions and 0 deletions

View File

@ -49,6 +49,7 @@ will display something like:
Storage Driver: devicemapper Storage Driver: devicemapper
Pool Name: docker-253:1-17538953-pool Pool Name: docker-253:1-17538953-pool
Pool Blocksize: 65.54 kB Pool Blocksize: 65.54 kB
Base Device Size: 107.4 GB
Data file: /dev/loop4 Data file: /dev/loop4
Metadata file: /dev/loop4 Metadata file: /dev/loop4
Data Space Used: 2.536 GB Data Space Used: 2.536 GB
@ -69,6 +70,7 @@ Each item in the indented section under `Storage Driver: devicemapper` are
status information about the driver. status information about the driver.
* `Pool Name` name of the devicemapper pool for this driver. * `Pool Name` name of the devicemapper pool for this driver.
* `Pool Blocksize` tells the blocksize the thin pool was initialized with. This only changes on creation. * `Pool Blocksize` tells the blocksize the thin pool was initialized with. This only changes on creation.
* `Base Device Size` tells the maximum size of a container and image
* `Data file` blockdevice file used for the devicemapper data * `Data file` blockdevice file used for the devicemapper data
* `Metadata file` blockdevice file used for the devicemapper metadata * `Metadata file` blockdevice file used for the devicemapper metadata
* `Data Space Used` tells how much of `Data file` is currently used * `Data Space Used` tells how much of `Data file` is currently used

View File

@ -146,6 +146,8 @@ type Status struct {
Data DiskUsage Data DiskUsage
// Metadata is the disk used for meta data. // Metadata is the disk used for meta data.
Metadata DiskUsage Metadata DiskUsage
// BaseDeviceSize is base size of container and image
BaseDeviceSize uint64
// SectorSize size of the vector. // SectorSize size of the vector.
SectorSize uint64 SectorSize uint64
// UdevSyncSupported is true if sync is supported. // UdevSyncSupported is true if sync is supported.
@ -833,6 +835,14 @@ func getDeviceUUID(device string) (string, error) {
return uuid, nil return uuid, nil
} }
func (devices *DeviceSet) getBaseDeviceSize() uint64 {
info, _ := devices.lookupDevice("")
if info == nil {
return 0
}
return info.Size
}
func (devices *DeviceSet) verifyBaseDeviceUUID(baseInfo *devInfo) error { func (devices *DeviceSet) verifyBaseDeviceUUID(baseInfo *devInfo) error {
devices.Lock() devices.Lock()
defer devices.Unlock() defer devices.Unlock()
@ -2198,6 +2208,7 @@ func (devices *DeviceSet) Status() *Status {
status.DeferredRemoveEnabled = devices.deferredRemove status.DeferredRemoveEnabled = devices.deferredRemove
status.DeferredDeleteEnabled = devices.deferredDelete status.DeferredDeleteEnabled = devices.deferredDelete
status.DeferredDeletedDeviceCount = devices.nrDeletedDevices status.DeferredDeletedDeviceCount = devices.nrDeletedDevices
status.BaseDeviceSize = devices.getBaseDeviceSize()
totalSizeInSectors, _, dataUsed, dataTotal, metadataUsed, metadataTotal, err := devices.poolStatus() totalSizeInSectors, _, dataUsed, dataTotal, metadataUsed, metadataTotal, err := devices.poolStatus()
if err == nil { if err == nil {

View File

@ -79,6 +79,7 @@ func (d *Driver) Status() [][2]string {
status := [][2]string{ status := [][2]string{
{"Pool Name", s.PoolName}, {"Pool Name", s.PoolName},
{"Pool Blocksize", fmt.Sprintf("%s", units.HumanSize(float64(s.SectorSize)))}, {"Pool Blocksize", fmt.Sprintf("%s", units.HumanSize(float64(s.SectorSize)))},
{"Base Device Size", fmt.Sprintf("%s", units.HumanSize(float64(s.BaseDeviceSize)))},
{"Backing Filesystem", backingFs}, {"Backing Filesystem", backingFs},
{"Data file", s.DataFile}, {"Data file", s.DataFile},
{"Metadata file", s.MetadataFile}, {"Metadata file", s.MetadataFile},