环境: ubuntu 12.04 server
1、kvm的安装
首先检查你的处理器是否支持硬件虚拟化;如果支持,下面这个命令
egrep '(vmx|svm)' --color=always /proc/cpuinfo |
应该会显示类似下面这样的内容:
root@ubuntu:~# egrep '(vmx|svm)' --color=always /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush
mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl extd_apicid
pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush
mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl extd_apicid
pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv
root@ubuntu:~#
要是什么都没显示,那么你的处理器不支持硬件虚拟化,你必须在此停住。
想安装KVM和vmbuilder(创建基于Ubuntu的虚拟机的一个脚本),我们运行:
apt-get install ubuntu-virt-server python-vm-builder kvm-ipxe |
之后,我们必须将用户作为目前登录的用户(根用户)添加到群组libvirtd:
adduser `id -un` libvirtd adduser `id -un` kvm |
你需要退出,重新登录,那样新的群组成员资格才生效。
想检查KVM是否已成功安装,运行
virsh -c qemu:///system list |
它显示的内容应该像这样:
root@ubuntu :~# virsh -c qemu:///system list
Id Name State
----------------------------------
root@ubuntu:~#
接下来,我们需要在服务器上建立网桥,以便可以从其他主机访问我们的虚拟机,好像虚拟机是网络中的物理系统。
为此,我们安装了程序包bridge-utils......
apt-get install bridge-utils |
并配置网桥。打开/etc/network/interfaces:
vi /etc/network/interfaces |
网络配置采用的是DHCP模式 配置如下
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
重新启动网络……
/etc/init.d/networking restart |
然后运行
ifconfig |
现在它应该显示了网桥(br0):
在我们开始运行第一个虚拟机之前,建议重新启动系统:
reboot |
如果你没有重启,可能会在/var/log/libvirt/qemu/目录的虚拟机日志中看到错误,比如/dev/kvm: Permission denied。
2、libvirt的安装配置
将libvirt包放在/home 目录下
解压
tar zxvf libvirt.xx.tar.gz
进入libvirt目录
执行 ./configure
出现以下错误
error: You must install the libyajl library & headers to compile libvirt
执行
#apt-cache search libxml2
# apt-get install libxml++2.6-2
# apt-get install libxml++2.6-dev
apt-get install libpciaccess-dev
apt-get install libyajl-dev
出现下面的问题
error: libnl-devel >= 1.1 is required for macvtap support
缺少相关的包 执行下面命令
apt-get install libnl-dev
解决
然后执行
make
make install
出现问题
error: failed to connect to the hypervisor
error: no valid connection
error: Failed to connect socket to '/usr/local/var/run/libvirt/libvirt-sock': No such file or directory
查看libvirt进程是否启动
ps -le | grep libvirt* 如果没有启动,那么上面的错误就是这个原因
现在启动libvirt进程 libvirtd -d
问题解决