更改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 -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存储大小(实操)的更多相关文章
- CentOS7更改Docker默认镜像和容器存储位置
图片出处:https://bobcares.com/wp-content/uploads/docker-change-directory.jpg 一.Why? 通常,当你开始使用docker时,我们并 ...
- 更改docker默认存储路径操作(centos6版本)
一. centos6版本 service启动方式 1.更改启动文件 vim /etc/sysconfig/docker 添加更改的路径 '--graph="/data/docker&q ...
- 在Centos7 更改Docker默认镜像和容器的位置
图片出处:https://bobcares.com/wp-content/uploads/docker-change-directory.jpg 一.Why? 通常,当你开始使用docker时,我们并 ...
- 更改docker默认网段
#本文档旨在说明创建docker时注意的事项:我们在局域网中使用Docker,最常遇到的一个困惑,就是有时候跨网段结果出现网络不通.原因是因为Docker默认生成的网关和我们的局域网网段有时候是冲突的 ...
- 如何更改Docker默认的images存储位置
Docker的镜像以及一些数据都是在/var/lib/docker目录下,它占用的是Linux的系统分区,也就是下面的/dev/vda1,当有多个镜像时,/dev/vda1的空间可能不足,我们可以把d ...
- 使用Jenkins与Docker持续集成与发布NetCore项目(实操篇)
使用Jenkins与Docker持续集成与发布NetCore项目(教程一) 原文地址:https://www.cnblogs.com/Jackyye/p/12588182.html 基本环境 该教程的 ...
- 四个修改Docker默认存储位置的方法
方法一.软链接 默认情况下Docker的存放位置为:/var/lib/docker 可以通过下面命令查看具体位置: sudo docker info | grep "Docker Root ...
- [转帖]四个修改Docker默认存储位置的方法
四个修改Docker默认存储位置的方法 https://blog.51cto.com/forangela/1949947 易改乾坤关注0人评论27435人阅读2017-07-22 09:18:48 ...
- docker容器存放目录磁盘空间满了,转移数据修改Docker默认存储位置
原文:docker容器存放目录磁盘空间满了,转移数据修改Docker默认存储位置 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_3767485 ...
随机推荐
- 如何用webgl(three.js)搭建处理3D隧道、3D桥梁、3D物联网设备、3D高速公路、三维隧道桥梁设备监控-第十一课
开篇废话: 跟之前的文章一样,开篇之前,总要写几句废话,大抵也是没啥人看仔细文字,索性我也想到啥就聊啥吧. 这次聊聊疫情,这次全国多地的疫情挺严重的,本人身处深圳,深圳这几日报导都是几十几十的新增病例 ...
- Java GUI 实现发送邮件以及附件
实现代码: 注意点: 需要的jar包:JavaMail API 和Java Activation Framework (JAF) ,下载可参考菜鸟教程 默认使用QQ邮箱发送,需要设置授权,设置--&g ...
- Paypal标准支付对接
提醒一下,题主是在快速标准支付做到一半的时候换成了标准支付,所以该文档的快速支付大家做个参考就可以了. 一.两种支付方式 标准支付 优点:纯前端对接,简单方便,适用于非技术开发人员.个人即可用,不用花 ...
- ZYNQ 双CPU裸机运行例程
vivado 2014.4 特殊情况:总DDR内存大于512MB,且CPU0已经占用了超过512MB,这时按以下步骤CPU1无法启动. 原因:启动入口地址限制.更改方法如下: 打开cpu1_bsp\p ...
- Ubuntu下使用C语言连接Mysql 8.0客户端教程
Ubuntu下如何C语言程序连接MYSQL 8.0(全教程) 1. 安装GCC(略) 2. 安装mysql(本人使用的是最新MySQL 8.0版本) sudo apt install mysql-cl ...
- Apache HTTPD 未知后缀解析漏洞
环境搭建 https://blog.csdn.net/qq_36374896/article/details/84102101 该环境版本: PHP 7.x 最新版 Apache HTTPD 2.4. ...
- 用Markdown写Html和.md也就图一乐,真骚操作还得用来做PPT
前言 和这篇文章一样,我就是用Markdown写的.相信各位平时也就用Markdown写写文档,做做笔记,转成XHtml.Html等,今天教大伙一招骚操作:用Markdown写PPT. 绝大多数朋友做 ...
- 手把手带你使用EFR32 -- 土壤湿度传感器变身第二形态,以 ZigBee 形态出击
前言 后悔,总之就是非常后悔,我当时到底是为啥才会猪油蒙心,选择了 EFR32 来学习 ZigBee 使用啊? EFR32 这玩意看性能确实不错,但是资料太少了,EmberZnet SDK 也是用得一 ...
- 怎么得到InnoDB主键索引B+树的高度?
上面我们通过推断得出B+树的高度通常是1-3,下面我们从另外一个侧面证明这个结论.在InnoDB的表空间文件中,约定page number为3的代表主键索引的根页,而在根页偏移量为64的地方存放了该B ...
- 什么是Java序列化,如何实现Java序列化?或者请解释Serializable接口的作用?
象序列化的目标是将对象保存到磁盘中,或允许在网络中直接传输对象,对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久保存在磁盘上,通过网络将这种二进制流传输到另 ...