Project

General

Profile

Actions

Feature #8391

closed

sysvinit does not support custom cluster names

Added by Alfredo Deza almost 10 years ago. Updated over 9 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
% Done:

0%

Source:
other
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

It looks like custom cluster names are not being handled correctly by the init script.

This is reproducible with ceph-deploy:

$ ceph-deploy --cluster cephtst mon create node2
[ceph_deploy.conf][DEBUG ] found configuration file at: /Users/alfredo/.cephdeploy.conf
[ceph_deploy.cli][INFO  ] Invoked (1.5.2): /Users/alfredo/.virtualenvs/ceph-deploy/bin/ceph-deploy --cluster cephtst mon create node2
[ceph_deploy.mon][DEBUG ] Deploying mon, cluster cephtst hosts node2
[ceph_deploy.mon][DEBUG ] detecting platform for host node2 ...
[node2][DEBUG ] connected to host: node2
[node2][DEBUG ] detect platform information from remote host
[node2][DEBUG ] detect machine type
[ceph_deploy.mon][INFO  ] distro info: CentOS 6.4 Final
[node2][DEBUG ] determining if provided host has same hostname in remote
[node2][DEBUG ] get remote short hostname
[node2][DEBUG ] deploying mon to node2
[node2][DEBUG ] get remote short hostname
[node2][DEBUG ] remote hostname: node2
[node2][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf
[node2][DEBUG ] create the mon path if it does not exist
[node2][DEBUG ] checking for done path: /var/lib/ceph/mon/cephtst-node2/done
[node2][DEBUG ] done path does not exist: /var/lib/ceph/mon/cephtst-node2/done
[node2][INFO  ] creating keyring file: /var/lib/ceph/tmp/cephtst-node2.mon.keyring
[node2][DEBUG ] create the monitor keyring file
[node2][INFO  ] Running command: sudo ceph-mon --cluster cephtst --mkfs -i node2 --keyring /var/lib/ceph/tmp/cephtst-node2.mon.keyring
[node2][DEBUG ] ceph-mon: mon.noname-a 192.168.111.101:6789/0 is local, renaming to mon.node2
[node2][DEBUG ] ceph-mon: set fsid to f6cd60a4-bc1a-4d24-ab6f-39de9e59eabd
[node2][DEBUG ] ceph-mon: created monfs at /var/lib/ceph/mon/cephtst-node2 for mon.node2
[node2][INFO  ] unlinking keyring file /var/lib/ceph/tmp/cephtst-node2.mon.keyring
[node2][DEBUG ] create a done file to avoid re-doing the mon deployment
[node2][DEBUG ] create the init path if it does not exist
[node2][DEBUG ] locating the `service` executable...
[node2][INFO  ] Running command: sudo /sbin/service ceph -c /etc/ceph/cephtst.conf start mon.node2
[node2][INFO  ] Running command: sudo ceph --cluster=cephtst --admin-daemon /var/run/ceph/cephtst-mon.node2.asok mon_status
[node2][ERROR ] admin_socket: exception getting command descriptions: [Errno 2] No such file or directory
[node2][WARNIN] monitor: mon.node2, might not be running yet
[node2][INFO  ] Running command: sudo ceph --cluster=cephtst --admin-daemon /var/run/ceph/cephtst-mon.node2.asok mon_status
[node2][ERROR ] admin_socket: exception getting command descriptions: [Errno 2] No such file or directory
[node2][WARNIN] monitor node2 does not exist in monmap
[node2][WARNIN] neither `public_addr` nor `public_network` keys are defined for monitors
[node2][WARNIN] monitors may not be able to form quorum

ceph-deploy does make extensive use of `--cluster` in every command that accepts this, except for when starting the actual deamon (--cluster is not allowed and inferred from the ceph config file)

[vagrant@node2 ~]$ sudo /etc/init.d/ceph --cluster cephtest -c /etc/ceph/cephtst.conf start mon.node2
unrecognized option '--cluster'
usage: /etc/init.d/ceph [options] {start|stop|restart|condrestart} [mon|osd|mds]...
    -c ceph.conf
    --valgrind    run via valgrind
    --hostname [hostname]    override hostname lookup
[vagrant@node2 ~]$ sudo /etc/init.d/ceph --cluster=cephtest -c /etc/ceph/cephtst.conf start mon.node2
unrecognized option '--cluster=cephtest'
usage: /etc/init.d/ceph [options] {start|stop|restart|condrestart} [mon|osd|mds]...
    -c ceph.conf
    --valgrind    run via valgrind
    --hostname [hostname]    override hostname lookup

If the daemon is started manually (without ceph-deploy and without using --cluster) nothing happens. No log gets written, nothing goes to stderr nor stdout
and the exit code is 0.

[vagrant@node2 ~]$ sudo /etc/init.d/ceph -c /etc/ceph/cephtst.conf start mon.node2
[vagrant@node2 ~]$ echo $?
0
[vagrant@node2 ~]$ ls /var/run/ceph/
[vagrant@node2 ~]$ ls /var/log/ceph/

After adding a few print statements on the init script to see where execution stops, it seems to be this line:

    check_host || continue

So check_host fails. So I go to check_host to see what is going on, and the place where this all fails is here:

    # ignore all sections without 'host' defined
    if [ -z "$host" ]; then
        return 1
    fi

So `$host` is never resolved, and that variable comes from this one command a few lines into that function:

    host=`$CCONF -c $conf -n $type.$id host`

For my example above, that translates into this one-liner:

[vagrant@node2 ~]$ /usr/bin/ceph-conf -c /etc/ceph/cephtst.conf --name mon.node2 host
[vagrant@node2 ~]$ echo $?
1

And this is where I am not sure what else to try. This of course does not happen at all when there is no custom cluster name being used.

Actions #1

Updated by Sage Weil almost 10 years ago

I believe there is no cluster name support at all in the sysvinit script. We only added it to the upstart stuff. I suspect this is a non-trivial project (not a bug fix)

Actions #2

Updated by Alfredo Deza almost 10 years ago

  • Subject changed from init scripts having issues with custom cluster names to sysvinit does not support custom cluster names

This is just an issue with sysvinit, so nothing in that realm will support custom cluster names.

Actions #3

Updated by Alfredo Deza almost 10 years ago

  • Tracker changed from Bug to Feature
Actions #4

Updated by Alfredo Deza almost 10 years ago

ceph-deploy now refuses to install on sysvinit systems when custom cluster names are passed in.

This issue is left open since at some point we want to fix/implement custom cluster names for sysvinit distros.

Actions #5

Updated by Sage Weil over 9 years ago

  • Status changed from New to Resolved
Actions

Also available in: Atom PDF