May
18
[原]解决虚拟管理器提示“这个连接没有可用管理程序选项”的问题
对Asianux 4.0的虚拟化进行测试,根据配置文档,所有软件包已安装完毕。但运行virt-manager,创建虚拟机时提示“这个连接没有可用管理程序选项”(No hypervisor options were found for this connection)。经排查,原来是由于Bios中“Virtualization Technology”的选项没有打开。设置后,故障解决。
一、现象描述
1、硬件要求
一台HP 6200P MT 的PC,用于测试KVM虚拟化。CPU为:Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz。
测试前,确认CPU是否支持VT技术:
很明显,CPU是没有问题的。
2、软件包
安装Asianux 4.0,选择“完全安装”并没有包括虚拟化支持方案。需要选择“现在自定义”:
然后,选择“virtualization”组的子选项:
选择时,最后进入每个子选项的“可选包”中再次确认一下。
安装完毕后,至少包括以下几个软件包:
若系统安装后需另行安装虚拟化,可配置yum支持后,使用下面的命令安装:
※ yum 配置文件请见附录。
3、服务支持
启动虚拟化服务:
查看kvm支持模块:
※ 注意:这时已经有问题,缺少kvm-intel 模块。(Intel 虚拟化方案)
连接QEMU:
4、虚拟管理器
使用virt-manager 启动虚拟化管理器,创建虚拟机。这时,问题来了,提示:“这个连接没有可用管理程序选项”。
这个提示的翻译有点问题,改用英文启动,会显示为“No hypervisor options were found for this connection”。
二、故障解决
这台机器原安装的是Asianux 3.0 + RFVM 2.0的方案,也是采用KVM虚拟化和QEMU管理,运行挺正常的。所以,开始没有考虑硬件的原因,一直在对比Asianux 4.0上的软件包,查找是否有缺漏的问题,这浪费了很多时间。
从源头进行分析,查看messages日志,在启动libvritd服务时,会报:
而从Google的搜索分析,似乎kvm 的支持模块少了个kvm-intel,手动加入会报错:
KVM 设备也不存在:
这一切表明,问题可能出在硬件上。但为什么Asianux 3.0可运行呢?
刚好运行Asianux 3.0的硬盘没有格式化,进入Asianux 3.0,打开虚拟化管理器virt-manager,创建虚拟机,发现也是有警告提示的:
KVM不可用,虚拟机的性能可能很差!原来,之前在Asianux 3.0下运行的KVM并没有VT支持,跑的是由CPU模拟的完全虚拟化,性能很差。
这也说明,Asianux 4.0的虚拟化已经不再支持该方式,必须使用CPU的VT技术支持。
进入HP的Bios,好不容易,终于找到“Security —— System Security“里面:
有个“Virtualization Techonloy (VTx)”的可选项:
默认为Disabled,需设置为“Enabled”。
PS:这配置项实在难找,怎么会把Virtualization放到Security里面,想不明白。我来回找了好几次都没找到,最后没办法,只能联系HP才知道的。另外,有部分资料显示,修改后必须断电重启机器才能生效的。我没遇到,反正留意一下吧。
再次进入系统,打开virt-manager,这次没问题了:
KVM支持模块也正常:
※ 补充:AMD的虚拟化,需加载kvm-amd模块。
三、附录
1. yum 配置文件
2.HP 6200P MT说明书
点击这里。
一、现象描述
1、硬件要求
一台HP 6200P MT 的PC,用于测试KVM虚拟化。CPU为:Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz。
测试前,确认CPU是否支持VT技术:
引用
# egrep '(vmx|svm)' --color=always /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt xsave avx lahf_lm arat tpr_shadow vnmi flexpriority ept vpid
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt xsave avx lahf_lm arat tpr_shadow vnmi flexpriority ept vpid
很明显,CPU是没有问题的。
2、软件包
安装Asianux 4.0,选择“完全安装”并没有包括虚拟化支持方案。需要选择“现在自定义”:
然后,选择“virtualization”组的子选项:
选择时,最后进入每个子选项的“可选包”中再次确认一下。
安装完毕后,至少包括以下几个软件包:
引用
# rpm -qa|grep virt
libvirt-devel-0.8.1-27.0.1.AXS4.x86_64
libvirt-java-0.4.5-2.0.1.AXS4.noarch
libvirt-client-0.8.1-27.0.1.AXS4.x86_64
python-virtinst-0.500.3-7.0.1.AXS4.noarch
libvirt-python-0.8.1-27.0.1.AXS4.x86_64
virt-viewer-0.2.1-2.AXS4.x86_64
libvirt-java-devel-0.4.5-2.0.1.AXS4.noarch
virt-manager-0.8.4-8.AXS4.noarch
libvirt-0.8.1-27.0.1.AXS4.x86_64
virt-top-1.0.4-3.1.AXS4.x86_64
# rpm -qa|grep qemu
qemu-kvm-0.12.1.2-2.113.AXS4.6.x86_64
qemu-img-0.12.1.2-2.113.AXS4.6.x86_64
gpxe-roms-qemu-0.9.7-6.3.AXS4.noarch
qemu-kvm-tools-0.12.1.2-2.113.AXS4.6.x86_64
libvirt-devel-0.8.1-27.0.1.AXS4.x86_64
libvirt-java-0.4.5-2.0.1.AXS4.noarch
libvirt-client-0.8.1-27.0.1.AXS4.x86_64
python-virtinst-0.500.3-7.0.1.AXS4.noarch
libvirt-python-0.8.1-27.0.1.AXS4.x86_64
virt-viewer-0.2.1-2.AXS4.x86_64
libvirt-java-devel-0.4.5-2.0.1.AXS4.noarch
virt-manager-0.8.4-8.AXS4.noarch
libvirt-0.8.1-27.0.1.AXS4.x86_64
virt-top-1.0.4-3.1.AXS4.x86_64
# rpm -qa|grep qemu
qemu-kvm-0.12.1.2-2.113.AXS4.6.x86_64
qemu-img-0.12.1.2-2.113.AXS4.6.x86_64
gpxe-roms-qemu-0.9.7-6.3.AXS4.noarch
qemu-kvm-tools-0.12.1.2-2.113.AXS4.6.x86_64
若系统安装后需另行安装虚拟化,可配置yum支持后,使用下面的命令安装:
# yum install kvm virt-manager libvirt
※ yum 配置文件请见附录。
3、服务支持
启动虚拟化服务:
# service libvirtd start
查看kvm支持模块:
引用
# lsmod|grep kvm
kvm 291875 0
kvm 291875 0
※ 注意:这时已经有问题,缺少kvm-intel 模块。(Intel 虚拟化方案)
连接QEMU:
引用
# virsh -c qemu:///system list
Id 名称 状态
----------------------------------
Id 名称 状态
----------------------------------
4、虚拟管理器
使用virt-manager 启动虚拟化管理器,创建虚拟机。这时,问题来了,提示:“这个连接没有可用管理程序选项”。
这个提示的翻译有点问题,改用英文启动,会显示为“No hypervisor options were found for this connection”。
二、故障解决
这台机器原安装的是Asianux 3.0 + RFVM 2.0的方案,也是采用KVM虚拟化和QEMU管理,运行挺正常的。所以,开始没有考虑硬件的原因,一直在对比Asianux 4.0上的软件包,查找是否有缺漏的问题,这浪费了很多时间。
从源头进行分析,查看messages日志,在启动libvritd服务时,会报:
引用
May 18 13:13:00 localhost kernel: kvm: disabled by bios
而从Google的搜索分析,似乎kvm 的支持模块少了个kvm-intel,手动加入会报错:
引用
# modprobe kvm-intel
FATAL: Error inserting kvm_intel (/lib/modules/2.6.32-71.7.1.el6.x86_64/kernel/arch/x86/kvm/kvm-intel.ko): Operation not supported
FATAL: Error inserting kvm_intel (/lib/modules/2.6.32-71.7.1.el6.x86_64/kernel/arch/x86/kvm/kvm-intel.ko): Operation not supported
KVM 设备也不存在:
引用
# ll /dev/kvm
ls: 无法访问/dev/kvm: 没有那个文件或目录
ls: 无法访问/dev/kvm: 没有那个文件或目录
这一切表明,问题可能出在硬件上。但为什么Asianux 3.0可运行呢?
刚好运行Asianux 3.0的硬盘没有格式化,进入Asianux 3.0,打开虚拟化管理器virt-manager,创建虚拟机,发现也是有警告提示的:
KVM不可用,虚拟机的性能可能很差!原来,之前在Asianux 3.0下运行的KVM并没有VT支持,跑的是由CPU模拟的完全虚拟化,性能很差。
这也说明,Asianux 4.0的虚拟化已经不再支持该方式,必须使用CPU的VT技术支持。
进入HP的Bios,好不容易,终于找到“Security —— System Security“里面:
有个“Virtualization Techonloy (VTx)”的可选项:
默认为Disabled,需设置为“Enabled”。
PS:这配置项实在难找,怎么会把Virtualization放到Security里面,想不明白。我来回找了好几次都没找到,最后没办法,只能联系HP才知道的。另外,有部分资料显示,修改后必须断电重启机器才能生效的。我没遇到,反正留意一下吧。
再次进入系统,打开virt-manager,这次没问题了:
KVM支持模块也正常:
引用
# lsmod|grep kvm
kvm_intel 45578 0
kvm 291875 1 kvm_intel
# ll /dev/kvm
crw-rw-rw- 1 root kvm 10, 232 5月 18 17:17 /dev/kvm
kvm_intel 45578 0
kvm 291875 1 kvm_intel
# ll /dev/kvm
crw-rw-rw- 1 root kvm 10, 232 5月 18 17:17 /dev/kvm
※ 补充:AMD的虚拟化,需加载kvm-amd模块。
三、附录
1. yum 配置文件
引用
# cat /etc/yum.repos.d/asianux.repo
[os]
name=Asianux 4.0 STD OS
baseurl=ftp://yumer:yumer@192.168.228.153/dc/7.0/os/x86_64
failovermethod=priority
enabled=1
gpgcheck=0
[os]
name=Asianux 4.0 STD OS
baseurl=ftp://yumer:yumer@192.168.228.153/dc/7.0/os/x86_64
failovermethod=priority
enabled=1
gpgcheck=0
2.HP 6200P MT说明书
点击这里。