首页 > 关于OSD::mkfs: ObjectStore::mkfs failed with error (5) Input/output error问题的解决

关于OSD::mkfs: ObjectStore::mkfs failed with error (5) Input/output error问题的解决

环境:

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

出现如下问题,出现这个问题之前我的磁盘用作部署过12.2.1版本的osd,但是我已经使用sgdisk -z -og /dev/sdb 格式化过磁盘

command_check_call: Running command: /usr/bin/ceph-osd --cluster ceph --mkfs -i 2 --monmap /var/lib/ceph/tmp/mnt.uYoUWC/activate.monmap --osd-data /var/lib/ceph/tmp/mnt.uYoUWC --osd-uuid e6ac88e7-7929-4405-937a-8686a30a0037 --setuser ceph --setgroup ceph
2019-11-03 00:32:35.588340 7fcc21bddd00 -1 bluestore(/var/lib/ceph/tmp/mnt.uYoUWC/block) _check_or_set_bdev_label bdev /var/lib/ceph/tmp/mnt.uYoUWC/block fsid 0fb18eac-7c3b-47a8-9b1f-64407ccf1905 does not match our fsid e6ac88e7-7929-4405-937a-8686a30a0037
2019-11-03 00:32:35.844858 7fcc21bddd00 -1 bluestore(/var/lib/ceph/tmp/mnt.uYoUWC) mkfs fsck found fatal error: (5) Input/output error
2019-11-03 00:32:35.844890 7fcc21bddd00 -1 OSD::mkfs: ObjectStore::mkfs failed with error (5) Input/output error
2019-11-03 00:32:35.845005 7fcc21bddd00 -1  ** ERROR: error creating empty object store in /var/lib/ceph/tmp/mnt.uYoUWC: (5) Input/output error

根据官网bug跟踪的解决过程unable to create bluestore osd using ceph-disk

也进行了一些测试,发现即使时我使用sgdisk格式化了磁盘分区之后,仍然可以在磁盘的前1个G容量中看到有12.2.1相关数据。即我在使用12.2.1版本部署过osd的磁盘去部署当前版本12.2.12时,上一个版本的一些fsid,uuid,osd编号等一些rockdb元数据信息仍然存在于当前磁盘的扇区中,这个时候我即使格式化磁盘仍然无法清楚掉这一些数据得,查看sgdisk源码,使用-o参数清楚磁盘分区数据只会清除GPT 格式的数据,并不会清除MBR格式数据。

对已经sgdisk -z -og /dev/sdk之后的磁盘执行如下操作:

[root@node1 zhg]# dd if=/dev/zero of=/dev/sdk bs=1M count=1G 
^C4647+0 records in
4647+0 records out
4872732672 bytes (4.9 GB) copied, 21.5581 s, 226 MB/s[root@node1 zhg]# dd if=/dev/sdk of=mbr.txt bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 9.53945 s, 113 MB/s

查看dd出来的1G容量的数据

0010c000  49 4e 41 ed 02 01 00 00  00 00 00 a7 00 00 00 a7  |INA.............|
0010c010  00 00 00 02 00 00 00 00  00 00 00 00 00 00 00 02  |................|
0010c020  00 00 00 00 00 00 00 00  5d bd af 16 04 b6 73 f2  |........].....s.|
0010c030  5d bd af 16 04 b6 73 f2  00 00 00 00 00 00 00 86  |].....s.........|
0010c040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
0010c050  00 00 00 02 00 00 00 00  00 00 00 00 00 00 00 00  |................|
0010c060  ff ff ff ff 09 00 00 00  00 18 09 00 50 63 65 70  |............Pcep|
0010c070  68 5f 66 73 69 64 00 00  00 1b 04 00 88 66 73 69  |h_fsid.......fsi|
0010c080  64 00 00 00 1c 05 00 b8  6d 61 67 69 63 00 00 00  |d.......magic...|
0010c090  1d 0a 00 f0 62 6c 6f 63  6b 5f 75 75 69 64 00 00  |....block_uuid..|
0010c0a0  00 1e 05 01 08 62 6c 6f  63 6b 00 00 00 1f 04 01  |.....block......|
0010c0b0  38 74 79 70 65 00 00 00  20 07 01 48 6b 65 79 72  |8type... ..Hkeyr|
0010c0c0  69 6e 67 00 00 00 21 06  01 80 77 68 6f 61 6d 69  |ing...!...whoami|
0010c0d0  00 00 00 22 0f 01 98 61  63 74 69 76 61 74 65 2e  |..."...activate.|
0010c0e0  6d 6f 6e 6d 61 70 00 00  00 23 00 00 00 00 00 00  |monmap...#......|
0010c0f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

可以看到,虽然已经格式化磁盘了,但是扇区中仍然存在上一个版本osd相关元数据信息。

这个时候解决该问题,根据以上官网解决该bug的流程,执行如下操作即可

