前言

在Centos7 下,现在采用了 systemctl来控制服务,这个刚开始用起来可能不太习惯,不过这个服务比之前的服务控制要强大的多,可以做更多的控制,本节将来介绍下关于 Ceph的 osd 磁盘挂载的问题

很多人部署以后,发现在Centos7下用Jewel的时候没有去写fstab也没有写配置文件,重启服务器一样能够挂载起来了,关于这个有另外一篇文章:「ceph在centos7下一个不容易发现的改变

还有一些人发现自己的却启动不起来,需要写配置文件或者fstab

本篇就是来解决这个疑惑的,以及在不改变原配置方法的情况下如何加入这种自启动

实践过程

首先来第一种部署的方法

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

这个方法会把/dev/sde自动分成两个分区,一个分区给journal使用,一个分区给osd的数据使用,这种方法部署以后,是可以自动起来的,启动的挂载过程就是这个服务

systemctl start ceph-disk@/dev/sde1

再来看第二种方法

[root@lab8106 ceph]# parted -s /dev/sdf mklabel gpt
[root@lab8106 ceph]# parted -s /dev/sdf mkpart primary 1 100%
[root@lab8106 ceph]# parted -s /dev/sdf print
Model: SEAGATE ST3300657SS (scsi)
Disk /dev/sdf: 300GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number Start End Size File system Name Flags
1 1049kB 300GB 300GB primary

提前做好了分区的工作

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

可以看到prepare的时候是对着分区去做的

这种方法journal是以文件的方式在数据目录生成的,可以看到两个目录的 df 看到的就是不一样的,多的那个是 journal 文件的大小

/dev/sde1       279G   34M  279G   1% /var/lib/ceph/osd/ceph-6
/dev/sdf1 280G 1.1G 279G 1% /var/lib/ceph/osd/ceph-7

重启服务器

可以看到上面的sde1挂载了而自己分区的sdf1没有挂载

我们去手动执行下:

[root@lab8106 ~]#  systemctl start ceph-disk@/dev/sdf1
Job for ceph-disk@-dev-sdf1.service failed because the control process exited with error code. See "systemctl status ceph-disk@-dev-sdf1.service" and "journalctl -xe" for details.

看下报错

[root@lab8106 ~]# systemctl status ceph-disk@-dev-sdf1.service
● ceph-disk@-dev-sdf1.service - Ceph disk activation: /dev/sdf1
Loaded: loaded (/usr/lib/systemd/system/ceph-disk@.service; static; vendor preset: disabled)
Active: failed (Result: exit-code) since Thu 2016-12-22 10:15:52 CST; 46s ago
Process: 16334 ExecStart=/bin/sh -c flock /var/lock/ceph-disk /usr/sbin/ceph-disk --verbose --log-stdout trigger --sync %f (code=exited, status=1/FAILURE)
Main PID: 16334 (code=exited, status=1/FAILURE) Dec 22 10:15:52 lab8106 sh[16334]: main(sys.argv[1:])
Dec 22 10:15:52 lab8106 sh[16334]: File "/usr/lib/python2.7/site-packages/ceph_disk/main.py", line 4962, in main
Dec 22 10:15:52 lab8106 sh[16334]: args.func(args)
Dec 22 10:15:52 lab8106 sh[16334]: File "/usr/lib/python2.7/site-packages/ceph_disk/main.py", line 4394, in main_trigger
Dec 22 10:15:52 lab8106 sh[16334]: raise Error('unrecognized partition type %s' % parttype)
Dec 22 10:15:52 lab8106 sh[16334]: ceph_disk.main.Error: Error: unrecognized partition type 0fc63daf-8483-4772-8e79-3d69d8477de4
Dec 22 10:15:52 lab8106 systemd[1]: ceph-disk@-dev-sdf1.service: main process exited, code=exited, status=1/FAILURE
Dec 22 10:15:52 lab8106 systemd[1]: Failed to start Ceph disk activation: /dev/sdf1.
Dec 22 10:15:52 lab8106 systemd[1]: Unit ceph-disk@-dev-sdf1.service entered failed state.
Dec 22 10:15:52 lab8106 systemd[1]: ceph-disk@-dev-sdf1.service failed.

关键在这句

raise Error('unrecognized partition type %s' % parttype)

检查分区情况,可以看到确实跟另外一种方法部署的OSD情况不同

[root@lab8106 ceph]# ceph-disk list
···
/dev/sde2 ceph journal, for /dev/sde1
/dev/sde1 ceph data, active, cluster ceph, osd.6, journal /dev/sde2
dev/sdf :
/dev/sdf1 other, xfs, mounted on /var/lib/ceph/osd/ceph-7

这里要如何处理,才能实现自动挂载,方法是有的

这个地方需要做一步这个操作(注意下面的1:后面是写死的字符串固定的值)

/usr/sbin/sgdisk --typecode=1:4fbd7e29-9d25-41b8-afd0-062c0ceff05d -- /dev/sdi

/dev/sdi :
/dev/sdi1 ceph data, active, cluster ceph, osd.7

我们来验证一下:

[root@lab8106 ceph]# systemctl stop ceph-osd@7
[root@lab8106 ceph]# umount /dev/sdi1
[root@lab8106 ceph]# systemctl start ceph-disk@/dev/sdi1
[root@lab8106 ceph]# df -h|grep sdi
/dev/sdi1 280G 1.1G 279G 1% /var/lib/ceph/osd/ceph-7

可以用服务挂载了

这个是代码里面写死的判断值,来判断osd是ready的了

/usr/lib/python2.7/site-packages/ceph_disk/main.py

'osd': {
'ready': '4fbd7e29-9d25-41b8-afd0-062c0ceff05d',
'tobe': '89c57f98-2fe5-4dc0-89c1-f3ad0ceff2be',
},

