zoukankan      html  css  js  c++  java
  • DOCKER 从入门到放弃(五)

    添加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

  • 相关阅读:
    H53D旋转-遁地龙卷风
    Linux(CentOS 7)+ Nginx(1.10.2)+ Mysql(5.7.16)+ PHP(7.0.12)完整环境搭建
    CentOS 普通用户设置sudo权限
    CentOS 7 终端设置屏幕分辨率
    JavaScript 数组详解
    javascript 创建对象及对象原型链属性介绍
    Mac OS + Nginx + Mysql + PHP 本地环境搭建
    CocoaPods安装和使用教程
    Linux 下常用的压缩,解压方法
    启动 mysql 失败 Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql'
  • 原文地址:https://www.cnblogs.com/panjunbai/p/7645662.html
Copyright © 2011-2022 走看看