前言

本篇来源于群里一个人的问题,有没有办法让ceph的磁盘不自动挂载,一般人的问题都是怎样让ceph能够自动挂载,在centos 7 平台下 ceph jewel版本以后都是有自动挂载的处理的,这个我之前也写过两篇文章《ceph在centos7下一个不容易发现的改变》和《Ceph数据盘怎样实现自动挂载》,来讲述这个自动挂载的

这里讲下流程:

开机后 udev 匹配 95-ceph-osd.rules 规则,触发 ceph-disk trigger,遍历磁盘,匹配到磁盘的标记后就触发了自动挂载

为什么要取消挂载?

也许一般都会想:不就是停掉osd,然后umount掉,检查磁盘吗

这个想法如果放在一般情况下都没有问题,但是为什么有这个需求就是有不一般的情况,这个我在很久前遇到过,所以对这个需求的场景比较清楚

在很久以前碰到过一次,机器启动都是正常的,但是只要某个磁盘一挂载,机器就直接挂掉了,所以这个是不能让它重启机器自动挂载的,也许还有其他的情况,这里总结成一个简单的需求就是不想它自动挂载

解决方法

从上面的自启动后的自动挂载流程里面,我们可以知道这里可以有两个方案去解决这个问题,第一种是改变磁盘的标记,第二种就是改变udev的rule的规则匹配,这里两个方法都行,一个是完全不动磁盘,一个是动了磁盘的标记

修改udev规则的方式

这个因为曾经有一段时间看过udev相关的一些东西,所以处理起来还是比较简单的,这里顺便把调试过程也记录下来

/lib/udev/rules.d/95-ceph-osd.rules这个文件里面就是集群自动挂载的触发规则,所以在这里我们在最开始匹配上我们需要屏蔽的盘,然后绕过内部的所有匹配规则,具体办法就是

在这个文件里面第一行加上

KERNEL=="sdb1|sdb2", GOTO="not_auto_mount"

在最后一行加上

LABEL="not_auto_mount"

验证规则是否正确

udevadm test /sys/block/sdb/sdb1

我们先看下正常的可以挂载的盘符的触发测试显示



再看下屏蔽了后的规则是怎样的



可以看到在加入屏蔽条件以后,就没有触发挂载了,这里要注意,做屏蔽规则的时候需要把这个osd相关的盘都屏蔽,不然在触发相关分区的时候可能顺带挂载起来了,上面的sdb1就是数据盘,sdb2就是bluestore的block盘

测试没问题后就执行下

udevadm control --reload-rules

重启后验证是否自动挂载了

修改磁盘标记的方式

查询磁盘的标记typecode,也就是ID_PART_ENTRY_TYPE这个属性

[root@lab8106 ~]# blkid -o udev -p /dev/sdb1
ID_FS_UUID=7a852eec-b32d-4c0a-8b8e-1e056a67ee35
ID_FS_UUID_ENC=7a852eec-b32d-4c0a-8b8e-1e056a67ee35
ID_FS_TYPE=xfs
ID_FS_USAGE=filesystem
ID_PART_ENTRY_SCHEME=gpt
ID_PART_ENTRY_NAME=ceph\x20data
ID_PART_ENTRY_UUID=7b321ca3-402c-4557-b121-887266a1e1b8
ID_PART_ENTRY_TYPE=4fbd7e29-9d25-41b8-afd0-062c0ceff05d
ID_PART_ENTRY_NUMBER=1
ID_PART_ENTRY_OFFSET=2048
ID_PART_ENTRY_SIZE=204800
ID_PART_ENTRY_DISK=8:16

匹配到这个属性就认为是集群的节点,可以挂载的,那么我们先改变这个

[root@lab8106 ~]# /usr/sbin/sgdisk --typecode=1:4fbd7e29-9d25-41b8-afd0-062c0ceff0f9 -- /dev/sdb
[root@lab8106 ~]# blkid -o udev -p /dev/sdb1
ID_FS_UUID=7a852eec-b32d-4c0a-8b8e-1e056a67ee35
ID_FS_UUID_ENC=7a852eec-b32d-4c0a-8b8e-1e056a67ee35
ID_FS_TYPE=xfs
ID_FS_USAGE=filesystem
ID_PART_ENTRY_SCHEME=gpt
ID_PART_ENTRY_NAME=ceph\x20data
ID_PART_ENTRY_UUID=7b321ca3-402c-4557-b121-887266a1e1b8
ID_PART_ENTRY_TYPE=4fbd7e29-9d25-41b8-afd0-062c0ceff0f9
ID_PART_ENTRY_NUMBER=1
ID_PART_ENTRY_OFFSET=2048
ID_PART_ENTRY_SIZE=204800
ID_PART_ENTRY_DISK=8:16

可以看到type的属性已经被修改了

再次测试,可以看到已经不匹配了

如果需要恢复就执行

[root@lab8106 ~]# /usr/sbin/sgdisk --typecode=1:4fbd7e29-9d25-41b8-afd0-062c0ceff05d -- /dev/sdb

