问题
在创建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}