将双系统塞入A4主机:OSX-KVM显卡直通教程
原文:luvletter.moe/dual-syst A4服务器集成双系统说明:切换到OSX-KVM显卡说明KVM,是Linux上最完善的虚拟化框架,采用了Qemu的虚拟化功能和并行虚拟化技术,提供出色的IO性能。常见的用途包括直接调用qemu命令或者基于libvirt/virtmanager/Proxmox等虚拟化平台实现KVM虚拟机管理。
然而,传统的黑苹果安装方法主要基于物理硬件。
虽然其原生性能优越,但与网卡、板载声卡等特定主板硬件的兼容性较差。
特别是当CPU功能不兼容时,可能会发生内核修改。
需要且过程复杂,且安装方法较多且不一致。
传统虚拟机黑客只使用CPU虚拟化,而不使用IO虚拟化,这意味着虚拟机中无法实现显卡加速,大大降低了macOS的实用性。
随着vt-d技术的普及以及苹果对AMDGPU的支持不断增强,特别是这几年Polaris10/11和Vega显卡大量涌入市场,基于显卡透传的虚拟化方式出现了。
极具成本效益。
vt-d的核心理念是IOMMU组越多越好。
对于硬件厂商来说,这意味着更多独立的PCIe接口。
传统的软件IO虚拟化,如USBPS/2键盘、音频仿真等,性能较低,需要进行用户态系统调用来读取数据并通过系统调用输入到客户端系统,导致性能低下且较差。
实时性能。
基于Libusb的USB重定向也存在问题。
如果您有单独的PCIeUSB扩展卡,则可以将整个PCIe设备放置在虚拟机中以获得最大效率,并避免一些问题,例如无法重定向集线器或无法分离某些单元主板上的集成控制器。
配置步骤如下:准备:安装介质:通过现有macOS系统下载最新版本的Installer.app,准备安装并获取块设备文件(如.iso/.cdr),为虚拟机提供数据源机器安装。
安装平台:确保安装环境满足macOSMojave4.2或更高版本的最低要求即可。
SNB之后的大多数CPU平台都兼容。
主板和CPU需要支持vt-d技术(IOMMU)。
虽然大多数平台都支持vt-x,但由于芯片组或固件原因可能无法启用,因此需要确认兼容性。
硬件配置:应使用16GB-32GB内存。
显卡必须是支持最新挖矿趋势的A卡。
避免使用N卡,虽然具有无人驾驶性能,但实用性较低。
存储方面,如果主板支持NVMe,则会提供1个通过IOMMU适用于macOS虚拟机的真正PCIe存储。
应使用Samsung970Pro/EVO或SATASSD。
Handoff/AirDrop是基于Apple定制的特定网卡。
如果主板支持miniPCIe/M.2接口(确保有PCIe链接并支持USB功能),则可以正常工作。
对于有线网卡,可以使用Realtek网卡的默认驱动程序。
应避免使用直通千兆网卡。
声卡方面,有普通的A/N/I卡,可以通过kextpatch获得良好的HDMI/DP音效。
VoodoHDA支持qemu虚拟ich9-hda声卡或使用PCIe直通声卡设备。
USB直通的音质一般,qemu模拟声卡的延迟也很大。
至于直接闪电连接,我们还没有尝试过,需要稍后了解。
安装服务器系统:选择具有新内核、新且稳定软件包的发行版,例如ArchLinux(丰富的文档)、OpenSUSE和Ubuntu。
应避免安装图形界面,以免所有USB设备和显卡都通过后降低服务器性能。
配置与安装:安装qemu和vfio(用于渗透)以及qemu管理框架libvirt(virt-manager)。
确保安装支持IOMMU的固件。
修改/etc/default/grub,添加intel_iommu=on或amd_iommu=on并通过update-grub或grub2-mkconfig-o保存。
配置vfio以接管转移的硬件。
安装macOS系统时,通过qemu-img创建128GBqcow2块设备文件,并将ISO安装介质复制到OSX-KVM文件夹。
修改boot-macOS-Mojave.sh脚本以对应块设备文件名。
启动脚本后,通过qemu视频返回窗口进入Clover,选择macOS安装程序。
将128GB块设备格式化为APFS格式后完成系统安装。
安装完成后,重新启动,理论上应该可以正常访问系统了。
安装完成后,根据参数调优macOS-libvirt.xml,调整vCPU与CPU之间的核心绑定关系,正确切换CPU拓扑,以达到最佳性能。
然后识别虚拟机并通过virt-manager启动它。
其他设备包括通过PCIe的显卡和HDMI音频设备。
进入系统后,进行驱动补丁等操作。
这将通过OSX-KVM显卡完成集成。
kvm虚拟化分为哪三层?
KVM虚拟化分为三层:
1.KVM的第一层
KVM的第一层本质上是Linux内核本身,从Linux2开始。
从6.20版本1开始,KVM正式完全集成到Linux内核中,KVM现在就是Linux。
它作为ux内核中的一个模块存在,因此只要您使用Linux版本2.6.20或更高版本,您只需要使用CLI,因为KVM模块在您安装系统时已经加载。
命令行模式只需启用KVM模块即可。
2.第二层QEMU将在2012年将qemu-kvm分支集成到主流QEMU中,并在未来实现KVM虚拟化。
你不需要特殊的qemu-kvm(你仍然可以使用它,目前在CentOS上使用),只需在常用的QEMU命令中添加“-enable-kvm”选项即可使用KVM功能。
这意味着QEMU可以调用KVM内核。
比纯QEMU高很多。
3.第三层KVM管理工具
解决了第一层KVM和第二层QEMU之后,剩下的就是KVM管理工具了。
管理工具如果您的公司只有四个云计算团队,则有多种选择。
对于0到50人,WebVirtMgr或ProxmoxVE等管理工具比较合适。
如果你公司的云计算团队有几百人并且有赞助商,你可以使用像OpenStack这样的云计算管理工具。
虚拟化技术KVM和XEN概述
虚拟化技术旨在提高硬件资源的使用效率,通过引入虚拟化层,同一台计算机可以运行多个独立的操作系统和应用程序而不会互相影响,从而大大提高工作效率。主要的虚拟化技术包括XEN和KVM,这两种技术都是开源、免费的解决方案。
KVM和XEN是虚拟化领域的两种主要解决方案。
KVM是Linux环境中完整的虚拟化解决方案,集成到Linux内核中并依赖于硬件支持(例如IntelVity或AMD-V)。
关键组件包括KVM驱动程序和Qemu。
KVM的优点是与Linux内核集成、性能高、无需升级客户系统、维护成本相对较低。
XEN是基于内核的虚拟化解决方案,运行在Linux环境中并支持XEN功能。
XEN分为三个基本组件:Hypervisor、Domain0和DomainU。
XEN提供全虚拟化和虚拟化支持,可以实现无中断动态迁移,支持多个虚拟机并发运行,具有优异的处理性能。
但XEN需要内核维护,版本升级复杂,可能导致系统崩溃,同时I/O性能较差,操作相对复杂,维护成本较高。
相反,KVM和XEN在很多方面都有所不同。
KVM与Linux内核集成,不需要额外的内核补丁,支持动态迁移,可以高效管理多个虚拟机,并且具有更好的I/O性能。
相比之下,XEN虽然在性能和硬件支持方面具有优势,但其复杂的架构、较高的维护成本以及对内核的依赖,使其在整体性能上略逊于KVM。
综上所述,KVM因其高效、灵活以及与Linux内核的紧密集成而成为越来越流行的虚拟化解决方案。
KVM简介(一)——虚拟化史及架构
在虚拟化技术领域,KVM(基于内核的虚拟机)发挥着重要作用。作为Linux内核的一部分,KVM实现了虚拟化功能,将Linux系统变成了hypervisor,允许多个操作系统在同一硬件上并行运行,显着提高资源利用率。
在架构上,KVM采用基于IntelVT或AMD-V等X86硬件虚拟化扩展的开源全虚拟化解决方案。
其独特之处在于,虚拟机被设计为普通的Linux进程,并由标准的Linux调度程序管理。
每个虚拟CPU都被实现为一个常规的Linux线程,它使用Linux内核的现有功能,但不模拟硬件;而是使用/dev/kvm接口来设置虚拟CPU,例如与用户空间程序进行交互。
QEMU为机器的地址空间提供虚拟I/O并将视频显示映射到主机。
QEMU在这个过程中扮演着重要的角色,负责通过与KVM模块的系统调用接口来解析和模拟虚拟设备。
在实现虚拟化时,现代CPU提供了特殊的指令集来控制虚拟化过程,VMM使用这些指令将客户机器置于受限模式。
一旦客户端尝试访问物理资源,硬件就会暂停其操作。
并将控制权返回给VMM进行处理。
VMM利用硬件的虚拟化增强机制,将客户端对特定资源的访问完全重定向到虚拟资源,以达到高效的性能。
自2005年起,Intel开始推广Intel虚拟化技术(IntelVT)技术,以简化VMM设计并提高性能。
KVM与QEMU有着密切的关系。
QEMU作为纯软件实现的虚拟化系统,性能较低。
但它包括完整的虚拟机实现,包括处理器虚拟化、内存虚拟化和虚拟设备模拟。
KVM是在QEMU的基础上进行优化的,通过与QEMU的系统调用接口,负责将虚拟机置于特殊的模式下进行I/O操作的处理和管理。
QEMU负责解析和模拟设备,实现虚拟机配置、创建、运行环境、动态迁移等具体技术。
KVM内核模块按需加载,不执行设备模拟,而是由QEMU通过/dev/kvm接口提供。
KVM的主要功能包括初始化CPU硬件、开启虚拟化模式、管理虚拟机操作、支持内存虚拟化等。
对于CPU虚拟化,KVM捕获敏感指令,切换到根模式,KVM决定如何处理它们。
在内存虚拟化中涉及MMU页表的双层翻译,以保证虚拟地址和物理地址的正确映射。
本文摘自天翼云官网开发者社区。
如需了解更多有关云计算的信息,请访问该网站。
回顾历史,Bcache存储缓存的推出和应用是过去一段时间的亮点。