Add option to place etcd data dir on RAM disk
Seems like for etcd-heavy services like Kubernetes, the fsync performance of gate VM's are too low [1]. This commit implements an option to put etcd data directory on RAM disk (tmpfs) to work this around. [1] http://lists.openstack.org/pipermail/openstack-discuss/2019-January/001849.html Change-Id: I5a17099cb9d6941b1a009dc82daefd2c7946d892
This commit is contained in:
parent
7adc401bba
commit
6757a9c5de
10
lib/etcd3
10
lib/etcd3
@ -27,6 +27,10 @@ set +o xtrace
|
|||||||
ETCD_DATA_DIR="$DATA_DIR/etcd"
|
ETCD_DATA_DIR="$DATA_DIR/etcd"
|
||||||
ETCD_SYSTEMD_SERVICE="devstack@etcd.service"
|
ETCD_SYSTEMD_SERVICE="devstack@etcd.service"
|
||||||
ETCD_BIN_DIR="$DEST/bin"
|
ETCD_BIN_DIR="$DEST/bin"
|
||||||
|
# Option below will mount ETCD_DATA_DIR as ramdisk, which is useful to run
|
||||||
|
# etcd-heavy services in the gate VM's, e.g. Kubernetes.
|
||||||
|
ETCD_USE_RAMDISK=$(trueorfalse False ETCD_USE_RAMDISK)
|
||||||
|
ETCD_RAMDISK_MB=${ETCD_RAMDISK_MB:-512}
|
||||||
|
|
||||||
if is_ubuntu ; then
|
if is_ubuntu ; then
|
||||||
UBUNTU_RELEASE_BASE_NUM=`lsb_release -r | awk '{print $2}' | cut -d '.' -f 1`
|
UBUNTU_RELEASE_BASE_NUM=`lsb_release -r | awk '{print $2}' | cut -d '.' -f 1`
|
||||||
@ -89,6 +93,9 @@ function cleanup_etcd3 {
|
|||||||
|
|
||||||
$SYSTEMCTL daemon-reload
|
$SYSTEMCTL daemon-reload
|
||||||
|
|
||||||
|
if [[ "$ETCD_USE_RAMDISK" == "True" ]]; then
|
||||||
|
sudo umount $ETCD_DATA_DIR
|
||||||
|
fi
|
||||||
sudo rm -rf $ETCD_DATA_DIR
|
sudo rm -rf $ETCD_DATA_DIR
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,6 +105,9 @@ function install_etcd3 {
|
|||||||
# Create the necessary directories
|
# Create the necessary directories
|
||||||
sudo mkdir -p $ETCD_BIN_DIR
|
sudo mkdir -p $ETCD_BIN_DIR
|
||||||
sudo mkdir -p $ETCD_DATA_DIR
|
sudo mkdir -p $ETCD_DATA_DIR
|
||||||
|
if [[ "$ETCD_USE_RAMDISK" == "True" ]]; then
|
||||||
|
sudo mount -t tmpfs -o nodev,nosuid,size=${ETCD_RAMDISK_MB}M tmpfs $ETCD_DATA_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
# Download and cache the etcd tgz for subsequent use
|
# Download and cache the etcd tgz for subsequent use
|
||||||
local etcd_file
|
local etcd_file
|
||||||
|
Loading…
x
Reference in New Issue
Block a user