处理Ceph osd的journal的uuid问题
前言
之前有一篇文章介绍的是,在centos7的jewel下面如果自己做的分区如何处理自动挂载的问题,当时的环境对journal的地方采取的是文件的形式处理的,这样就没有了重启后journal的磁盘偏移的问题
如果采用的是ceph自带的deploy去做分区的处理的时候,是调用的sgdisk去对磁盘做了一些处理的,然后deploy能够识别一些特殊的标记,然后去做了一些其他的工作,而自己分区的时候,是没有做这些标记的这样就可能会有其他的问题
我们看下如何在部署的时候就处理好journal的uuid的问题
实践
按常规流程部署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可能就无法启动了
优化下部署流程
这里是优化后的流程,解决上面的问题的
准备测试的自分区磁盘
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工具自己处理就行了,如果有兴趣可以深入研究,没兴趣的话,就安装上面说的方法进行处理就行
处理Ceph osd的journal的uuid问题的更多相关文章
- Ceph osd故障恢复
1 调高osd的日志等级 加上红框那一行就可以了 osd的日志路径:/var/log/ceph/ceph-osd.3.log 注意:加上了这一行后日志会刷很多,所以要特别注意日志容量的变化,以防把v ...
- Ceph osd启动报错osd init failed (36) File name too long
在Ceph的osd节点上,启动osd进程失败,查看其日志/var/log/ceph/ceph-osd.{osd-index}.log日志,报错如下: 2017-02-14 16:26:13.55853 ...
- 如何测量Ceph OSD内存占用
前言 这个工具我第一次看到是在填坑群里面看到,是由研发-北京-蓝星同学分享的,看到比较有趣,就写一篇相关的记录下用法 火焰图里面也可以定位内存方面的问题,那个是通过一段时间的统计,以一个汇总的方式来查 ...
- ceph osd 自动挂载的N种情况
直接上干货: ceph自动挂载原理 系统启动后,ceph 通过扫描所有磁盘及分区的 ID_PART_ENTRY_TYPE 与自己main.py中写死的osd ready 标识符来判断磁盘(及其分区)是 ...
- 分布式存储ceph——(5)ceph osd故障硬盘更换
正常状态:
- ceph osd 批量删除
ceph osd 批量删除,注意删除的是当前节点正在使用的osd,数据删除有风险,所以最后一步没有去format磁盘,给你留下一剂后悔药. #!/bin/bash osd_list=`mount|gr ...
- Ceph osd故障硬盘更换
正常状态: 故障状态: 实施更换步骤: (1)关闭ceph集群数据迁移: osd硬盘故障,状态变为down.在经过mod osd down out interval 设定的时间间隔后,ceph将其标记 ...
- ceph osd tree的可视化
前言 很久没有处理很大的集群,在接触一个新集群的时候,如果集群足够大,需要比较长的时间才能去理解这个集群的结构,而直接去看ceph osd tree的结果,当然是可以的,这里是把osd tree的结构 ...
- parted会启动你的ceph osd,意外不?
前言 如果看到标题,你是不是第一眼觉得写错了,这个怎么可能,完全就是两个不相关的东西,最开始我也是这么想的,直到我发现真的是这样的时候,也是很意外,还是弄清楚下比较好,不然在某个操作下,也许就会出现意 ...
随机推荐
- 数组的高级应用含ES6 for of 用法
// 在ES5中常用的10种数组遍历方法: // 1. 原始的for循环语句 // 2. Array.prototype.forEach数组对象内置方法 // 3. Array.prototype.m ...
- Springboot配置excludePathPatterns不生效
Springboot添加拦截器配置excludePathPatterns不生效 code: @Configurationpublic class ServiceConfig implements We ...
- docket镜像
1.是什么 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码.运行时.库.环境变量和配置文件. 1.1.什么是UnionF ...
- linux(centos8):安装配置consul集群(consul 1.8.4 | centos 8.2.2004)
一,什么是consul? 1,Consul 是 HashiCorp 公司推出的开源软件,用于实现分布式系统的服务发现与配置. Consul 是分布式的.高可用的. 可横向扩展的 2,官方网站: h ...
- Geoserver发布shp文件
Geoserver是著名的开源GIS软件之一.也是项目中常用的地图服务软件.基于geoserver和Openlayers就可以构建一个免费的开源GIS项目. Geoserver除了浏览以外,其他譬如发 ...
- OSI七层网络
7-应用层 各种应用软件 6-表示层 转换.加密.解密压缩 5-会话层 建立会话,保证会话,终止会话 4-传输层 TCP/UDP 3-网络层 路由 2-数据链路层 交换 1-物理层
- 1. Deep Q-Learning
传统的强化学习算法具有很强的决策能力,但难以用于高维空间任务中,需要结合深度学习的高感知能力,因此延展出深度强化学习,最经典的就是DQN(Deep Q-Learning). DQN 2013 DQN的 ...
- C#8.0之后接口已经不再单纯了,我懵逼了!
一:背景 1. 讲故事 大家在经过面向对象洗礼的时候,都了解过接口,而且知道它是一种自上而下的设计思路,举个例子,我们电脑上都有 USB 2.0 接口,蓝牙耳机实现了它可以进行充电,移动硬盘实现了它可 ...
- ps基本工具
2.1PS移动工具 (1)快捷键:V. (2)多对象跨窗口移动的时候,按住键盘的shift再按鼠标左键拖拽可以快速定位到中心位置. (3)图层,一层层透明纸张叠加到一块的显示效果,每张透明的纸张上都有 ...
- jsp 记录1 bs/cs
1.jsp = html + js + css + jsp语法 + Java片段: 2.jsp是基于Java语言的,具有跨平台性: 3.jsp编译后的class文件会常驻内存中,运行速度快,对服务器的 ...