CentOS 7操作系统部署KVM软件和创建虚拟机

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 libvirtd

systemctl 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

修改虚拟机网络,使其支持桥接

  1. 先修改宿主机网络,创建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-em1

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=em1

DEVICE=em1

ONBOOT=yes

IPADDR=xxxxxxxxxxx

NETMASK=255.255.255.0

#GATEWAY=xxxxxxx

DNS1=xxxxxx

按照下列信息修改/etc/sysconfig/network-scripts/ifcfg-em1网卡配置文件

复制代码
[root@store ~]# cat /etc/sysconfig/network-scripts/ifcfg-em1

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=none

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=em1

DEVICE=em1

ONBOOT=yes

BRIDGE=br0 #桥接网卡名

创建桥接网卡配置文件将原先ifcfg-em1网卡配置文件的IP信息写到ifcfg-br0中

复制代码
[root@store ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0

TYPE=Bridge

BOOTPROTO=static

IPADDR=xxxxxx

NETMASK=255.255.255.0

#GATEWAY=xxxxxxx  # 如果需要,取消注释并填写正确的网关地址

DNS1=xxxxxxxxx

ONBOOT=yes

DELAY=0

然后重启网络

复制代码
systemctl restart network

查看网络状态

复制代码
systemctl status network

输入ifconfig发现em1已经没有IP信息了,并且出现了br0这个桥接网卡名称

  1. 修改虚拟机配置

如果虚拟机开着机,那就先关机

复制代码
virsh shutdown 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

下列以阿里云为例

bash 复制代码
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
baseurl=https://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
baseurl=https://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
baseurl=https://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

清除Yum缓存并重新生成缓存

复制代码
yum clean all

yum makecache

安装vim工具

能正常安装说明配置的阿里云源仓库地址没问题。自此KVM虚拟机可用。

相关推荐
rqtz21 分钟前
【Linux-shell】探索Dialog 工具在 Shell 图形化编程中的高效范式重构
linux·运维·重构
行止642 分钟前
LVS+Keepalived高可用群集
linux·lvs·keepalived
风清再凯43 分钟前
docker基础入门于应用的实践
运维·docker·容器
未来并未来1 小时前
解锁微服务潜能:深入浅出 Nacos
运维·微服务·架构
风好衣轻1 小时前
【环境配置】在Ubuntu Server上安装5090 PyTorch环境
linux·pytorch·ubuntu
华清远见成都中心2 小时前
Linux嵌入式和单片机嵌入式的区别?
linux·运维·单片机·嵌入式
lisanmengmeng2 小时前
rabbitMQ 高可用
linux·分布式·rabbitmq
小妖6663 小时前
ubuntu 22.04 更换阿里源 (wsl2 参照)
linux·运维·ubuntu
凉、介3 小时前
SylixOS 下的消息队列
linux·wpf·sylixos