解决 loop device 数目限制问题
2009年09月22日 | 标签: virtualization, xen | 作者:vpsee
今天早上在 Xen 服务器上增加一个 domU 虚拟机的时候遇到一个问题:
# /usr/sbin/xm create vm05 Using config file "/etc/xen/vm05". Error: Device 2049 (vbd) could not be connected. Failed to find an unused loop device
上面错误显示没有找到可用的 loop device,可能是当前使用的内核版本或者内核配置对 loop devices 有最大数目的限制,查看一下当前正在使用的的 loop devices:
# /sbin/losetup -a /dev/loop0: [fd00]:32014427 (/vm/vm01.swap) /dev/loop1: [fd00]:44105729 (/vm/vm01.img) /dev/loop2: [fd00]:32014432 (/vm/vm02.img) /dev/loop3: [fd00]:32014433 (/vm/vm02.swap) /dev/loop4: [fd00]:32014429 (/vm/vm03.swap) /dev/loop5: [fd00]:43057161 (/vm/vm03.img) /dev/loop6: [fd00]:1376674 (/vm/vm04.img) /dev/loop7: [fd00]:32014428 (/vm/vm04.swap)
CentOS/RHEL 5
在 CentOS/RHEL 5 系统上默认的 active loop devices 数目是8,如上面看到的 loop0-loop7,只创建了4个 vm,用到了8个 loop devices,4个用来挂载 os image,4个用来挂载 swap image. 对于基于 file 的 Xen OS image 来说,需要修改这个默认值以便获得更多的 loop devices 挂载更多的 image. 编辑 /etc/modprobe.conf 来修改 active loop devices 最大限制数目:
# vi /etc/modprobe.conf options loop max_loop=64
CentOS/RHEL 6
在 CentOS/RHEL 6 系统上更改 loop 最大数目更容易,最多支持256个,还不用重启:
# MAKEDEV -v /dev/loop
不过上面更改重启就会消失,所以把上面命令要加到 /etc/rc.local 里:
# vi /etc/rc.local ... MAKEDEV -v /dev/loop
Ubuntu/Debian
在 Ubuntu/Debian 上修改默认 loop devices 最大限制数目:
# echo 'options loop max_loop=64' >/etc/modprobe.d/loopdev
还是用LVM吧
改了 一台可以 一台不可以多开!
http://www.hostloc.com/thread-27799-1-1.html
求答案
Debian 7 可以直接修改/etc/modules,默认是:
loop
改为:
loop max_loop=64
即可。