kvm-虚拟化搭建
2026/9/15 4:58:49 网站建设 项目流程

kvm解释:就是把1台主机分成多个你需要的小主机,就是虚拟化。
一、基础环境

1、操作系统(基于麒麟sp3)

[root@dksyb-107 ~]# cat /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Lance)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Lance)"
ANSI_COLOR="0;31"

2、安装常用软件

2.1增加epal源

wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

2.2安装常用命令

yum -y install tree lrzsz wget net-tools unzip

3、关闭防火墙和selinux,防止访问限制

3.1永久关闭防火墙

systemctl disable --now firewalld

3.2关闭selinux

临时关闭
setenforce 0
永久关闭重启生效
sed -i '/^SELIN/s#enforcing#disabled#g' /etc/selinux/config

二、部署kvm虚拟化

1、安装kvm相关软件(yml安装,需要通外网)

1.1安装命令

yum install libvirt* virt-* qemu-kvm* cockpit* -y
软件功能解释
libvirt 作⽤:管理kvm虚拟机的⽣命周期,启动,暂停,关机,销毁
virt⼯具集 virt-install virt-clone 作⽤:虚拟机的安装和克隆⼯具
qemu-kvm 作⽤:为kvm虚拟机提供虚拟磁盘
cockpit作用:提供桌面化管理

2、增加开机启动并启动服务

systemctl enable --now libvirtd cockpit.socket

3、安装桥接工具

3.1 常用模式,桥接(bridge)模式和net模式介绍

桥接(bridge)模式:宿主机需要手动创建桥接网卡,使用桥接模式,就可在整个主机局域网内连接此虚拟机(就是创建完虚拟机,只要在服务器这个网络环境中的所有主机都能连上这台虚拟机)。
net模式:宿主就自动创建网桥网卡,使用net模式,可以在宿主机上远程该宿主机创建的虚拟机。

3.2 安装桥接服务

yum -y install bridge-utils

4、创建桥接网卡(临时使用,想要直接固定,直接跳过,走第5步就行了)

4.1 新建桥接网卡

brctl addbr br0

4.2 将物理网卡加入桥接接口(可以理解为这个桥接网卡就是个路由器,把物理网卡的ip配在了桥接网卡)

sudo brctl addif br0 enp125s0f3

4.3配置桥接接口--此时肯定网卡会断开连接显示器继续操作

4.3.1 删除宿主机网卡ip配置

ip addr del dev enp125s0f3 192.168.1.107/24

4.3.2 将宿主机网卡配置写到桥接网卡上

ip addr add 192.168.1.107/24 dev br0

4.3.3 启用桥接网卡

ip link set up br0

4.3.4 增加路由

route add default gw 192.168.1.252 br0

5、固定桥接网卡配置

5.1 新增桥接网卡配置文件

cat >/etc/sysconfig/network-scripts/ifcfg-br0<< EOF
TYPE=Bridge
BOOTPROTO=static
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.1.107
NETMASK=255.255.255.0
GATEWAY=192.168.1.252
STP=yes # 开启 STP(yes 开启,no 关闭)
DELAY=0 # 网桥启动延迟(可选,0 表示无延迟)
EOF

5.2 修改宿主机网卡配置文件

cat >/etc/sysconfig/network-scripts/ifcfg-enp125s0f3<< EOF
TYPE=Ethernet
NAME=enp125s0f3
DEVICE=enp125s0f3
ONBOOT=yes
BRIDGE=br0
EOF

5.3 重启网卡服务,确认桥接状态

systemctl restart network.service

查看桥接网络状态

brctl show

三、创建虚拟机

1、上传所需镜像

采用rz,tftp等等工具都可以

2、登录cockpit桌面管理工具看看

2.1 默认登录信息:https://192.168.1.107:9090/(宿主机ip:9090)

2.2 填写宿主机的ssh的用户名和密码

2.3 不用管这个码,直接点登录就行

2.4 功能很多,能查看系统信息,系统服务等等等,但是我们主要研究虚拟机这个模块,但是sp3对应这个cockpit版本太低,我一般只用于桌面化安装系统,启停虚拟机,修改虚拟机配置等

2.5 简单介绍下,我们用命令创建虚拟机,不用cockpit桌面创建

3、命令创建虚拟机,以欧拉系统为例

3.1 创建虚拟机,有两种镜像模式qcow2(常用),raw,以下是区别

!!!一般云厂商都用qcow2模式
大白话介绍开始

3.1.1 区别1-磁盘:

raw是创建虚拟机分1T就固定用1T,别人不能用这1T空间了。
qcow2是创建虚拟机分1T,最大用1T,但是宿主机还是能使用你这1T空间的

3.1.2 区别2-扩容

qcow2支持扩容cpu、内存,raw我不清楚。
磁盘扩容两者都支持,qcow2 更灵活(支持缩容)

3.1.3 快照

qcow2支持快照和克隆。raw原生不支持,操作起来麻烦(啥叫原生,简单的说就是在这个服务的基础上不行,借助别的服务行。)

3.1.4 raw唯一好处

就是理论上读写性能比qcow2好那么一内内

3.2 创建虚拟机命令。(使用命令的时候,把\后注释啥的都删除了,别把\删了,换行的意思,删了不行)注意一点,你的宿主机是arm64架构的,上面最好安装arm64架构的虚拟机,安装x86-64架构的会报错

virt-install --virt-type kvm \ #安虚拟机,虚拟化类型是kvm
--os-type linux \ #操作系统类型是linux
--os-variant generic \ #系统版本(generic是通用系统,只要linux系统写他就行)
--name zhanglu \ #虚拟机名称
--memory 98304 \ #内存大小,默认是M
--vcpus 32 \ #cpu
--disk path=/kvm/openEuler/openeuler1.qcow2,format=qcow2,size=800 \ #虚拟机存放位置(必须要有这个目录),虚拟机镜像文件类型,存储大小默认是g
--cdrom /kvm/iso/openEuler-24.03-LTS-SP2-aarch64-dvd.iso \ #系统镜像位置
--network bridge=br0,model=virtio \ #使用网卡信息
--graphics vnc,listen=0.0.0.0 \ #默认
--noautoconsole #就这样写就行了

3.3 常见问题

问题1. error 选项,安装目录错了

3.4 用cockpit页面安装系统,这大家都会了吧,装系统就略过了昂


consoles 桌面控制装系统

3.5 内存、cpu、扩缩容

四、常见问题处理方法

1、虚拟机无法远程问题处理(与docker公用时)

# 在宿主机执行

sysctl net.bridge.bridge-nf-call-iptables

# 应输出0(禁用桥接流量的iptables过滤)

# 若输出1,临时禁用:

sysctl -w net.bridge.bridge-nf-call-iptables=0

# 永久禁用:

echo "net.bridge.bridge-nf-call-iptables=0" >> /etc/sysctl.conf

sysctl -p

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询