KVM安装

简介:

Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。

KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。

一.安装准备

  • 确定机器有VT

终端输入命令:

1
2
grep vmx /proc/cpuinfo (INTEL芯片)
grep svm /proc/cpuinfo (AMD芯片)

不知道芯片的生产厂商则输入:

1
egrep '(vmx|svm)' /proc/cpuinfo

如果flags: 里有vmx 或者svm就说明支持VT;如果没有任何的输出,说明你的cpu不支持,将无法成功安装KVM虚拟机。

  • 确保BIOS里开启VT

Intel(R) Virtualization Tech [Enabled]

如有必要,还需在BIOS中开启VT-d

  • 确保内核版本较新,支持KVM

用uname –r查看内核版本,如果在2.6.20以下的linux版本,需升级内核。

二.开始安装

安装必要的软件包

1
yum -y install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v installacpid

启动服务并加入开机自启动

1
2
3
4
5
6
7
8
/etc/init.d/messagebus start
/etc/init.d/haldaemon start
/etc/init.d/libvirtd start
/etc/init.d/acpid start
chkconfig messagebus on
chkonfig haldaemon on
chkconfig libvirtd on
chkconfig acpid on

检测安装是否成功

1
virsh list

kvm模块

1
2
3
/sbin/lsmod | grep kvm
kvm_intel 55656 16
kvm 345460 1 kvm_intel

三.配置

关闭NetworkManager

1
2
3
/etc/init.d/NetworkManager stop
Stopping NetworkManager daemon: [ OK ]
chkconfig NetworkManager off

配置桥接网络

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#br0
vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.83
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
#eth0
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br0
/etc/init.d/network restart
#虚拟机上网
echo 1 > /proc/sys/net/ipv4/ip_forward

查看网络

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
ifconfig 
br0 Link encap:Ethernet HWaddr F0:92:1C:F2:C7:D0
inet addr:192.168.1.83 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::f292:1cff:fef2:c7d0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1021912 errors:0 dropped:36 overruns:0 frame:0
TX packets:522545 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:131702194 (125.6 MiB) TX bytes:46325194 (44.1 MiB)

eth0 Link encap:Ethernet HWaddr F0:92:1C:F2:C7:D0
inet6 addr: fe80::f292:1cff:fef2:c7d0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1114980 errors:0 dropped:15 overruns:0 frame:0
TX packets:522796 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:174122406 (166.0 MiB) TX bytes:48666660 (46.4 MiB)
Interrupt:20 Memory:f7c00000-f7c20000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1083 errors:0 dropped:0 overruns:0 frame:0
TX packets:1083 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:363451 (354.9 KiB) TX bytes:363451 (354.9 KiB)

virbr0 Link encap:Ethernet HWaddr 52:54:00:AD:B6:0D
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
brctl show
bridge name bridge id STP enabled interfaces
br0 8000.f0921cf2c7d0 no eth0
virbr0 8000.525400adb60d yes virbr0-nic
坚持原创技术分享,您的支持将鼓励我继续创作!