在CentOS 7上安装KVM(Kernelbased Virtual Machine)是一个涉及多个步骤的过程,包括验证CPU支持、安装必要的软件包、配置网络桥接以及创建虚拟机,以下是详细的步骤和解释:
一、安装前准备
1、验证CPU是否支持虚拟化:

运行以下命令以检查CPU是否支持Intel VT或AMDV虚拟化技术:
egrep '(vmx|svm)' /proc/cpuinfo 如果输出中包含vmx(Intel)或svm(AMD),则表示CPU支持虚拟化。
2、关闭SELinux:
查看SELinux状态:
getenforce 如果SELinux处于启用状态(Enforcing),则需要将其关闭或设置为Permissive模式,编辑/etc/selinux/config文件,将SELINUX=enforcing改为disabled或permissive,然后重启系统。
3、安装基本服务和工具(可选):

如果尚未安装,可以安装一些基本的服务和工具,如EPEL repository、networktools、vim等:
yum install epelrelease nettools vim y二、安装KVM及其依赖项
1、安装KVM相关软件包:
使用YUM命令安装KVM的核心组件、libvirt库及其Python绑定、virtinstall命令行工具等:
yum install @kvm y或者,可以单独安装所需的软件包:
yum install qemukvm libvirt libvirtpython virtinstall bridgeutils y2、启动并设置libvirtd服务开机自启动:
启动libvirtd服务:

systemctl start libvirtd设置libvirtd服务开机自启动:
systemctl enable libvirtd3、验证KVM模块是否加载:
运行以下命令以确认KVM模块已加载:
lsmod | grep kvm输出应类似如下,表示KVM模块已加载:
kvm_intel 170181 0
kvm 554609 1 kvm_intel
irqbypass 13503 1 kvm三、配置网络桥接
1、创建网桥接口:
默认情况下,libvirtd会配置基于DHCP的网桥,你可以使用以下命令验证网桥配置:
brctl show
virsh netlist all 所有虚拟机只能对同一台服务器上的其他虚拟机进行网络访问,私有网络通常为192.168.122.0/24。
2、配置网桥以允许LAN访问(可选):
如果你希望虚拟机能够访问局域网上的其他服务器,需要在连接到LAN的服务器上设置一个网桥,编辑网卡配置文件(如ifcfgenp3s0或ifcfgem1),添加BRIDGE=br0参数,并编辑/etc/sysconfig/networkscripts/ifcfgbr0文件以配置网桥:
vi /etc/sysconfig/networkscripts/ifcfgenp3s0
# 添加一行:
BRIDGE=br0
vi /etc/sysconfig/networkscripts/ifcfgbr0
# 添加以下内容:
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes重启网络服务:
systemctl restart NetworkManager四、创建虚拟机
1、准备操作系统安装镜像:
下载所需的操作系统ISO镜像文件,并将其放置在适当的目录中(如/var/lib/libvirt/boot/)。
2、创建虚拟机存储池和目录(可选):
创建用于存放虚拟机磁盘映像的目录:
mkdir p /var/lib/libvirt/images/3、使用virtinstall命令创建虚拟机:
运行以下命令以创建一个新的CentOS 7虚拟机,此示例创建一个具有2GB RAM、2个CPU核心、40GB磁盘空间的虚拟机,并使用VNC进行图形安装:
virtinstall \
virttype kvm \
name centos7 \
ram 2048 \
vcpus 2 \
osvariant centos7.0 \
cdrom /var/lib/libvirt/boot/CentOS7x86_64Minimal1708.iso \
network bridge=br0,model=virtio \
graphics vnc \
disk path=/var/lib/libvirt/images/centos7.qcow2,size=40,bus=virtio,format=qcow2 注意:graphics vnc参数允许你通过VNC客户端远程访问虚拟机的安装界面,你需要记录下VNC端口号(如5901),以便后续连接。
4、安装操作系统:
按照屏幕提示完成CentOS 7的安装过程,安装完成后,虚拟机将自动重启。
5、配置虚拟机网络(可选):
如果虚拟机未自动获取IP地址,你可以手动配置网络接口,编辑虚拟机的网络配置文件(如/etc/sysconfig/networkscripts/ifcfgeth0),设置静态IP地址、子网掩码和网关等。
五、管理虚拟机
1、列出所有虚拟机:
使用virsh list all命令列出所有虚拟机(包括运行中和关闭的)。
2、启动、关闭和重启虚拟机:
启动虚拟机:
virsh start centos7关闭虚拟机:
virsh shutdown centos7重启虚拟机:
virsh reboot centos73、进入虚拟机控制台:
使用virsh console centos7命令进入虚拟机的控制台界面。
4、克隆虚拟机(可选):
使用virtclone命令克隆现有的虚拟机,克隆名为njkvm07的虚拟机为njvm08:
virtclone o njvm08 n njvm09 f /var/lib/libvirt/images/njkvm07.img autoclone六、常见问题与解答
1、Q: 如何在CentOS7上卸载KVM?
A: 可以使用以下命令卸载KVM及其相关组件:
yum remove @kvm y或者,如果之前是单独安装的软件包,可以使用:
yum remove qemukvm libvirt libvirtpython virtinstall bridgeutils y注意:卸载KVM后,可能需要手动删除相关的虚拟机磁盘映像和配置文件。
2、Q: KVM虚拟机无法连接到网络怎么办?
A: 确保虚拟机的网络接口已正确配置,并且网桥接口(如br0)已正确设置并处于活动状态,可以使用brctl show和ifconfig命令检查网桥和网络接口的状态,如果问题仍然存在,请检查物理网络连接和路由器/交换机配置。
3、Q: 如何更改KVM虚拟机的资源配置(如CPU、内存和磁盘空间)?
A: 可以使用virtresize命令动态调整正在运行的虚拟机的CPU和内存资源,将名为centos7的虚拟机的CPU数量增加到4个,内存增加到4GB:
virtresize centos7 vcpus 4 balloon 4096 对于磁盘空间的调整,通常需要停止虚拟机,然后编辑其XML配置文件或使用qemuimg命令调整磁盘映像的大小,使用qemuimg resize /var/lib/libvirt/images/centos7.qcow2 +10G命令将磁盘映像大小增加10GB。
通过以上步骤,你可以在CentOS 7上成功安装、配置和管理KVM虚拟机,KVM提供了强大的虚拟化功能,允许你在单一的物理服务器上运行多个独立的操作系统实例,从而提高资源利用率和灵活性。
