从hammer到jewel的RGW升级实战-by秦牧羊

前言

本篇来自秦牧羊的一篇分享,讲述的是从hammer升级到jewel的过程,以及其中的一些故障的处理,是一篇非常详细的实战分享

初始状态

pool状态

root@demo:/home/demouser# rados lspools
rbd
.cn.rgw.root
.cn-zone1.rgw.root
.cn-zone1.rgw.domain
.cn-zone1.rgw.control
.cn-zone1.rgw.gc
.cn-zone1.rgw.buckets.index
.cn-zone1.rgw.buckets.extra
.cn-zone1.rgw.buckets
.cn-zone1.log
.cn-zone1.intent-log
.cn-zone1.usage
.cn-zone1.users
.cn-zone1.users.email
.cn-zone1.users.swift
.cn-zone1.users.uid

ceph.conf配置

[client.radosgw.us-zone1]
     rgw dns name = s3.ceph.work
     rgw frontends = fastcgi
     host = ceph.work
     rgw region = cn
     rgw region root pool = .cn.rgw.root
     rgw zone = us-zone1
     rgw zone root pool = .cn-zone1.rgw.root
     keyring = /etc/ceph/ceph.client.radosgw.keyring
     rgw socket path = /home/ceph/var/run/ceph-client.radosgw.us-zone1.sock
     log file = /home/ceph/log/radosgw.us-zone1.log
     rgw print continue = false
    rgw content length compat = true

元数据信息检查

root@demo:/home/demouser# radosgw-admin metadata list user --name client.radosgw.us-zone1
[
    "en-user1",
···

]
root@demo:/home/demouser# radosgw-admin metadata list bucket --name client.radosgw.us-zone1
[
    "cn-test1",
···

]

软件版本及集群状态

root@demo:/home/demouser# ceph -v
ceph version 0.94.5 (9764da52395923e0b32908d83a9f7304401fee43)
root@demo:/home/demouser# ceph -s
    cluster 23d6f3f9-0b86-432c-bb18-1722f73e93e0
     health HEALTH_OK

ceph升级到最新jewel

这里要提醒一点就是如果ceph版本低于0.94.7,直接升级到10.xx会出一些问题,因为低版本的osdmap的数据结构与高版本不兼容,所以先升级到最新的hammer

root@demo:/home/demouser# vi /etc/apt/sources.list.d/ceph.list 
deb http://mirrors.163.com/ceph/debian-hammer/ jessie main #使用163源更新到最新的hammer

root@demo:/home/demouser# apt-get update
root@demo:/home/demouser# apt-cache policy ceph

正式升级到最新的hammer

root@demo:/home/demouser# ceph -v 
ceph version 0.94.10 (b1e0532418e4631af01acbc0cedd426f1905f4af) #当前软件包版本已经更新
root@demo:/home/demouser# ceph -s 
    cluster 23d6f3f9-0b86-432c-bb18-1722f73e93e0
     health HEALTH_OK
     monmap e1: 1 mons at {ceph.work=10.63.48.19:6789/0}
            election epoch 1, quorum 0 ceph.work
     osdmap e43: 3 osds: 3 up, 3 in
      pgmap v907873: 544 pgs, 16 pools, 2217 kB data, 242 objects
            3120 MB used, 88994 MB / 92114 MB avail
                 544 active+clean

root@demo:/home/demouser# /etc/init.d/ceph  status
=== mon.ceph.work ===
mon.ceph.work: running {"version":"0.94.5"} #mon和osd进程还是跑的旧版本
···
root@demo:/home/demouser# /etc/init.d/ceph  restart #手工重启所有服务,线上环境依次先重启mon再是osd,避免批量重启造成影响
=== mon.ceph.work ===
···
Stopping Ceph osd.0 on ceph.work...kill 1082...kill 1082...done
=== osd.0 ===
Mounting xfs on ceph.work:/home/ceph/var/lib/osd/ceph-0
···
root@demo:/home/demouser# /etc/init.d/ceph  status
=== mon.ceph.work ===
mon.ceph.work: running {"version":"0.94.10"} #mon和osd都全部更新到最新
=== osd.2 ===
osd.2: running {"version":"0.94.10"}
root@demo:/home/demouser# ceph -s

升级到最新jewel版本

root@demo:/home/demouser# vi /etc/apt/sources.list.d/ceph.list 
deb http://mirrors.163.com/ceph/debian-jewel/ jessie main #使用163源更新到最新的jewel

root@demo:/home/demouser# apt-get update
...
Fetched 18.7 kB in 11s (1,587 B/s)
Reading package lists... Done
root@demo:/home/demouser# apt-cache policy ceph
ceph:
  Installed: 0.94.10-1~bpo80+1 #当前安装的版本
  Candidate: 10.2.6-1~bpo80+1 #准备安装的最新jewel版本
  Version table:
     10.2.6-1~bpo80+1 0
        500 http://mirrors.163.com/ceph/debian-jewel/ jessie/main amd64 Packages
 *** 0.94.10-1~bpo80+1 0
        100 /var/lib/dpkg/status
Setting system user ceph properties..usermod: user ceph is currently used by process 5312
dpkg: error processing package ceph-common (--configure): #需要重启进程才能更新配置,忽略这里及以下错误
 subprocess installed post-installation script returned error exit status 8
···
root@demo:/home/demouser# /etc/init.d/ceph  status
=== mon.ceph.work ===
mon.ceph.work: running {"version":"0.94.10"} #当前mon和osd版本还是旧版本
···
osd.2: running {"version":"0.94.10"}
root@demo:/home/demouser# ceph -s
    cluster 23d6f3f9-0b86-432c-bb18-1722f73e93e0
     health HEALTH_OK
