Skip to content

Instantly share code, notes, and snippets.

@amshinde
Last active August 22, 2022 17:48
Show Gist options
  • Save amshinde/d39e0db20642c1f228ba9b9f35bc2549 to your computer and use it in GitHub Desktop.
Save amshinde/d39e0db20642c1f228ba9b9f35bc2549 to your computer and use it in GitHub Desktop.
# Clear Linux install configuration
#
# /dev/sda1 /
# /dev/sda2 /boot
# /dev/sda3 (reserved partition for devicemapper)
#
DEVICE="/dev/sda3"
echo "Stopping docker"
sudo systemctl stop docker
echo "Launch lvmetad service"
sudo systemctl start lvm2-lvmetad
echo "Create physical volume"
sudo pvcreate -ff "$DEVICE"
echo "Create a volume group"
sudo vgcreate docker "$DEVICE"
echo "Create thinpool logical volume"
sudo lvcreate --wipesignatures y -n thinpool docker -l 95%VG
echo "Create thinpoolmeta logical volume"
sudo lvcreate --wipesignatures y -n thinpoolmeta docker -l 1%VG
echo "Convert the volumes to a thin pool"
sudo lvconvert -y \
--zero n \
-c 512K \
--thinpool docker/thinpool \
--poolmetadata docker/thinpoolmeta
#Edit profile
sudo vi /etc/lvm/profile/docker-thinpool.profile
activation {
thin_pool_autoextend_threshold=80
thin_pool_autoextend_percent=20
}
echo "LVM profile"
sudo lvchange --metadataprofile docker-thinpool docker/thinpool
echo "Monitoring logical volume"
sudo lvs -o+seg_monitor
sudo lvscan
sudo vgchange -ay
The above should set up the direct-lvm for devicemapper. You can then configure docker to use devicemapper by adding this
to /etc/docker/daemon.json
{
"storage-driver": "devicemapper",
"storage-opts": [
"dm.thinpooldev=/dev/mapper/docker-thinpool",
"dm.use_deferred_removal=true",
"dm.use_deferred_deletion=true"
]
}
In case, you want to revert the above changes, follow the below cleanup instructions
#================================
#To cleanup:
#Remove logical volume:
$ sudo lvremove docker
Do you really want to remove active logical volume docker/thinpool? [y/n]: y
Logical volume "thinpool" successfully removed
#Should show empty
$ sudo lvdisplay
$sudo vgremove docker
Volume group "docker" successfully removed
#should show empty
$sudo vgdisplay
#Now remove docker graph driver directory
sudo rm -rf /var/lib/docker/devicemapper
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment