Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >处理Ceph osd的journal的uuid问题

处理Ceph osd的journal的uuid问题

作者头像
用户2772802
发布于 2018-08-06 10:01:23
发布于 2018-08-06 10:01:23
1.1K00
代码可运行
举报
文章被收录于专栏:磨磨谈磨磨谈
运行总次数:0
代码可运行

一、前言 之前有一篇文章介绍的是,在centos7的jewel下面如果自己做的分区如何处理自动挂载的问题,当时的环境对journal的地方采取的是文件的形式处理的,这样就没有了重启后journal的磁盘偏移的问题 如果采用的是ceph自带的deploy去做分区的处理的时候,是调用的sgdisk去对磁盘做了一些处理的,然后deploy能够识别一些特殊的标记,然后去做了一些其他的工作,而自己分区的时候,是没有做这些标记的这样就可能会有其他的问题

我们看下如何在部署的时候就处理好journal的uuid的问题

二、实践

2.1 按常规流程部署OSD

准备测试的自分区磁盘

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dd if=/dev/zero of=/dev/sde bs=4M count=100;
dd if=/dev/zero of=/dev/sdf bs=4M count=100; parted /dev/sde mklabel gpt;
parted /dev/sdf mklabel gpt;
parted /dev/sde mkpart primary 1 100%;
parted /dev/sdf mkpart primary 1 100%

使用的sde1作为数据盘,使用sdf1作为ssd的独立分区的journal磁盘

我们线按照常规的步骤去部署下

做osd的prepare操作
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@lab8106 ceph]# ceph-deploy osd prepare lab8106:/dev/sde1:/dev/sdf1
···
[lab8106][WARNIN] adjust_symlink: Creating symlink /var/lib/ceph/tmp/mnt.7HuS8k/journal -> /dev/sdf1
···
做osd的activate操作
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@lab8106 ceph]# ceph-deploy osd activate lab8106:/dev/sde1:/dev/sdf
···
[lab8106][WARNIN] ceph_disk.main.Error: Error: ['ceph-osd', '--cluster', 'ceph', '--mkfs', '--mkkey', '-i', '7', '--monmap', '/var/lib/ceph/tmp/mnt.yOP4gv/activate.monmap', '--osd-data', '/var/lib/ceph/tmp/mnt.yOP4gv', '--osd-journal', '/var/lib/ceph/tmp/mnt.yOP4gv/journal', '--osd-uuid', '5c59284b-8d82-4cc6-b566-8b102dc25568', '--keyring', '/var/lib/ceph/tmp/mnt.yOP4gv/keyring', '--setuser', 'ceph', '--setgroup', 'ceph'] failed : 2016-12-26 13:11:54.211543 7f585e926800 -1 filestore(/var/lib/ceph/tmp/mnt.yOP4gv) mkjournal error creating journal on /var/lib/ceph/tmp/mnt.yOP4gv/journal: (13) Permission denied
[lab8106][WARNIN] 2016-12-26 13:11:54.211564 7f585e926800 -1 OSD::mkfs: ObjectStore::mkfs failed with error -13
[lab8106][WARNIN] 2016-12-26 13:11:54.211616 7f585e926800 -1  ** ERROR: error creating empty object store in /var/lib/ceph/tmp/mnt.yOP4gv: (13) Permission denied
···

可以看到提示的是权限不足,我们检查下权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@lab8106 ceph]# mount /dev/sde1 /mnt
[root@lab8106 ceph]# ll /mnt/
total 32
-rw-r--r-- 1 root root 193 Dec 26 13:11 activate.monmap
-rw-r--r-- 1 ceph ceph  37 Dec 26 13:11 ceph_fsid
drwxr-xr-x 3 ceph ceph  37 Dec 26 13:11 current
-rw-r--r-- 1 ceph ceph  37 Dec 26 13:11 fsid
lrwxrwxrwx 1 ceph ceph   9 Dec 26 13:11 journal -> /dev/sdf1
-rw-r--r-- 1 ceph ceph  37 Dec 26 13:11 journal_uuid
-rw-r--r-- 1 ceph ceph  21 Dec 26 13:11 magic
-rw-r--r-- 1 ceph ceph   4 Dec 26 13:11 store_version
-rw-r--r-- 1 ceph ceph  53 Dec 26 13:11 superblock
-rw-r--r-- 1 ceph ceph   2 Dec 26 13:11 whoami
[root@lab8106 ceph]# ll /dev/sdf1
brw-rw---- 1 root disk 8, 81 Dec 26 13:03 /dev/sdf1

