缘起:
今天值班的兄弟找我说PAAS节点扩容后有个 docker-container 创建一直失败,看不懂输出的报文信息。
看值班给出的投屏发现和storage-driver有关,提示信息如下:
Error running DeviceCreate (createSnapDevice) dm_task_run failed
查看了下
docker版本是 docker-Engine 20;
OS 的版本是 centos 6
Kernel的版本是 3.10
又查看了下 /etc/docker/daemon.json 发现storage-driver是devicemapper
再查看docker的log信息,发现有这样一条消息:
statusCode=500 Error running DeviceCreate (createSnapDevice) dm_task_run failed
唔,大概是docker链接的后端存储资源不足了。
因为 http 协议中 产生 500 状态码的一个可能性原因是服务端资源不足,再结合DeviceCreate任务失败,可以确认排查方向应该是 devicemapper驱动下的存储资源状态。
devicemapper本质上是Linux-Kernel级别的块设备存储驱动,依赖于LVM工具包支持。在逻辑卷管理中,除了LVM服务运行异常外,能够影响到数据写操作的就是存储空间和元数据两个item了。
执行 vgdisplay ,可以查看到回显信息说明 LVM服务运行无异常;
执行 dmsetup status 和 dmsetp info,可以查看到有充盈的存储空间;
好吧,看来是扩容完后有人在没有正常stop点docke