处理Ceph osd的journal的uuid问题

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

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

二、实践

2.1 按常规流程部署OSD

准备测试的自分区磁盘

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操作
[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操作
[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
···

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

[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的时候权限有问题,我们给下磁盘权限

[root@lab8106 ceph]# chown ceph:ceph /dev/sdf1 
[root@lab8106 ceph]# ceph-deploy osd activate lab8106:/dev/sde1:/dev/sdf1

可以看到成功了

检查下osd的目录:
[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 优化下部署流程

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

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盘做一个标记(特殊标记,下面的字符串不要变动固定写法)

/usr/sbin/sgdisk  --change-name=1:'ceph journal' --typecode=1:45b0969e-9b03-4f30-b4c6-b4b80ceff106  -- /dev/sdf

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

/usr/sbin/sgdisk  --change-name=1:'ceph data' --typecode=1:4fbd7e29-9d25-41b8-afd0-062c0ceff05d -- /dev/sde

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

[root@lab8106 ~]# ceph-disk list
/dev/sde :
 /dev/sde1 ceph data, unprepared
/dev/sdf :
 /dev/sdf1 ceph journal

做osd的prepare操作

ceph-deploy osd prepare lab8106:/dev/sde1:/dev/sdf1
ceph-deploy osd activate lab8106:/dev/sde1:/dev/sdf1

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

[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的数据
[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工具自己处理就行了,如果有兴趣可以深入研究,没兴趣的话,就安装上面说的方法进行处理就行

本文分享自微信公众号 - 磨磨谈(momotan1987)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-12-26

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏微信公众号:小白课代表

不只是软件,在线也可以免费下载百度文库了。

不管是学生,还是职场员工,下载各种文档几乎是不可避免的,各种XXX.docx,XXX.pptx更是家常便饭,人们最常用的就是百度文库,豆丁文库,道客巴巴这些下载...

44730
来自专栏腾讯大讲堂的专栏

白底黑字or黑底白字,眼睛更喜欢哪一个?

12310
来自专栏Ken的杂谈

【系统设置】CentOS 修改机器名

18230
来自专栏钱塘大数据

理工男图解零维到十维空间,烧脑已过度,受不了啦!

让我们从一个点开始,和我们几何意义上的点一样,它没有大小、没有维度。它只是被想象出来的、作为标志一个位置的点。它什么也没有,空间、时间通通不存在,这就是零维度。

34730
来自专栏haifeiWu与他朋友们的专栏

复杂业务下向Mysql导入30万条数据代码优化的踩坑记录

从毕业到现在第一次接触到超过30万条数据导入MySQL的场景(有点low),就是在顺丰公司接入我司EMM产品时需要将AD中的员工数据导入MySQL中,因此楼主负...

30440
来自专栏钱塘大数据

中国互联网协会发布:《2018中国互联网发展报告》

在2018中国互联网大会闭幕论坛上,中国互联网协会正式发布《中国互联网发展报告2018》(以下简称《报告》)。《中国互联网发展报告》是由中国互联网协会与中国互联...

13750
来自专栏前端桃园

知识体系解决迷茫的你

最近在星球里群里都有小伙伴说道自己对未来的路比较迷茫,一旦闲下来就不知道自己改干啥,今天我这篇文章就是让你觉得一天给你 25 个小时你都不够用,觉得睡觉都是浪费...

22440
来自专栏web前端教室

你可以从面试中学到什么?

讲一下我对面试的一些。。。“偏见”,哈哈,熟悉我的同学们一定要批判的读接下来的内容哈。

12400
来自专栏FSociety

SQL中GROUP BY用法示例

GROUP BY我们可以先从字面上来理解,GROUP表示分组,BY后面写字段名,就表示根据哪个字段进行分组,如果有用Excel比较多的话,GROUP BY比较类...

5.2K20
来自专栏腾讯NEXT学位

今天我就说三句话

11620

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励