root@demo:/home/demouser# /etc/init.d/ceph restart #手工重启所有服务,线上环境依次先重启mon再是osd,避免批量重启造成影响
=== mon.ceph.work ===
=== mon.ceph.work ===
···
root@demo:/home/demouser# ceph -s #出现crushmap 兼容性告警
    cluster 23d6f3f9-0b86-432c-bb18-1722f73e93e0
     health HEALTH_WARN
            crush map has legacy tunables (require bobtail, min is firefly) 
            all OSDs are running jewel or later but the 'require_jewel_osds' osdmap flag is not set
     monmap e1: 1 mons at {ceph.work=10.63.48.19:6789/0}
            election epoch 2, quorum 0 ceph.work
     osdmap e61: 3 osds: 3 up, 3 in
      pgmap v907906: 544 pgs, 16 pools, 2217 kB data, 242 objects
            3122 MB used, 88991 MB / 92114 MB avail
                 544 active+clean

root@demo:/home/demouser# /etc/init.d/ceph status #检查所有服务进程版本是否到最新
=== mon.ceph.work ===
mon.ceph.work: running {"version":"10.2.6"} 
=== osd.0 ===
osd.0: running {"version":"10.2.6"}
···
root@demo:/home/demouser# ceph osd set require_jewel_osds
set require_jewel_osds
root@demo:/home/demouser# ceph osd crush tunables optimal
adjusted tunables profile to optimal
root@demo:/home/demouser# ceph -s #调整crushmap兼容性参数以后恢复正常
    cluster 23d6f3f9-0b86-432c-bb18-1722f73e93e0
     health HEALTH_OK
     monmap e1: 1 mons at {ceph.work=10.63.48.19:6789/0}
            election epoch 2, quorum 0 ceph.work
     osdmap e63: 3 osds: 3 up, 3 in
            flags require_jewel_osds
      pgmap v907917: 544 pgs, 16 pools, 2217 kB data, 242 objects
            3122 MB used, 88991 MB / 92114 MB avail
                 544 active+clean

总结

旧版本hammer的rgw管理模型是 region->zone两级结构,而新版本变成了realm->zonegroup->zone,同时部分pool的命名规则也发生了变更,如果总结升级ceph版本,会出现RGW服务启动失败,导致RGW启动失败的因素有两类,一类是pool名称的变更,另外一类是ceph.conf中rgw的配置变更。本文通过真实用例,实现了新旧版本的切换,各位实际环境还是要谨慎操作,毕竟跨版本的升级还是有很大风险。 —-by 秦牧羊

官方升级操作指南:http://docs.ceph.com/docs/master/radosgw/upgrade_to_jewel/

注意

由于微信公众号字数的限制,只能20000字,做了一些删减,本篇的RGW的服务的修复部分请查看原文链接,原文链接是全部的内容http://www.zphj1987.com/2017/03/24/from-hammerto-jewel-update-by-qinmuyang/

原文发布于微信公众号 - 磨磨谈(momotan1987)

原文发表时间:2017-03-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯云TStack专栏

Ceph 部署完整版 ( el7+jewel )

这篇文章主要介绍了如何用三台虚拟机搭建一套 Ceph 分布式系统,步骤简洁但不失准确性。环境清理一小节可以解决绝大多数部署不成功的问题,最后一节介绍了常用的 C...

1K1
来自专栏Fred Liang

小米路由器 3G mentohust 以及 SS 配置

正常情况下校园网的网速是 10mb/s,尤其是在使用华科的镜像源的时候,速度可以稳定在11+mb/s。 由于之前百兆路由器速度限制,只能达到2mb/s,因此更...

4543
来自专栏网络

局域网联机教程

本期推送介绍局域网中如何联机玩游戏: 文章以Windows 7系统演示,其他系统大同小异。 首先要确定联机的电脑在一个局域网内,且连接的路由器/交换机没有开启I...

3346
来自专栏逸鹏说道

福利:ASP.NET免费服务器~支持MVC和Net4.5

1.先注册一个号。地址:https://appharbor.com/ 2.看看有没有你需要的插件,基本上都是免费的 ? 3.本地创建git库 ? ? ? 4....

3726
来自专栏openshift持续集成

jenkins邮件插件中的内容参数设置

众所周知,Jenkins默认提供了一个邮件通知,能在构建失败、构建不稳定等状态后发送邮件。但是它本身有很多局限性,比如它的邮件通知无法提供详细的邮件内容、无法定...

8238
来自专栏白驹过隙

Socket编程回顾,一个最简单服务器程序

2163
来自专栏沈唁志

Windows10家庭版的功能中没有Hyper-V的解决方法

你还在找Windows10家庭版中开启Hyper-v的方法?如果你是因为要用Docker for Windows版本的话,我建议你去升级专业版

2.8K3
来自专栏Debian社区

Ceph 12.2.0 正式版本发布, 代号 Luminous

Ceph 是一个可扩展的分布式存储系统,性能卓越,安全可靠。 Ceph 12.2.0 正式版已发布。这是Luminous v12.2.x长期稳定版本的第一个版本...

1812
来自专栏互扯程序

Linux常用Shell脚本,值得学习及收藏

在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运...

1351
来自专栏散尽浮华

Linux下IP SAN共享存储操作记录

一、简单介绍 SAN,即存储区域网络(storage area network and SAN protocols),它是一种高速网络实现计算机与存储系统之间的...

1.1K7

扫码关注云+社区