Kylin麒麟操作系统服务部署 | KVM虚拟化

以下所使用的环境为:
虚拟化软件:VMware Workstation 17 Pro
麒麟系统版本:Kylin-Server-V10-SP3-2403-Release-20240426-x86_64

一、虚拟化介绍

虚拟化是指创建虚拟资源,例如:服务器、桌面、操作系统、文件、存储或网络。虚拟化的主要目标是通过从根本上改变传统计算来管理工作负载,从而使其具有可扩展性。目前企业应用比较多的就是虚拟化,包括:服务器虚拟化、桌面虚拟化、应用虚拟化,而虚拟化技术实现资源的逻辑抽象和统一表示。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

1. 主机虚拟化

  • 应用程序运行环境强隔离
  • 虚拟机操作系统和底层操作系统无关化
  • 虚拟机内部操作不会影响到物理机
  • 拥有操作系统会占用部署资源及存储
  • 网络传输效率低
  • 当应用程序需要调用硬件响应用户访问时间延迟大

2. 容器虚拟化

  • 可以实现应用程序的隔离
  • 直接使用物理机的操作系统可以快速响应用户请求
  • 不占用部署时间
  • 占用少量磁盘空间
  • 学习成本增加、操作控制麻烦、网络控制和主机虚拟化有区别

二、VMware虚拟化

VMware虚拟机与其它虚拟化一样是一个逻辑的计算机,可以运行受支持的客户端操作系统和应用程序的虚拟硬件集。从本质上来说或从存储的角度来看,是一组离散的文件。

虚拟机的文件包括

  • **.vmx:**虚拟机配置文件(文本文件)
  • **.nvram:**虚拟机BIOS文件(二进制文件)
  • **.vmdk:**虚拟磁盘描述文件(仅描述信息)
  • **-flat.vmdk:**虚拟磁盘数据文件(实际数据)
  • **-rdm.vmdk:**裸设备映射虚拟磁盘文件
  • **.vswp/vmx-*.vswp:**vmkernel swap文件,也叫虚拟机交换文件
  • **.vmtx:**模板的配置文件(文本文件)
  • **.vmsd/.vmsn/-delta.vmdk:**虚拟机快照文件及磁盘delta数据文件
  • **.log:**虚拟机日志文件
  • **.vmss:**挂起状态文件

三、KVM概述

KVM是基于内核的虚拟机,是基于虚拟化扩展的X86硬件的开源Linux原生的全虚拟化方案(要求CPU支持 Intel-VT-x 或 AMD-V)。KVM内嵌于内核模块中,模拟处理器和内存以支持虚拟机运行。虚拟机被实现为常规的Linux进程,由标准Linux调度程序进行调度虚拟机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KVM 能够使用 Linux 内核的已有功能,但 KVM 本身不执行任何模拟。需要客户空间程序(虚拟机)通过/dev/kvm(此虚拟设备需要开起硬件辅助虚拟化才能看到)接口设置一个客户机虚拟服务器的地址空间,并且由 Qemu 模拟 I/O(ioctl)进行调度资源和维护管理。

KVM虚拟化架构的三种模式

  • 客户模式(guestOS)
    • VM中的操作系统为GuestOS,客户机在操作系统中运行的模式,客户机分为内核模式和用户模式
  • 用户模式
    • 为用户提供虚拟机管理的用户空间工具以及代表用户执行I/O,Qemu工作在此模式下(Qemu的主要功能)
  • Linux内核模式
    • 模拟CPU、内存,实现客户模式切换,处理从客户模式的退出,KVM运行在此模式下

四、KVM安装

1. 检查本机CPU是否支持虚拟化

  • intel:最新Linux内核的Intel处理器(含VT虚拟化技术)vmx nx lm
  • AMD:含SVM安全虚拟机技术的AMD处理器,也叫 AMD-V svm nx lm

查看本机CPU是否支持虚拟化,在输出的内容中包含“svm”是AMD处理器虚拟机技术标志;“vmx”是Intel处理器虚拟机技术标志

egrep "(vmx|svm)" /proc/cpuinfo

在这里插入图片描述

如果是在VMware虚拟环境下,可以查看是否勾选【虚拟化 Intel VT-x/EPT 或 AMD-V/RVI(V)】

