VMM
VMM 指的是群晖系统内的 Virtual Machine Manager,一个原生虚拟化管理平台,简单地说就是[[虚拟机]]软件。
它使用了什么技术?
群晖 VMM 的底层是一套非常成熟的开源虚拟化技术栈。主要包括以下几个核心组件:
1. KVM (Kernel-based Virtual Machine)
这是 VMM 的核心引擎。KVM 是 Linux 内核的一个模块,它能让 Linux 内核变成一个 Type-1(准原味)虚拟化管理程序。
- 硬件辅助虚拟化: VMM 利用 CPU 的 Intel VT-x 或 AMD-V 指令集,使虚拟机能直接在物理硬件上运行,极大地提高了运算效率,几乎接近原生性能。
2. QEMU (Quick Emulator)
VMM 使用 QEMU 来负责硬件仿真。
- 它模拟了主板、显卡、声卡和 USB 控制器等硬件环境,让原本需要物理硬件支持的操作系统(如 Windows)能以为自己运行在真实的电脑上。
3. VirtIO 驱动
为了解决模拟硬件带来的性能损耗,VMM 支持 VirtIO 技术。
- 这是一种半虚拟化(Para-virtualization)技术。通过在虚拟机里安装群晖提供的 Guest Tool(实际上就是 VirtIO 驱动),虚拟机可以直接与 NAS 宿主机的网络和磁盘进行高效通信,减少了“翻译”层的开销。
4. Open vSwitch (OVS)
在网络层面,VMM 使用了 Open vSwitch。
- 这是一个高性能的软件交换机。它负责管理虚拟机与外界、以及虚拟机之间的网络互联。它支持划分 VLAN、创建虚拟交换机,让你的虚拟机可以像局域网里的独立物理设备一样获取 IP 地址。
5. Btrfs 文件系统集成
VMM 的存储管理深度结合了群晖的 Btrfs 文件系统。
- 利用 Btrfs 的“写时复制”(Copy-on-Write)特性,VMM 可以实现秒级的快照和克隆。即使是几十 GB 的虚拟机镜像,备份和恢复通常也能在几秒钟内完成,且不占用额外的物理空间(直到数据发生变化)。