yum install qemu-kvm libvirt libvirt-python virt-install bridge-utils
。完成安装后,启动并设置开机自启服务:systemctl enable --now libvirtd
和systemctl start libvirtd
。CentOS7安装KVM服务器
KVM(Kernel-based Virtual Machine)是一种基于Linux内核的虚拟机技术,它将Linux转换成一个强大的虚拟化平台,本文将详细介绍如何在CentOS7操作系统上安装和配置KVM服务器,包括必要的软件安装、网络配置、虚拟机创建等步骤。
一、检查CPU是否支持虚拟化
在开始之前,我们需要确认服务器的CPU是否支持虚拟化技术(Intel VT或AMD-V),可以使用以下命令进行检查:
lscpu | grep Virtualization
如果输出包含vmx
(Intel)或svm
(AMD),则表示CPU支持虚拟化技术。
二、关闭SELinux
SELinux可能会干扰KVM的正常运作,建议临时关闭SELinux:
sudo setenforce 0
要永久关闭SELinux,可以编辑/etc/selinux/config
文件,将SELINUX=enforcing
改为SELINUX=disabled
,然后重启系统。
三、安装KVM相关软件包
使用以下yum命令安装KVM所需的软件包:
sudo yum install -y qemu-kvm libvirt libvirt-python libguestfs-tools virt-install
四、启动并设置libvirtd服务
启动libvirtd服务,并设置其开机自启:
sudo systemctl start libvirtd sudo systemctl enable libvirtd
五、确认KVM模块加载
使用以下命令确认KVM模块已成功加载:
lsmod | grep kvm
如果输出中包含kvm_intel
或kvm_amd
,则说明KVM模块已成功加载。
六、配置桥接网络
默认情况下,libvirtd会配置一个基于dhcpcd的网桥,你可以使用以下命令验证:
brctl show virsh net-list
所有虚拟机只能对同一台服务器上的其他虚拟机进行网络访问,如果你希望你的虚拟机可用于LAN上的其他服务器,请在连接到你的LAN的服务器上设置一个网桥,更新你的网卡配置文件,如ifcfg-ens33或em1:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
添加一行:
BRIDGE=br0
使用vi保存并关闭文件,编辑/etc/sysconfig/network-scripts/ifcfg-br0
:
vi /etc/sysconfig/network-scripts/ifcfg-br0
添加以下内容:
DEVICE="br0" TYPE="Bridge" BOOTPROTO="dhcp" ONBOOT="yes" IPV6INIT="yes" IPV6_AUTOCONF="yes"
重新启动网络服务(警告:ssh命令将断开连接,最好重新启动该设备):
sudo systemctl restart NetworkManager
用brctl命令验证它:
brctl show
七、创建第一个虚拟机
获取CentOS 7.x最新的ISO镜像:
cd /var/lib/libvirt/boot/ wget https://mirrors.kernel.org/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso
验证ISO镜像:
wget https://mirrors.kernel.org/centos/7.4.1708/isos/x86_64/sha256sum.txt sha256sum -c sha256sum.txt
创建CentOS 7.x虚拟机:
virt-install \ --virt-type=kvm \ --name centos7 \ --ram 2048 \ --vcpus=1 \ --os-variant=centos7.0 \ --cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-Minimal-1708.iso \ --network=bridge=br0,model=virtio \ --graphics vnc \ --disk path=/var/lib/libvirt/images/centos7.qcow2,size=40,format=qcow2
从另一个终端通过ssh配置vnc登录,输入:
virsh dumpxml centos7 | grep <graphics type='vnc' port='5901' autoport='yes' listen='127.0.0.1'/>
请记录下端口值(即5901),你需要使用SSH客户端来建立隧道和VNC客户端才能访问远程vnc服务器,在客户端/桌面/macbook pro系统中输入以下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 的会话或防火墙。
八、使用云镜像创建虚拟机
对于需要部署大量虚拟机的场景,可以使用云镜像,创建一个带有1024MB RAM,20GB磁盘空间和1个vCPU的CentOS 7虚拟机:
获取CentOS 7云镜像 cd /var/lib/libvirt/boot wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2 创建所需的目录 D=/var/lib/libvirt/images VM=centos7-vm1 mkdir -p $D/{$VM} 创建虚拟机 virt-install --name $VM \ --ram 1024 \ --vcpus 1 \ --os-variant generic \ --disk path=$D/$VM.qcow2,size=20 \ --network bridge=br0,model=virtio \ --graphics none \ --import
九、常见问题及解决方法
1、问题:无法启动libvirtd服务
解决方法:检查是否有其他服务占用了KVM所需的端口,或者查看日志文件(/var/log/libvirtd/libvirtd.log
)以获取更多信息。
2、问题:虚拟机无法连接到网络
解决方法:检查主机的网络配置和网桥设置,确保网桥已正确配置并启动。
3、问题:安装过程中出现依赖错误
解决方法:尝试更新系统的软件包列表并重新安装所需的软件包。
希望本文能帮助你在CentOS7上顺利安装和配置KVM服务器,如有其他疑问,欢迎随时提问。