Fix ephemeral disk mounting
If a node has plenty (>16GB) of RAM, use a file-backed ext4 filesystem for docker and ironic use. Otherwise, docker is unable to mount container filesystems on top of the root overlayfs. This is a fix on top of: https://review.opendev.org/#/c/749096 Change-Id: Ib688edc6189a0b46e4a668c27cb6a11aca9bb0df Closes: #401
This commit is contained in:
parent
d90453a46b
commit
40ac9e35dd
@ -124,28 +124,31 @@ stringData:
|
|||||||
bootcmd:
|
bootcmd:
|
||||||
- NEED_MB=16384 # MB of storage needed for ironic images & bindmounts
|
- NEED_MB=16384 # MB of storage needed for ironic images & bindmounts
|
||||||
- FREE_MB=$(df -m --output=avail /var/lib | tail -n 1)
|
- FREE_MB=$(df -m --output=avail /var/lib | tail -n 1)
|
||||||
# if there's not enough memory-backed storage, mount an available disk
|
- mkdir /mnt/ephemeral
|
||||||
- if [ ${FREE_MB} -lt ${NEED_MB} ]; then
|
# if there's enough memory-backed storage, mount an available disk
|
||||||
- mkdir /mnt/ephemeral
|
- if [ ${FREE_MB} -ge ${NEED_MB} ]; then
|
||||||
# Use vda if provided by a hypervisor
|
- mkdir -p /var/lib/images
|
||||||
- if [ -e /dev/vda ]; then
|
- truncate -s ${NEED_MB}M /var/lib/images/ephemeral.img
|
||||||
- mkfs.ext4 /dev/vda
|
- mkfs.ext4 /var/lib/images/ephemeral.img
|
||||||
- mount /dev/vda /mnt/ephemeral
|
- mount /var/lib/images/ephemeral.img /mnt/ephemeral
|
||||||
# Fall back to sda
|
# Use vda if provided by a hypervisor
|
||||||
- elif [ -e /dev/sda ]; then
|
- elif [ -e /dev/vda ]; then
|
||||||
- mkfs.ext4 -F /dev/sda
|
- mkfs.ext4 /dev/vda
|
||||||
- mount /dev/sda /mnt/ephemeral
|
- mount /dev/vda /mnt/ephemeral
|
||||||
- else
|
# Fall back to sda
|
||||||
- echo "Not enough RAM to host images, and no available disks found"
|
- elif [ -e /dev/sda ]; then
|
||||||
- exit 1
|
- mkfs.ext4 -F /dev/sda
|
||||||
- fi
|
- mount /dev/sda /mnt/ephemeral
|
||||||
- mkdir -p /opt/metal3-dev-env/ironic/html/images
|
- else
|
||||||
- mkdir -p /mnt/ephemeral/opt/metal3-dev-env/ironic/html/images
|
- echo "Not enough RAM to host images, and no available disks found"
|
||||||
- mount --bind /mnt/ephemeral/opt/metal3-dev-env/ironic/html/images /opt/metal3-dev-env/ironic/html/images
|
- exit 1
|
||||||
- mkdir -p /var/lib/docker /mnt/ephemeral/var/lib/docker
|
|
||||||
- mount --bind /mnt/ephemeral/var/lib/docker /var/lib/docker
|
|
||||||
- mkdir -p /var/lib/docker-engine /mnt/ephemeral/var/lib/docker-engine
|
|
||||||
- mount --bind /mnt/ephemeral/var/lib/docker-engine /var/lib/docker-engine
|
|
||||||
- mkdir -p /mnt/ephemeral/var/lib/kubelet/ /var/lib/kubelet/
|
|
||||||
- mount --bind /mnt/ephemeral/var/lib/kubelet/ /var/lib/kubelet/
|
|
||||||
- fi
|
- fi
|
||||||
|
- mkdir -p /opt/metal3-dev-env/ironic/html/images
|
||||||
|
- mkdir -p /mnt/ephemeral/opt/metal3-dev-env/ironic/html/images
|
||||||
|
- mount --bind /mnt/ephemeral/opt/metal3-dev-env/ironic/html/images /opt/metal3-dev-env/ironic/html/images
|
||||||
|
- mkdir -p /var/lib/docker /mnt/ephemeral/var/lib/docker
|
||||||
|
- mount --bind /mnt/ephemeral/var/lib/docker /var/lib/docker
|
||||||
|
- mkdir -p /var/lib/docker-engine /mnt/ephemeral/var/lib/docker-engine
|
||||||
|
- mount --bind /mnt/ephemeral/var/lib/docker-engine /var/lib/docker-engine
|
||||||
|
- mkdir -p /mnt/ephemeral/var/lib/kubelet/ /var/lib/kubelet/
|
||||||
|
- mount --bind /mnt/ephemeral/var/lib/kubelet/ /var/lib/kubelet/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user