ceph osd rm osd.id #删除添加失败的osd
ceph auth rm osd.id #删除添加失败的osd的密钥
dd if=/dev/zero of=/dev/sdk bs=1M count=1024 #使用0重写前一个G内容
sgdisk -Z -g /dev/sdk #先破坏磁盘所有分区,再将分区由mgr转为gpt格式分区
ceph-disk -v prepare /dev/sdk
ceph-disk -v activate /dev/sdk1

这里在使用0重写磁盘前一个G内容时查看磁盘前一个G内容如下,显然这个写0操作执行之后就所有分区就都没有内容了

[root@node1 zhg]# dd if=/dev/sdk of=mbr.txt bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 9.53945 s, 113 MB/s
[root@node1 zhg]# hexdump -C mbr.txt 
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

更多相关:

  •   在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环境:12.2.1 使用古老的ceph-disk工具部署osd,仅仅prepare过程中就出现如上所示问题 Device is in use by a device-mapper mapping md127 解决方法如下: 由于device-mapper为系统自己的磁盘映射器,此时检查系统是否有逻辑卷 pvs lvs v...

  • 划分磁盘分区 sgdisk -n 1:+2G:+50G /dev/sda 划分磁盘分区,一号分区划分为50G,同时预留2G的空间 磁盘格式化 sgdisk -z -og /dev/sda 查看分区详情 sgdisk -i 1 /dev/hda查看hda第一分区的详情信息 [root@node3 ~]# sgdisk...

  • 下面的译文来自ATS官方交流博客中豪哥的一篇英文介绍,碰巧工作中又要用到,为了大家阅读方便,我特此翻译如下,不妥之处请指正: 说明: 慢速磁盘指普通的3.5寸硬盘,快速磁盘指ssd 缓存中间层 当我们考虑ATS的存储时,最原始的设计是支持具有相同容量的多块磁盘,(最适合没有做raid的块设备),由此构建分区,将每个分区...

  • 今天给主机加了一个希捷3TB硬盘,格式化是个头疼的问题,经过网上调研后,发现目前该问题已经被成功解决,现在使用希捷提供的DiscWizard可以成功解决。 下面记录一下我使用DiscWizard格式化2TB以上硬盘的基本过程。 1.首先从希捷官网下载并安装DiscWizard软件。 2.将3TB硬盘安装到主机上,并开启操作系统。...

  • df命令可以查看当前系统磁盘空间的使用情况 命令:df -h du -sh * 查看目录文件暂用磁盘大小 如果磁盘空间不够,需清理磁盘 磁盘速度测试,如果磁盘性能不好,性能测试数据会不准确(读写速度) 命令:dd if=/dev/zero of=/export/ddtest bs=8k count=1000000 oflag=dir...

  • 1. 磁盘的数据结构包括哪些内容?   答:分区,卷,磁盘分区,主分区,扩展分区,逻辑分区,逻辑驱动器,引导分区。 2. 什么是基本磁盘和动态磁盘?    (1) 基本磁盘和旧版本Windows操作系统中使用了相同的磁盘结构。    (2)动态磁盘功能最初发布于Windows2000,用于增强磁盘支持,在磁盘配置变动后需要重启动的次数...

  • 我们在重装好系统Win7系统后有时会碰到需要新建磁盘分区的情况,这时我们再重装系统进行磁盘分区就有些过于麻烦了,其实我们可以利用Win7系统自身的磁盘管理功能来新建一个磁盘分区。下面好系统重装助手就来介绍一下好系统Win7系统电脑磁盘新建分区的方法。 好系统Win7系统电脑磁盘新建分区的方法 1、右键点击我的电脑,选择管理,在计算机管...

  • 本文主要是在梳理cephfs内核方式挂载的内核代码逻辑所做的准备 环境:Centos 7.5 内核源码版本:3.10.0-862.el7.x86_64 打开ceph模块的debug信息 单独编译ceph模块的.ko文件 ceph在内核的通用模块主要有三个: ceph.ko 模块路径:/usr/src/kernels/3.10....

  • 文章目录安装使用使用`ceph tell`产生堆栈信息文使用`pprof`工具分析内存及`ceph tell`释放内存火焰图`FlameGraph`可视化进程堆栈信息 pprof是一个google开发的支持可视化、且可分析profile文件而达到对内存的分析。并且能够输出文本和图像来支持分析过程,pprof源码 安装...

  • 目前有两种动态修改的方式来让ceph中各个组件的配置生效,所以介绍如下两种方式方便我们进行功能或者代码的调试 使用ceph daemon方式修改 ceph daemon osd.0 help用于osd的daemon服务ceph daemon mon.ceph-node1 help用于mon的admin socket命令、ceph...

  • 我们内核挂载的前提是:看到centos7.5 中默认内核3.10.0-862.11.6.el7.x86_64的挂载fs执行文件读写性能更优良,所以尝试将3.10.0-862.11.6.el7.x86_64模块中与ceph fs挂载相关的ceph.ko,libceph.ko,dns_resolver.ko,libcrc32c.ko拷贝...