2019独角兽企业重金招聘Python工程师标准>>>

CentOS7下Docker Storage Pool扩容 博客分类: dubbo

前言:在docker刚起步的时候,RHEL的内核并不支持AUFS作为docker的后端存储而将移植工作推迟。后来,红帽和docker合作开发一种基于Device Mapper技术的后端存储框架,也就是现在的device-mapper插件。

问题

systemctl start docker.service 提示启动失败。

分析

使用命令查看docker启动日志:

➜  # journalctl -xe
  • 1

发现docker-pool容量不足,不能继续分配新的空间,错误信息如下:

 Insufficient Free Extents for a docker-pool
  • 1

由于centos上的docker使用存储池,也就是基于LVM的块系统,所以只要增加docker-pool的容量就可以解决问题了。

收集证据

不看日志不行,比如有没有闲置的硬盘?物理卷挂在哪个硬盘?卷组挂在那个物理卷上?逻辑卷各自有多大?

查看磁盘容量:

➜  # df -h
➜  # fdisk -l
  • 1
  • 2

查看物理卷(pv)信息:

➜  # pvscan
  • 1

查看卷组(vg)信息:

➜  # vgdisplay
  • 1

查看逻辑卷(lv)信息:

➜  # lvdisplay
  • 1

解决问题

  • 查看卷组(vg)的使用和卷组的物理卷(PV)的情况:
➜  # pvs -o+pv_used
  • 1

发现sdc确没有剩余空间了,查询结果如下:

➜  # pvs -o+pv_usedPV         VG         Fmt  Attr PSize   PFree Used    /dev/sdc2  VolGroup00 lvm2 a-- 558.69g 0 558.69g
  • 1
  • 2
  • 3
  • 新加一块硬盘就解决问题了。就怕没有新硬盘,需要重新划分区,move物理卷。

    1. fdisk /dev/sde;
    2. 创建主分区和扩展分区都行;
    3. 创建逻辑分区;这里有个坑,不创建逻辑分区是无法格式化硬盘的,格不了硬盘,pvcreate会报错。
    4. 格式化逻辑分区 mkfs.ext3 /dev/sde2;
  • 创建物理卷

➜  # pvcreate /dev/sde2
  • 1
  • 为卷组VolGroup00添加新的物理卷sde2来增大卷组的容量
➜  # vgextend VolGroup00 /dev/sde2
  • 1
  • 用vg里新增的空间扩展LVM逻辑卷(lv)的大小
➜  # lvextend -L +1T /dev/VolGroup00/docker-pool
  • 1
  • 重启电脑,使划分生效,比较暴力好用(软刷新使用resizefs2)。
resize2fs   /dev/VolGroup00/docker-pool
  • 1

很不幸,执行resize2fs时报错了。直接reboot解决问题。

  • 最后一步重启docker服务
systemctl start docker.service
  • 1

终于要见到佛祖了,想想心里还有些小激动~~

然而启动又失败了,第一件事是做什么,还不赶紧看看日志!

journalctl -xe
  • 1

发现172.17.0.1这个ip无法bind, 看了看网卡,日,docker0的虚拟net-card没了。 
这里不卖关子了,大部分情况是/var/lib/docker下的配置出错了,解决方案有两种:

  1. 创建docker用户组,保证用户有足够的权限运行docker。

        sudo usermod -aG docker $(whoami)
    • 1
  2. 简单暴力我喜欢的方法,直接删掉/var/lib/docker,相当于重置docker的运行配置,重启解决问题。(友情提示:删除之前要备份,文件再拷贝过去就可以正常用了)

        sudo service docker stopsudo rm -rf /var/lib/dockersudo service docker start 
    • 1
    • 2
    • 3
  3. 一切都平静了,去喝杯咖啡。

        ➜  # docker infoContainers: 37Running: 5Paused: 0Stopped: 32Images: 365Server Version: 1.10.3Storage Driver: devicemapperPool Name: VolGroup00-docker--poolPool Blocksize: 524.3 kBBase Device Size: 107.4 GBBacking Filesystem: xfsData file: Metadata file: Data Space Used: 263.7 GBData Space Total: 1.388 TBData Space Available: 1.124 TBMetadata Space Used: 35.59 MBMetadata Space Total: 604 MBMetadata Space Available: 568.4 MBUdev Sync Supported: trueDeferred Removal Enabled: trueDeferred Deletion Enabled: falseDeferred Deleted Device Count: 0Library Version: 1.02.107-RHEL7 (2016-06-09)Execution Driver: native-0.2Logging Driver: json-filePlugins: Volume: localNetwork: bridge null hostKernel Version: 3.10.0-327.36.3.el7.x86_64Operating System: CentOS Linux 7 (Core)OSType: linuxArchitecture: x86_64Number of Docker Hooks: 2CPUs: 24Total Memory: 251.7 GiBName: localhost.localdomainID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxWARNING: bridge-nf-call-iptables is disabledWARNING: bridge-nf-call-ip6tables is disabledRegistries: 190087c6.m.daocloud.io (secure), docker.io (secure
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

