RHEL/CentOS 6.x KVM虚拟化安装和配置指南

时间:2020-01-09 10:41:10  来源:igfitidea点击:

如何在CentOS或IBM服务器上的Red Hat Enterpise Linux版本6服务器中使用基于内核的虚拟机(KVM)设置和管理虚拟化环境?
您能否提供有关如何使用KVM for RHEL/CentOS 6.4版在物理服务器上安装和管理虚拟机(VM)的分步命令?

KVM是RHEL和CentOS Linux的一部分。
您可以使用以下命令轻松安装它们。
请注意,软件包名称在RHEL/CentOS 6.x中已更改。

安装所需的KVM RPM /软件包

执行以下yum命令

# yum groupinstall "Virtualisation Tools" "Virtualization Platform"
# yum install python-virtinst

或者

# yum install kvm qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools

输出示例:

Loaded plugins: product-id, protectbase, rhnplugin
This system is receiving updates from RHN Classic or RHN Satellite.
0 packages excluded due to repository protections
Setting up Install Process
Package libvirt-0.10.2-18.el6_4.15.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package libguestfs-tools.x86_64 1:1.16.34-2.el6 will be installed
--> Processing Dependency: libguestfs-tools-c = 1:1.16.34-2.el6 for package: 1:libguestfs-tools-1.16.34-2.el6.x86_64
....
..
..
  spice-glib.x86_64 0:0.14-7.el6_4.3                                            
  spice-gtk.x86_64 0:0.14-7.el6_4.3                                             
  spice-gtk-python.x86_64 0:0.14-7.el6_4.3                                      
  spice-server.x86_64 0:0.12.0-12.el6_4.5                                       
  vgabios.noarch 0:0.6b-3.7.el6                                                 
  vte.x86_64 0:0.25.1-8.el6_4                                                   

Complete!

打开libvirtd服务

libvirtd程序是libvirt虚拟化管理系统的服务器端守护程序组件。
执行以下chkconfig命令将其打开:

# chkconfig libvirtd on

通过执行以下服务命令来启动libvirtd服务:

# service libvirtd start

输出示例:

Starting libvirtd daemon:                                  [  OK  ]

您可以通过执行以下命令来验证libvirtd服务:

# service libvirtd status
libvirtd (pid  31128) is running...

# virsh -c qemu:///system list
Id    Name                           State
---------------------------------------------------

配置示例

+-------------+
                     | CentOS/RHEL |             |-----| 
     -->ISP router---+ Box Host w/ +--- eth0 -->-+ br0 +  Private IP
                     | KVM         |             |     |
                     +-------------+--- eth1 -->-+ br1 | Public IP
                                                 |-----|
                                                    |
                                                vm1-+---vm2----vm3---vm4

*** NOTE: each VMs will have two interface i.e. Private and Public *****

其中:

  • eth0 KVM服务器的LAN接口。
  • eth1 KVM服务器WAN/Internet接口。
  • br0 KVM服务器桥接接口,使VM可以直接访问LAN上的所有资源。
  • br1 KVM服务器桥接接口,使VM可以直接访问WAN/Internet上的所有资源。用户可以使用ssh进入虚拟机,也可以托管HTTPD/SMTPD。
  • obsd-vm1(vm1)OpenBSD VM名称。
  • rhel-vm1(vm2)RHEL VM名称。

安装和配置网桥

所有VM仅可通过专用网络对同一物理服务器上的主机和其他VM进行网络访问。
您需要建立一个网桥,以便VM可以从外部访问LAN并可能访问Internet/WAN。
执行以下yum命令来安装bridge-utils软件包:

# yum install bridge-utils

设置默认网关

如下编辑/etc/sysconfig/network

# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=kvm-42.theitroad.local
## I am routing internet traffic via br1 ##
GATEWAYDEV=br1

配置桥接

如下更新/etc/sysconfig/network-scripts/ifcfg-eth0(专用):

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
HWADDR=00:30:48:C6:0A:D8
BRIDGE=br0

如下更新/etc/sysconfig/network-scripts/ifcfg-eth1(公共):

# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
HWADDR=00:30:48:C6:0A:D9
BRIDGE=br1

创建/编辑/etc/sysconfig/network-scripts/ifcfg-br0文件以设置br0的专用/局域网ip地址:

# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
## setup LAN/VLAN ips as per your needs ##
IPADDR=10.10.29.66
NETMASK=255.255.255.192
DELAY=0

创建/编辑/etc/sysconfig/network-scripts/ifcfg-br1文件以设置br1的公共/WAN /互联网IP地址:

# cat /etc/sysconfig/network-scripts/ifcfg-br1
DEVICE=br1
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
## setup INTERNET ips as per your needs ##
IPADDR=74.ww.xx.yy
NETMASK=255.255.255.248
GATEWAY=74.ww.xx.yy
DELAY=0

如何通过10.10.29.65网关路由所有局域网流量(子网10.0.0.0/8)。
创建/编辑文件/etc/sysconfig/network-scripts/route-br0,如下所示:

# cat /etc/sysconfig/network-scripts/route-br0
10.0.0.0/8 via 10.10.29.65

警告:通过ssh会话重新启动网络服务可能会导致与服务器的连接完全丢失。
因此,请确保正确设置了包括路由在内的br0和br1配置。

关于SELinux的说明

我尚未在CentOS/RHEL上禁用SELinux。
我不建议禁用SELinux。
因此,请确保配置文件具有正确的SELinux权限:

