红联Linux门户
Linux帮助

单机Ceph从Firefly升级到Hammer

发布时间:2015-12-19 09:47:02来源:linux网站作者:linuxhunter

本文描述了ceph集群如何从Firefly版升级到Hammer版的升级过程。

单机上部署了Firefly版的Ceph集群,其中包括:mon(一个)、osd(三个)和mds(一个)。单机上使用的操作系统是ubuntu-14.04-server-amd64版。此次升级的要求是数据不能丢失且不能停机升级。

由于当前Firefly版本使用的是mkcephfs部署的,而新版本的ceph已经用ceph-deploy代替了mkcephfs,因此在Hammer版本中已经没有了mkcephfs。升级部署可以使用ceph-deploy工具进行升级,也可以通过包管理的方法进行升级。这里我才用ceph-deploy工具进行升级。


具体升级操作流程如下:

1、安装ceph-deploy工具。

1)更新新版本的软件源。

#wget -q -O- 'https://git.ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add -

#apt-add-repository 'deb http://download.ceph.com/debian-hammer/ trusty main'

#echo deb https://download.ceph.com/debian-hammer/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list

2)更新ceph-deploy。

#pip install -U ceph-deploy


2、更新monitor节点。

1)更新ceph集群中的所有monitor节点的ceph版本。

由于我的集群都部署在一台设备上了,所以此处的更新就是整个Ceph集群的更新

#ceph-deploy install --release hammer ceph0

2)重新启动每一个monitor节点。

#/etc/init.d/ceph restart mon

3)查看monitor节点的启动情况。

#ceph mon stat

e1: 1 mons at {a=192.168.250.58:6789/0}, election epoch 1, quorum 0 a


3、更新OSD节点。

1)更新ceph集群中的所有osd节点的ceph版本。

#ceph-deploy install --release hammer ceph0

2)重新启动每一个osd节点。

#/etc/init.d/ceph restart osd

3)查看osd节点的启动情况。

#ceph osd stat

osdmap e191: 3 osds: 3 up, 3 in


4、更新MDS节点。

1)更新ceph集群中的所有mds节点的ceph版本。

#ceph-deploy install --release hammer ceph0

2)重新启动每一个mds节点。

#/etc/init.d/ceph restart mds

3)查看mds节点的启动情况。

#ceph mds stat

e27: 1/1/1 up {0=0=up:active}


5、查看当前ceph集群的版本号。

#ceph --verison

ceph version 0.94.5 (9764da52395923e0b32908d83a9f7304401fee43)

此处可以看到ceph已经成功升级到了Hammer版本。


6、查看当前ceph集群的运行情况。

#ceph -s

cluster e4251f73-2fe9-4dfc-947f-962843dc6ad9

health HEALTH_WARN

too many PGs per OSD (2760 > max 300)

monmap e1: 1 mons at {a=192.168.250.58:6789/0}

election epoch 1, quorum 0 a

mdsmap e27: 1/1/1 up {0=0=up:active}

osdmap e190: 3 osds: 3 up, 3 in

pgmap v450486: 2760 pgs, 21 pools, 27263 MB data, 18280 objects

85251 MB used, 1589 GB / 1672 GB avail

2760 active+clean

此时可以看到Ceph当前的状态是HEALTH_WARN状态。问题出在ceph集群默认每个OSD上最多只能有300个PGs,而当前的系统上有多达2760个PGs(在Firefly版本上并没有给出上述的HEALTH_WARN状态,而是升级到Hammer版后才给出的提示)。

针对这个问题,我的解决方案是修改ceph配置文件中关于关于没有OSD最多可以配置的PGs数量来解决这个问题。在ceph.conf的[mon]节点下添加mon pg warn max per osd = 4096。保存ceph.conf后重新启动ceph monitor节点,之后再使用ceph -s查看当前ceph集群的状态时,一切就都正常了。

#ceph -s

cluster e4251f73-2fe9-4dfc-947f-962843dc6ad9

health HEALTH_OK

monmap e1: 1 mons at {a=192.168.250.58:6789/0}

election epoch 1, quorum 0 a

mdsmap e27: 1/1/1 up {0=0=up:active}

osdmap e191: 3 osds: 3 up, 3 in

pgmap v450550: 2760 pgs, 21 pools, 27263 MB data, 18280 objects

85245 MB used, 1589 GB / 1672 GB avail

2760 active+clean


ceph集群从Firefly版升级到Hammer版需要注意的问题有:

1、monitor访问权限中一定要添加caps mon 'allow *'到/var/lib/ceph/mon/ceph-a/keyring中;

2、集群一定要使用默认的路径,即:/var/lib/ceph


如何在CentOS 7.0上配置Ceph存储:http://www.linuxdiyf.com/linux/15962.html

理解Ceph:一个开源的分布式存储平台:http://www.linuxdiyf.com/linux/11229.html

Ceph-一个PB规模的Linux分布式文件系统:http://www.linuxdiyf.com/linux/10709.html

Fedora 19使用ceph-deploy部署Ceph笔记:http://www.linuxdiyf.com/linux/10450.html

SUSE Linux Enterprise Server 11 SP3上轻松搭建Ceph集群:http://www.linuxdiyf.com/linux/10281.html