环境:
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  |................|

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

  1. linux-x86_64 error,Linux-x86_64 Error: 5: Input/output error的问题

    今天朋友的测试库报错, ORA-27072: File I/O error, Linux-x86_64 Error: 5: Input/output error,数据块已经不能正常启动,看到 Linu ...

  2. Ubuntu安装出现Error 5 Input/output error解决办法

    Ubuntu安装过程中出现Error 5 Input/output error解决办法 1.下载Ultralso软碟通. 2.去官网下载Ubuntu,不要使用镜像源下载. 3.讲U盘格式化FAT32 ...

  3. u盘安装linux系统 input/output error,U盘安装UBUNTU出现Input/Output error分析解决

    昨天用UltraISO将U盘做成启动盘后,安装Ubuntu,发生[error 5]Input/Output error错误.搜索资料,发现说的千篇一律,都是复制粘贴的,这无所谓,但关键是根本解决不了我 ...

  4. pstack: Input/output error failed to read target解决

    1.pstack获取进程死锁堆栈信息报错 # sudo pstack 3200 //pid 3200: ./a.out pstack: Input/output error failed to rea ...

  5. VNC桌面无法打开终端:Failed to execute default Terminal Emulator. Input/output error.

    系统:Ubuntu18.04 通过VNC远程连接图形桌面,发现无法打开终端,并且报错:Failed to execute default Terminal Emulator. Input/output ...

  6. 解决 rsync IO input / output error , failed verification — update discarded

    rsync出错: IO input / output error (5) failed verification - update discarded (will try again). 将目的文件删 ...

  7. 报错解决transmission: Error: Input/Output error和ls: reading directory '': Input/output error

    transmission: Error: Input/Output error 晚上想用transmission下载新的种子时报错:Error: Input/Output error. 我很奇怪,先运 ...

  8. python3 报错 [Errno 5] Input/output error 没有stdout时使用了print

    过程描述 刚不久用 Tornado 写了一个项目,本打算部署在 Nginx 上,但是因为公司的一些原因就没有使用 Nginx,直接在命令行中启动 当我从命令行以后台的方式启动以后,是可以正常访问的 p ...

  9. colab出现input output error问题

    原因是文件太多,清理一下回收站,尝试用先从 !cp path/to/data.csv local.csv 为什么 drive.mount() 有时会失败,并提示"超时"?为什么在通 ...

最新文章

  1. ubuntun_11.04安装
  2. Java Spring MVC
  3. 12日疯人认证百度云_12月15日上海实习汇总(百度、美图、哔哩哔哩等)
  4. Mybatis懒加载机制
  5. 学习oracle的感悟,随笔:最近关于Oracle学习思考的一些感悟
  6. LCA SP913 QTREE2 - Query on a tree II
  7. 数据结构题及c语言版4.31答案,数据结构参考题及答案修正版.doc
  8. ndows外壳公用dll,Windows外壳公用DLL已停止工作
  9. Linux下文件操作命令cat(转)
  10. 浏览器的工作原理:新式网络浏览器幕后揭秘(转)
  11. VRTK summary
  12. 吴昊品游戏核心算法 Round 16 —— 吴昊教你玩口袋妖怪 完结篇 由金手指想到的...
  13. Linux共享文件夹打不开,Linux 共享文件夹失败
  14. 华维实战小项目:教你如何用51单片机驱动步进电机
  15. springboot仓库管理系统的设计与实现(含论文)
  16. Eclipse中的Lua插件 LDT
  17. 中国类脑计算先行者:在AI“无人区”探路
  18. doc跟docx的区别
  19. win10启动项在什么地方
  20. 题解动态规划:蓝桥杯2022国赛B组 题解 A题目

热门文章

  1. JS引用类型(6)——基本包装类型1
  2. 43.放苹果(递归练习)
  3. 2016.1.20 dubbo启动之后机器ip有问题
  4. Ubantu Mark
  5. linux 光驱挂载
  6. 用什么擦地最干净脑筋急转弯_22个数学脑筋急转弯答案,你能全部做出来吗?...
  7. 计划任务执行php文件,linux系统下添加计划任务执行php文件方法
  8. java fragment_Java Web Fragment在项目中使用方法详解
  9. 三亚免税店积分抵现_又变了??三亚免税店的政策又变了~
  10. php一个数组赋值给对象,php数组与对象相互转换方法