Skip to content

Instantly share code, notes, and snippets.

@LewisW
Forked from ambakshi/docker-direct-lvm.sh
Last active November 19, 2015 11:11
Show Gist options
  • Save LewisW/75f1f0bee9858384ad1c to your computer and use it in GitHub Desktop.
Save LewisW/75f1f0bee9858384ad1c to your computer and use it in GitHub Desktop.
docker-direct-lvm
#!/bin/bash
set -e
## striping seems to break docker
#STRIPE="-i2 -I64"
#DEVS="/dev/xvdf /dev/xvdg"
DEVS="$1"
if [ -z "$DEVS" ]; then
echo >&2 "Specify which block devices to use"
exit 1
fi
if which systemctl >/dev/null 2>&1; then
if systemctl status docker.service; then
systemctl stop docker.service
START=yes
fi
else
if service docker status | grep 'start'; then
service docker stop
START=yes
fi
fi
rm -fr /var/lib/docker
#for i in /dev/mapper/docker-*; do umount $i || true; dmsetup remove $i; done
set +e
for i in /dev/mapper/docker-*; do umount $i; dmsetup remove $i; done
set -e
pvcreate -y $DEVS && \
pvdisplay && \
vgcreate -y docker-storage $DEVS && \
lvcreate --size 29.50G --type thin-pool --thinpool docker-pool docker-storage && \
#lvcreate -V4G -T docker-storage/docker-pool --name docker-poolmeta \
lvs
#df -h && \
#dd if=/dev/zero of=/dev/docker-storage/docker-poolmeta bs=1M count=10
#pvcreate -y $DEVS && \
#vgcreate -y direct-lvm $DEVS && \
#lvcreate $STRIPE -y -Wy -Zy -n data direct-lvm -l 95%VG && \
#lvcreate $STRIPE -y -Wy -Zy -n metadata direct-lvm -l 5%VG && \
#dd if=/dev/zero of=/dev/direct-lvm/metadata bs=1M count=10
echo 'DOCKER_OPTS="$DOCKER_OPTS --storage-driver=devicemapper --storage-opt dm.thinpooldev=docker--storage-docker--pool-tpool --storage-opt dm.fs=xfs --storage-opt dm.blocksize=512K"' | tee -a /etc/default/docker
if which systemctl >/dev/null 2>&1; then
if [ "$START" = yes ]; then
systemctl start docker.service
fi
else
if [ "$START" = yes ]; then
service docker start
fi
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment