文档章节

单机Ceph从Firefly升级到Hammer

linuxhunter
 linuxhunter
发布于 2015/12/18 16:22
字数 911
阅读 459
收藏 0

单机上部署了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


© 著作权归作者所有

共有 人打赏支持
linuxhunter
粉丝 67
博文 143
码字总数 92826
作品 0
沈阳
高级程序员
私信 提问
Ceph V9.2.0版本(代号INFERNALIS)已发布

本文由Ceph中国社区-AmosG翻译,Thomas校稿 英文出处:官网releases栏 此次的主发版本将是Ceph下一个稳定系列的基石。自Hammer v0.94.x发布后,我们做了重大修改,这个更新过程很不简单。请仔...

oschina
2015/11/22
2.5K
4
ceph集群删除mds服务

由于环境从Hammer版升级到Jewel版,之前Hammer版上有MDS服务,但是没有实际用途,升级到Jewel版后,由于不再适用MDS服务了,因此想把MDS整个干掉。并且由于MDS未启动,因此当前ceph集群的状态...

linuxhunter
2016/06/02
165
0
Ceph v0.94.10 Hammer 发布,分布式存储系统

Ceph 发布了 v0.94.10 Hammer 版本。该版本修复了一些 bug,还添加了两个新特性。官方建议所有 hammer v0.94.x 用户进行升级。 请注意,当 Luminous 在今年春季稍后发布时,Hammer 将退休。到...

局长
2017/02/23
759
1
Ceph 0.80.8/0.91 发布,分布式文件系统

Ceph 0.91 发布,我们正在快速的达到 Hammer 版本的特性冻结阶段,但还有一些更多的开发版需要推出。Ceph 0.91 最值得关注的是 CephFS 基于子树的配额支持(ceph-fuse、libcephfs 客户端支持...

oschina
2015/01/15
2.6K
2
Ceph v0.80.9 发行说明,分布式文件系统

Ceph v0.80.9 昨天正式发布:http://www.oschina.net/news/60353/ceph-0-80-9。 Ceph v0.80.9 firefly 是个 bug 修复版本,修复了 librbd 的性能回退问题;一个重要的 CRUSH 误操作;一些 RG...

oschina
2015/03/11
904
0

没有更多内容

加载失败,请刷新页面

加载更多

小白带你认识netty(二)之netty服务端启动(上)

上一章 中的标准netty启动代码中,ServerBootstrap到底是如何启动的呢?这一章我们来瞅下。 server.group(bossGroup, workGroup);server.channel(NioServerSocketChannel.class).optio...

天空小小
41分钟前
2
0
聊聊storm trident batch的分流与聚合

序 本文主要研究一下storm trident batch的分流与聚合 实例 TridentTopology topology = new TridentTopology(); topology.newStream("spout1", spout) .p......

go4it
昨天
3
0
3分钟总结Mybatis别名

1.系统内置别名: 把类型全小写(resultType/paramType) 2.给某个类起别名 2.1 alias=”自定义” <typeAliases> <typeAlias type="com.bjsxt.pojo.People" alias="peo"/> </typeAli......

KingFightingAn
昨天
2
0
JAVA设计模式之模板方法模式和建造者模式

一、前期回顾 上一篇《Java 设计模式之工厂方法模式与抽象工厂模式》介绍了三种工厂模式,分别是工厂方法模式,简单工厂方法模式,抽象工厂模式,文中详细根据实际场景介绍了三种模式的定义,...

木木匠
昨天
8
0
C中的宏的使用(宏嵌套/宏展开/可变参数宏)

基本原则: 在展开当前宏函数时,如果形参有#或##则不进行宏参数的展开,否则先展开宏参数,再展开当前宏。 #是在定义两边加上双引号 #define _TOSTR(s) #sprintf(_TOSTR(test ABC))pr...

SamXIAO
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部