Ceph可以在多种操作系统中适配安装,但因为系统环境的不同,管理Ceph的服务也有所不同。有时我们需要单独重启某个ceph服务,尤其在多osd运行在同一台机器的情况,本文主要描述在Ubuntu16.04 和 Ubuntu14.04 中的服务管理;
1,在Ubuntu14.04 下,Ceph默认使用upstart方式管理ceph服务;
  1.1 系统开机启动服务解释:
   在 /etc/init/ceph-osd-all-starter.conf 文件下,可以看到如下代码;
  1. find -L /var/lib/ceph/osd/ -mindepth 1 -maxdepth 1 -regextype posix-egrep -regex '.*/[A-Za-z0-9]+-[A-Za-z0-9._-]+' -printf '%P\n' \
  2.   | while read f; do
  3.     if [ -e "/var/lib/ceph/osd/$f/ready" ] && [ -e "/var/lib/ceph/osd/$f/upstart" ] && [ ! -e "/var/lib/ceph/osd/$f/sysvinit" ]; then
  4.         cluster="${f%%-*}"
  5.         id="${f#*-}"
  6.     initctl emit ceph-osd cluster="$cluster" id="$id"
  7.     fi
  8.   done
    系统启动ceph-osd-all-starter 服务,检查/var/lib/ceph/osd/目录下所有的osd节点数据,分别采用initctl emit ceph-osd cluster="$cluster" id="$id" 提交事件信号,启动服务;

  1.2 如果需要指定管理某个服务可以直接使用如下命令:
     #initctl start ceph-osd id=0     #启动osd.0服务;
     #initctl stop ceph-osd id=0     #停止osd.0服务;
     #initctl restart ceph-osd id=0  #重启osd.0服务;

2,在Ubuntu16.04 下,Ceph默认使用systemd方式管理ceph服务;
  2.1 系统开机启动服务解释:
  在/etc/systemd/system/ceph-osd.target.wants 目录下,可以看到两个软连接ceph-osd@12.service  ceph-osd@4.service  指向同一文件/lib/systemd/system/ceph-osd@.service

文件内核心的三行配置代码

  1. Environment=CLUSTER=ceph
  2. ExecStart=/usr/bin/ceph-osd -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph
  3. ExecStartPre=/usr/lib/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i

  2.2 指定管理某个服务使用如下命令:
     #systemctl start ceph-osd@12.service
     #systemctl stop ceph-osd@12.service
     #systemctl restart ceph-osd@12.service
     #systemctl status ceph-osd@12.service

11-15 09:54
查看更多