如何替换Ceph的Journal
很多人会提出这样的问题:
- 能不能够将 Ceph journal 分区从一个磁盘替换到另一个磁盘?
- 怎样替换 Ceph 的 journal 分区?
有两种方法来修改Ceph的journal:
- 创建一个journal分区,在上面创建一个新的journal
- 转移已经存在的journal分区到新的分区上,这个适合整盘替换
Ceph 的journal是基于事务的日志,所以正确的下刷journal数据,然后重新创建journal并不会引起数据丢失,因为在下刷journal的数据的时候,osd是停止的,一旦数据下刷后,这个journal是不会再有新的脏数据进来的
第一种方法
在开始处理前,最开始要设置OSD状态为noout
[root@lab8106 ~]# ceph osd set noout
set noout
停止需要替换journal的osd(这里是osd.1)
[root@lab8106 ~]# systemctl stop ceph-osd@1
我的版本是jewel的,如果是hammer版本,就使用 /etc/init.d/ceph stop osd.1
下刷journal到osd,使用 -i 指定需要替换journal的 osd的编号
[root@lab8106 ~]# ceph-osd -i 1 --flush-journal
SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 01 cf 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 01 cf 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2016-07-26 22:47:20.185292 7fc54a6c3800 -1 flushed journal /var/lib/ceph/osd/ceph-1/journal for object store /var/lib/ceph/osd/ceph-1
创建一个新的journal
删除原来的journal
[root@lab8106 ~]# ll /var/lib/ceph/osd/ceph-1/journal
lrwxrwxrwx 1 ceph ceph 58 Jul 25 09:25 /var/lib/ceph/osd/ceph-1/journal -> /dev/disk/by-partuuid/872f8b40-a750-4be3-9150-033b990553f7
[root@lab8106 ~]# rm -rf /var/lib/ceph/osd/ceph-1/journal
准备一个新的分区
我的环境准备使用/dev/sdd1,分区大小为10G,这个注意磁盘大小比参数设置的要大一点即可
[root@lab8106 ~]# ls -l /dev/disk/by-partuuid/
total 0
lrwxrwxrwx 1 root root 10 Jul 25 14:25 4766ce93-a476-4e97-9aac-894d461b367e -> ../../sdb2
lrwxrwxrwx 1 root root 10 Jul 26 22:51 5bb48687-6be6-4aef-82f6-5af822c3fad8 -> ../../sdd1
lrwxrwxrwx 1 root root 10 Jul 26 22:47 872f8b40-a750-4be3-9150-033b990553f7 -> ../../sdc2
我的新的journal的uuid的路径为 /dev/disk/by-partuuid/5bb48687-6be6-4aef-82f6-5af822c3fad8
将这个磁盘的分区链接到原始路径
[root@lab8106 ~]# ln -s /dev/disk/by-partuuid/5bb48687-6be6-4aef-82f6-5af822c3fad8 /var/lib/ceph/osd/ceph-1/journal
[root@lab8106 ~]# chown ceph:ceph /var/lib/ceph/osd/ceph-1/journal
[root@lab8106 ~]# echo 5bb48687-6be6-4aef-82f6-5af822c3fad8 > /var/lib/ceph/osd/ceph-1/journal_uuid
创建journal
[root@lab8106 ~]# ceph-osd -i 1 --mkjournal
启动进程
[root@lab8106 ~]# systemctl restart ceph-osd@1
去除 noout 的标记
[root@lab8106 ~]# ceph osd unset noout
启动后检查集群的状态
第二种方法
这个属于备份和转移分区表的方法
首先进行上面方法的停进程,下刷journal
备份需要替换journal的分区表
[root@lab8106 ~]# sgdisk --backup=/tmp/backup_journal_sdd /dev/sdd
还原分区表
[root@lab8106 ~]# sgdisk --load-backup=/tmp/backup_journal_sde /dev/sde
[root@lab8106 ~]# parted -s /dev/sde print
新的journal磁盘现在跟老的journal的磁盘的分区表一样的了。这意味着新的分区的UUID和老的相同的。如果选择的是这种备份还原分布的方法,那么journal的那个软连接是不需要进行修改的,因为两个磁盘的uuid是一样的,所以需要注意将老的磁盘拔掉或者清理掉分区,以免冲突
在做完这个以后同样跟上面的方法一样需要重建journal
创建journal
[root@lab8106 ~]# chown ceph:ceph /var/lib/ceph/osd/ceph-1/journal
[root@lab8106 ~]# ceph-osd -i 1 --mkjournal
启动进程
[root@lab8106 ~]# systemctl restart ceph-osd@1
去除 noout 的标记
[root@lab8106 ~]# ceph osd unset noout
变更记录
| Why | Who | When |
|---|---|---|
| 创建 | 武汉-运维-磨渣 | 2016-07-27 |
如何替换Ceph的Journal的更多相关文章
- 影响性能的关键部分-ceph的osd journal写
在前面一篇文章中,我们看到,当使用filestore时,osd会把磁盘分成data和journal两部分.这主要是为了支持object的transaction操作.我的想法是,ceph需要具有数据保护 ...
- Ceph 概述和理论
1.1 Ceph概述 官网地址:https://docs.ceph.com/docs/master/ 1.Ceph简介 概述:Ceph是可靠的.可扩展的.统一的.分布式的存储系统.同时提供对象存储RA ...
- ceph luminous版本的安装部署
1. 前期准备 本次安装环境为: ceph1(集群命令分发管控,提供磁盘服务集群) CentOs7.5 10.160.20.28 ceph2(提供磁盘服务集群) CentOs7.5 10. ...
- The Dos and Don'ts for Ceph for OpenStack
Ceph和OpenStack是一个非常有用和非常受欢迎的组合. 不过,部署Ceph / OpenStack经常会有一些容易避免的缺点 - 我们将帮助你解决它们 使用 show_image_direct ...
- ceph 分布式存储安装
[root@localhost ~]# rm -rf /etc/yum.repos.d/*.repo 下载阿里云的base源 [root@localhost ~]# wget -O /etc/yum. ...
- linux运维基础知识-系统分区及LVM逻辑卷的创建
系统分区及LVM逻辑卷的创建 分区 创建逻辑卷 LVM简介:逻辑卷管理器(LogicalVolumeManager)本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,如图 ...
- ceph使用memdisk做journal
记得在很久很久以前,ceph当时的版本是有提供使用内存做journal的配置的,当时是使用的tmpfs,但是现在的版本在搜资料的时候,发现关于这个的没怎么找到资料,邮件列表里面有人有提到怎么做,看了下 ...
- ceph journal操作
查询ceph journal的地方 ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config show | grep osd_journal & ...
- ceph journal更换位置
只在这里做简单的演示 ceotos7 环境 3个mon节点 3个osd节点 环境搭建我这里不再叙述 我们查看一下分区情况: [root@ceph_1 ~]# lsblkNAME MAJ: ...
随机推荐
- windbg加载符号表
0x00 前言 在使用windbg调试windows中的程序时会经常碰到一些系统的dll里面的一些函数调用,有些函数是没有具体函数名的,这对于调试非常不利,基于此,微软针对windows也发布了很多系 ...
- Spark如何进行动态资源分配
一.操作场景 对于Spark应用来说,资源是影响Spark应用执行效率的一个重要因素.当一个长期运行的服务,若分配给它多个Executor,可是却没有任何任务分配给它,而此时有其他的应用却资源紧张,这 ...
- 模板c++
#define _CRT_SECURE_NO_WARINGS #include <iostream> using namespace std; int main(void) { retru ...
- mysql 必会基础1
1.cmd --> 开启服务:net start mysql 关闭服务:net stop mysql 没有restart命令;命令格式:net stop serviceName;后面不需要加分号 ...
- drf ( 学习第四部 )
目录 DRF框架中常用的组件 分页Pagination 异常处理Exceptions 自动生成接口文档 安装依赖 设置接口文档访问路径 访问接口文档网页 Admin 列表页配置 详情页配置 Xadmi ...
- Spring Cloud Alibaba Seata
一.简介 官网地址:http://seata.io/zh-cn/ 1,概念 Seata是一款开源的分布式事务解决方案,致力于在微服务架构在提供高性能和简单一样的分布式事务服务. 2,处理过程 Tran ...
- .NET CORE 3.1.5 跨域设置
1.Startup配置 1 #region 跨域设置 2 //注意:放到services.AddMvc()之前 3 services.AddCors(options => { 4 options ...
- SpringCloud Alibaba开篇:SpringCloud这么火,为何还要学习SpringCloud Alibaba?
写在前面 大家都知道,SpringCloud Alibaba是在SpringCloud基础上开发并开源的一套微服务架构体系.那么,肯定会有小伙伴要问:在微服务领域,SpringCloud已经很火了,为 ...
- Redis学习笔记(一)——安装Redis
一.概述 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日执行.Key-Value数据库,并提供多种语言的API. Redis是完全开源免费的,遵守BSD协议,是一 ...
- [Luogu P4215] 踩气球 (线段树)
题面 传送门:https://www.luogu.org/problemnew/show/P4215 Solution 这题十分有意思. 首先,我们可以先想想离线做法,因为在线做法可以从离线做法推出. ...