在这里插入图片描述

2. 安装虚拟化组软件包

列出本机所有的软件包组

yum grouplist

在这里插入图片描述

安装【Virtualization Host】虚拟化主机软件包组

yum groupinstall -y "Virtualization Host"

3. 安装虚拟化管理工具

virsh是用于管理虚拟化环境中客户机和Hypervisor的命令工具,是libvirt-client软件包提供的。virsh使用起来virt-manager命令十分类似,都是系统管理员通过脚本程序实现虚拟化自动部署和管理工具。

yum provides virsh

在这里插入图片描述

virt-manager是一个类似于VMware的一个图形界面的虚拟机管理器,在安装软件包组的时候默认不安装,需要额外安装

yum install -y virt-manager

在这里插入图片描述

4. 安装Web控制台cockpit

Web控制台旨在管理和监视本地系统以及位于网络环境中的Linux服务器。Web控制台可以执行多种管理任务,包括:

  • 管理服务、用户账户
  • 管理和监视系统服务
  • 配置网络接口和防火墙
  • 查看系统日志
  • 管理虚拟机
  • 创建诊断报告、设置内核转储设置
  • 配置SELinux、更新软件和管理系统订阅

查看Web控制台是否安装

yum info cockpit

在这里插入图片描述

cockpit的每个功能可以理解为是一个组件

yum search cockpit

在这里插入图片描述

安装cockpit-machines

yum install -y cockpit-machines

启动cockpit服务,然后访问Web控制台

systemctl status cockpit.service
http://localhost.com

在这里插入图片描述

在这里插入图片描述

五、新建虚拟机

安装虚拟化客户操作系统的UI界面

yum install -y virt-viewer

1. 通过虚拟机管理器(Virtu-manager)新建虚拟机

[Step1]: 启动Virtual Machine Manager有两种方式打开

在这里插入图片描述

[Step2]: 新建虚拟机:选择如何安装操作系统

在这里插入图片描述

[Step3]: 新建虚拟机:设置虚拟机的安装光盘和安装系统类型

在这里插入图片描述

[Step4]: 新建虚拟机:设置虚拟机的内存和CPU

在这里插入图片描述

[Ste5]: 新建虚拟机:设置虚拟机的磁盘

在这里插入图片描述

[Ste6]: 新建虚拟机:设置虚拟机的名称及网络

在这里插入图片描述

[Ste7]: 新建虚拟机:等待虚拟机的创建

在这里插入图片描述

5.2 通过cockpit新建虚拟机

[Step1]: 安装virt-install软件包

yum install -y virt-install

[Step2]: 登录cockpit

在这里插入图片描述

[Step3]: 创建虚拟机

在这里插入图片描述

[Step4]: 填写相关参数

在这里插入图片描述

[Step5]: 稍等片刻后,会出现VNC控制台,然后按照提示继续下一步安装即可

在这里插入图片描述

3. 通过virt-install命令创建虚拟机

[Step1]: 创建虚拟机使用 virt-install 命令

virt-install --name server03 --memory 2048 --vcpus 2 --disk size=20 --os-variant kylin10.0 --cdrom /dev/sr0 --graphics vnc,port=5980,password=Kylin2024 --network network=default
  • **–name server03:**指定创建的虚拟机名称
  • **–memory 2048:**内存容量,默认单位是MB
  • **–vcpus 2:**虚拟机CPU的数量,不可能超过主机的核心数
  • **–disk size:**虚拟机的磁盘容量,默认单位GB
  • **–os-variant Kylin10.0:**虚拟机系统版本
  • **–cdrom:**指定光驱中的光盘
  • **–graphics vnc,port=5980,password=Kylin2024:**VNC设置
  • **–network network=default:**网络设置

六、KVM管理工具(virsh命令)

获取服务器主机的内存信息

virsh nodememstats

在这里插入图片描述

获取客户端虚拟机监控程序的CPU信息

virsh nodecpustats

在这里插入图片描述

获取客户端虚拟机的数量信息

在这里插入图片描述

获取可用于客户端的所有网络信息

在这里插入图片描述

虚拟机的启停

