CentOS 7.9操作系统部署KVM软件和配置指南,包括如何创建一个虚拟机。
步骤 1: 检查硬件支持
首先,确认您的CPU支持虚拟化技术,并且已在BIOS中启用:
egrep -c '(vmx|svm)' /proc/cpuinfo
如果输出大于0,则表示支持虚拟化。
步骤 2: 安装KVM及相关工具
-
1.更新软件包列表:
yum update -y
-
2.安装KVM及相关工具:
yum groupinstall "Virtualization Host" -y
yum install qemu-kvm libvirt virt-install virt-viewer -y
-
3.启动并设置开机启用libvirtd服务:
systemctl start libvirtdsystemctl enable libvirtd
-
4.验证安装是否成功:
virsh list --all
如果命令执行没有错误信息,说明安装成功。
步骤 3: 创建虚拟机
您可以使用virt-install命令行工具或virt-manager图形界面来创建虚拟机。这里我先介绍命令行方式:
使用virt-install创建虚拟机
提前上传IOS文件到/home/vm_ios目录下
virt-install \--name= syty-k8s-vm \--memory= 16384 \--vcpus=8 \--disk path= /home/vm-disk/centos7-vm.qcow2,size=100 \--network network=default \--os-type=linux \--os-variant= rhel7.0 \--cdrom= /home/vm_ios/CentOS-7-x86_64-DVD-2009.iso \--graphics vnc,listen=0.0.0.0 \--noautoconsole
请根据实际情况修改参数,如内存大小、CPU核心数、磁盘路径、网络配置、操作系统类型及变体等。此命令会创建一个名为syty-k8s-vm的虚拟机,分配16GB内存和8个CPU核心,使用100GB的磁盘空间,并通过VNC提供图形界面支持。
查看syty-k8s-vm虚拟机VNC端口号:
virsh dumpxml syty-k8s-vm | grep vnc
使用VNC连接上之后接着按指示装系统。
注意事项
- 资源分配:确保为新的虚拟机合理分配资源,以免影响现有服务的性能。
- 网络配置:默认情况下,KVM会创建NAT网络。如果需要更复杂的网络设置,如桥接网络,请参考之前的建议进行配置。
安装好之后查看新创建的虚拟机
virsh list --all
修改虚拟机网络,使其支持桥接
- 先修改宿主机网络,创建br0桥接网卡。
我的宿主机目前用的是em1这个网卡,
接下来备份这个网卡配置文件
cp /etc/sysconfig/network-scripts/ifcfg-em1 /etc/sysconfig/network-scripts/ifcfg-em1-2-12
查看宿主机网卡当前配置
[root@store ~]# cat /etc/sysconfig/network-scripts/ifcfg-em1TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=em1DEVICE=em1ONBOOT=yesIPADDR=xxxxxxxxxxxNETMASK=255.255.255.0#GATEWAY=xxxxxxxDNS1=xxxxxx
按照下列信息修改/etc/sysconfig/network-scripts/ifcfg-em1网卡配置文件
[root@store ~]# cat /etc/sysconfig/network-scripts/ifcfg-em1TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=noneDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=em1DEVICE=em1ONBOOT=yesBRIDGE=br0 #桥接网卡名
创建桥接网卡配置文件将原先ifcfg-em1网卡配置文件的IP信息写到ifcfg-br0中
[root@store ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0DEVICE=br0TYPE=BridgeBOOTPROTO=staticIPADDR=xxxxxxNETMASK=255.255.255.0#GATEWAY=xxxxxxx # 如果需要,取消注释并填写正确的网关地址DNS1=xxxxxxxxxONBOOT=yesDELAY=0
然后重启网络
systemctl restart network
查看网络状态
systemctl status network
输入ifconfig发现em1已经没有IP信息了,并且出现了br0这个桥接网卡名称
- 修改虚拟机配置
如果虚拟机开着机,那就先关机
virsh stop syty-k8s-vm
关机后编辑虚拟机
virsh edit syty-k8s-vm
修改虚拟机关于网卡配置那部分
<interface type='bridge'><mac address='52:54:00:28:30:0e'/><source bridge='br0'/><model type='virtio'/><address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/></interface>
修改后开启虚拟机
virsh start syty-k8s-vm
修改虚拟机IP为静态
TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="static"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"IPV6_ADDR_GEN_MODE="stable-privacy"NAME="eth0"UUID="ac2141c8-5eb5-4993-ad5d-3a27296d0fb3"DEVICE="eth0"ONBOOT="yes"IPV6_PRIVACY="no"IPADDR="xxxxx"NETMASK="255.255.255.0"GATEWAY="xxxxxx"DNS1="xxxxxxxxxx"
最后一步ping一下百度域名看看能不能访问外网并正确解析
备份原有的CentOS-Base.repo文件
原有的默认源仓库地址已经无法访问,需要修改成其他可用源
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
下列以阿里云为例
[root@syty-11-103 ~]# cat /etc/yum.repos.d/CentOS-Base.repo[base]name=CentOS-$releasever - Base - mirrors.aliyun.comfailovermethod=prioritybaseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/gpgcheck=1gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#released updates[updates]name=CentOS-$releasever - Updates - mirrors.aliyun.comfailovermethod=prioritybaseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/gpgcheck=1gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#additional packages that may be useful[extras]name=CentOS-$releasever - Extras - mirrors.aliyun.comfailovermethod=prioritybaseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/gpgcheck=1gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#additional packages that extend functionality of existing packages[centosplus]name=CentOS-$releasever - Plus - mirrors.aliyun.comfailovermethod=prioritybaseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/gpgcheck=1enabled=0gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#contrib - packages by Centos Users[contrib]name=CentOS-$releasever - Contrib - mirrors.aliyun.comfailovermethod=prioritybaseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/gpgcheck=1enabled=0gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
清除Yum缓存并重新生成缓存
yum clean allyum makecache
安装vim工具
能正常安装说明配置的阿里云源仓库地址没问题。自此KVM虚拟机可用。