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('partd+-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设备mdadm --remove md127
mdamd --zero-superblobk /dev/sdb
最终我们即可清除掉磁盘的device-mapper
告警问题,成功部署osd
在config/index.js找到dev:{}里面的autoOpenBrowser: 设置为true,重新npm run dev一次就自动弹出浏览器页面啦! ...
工作中需要用到批量修改文件用户和组的情况,特记录以下便捷用法。 1.批量修改多个文件的user和group chown ats:ats /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdl /dev/sdm...
环境: ceph L版本12.2.1升级到12.2.12 这个问题是由于升级后进行12.2.12环境中的使用ceph-disk 进行osd部署时出现如下问题,执行命令 ceph-disk -v prepare /dev/sdb;ceph-disk -v activate /dev/sdb1 出现如下问题,出现这个问题之前我的磁盘用作...
划分磁盘分区 sgdisk -n 1:+2G:+50G /dev/sda 划分磁盘分区,一号分区划分为50G,同时预留2G的空间 磁盘格式化 sgdisk -z -og /dev/sda 查看分区详情 sgdisk -i 1 /dev/hda查看hda第一分区的详情信息 [root@node3 ~]# sgdisk...
主要是在bluestore的实例上执行低级管理操作的使用程序,是ceph bluestore的管理工具 命令 help显示帮助信息fsck [--deep]对bluestore元数据进行一致性检查。如果指定了–deep,还要读取所有对象数据并验证校验和repair运行一致性检查 并修复我们可以发生的任何错误bluefs-ex...
iOS获取设备唯一标识的各种方法?IDFA、IDFV、UDID分别是什么含义?iOS获取设备ID总结IDFA解释 关于UUID的理解 : 英文名称是:Universally Unique Identifier,翻译过来就是通用唯一标识符。 UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提...
Running Your Application 原文演示了怎样在真机和模拟器上运行你的App。 原文链接:http://developer.android.com/training/basics/firstapp/running-app.html 译文链接:http://android.toolib.net/training/bas...
转:http://blog.csdn.net/zhouzhuan2008/article/details/11053877 目录 MTD总概述MTD数据结构 MTD相关层实现 MTD,Memory Technology Device即内存技术设备 字符设备和块设备的区别在于前者只能被顺序读写,后者可以随机访问;同时,两者读写数...
设备管理器架构 ----Windows Embedded CE 6.0 R3 原文:http://msdn.microsoft.com/en-us/library/ee484004(v=WinEmbedded.60).aspx 设备管理器运行在Windows Embedded CE操作系统下,跟踪加载的驱动及其接口。它从内核中...