virsh start server01			# 开启虚拟机
virsh reboot server01			# 重启虚拟机,前提是虚拟机必须是启动状态
virsh shutdown server01			# 关闭虚拟机
virsh destroy server01			# 强制关闭虚拟机
virsh suspend --domain server01	# 挂起虚拟机
virsh resume --domain server01	# 恢复虚拟机

七、虚拟机模板

1.模板概述和作用

模板类似于生活中的模具,可以工具模具制作出很多一模一样的产品。在KVM中,虚拟机模板同样可以批量生成虚拟机。缩短部署时间,提高工作效率。

2.生成虚拟机模板

[Step1]: 关闭虚拟机,这里以server01为例

virsh shutdown server01

在这里插入图片描述

[Step2]: 以server01为模板生成虚拟机server04

cd /var/lib/libvirt/images/
cp server01.qcow2 server04.qcow2		# 其实可以将qcow2文件理解为就是虚拟机
virt-install --name server04 --memory 2048 --vcpus 2 --disk /var/lib/libvirt/images/server04.qcow2,bus=virtio,format=qcow2 --import --os-variant kylin10.0 --network network=default	# 生成虚拟机

八、虚拟机快照管理

虚拟机快照的创建方式有两种

  • LVM快照
  • 基于qcow2磁盘格式创建快照

1. 基于KVM的虚拟机快照

KVM快照是基于LVM快照来实现的,虚拟机使用的是快照盘,还原虚拟机就是基于原盘再做一次快照,继续使用快照即可。

[Step1]: 关闭虚拟机,此处以server01为例

virsh shutdown server01

在这里插入图片描述

[Step2]: 新建了1块硬盘50G硬盘

lsblk

在这里插入图片描述

[Step3]: 创建物理卷设备,将三块硬盘加入到物理卷

pvcreate /dev/sdb

[Step4]: 创建卷组myvg,将sdb加入到卷组中

vgcreate myvg /dev/

[Step5]: 创建逻辑卷mylv,逻辑卷大小为myvg全部大小

lvcreate -n mylv -L 40G myvg

在这里插入图片描述

[Step6]: 格式化硬盘,新建挂载点/kvm_snap

mkdir /kvm_snap
mkfs.ext4 /dev/myvg/mylv
mount /dev/myvg/mylv /kvm_snap/

在这里插入图片描述

[Step7]: 对逻辑卷mylv生成快照

lvcreate -n mylv_snap -L 40G -s /dev/myvg/mylv

2. KVM自带的快照功能

创建快照的命令:snapshot-create-as

[Step1]: 为虚拟机server01新建快照 server01_bak

virsh snapshot-create-as server01 server01_bak
  • **virsh snapshot-create-as:**新建快照
  • **server01:**虚拟机名称
  • **server01_bak:**虚拟机快照名

在这里插入图片描述

[Step2]: 查看指定虚拟机的快照

virsh snapshot-list server01
  • **virsh snapshot-list:**查看虚拟机的所有快照
  • **server01:**虚拟机名称

在这里插入图片描述

[Step3]: 查看快照信息

virsh snapshot-info --doamin server01 --snapshotname server01_bak
  • **virsh snapshot-info:**查看快照的信息
  • **–domain server01:**虚拟机名称
  • **–snapshotname server01_bak:**快照名称

在这里插入图片描述

[Step4]: 还原快照

virsh snapshot-revert --domain server01 --snapshotname server01_bak

**virsh snapshot-revert:**还原快照信息

**–domain server01:**虚拟机名称

**–snapshotname server01_bak:**快照名称

[Step5]: 删除快照

virsh snapshot-delete --domain server01 --snapshotname server01_bak
  • **virsh snapshot-delete:**删除快照
  • **–domain server01:**虚拟机名称
  • **–snapshotname server01_bak:**快照名称

九、虚拟机克隆

KVM中的虚拟机克隆和VMware中的虚拟机克隆方式差不多,均存在两种克隆方式

  • 完整克隆:对原始虚拟机完整拷贝,删除原始虚拟机,对克隆机器不影响,但是需要较多的空间
  • 链接克隆:对原始虚拟机(磁盘)的链接,原始虚拟机删除,链接会失效

1. 完整克隆

完整克隆和创建模板的方式一样,直接复制磁盘文件。

2. 自动克隆

