From: Amon Ott <a.ott@m-privacy.de>
To: Tommi Virtanen <tv@inktank.com>
Cc: ceph-devel@vger.kernel.org
Subject: Re: Multiple named clusters on same nodes
Date: Thu, 24 May 2012 10:58:00 +0200 [thread overview]
Message-ID: <201205241058.02262.a.ott@m-privacy.de> (raw)
In-Reply-To: <201205240959.46764.a.ott@m-privacy.de>
[-- Attachment #1: Type: text/plain, Size: 762 bytes --]
On Thursday 24 May 2012 wrote Amon Ott:
> Attached is a patch based on current git stable that makes mkcephfs work
> fine for me with --cluster name. ceph-mon uses the wrong mkfs path for "mon
> data" (default "ceph" instead of supplied cluster name), so I put in a
> workaround.
>
> Please have a look and consider inclusion as well as fixing mon data path.
> Thanks.
And another patch for the init script to handle multiple clusters.
Amon Ott
--
Dr. Amon Ott
m-privacy GmbH Tel: +49 30 24342334
Am Köllnischen Park 1 Fax: +49 30 24342336
10179 Berlin http://www.m-privacy.de
Amtsgericht Charlottenburg, HRB 84946
Geschäftsführer:
Dipl.-Kfm. Holger Maczkowsky,
Roman Maczkowsky
GnuPG-Key-ID: 0x2DD3A649
[-- Attachment #2: init-ceph-with-cluster-names.diff --]
[-- Type: text/x-diff, Size: 5476 bytes --]
commit d446077dc93894784348f7560ee29eaf6e3ce272
Author: Amon Ott <ao@rsbac.org>
Date: Thu May 24 10:55:27 2012 +0200
Make init script init-ceph.in cluster name aware.
Add "--cluster clustername" parameter to start/stop/etc. specific cluster
with default config file /etc/ceph/cluster.conf.
If no clustername is given, walk through /etc/ceph/*.conf and try to
start/stop/etc. them all with clustername taken from conf basename.
Signed-off-by: Amon Ott <a.ott@m-privacy.de>
diff --git a/src/init-ceph.in b/src/init-ceph.in
index f2702e3..6efe7f0 100644
--- a/src/init-ceph.in
+++ b/src/init-ceph.in
@@ -28,6 +28,7 @@ fi
usage_exit() {
echo "usage: $0 [options] {start|stop|restart} [mon|osd|mds]..."
+ printf "\t--cluster clustername\n"
printf "\t-c ceph.conf\n"
printf "\t--valgrind\trun via valgrind\n"
printf "\t--hostname [hostname]\toverride hostname lookup\n"
@@ -36,6 +37,8 @@ usage_exit() {
. $LIBDIR/ceph_common.sh
+conf=""
+
EXIT_STATUS=0
signal_daemon() {
@@ -45,7 +48,7 @@ signal_daemon() {
signal=$4
action=$5
[ -z "$action" ] && action="Stopping"
- echo -n "$action Ceph $name on $host..."
+ echo -n "$action Ceph $cluster $name on $host..."
do_cmd "if [ -e $pidfile ]; then
pid=`cat $pidfile`
if [ -e /proc/\$pid ] && grep -q $daemon /proc/\$pid/cmdline ; then
@@ -75,7 +78,7 @@ stop_daemon() {
signal=$4
action=$5
[ -z "$action" ] && action="Stopping"
- echo -n "$action Ceph $name on $host..."
+ echo -n "$action Ceph $cluster $name on $host..."
do_cmd "while [ 1 ]; do
[ -e $pidfile ] || break
pid=\`cat $pidfile\`
@@ -103,6 +106,7 @@ monaddr=
dobtrfs=1
dobtrfsumount=0
verbose=0
+cluster=""
while echo $1 | grep -q '^-'; do # FIXME: why not '^-'?
case $1 in
@@ -151,6 +155,12 @@ case $1 in
shift
hostname=$1
;;
+ --cluster )
+ [ -z "$2" ] && usage_exit
+ options="$options $1"
+ shift
+ cluster=$1
+ ;;
*)
echo unrecognized option \'$1\'
usage_exit
@@ -160,11 +170,25 @@ options="$options $1"
shift
done
-verify_conf
-
command=$1
[ -n "$*" ] && shift
+if test -z "$cluster"
+then
+ for c in /etc/ceph/*.conf
+ do
+ test -f $c && $0 --cluster "$(basename $c .conf)" "$command" "$@"
+ done
+ exit 0
+fi
+
+if test -z "$conf"
+then
+ conf="/etc/ceph/$cluster.conf"
+fi
+
+verify_conf
+
get_name_list "$@"
for name in $what; do
@@ -176,9 +200,9 @@ for name in $what; do
check_host || continue
binary="$BINDIR/ceph-$type"
- cmd="$binary -i $id"
+ cmd="$binary --cluster $cluster -i $id"
- get_conf pid_file "$RUN_DIR/$type.$id.pid" "pid file"
+ get_conf pid_file "$RUN_DIR/$type/$cluster-$id.pid" "pid file"
if [ -n "$pid_file" ]; then
do_cmd "mkdir -p "`dirname $pid_file`
cmd="$cmd --pid-file $pid_file"
@@ -191,13 +215,13 @@ for name in $what; do
get_conf auto_start "" "auto start"
if [ "$auto_start" = "no" ] || [ "$auto_start" = "false" ] || [ "$auto_start" = "0" ]; then
if [ -z "$@" ]; then
- echo "Skipping Ceph $name on $host... auto start is disabled"
+ echo "Skipping Ceph $cluster $name on $host... auto start is disabled"
continue
fi
fi
if daemon_is_running $name ceph-$type $id $pid_file; then
- echo "Starting Ceph $name on $host...already running"
+ echo "Starting Ceph $cluster $name on $host...already running"
continue
fi
@@ -228,7 +252,7 @@ for name in $what; do
fi
# do lockfile, if RH
- get_conf lockfile "/var/lock/subsys/ceph" "lock file"
+ get_conf lockfile "/var/lock/subsys/ceph/$cluster" "lock file"
lockdir=`dirname $lockfile`
if [ ! -d "$lockdir" ]; then
lockfile=""
@@ -270,7 +294,7 @@ for name in $what; do
echo Mounting Btrfs on $host:$btrfs_path
do_root_cmd "modprobe btrfs ; btrfs device scan || btrfsctl -a ; egrep -q '^[^ ]+ $btrfs_path' /proc/mounts || mount -t btrfs $btrfs_opt $first_dev $btrfs_path"
fi
- echo Starting Ceph $name on $host...
+ echo Starting Ceph $cluster $name on $host...
mkdir -p $RUN_DIR
get_conf pre_start_eval "" "pre start eval"
[ -n "$pre_start_eval" ] && $pre_start_eval
@@ -297,14 +321,14 @@ for name in $what; do
status)
if daemon_is_running $name ceph-$type $id $pid_file; then
- echo "$name: running..."
+ echo "$cluster $name: running..."
elif [ -e "$pid_file" ]; then
# daemon is dead, but pid file still exists
- echo "$name: dead."
+ echo "$cluster $name: dead."
EXIT_STATUS=1
else
# daemon is dead, and pid file is gone
- echo "$name: not running."
+ echo "$cluster $name: not running."
EXIT_STATUS=3
fi
;;
@@ -329,7 +353,7 @@ for name in $what; do
;;
force-reload | reload)
- signal_daemon $name ceph-$type $pid_file -1 "Reloading"
+ signal_daemon $name ceph-$type $pid_file -1 "$cluster Reloading"
;;
restart)
@@ -339,7 +363,7 @@ for name in $what; do
cleanlogs)
echo removing logs
- [ -n "$log_dir" ] && do_cmd "rm -f $log_dir/$type.$id.*"
+ [ -n "$log_dir" ] && do_cmd "rm -f $log_dir/$cluster-$type.$id.*"
;;
cleanalllogs)
next prev parent reply other threads:[~2012-05-24 8:58 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-23 9:00 Multiple named clusters on same nodes Amon Ott
2012-05-23 18:12 ` Tommi Virtanen
2012-05-24 7:59 ` Amon Ott
2012-05-24 8:58 ` Amon Ott [this message]
2012-05-29 18:54 ` Greg Farnum
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201205241058.02262.a.ott@m-privacy.de \
--to=a.ott@m-privacy.de \
--cc=ceph-devel@vger.kernel.org \
--cc=tv@inktank.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.