从0到1一步一步玩转openEuler虚拟化
文章平均质量分 77
想要探索虚拟化的奥秘吗?本专栏带您入门,介绍openEuler虚拟化技术,并详细指导安装和使用方法。无论您是管理员还是普通用户,都能轻松掌握虚拟化,提升系统效率。快来加入我们,一起领略虚拟化的魅力吧!
superman超哥
专注于系统集成、运维、架构二十年的IT职场老兵,拥有CCNA、OCA、OCP、PGCA、PGCE认证证书,公众号:超哥的IT私房菜,知识星球:超哥的IT私房菜,目前是多家IT厂商的咨询顾问。分享Linux云计算高端架构、DevOps高端虚拟化、数据库DBA相关技术与咨询分享。
展开
-
61 KVM Skylark虚拟机混部-使用及最佳实践
KVM Skylark虚拟机混部-使用及最佳实践。原创 2023-06-28 18:33:58 · 214 阅读 · 0 评论 -
60 KVM Skylark虚拟机混部-安装和配置
KVM Skylark虚拟机混部-安装和配置原创 2023-06-27 18:58:28 · 268 阅读 · 0 评论 -
59 KVM Skylark虚拟机混部-概述、架构及特性
随着云计算市场规模的快速增长,各云厂商基础设施投入也不断增加。资源利用率低是行业普遍存在的问题,在上述背景下,提升资源利用率已经成为了一个重要的技术课题。本文档介绍 openEuler Skylark 组件,并给出安装方法及使用指导。原创 2023-06-26 19:32:55 · 525 阅读 · 0 评论 -
58 KVM工具使用指南-应用 LibcarePlus 热补丁
本节以原文件 foo.c 和补丁文件 bar.c 为例,介绍 LibcarePlus 热补丁的应用指导。原创 2023-06-25 18:15:50 · 357 阅读 · 0 评论 -
57 KVM工具使用指南-制作 LibcarePlus 热补丁
手动制作热补丁的过程繁琐,对于代码量较大的工程,例如QEMU,手动制作热补丁极其困难。建议使用 LibcarePlus 自带脚本一键式地生成热补丁文件。原创 2023-06-24 21:44:40 · 351 阅读 · 0 评论 -
56 KVM工具使用指南-安装 LibcarePlus
LibcarePlus 运行依赖于 libunwind、 elfutils 和 binutils,在配置了 yum 源的 openEuler 系统上,可以参考如下命令安装 LibcarePlus 的依赖软件。原创 2023-06-23 11:40:50 · 483 阅读 · 0 评论 -
55 KVM工具使用指南-LibcarePlus概述
LibcarePlus 是一个用户态进程热补丁框架,可以在不重启进程的情况下对 Linux 系统上运行的目标进程进行热补丁操作。热补丁可以应用于 CVE 漏洞修复,也可以应用于不中断应用服务的紧急 bug 修复。原创 2023-06-22 21:31:00 · 354 阅读 · 0 评论 -
54 KVM工具使用指南-vmtop使用指南
vmtop 是运行在宿主机host上的用户态工具。使用vmtop可以实时动态地查看虚拟机资源的使用情况,例如CPU占用率、内存占用率、vCPU陷入陷出次数等。因此,可以使用vmtop作为虚拟化问题定位和性能调优的工具。原创 2023-06-21 18:55:29 · 547 阅读 · 0 评论 -
53 最佳实践-安全最佳实践-虚拟机可信启动
可信启动包含度量启动和远程证明。其中虚拟化组件主要提供度量启动功能,远程证明由用户自己在虚拟机中安装相关软件(RA client)及搭建远程证明服务器(RA server)进行使能。度量启动的两个基本要素是信任根和信任链,其基本思想是首先在计算机系统中建立一个信任根,信任根的可信性由物理安全、技术安全和管理安全共同确保,即CRTM(Core Root of Trust for Measurement)。然后建立一条信任链,从信任根开始到BIOS/BootLoader、操作系统、再到应用,一级度量认证一级,原创 2023-06-20 19:26:24 · 914 阅读 · 0 评论 -
52 最佳实践-安全最佳实践-sVirt保护
在只使用自由访问控制DAC(Discretionary Acces Control)策略的虚拟化环境中,主机上运行的恶意虚拟机可能存在攻击hypervisor或其他虚拟机的情况。为了提升虚拟化场景的安全性,openEuler使用了sVirt保护。sVirt是基于SELinux,适用于KVM虚拟化场景的安全防护技术。虚拟机本质是主机操作系统上的普通进程,sVirt机制在hypervisor将虚拟机对应的QEMU进程进行SELinux标记分类,除了使用type表示虚拟化专有进程和文件,还用不同的的categor原创 2023-06-19 18:54:32 · 1085 阅读 · 0 评论 -
51 最佳实践-安全最佳实践-qemu-ga
qemu-ga(Qemu Guest Agent)它是运行在虚拟机内部的守护进程,它允许用户在host OS上通过QEMU提供带外通道实现对guest OS的多种管理操作:包括文件操作(open、read、write、close,seek、flush等)、内部关机、虚拟机休眠(suspend-disk、suspend-ram、suspend-hybrid),获取虚拟机内部的信息(包括内存,CPU,网卡,OS等相关信息 )等。原创 2023-06-18 22:24:32 · 1782 阅读 · 0 评论 -
50 最佳实践-安全最佳实践-Libvirt鉴权
用户使用libvirt远程调用功能时,如果不进行任何鉴权校验,所有连接到主机所在网络的第三方程序都可以通过libvirt的远程调用操作虚拟机,存在安全隐患。为了提升系统安全性,openEuler提供了libvirt鉴权功能,即用户通过libvirt远程调用操作虚拟机前,必须经过身份校验,只有特定用户允许访问虚拟机,从而保护组网中的虚拟机。原创 2023-06-17 10:53:34 · 1187 阅读 · 0 评论 -
49 最佳实践-性能最佳实践-Nvme磁盘直通
设备直通技术是一种基于硬件的虚拟化解决方案,通过该技术,虚拟机可以直接连接到指定的物理直通设备上。对于用户来说,如果需要提升虚拟机存储性能,可以采用将 Nvme 磁盘通过 PCI 直通技术直通给虚拟机的办法,从而获得更高的性能表现。原创 2023-06-16 18:32:18 · 826 阅读 · 0 评论 -
48 最佳实践-性能最佳实践-Guest-Idle-Haltpoll
为了保证公平性及降低功耗,当虚拟机vCPU空闲时,虚拟机将执行WFx/HLT指令退出到宿主机中,并触发上下文切换。宿主机将决定在物理CPU上调度其他进程或vCPU,或进入节能模式。但是,虚拟机和宿主机之间的切换、额外的上下文切换以及唤醒IPI中断开销较大,在频繁睡眠和唤醒的业务中该问题尤为突出。Guest-Idle-Haltpoll技术是指当虚拟机vCPU空闲时,不立刻执行WFx/HLT并发生VM-exit,而是在虚拟机内部轮询(polling)一段时间。在该时间段内,其他共享LLC的vCPU在该vCPU上原创 2023-06-15 22:30:09 · 510 阅读 · 0 评论 -
47 最佳实践-性能最佳实践-PV-qspinlock
PV-qspinlock主要是针对虚拟化CPU超分场景自旋锁的优化,允许hypervisor将处于锁上下文中的vCPU置于block状态,并在锁释放后将对应的vCPU唤醒,在超分场景下能够更好地利用pCPU资源,对于编译的应用场景有一定的优化,可以减少编译应用的时长。原创 2023-06-14 17:58:56 · 140 阅读 · 0 评论 -
46 最佳实践-性能最佳实践-内存大页
相比传统的4K内存分页,openEuler也支持2MB/1GB的大内存分页。内存大页可以有效减少TLB miss,显著提升内存访问密集型业务的性能。openEuler使用两种技术来实现内存大页。原创 2023-06-13 17:14:54 · 693 阅读 · 0 评论 -
45 最佳实践-性能最佳实践-kworker隔离绑定
kworker是Linux内核实现的per-CPU线程,用来执行系统中的workqueue请求。kworker线程会和vCPU线程争抢物理核资源,导致虚拟化业务性能抖动。为了使虚拟机能够稳定的运行,减少kworker线程对虚拟机的干扰,可以将主机上的kworker线程绑定到特定的CPU上运行。原创 2023-06-10 21:54:26 · 490 阅读 · 0 评论 -
44 最佳实践-性能最佳实践-裸设备映射
配置虚拟机存储设备时,除了将文件配置给虚拟机作为虚拟磁盘使用外,还可以将块设备(物理LUN、逻辑卷等)直接配置给虚拟机使用,从而提升存储性能。该配置方式称为裸设备映射。在该配置方式下,虚拟磁盘向虚拟机呈现为一个SCSI设备,且支持大部分SCSI命令。裸设备映射根据后端实现特点,分为虚拟裸设备映射和物理裸设备映射,物理裸设备映射相对虚拟裸设备映射具有更优秀的性能和更丰富的SCSI命令,但物理裸设备映射需要将整块SCSI磁盘挂载给虚拟机使用,如果使用分区、逻辑卷等方式配置,虚拟机将无法识别。原创 2023-06-09 19:19:33 · 929 阅读 · 0 评论 -
43 最佳实践-性能最佳实践-IOThread配置
KVM平台上,对虚拟磁盘的读写在后端默认由QEMU主线程负责处理。这样会造成如下问题:- 虚拟机的I/O请求都由一个QEMU主线程进行处理,因此单线程的CPU利用率成为虚拟机I/O性能的瓶颈。- 虚拟机I/O在QEMU主线程处理时会持有QEMU全局锁(qemu_global_mutex),一旦I/O处理耗时较长,QEMU主线程长时间占有全局锁,会导致虚拟机vCPU无法正常调度,影响虚拟机整体性能及用户体验。可以为virtio-blk磁盘或者virtio-scsi控制器配置IOThread属性,在QEM原创 2023-06-08 19:32:45 · 1158 阅读 · 0 评论 -
42 最佳实践-性能最佳实践-halt-polling
在计算资源充足的情况下,为使虚拟机获得接近物理机的性能,可以使用halt-polling特性。没有使用halt-polling特性时,当vCPU空闲退出后,主机会把CPU资源分配给其他进程使用。当主机开启halt-polling特性时,虚拟机vCPU处于空闲时会polling一段时间,polling的时间由具体配置决定。若该vCPU在polling期间被唤醒,可以不从主机侧调度而继续运行,减少了调度流程的开销,从而在一定程度上提高了虚拟机系统的性能。原创 2023-06-07 20:21:54 · 228 阅读 · 0 评论 -
41 管理虚拟机可维护性-虚拟机NMI Watchdog
NMI Watchdog是一种用来检测Linux出现hardlockup(硬死锁)的机制。通过产生NMI不可屏蔽中断,从而在Linux内核关闭中断的代码区间也能打断代码的执行,进一步检测内核是否出现硬死锁。当前ARM架构不支持原生NMI中断,通过使能基于中断优先级的Pseudo-NMI,将PMI(Performance Monitoring Interrupt)中断配置为NMI中断,实现NMI Watchdog(即PMU Watchdog)。原创 2023-06-06 18:05:58 · 783 阅读 · 0 评论 -
40 KVM管理设备-配置磁盘IO悬挂
存储故障(比如存储断链)场景下,物理磁盘的IO错误,通过虚拟化层传给虚拟机前端,虚拟机内部收到IO错误,可能导致虚拟机内部的用户文件系统变成read-only状态,需要重启虚拟机或者用户手动恢复,这给用户带来额外的工作量。这种情况下,虚拟化平台提供了一种磁盘IO悬挂的能力,即当存储故障时,虚拟机IO下发到主机侧时将IO悬挂住,在悬挂时间内不对虚拟机内部返回IO错误,这样虚拟机内部的文件系统就不会因为IO错误而变为只读状态,而是呈现为Hang住;同时虚拟机后端按指定的悬挂间隔对IO进行重试。如果存储故障在原创 2023-06-05 19:30:36 · 779 阅读 · 0 评论 -
39 KVM管理设备-管理快照
虚拟机在使用过程中可能由于病毒对系统的破坏、系统文件被误删除或误格式化等原因造成虚拟机系统损坏导致系统无法启动。为了使损坏的系统快速恢复,openEuler提供了存储快照功能。openEuler可以在用户不感知的情况下制作虚拟机在某一时刻的快照(制作通常指需要几秒钟),该快照能帮助用户将磁盘快速恢复到某一时刻的状态,例如系统损坏后能快速恢复系统,从而提升系统可靠性。原创 2023-06-04 15:07:15 · 537 阅读 · 0 评论 -
38 KVM管理设备-管理虚拟机USB
为了方便在虚拟机内部使用USBkey设备、USB海量存储设备等USB设备,openEuler提供了USB设备直通的功能。用户可以通过USB直通和热插拔相关接口给虚拟机配置直通USB设备、或者在虚拟机处于运行的状态下热插/热拔USB设备。原创 2023-06-03 16:08:12 · 557 阅读 · 0 评论 -
37 KVM管理设备-管理设备直通
设备直通技术是指将host上的物理设备直接呈现给一台虚拟机,虚拟机可以直接访问该设备资源的一种使用方式。使用设备直通的方式可以让虚拟机获得良好的I/O性能。当前设备直通使用的是VFIO方式,按照直通的设备类型可以分为PCI直通和SR-IOV直通两种类型。原创 2023-06-02 18:14:40 · 1279 阅读 · 0 评论 -
36 KVM管理设备-配置虚拟串口
在虚拟化环境下,由于管理和业务的需求,虚拟机与宿主机需要互相通信。但在云管理系统复杂的网络架构下,运行在管理平面的服务与运行在业务平面的虚拟机之间,不能简单的进行三层网络互相通信,导致服务部署和信息收集不够快速。因此需要提供虚拟串口,来达到虚拟机与宿主机之间互相通信的目的。 通过在虚拟机的XML配置文件中增加相应串口的配置项,可以实现虚拟机与宿主机之间的互相通信。原创 2023-06-01 19:01:39 · 566 阅读 · 0 评论 -
35 KVM管理设备-管理虚拟网卡
虚拟网卡类型主要包含virtio-net、vhost-net、vhost-user等。用户在创建虚拟机后,可能会有挂载或者卸载虚拟网卡的需求。openEuler提供了网卡热插拔的功能,通过网卡热插拔,能够改变网络的吞吐量,提高系统的灵活性和扩展性。原创 2023-05-31 19:35:35 · 729 阅读 · 0 评论 -
34 KVM管理设备-管理虚拟磁盘
虚拟磁盘类型主要包含virtio-blk、virtio-scsi、vhost-scsi等。virtio-blk模拟的是一种block设备,virtio-scsi和vhost-scsi模拟的是一种scsi设备。原创 2023-05-30 18:46:52 · 827 阅读 · 0 评论 -
33 KVM管理设备-配置虚拟机PCIe控制器
虚拟机内部的网卡、磁盘控制器、PCIe直通设备都需要挂接到PCIe Root Port下面,每个Root Port对应一个PCIe插槽。Root Port的下挂设备支持热插拔,但是Root Port本身不支持热插拔,因此需要用户考虑设备热插的需求,规划虚拟机需要预留的最大PCIe Root Port数量,在虚拟机启动之前完成Root Port的静态配置。原创 2023-05-29 22:12:00 · 794 阅读 · 0 评论 -
32 KVM管理系统资源-管理虚拟内存热插
在虚拟化场景下,虚拟机的内存、CPU、外部设备都是软件模拟呈现的,因此可以在虚拟化底层为虚拟机提供内存在线调整的能力。当前openEuler版本支持在线给虚拟机添加内存,当虚拟机出现物理内存不足又无法关闭虚拟机的时候,可以使用此特性增加虚拟机的物理内存资源。原创 2023-05-28 22:48:32 · 597 阅读 · 0 评论 -
31 KVM管理系统资源-管理虚拟内存NUMA
传统的多核运算使用SMP(Symmetric Multi-Processor)模式:将多个处理器与一个集中的存储器和I/O总线相连。所有处理器只能访问同一个物理存储器,因此SMP系统也被称为一致存储器访问(UMA)系统。一致性指无论在什么时候,处理器只能为内存的每个数据保持或共享唯一一个数值。很显然,SMP的缺点是可伸缩性有限,因为在存储器和I/O接口达到饱和的时候,增加处理器并不能获得更高的性能。原创 2023-05-26 18:55:02 · 905 阅读 · 0 评论 -
30 KVM管理系统资源-CPU热插
在线增加(热插)虚拟机CPU是指在虚拟机处于运行状态下,为虚拟机热插CPU而不影响虚拟机正常运行的方案。当虚拟机内部业务压力不断增大,会出现所有CPU均处于较高负载的情形。为了不影响虚拟机内的正常业务运行,可以使用CPU热插功能(在不关闭虚拟机情况下增加虚拟机的CPU数目),提升虚拟机的计算能力。原创 2023-05-25 18:59:47 · 738 阅读 · 0 评论 -
29 KVM管理系统资源-调整虚拟CPU绑定关系
把虚拟机的vCPU绑定在物理CPU上,即vCPU只在绑定的物理CPU上调度,在特定场景下达到提升虚拟机性能的目的。比如在NUMA系统中,把vCPU绑定在同一个NUMA节点上,可以避免vCPU跨节点访问内存,避免影响虚拟机运行性能。如果未绑定,默认vCPU可在任何物理CPU上调度。具体的绑定策略由用户来决定。原创 2023-05-24 18:41:43 · 961 阅读 · 0 评论 -
28 KVM管理系统资源-绑定QEMU进程至物理CPU
QEMU主进程绑定特性是将QEMU主进程绑定到特定的物理CPU范围内,从而保证了运行不同业务的虚拟机不会干扰到邻位虚拟机。例如在一个典型的云计算场景中,一台物理机上会运行多台虚拟机,而每台虚拟机的业务不同,造成了不同程度的资源占用,为了避免存储IO密集的虚拟机对邻位虚拟机的干扰,需要将不同虚拟机处理IO的存储进程完全隔离,由于QEMU主进程是处理前后端的主要服务进程,故需要实现隔离。原创 2023-05-23 18:12:37 · 710 阅读 · 0 评论 -
27 KVM管理系统资源-管理虚拟CPU份额
虚拟化环境下,同一主机上的多个虚拟机竞争使用物理CPU。为了防止某些虚拟机占用过多的物理CPU资源,影响相同主机上其他虚拟机的性能,需要平衡虚拟机vCPU的调度,避免物理CPU的过度竞争。CPU份额表示一个虚拟机竞争物理CPU计算资源的能力大小总和。用户通过调整cpu_shares值能够设置虚拟机抢占物理CPU资源的能力。cpu_shares值无单位,是一个相对值。虚拟机获得的CPU计算资源,是与其他虚拟机的CPU份额,按相对比例,瓜分物理CPU除预留外可用计算资源。通过调整CPU份额来保证虚拟机CPU原创 2023-05-22 19:07:14 · 700 阅读 · 0 评论 -
26 KVM热迁移虚拟机
当虚拟机在物理机上运行时,物理机可能存在资源分配不均,造成负载过重或过轻的情况。另外,物理机存在硬件更换、软件升级、组网调整、故障处理等操作,如何在不中断业务的情况下完成这些操作十分重要。虚拟机热迁移技术可以在业务连续前提下,完成负载均衡或上述操作,提升用户体验和工作效率。虚拟机热迁移通常是将整个虚拟机的运行状态完整保存下来,同时可以快速恢复到原有的甚至不同的硬件平台上。虚拟机恢复后,仍然可以平滑运行,用户感知不到任何差异。根据虚拟机数据存储在当前主机还是远端存储设备(共享存储)的不同,openEuler支原创 2023-05-21 20:39:57 · 599 阅读 · 0 评论 -
25 KVM管理虚拟机-虚拟机安全启动
安全启动(Secure Boot)就是利用公私钥对启动部件进行签名和验证。启动过程中,前一个部件验证后一个部件的数字签名,验证通过后,运行后一个部件,验证不通过则启动失败。安全启动的作用是检测设备启动阶段固件(Fireware)以及软件是否被篡改,防止恶意软件侵入和修改。通过安全启动可以保证系统启动过程中各个部件的完整性,防止没有经过认证的部件被加载运行,从而防止对系统及用户数据产生安全威胁。安全启动是在UEFI启动方式上实现的,Legacy启动方式不支持安全启动。根据UEFI规定,主板出厂的时候可以内置一原创 2023-05-20 21:48:06 · 1286 阅读 · 0 评论 -
24 KVM管理虚拟机-配置VNC-TLS登录
VNC服务端和客户端默认采用明文方式进行数据传输,因此通信内容可能被第三方截获。为了提升安全性,openEuler支持VNC服务端配置TLS模式进行加密认证。TLS(Tansport Layer Security)即传输层安全,可以实现VNC服务端和客户端之间加密通信,从而防止通信内容被第三方截获。原创 2023-05-19 18:07:44 · 843 阅读 · 0 评论 -
23 KVM管理虚拟机-使用VNC密码登录虚拟机
当虚拟机操作系统安装部署完成之后,用户可以通过VNC协议远程登录虚拟机,从而对虚拟机进行管理操作。本章介绍使用VNC密码登录虚拟机的方法。原创 2023-05-18 18:28:04 · 1348 阅读 · 0 评论 -
22 KVM管理虚拟机-查询虚拟机信息
管理员在管理虚拟机的过程中经常需要知道一些虚拟机信息,libvirt提供了一套命令行工具用于查询虚拟机的相关信息。本章介绍相关命令的使用方法,便于管理员来获取虚拟机的各种信息。原创 2023-05-17 19:20:28 · 1542 阅读 · 0 评论