KVM提供了克隆命令–virt-clone,克隆的时候必须关闭虚拟机

[Step1]: 克隆虚拟机

virt-clone --auto-clone -o server01 -n server02
  • **virt-clone:**创建克隆
  • **–auto-clone:**自动克隆
  • **-o server01:**原始虚拟机
  • **-n server02:**克隆后的虚拟机

在这里插入图片描述

3. 手动克隆

[Step1]: 复制一个磁盘

cd /var/lib/libvirt/images/
cp server01.qcow2 server03.qcow2

[Step2]: 导出server01的xml文件,将文件中的唯一性配置删除

virsh dumpxml --domain server01 > ../qemu/server03.xml
vim ../qemu/server03.xml

# 删除下列参数

<uuid>d268c29b-43d5-4d78-bfdd-edebf3cc647a</uuid>
<mac address='52:54:00:a2:6a:19'/>

# 修改下列参数
<name>server03</name>
<source file='/var/lib/libvirt/images/server03.qcow2'/>		# 磁盘路径

[Step3]: 将xml文件导入虚拟机中

cd ../qemu/
virsh define --file server03.xml --validate
  • **virsh define:**从XML文件定义域
  • **–file server03.xml:**指定xml文件的路径
  • **–validate:**针对模式验证XML

在这里插入图片描述

4. 链接克隆

[Step1]: 创建链接克隆磁盘,磁盘格式必须是qcow2

qemu-img create -b /var/lib/libvirt/images/server01.qcow2 -f qcow2 /var/lib/libvirt/images/server04.qcow2
  • **qemu-img create:**创建新的镜像文件
  • **-b /var/lib/libvirt/images/server01.qcow2:**指定基础镜像的路径,这里会对server01.qcow2进行增量备份,只保存差异部分,而不是整个镜像的完整备份
  • **-f qcow2:**指定镜像文件的格式为qcow2
  • **/var/lib/libvirt/images/server04.qcow2:**新创建的镜像文件的路径和名称

在这里插入图片描述

[Step2]: 查看磁盘的详细信息

在这里插入图片描述

[Step3]: 生成xml文件,修改xml文件内容

virsh dumpxml --domain server01 > /var/lib/libvirt/qemu/server04.xml
vim /var/lib/libvirt/qemu/server04.xml

# 删除下列内容
<uuid>d268c29b-43d5-4d78-bfdd-edebf3cc647a</uuid>
<mac address='52:54:00:a2:6a:19'/>

# 修改下列内容
<name>server04</name>
<source file='/var/lib/libvirt/images/server04.qcow2'/>

[Step4]: 将xml文件导入虚拟机

virsh define /var/lib/libvirt/qemu/server04.xml

在这里插入图片描述

[Step4]: 验证:启动虚拟机

virsh start server04

在这里插入图片描述

[Step4]: 开启虚拟机控制台链接,默认是开启的但不是开机自启,可以设置为开机自启

systemctl enable --now serial-getty@ttyS0.service

在这里插入图片描述

[Step5]: 链接到虚拟机server04,因为server01是图形界面的,所以不会显示控制台

virsh console server04

十、KVM网络管理

1. 网络类型介绍

KVM一共存在4种网络类型

  • **隔离模式:**虚拟机之间组建网络,隔离模式无法和宿主机通信,无法和其它网络通信,相当于虚拟机只是连接在一台交换机上。有点类似VMware中的【LAN区段】
  • **路由模式:**相当于虚拟机连接到一台路由器上, 由路由器(物理网卡)统一转发,但是不会改变源地址
  • **NAT模式:**NAT模式将源地址转换为路由器(物理网卡)地址,这样其它主机也知道报文来自哪台主机,在docker环境中常用。NAT网络是虚拟机默认的网络,在安装好KVM后自动会添加一块网卡。
  • **桥接模式:**在宿主机中创建一张虚拟网卡作为宿主机的网卡,而物理网卡则作为交换机

2. NAT网络

NAT网络是虚拟机默认的网络,安装好KVM就会有一个网卡。默认使用的地址192.168.122.0/24

ip add show virbr0

在这里插入图片描述

virbr0是一个网桥,接收所有到网络192.168.122.0./24的内容

brctl show

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Meaauf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值