问题

在创建RAID时执行如下command
mdadm -C /dev/md1 -l 0 -n 2 --chunk=64 /dev/nbd{0,1}
报错:

mdadm: cannot open /dev/nbd0: Device or resource busy

原因

主要有两点:
1.该Device被某个进程占用,导致mdadm创建失败。
2.该Device在本机已经被创建过RAID(被其他md设备占用),导致再用mdadm创建md时失败。

解决方案

1.查看有无进程在占用,命令:

fuser -m -v /dev/xxx   #/dev/xxx 被占用的设备

若有,则根据进程的PID kill掉,命令:

kill -9 xxx  #xxx为进程的PID。若kill -9 还杀不掉,说明该进程可能死在了内核态,重启机器解决。

2.查看之前该Device是否已经被创建过RAID。

cat /proc/mdstat

输出:
在这里插入图片描述
如图所示,该Device在创建md1时已经被占用,md1可能是之前创建成功的RAID也可能是创建失败的残留,要想再使用该Device创建RAID只能停掉之前创建的RAID。命令:

mdadm -S /dev/md1

最后重新执行
mdadm -C /dev/md1 -l 0 -n 2 --chunk=64 /dev/nbd{0,1}

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