这里同样需要改掉相关的block盘的标记,否则一样被关联的挂载起来了

总结

本篇用两种方法来实现了ceph osd的盘符的不自动挂载,这个一般情况下都不会用到,比较特殊的情况遇到了再这么处理就可以了,或者比较暴力的方法就是直接把挂载的匹配的规则全部取消掉,使用手动触发挂载的方式也行,这个方法很多,能够快速,简单的满足需求即可

此mount非彼mount,题图无关

变更记录

Why Who When
创建 武汉-运维-磨渣 2017-09-07

怎样禁止Ceph OSD的自动挂载的更多相关文章

  1. parted会启动你的ceph osd,意外不?

    前言 如果看到标题,你是不是第一眼觉得写错了,这个怎么可能,完全就是两个不相关的东西,最开始我也是这么想的,直到我发现真的是这样的时候,也是很意外,还是弄清楚下比较好,不然在某个操作下,也许就会出现意 ...

  2. ceph osd 自动挂载的N种情况

    直接上干货: ceph自动挂载原理 系统启动后,ceph 通过扫描所有磁盘及分区的 ID_PART_ENTRY_TYPE 与自己main.py中写死的osd ready 标识符来判断磁盘(及其分区)是 ...

  3. Ceph数据盘怎样实现自动挂载

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

  4. 处理Ceph osd的journal的uuid问题

    前言 之前有一篇文章介绍的是,在centos7的jewel下面如果自己做的分区如何处理自动挂载的问题,当时的环境对journal的地方采取的是文件的形式处理的,这样就没有了重启后journal的磁盘偏 ...

  5. 使用udev实现显示器的热插拔和usb的自动挂载

    udev:用来监听硬件设备是否发生改变,并可以给硬件设备命名 ,也可以在硬件发生改变之后执行脚本 使用udev检测显示器是否发生变化,然后执行脚本,解决linux显示器热插拔问题 先补充一点: [ro ...

  6. ubuntu12.04 U盘自动挂载配置

    Ubuntu12.04禁止U盘等设备的自动挂载方法如下: 在图形界面(字符界面无效)内进入系统终端,ctrl+alt+T或者gnome-terminal 禁止自动挂载:$ gsettings seto ...

  7. 分布式存储ceph——(5)ceph osd故障硬盘更换

    正常状态:

  8. k8s使用ceph作为后端存储挂载

    一.在ceph集群上操作: 1.创建池(主要使用存储类来进行持久卷的挂载,其他的挂载方式不好使也太麻烦):ceph osd pool create k8s 64 二.在k8s上操作: 1.安装客户端( ...

  9. Ceph osd故障恢复

    1  调高osd的日志等级 加上红框那一行就可以了 osd的日志路径:/var/log/ceph/ceph-osd.3.log 注意:加上了这一行后日志会刷很多,所以要特别注意日志容量的变化,以防把v ...

随机推荐

  1. C++时间函数小结

    time time_t time (time_t* timer); 返回的值表示自1970年1月1日0时0分0秒(这个时间名叫 The Unix Epoch)起,到现在过去的时间,这里C/C++标准中 ...

  2. python保存图片

    #coding=utf-8 import requests url ="https://images.pexels.com/photos/1181767/pexels-photo-11817 ...

  3. 赋予楼宇“智慧大脑”:厦门双子塔3D可视化

    前言 今年10月7日,是国务院批准设立厦门经济特区40周年纪念日.1980年的这一天,国务院正式批复同意在厦门湖里地区划出一块2.5平方公里的土地,设立经济特区.厦门,成为中国最早设立的四个经济特区之 ...

  4. 【荐】JavaScript图片放大技术(放大镜)示例代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. poj2411 Mondriaan's Dream (轮廓线dp、状压dp)

    Mondriaan's Dream Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 17203   Accepted: 991 ...

  6. 【手摸手,带你搭建前后端分离商城系统】03 整合Spring Security token 实现方案,完成主业务登录

    [手摸手,带你搭建前后端分离商城系统]03 整合Spring Security token 实现方案,完成主业务登录 上节里面,我们已经将基本的前端 VUE + Element UI 整合到了一起.并 ...

  7. okhttp的Post方式

    发送post请求 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bun ...

  8. Graph-GCN

    前言 在大型图中,节点的低维向量embedding被证明了作为各种各样的预测和图分析任务的特征输入是非常有用的.顶点embedding最基本的基本思想是使用降维技术从高维信息中提炼一个顶点的邻居信息, ...

  9. B. Kay and Snowflake 解析(思維、DFS、DP、重心)

    Codeforce 685 B. Kay and Snowflake 解析(思維.DFS.DP.重心) 今天我們來看看CF685B 題目連結 題目 給你一棵樹,要求你求出每棵子樹的重心. 前言 完全不 ...

  10. java log4j 的一个bug

    java项目中使用log4j记录日志几乎成了标配, 最近一个项目中出了个问题  现象是这样的:  不连vpn程序一切正常,连上VPN启动程序 直接异常退出, 错误日志直接指向了 log4j 库 org ...