# ls -Z /etc/sysconfig/network-scripts/{route-br0,ifcfg-eth?,ifcfg-br?}

输出示例:

-rw-r--r--. root root system_u:object_r:net_conf_t:s0  /etc/sysconfig/network-scripts/ifcfg-br0
-rw-r--r--. root root system_u:object_r:net_conf_t:s0  /etc/sysconfig/network-scripts/ifcfg-br1
-rw-r--r--. root root system_u:object_r:net_conf_t:s0  /etc/sysconfig/network-scripts/ifcfg-eth0
-rw-r--r--. root root system_u:object_r:net_conf_t:s0  /etc/sysconfig/network-scripts/ifcfg-eth1
-rw-r--r--. root root system_u:object_r:net_conf_t:s0  /etc/sysconfig/network-scripts/route-br0

使用restorecon命令来设置或恢复文件的默认SELinux安全上下文:

# restorecon -Rv /etc/sysconfig/

如果要重新启动启用SELinux的服务器,请确保执行以下命令:

# touch /.autorelabel
# reboot

重新启动网络服务

执行以下命令以重新启动RHEL/CentOS/SL上的网络:

# service network restart

验证br0/br1设置

执行以下命令:

# brctl show
# ip addr show br0
# ip addr show br1
# ip route
# ping theitroad.local

创建虚拟机

您需要使用virt-install命令。

示例:创建OpenBSD VM

抓斗,安装介质:

# cd /var/lib/libvirt/boot/
# wget http://ftp.openbsd.org/pub/OpenBSD/5.4/amd64/install54.iso

在此示例中,我使用virt-install创建一个名为obsd-vm1的OpenBSD 5.4_amd64 VM,该VM具有一个虚拟CPU,1 GB内存和10 GB磁盘空间:

# virt-install \
-n obsd-vm1 \
--description "theitroad.local OpenBSD 5.4 64 bit VM1" \
--ram=1024 \
--vcpus=1 \
--cpu host \
--os-variant=openbsd4 \
--accelerate \
--hvm \
--cdrom /var/lib/libvirt/boot/install54.iso \
--network bridge:br0,model=virtio --network bridge:br1,model=virtio \
--graphics vnc \
--disk path=/var/lib/libvirt/images/openbsd-vm1-theitroad.local.img,bus=virtio,size=10

virt安装选项

  • -n obsd-vm1:虚拟机的名称。
  • --description" theitroad.local OpenBSD 5.4 64 bit VM1":虚拟机的详细描述。
  • --ram = 1024:1024MB是分配给VM的内存量。
  • --vcpus = 1:VM的虚拟CPU数。
  • --CPU主机:优化VM的CPU属性。
  • --os-variant = openbsd4:这是VM OS类型。
  • --accelerate:如果安装QEMU guest虚拟机,则优先使用KVM或KQEMU(按此顺序)。不再需要此选项。
  • --hvm:请求使用完全虚拟化。
  • --cdrom /var/lib/libvirt/boot/install54.iso:从iso的location参数安装OpeBSD v5.4。
  • --network bridge:br0,model = virtio --network bridge:br1,model = virtio:使用br0和br1创建一个网桥,即VM将具有两个用于LAN和Internet的网络接口。
  • --graphics vnc`:使用VNC从本地Linux/OSX/Unix/Windows桌面使用vnc服务器/查看器访问安装。
  • --disk path =/var/lib/libvirt/images/openbsd-vm1-theitroad.local.img,bus = virtio,size = 10:这是VM的镜像文件,大小以GB为单位指定我强迫vio驱动程序。 virtio驱动程序使用VirtIO协议为半虚拟设备提供支持服务。

如何从本地桌面连接到OpenBSD安装程序?

在本地桌面上执行以下命令:

# ssh -L 5900:127.0.0.1:5900 root@KVM-Server-IP-Here

或者

# ssh -L 5900:127.0.0.1:5900 -N -f -l root kvm-42.theitroad.local

使用VNC客户端连接到127.0.0.1:5900。
现在,只需按照屏幕上的说明进行操作:
通过VNC会话开始进行OpenBSD安装

重启安装程序之前,请确保为虚拟机设置了com0控制台。
例如,对于OpenBSD VM,将以下参数追加到文件/etc/boot.conf中,然后重新启动VM:stty com0 115200 set tty com0

OpenBSD安装完成后如何启动虚拟机?

virt-install将在/etc/libvirt/qemu/obsd-vm1.xml中为VM创建一个配置文件。
要启动名为obsd-vm1的VM,请执行:

# virsh start obsd-vm1

如何访问虚拟机控制台?

登录到KVM主机并执行以下命令:

# virsh console obsd-vm1

最后的示例:使用DVD创建RHEL VM

执行以下命令:

# virt-install \
--name RHEL-vm1 \
--description "theitroad.local RHEL 6.4 64 bit VM1" \
--ram=2048 \
--vcpus=2 \
--disk path=/var/lib/libvirt/images/rhel-vm1-theitroad.local.img,size=20 \
--cdrom /var/lib/libvirt/boot/RHEL.6.4.Server-DVD1.iso \
--network bridge:br0 --network bridge:br1 \
--graphics vnc

重启安装程序之前,请确保为虚拟机设置了com0控制台。
例如,对于RHEL/CentOS VM,将以下参数追加到/boot/grub.conf文件中的内核引导行,然后重新引导VM:console = tty0 console = ttyS1,19200n8