更改docker默認的data,metadata存儲大小(實操)


為什么要更改 data,metadata呢?我們運行環境中涉及大量數據操作,數據增長有時候很快,由於之前規划不足,所以磁盤很快達到瓶頸需要進行重新部署。
這就需要調整原來的一些docker配置。

操作系統環境采樣

[root@fp-web-130 storage]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

[root@fp-web-130 storage]# uname -r
3.10.0-327.el7.x86_64

[root@fp-web-130 storage]# docker version
Client:
Version: 18.03.0-ce
API version: 1.37
Go version: go1.9.4
Git commit: 0520e24
Built: Wed Mar 21 23:09:15 2018
OS/Arch: linux/amd64
Experimental: false
Orchestrator: swarm

Server:
Engine:
Version: 18.03.0-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.4
Git commit: 0520e24
Built: Wed Mar 21 23:13:03 2018
OS/Arch: linux/amd64
Experimental: false


在更改之前,docker info 查看下,當前docker的存儲情況。

此時,data的目錄大小是:107G,Metadata的目錄大小是:2.147G

 docker info一下 修改之前

 [root@fp-web-130 storage]# docker info

Containers: 22
Running: 0
Paused: 0
Stopped: 22
Images: 47
Server Version: 18.03.0-ce
Storage Driver: devicemapper
Pool Name: docker-8:21-2457601-pool
Pool Blocksize: 65.54kB
Base Device Size: 10.74GB
Backing Filesystem: xfs
Udev Sync Supported: true
Data file: /dev/loop0
Metadata file: /dev/loop1
Data loop file: /mnt/docker/storage/devicemapper/devicemapper/data
Metadata loop file: /mnt/docker/storage/devicemapper/devicemapper/metadata
Data Space Used: 3.333GB
Data Space Total: 107.4GB    //默認大小
Data Space Available: 102GB    
Metadata Space Used: 4.874MB
Metadata Space Total: 2.147GB  //默認2G
Metadata Space Available: 2.143GB
Thin Pool Minimum Free Space: 10.74GB
Deferred Removal Enabled: true
Deferred Deletion Enabled: true
Deferred Deleted Device Count: 0
Library Version: 1.02.107-RHEL7 (2015-10-14)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: cfd04396dc68220d1cecbe686a6cc3aa5ce3667c
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: 949e6fa
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-327.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 15.66GiB
Name: fp-web-130
ID: ETLX:HANE:UUNX:KHX4:2ZXU:DVQN:UIOU:ZDAP:SLZG:3RYD:VPPM:O6GF
Docker Root Dir: /mnt/docker/storage
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

WARNING: devicemapper: usage of loopback devices is strongly discouraged for production use.
Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

 

關鍵要執行的命令如下:

dd if=/dev/zero of=data bs=1G count=0 seek=500
dd if=/dev/zero of=metadata bs=1G count=0 seek=10

參數說明:

If:in xxx from xxx
Of:out xxx
bs:block size 塊大小
Count:
seek:創建的數量
數據大小計算 data = bs * seek

 

這里是寫的一個shell腳本

#!/bin/bash

DATA_SIZE=$1
METADATA_SIZE=$2

if [ "$DATA_SIZE" = "" ]; then
DATA_SIZE=1000
fi

if [ "$METADATA_SIZE" = "" ]; then
METADATA_SIZE=10
fi

# Stop docker service
systemctl stop docker

# Resize docker data space
dd if=/dev/zero of=/mnt/docker/storage/devicemapper/devicemapper/data bs=1G count=0 seek=$DATA_SIZE

# Resize docker metadata space
dd if=/dev/zero of=/mnt/docker/storage/devicemapper/devicemapper/metadata bs=1G count=0 seek=$METADATA_SIZE

# Start docker service
systemctl start docker

 
執行命令

[root@fp-web-130 storage]# sh resize_docker.sh 1000 10
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000127523 s, 0.0 kB/s
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000110421 s, 0.0 kB/s

 

docker info一下查看修改過之后池大小

[root@fp-web-130 storage]# docker info

Containers: 22
Running: 0
Paused: 0
Stopped: 22
Images: 47
Server Version: 18.03.0-ce
Storage Driver: devicemapper
Pool Name: docker-8:21-2457601-pool
Pool Blocksize: 65.54kB
Base Device Size: 10.74GB
Backing Filesystem: xfs
Udev Sync Supported: true
Data file: /dev/loop0
Metadata file: /dev/loop1
Data loop file: /mnt/docker/storage/devicemapper/devicemapper/data
Metadata loop file: /mnt/docker/storage/devicemapper/devicemapper/metadata
Data Space Used: 3.333GB
Data Space Total: 1.074TB   //已經改變
Data Space Available: 102GB
Metadata Space Used: 9.142MB
Metadata Space Total: 10.74GB   //已經改變大小
Metadata Space Available: 10.73GB
Thin Pool Minimum Free Space: 107.4GB
Deferred Removal Enabled: true
Deferred Deletion Enabled: true
Deferred Deleted Device Count: 0
Library Version: 1.02.107-RHEL7 (2015-10-14)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: cfd04396dc68220d1cecbe686a6cc3aa5ce3667c
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: 949e6fa
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-327.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 15.66GiB
Name: fp-web-130
ID: ETLX:HANE:UUNX:KHX4:2ZXU:DVQN:UIOU:ZDAP:SLZG:3RYD:VPPM:O6GF
Docker Root Dir: /mnt/docker/storage
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

WARNING: devicemapper: usage of loopback devices is strongly discouraged for production use.
Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

 

  lsblk一下

 

 

 

 注意:
 sdb磁盤我分了1個主分區 sdb1, 一個擴展分區sdb2, 在擴展分區上創建的sd5邏輯分區,由於整個磁盤是200G, 所以給sdb5 100G的空間
 我們看回環設備大小目前已經變化成了docker的回環設備loop0變成了 1T空間,loop1變成了10G空間
 之前我們是把docker鏡像和容器存儲位置從/var/lib/docker 改變到了 新加的磁盤的/mnt/docker/storage 位置上了。
 雖然我們更改了配置的大小,但是需要新硬盤大小支撐,所以只要保證硬盤大小和我們設置的大小對應即可。

 具體如何更改docker的鏡像和容器存儲位置,請看我的一篇文章
 https://www.cnblogs.com/aozhejin/p/15861052.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM