为什么要更改 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 -r3.10.0-327.el7.x86_64
[root@fp-web-130 storage]# docker versionClient: 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: 22Images: 47Server Version: 18.03.0-ceStorage 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-fileCgroup Driver: cgroupfsPlugins: Volume: local Network: bridge host macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslogSwarm: inactiveRuntimes: runcDefault Runtime: runcInit Binary: docker-initcontainerd version: cfd04396dc68220d1cecbe686a6cc3aa5ce3667crunc version: 4fc53a81fb7c994640722ac585fa9ca548971871init version: 949e6faSecurity Options: seccomp Profile: defaultKernel Version: 3.10.0-327.el7.x86_64Operating System: CentOS Linux 7 (Core)OSType: linuxArchitecture: x86_64CPUs: 8Total Memory: 15.66GiBName: fp-web-130ID: ETLX:HANE:UUNX:KHX4:2ZXU:DVQN:UIOU:ZDAP:SLZG:3RYD:VPPM:O6GFDocker Root Dir: /mnt/docker/storageDebug Mode (client): falseDebug Mode (server): falseRegistry: https://index.docker.io/v1/Labels:Experimental: falseInsecure Registries: 127.0.0.0/8Live 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 disabledWARNING: bridge-nf-call-ip6tables is disabled

关键要执行的命令如下:

dd if=/dev/zero of=data bs=1G count=0 seek=500dd if=/dev/zero of=metadata bs=1G count=0 seek=10
参数说明:
If:in xxx from xxxOf:out xxxbs:block size 块大小Count:seek:创建的数量数据大小计算 data = bs * seek

这里是写的一个shell脚本

#!/bin/bash
DATA_SIZE=$1METADATA_SIZE=$2
if [ "$DATA_SIZE" = "" ]; then DATA_SIZE=1000fi
if [ "$METADATA_SIZE" = "" ]; then METADATA_SIZE=10fi
# Stop docker servicesystemctl stop docker
# Resize docker data spacedd if=/dev/zero of=/mnt/docker/storage/devicemapper/devicemapper/data bs=1G count=0 seek=$DATA_SIZE
# Resize docker metadata spacedd if=/dev/zero of=/mnt/docker/storage/devicemapper/devicemapper/metadata bs=1G count=0 seek=$METADATA_SIZE
# Start docker servicesystemctl start docker

执行命令

[root@fp-web-130 storage]# sh resize_docker.sh 1000 100+0 records in0+0 records out0 bytes (0 B) copied, 0.000127523 s, 0.0 kB/s0+0 records in0+0 records out0 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: 22Images: 47Server Version: 18.03.0-ceStorage 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-fileCgroup Driver: cgroupfsPlugins: Volume: local Network: bridge host macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslogSwarm: inactiveRuntimes: runcDefault Runtime: runcInit Binary: docker-initcontainerd version: cfd04396dc68220d1cecbe686a6cc3aa5ce3667crunc version: 4fc53a81fb7c994640722ac585fa9ca548971871init version: 949e6faSecurity Options: seccomp Profile: defaultKernel Version: 3.10.0-327.el7.x86_64Operating System: CentOS Linux 7 (Core)OSType: linuxArchitecture: x86_64CPUs: 8Total Memory: 15.66GiBName: fp-web-130ID: ETLX:HANE:UUNX:KHX4:2ZXU:DVQN:UIOU:ZDAP:SLZG:3RYD:VPPM:O6GFDocker Root Dir: /mnt/docker/storageDebug Mode (client): falseDebug Mode (server): falseRegistry: https://index.docker.io/v1/Labels:Experimental: falseInsecure Registries: 127.0.0.0/8Live 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 disabledWARNING: 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

