zoukankan      html  css  js  c++  java
  • docker “no space left on device”问题定位解决

    在paas环境上使用docker加载镜像的时候出现了如下问题

    第一反应应该是存储镜像的路径磁盘满了

    docker info查看docker的根路径,可以看到为/opt/docker:

    查看/opt/docker的磁盘占用率:

    从上述可知docker的磁盘并没有占用满,怀疑是inode占用满导致的,查看/opt的inode占用率,发现inode用尽

    删除/opt占用过多的文件或目录即可,本问题是因为程序错误,导致在pod的kubernetes.io~secret下面创建了195w多个空目录,导致inode被占用完

    注:

    使用ls -lR DIR_NAME | grep "^-"|wc -l可以查看目录DIR_NAME中的文件数

    使用ls -lR DIR_NAME | grep "^d"|wc -l可以查看目录DIR_NAME中的目录数

    在docker中有一个重要的存储器,以centos系统为例,使用docker info可以看到docker的存储系统类型为devicemapper,docker使用thinpool特性来存储容器镜像。

    也可以通过/etc/docker/daemon.json查看docker的存储设备:

    可以在/dev/mapper中查看挂载的实际设备

    /var/lib/docker/devicemapper/metadata/包含了devicemapper本身配置以及镜像和容器层相关的信息,格式为json。

    /var/lib/devicemapper/mnt/包含了容器和镜像挂载的点(可以使用lsblk查看),镜像挂载点为空,容器则包含了容器中的文件系统

    使用lvs -a可以查看当前存储设备的使用情况:

    使用lsblk可以查看当前设备的使用情况(可以使用vgdisplay --verbose来查看vg对应的lv设备):

     参考:

    https://blog.csdn.net/chengm8/article/details/49890261

    https://docs.docker.com/storage/storagedriver/device-mapper-driver/#image-and-container-layers-on-disk

  • 相关阅读:
    SaltStack 配置SLS过程
    Python 正则表达式
    Python 矩阵的旋转
    SaltStack 远程执行
    SaltStack 配置管理
    SaltStack
    Python 装饰器
    Python 生产者和消费者模型
    Python 迭代器和生成器
    Python json模块
  • 原文地址:https://www.cnblogs.com/charlieroro/p/9233266.html
Copyright © 2011-2022 走看看