KVM 介绍
KVM 是 Kernel-based Virtual Machine 的简称,是一个开源的系统虚拟化系统虚拟化模块,自 Linux 2.6.20 之后集成在 Linux 的各个主要发行版本中。它使用 Linux 自身的调度器进行管理,所以相对于 Xen,其核心源码很少。
KVM 本身不模拟任何硬件设备,它主要用于使能硬件提供的虚拟化能力,比如 Intel VT-x, AMD-V, ARM virtualization extensions 等。主板、内存及 I/O 等设备的模拟由用户态的 QEMU 完成。用户态 QEMU 配合内核KVM 模块共同完成虚拟机的硬件模拟,客户机操作系统运行在 QEMU 和 KVM 模拟的硬件上。
虚拟化组件
完整的 KVM 虚拟化环境由多组件配合:
「KVM:」 提供核心的虚拟化基础设施,使 Linux 系统成为一个 hypervisor,支持多个虚拟机同时在该主机上运行。 「QEMU:」 模拟处理器并提供一组设备模型,配合 KVM 实现基于硬件的虚拟化模拟加速。 「Libvirt:」 为管理虚拟机提供工具集,主要包含统一、稳定、开放的应用程序接口(API)、守护进程 (Libvirtd)和一个默认命令行管理工具(virsh)。 「Open vSwitch:」 为虚拟机提供虚拟网络的工具集,支持编程扩展,以及标准的管理接口和协议(如NetFlow, sFlow,IPFIX, RSPAN, CLI, LACP, 802.1ag)(可选,也可以使用 Linux 自身的网络)。
安装步骤
安装 Linux 操作系统
这里使用 openEuler 24.03 LTS-SP1 操作系统,安装 openEuler 环境可以直接查看下面这篇文章,这里就不再赘述了。
创建应用
双击打开桌面图标“我的模板”。
在我的模板中,找到之前已经创建好的 openEuler 的模板,点击“部署”。
填写好相关信息。
这时候在桌面上就可以看到创建中的应用的图标了。
基础环境配置
点击打开名为“kvm-node”的应用,完成接下来的配置。
修改主机名
双击桌面图标“kvm-node”。
输入账号密码,登录 openEuler 操作系统。
执行命令修改主机名,修改完主机名以后需要退出重新登录一下才生效。
hostnamectl set-hostname kvm-node
bash
关闭 SElinux 和防火墙。
临时关闭 SElinux。
setenforce 0
修改配置文件永久关闭。
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
cat /etc/selinux/config
关闭防火墙并设置为开机不启动。
systemctl stop firewalld
systemctl disable firewalld
配置软件源(可选)
openEuler 默认是官方在线源,如果觉得安装软件的速度慢,可以修改为华为云或阿里云的软件源地址。
sed -i "s@http://repo.openeuler.org/openEuler-24.03-LTS-SP1/@https://mirrors.aliyun.com/openeuler/openEuler-24.03-LTS-SP1/@g" /etc/yum.repos.d/openEuler.repo
dnf clean all
dnf makecache
安装虚拟化核心组件
安装 QEMU 组件。
yum install -y qemu
安装 libvirt 组件。
yum install -y libvirt
启动 libvirtd 服务并设为开机自启。
systemctl start libvirtd
systemctl enable libvirtd
验证安装
查看内核是否支持KVM虚拟化,即查看 /dev/kvm
和 /sys/module/kvm
文件是否存在。
ls /dev/kvm
ls /sys/module/kvm
确认 QEMU 是否安装成功。
rpm -qi qemu
确认 libvirt 是否安装成功。
rpm -qi libvirt
查看 libvirt 服务是否启动成功。
systemctl status libvirtd
创建虚拟机
创建磁盘文件
创建一个目录用于存储虚拟机的磁盘文件。
mkdir -p /data/images
cd /data/images
使用 qemu-img 工具的 create
命令,创建磁盘文件。
qemu-img create -f qcow2 openEuler-image.qcow2 40G
查询 openEuler-image.qcow2 镜像信息。
qemu-img info openEuler-image.qcow2
下载镜像文件
将 openEuler 的安装镜像文件下载到 /data/iso
目录中。
❝这里是示例在 KVM 中安装 openEuler 系统,所以下载的是 openEuler 的镜像,需要安装什么系统就下载什么镜像。
❞
mkdir -p /data/iso
cd /data/iso
wget https://cloud.grbj.cn/d/%E7%B3%BB%E7%BB%9F%E9%95%9C%E5%83%8F/Linux/openEuler-24.03-LTS-x86_64-dvd.iso?sign=jpm5p1JJXIxDVq_geQVNmTM4cL_MygMhWI541j8BVZo=:0 --no-check-certificate -O openEuler-24.03-LTS-x86_64-dvd.iso
ls -l
准备虚拟化网络
创建桥接网络
❝此处以创建 br0 桥接网卡并绑定物理网卡为例。
❞
创建名为 br0 的桥接网卡。
nmcli connection add ifname br0 type bridge con-name br0
查看物理网卡名称。
ifconfig
桥接网卡与物理网卡进行绑定。
nmcli connection add type bridge-slave ifname enp1s0 master br0
配置 br0 的 IP 地址,IP 地址自定义。
nmcli con modify br0 ipv4.address 192.168.100.1/24 ipv4.method manual autoconnect yes
重启 br0 网卡。
nmcli device disconnect br0;nmcli connection up id br0
查看 br0 网卡 IP 配置。
ifconfig br0
创建 NAT 网络
❝此处以基于 default 网卡创建 nat01 网络为例。
❞
查看存在的虚拟网络。
virsh net-list --all
以 default 网络为模板创建虚拟网络 nat01 的配置文件。
virsh net-dumpxml default > /etc/libvirt/qemu/networks/nat01.xml
使用 vim 编辑器,修改配置文件,删除其中的 UUID 和 MAC,并且修改 IP 和名称。
vim /etc/libvirt/qemu/networks/nat01.xml
定义虚拟网络 nat01,设置为自启动并启动网络。
virsh net-define /etc/libvirt/qemu/networks/nat01.xml
virsh net-autostart nat01
virsh net-start nat01
查看虚拟网络。
virsh net-list --all
创建虚拟机
❝此处以创建一台 openEuler 的虚拟机为例,给虚拟机配置两张网卡,网卡一使用 NAT 网络 nat01,网卡二使用桥接网络 br0。
❞
使用 virt-install
命令创建虚拟机。
virt-install --name openEuler --ram=8192 --vcpus=4 --cpu host-model,+vmx --sysinfo host --disk path=/data/images/openEuler-image.qcow2 --cdrom=/data/iso/openEuler-24.03-LTS-x86_64-dvd.iso --network network=nat01,model=e1000 --network bridge=br0,model=e1000 --boot cdrom --vnclisten=0.0.0.0 --vncport=5901 --vnc --noautoconsole --osinfo=linux2022
virt-install [选项] [参数]
选项:
--name 设置虚拟机名称
--ram 分配内存大小
--vcpus 分配vcpu数量
--cpu CPU型号及特点
--sysinfo 配置SMBIOS系统信息
--disk 使用指定的存储
--cdrom CD-ROM安装介质
--network 配置网络接口
--boot 配置启动设置
--vnclisten vnc监听ip
--vncport vnc监听端口
--vnc 配置vnc连接
--noautoconsole 不要自动尝试连接
--osinfo 操作系统信息
❝给虚拟机安装操作系统就是安装 openEuler 操作系统,所以步骤省略。
❞
虚拟机生命周期管理
查看所有虚拟机。
virsh list --all
查看指定虚拟机的信息。
virsh dominfo openEuler
查看虚拟机网卡信息。
virsh domiflist openEueler
关闭虚拟机。
virsh destroy openEuler
virsh list --all
启动虚拟机。
virsh start openEuler
virsh list --all
虚拟机打快照。
virsh snapshot-create openEuler
查看虚拟机快照。
virsh snapshot-list openEuler
删除虚拟机快照。
virsh snapshot-delete openEuler 1744552470
删除虚拟机。
virsh destroy openEuler
virsh undefine openEuler
virsh list --all
本文至此结束。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://zblog.hqyman.cn/post/10519.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~