Skip to content

Instantly share code, notes, and snippets.

@sameo
Last active October 14, 2020 21:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sameo/9cb4b712e00ca23f34ff7978175ab43b to your computer and use it in GitHub Desktop.
Save sameo/9cb4b712e00ca23f34ff7978175ab43b to your computer and use it in GitHub Desktop.

Notes

We use /dev/loop0 as the physical media, backed by an empty, 8G image:

dd if=/dev/zero of=lvm-loop.img bs=100M count=80
losetup -fP lvm-loop.img
losetup -a
/dev/loop0: [0053]:4207657 (/home/samuel/devlp/containers/devicemapper/lvm-loop.img)

Then we tell Docker to use devmapper as its graphdriver and to use /dev/loop0 as its physical media:

cat /etc/docker/daemon.json 
{
  "storage-driver": "devicemapper",
   "storage-opts": [
    "dm.directlvm_device=/dev/loop0",
    "dm.thinp_percent=95",
    "dm.thinp_metapercent=1",
    "dm.thinp_autoextend_threshold=80",
    "dm.thinp_autoextend_percent=20",
    "dm.directlvm_device_force=false"
  ]
}

Mapping tables

Docker creates 2 linear mappings (data and metadata) and then a thin-pool based on those 2 mappings.

docker-thinpool_tdata: 0 3883008 linear 7:0 2048
docker-thinpool_tmeta: 0 32768 linear 7:0 3885056
docker-thinpool: 0 3883008 thin-pool 253:0 253:1 1024 758 1 skip_block_zeroing

Name:              docker-thinpool_tdata
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        1
Event number:      0
Major, minor:      253, 1
Number of targets: 1
UUID: LVM-nO4teWAf2fGFlNsg3brVr7dW1j0xqXIQyppUo1GgZe36hmzQJ8dVYId3mxutdqKG-tdata

Name:              docker-thinpool_tmeta
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        1
Event number:      0
Major, minor:      253, 0
Number of targets: 1
UUID: LVM-nO4teWAf2fGFlNsg3brVr7dW1j0xqXIQmmK1ZIYJ5LCcpJSvsfTjoeABOUyN44so-tmeta

Name:              docker-thinpool
State:             ACTIVE
Read Ahead:        256
Tables present:    LIVE
Open count:        1
Event number:      0
Major, minor:      253, 2
Number of targets: 1
UUID: LVM-nO4teWAf2fGFlNsg3brVr7dW1j0xqXIQKYDNg6ClB1K6jBCArffW2BTuObA72a2m-tpool

  • The thin pool (253:2) is made of 2 linear mappings 253:0 and 253:1 on top of /dev/loop0.

Links

Device mapper thin and thin pool targets

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment