这个KVM跟控制台切换器之类的东西一点关系没有,KVM全称Kernel-based Virtual Machine,是基于Linux核心的虚拟机。之前曾经写过基于XEN的虚拟化(见 ),最终linux世界还是没有选择XEN。KVM被正式导入Linux是在2007年的2.6.20核心上,以替代XEN,不过相对XEN来说,KVM要求CPU硬件上支持虚拟化技术,即Intel-vt或者AMD-v的支持。这对于2008年之后的机器来说几乎是标配的。对于这一个时期的CPU都一个劲的堆核心,内存也空前的便宜,硬盘也逐步到了320G起板的水平,可以大胆的玩虚拟机了!
再此之前,还是先确认系统的CPU是否支持虚拟化:
#egrep ‘(vmx|svm)’ /proc/cpuinfo
应该有返回,如果没有返回,且确认您的CPU支持虚拟化的话,建议去看看BIOS设置,大多数的主板都支持关闭此技术的。
还是以最常用的Ubuntu Server 做例子,desktop的可以直接apt-get install ubuntu-server之后,用server的核心启动。如果你全程参考本文,个人建议还是通过后一种方式来做,因为本文的过程需要X环境。
首先,设置好桥接,由于我使用的机器在远程,操作全部通过ssh,桥接的过程断开过网络。让机房重起数次之后,找到了最稳妥的方法,虽然也要断网,但好在会自己恢复。
#sudo apt-get install bridge-utils uml-utilities
#vi /etc/network/intefaces
auto lo
iface lo inet loopback
auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user root
auto br0
iface br0 inet static
bridge_ports eth0 tap0
address 192.168.1.3
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
注意这个br0,我通过前端防火墙做的DMZ通道,所以设置了内网地址。主机通过这个ip访问。所有的虚拟主机也直接设置到192.168.1.0/24网段。
#/etc/init.d/network restart
断网了,等待几分钟后网络恢复,直接ifconfig
br0 Link encap:Ethernet HWaddr 02:0b:b1:f7:79:01
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::b:b1ff:fef7:7901/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:506941 errors:0 dropped:0 overruns:0 frame:0
TX packets:733910 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:45469237 (45.4 MB) TX bytes:654152049 (654.1 MB)
eth0 Link encap:Ethernet HWaddr e4:1f:13:95:82:cf
inet6 addr: fe80::e61f:13ff:fe95:82cf/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1367878 errors:0 dropped:0 overruns:0 frame:0
TX packets:1541493 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:689206805 (689.2 MB) TX bytes:1062795975 (1.0 GB)
Memory:81a80000-81aa0000
eth0:0 Link encap:Ethernet HWaddr e4:1f:13:95:82:cf
inet addr:192.168.1.2 Bcast:0.0.0.0 Mask:0.0.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Memory:81a80000-81aa0000
桥接成功!