KVM在Fedora 10服务器上的虚拟化

KVM在Fedora 10服务器上的虚拟化 本指南解释了如何安装和使用KVM创建和 运行虚拟机...

在Fedora 10服务器上使用KVM进行虚拟化

版本1.0
作者:Falko Timme

本指南介绍如何安装和使用KVM在Fedora 10服务器上创建和运行虚拟机。 我将演示如何创建基于图像的虚拟机以及使用逻辑卷(LVM)的虚拟机。 KVM是基于内核的虚拟机的缩写,并利用硬件虚拟化,即需要一个支持硬件虚拟化的CPU,例如Intel VT或AMD-V。

我不会保证这将为您工作!

1初步说明

我正在使用Fedora 10服务器,其主机名为server1.example.com ,IP地址为192.168.0.100 ,作为我的KVM主机。

在我们开始之前,确保SELinux被禁用。 打开/ etc / selinux / config ...

vi /etc/selinux/config

...并将SELINUX设置为禁用

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#       targeted - Targeted processes are protected,
#       mls - Multi Level Security protection.
SELINUXTYPE=targeted

setenforce 0

为了改变生效。

我们还需要一个桌面系统,我们安装virt-manager,以便我们可以连接到我们安装的虚拟机的图形控制台。 我在这里使用Ubuntu 8.10桌面。

2安装KVM

Fedora 10 KVM主机:

首先检查您的CPU是否支持硬件虚拟化 - 如果是这种情况,该命令

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 pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch
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 pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch
[root@server1 ~]#

如果没有显示任何内容,那么您的处理器不支持硬件虚拟化,您必须停止在这里。

要安装KVM和virtinst (创建虚拟机的工具),我们运行

yum install kvm qemu libvirt python-virtinst

然后启动libvirt守护进程:

/etc/init.d/libvirtd start

要检查KVM是否已成功安装,请运行

virsh -c qemu:///system list

它应该显示如下:

[root@server1 ~]# virsh -c qemu:///system list
 Id Name                 State
----------------------------------

[root@server1 ~]#

如果它显示错误,那么出现问题。

接下来,我们需要在我们的服务器上设置一个网桥,以便我们的虚拟机可以从其他主机访问,就像它们是网络中的物理系统一样。

为此,我们安装了包bridge-utils ...

yum install bridge-utils

...并配置一个桥。 删除NetworkManager的系统启动链接,并创建网络的系统启动链接:

chkconfig --del NetworkManager
chkconfig --levels 235 network on

然后创建文件/ etc / sysconfig / network-scripts / ifcfg-br0 (请使用/ etc / sysconfig / network中BOOTPROTODNS1 (加上任何其他DNS设置,如果有), GATEWAYIPADDRNETMASKSEARCH-scripts / ifcfg-eth0文件):

vi /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
DNS1=145.253.2.75
GATEWAY=192.168.0.1
IPADDR=192.168.0.100
NETMASK=255.255.255.0
ONBOOT=yes
SEARCH="example.com"

修改/ etc / sysconfig / network-scripts / ifcfg-eth0如下(注释掉BOOTPROTODNS1 (和所有其他DNS服务器,如果有), GATEWAYIPADDRNETMASKSEARCH ,并添加BRIDGE = br0 ):

vi /etc/sysconfig/network-scripts/ifcfg-eth0

# nVidia Corporation Unknown (0x0760)
DEVICE=eth0
#BOOTPROTO=static
#DNS1=145.253.2.75
#GATEWAY=192.168.0.1
HWADDR=00:1e:90:f3:f0:02
#IPADDR=192.168.0.100
#NETMASK=255.255.255.0
ONBOOT=yes
#SEARCH="example.com"
BRIDGE=br0

然后重新启动系统:

reboot

重新启动后,运行

ifconfig

现在应该显示网桥( br0 ):

[root@server1 ~]# ifconfig
br0       Link encap:Ethernet  HWaddr 00:1E:90:F3:F0:02
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:49 errors:0 dropped:0 overruns:0 frame:0
          TX packets:72 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:6477 (6.3 KiB)  TX bytes:10368 (10.1 KiB)

eth0      Link encap:Ethernet  HWaddr 00:1E:90:F3:F0:02
          inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:57 errors:0 dropped:0 overruns:0 frame:0
          TX packets:55 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:9912 (9.6 KiB)  TX bytes:8038 (7.8 KiB)
          Interrupt:22 Base address:0xa000

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:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)

virbr0    Link encap:Ethernet  HWaddr 62:6D:75:53:9C:AD
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          inet6 addr: fe80::606d:75ff:fe53:9cad/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:5277 (5.1 KiB)

[root@server1 ~]#

3安装virt-viewer或virt-manager在您的Ubuntu 8.10桌面上

Ubuntu 8.10桌面:

我们需要一种连接到我们客人的图形控制台的方法 - 我们可以使用virt-manager(参见KVM Guest Management with Ubuntu 8.10中的Virt-Manager )。 我假设你使用的是Ubuntu 8.10桌面。

sudo aptitude install virt-manager

安装virt-manager。

(如果您使用的是Fedora 10桌面,可以按如下方式安装virt-manager:

成为根...

su

...运行

yum install virt-manager

4创建Debian Lenny Guest(基于图像)

Fedora 10 KVM主机:

现在我们回到我们的Fedora 10 KVM主机。

看一眼

man virt-install

学习如何使用它。

要创建名为vm10,512MB RAM,两个虚拟CPU和磁盘映像〜/ vm10.qcow2 (大小为12GB)的Debian Lenny guest虚拟机(桥接模式),请将Debian Lenny Netinstall CD插入CD驱动和运行

virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 -f ~/vm10.qcow2 -s 12 -c /dev/cdrom --vnc --noautoconsole --os-type linux --os-variant debianLenny --accelerate --network=bridge:br0 --hvm

当然,您还可以创建Debian Lenny Netinstall CD的ISO映像...

dd if=/dev/cdrom of=~/debian-500-amd64-netinst.iso

...并在virt-install命令中使用ISO映像:

virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 -f ~/vm10.qcow2 -s 12 -c ~/debian-500-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debianLenny --accelerate --network=bridge:br0 --hvm

输出如下:

[root@server1 ~]# virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 -f ~/vm10.qcow2 -s 12 -c ~/debian-500-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debianLenny --accelerate --network=bridge:br0 --hvm


Starting install...
Creating storage file...                                                                    |  12 GB     00:00
Creating domain...                                                                          |    0 B     00:00
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
[root@server1 ~]#