如果将 devicemapper 配置为使用 direct-lvm,Docker 将无法启动

如果将 devicemapper 配置为使用 direct-lvm,Docker 将无法启动

在 Ubuntu 16.04 上,如果 Docker 配置为使用设备映射器作为存储驱动程序直接lvm作为存储池。发生以下错误

#$ sudo systemctl status docker
● docker.service - Docker 应用容器引擎
   已加载:已加载(/lib/systemd/system/docker.service;已启用;供应商预设:已启用)
   活动:失败(结果:退出代码)自 2016-07-12 16:22:33 CEST;1 分钟 30 秒前开始
     文档:https://docs.docker.com
  进程:1880 ExecStart=/usr/bin/docker daemon -H fd://$DOCKER_OPTS(code=exited,status=1/FAILURE)
 主 PID:1880(代码=已退出,状态=1/失败)

7 月 12 日 16:22:33 docker-lvm systemd[1]:正在启动 Docker 应用容器引擎……  
7月12日 16:22:33 docker-lvm docker[1880]: time="2016-07-12T16:22:33.304838820+02:00" level=fatal msg="启动守护进程时出错:初始化 graphdriver 时出错:devicemapper:不存在设备 ubuntu--vg-thinpool"  
7 月 12 日 16:22:33 docker-lvm systemd[1]: docker.service: 主进程已退出,代码=已退出,状态=1/失败  
7 月 12 日 16:22:33 docker-lvm systemd[1]: 无法启动 Docker 应用容器引擎。  
7 月 12 日 16:22:33 docker-lvm systemd[1]: docker.service: 单元进入失败状态。  
7 月 12 日 16:22:33 docker-lvm systemd[1]: docker.service: 失败,结果为“退出代码”。  
7 月 12 日 16:22:33 docker-lvm systemd[1]: docker.service: 启动请求重复太快。  
7 月 12 日 16:22:33 docker-lvm systemd[1]: 无法启动 Docker 应用容器引擎。

答案1

状态消息表明我的精简池不可用。lvdisplay说了同样的话:

#$ sudo lvdisplay ubuntu-vg/thinpool
  --- 逻辑卷 ---
  LV 名称 thinpool
  VG 名称 ubuntu-vg
  LV UUID Or2cLx-ENFq-sZqh-kxUw-0FEQ-rEzi-vXCi3C
  LV 写访问 读/写
  LV 创建主机,时间 docker-lvm,2016-07-12 15:57:06 +0200
  LV 池元数据 thinpool_tmeta
  LV 池数据 thinpool_tdata
  LV 状态不可用
  LV 大小 14,07 GiB
  现行 LE 3601
  段 1
  分配继承
  自动预读扇区

笔记: LV Status NOT available

尝试激活它说:

#$ sudo lvchange -ay ubuntu-vg/thinpool
  /usr/sbin/thin_check:execvp 失败:没有此文件或目录
  检查池 ubuntu-vg/thinpool 失败(状态:2)。需要手动修复!

配置了精简池的工具/etc/lvm/lvm.conf,在那里我发现了以下段落:

    # Configuration option global/thin_check_executable.
    # The full path to the thin_check command.
    # LVM uses this command to check that a thin metadata device is in a
    # usable state. When a thin pool is activated and after it is
    # deactivated, this command is run. Activation will only proceed if
    # the command has an exit status of 0. Set to "" to skip this check.
    # (Not recommended.) Also see thin_check_options.
    # (See package device-mapper-persistent-data or thin-provisioning-tools)
    # This configuration option has an automatic default value.
    # thin_check_executable = "/usr/sbin/thin_check"

我查看了那里提到的包,发现这个包精简配置工具可用但未安装。

#$ sudo apt-cache 策略精简配置工具
精简配置工具:
  已安装:(无)
  候选版本:0.5.6-1ubuntu1
  版本表:
     0.5.6-1ubuntu1 500
        500 http://de.archive.ubuntu.com/ubuntu xenial/universe amd64 软件包

安装软件包后,thinpools 实用程序可用。docker-thinpool 的手动激活成功,系统启动时卷也被激活,docker 成功启动。

相关内容