前言

在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#使用RabbitMq队列(Sample,Work,Fanout,Direct等模式的简单使用)

    1:RabbitMQ是个啥?(专业术语参考自网络) RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件). RabbitMQ服务器是用Erlang语言编写的, ...

  2. LinkageSel无限级联动下拉菜单

    http://files.cnblogs.com/files/chenghu/LinkageSel-master.zip

  3. Linux入门到放弃之五《用户管理》

    用户管理 1.创建新用户user123,以此用户登陆系统,在tmp下创建文件test123: 2.修改test123文件的所有者为root,所属组也为root: 需要先切换为root用户 3.修改te ...

  4. H5页面 用户启动无痕浏览本地储存 localstorage 清楚数据

    移动端开发时,如果用户浏览器启用了无痕浏览,那么本地存储信息就会失效,会导致页面信息报错 解决办法: 先判断是否能适用 localStorage.setItem 如果不行在适用  cookie coo ...

  5. (CVPR 2019)The better version of SRMD

    CVPR2019的文章,解决SRMD的诸多问题, 并进行模拟实验. 进行双三次差值(bicubic)===>对应matlab imresize() %% read images im = {}; ...

  6. Java数据结构-00导论

    一个程序是怎样组成的呢?数据结构+算法=程序 一.什么是数据结构: 简单定义就是研究数据的存储方式:选择适当的数据结构可以提高计算机程序的运行效率(时间复杂度O)和存储效率(空间复杂度S). 二.数据 ...

  7. Azure Cosmos DB (四) 使用EF的SQL API 异地冗余

    一,引言 上一篇文章中,我们介绍到使用了EF Core 与Cosmos DB SQL API 进行结合开发.同时,大家在开发过程中一定要记得EF Core 不支持Cosmos DB 的迁移.今天我们启 ...

  8. Rancher 2.5特性解读丨更简单友好的API和Dashboard

    本文来自Rancher Labs 关注我们,看K8S干货教程 作者简介 张智博,Rancher中国研发与产品总监.7年云计算领域经验,一直活跃在研发一线,经历了OpenStack到Kubernetes ...

  9. Docker composer搭建Spring Cloud Alibaba 运行环境(二)

    " Spring Cloud Alibaba要用到的组件很多,注册中心nacos, 限流sentinel, 数据库,网关等等.由于用到的组件相对较多,部署会很繁琐,最关键的是没有资源服务器, ...

  10. LoRa技术的发展应用和LoRa应用设备

    LoRa技术的发展应用 LORA技术大约在十年前由法国和瑞士开发,到现今LORA技术已经是物联网发展应用中不可缺少的一部分,根据中国物联网研究与发展中心的数据,2025年我国物联网产业规模将达到2万亿 ...