From c0d16c279ad2a24bd13e2dbd6ae6986c37c4f230 Mon Sep 17 00:00:00 2001 From: Davanum Srinivas Date: Fri, 19 May 2017 10:23:46 -0400 Subject: [PATCH] Get rid of zookeeper from devstack In Ibbb430fb1dbf66942168e0cb52d990ab6a2eb8d7, we are adding etcd3 as a new base service. We should drop zookeeper and use etcd3 as the backend. Since cinder is the first service for this tooz+etcd3 DLM scenario and cinder uses eventlet we have cannnot use the grpc based driver in tooz. So new CINDER_COORDINATION_URL that defaults to the etcd3's grpc HTTP gateway based tooz backend. We need to hold this change until the tooz change (see Depends-On) is available in a tooz release. Depends-On: I6184ed193482dad9643ccb2b97133d4957485408 Change-Id: Ia187e1a86413edf25b909b6bb57e84fb4930a696 --- files/debs/zookeeper | 1 - files/rpms/zookeeper | 1 - files/zookeeper/environment | 36 ---------- files/zookeeper/log4j.properties | 69 ------------------- files/zookeeper/myid | 1 - files/zookeeper/zoo.cfg | 74 --------------------- lib/cinder | 9 ++- lib/dlm | 111 ------------------------------- stack.sh | 5 -- unstack.sh | 1 - 10 files changed, 4 insertions(+), 304 deletions(-) delete mode 100644 files/debs/zookeeper delete mode 100644 files/rpms/zookeeper delete mode 100644 files/zookeeper/environment delete mode 100644 files/zookeeper/log4j.properties delete mode 100644 files/zookeeper/myid delete mode 100644 files/zookeeper/zoo.cfg delete mode 100644 lib/dlm diff --git a/files/debs/zookeeper b/files/debs/zookeeper deleted file mode 100644 index f41b559007..0000000000 --- a/files/debs/zookeeper +++ /dev/null @@ -1 +0,0 @@ -zookeeperd diff --git a/files/rpms/zookeeper b/files/rpms/zookeeper deleted file mode 100644 index 1bfac538a2..0000000000 --- a/files/rpms/zookeeper +++ /dev/null @@ -1 +0,0 @@ -zookeeper diff --git a/files/zookeeper/environment b/files/zookeeper/environment deleted file mode 100644 index afa2d2f89f..0000000000 --- a/files/zookeeper/environment +++ /dev/null @@ -1,36 +0,0 @@ -# -# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -#    http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# Modified from http://packages.ubuntu.com/saucy/zookeeperd -NAME=zookeeper -ZOOCFGDIR=/etc/zookeeper/conf - -# seems, that log4j requires the log4j.properties file to be in the classpath -CLASSPATH="$ZOOCFGDIR:/usr/share/java/jline.jar:/usr/share/java/log4j-1.2.jar:/usr/share/java/xercesImpl.jar:/usr/share/java/xmlParserAPIs.jar:/usr/share/java/netty.jar:/usr/share/java/slf4j-api.jar:/usr/share/java/slf4j-log4j12.jar:/usr/share/java/zookeeper.jar" - -ZOOCFG="$ZOOCFGDIR/zoo.cfg" -ZOO_LOG_DIR=/var/log/zookeeper -USER=$NAME -GROUP=$NAME -PIDDIR=/var/run/$NAME -PIDFILE=$PIDDIR/$NAME.pid -SCRIPTNAME=/etc/init.d/$NAME -JAVA=/usr/bin/java -ZOOMAIN="org.apache.zookeeper.server.quorum.QuorumPeerMain" -ZOO_LOG4J_PROP="INFO,ROLLINGFILE" -JMXLOCALONLY=false -JAVA_OPTS="" diff --git a/files/zookeeper/log4j.properties b/files/zookeeper/log4j.properties deleted file mode 100644 index 6c45a4aad9..0000000000 --- a/files/zookeeper/log4j.properties +++ /dev/null @@ -1,69 +0,0 @@ -# -# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -#    http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# From http://packages.ubuntu.com/saucy/zookeeperd - -# ZooKeeper Logging Configuration -# - -# Format is " (, )+ - -log4j.rootLogger=${zookeeper.root.logger} - -# Example: console appender only -# log4j.rootLogger=INFO, CONSOLE - -# Example with rolling log file -#log4j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE - -# Example with rolling log file and tracing -#log4j.rootLogger=TRACE, CONSOLE, ROLLINGFILE, TRACEFILE - -# -# Log INFO level and above messages to the console -# -log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender -log4j.appender.CONSOLE.Threshold=INFO -log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout -log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n - -# -# Add ROLLINGFILE to rootLogger to get log file output -# Log DEBUG level and above messages to a log file -log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender -log4j.appender.ROLLINGFILE.Threshold=WARN -log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/zookeeper.log - -# Max log file size of 10MB -log4j.appender.ROLLINGFILE.MaxFileSize=10MB -# uncomment the next line to limit number of backup files -#log4j.appender.ROLLINGFILE.MaxBackupIndex=10 - -log4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout -log4j.appender.ROLLINGFILE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n - - -# -# Add TRACEFILE to rootLogger to get log file output -# Log DEBUG level and above messages to a log file -log4j.appender.TRACEFILE=org.apache.log4j.FileAppender -log4j.appender.TRACEFILE.Threshold=TRACE -log4j.appender.TRACEFILE.File=${zookeeper.log.dir}/zookeeper_trace.log - -log4j.appender.TRACEFILE.layout=org.apache.log4j.PatternLayout -### Notice we are including log4j's NDC here (%x) -log4j.appender.TRACEFILE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L][%x] - %m%n diff --git a/files/zookeeper/myid b/files/zookeeper/myid deleted file mode 100644 index c227083464..0000000000 --- a/files/zookeeper/myid +++ /dev/null @@ -1 +0,0 @@ -0 \ No newline at end of file diff --git a/files/zookeeper/zoo.cfg b/files/zookeeper/zoo.cfg deleted file mode 100644 index b8f55827e3..0000000000 --- a/files/zookeeper/zoo.cfg +++ /dev/null @@ -1,74 +0,0 @@ -# -# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -#    http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# http://hadoop.apache.org/zookeeper/docs/current/zookeeperAdmin.html - -# The number of milliseconds of each tick -tickTime=2000 -# The number of ticks that the initial -# synchronization phase can take -initLimit=10 -# The number of ticks that can pass between -# sending a request and getting an acknowledgement -syncLimit=5 -# the directory where the snapshot is stored. -dataDir=/var/lib/zookeeper -# Place the dataLogDir to a separate physical disc for better performance -# dataLogDir=/disk2/zookeeper - -# the port at which the clients will connect -clientPort=2181 - -# Maximum number of clients that can connect from one client -maxClientCnxns=60 - -# specify all zookeeper servers -# The fist port is used by followers to connect to the leader -# The second one is used for leader election - -server.0=127.0.0.1:2888:3888 - -# To avoid seeks ZooKeeper allocates space in the transaction log file in -# blocks of preAllocSize kilobytes. The default block size is 64M. One reason -# for changing the size of the blocks is to reduce the block size if snapshots -# are taken more often. (Also, see snapCount). -#preAllocSize=65536 - -# Clients can submit requests faster than ZooKeeper can process them, -# especially if there are a lot of clients. To prevent ZooKeeper from running -# out of memory due to queued requests, ZooKeeper will throttle clients so that -# there is no more than globalOutstandingLimit outstanding requests in the -# system. The default limit is 1,000.ZooKeeper logs transactions to a -# transaction log. After snapCount transactions are written to a log file a -# snapshot is started and a new transaction log file is started. The default -# snapCount is 10,000. -#snapCount=1000 - -# If this option is defined, requests will be will logged to a trace file named -# traceFile.year.month.day. -#traceFile= - -# Leader accepts client connections. Default value is "yes". The leader machine -# coordinates updates. For higher update throughput at thes slight expense of -# read throughput the leader can be configured to not accept clients and focus -# on coordination. -#leaderServes=yes - -# Autopurge every hour to avoid using lots of disk in bursts -# Order of the next 2 properties matters. -# autopurge.snapRetainCount must be before autopurge.purgeInterval. -autopurge.snapRetainCount=3 -autopurge.purgeInterval=1 \ No newline at end of file diff --git a/lib/cinder b/lib/cinder index e3a687b4f2..1b4f4e6da2 100644 --- a/lib/cinder +++ b/lib/cinder @@ -363,11 +363,10 @@ function configure_cinder { iniset $CINDER_CONF DEFAULT os_privileged_user_tenant "$SERVICE_PROJECT_NAME" iniset $CINDER_CONF DEFAULT graceful_shutdown_timeout "$SERVICE_GRACEFUL_SHUTDOWN_TIMEOUT" - # Set the backend url according to the configured dlm backend - if is_dlm_enabled; then - if [[ "$(dlm_backend)" == "zookeeper" ]]; then - iniset $CINDER_CONF coordination backend_url "zookeeper://${SERVICE_HOST}:2181" - fi + if [[ ! -z "$CINDER_COORDINATION_URL" ]]; then + iniset $CINDER_CONF coordination backend_url "$CINDER_COORDINATION_URL" + elif is_service_enabled etcd3; then + iniset $CINDER_CONF coordination backend_url "etcd3+http://${SERVICE_HOST}:2379" fi } diff --git a/lib/dlm b/lib/dlm deleted file mode 100644 index b5ac0f5d33..0000000000 --- a/lib/dlm +++ /dev/null @@ -1,111 +0,0 @@ -#!/bin/bash -# -# lib/dlm -# -# Functions to control the installation and configuration of software -# that provides a dlm (and possibly other functions). The default is -# **zookeeper**, and is going to be the only backend supported in the -# devstack tree. - -# Dependencies: -# -# - ``functions`` file - -# ``stack.sh`` calls the entry points in this order: -# -# - is_dlm_enabled -# - install_dlm -# - configure_dlm -# - cleanup_dlm - -# Save trace setting -_XTRACE_DLM=$(set +o | grep xtrace) -set +o xtrace - - -# Defaults -# -------- - -# - -# Set up default directories -ZOOKEEPER_DATA_DIR=$DEST/data/zookeeper -ZOOKEEPER_CONF_DIR=/etc/zookeeper - - -# Entry Points -# ------------ -# -# NOTE(sdague): it is expected that when someone wants to implement -# another one of these out of tree, they'll implement the following -# functions: -# -# - dlm_backend -# - install_dlm -# - configure_dlm -# - cleanup_dlm - -# This should be declared in the settings file of any plugin or -# service that needs to have a dlm in their environment. -function use_dlm { - enable_service $(dlm_backend) -} - -# A function to return the name of the backend in question, some users -# are going to need to know this. -function dlm_backend { - echo "zookeeper" -} - -# Test if a dlm is enabled (defaults to a zookeeper specific check) -function is_dlm_enabled { - [[ ,${ENABLED_SERVICES}, =~ ,"$(dlm_backend)", ]] && return 0 - return 1 -} - -# cleanup_dlm() - Remove residual data files, anything left over from previous -# runs that a clean run would need to clean up -function cleanup_dlm { - # NOTE(sdague): we don't check for is_enabled here because we - # should just delete this regardless. Some times users updated - # their service list before they run cleanup. - sudo rm -rf $ZOOKEEPER_DATA_DIR -} - -# configure_dlm() - Set config files, create data dirs, etc -function configure_dlm { - if is_dlm_enabled; then - sudo cp $FILES/zookeeper/* $ZOOKEEPER_CONF_DIR - sudo sed -i -e 's|.*dataDir.*|dataDir='$ZOOKEEPER_DATA_DIR'|' $ZOOKEEPER_CONF_DIR/zoo.cfg - # clean up from previous (possibly aborted) runs - # create required data files - sudo rm -rf $ZOOKEEPER_DATA_DIR - sudo mkdir -p $ZOOKEEPER_DATA_DIR - # restart after configuration, there is no reason to make this - # another step, because having data files that don't match the - # zookeeper running is just going to cause tears. - restart_service zookeeper - fi -} - -# install_dlm() - Collect source and prepare -function install_dlm { - if is_dlm_enabled; then - pip_install_gr_extras tooz zookeeper - if is_ubuntu; then - install_package zookeeperd - elif is_fedora; then - install_package zookeeper - else - die $LINENO "Don't know how to install zookeeper on this platform" - fi - fi -} - -# Restore xtrace -$_XTRACE_DLM - -# Tell emacs to use shell-script-mode -## Local variables: -## mode: shell-script -## End: diff --git a/stack.sh b/stack.sh index ecf068a4a9..6ff2464fce 100755 --- a/stack.sh +++ b/stack.sh @@ -573,7 +573,6 @@ source $TOP_DIR/lib/swift source $TOP_DIR/lib/neutron source $TOP_DIR/lib/ldap source $TOP_DIR/lib/dstat -source $TOP_DIR/lib/dlm source $TOP_DIR/lib/etcd3 source $TOP_DIR/lib/os_brick @@ -772,10 +771,6 @@ set_systemd_override DefaultLimitNOFILE ${ULIMIT_NOFILE} install_rpc_backend restart_rpc_backend -# NOTE(sdague): dlm install is conditional on one being enabled by configuration -install_dlm -configure_dlm - if is_service_enabled $DATABASE_BACKENDS; then install_database fi diff --git a/unstack.sh b/unstack.sh index a9826f5a97..77a151f933 100755 --- a/unstack.sh +++ b/unstack.sh @@ -70,7 +70,6 @@ source $TOP_DIR/lib/neutron source $TOP_DIR/lib/ldap source $TOP_DIR/lib/dstat source $TOP_DIR/lib/etcd3 -source $TOP_DIR/lib/dlm # Extras Source # --------------