DOCKER 从入门到放弃(五)

摘要:
添加docker启动参数修改存储大小添加--storage-opt参数设置thin-pool和元数据大小--storage-optdm.loopmetadatasize=10G--storage-optdm.loopdatasize=400G修改thin-pool池大小为400g,元数据大小为10g[root@dockeropt]#cat/etc/sysconfig/docker|grep-v"^
添加docker启动参数修改存储大小

添加--storage-opt 参数设置thin-pool和元数据大小
--storage-opt dm.loopmetadatasize=10G --storage-opt dm.loopdatasize=400G 修改thin-pool池大小为400g,元数据大小为10g

[root@docker opt]# cat /etc/sysconfig/docker|grep -v "^#"

OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --graph=/opt/docker --storage-opt dm.loopmetadatasize=10G    --storage-opt dm.loopdatasize=400G'
if [ -z "${DOCKER_CERT_PATH}" ]; then
    DOCKER_CERT_PATH=/etc/docker
fi

--storage-opt dm.loopmetadatasize=10G    --storage-opt dm.loopdatasize=400G

也可以修改/usr/lib/systemd/system/docker.service 文件,但是要使用systemctl daemon-reload重载配置文件

重启docker,不建议使用systemctl restart docker 命令,存在不会卸载环回设备直接启动docker,导致存储大小无法修改

[root@docker opt]# systemctl stop docker
[root@docker opt]# systemctl start docker

查看修改后的存储容量

[root@docker opt]# docker info|grep -i data
 WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 907.9 MB
 Data Space Total: 429.5 GB
 Data Space Available: 14.89 GB
 Metadata Space Used: 3.92 MB
 Metadata Space Total: 10.74 GB
 Metadata Space Available: 10.73 GB
 Data loop file: /opt/docker/devicemapper/devicemapper/data
 Metadata loop file: /opt/docker/devicemapper/devicemapper/metadata
 
使用truncat 命令扩大环回设备文件大小

先找到存储的环回设备文件路径

[root@docker opt]# docker info|grep "loop file"
 
 Data loop file: /opt/docker/devicemapper/devicemapper/data
 Metadata loop file: /opt/docker/devicemapper/devicemapper/metadata

使用truncate 命令扩大空间

[root@docker opt]# truncate -s 800g /opt/docker/devicemapper/devicemapper/data     #扩大thin-pool到800g
[root@docker opt]# truncate -s 20g /opt/docker/devicemapper/devicemapper/metadata    #扩大元数据到20g

重启docker,不建议使用systemctl restart docker 命令,存在不会卸载环回设备直接启动docker,导致存储大小无法修改

[root@docker opt]# systemctl stop docker
[root@docker opt]# systemctl start docker
在重新挂载环回设备后,环回设备容量变化后docker 会自动更新devicemap的映射表,也可以在重启前手动完成更新操作,如下:

此方法无法修改metadata space的大小

查看环回设备在内存中的大小信息为1000g

[root@docker devicemapper]# echo $[ $(sudo blockdev --getsize64 /dev/loop0) / 1024 / 1024 / 1024 ]
1000

使用使用truncate 命令扩大空间

[root@docker devicemapper]# truncate -s 2000g data 
[root@docker devicemapper]# ll -h
total 175M
-rw------- 1 root root 2.0T Oct 10 01:13 data
-rw------- 1 root root 100G Oct 10 00:52 metadata

查看在内存中的信息仍然为1000g

[root@docker devicemapper]# echo $[ $(sudo blockdev --getsize64 /dev/loop0) / 1024 / 1024 / 1024 ]
1000

重新加载环回设备在内存中的信息

[root@docker devicemapper]# losetup -c /dev/loop0
[root@docker devicemapper]# echo $[ $(sudo blockdev --getsize64 /dev/loop0) / 1024 / 1024 / 1024 ]
2000

查看docker的存储thin-pool池的名称

[root@docker devicemapper]# dmsetup status | grep ' thin-pool ' | awk -F ': ' {'print $1'}
docker-253:0-34124585-pool

查看devicemap的映射表中docker存储thin-pool池信息

[root@docker devicemapper]# dmsetup table docker-253:0-34124585-pool
0 2097152000 thin-pool 7:1 7:0 128 32768 1 skip_block_zeroing 

更新映射表中的信息,先挂起thin-pool池,在修改表中信息,在退出挂起状态

[root@docker devicemapper]# dmsetup suspend  docker-253:0-34124585-pool
[root@docker devicemapper]# dmsetup reload docker-253:0-34124585-pool --table '0 4194304000 thin-pool 7:1 7:0 128 32768 1 skip_block_zeroing'  #4194304000 是扇区大小值,对应为2T,这儿只修改了逻辑卷组对应到物理磁盘的扇区大小
[root@docker devicemapper]#  dmsetup resume docker-253:0-34124585-pool
参考资料

http://www.cnblogs.com/hustcat/p/3908985.html
https://www.ibm.com/developerworks/cn/linux/l-devmapper/index.html#resources
https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/#increase-capacity-on-a-running-device

免责声明:文章转载自《DOCKER 从入门到放弃(五)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇codevs1314 寻宝机器翻译 2010年NOIP全国联赛提高组下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql5.7基于gtid主从重做

master上备份mysql/data/Percona-5721/scripts/xtra_sohmysql_fullbak.shscp 备份文件到备机关闭slave service mysql stop在slave服务器恢复全备恢复:恢复注意恢复文件权限问题tar -izxvf xxxx.tar.gz 注意加-iinnobackupex --defaul...

mysql默认安装目录说明

MySQL安装完成后不象SQLServer默认安装在一个目录,它的数据库文件、配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为Linux本身的目录结构就比较复杂,如果搞不清楚MySQL的安装目录那就无从谈起深入学习。 下面就介绍一下这几个目录。1、数据库目录/var/lib/mysql/2、配置文件/usr/sha...

Linux下安装mysql-5.7.30详细步骤

前言下面记录了我在Linux环境下安装Mysql的完整过程,实操记录,只为让更多人少踩坑,本次安装版本为:mysql-5.7.30,64位操作系统官网下载地址:mysql-5.7.30-el7-x86_64.tar.gz百度网盘地址:百度网盘地址 提取码:lyqh 1、安装前准备检测系统是否自带mysql [root@localhost /]# rpm -...

用Flask 实现文件服务器(包含docker版本)

最近有了公司局域网内共享axure原型的需求,所以用Flask开发了一款文件上传/查看工具,记录一下其中的问题和解决方案 这个工具参照了一位大神的uploads工具https://zhuanlan.zhihu.com/p/24429519?refer=flask,保留了其初始架构,之后对功能做了较大的改动 改动后的工具在这里,有需要的同学可以参考: htt...

axios发请求的基本语法:

axios发请求的基本语法: axios({ url:'路径',//这个路径中可以包含params或query参数 method:'get/post/put/delete', params:{},//包含query参数的对象,问号后面的参数 data:{},//包含请求体参数的对象 }) axios.get(url,{配置})//{params:{id:1...

pinpoint安装(docker)

安装docker docker-compose yum update -y yum install docker epel-release python-pip -y pip install --upgrade pip pip install docker-compose 修改daemon.json [root@i-vzdytl5t ~]# cat /et...