更改docker默认的data,metadata存储大小(实操)的更多相关文章

  1. CentOS7更改Docker默认镜像和容器存储位置

    图片出处:https://bobcares.com/wp-content/uploads/docker-change-directory.jpg 一.Why? 通常,当你开始使用docker时,我们并 ...

  2. 更改docker默认存储路径操作(centos6版本)

    一. centos6版本  service启动方式 1.更改启动文件 vim /etc/sysconfig/docker   添加更改的路径 '--graph="/data/docker&q ...

  3. 在Centos7 更改Docker默认镜像和容器的位置

    图片出处:https://bobcares.com/wp-content/uploads/docker-change-directory.jpg 一.Why? 通常,当你开始使用docker时,我们并 ...

  4. 更改docker默认网段

    #本文档旨在说明创建docker时注意的事项:我们在局域网中使用Docker,最常遇到的一个困惑,就是有时候跨网段结果出现网络不通.原因是因为Docker默认生成的网关和我们的局域网网段有时候是冲突的 ...

  5. 如何更改Docker默认的images存储位置

    Docker的镜像以及一些数据都是在/var/lib/docker目录下,它占用的是Linux的系统分区,也就是下面的/dev/vda1,当有多个镜像时,/dev/vda1的空间可能不足,我们可以把d ...

  6. 使用Jenkins与Docker持续集成与发布NetCore项目(实操篇)

    使用Jenkins与Docker持续集成与发布NetCore项目(教程一) 原文地址:https://www.cnblogs.com/Jackyye/p/12588182.html 基本环境 该教程的 ...

  7. 四个修改Docker默认存储位置的方法

    方法一.软链接 默认情况下Docker的存放位置为:/var/lib/docker 可以通过下面命令查看具体位置: sudo docker info | grep "Docker Root ...

  8. [转帖]四个修改Docker默认存储位置的方法

    四个修改Docker默认存储位置的方法 https://blog.51cto.com/forangela/1949947 易改乾坤关注0人评论27435人阅读2017-07-22 09:18:48   ...

  9. docker容器存放目录磁盘空间满了,转移数据修改Docker默认存储位置

    原文:docker容器存放目录磁盘空间满了,转移数据修改Docker默认存储位置 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_3767485 ...

随机推荐

  1. CF498B题解

    咋黑色啊,这不是看到数据范围就去想 \(O(nT)\) 的做法吗? 然后仔细想想最靠谱的就是 DP. 设 \(dp[n][T]\) 表示听完第 \(n\) 首歌,总共听了 \(T\) 秒. 很明显有 ...

  2. ArcMap操作随记(5)

    1.[栅格转面]等工具的使用 若栅格数据为浮点型,需使用[转为整型]工具,将栅格转为整型,再进行操作. 2.人口密度分布趋势图 使用[核密度分析]工具,也可尝试插值 3.点要素做面 [点集转线][要素 ...

  3. 什么是CSRF跨站请求伪造?(from表单效验csrf-ajdax效验csrf-Ajax设置csrf-CBV装饰器验证csrf)

    目录 一:csrf跨站请求伪造 1.什么是CSRF? 2.CSRF攻击案例(钓鱼网站) 3.钓鱼网站 内部原理 4.CSRF原理(钓鱼网站内部本质) 5.从上图可以看出,要完成一次CSRF攻击,受害者 ...

  4. 深入了解ReentrantLock中的公平锁和非公平锁的加锁机制

    ReentrantLock和synchronized一样都是实现线程同步,但是像比synchronized它更加灵活.强大.增加了轮询.超时.中断等高级功能,可以更加精细化的控制线程同步,它是基于AQ ...

  5. java 和groovy的混合使用

    在应用中,我们可以在一个Java类.一个Groovy类或者一个Groovy脚本中实现某个特定功能.之后可以在Java类.Groovy类或Groovy脚本中调用该功能. 在groovy 使用groovy ...

  6. 3、Lambda表达式

    Lambda表达式 Lambda表达式(lambda expression),是一种匿名函数,即没有函数名的函数. Lambda表达式不仅在C#中使用,在Java.Phtyon.C++ 中都有使用. ...

  7. @Required 注解?

    这个注解表明bean的属性必须在配置的时候设置,通过一个bean定义的显式的属性值或通过自动装配,若@Required注解的bean属性未被设置,容器将抛出BeanInitializationExce ...

  8. A5/web项目连接Oracle 12c数据库报:ORA-01017: 用户名/口令无效

    解决办法: 修改Oracle12c用户名密码,再改回来,就ok了,亲测有效.

  9. JWT jti和kid属性的说明

    jti chaim=== JWT ID " jti"(JWT ID)声明为JWT提供了唯一的标识符. 标识符值的分配方式必须确保将相同值偶然分配给不同数据对象的可能性可以忽略不计: ...

  10. 学习openstack(五)

    OpenStackOpenStack介绍OpenStack是一种免费的开源平台,帮助服务提供商实现类似于亚马逊EC2和S3的基础设施服务.OpenStack当前有三个核心项目:计算(Nova),对象存 ...