鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

Ceph创建bcache时提示sdx device busy的解决方法

问题现象描述

在配置了bcache的Ceph环境,重新安装操作搭建环境,有时会在配置bcache操作中提示“make-bcache --wipe-bcache -B /dev/sdx -C /dev/nvmexx”,具体信息截图如下:

关键过程、根本原因分析

磁盘残留bcache分区信息被系统加载,可以通过lsblk命令进行查看。

结论、解决方案及效果

通过以下步骤进行磁盘恢复。

  1. 在sdb目录下bcache文件夹下进行detach和stop操作。
    echo 1 >/sys/block/sdb/bcache/detach
    echo 1 >/sys/block/sdb/bcache/stop
  2. 对sdb磁盘进行dd写操作。
    dd if=/dev/zero of=/dev/sdb count=2048 bs=1M
  3. 在/sys/fs/bcache/目录下对残留bcache做unregister操作。
    cd  /sys/fs/bcache/31040c7b-55f2-4170-bf77-d2e8b958e31a/
    echo 1 >  unregister

    找到对应的bcache,执行unregister操作。

  4. 重新启动服务器。

脚本操作参考如下:

  • 对系统下sda..sdh硬盘进行detach,stop操作,dd写操作。
    for i in {0..7}
    do
            temp=`expr $i % 8 + 97`
            diskID=$(printf \\x`printf %x ${temp}`)
            echo 1 >/sys/block/sd${diskID}/bcache/detach
            echo 1 >/sys/block/sd${diskID}/bcache/stop
            dd if=/dev/zero of=/dev/sd${diskID} count=2048 bs=1M
    done
  • 对ceph1-4节点/sys/fs/bcache/目录进行unregister操作。
    #!/bin/bash
    for n in {1..4}
    do
        echo "ceph$n"
        f=$(ssh ceph$n "ls /sys/fs/bcache/")
        for i in $f
        do
            ssh ceph$n "echo 1 > /sys/fs/bcache/$i/unregister"
        done
    done