RHEL/CentOS 6.x KVM虚拟化安装和配置指南
如何在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