在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 y
2、启动并设置libvirtd服务开机自启动:
启动libvirtd服务:
systemctl start libvirtd
设置libvirtd服务开机自启动:
systemctl enable libvirtd
3、验证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 centos7
3、进入虚拟机控制台:
使用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提供了强大的虚拟化功能,允许你在单一的物理服务器上运行多个独立的操作系统实例,从而提高资源利用率和灵活性。