创建sdf1的journal的时候权限有问题,我们给下磁盘权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@lab8106 ceph]# chown ceph:ceph /dev/sdf1 
[root@lab8106 ceph]# ceph-deploy osd activate lab8106:/dev/sde1:/dev/sdf1

可以看到成功了

检查下osd的目录:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@lab8106 ceph]# ll /var/lib/ceph/osd/ceph-7
total 56
-rw-r--r--   1 root root  193 Dec 26 13:15 activate.monmap
-rw-r--r--   1 ceph ceph    3 Dec 26 13:15 active
-rw-r--r--   1 ceph ceph   37 Dec 26 13:11 ceph_fsid
drwxr-xr-x 166 ceph ceph 4096 Dec 26 13:16 current
-rw-r--r--   1 ceph ceph   37 Dec 26 13:11 fsid
lrwxrwxrwx   1 ceph ceph    9 Dec 26 13:11 journal -> /dev/sdf1

可以看到journal链接到了/dev/sdf1,这次的部署是成功了,但是这里就有个问题,如果下次重启的时候,sdf1不是sdf1盘符变了,那么问题就会产生了,osd可能就无法启动了

2.2 优化下部署流程

这里是优化后的流程,解决上面的问题的 准备测试的自分区磁盘

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dd if=/dev/zero of=/dev/sde bs=4M count=100;
dd if=/dev/zero of=/dev/sdf bs=4M count=100; 
parted /dev/sde mklabel gpt;
parted /dev/sdf mklabel gpt;
parted /dev/sde mkpart primary 1 100%;
parted /dev/sdf mkpart primary 1 100%

给jounral盘做一个标记(特殊标记,下面的字符串不要变动固定写法)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/usr/sbin/sgdisk  --change-name=1:'ceph journal' --typecode=1:45b0969e-9b03-4f30-b4c6-b4b80ceff106  -- /dev/sdf

给数据盘做一个标记(特殊标记,下面的字符串不要变动固定写法)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/usr/sbin/sgdisk  --change-name=1:'ceph data' --typecode=1:4fbd7e29-9d25-41b8-afd0-062c0ceff05d -- /dev/sde

检查下当前的分区标记情况

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@lab8106 ~]# ceph-disk list
/dev/sde :
 /dev/sde1 ceph data, unprepared
/dev/sdf :
 /dev/sdf1 ceph journal

做osd的prepare操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ceph-deploy osd prepare lab8106:/dev/sde1:/dev/sdf1
ceph-deploy osd activate lab8106:/dev/sde1:/dev/sdf1

再次检查下当前的分区标记情况

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@lab8106 ceph]# ceph-disk list
···
/dev/sde :
 /dev/sde1 ceph data, active, cluster ceph, osd.8, journal /dev/sdf1
/dev/sdf :
 /dev/sdf1 ceph journal, for /dev/sde1
查看jounral的数据
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@lab8106 ceph]# ll /var/lib/ceph/osd/ceph-8
total 56
-rw-r--r--   1 root root  193 Dec 26 13:26 activate.monmap
-rw-r--r--   1 ceph ceph    3 Dec 26 13:26 active
-rw-r--r--   1 ceph ceph   37 Dec 26 13:25 ceph_fsid
drwxr-xr-x 164 ceph ceph 4096 Dec 26 13:26 current
-rw-r--r--   1 ceph ceph   37 Dec 26 13:25 fsid
lrwxrwxrwx   1 ceph ceph   58 Dec 26 13:25 journal -> /dev/disk/by-partuuid/cd72d6e8-07d0-4cd3-8c6b-a33d624cae36
···

