在Ubuntu 12.04 LTS服务器上借助KVM实现虚拟化
本文解释了如何安装和使用KVM,以便在Ubuntu 12.04 LTS服务器上创建和运行虚拟机。我会介绍如何创建基于镜像的虚拟机,还会介绍如何创建使用逻辑卷(LVM)的虚拟机。KVM的全称是基于内核的虚拟机,它充分利用了硬件虚拟化技术,也就是说你需要支持硬件虚拟化的处理器,比如英特尔VT或AMD-V。
我不保证本文介绍的步骤适用于你的情况!
1. 首页附注
我在本文中使用主机名为server1.example.com和IP地址为192.168.0.100的机器作为KVM主机。
由于我们将以根用户权限(root privilege)运行本文介绍的所有步骤,所以可以用字符串sudo为本教程中的所有命令加上前缀,或者只需输入下面这个命令,立即成为根用户。
sudo su
2. 安装KVM和vmbuilder
首先检查你的处理器是否支持硬件虚拟化;如果支持,下面这个命令
egrep '(vmx|svm)' --color=always /proc/cpuinfo
应该会显示这样的内容:
root@server1:~# 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@server1:~#
要是什么都没显示,那么你的处理器不支持硬件虚拟化,你必须在此停住。
想安装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@server1:~# virsh -c qemu:///system list
Id Name State
----------------------------------
root@server1:~#
如果它显示的而是错误,那么准是出了什么问题。
接下来,我们需要在服务器上建立网桥,以便可以从其他主机访问我们的虚拟机,好像虚拟机是网络中的物理系统。
为此,我们安装了程序包bridge-utils......
apt-get install bridge-utils
并配置网桥。打开/etc/network/interfaces:
vi /etc/network/interfaces
在改动之前,我的文件像下面这样子:
# 该文件描述了系统上可用的网络接口,
# 以及如何激活这些网络接口。欲知详情,请参阅接口(5)。
# 回送网络接口
auto lo
iface lo inet loopback
# 主网络接口
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 8.8.8.8 8.8.4.4