操纵集群

用 upstart 控制 Ceph

ceph-deploy 把 Ceph Cuttlefish 及更高版部署到 Ubuntu 之后,你可以用基于事件的 Upstart 来启动、关闭 Ceph 节点上的守护进程。 Upstart 不要求你在配置文件里定义守护进程例程。

用下列命令列出 Ceph 作业和例程:

sudo initctl list | grep ceph

详情参见 initctl

启动所有守护进程

要启动一 Ceph 节点(任何类型)上的所有守护进程,用下列命令:

sudo start ceph-all

停止所有守护进程

要停止一 Ceph 节点(任何类型)上的所有守护进程,用下列命令:

sudo stop ceph-all

按类型启动所有守护进程

要启动一节点上的某一类守护进程,用下列命令:

sudo start ceph-osd-all
sudo start ceph-mon-all
sudo start ceph-mds-all

按类型停止所有守护进程

要停止一节点上的某一类守护进程,用下列命令:

sudo stop ceph-osd-all sudo stop ceph-mon-all sudo stop ceph-mds-all

启动单个进程

要启动某节点上一指定守护进程例程,用下列命令之一:

sudo start ceph-osd id={id}
sudo start ceph-mon id={hostname}
sudo start ceph-mds id={hostname}

例如:

sudo start ceph-osd id=1
sudo start ceph-mon id=ceph-server
sudo start ceph-mds id=ceph-server

停止单个进程

要停止某节点上一指定守护进程例程,用下列命令之一:

sudo stop ceph-osd id={id}
sudo stop ceph-mon id={hostname}
sudo stop ceph-mds id={hostname}

例如:

sudo stop ceph-osd id=1
sudo start ceph-mon id=ceph-server
sudo start ceph-mds id=ceph-server

运行 Ceph

每次用命令启动重启停止Ceph 守护进程(或整个集群)时,你必须指定至少一个选项和一个命令,还可能要指定守护进程类型或具体例程。

{commandline} [options] [commands] [daemons]

ceph 命令的选项包括:

选项 简写 描述
--verbose -v 详细的日志。
--valgrind N/A (只适合开发者和质检人员)用 Valgrind 调试。
--allhosts -a ceph.conf 里配置的所有主机上执行,否 则它只在本机执行。
--restart N/A 核心转储后自动重启。
--norestart N/A 核心转储后不自动重启。
--conf -c 使用另外一个配置文件。

Ceph 子命令包括:

命令 描述
start 启动守护进程。
stop 停止守护进程。
forcestop 暴力停止守护进程,等价于 kill -9
killall 杀死某一类守护进程。
cleanlogs 清理掉日志目录。
cleanalllogs 清理掉日志目录内的所有文件。

至于子系统操作, ceph 服务能指定守护进程类型,在 [daemons] 处指定守护进程类型就行了,守护进程类型包括:

  • mon
  • osd
  • mds

通过 sysvinit 机制运行 Ceph

在 CentOS 、 Redhat 、 Fedora 和 SLES 发行版上可以通过传统的 sysvinit 运行 Ceph , Debian/Ubuntu 的较老的版本也可以用此方法。

启动所有守护进程

要启动 Ceph 集群,执行 ceph 时加上 start 命令,语法如下:

sudo /etc/init.d/ceph [options] [start|restart] [daemonType|daemonID]

下面是个典型实例:

sudo /etc/init.d/ceph -a start

-a (即在所有节点上执行)执行完成后 Ceph 应该开始运行了。

停止所有守护进程

要停止 Ceph 集群,执行 ceph 时加上 stop 命令,语法如下:

sudo /etc/init.d/ceph [options] stop [daemonType|daemonID]

下面是个典型实例:

sudo /etc/init.d/ceph -a stop

执行命令时一旦加了 -a (即在所有节点执行),整个 Ceph 集群都会关闭。

启动一类守护进程

要启动本节点上某一类的所有 Ceph 守护进程,按此语法:

sudo /etc/init.d/ceph start {daemon-type}
sudo /etc/init.d/ceph start osd

要启动非本机节点上某一类的所有 Ceph 守护进程,按此语法:

sudo /etc/init.d/ceph -a start {daemon-type}
sudo /etc/init.d/ceph -a start osd

停止一类守护进程

要停止本节点上某一类的所有 Ceph 守护进程,按此语法:

sudo /etc/init.d/ceph stop {daemon-type} sudo /etc/init.d/ceph stop osd

要启动非本机节点上某一类的所有 Ceph 守护进程,按此语法:

sudo /etc/init.d/ceph -a stop {daemon-type}
sudo /etc/init.d/ceph -a stop osd

启动单个守护进程

要启动本节点上某个 Ceph 守护进程,按此语法:

sudo /etc/init.d/ceph start {daemon-type}.{instance}
sudo /etc/init.d/ceph start osd.0

要启动另一节点上某个 Ceph 守护进程,按此语法:

sudo /etc/init.d/ceph -a start {daemon-type}.{instance}
sudo /etc/init.d/ceph -a start osd.0

停止单个守护进程

要停止本节点上某个 Ceph 守护进程,按此语法:

sudo /etc/init.d/ceph stop {daemon-type}.{instance}
sudo /etc/init.d/ceph stop osd.0

要停止另一节点上某个 Ceph 守护进程,按此语法:

sudo /etc/init.d/ceph -a stop {daemon-type}.{instance}
sudo /etc/init.d/ceph -a stop osd.0

把 Ceph 当服务运行

如果你是用 ceph-deploy 部署 Argonaut 或 Bobtail 的,那么 Ceph 可以作为服务运行(还可以用 sysvinit )。

启动所有守护进程

要启动你的 Ceph 集群,执行 ceph 时加上 start 命令,按此语法:

sudo service ceph [options] [start|restart] [daemonType|daemonID]

下面是个典型实例:

sudo service ceph -a start

-a (即在所有节点上执行)执行完成后 Ceph 应该开始运行了。

停止所有守护进程

要停止你的 Ceph 集群,执行 ceph 时加上 stop 命令,按此语法:

sudo service ceph [options] stop [daemonType|daemonID]

例如:

sudo service ceph -a stop

-a (即在所有节点上执行)执行完成后 Ceph 应该已停止。

启动一类守护进程

要启动本节点上某一类的所有 Ceph 守护进程,按此语法:

sudo service ceph start {daemon-type}
sudo service ceph start osd

要启动所有节点上某一类的所有 Ceph 守护进程,按此语法:

sudo service ceph -a start {daemon-type}
sudo service ceph -a start osd

停止一类守护进程

要停止本节点上某一类的所有 Ceph 守护进程,按此语法:

sudo service ceph stop {daemon-type}
sudo service ceph stop osd

要停止所有节点上某一类的所有 Ceph 守护进程,按此语法:

sudo service ceph -a stop {daemon-type}
sudo service ceph -a stop osd

启动单个守护进程

要启动本节点上某个 Ceph 守护进程,按此语法:

sudo service ceph start {daemon-type}.{instance}
sudo service ceph start osd.0

要启动另一节点上某个 Ceph 守护进程,按此语法:

sudo service ceph -a start {daemon-type}.{instance}
sudo service ceph -a start osd.0

停止单个守护进程

要停止本节点上某个 Ceph 守护进程,按此语法:

sudo service ceph stop {daemon-type}.{instance}
sudo service ceph stop osd.0

要停止另一节点上某个 Ceph 守护进程,按此语法:

sudo service ceph -a stop {daemon-type}.{instance}
sudo service ceph -a stop osd.0