Chinaunix首页 | 论坛 | 博客
  • 博客访问: 428043
  • 博文数量: 58
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 623
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-26 18:48
个人简介

在生存面前,那纯洁的理想,原来是那么脆弱不堪!

文章分类

全部博文(58)

文章存档

2022年(1)

2021年(1)

2019年(3)

2018年(6)

2017年(6)

2016年(14)

2015年(10)

2014年(16)

2013年(1)

我的朋友

分类: 系统运维

2018-01-31 11:09:47

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

阅读(1865) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~