KVM 安装 CentOS
一、前言
KVM(Kernelbased Virtual Machine)是一种基于内核的虚拟机,通过将 Linux 转变为一个强大的虚拟化平台,使用户能够在一台物理主机上运行多个操作系统实例,本文将详细介绍如何在CentOS 7/9系统上安装和配置KVM,并创建第一个CentOS虚拟机。
二、检查硬件是否支持虚拟化
在进行KVM安装之前,首先需要确认CPU是否支持虚拟化技术(Intel VT或AMDV),可以使用以下命令进行检查:
egrep c '(vmx|svm)' /proc/cpuinfo
如果输出的数字大于0,说明CPU支持虚拟化。
三、安装KVM相关软件包
1、更新系统:
在开始之前,确保你的系统是最新的。
sudo yum update y
2、安装必要的软件包:
使用yum
命令安装KVM、libvirt和其他相关工具。
sudo yum install y epelrelease sudo yum install y qemukvm libvirt virtinstall bridgeutils libguestfstools virtmanager
3、启用并启动libvirtd服务:
安装完成后,启用并启动libvirtd服务以管理虚拟机。
sudo systemctl enable libvirtd sudo systemctl start libvirtd sudo systemctl status libvirtd
4、验证KVM模块加载:
使用以下命令查看KVM模块是否成功加载。
lsmod | grep kvm
四、配置桥接网络
默认情况下,由libvirtd配置基于dhcpd的网桥,你可以使用以下命令验证:
brctl show virsh netlist
所有虚拟机只能对同一台服务器上的其它虚拟机进行网络访问,为你创建的私有网络是192.168.122.0/24,验证:
virsh netdumpxml default
如果你希望你的虚拟机可用于LAN上的其他服务器,请在连接到你的LAN的服务器上设置一个网桥,更新你的网卡配置文件,如ifcfgens33或em1:
vi /etc/sysconfig/networkscripts/ifcfgens33
添加一行:
BRIDGE=br0
编辑/etc/sysconfig/networkscripts/ifcfgbr0
:
vi /etc/sysconfig/networkscripts/ifcfgbr0
添加以下内容:
DEVICE="br0" TYPE=Bridge ONBOOT=yes DEFROUTE=yes IPADDR=192.168.1.100 PREFIX=24 GATEWAYDEV=ens33 DNS1=8.8.8.8
重新启动网络服务:
sudo systemctl restart NetworkManager
用brctl命令验证它:
brctl show
五、创建第一个虚拟机
1、下载CentOS ISO镜像:
获取CentOS 7的ISO镜像并将其放置在指定目录中,我们将ISO文件放在/var/lib/libvirt/boot/
目录下。
cd /var/lib/libvirt/boot/ wget https://mirrors.kernel.org/centos/7.4.1708/isos/x86_64/CentOS7x86_64Minimal1708.iso
2、验证ISO镜像:
下载完成后,验证ISO文件的SHA256值是否正确。
wget https://mirrors.kernel.org/centos/7.4.1708/isos/x86_64/sha256sum.txt sha256sum c sha256sum.txt
3、创建虚拟机:
使用virtinstall
命令创建一个新的CentOS虚拟机,以下是示例命令:
virtinstall \ virttype=kvm \ name centos7 \ ram 2048 \ vcpus 1 \ 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
4、连接到虚拟机控制台:
从另一个终端通过SSH配置VNC登录,输入:
virsh dumpxml centos7 | grep vnc<graphics type='vnc' port='5901' autoport='yes' listen='127.0.0.1'>
记录下端口值(即5901),你需要使用SSH客户端来建立隧道和VNC客户端才能访问远程vnc服务器,在客户端系统中输入以下SSH端口转发命令:
ssh vivek@server1.cyberciti.biz L 5901:127.0.0.1:5901
一旦你建立了SSH隧道,你可以将你的VNC客户端指向你自己的127.0.0.1(localhost)地址和端口5901,如下所示:
你应该看到CentOS Linux 7客户虚拟机安装屏幕如下:现在只需按照屏幕说明进行操作并安装CentOS 7,一旦安装完成后,请继续并单击重启按钮,远程服务器关闭了我们的VNC客户端的连接,你可以通过KVM客户端重新连接,以配置服务器的其余部分,包括基于SSH的会话或防火墙。
六、常见问题及解决方法
1、问题:无法连接到虚拟机控制台:
确保SSH隧道已正确建立。
检查防火墙设置,确保允许VNC流量。
确认VNC端口号正确。
2、问题:虚拟机无法联网:
确认网桥接口配置正确。
检查虚拟机的网络配置,确保其设置为正确的网络模式。
使用virsh netlist
和brctl show
命令检查网络状态。
通过以上步骤,你已经成功在CentOS上安装了KVM,并创建了第一个虚拟机,KVM提供了强大的虚拟化功能,可以帮助你更高效地管理和利用服务器资源,你可以进一步探索更多高级功能,如自动备份、快照、迁移等,以满足不同的业务需求。