virtualization
文章平均质量分 79
OopspoO
be better
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
虚拟化与NUMA
NUMA(Non-Uniform Memory Access,非统一内存访问架构)是相对于UMA(Uniform Memory Access)而言的。早年的计算机架构都是UMA,如图所示。所有的CPU处理单元(Processor)均质地通过共享的总线访问内存,所有CPU访问所有内存单元的速度是一样的。在多处理器的情形下,多个任务会被分派在各个处理器上并发执行,则它们竞争内存资源的情况会非常频繁,从而引起效率的下降。所以,随着多处理器架构的逐渐普及以及数量的不断增长,NUMA架构兴起,如图所示。原创 2025-01-01 20:15:58 · 965 阅读 · 0 评论 -
ramdisk 运行虚拟机
接下来,我们需要指定RAM disk的大小,文件系统和设备名,然后将它挂载到一个目录下。从上面的截图可以发现,我的系统还有大量可用的内存空间,所以我完全可以分配1G给RAM disk。内核有个模块叫brd,这个ko可以在系统中创建多个ramdisk 设备,通过modeinfo brd可以查看该模块的具体信息和参数。现在,如果我将一个文件复制到/tmp/ramdisk目录下,我的内存使用量就会上升对应的大小。如果采用方法一创建的ramdisk,那么直接把镜像文件拷贝到ramdisk的文件夹中。原创 2025-02-24 23:34:34 · 1038 阅读 · 0 评论 -
spice-gtk简介
首先要提的是spice项目,SPICE 项目旨在提供一个完整的开源解决方案,以实现无缝远程访问虚拟机,从而让您可以轻松地播放视频、录制音频、共享 USB 设备以及共享文件夹。如何使用spice-gtk实现一个spice客户端,可以直接参考他的spicy工具的实现。spicy的效果如下,总的来说该有的功能基本都有,完全可以作为一个VDI 桌面客户端使用。spice-gtk项目提供基于GTK的客户端和库,用于 SPICE 远程桌面服务器。spice-gtk是一个大的项目,还是比较复杂的。原创 2025-01-11 21:35:45 · 986 阅读 · 0 评论 -
usbredir学习
usbredir 最初是为与 Spice 配合使用而创建的,但该协议和 usbredirhost 完全独立于 Spice,它们也可以用于创建 VNC 扩展,以便通过 VNC 连接将 USB 设备重定向到 QEMU 虚拟机。可以发现,原来导出的设备重新被attach进去了,此时lsusb又可以看到该设备了,设备又回到本地了。一个实现 usbredir 连接中 usb-host端的库,这是实际usb设备所连接的一端。被导出的设备被reset掉了,本地lsusb是看不到这个设备了,设备从本地导出了。原创 2025-01-11 20:27:34 · 1398 阅读 · 0 评论 -
qemu模拟磁盘
把盘体与控制器集成在一起减少硬盘接口的电缆数目与长度,数据传输的可靠性得到增强,硬盘制造起来变得更容易的技术。ATA是一个花费低而性能适中的接口,主要是针对台式机而设计的,销售的大多数ATA控制器和IDE磁盘都是更高版本的,称为ATA - 2和ATA - 3,与之匹配的磁盘驱动器称为增强的IDE。机械硬盘中所有的盘片都装在一个旋转轴上,每张盘片之间是平行的,在每个盘片的存储面上有一个磁头,磁头与盘片之间的距离比头发丝的直径还小,所有的磁头联在一个磁头控制器上,由磁头控制器负责各个磁头的运动。原创 2025-01-07 00:22:36 · 1931 阅读 · 0 评论 -
qemu定制smbios信息
本文拟分享定制qemu虚拟机smbios信息的方法。原创 2025-01-06 16:43:51 · 1299 阅读 · 0 评论 -
linux下vfio显卡透传
本文记录下在debian12环境下对显卡进行vfio透传。原创 2025-01-06 13:49:22 · 1904 阅读 · 0 评论 -
guestfish/libguestfs镜像管理工具简介
Guestfish 是libguestfs项目中的一个工具软件,提供修改虚机镜像内部配置的功能。它不需要把虚机镜像挂接到本地,而是为你提供一个shell接口,你可以查看、编辑和删除镜像内的文件。Guestfish提供了结构化的libguestfs API访问,可以通过shell脚本、命令行或交互方式访问。它使用libguestfs并公开了guestfs API的所有功能。Libguestfs是一个用于访问和修改磁盘映像和虚拟机的库。原创 2025-01-05 17:08:16 · 1338 阅读 · 0 评论 -
LookingGlass使用
qemu ivshmem设备实现host和guest之间的内存共享透传显卡带来的guest图形能力提升spice协议带来的键鼠声音同步当然,它本质上就是一个桌面屏幕共享工具,网上的方案也很多。开源,可定制性能不错只能本地部署。原创 2025-01-04 18:00:41 · 1798 阅读 · 0 评论 -
Qemu配置QXL显卡支持分辨率
默认情况下,创建的vm的视频RAM限制为16MB。在win操作系统中分辨率最高就只能调到1024x768。所以32 MB视频RAM足以达到4k分辨率,考虑到一些开销,我们将视频RAM增加到64 MB。默认的具有 16MB 的视频RAM,4k分辨率(3840 x 2160)来计算。单单修改ram大小并不管用,在vm中最高分辨率还是1024。重新启动vm就能看到支持的分辨率了。也就是说可能还需要其他的设置。增加必要的视频RAM。原创 2025-01-03 23:32:01 · 1872 阅读 · 0 评论 -
QEMU监控器简介
QEMU监控器(monitor)是QEMU实现与用户交互的一种控制台,一般用于为QEMU模拟器提供较为复杂的功能,包括为客户机添加和移除一些媒体镜像(如CD-ROM、磁盘镜像等),暂停和继续客户机的运行,快照的建立和删除,从磁盘文件中保存和恢复客户机状态,客户机动态迁移,查询客户机当前各种状态参数等。在前面几章中,根据实际应用的具体场景已经多次提及一部分QEMU monitor中的命令了,本节将对QEMU monitor的使用和其中的常见命令进行介绍和总结。原创 2025-01-01 20:27:27 · 1258 阅读 · 0 评论 -
virtio简介
KVM是必须使用硬件虚拟化辅助技术(如Intel VT-x、AMD-V)的Hypervisor,在CPU运行效率方面有硬件支持,其效率是比较高的;在有Intel EPT特性支持的平台上,内存虚拟化的效率也较高;有Intel VT-d的支持,其I/O虚拟化的效率也很高。QEMU/KVM提供了全虚拟化环境,可以让客户机不经过任何修改就能运行在KVM环境中。不过,KVM在I/O虚拟化方面,传统的方式是使用QEMU纯软件的方式来模拟I/O设备(如第5章中提到模拟的网卡、磁盘、显卡等),其效率并不太高。原创 2025-01-01 19:54:51 · 1263 阅读 · 0 评论 -
QEMU网络配置简介
本文简单介绍下qemu虚拟机网络的几种配置方式。原创 2025-01-01 19:46:10 · 1583 阅读 · 0 评论 -
QEMU镜像文件简介
本文对qemu支持的镜像文件进行简单的介绍。qemu-img支持非常多种的文件格式,可以通过“qemu-img -h”查看其命令帮助得到,它支持20多种格式:file,quorum,blkverify,luks,dmg,sheepdog,parallels,nbd,vpc,bochs,blkdebug,qcow2,vvfat,qed,host_cdrom,cloop,vmdk,host_device,qcow,vdi,null-aio,blkreplay,null-co,raw等。原创 2025-01-01 19:27:44 · 1014 阅读 · 0 评论 -
EPT和VPID简介
EPT(Extended Page Tables,扩展页表),属于Intel的第二代硬件虚拟化技术,它是针对内存管理单元(MMU)的虚拟化扩展。EPT降低了内存虚拟化的难度(与影子页表相比),也提升了内存虚拟化的性能。从基于Intel的Nehalem架构的平台开始,EPT就作为CPU的一个特性加入CPU硬件中了。和运行在真实物理硬件上的操作系统一样,在客户机操作系统看来,客户机可用的内存空间也是一个从零地址开始的连续的物理内存空间。原创 2025-01-01 19:19:31 · 1132 阅读 · 0 评论 -
CPU虚拟化
在KVM打开的情况下,客户机中CPU指令的执行由硬件处理器的虚拟化功能(如Intel VT-x和AMD AMD-V)来辅助执行,具有非常高的执行效率。QEMU/KVM为客户机提供一套完整的硬件系统环境,在客户机看来,其所拥有的CPU即是vCPU(virtual CPU)。在KVM环境中,每个客户机都是一个标准的Linux进程(QEMU进程),而每一个vCPU在宿主机中是QEMU进程派生的一个普通线程。在普通的Linux系统中,进程一般有两种执行模式:内核模式和用户模式。原创 2025-01-01 19:05:09 · 468 阅读 · 0 评论 -
libvirt学习
libvirt是为了更方便地管理平台虚拟化技术而设计的开放源代码的应用程序接口、守护进程和管理工具,它不仅提供了对虚拟化客户机的管理,也提供了对虚拟化网络和存储的管理。libvirt支持多种虚拟化方案,既支持包括KVM、QEMU、Xen、VMware、VirtualBox、Hyper-V等在内的平台虚拟化方案,也支持OpenVZ、LXC等Linux容器虚拟化系统,还支持用户态Linux(UML)的虚拟化。原创 2024-12-31 19:27:01 · 2056 阅读 · 0 评论 -
qemu 共享内存设备——ivshmem
在不同的虚拟机(这些虚拟机会共享内存)内,ivshmem device的BAR2地址(GPA)可能不同,但是对应的HPA是一样的,hypervisor会为不同虚拟机的ivshmem device的BAR2内存区域建立EPT映射,因此就达到共享内存的目的!qemu启动参数添加:-device ivshmem-plain,memdev=ivshmem -object memory-backend-file,id=ivshmem,share=on,mem-path=/dev/shm/shm1,size=16M。原创 2024-12-24 17:14:27 · 1720 阅读 · 0 评论 -
qcow2镜像大小压缩
本文拟对qcow2进行压缩进行简单介绍。原创 2024-12-22 22:39:28 · 2041 阅读 · 0 评论 -
压缩qcow2镜像带来的性能损失简单分析
从上面的流程分析可以看出,当qcow2被压缩后,guest每次需要读取原qcow2文件中的内容时,都会让host后端进行一次解压缩,这会消耗cpu。原创 2024-12-22 22:31:12 · 831 阅读 · 0 评论 -
qemu-tcmu介绍
TODO。原创 2023-09-19 00:12:43 · 212 阅读 · 0 评论 -
虚拟化简介
虚拟化简介原创 2022-08-23 08:31:06 · 1233 阅读 · 0 评论 -
QXL双屏设置
使用virt-manager创建双屏虚拟机虚拟机的创建修改QXL设备属性(headers=“2”,也可以设置为3或4)即可虚拟机的连接之后用remote-viewer连接,选择display1和display2好了,现在我们就有一个双屏的虚拟机了:referencehttps://askubuntu.com/questions/818008/multiple-monitors-with-kvm...原创 2022-05-08 22:58:09 · 1147 阅读 · 0 评论 -
gcc编译时rpath选项不生效问题
问题笔者在尝试编译qemu时,需要指定qemu在运行时用指定路径下的spice库,尝试使用-wl,-rpath=<link_path>选项,但是编译出来的程序总是自动链接到系统自带的spice库上。解决方案通过检索,找到一下链接:https://stackoverflow.com/questions/47117443/dynamic-linking-with-rpath-not-working-under-ubuntu-17-10;他似乎遇到和我一样的问题。原文答案如下:What li原创 2022-04-18 10:14:39 · 945 阅读 · 0 评论 -
qemu-nbd挂载虚拟机镜像文件系统
qemu-nbd挂载虚拟机镜像文件系统基本原理nbd(网络块设备: Network Block Device),利用qemu-nbd将qemu虚拟机镜像挂载到Linux上。一般步骤加载 nbd 驱动(sudo modprobe nbd)查看有没有加载nbd模块lsmod |grep nbd加载nbd模块sudo modprobe nbd max_part=16连接 qemu-nbd(sudo qemu-nbd -c nbd设备路径 虚拟机镜像路径)查看分区: sudo fdi原创 2020-07-02 21:43:44 · 4815 阅读 · 0 评论 -
qemu中的tracing使用
在configure的时候加入 --enable-trace-backend=simple 选项,其中trace的方式有几种,这里使用simple,具体可以参考qemu自带的文档(具体路径在docs/devel/tracing.txt),如果现有的trace point不能满足你的需求,里面还有介绍如何添加新的trace point。这篇文章主要介绍一下Qemu内嵌的一个backend:Simpl...原创 2020-02-27 20:14:18 · 1302 阅读 · 0 评论 -
QEMU 安装与使用
QEMU 安装与使用文章目录QEMU 安装与使用安装qemu硬件准备安装KVM安装qemu源码安装安装工具安装QEMU使用创建虚拟机命令选项qemu的标准选项qemu显示选项网络属性相关选项kvm的网络模型手动创建bridge**i386平台专用选项**参考安装qemu硬件准备如果需要构建KVM环境,首先需要硬件支持。首先处理器(CPU)要在硬件上支持VT技术,还要在BIOS中将其功能打...原创 2019-11-10 22:54:00 · 26632 阅读 · 1 评论
分享