可以看到已经正确的链接了,并且部署过程中也没有了上面的需要进行权限的处理,这个是deploy工具在中间帮做了

三、总结

处理的核心在于做的那两个标记,其他的就交给deploy工具自己处理就行了,如果有兴趣可以深入研究,没兴趣的话,就安装上面说的方法进行处理就行

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 磨磨谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Ceph数据盘怎样实现自动挂载
在Centos7 下,现在采用了 systemctl来控制服务,这个刚开始用起来可能不太习惯,不过这个服务比之前的服务控制要强大的多,可以做更多的控制,本节将来介绍下关于 Ceph的 osd 磁盘挂载的问题
用户2772802
2018/08/06
2.2K0
Ceph OSD从filestore 转换到 bluestore的方法
前段时间看到豪迈的公众号上提到了这个离线转换工具,最近看到群里有人问,找了下没什么相关文档,就自己写了一个,供参考
用户2772802
2018/08/06
1.8K0
搭建Ceph分布式存储
[root@dlp ~]# ls /etc/yum.repos.d/  ##必须保证有默认的官网源,结合epel源和网易的ceph源,才可以进行安装;
星哥玩云
2022/07/28
1.4K0
搭建Ceph分布式存储
CentOS 7.5安装部署Jewel版本Ceph集群
1、修改cpeh.conf文件 注意mon为奇数,如果为偶数,有一个不会安装,另外设置好public_network,并稍微增大mon之间时差允许范围(默认为0.05s,现改为2s)
三杯水Plus
2018/11/14
8410
ceph基础运维操作 原
保存退出 开始安装ceph Yum install ceph –y 完毕之后初始化目录
domain0
2018/08/02
7770
systemd下手工部署OSD服务-Jewel版本
Ceph自动化部署工具现状 ceph-deploy 已经处于被淘汰边缘(官方现在主推ceph-ansible),deploy新手练手可以,配置管理太弱鸡,每次overwrite-conf都需要很大勇气。 ceph-ansible 看起来很美好,但是无法完美适配手头各种差异化的部署需求,看完源码,把里面核心的模块功能抽取出来,完全可以自己做,没必要拿官方的ansible。 ceph-deploy其实也是通过ssh去控制各个节点的ceph-disk命令工具执行,但是ceph-disk又被官方弃坑,最新版本推荐使
用户1260683
2018/06/11
8110
如何避免Cephfs被完全毁掉
一套系统的最低要求是可恢复,也就是数据不丢失,但是在各种各样的原因下,整套系统都有被毁掉的可能,一直以来有个观点就是存储是需要两套的,一般情况下很难实现,但是如何把故障发生的概率降低到最低,这个是我们需要考虑的问题 最近在社区群里面又听闻一个案例,一套系统的文件系统被重置掉了,也就是fs被重建了,实际上这属于一个不应该有的操作,但是已经发生的事情,就看怎么样能在下次避免或者把损失降到最低,对于hammer版本来说,重建cephfs只是把目录树给冲掉了,实际的目录还是能创建起来,但是这其实是一个BUG,并且在最新的Jewel下已经解决掉这个问题,这就造成无法重建目录树,在Jewel下,在不修改代码的情况下,文件都可以扫描回来,但是全部塞到了一个目录下,对于某些场景来说,这个已经是最大限度的恢复了,至少文件还在,如果文件类型可知,也可以一个个去人工识别的,虽然工作量异常的大,但至少文件回来了,这种情况,如果有保留文件名和文件md5值的强制要求的话,文件是可以完全找回来的,当然,这都是一些防范措施,看有没有重视,或者提前做好了预备
用户2772802
2018/08/06
1.7K0
外包精通--CEPH L版更换日志盘笔记
Godev
2023/06/25
6100
Ceph部署mon出现0.0.0.0地址问题定位
最近在群里两次看到出现mon地址不对的问题,都是显示0.0.0.0:0地址,如下所示:
用户2772802
2018/08/06
8150
掉电后osdmap丢失无法启动osd的解决方案
本篇讲述的是一个比较极端的故障的恢复场景,在整个集群全部服务器突然掉电的时候,osd里面的osdmap可能会出现没刷到磁盘上的情况,这个时候osdmap的最新版本为空或者为没有这个文件
用户2772802
2018/08/06
1.2K0
Cephfs的文件存到哪里了
在ceph里面使用rbd接口的时候,存储的数据在后台是以固定的prifix的对象存在的,这样就能根据相同的前缀对象去对image文件进行拼接或者修复
用户2772802
2018/08/06
1.7K0
Ceph 部署完整版 ( el7+jewel )
腾讯云TStack
2017/10/11
4.6K0
Ceph 部署完整版 ( el7+jewel )
如何测量Ceph OSD内存占用
这个工具我第一次看到是在填坑群里面看到,是由研发-北京-蓝星同学分享的,看到比较有趣,就写一篇相关的记录下用法
用户2772802
2018/08/06
1.8K0
如何测量Ceph OSD内存占用
Ceph 快速部署 ( Centos7 + Jewel )
作者:徐凯 这篇文章主要介绍了如何用三台虚拟机搭建一套Ceph分布式系统,步骤简洁但不失准确性。环境清理一小节可以解决绝大多数部署不成功的问题,最后一节介绍了常用的Ceph操作,希望能给刚搭建环境的
腾讯云TStack
2017/09/21
1.9K0
fio测试ceph的filestore
fio是一个适应性非常强的软件,基本上能够模拟所有的IO请求,是目前最全面的一款测试软件,之前在看德国电信的一篇分享的时候,里面就提到了,如果需要测试存储性能,尽量只用一款软件,这样从上层测试到底层去,才能更好的去比较差别
用户2772802
2018/08/06
2.5K1
fio测试ceph的filestore
centos 7.3 快速安装ceph
Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。
yaohong
2019/09/11
1.1K0
centos 7.3 快速安装ceph
ceph集群搭建
环境: 10.200.51.4 admin、osd、mon 作为管理和监控节点 10.200.51.9 osd、mds 10.200.51.10 osd、mds 10.200.51.113~client 节点
cuijianzhe
2022/06/14
6360
ceph集群搭建
Ceph分布式存储 - 学习笔记
一、Ceph简单介绍 OSDs:Ceph的OSD守护进程(OSD)存储数据,处理数据复制,恢复,回填,重新调整,并通过检查其它Ceph OSD守护程序作为一个心跳 向Ceph的监视器报告一些检测信息。Ceph的存储集群需要至少2个OSD守护进程来保持一个 active + clean状态.(Ceph默认制作2个备份,但可以调整它) Monitors:Ceph的监控保持集群状态映射,包括OSD(守护进程)映射,分组(PG)映射,和CRUSH映射。 Ceph 保持一个在Ceph监视器, Ceph OSD 守护进程和 PG的每个状态改变的历史(称之为“epoch”)。 MDS:MDS是Ceph的元数据服务器,代表存储元数据的Ceph文件系统(即Ceph的块设备和Ceph的对象存储不使用MDS)。Ceph的元数据服务器使用POSIX文件系统,用户可以执行基本命令如 ls, find,等,并且不需要在Ceph的存储集群上造成巨大的负载。
洗尽了浮华
2022/03/29
1.1K0
Ceph删除OSD上一个异常object
ceph里面的数据是以对象的形式存储在OSD当中的,有的时候因为磁盘的损坏或者其它的一些特殊情况,会引起集群当中的某一个对象的异常,那么我们需要对这个对象进行处理
用户2772802
2018/08/06
1.5K0
Ceph的磁盘管理tips
换盘的时候一定要验明正身,原生的ceph-disk方式对磁盘分区的信息标记实在是太粗糙,很容易看花眼,比如下面这个例子,虽然通过PARTLABEL可以区分journal或者data分区,但是很难搞清楚Journal和Data分区具体对应哪个OSD
用户1260683
2018/07/31
1.5K0
相关推荐
Ceph数据盘怎样实现自动挂载
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验