docker storage pool再多说几句。因为是基于LVM的,所以镜像和容器都在块系统中,也就是VolGroup00这个池子里。/var/lib/docker主要存储的是镜像和容器的配置文件和device-mapper映射文件等,所以这个目录不会太大。

http://blog.csdn.net/counsellor/article/details/53413743

转载于:https://my.oschina.net/xiaominmin/blog/1599738

CentOS7下Docker Storage Pool扩容相关推荐

  1. centos7下docker启动失败解决

    centos7下docker启动失败解决 docker安装成功却启动失败,查看docker服务,systemctl status docker.service, 服务日志提示Failed to sta ...

  2. centos7下docker 部署javaweb

    为什么80%的码农都做不了架构师?>>>    LXC linux container 百度百科:http://baike.baidu.com/link?url=w_Xy56MN9i ...

  3. 随手记:CentOS7 下 Docker 中 MySQL5.7 挂载宿主目录无权限

    在使用 docker run 运行一个 docker 镜像的时候,有时会用到 -v 将容器中的目录挂载到宿主机的目录,此时可能会遇到目录无权限(Permission denied)的问题.此时可以使用 ...

  4. linux CentOS7 下 Docker安装

    Docker在CentOS安装介绍地址:https://docs.docker.com/install/linux/docker-ce/centos/ 使用root权限安装的. 1.安装所需的包. $ ...

  5. centos7下docker设置阿里云镜像(自定义阿里云镜像)

    1.登陆自己的阿里云 aliyun.com 2.找到容器镜像服务 3.找到镜像加速器 4.打开文件/etc/docker/daemon.json 将圈起来的字符串替换掉 如下图所示 5.重新加载dae ...

  6. Centos7下磁盘空间的扩容(超详细)

    linux环境扩容 目录: linux环境扩容 1.准备工作 2.格式化添加的硬盘 3.开始进行扩容 1.准备工作 准备一台磁盘空间不足的Centos虚拟机: 添加硬盘: 看需要加多少: 然后开机. ...

  7. Docker storage driver 选择

    2019独角兽企业重金招聘Python工程师标准>>> Docker storage driver 选择 博客分类: docker 本文的目的是说明,如何在生产环境中选择Docker ...

  8. docker 安装 oracle12,Centos7下利用docker安装oracle12c

    实战在windows局域网下可以进行连接,并执行sql语句: 执行结果 具体的步骤如下: 1.在centos7下安装docker [root@localhost /]# yum install doc ...

  9. CentOS7 下 MySQL 之 PXC 集群部署【Docker+多机多节点】

    背景 最近在进行 MySQL 集群搭建测试的研究中 对于业界主流方案自然不能跳过 在此,整理成完整的文章,希望道友能得到参考价值 - 对于 docker 不熟悉的小伙伴,个人建议移步文章 -- [Ce ...

最新文章

  1. 浅谈TCP的窗口字段
  2. jsp页面定义的map
  3. ubuntu下远程控制LinuxWindow桌面
  4. NYOJ 745 蚂蚁的难题(二)
  5. PowerDesigner pdm生成Access的方法
  6. 动态规划训练20 [Treats for the Cows POJ - 3186 ]
  7. 小程序左右标签滑块排行榜
  8. html图片分四面切割播,CSS3切割轮播图
  9. html留言板 php,linux下使用Apache+php实现留言板功能的网站
  10. opencv 学习第二课 摄像头、外部视频读取、处理、显示、写入 代码注释版 保证你每一行都能读懂
  11. ps快捷键-csdn
  12. 锁定计算机注册表,如何禁用注册表?Win7注册表锁定bat制作方法
  13. tomcat安全加固手册
  14. css中图片不清晰解决方法
  15. 水文计算机国外ei期刊,水文水利类相关SCI、EI期刊(包括SCI分区)
  16. 杰理之汤姆猫录音变声功能参考【篇】
  17. javascript操作数组的方法大全
  18. 关心国事-周鸿祎离开雅虎真相 自称土鳖更喜欢创业
  19. UltraEdit 15 注册码
  20. Matplotlib绘图-快速上手可视化工具

热门文章

  1. PHP版本的Graphviz样例之集群流程图
  2. ThinkingInJava_3
  3. 照片墙专业版 V1.1 发布
  4. 把文件每行的tab键分隔符改成逗号分隔符
  5. CoverageMeter中关于“line coverage”不准确的解释
  6. 让Everest 0.6支持Intel 82852/82855 GM/GME显卡图形登录
  7. 用DIV+Javascript实现标签功能
  8. 理解 QEMU/KVM 和 Ceph(2):QEMU 的 RBD 块驱动(block driver)
  9. UVA 11020 - Efficient Solutions(set)
  10. JavaScript获取DOM元素位置和尺寸大小