关于部署osd过程中:Device is in use by a device-mapper mapping问题解决
ceph环境:12.2.1
使用古老的ceph-disk
工具部署osd,仅仅prepare过程中就出现如上所示问题
Device is in use by a device-mapper mapping md127
解决方法如下:
由于device-mapper为系统自己的磁盘映射器,此时检查系统是否有逻辑卷
pvs
lvs
vgs
如为出现逻辑卷设备,则表明当前磁盘并未创建逻辑卷
此时针对设备上的磁盘做如下操作
sgdisk -z -og /dev/sdb
,可以格式化成功,即磁盘内部扇区结构没有问题
sgdisk -n 1:+2G:+100G /dev/sdb
,可以创建gpt分区成功,磁盘支持分区操作
按道理磁盘是可以进行osd部署的,只要能够正常格式化,保证gpt分区创建成功,ceph-disk部署osd对磁盘也就这么多要求了没办法,还得继续解决啊
根据问题查看ceph-disk工具的源码
main.py
该处逻辑处理如下def verify_not_in_use(dev, check_partitions=False): #检查是否存在device_mapper设备 """ Verify if a given device (path) is in use (e.g. mounted or in use by device-mapper).:raises: Error if device is in use. """ assert os.path.exists(dev) if is_mounted(dev): #在该处进行检测,大发现该磁盘被某个设备持有,则认为它被占用raise Error('Device is mounted', dev) holders = is_held(dev) if holders:raise Error('Device %s is in use by a device-mapper ''mapping (dm-crypt?)' % dev, ','.join(holders)) ...def is_held(dev): #检查是否有其他设备持有当前设备 """ Check if a device is held by another device (e.g., a dm-crypt mapping) """ assert os.path.exists(dev) if is_mpath(dev): #检查是否为dm设备return []dev = os.path.realpath(dev) base = get_dev_name(dev) ...def is_mpath(dev): """ True if the path is managed by multipath """ if FREEBSD:return False uuid = get_dm_uuid(dev) #去指定路径下尝试获取dm设备的uuid return (uuid and(re.match('part\d+-mpath-', uuid) orre.match('mpath-', uuid))) ... def get_dm_uuid(dev): uuid_path = os.path.join(block_path(dev), 'dm', 'uuid') LOG.debug("get_dm_uuid " + dev + " uuid path is " + uuid_path) if not os.path.exists(uuid_path):return False uuid = open(uuid_path, 'r').read() LOG.debug("get_dm_uuid " + dev + " uuid is " + uuid) return uuiddef block_path(dev): if FREEBSD:return dev path = os.path.realpath(dev) rdev = os.stat(path).st_rdev (M, m) = (os.major(rdev), os.minor(rdev)) return "{sysfs}/dev/block/{M}:{m}".format(sysfs=SYSFS, M=M, m=m) #即在 /sys/dev/block 路径下存在对应的dm 设备,uuid号为md127
根据以上调用逻辑,最终ceph-disk是通过
/sys/dev/block
检查是否有对应的dm设备cd /sys/dev/block
并执行ls -l
果然看到了对应的dm设备
../../devices/virtual/block/md127
../../devices/virtual/block/md126
此时根据dm设备存储的文件,打开
cat /proc/mdstat
文件,查看果然存在md127和md126设备,查阅发现这两个设备为raid分区。再次检查系统是否存在
raid
的配置文件
ls /etc/mdadm.conf
不存在
综上,大概可知情况如下:
我们部署osd用到的磁盘之前在某个服务器上被绑定过raid,则拿到当前设备直接使用,系统能够监测到该磁盘被使用做raid,所以仍然会创建对应的raid分区,但是并未有相关的配置文件生成知道了问题点,即需要进行解决
这里也是借鉴前人经验mdadm
命令出手mdadm -S md127
或者mdamd --stop md127
先停止raid设备- 由于没有对应的raid配置,此时不需要删除了,删除raid并直接清除磁盘的超级块
mdadm --remove md127
mdamd --zero-superblobk /dev/sdb
最终我们即可清除掉磁盘的device-mapper
告警问题,成功部署osd
关于部署osd过程中:Device is in use by a device-mapper mapping问题解决相关推荐
- windows10用c++部署libtorch过程中遇到的一些问题
windows10用c++部署libtorch过程中遇到的一些问题 libtorch1.0 vs2017 CMake3.14 windows10 无cuda 用c++调用pytorch模型官网上面有详 ...
- 关于windows10用c++部署libtorch过程中遇到的一些问题
libtorch1.0 vs2017 CMake3.14 windows10 无cuda 用c++调用pytorch模型官网上面有详细教程,也有很多博客,可以参考以下链接:pytorch怎么使用c++ ...
- 网站搭建系列:云虚拟主机建站部署的过程中如何上传FTP?
在用云虚拟主机搭建网站的过程中,最常见的,就是用FTP上传我们的建站程序(WordPress. 米拓.织梦.帝国等)或者是网站的源代码,对于前期刚接触建站的我来说,用虚拟主机上传建站程序搭建网站是一个 ...
- Weblogic部署项目过程中的一些问题
weblogic启动,最后一段出现的警告: <Warning> <Log Management> <BEA-170011> <The Lo gBroadcas ...
- DELL服务器安装过程中出现的ERROR及解决方案
1.问题:服务器在安装过程中出现如下异常: NO boot device availabel current ...
- 热部署在项目中的应用
前言 在实际开发过程中,每次修改代码就得将项目重启,重新部署,对于一些大型应用来说,重启时间需要花费大量的时间成本.对于一个后端开发者来说,重启过程确实很难受.目前的java虚拟机只能实现方法体的热部 ...
- 在线升级,下载升级包过程中提示网络异常导致升级失败。
问题描述: 连接wifi,选择在线升级,在现在升级包过程中,提示网络异常,导致升级失败. 问题解决: 首先分析mainlog中对应时间点上下文的log.通过搜索rssi,查看当前wifi连接状态,如下 ...
- 使用ATX-server部署过程中遇到的问题-遇到就更,作为记录
最近开始做自动化测试相关工作,部署atx-server 安卓集群管理,记录下部署过程中遇到的问题 一:atxserver不显示设备,使用命令:python main.py --server local ...
- [项目过程中所遇到的各种问题记录]部署篇——项目部署过程中那些纠结的问题-SQLServer...
前一篇文章说了些有关IIS的,这篇则是说SQLServer的,相比IIS来说,SQLServer的配置过程中问题就少了许多,而且都比较有针对性,下面开始记录: 注:由于实际项目的开发都是基于SQL20 ...
最新文章
- 使用页面元素属性做状态判断的隐患
- html5-FileReader接口
- 仿即刻的点赞滚动放大波纹图标
- Iptables 表和链之间的关系【未完成】
- C#编程利器系列文章
- LeetCode 312. Burst Balloons
- 作为sigmastar代理-启明云端为你分享干货SSD201/202的QT的移植(二)
- Boost:boost::asio模块的allocation service分配服务测试程序
- php如何判断提交内容为空,php禁止提交空表单(php空值判断)的方法
- 1.常用字符对象方法
- ai如何做倒角和圆角_石材路沿石是如何倒角的?倒角费用是多少?路沿石质量标准?...
- [Redux/Mobx] Redux怎么添加新的中间件?
- [SHOI2012]魔法树 链剖
- 一步步实现SDDC-Edge与动态路由实现
- java学习(五)包
- python输出名字和字数_Python字数和排名
- python中class什么意思_python class是什么
- 聊聊UI的扁平化设计趋势与拟物化设计
- 优酷 DSP 广告投放系统架构实践
- 数字化技术成为门店的重要推手?
热门文章
- JS动态改变文本中光标位置
- appium 控件定位
- 测试与封装5.1.5.2
- WebApi2官网学习记录---异常处理
- (原创)c++primer(第五版)--1.3 注释简介
- sql查询返回xml数据之应用【转载】
- html web上传文件原理,Web上传文件的原理及实现
- 机械键盘连击怎么处理_怎么选择机械键盘?各种平价机械键盘推荐
- mysql 定时器不能持续循环执行_定时器,不循环执行指定方法?如何解决?
- 小型职工工作量c语言,计算机c语言职工工作量统计系统.doc