moby: Error starting daemon: error initializing graphdriver: devmapper: Device %device% is not a thin pool

Output of docker version:

Client:
 Version:      1.10.3
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   20f81dd
 Built:        Thu Mar 10 15:38:58 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.10.3
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   20f81dd
 Built:        Thu Mar 10 15:38:58 2016
 OS/Arch:      linux/amd64

Output of docker info:

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 1
Server Version: 1.10.3
Storage Driver: devicemapper
 Pool Name: docker-202:1-395536-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: xfs
 Data file: /dev/mapper/docker-pool0
 Metadata file: /dev/mapper/docker-pool0
 Data Space Used: 186.7 MB
 Data Space Total: 48.31 GB
 Data Space Available: 48.13 GB
 Metadata Space Used: 1.683 MB
 Metadata Space Total: 17.05 GB
 Metadata Space Available: 17.04 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: true
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Library Version: 1.02.90 (2014-09-01)
Execution Driver: native-0.2
Logging Driver: json-file
Plugins: 
 Volume: local
 Network: bridge null host
Kernel Version: 3.16.0-4-amd64
Operating System: Debian GNU/Linux 8 (jessie)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.87 GiB
Name: ip-172-16-11-30
ID: SGIG:VTD2:5Z25:WIHP:3DQS:TS25:HK53:BFM5:FILA:PRZF:ZKLH:TKT7
WARNING: No memory limit support
WARNING: No swap limit support
WARNING: No oom kill disable support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support

Additional environment details (AWS, VirtualBox, physical, etc.):

AWS EC2

Steps to reproduce the issue:

  1. Setup a lvm thin pool
PV=/dev/xvdf
VG=docker
LV=pool0

pvcreate $PV
vgcreate $VG $PV
lvcreate -y -l 5%VG -n $LV\meta $VG
lvcreate -y -l 90%VG -n $LV $VG
lvconvert -y --zero n --thinpool $VG/$LV --poolmetadata $VG/$LV\meta

lvs -a
  LV              VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  [lvol0_pmspare] docker ewi-------  2.50g                                                    
  pool0           docker twi-a-t--- 45.00g             0.00   0.01                            
  [pool0_tdata]   docker Twi-ao---- 45.00g                                                    
  [pool0_tmeta]   docker ewi-ao----  2.50g       

dmsetup status
docker-pool0-tpool: 0 94363648 thin-pool 0 94/654336 0/737216 - rw no_discard_passdown queue_if_no_space 
docker-pool0_tdata: 0 94363648 linear 
docker-pool0_tmeta: 0 5234688 linear 
docker-pool0: 0 94363648 linear 
  1. Try to run docker daemon with a devicemapper driver

Describe the results you received:

systemctl stop docker ; rm -rf /var/lib/docker ; /usr/bin/docker daemon --debug --storage-driver 'devicemapper' --storage-opt 'dm.thinpooldev=/dev/mapper/docker-pool0' --storage-opt 'dm.fs=xfs' --storage-opt 'dm.use_deferred_removal=true'
DEBU[0000] docker group found. gid: 999                 
DEBU[0000] Server created for HTTP on unix (/var/run/docker.sock) 
DEBU[0000] Using default logging driver json-file       
DEBU[0000] [graphdriver] trying provided driver "devicemapper" 
DEBU[0000] devicemapper: driver version is 4.27.0       
DEBU[0000] devmapper: Deferred removal support enabled. 
DEBU[0000] devmapper: Generated prefix: docker-202:1-395273 
DEBU[0000] devmapper: Checking for existence of the pool docker-pool0 
DEBU[0000] Cleaning up old shm/mqueue mounts: start.    
FATA[0000] Error starting daemon: error initializing graphdriver: devmapper: Device docker-pool0 is not a thin pool 

Describe the results you expected:

No fatal error.

Additional information you deem important (e.g. issue happens only occasionally):

Problem does not occur if you use deprecated options: dm.datadev and dm.metadatadev

systemctl stop docker ; rm -rf /var/lib/docker ; /usr/bin/docker daemon --debug --storage-driver 'devicemapper' --storage-opt 'dm.datadev=/dev/mapper/docker-pool0' --storage-opt 'dm.metadatadev=/dev/mapper/docker-pool0' --storage-opt 'dm.fs=xfs' --storage-opt 'dm.use_deferred_removal=true'

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Reactions: 5
  • Comments: 17 (6 by maintainers)

Most upvoted comments

Try changing: --storage-opt dm.thinpooldev=/dev/mapper/docker-pool0 to: --storage-opt dm.thinpooldev=/dev/mapper/docker-pool0-tpool

Using the -tpool device works for me (debian jessie). Maybe this should be updated in the docs

I am getting this with Docker version 18.03.1-ce, build 9ee9f40 on Gentoo Base System release 2.4.1

time="2018-08-09T19:11:16.996038033-07:00" level=error msg="Failed to built-in GetDriver graph btrfs /var/lib/docker"
time="2018-08-09T19:11:17.041047790-07:00" level=error msg="'overlay' not found as a supported filesystem on this host. Please ensure kernel is new enough and has overlay support loaded."
time="2018-08-09T19:11:17.041094100-07:00" level=error msg="Failed to built-in GetDriver graph aufs /var/lib/docker"
time="2018-08-09T19:11:17.042036412-07:00" level=error msg="'overlay' not found as a supported filesystem on this host. Please ensure kernel is new enough and has overlay support loaded."
Error starting daemon: error initializing graphdriver: devicemapper: Error running deviceCreate (CreatePool) dm_task_run failed

+1 I had the same problem, using the -tpool device works for me (debian jessie). Official docs are not updated yet.

I’m getting this error in Docker version 19.03.2-ce, build 6a30dfca03 on Arch Linux

Made all steps mentioned in documentation and got the same issue. What should I do to fix this?