总结

通过本篇的介绍,应该能够清楚什么情况下不自动挂载,什么情况下自动挂载,怎么去实现自动挂载,虽然上面只用了一调命令就实现了,不过我找了很久才定位到这个命令的,当然自己也掌握了这个知识点,公众号已经可以留言了,欢迎留言

Ceph数据盘怎样实现自动挂载的更多相关文章

  1. CentOS 7 下挂载NTFS盘及开机自动挂载

    一.工具 NTFS-3G 二.安装2种安装方式 2.1.yum安装 yum install NTFS* 2.2.编译安装 下载 解压 wget https://tuxera.com/opensourc ...

  2. 怎样禁止Ceph OSD的自动挂载

    前言 本篇来源于群里一个人的问题,有没有办法让ceph的磁盘不自动挂载,一般人的问题都是怎样让ceph能够自动挂载,在centos 7 平台下 ceph jewel版本以后都是有自动挂载的处理的,这个 ...

  3. centos7 挂载数据盘

    centos 挂载数据盘1.运行 fdisk -l 命令查看数据盘.注意:在没有分区和格式化数据盘之前,使用 df -h 命令是无法看到数据盘的. 如果执行了 fdisk -l 命令后,没有发现 /d ...

  4. linux命令之数据盘格式化挂载

    1,查看数据盘 在没有分区和格式化数据盘之前,使用”df -h “命令是无法看到数据盘的,可以通过 fdisk -l 查看机器情况(找出所有硬盘个数及设备名称)  提示:若没有发现/dev/xvdb ...

  5. 景安快云VPS挂载数据盘至指定目录 使得系统与数据分离

    如果我们细心的用户会发现购买景安快云VPS主机后,通过df检测看到系统盘大小与我们购买时候给的不一样,这个是很正常的事情.一般VPS主机商会通过给予系统盘和数据盘一并的数据磁盘给我们,但是默认我们看到 ...

  6. docker改变默认存储路径到数据盘(自己实践)

    一.首先将数据盘格式化分区并挂载(文章中提到的sdb(腾讯云)实践中是vdb(阿里云),文章中挂载在ssd目录下,实践中是挂载到data目录下的,后面安装docker部分以后是实践中的记录,上面数据盘 ...

  7. CentOS 7.6最小化安装(系统盘和数据盘分离安装)

    CentOS 7.6最小化安装(系统盘和数据盘分离安装) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.创建虚拟机 鉴于大家使用的平台操作系统可能不尽相同,博主精力有限,仅演示 ...

  8. linux 数据盘和系统盘的查看

    系统盘就像linux的c盘,使用df -l命令查看 如下所示: 可以看到根路径 / 都是位于系统盘.而/root,/home,/usr就如同c盘下的c:\windows,c:\usr这些目录 如果单独 ...

  9. linux系统数据盘挂载教程

    将数据盘挂载为/www命令:#mkdir /www & mount /dev/sdb1 /www ----------------------------------------------- ...

随机推荐

  1. C++中线程安全单例模式的正确实现方式

    为什么说DCLP不是线程安全的 DCLP(Double Checked Locking Pattern),即双检锁模式: class Foo { public: static Foo* getInst ...

  2. CSP-S2020AFO记

    2020-10.11 考初赛辣. 选择题考了一堆时间复杂度,一个不会(卒) 我寻思这01背包哪里能用贪心? 啊,这,这,这手写快排竟如此简单,手写取Max,手写队列,两个字符串颠来倒去,竟活到爆! 震 ...

  3. faker切换user-agent

    import random import requests url = "http://tool.yeves.cn" import faker fake = faker.Faker ...

  4. 第一章 Linux操作系统及其历史介绍

    一.什么是操作系统 1.基本含义: 简称OS 是计算机系统中必不可少的基础系统软件,是应用程序运行和用户操作必备的基础环境 操作系统就是一个人与计算机之间的中介 2.组成方式: 操作系统的组成: 计算 ...

  5. 【应用服务 App Service】发布到Azure上的应用显示时间不是本地时间的问题,修改应用服务的默认时区

    问题情形 应用程序发布到App Service后,时间显示不是北京时间,默认情况为UTC时间,比中国时间晚 8 个小时. 详细日志 无 问题原因 Azure 上所有的服务时间都采用了 UTC 时间. ...

  6. 天猫精灵对接2(OAuth 搭建)

    根据 接入方式及流程 中的说明,可知,搭建过程中,我们需要自己整一个 OAuth 的授权平台,具体说明可以参考蟋蟀大哥的文章  ASP.NET WebApi OWIN 实现 OAuth 2.0 ,我的 ...

  7. 了解Js中的client,offset

    Client clientWidth,clientHeight 元素内部的宽度和高度,clientTop,clientLeft 元素内边距到其边框的距离,clientX,clientY相当于浏览器窗口 ...

  8. 关于隐私保护的英文论文的阅读—— How to read English thesis

    首先 开始我读论文时 也是恨不得吃透每个单词 但是后来转念一想 没必要每个单词都弄懂 因为 一些程度副词 修饰性的形容词等 这些只能增强语气罢了 对文章主题的理解并没有天大的帮助 而读文章应该首先把握 ...

  9. 关于机器翻译评价指标BLEU(bilingual evaluation understudy)的直觉以及个人理解

    最近我在做Natural Language Generating的项目,接触到了BLEU这个指标,虽然知道它衡量的是机器翻译的效果,也在一些文献的experiment的部分看到过该指标,但我实际上经常 ...

  10. dcoker 搭建单节点redis

    1.安装docker 1.检查内核版本,必须是3.10及以上 [root@localhost ~]# uname -r 2.安装docker [root@localhost ~]# yum insta ...