> For the complete documentation index, see [llms.txt](https://docs.verge.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.verge.io/run-the-platform/zh/xu-ni-ji/vm-best-practices.md).

# 虚拟机最佳实践

以下建议适用于在 VergeOS 中使用的虚拟机创建。其中一些涉及机器设置，例如（RAM 分配、NIC 等），而另一些则与客户机操作系统内的配置有关。遵循最佳实践指南可以避免潜在问题并提供更好的性能。

## 导入建议

以下建议适用于从现有虚拟机导入以及将物理机迁移为虚拟机：

* 在从其他系统导出之前，请卸载所有虚拟机管理程序客户机应用程序，例如 VMware 客户机代理、Hyper-V 集成组件等。这些客户机应用程序在 VergeOS 中运行时毫无用处，因此会浪费资源，并可能导致其他不良结果。
* 在导出物理镜像之前，请移除任何特定于硬件的驱动程序/软件（例如 BIOS 更新监视器等）。
* 在导出物理磁盘之前，请卸载虚拟机中不会存在的硬件。
* 否则，请尽可能保持硬件配置一致（磁盘的数量和大小、CPU 的数量和类型）
* 通常，最好让新 VergeOS 机器保持与原机器相同的 MAC 地址，否则，使用不同的 MAC 地址会在客户机操作系统中被识别为新的网络设备，并需要重新配置所有客户机网络设置。对于使用 VergeOS 自动导入工具导入的机器，系统会提示您选择保留 MAC 地址或自动生成新的 MAC 地址。对于手动导入的机器（例如已创建 VM 外壳并导入磁盘），可以从现有机器记下 MAC 地址，然后在创建新机器 NIC 时手动输入。

{% hint style="warning" %}
请务必记住，绝不能有两台机器在同一网络中使用相同的 MAC 地址运行。
{% endhint %}

{% hint style="info" %}
将物理 Windows 机器迁移为虚拟机可能需要重新初始化 Windows 许可证密钥。
{% endhint %}

## RAM 分配

分配给 VM 的 RAM 数量应足以充分运行 VM 内的工作负载。VM 开机后，会从可用内存池中为该 VM 分配 RAM，之后这些 RAM 便不能再分配给其他 VM（无论客户机操作系统内的活动如何）。一般来说，在 VergeOS 中运行的虚拟机可分配的 RAM 可以少于在裸机或其他虚拟环境中运行时所需的 RAM；通常用于在 VM 内支持磁盘性能功能、缓存等所需的 RAM 在这里并不需要，因为这些功能由 vSAN 自动处理。

## 选择 CPU 类型

* 每个集群都会根据检测到的主机硬件 CPU 类型提供默认 CPU 类型；这通常是每台机器的最佳选择。
* 如果导入了虚拟机且 CPU 类型发生变化，可能需要重新激活 Windows 许可证/额外的电源循环。
* 如果某台机器最终可能会迁移/故障转移到主机 CPU 硬件不同的集群，请在创建新 VM 时选择这些集群中所使用的最低等级 CPU 芯片类型。这样可确保该机器可以无问题地迁移到较旧的芯片类别。

## 操作系统家族

为 VM 选择正确的操作系统家族（例如 Windows/Linux/FreeBSD）将有助于确保启动 VM 时使用正确的 QEMU 标志，这反过来会影响性能。这对于基于 Windows 的 VM 尤其重要。

## 省电

应在客户机操作系统中禁用所有省电功能，因为这些功能不会带来任何好处，反而很可能会导致问题。请选择一个 *性能* 配置文件，而不是省电配置文件。

## ACPI

如果没有 ACPI 支持，就必须进入客户机操作系统来对 VM 执行干净关机；这并不理想，尤其是在机器数量较多时。应在客户机操作系统中启用并配置 ACPI，以便可以从 VergeOS 管理界面（或通过 API）正常关闭 VM。建议在将 VM 投入生产之前测试 *重启* 和 *关闭电源* 在客户机操作系统处于登录提示/锁定屏幕时，从 VergeOS 仪表板执行这些操作，以验证 ACPI 是否配置正确。

## 时钟同步

一般来说，所有 VM 服务器，尤其是运行对时间敏感应用的服务器，都应在客户机操作系统中配置并安装 NTP。计算机会在开机和关机之间由其客户机操作系统控制时自动与硬件时钟同步；但仅靠这一点通常不足以让 VM 保持足够的时间同步。NTP 旨在以更高频率保持计算机同步（将时钟同步控制在几毫秒内）。应谨慎选择 NTP 服务器，边缘服务器应指向已知可靠且地理位置合适的 NTP 源。由于主机节点和客户机保持同步非常重要，客户机机器应配置为使用其主机节点作为 NTP 服务器，或者配置为使用与物理主机节点相同的 NTP 服务器。

### UTC/本地时间 - Windows VM

默认情况下，系统向虚拟机提供 UTC 格式的时间。Windows 默认期望接收本地时间；因此，对于 Windows 虚拟机，请执行以下操作之一：

* **配置 VergeOS 设置以使用本地时间（针对该 VM）** - 在 VM 设置中为时钟源选择本地时间。
* **配置 Windows 使用 UTC** - 在 Windows VM 中进行相应的注册表键更改以使用 UTC 格式。

## VM 磁盘

* Virtio 驱动程序通常可提供最佳性能。大多数版本的 Linux 操作系统原生包含 virtio 驱动程序。\
  对于 Windows 机器，可在此下载最新的 virtio 驱动程序： <https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso>
* 系统在存储上提供精简置备，因此分配给虚拟磁盘但未使用的空间实际上不会被占用；因此，在许多情况下，最好为磁盘分配更大的容量，以避免日后需要增加磁盘大小。
* Virtio-SCSI 磁盘可在不重启的情况下调整大小。某些客户机操作系统/文件系统不支持缩小磁盘。请查看客户机操作系统文档，确认是否支持缩小磁盘。

## 安全

请务必记住，远程控制台提供对虚拟机的直接显示器/键盘鼠标访问；获得控制台访问权限即可访问系统当前状态（例如，如果前一个用户让客户机操作系统保持登录状态，后续用户就可以使用该客户机操作系统登录进行访问）。当为某台机器启用 Spice 或 VNC 控制台选项时，可以分配控制台密码以提供访问控制。然而，控制台密码不能替代在客户机操作系统中使用智能登录指南（例如，独立登录、复杂密码要求等）。VergeOS 权限可对用户访问进行非常细粒度的控制。请在适当情况下利用用户和组权限限制对虚拟机的访问。

## 网络

* 尽可能使用 virtio 网络驱动程序，因为通常可提供最佳性能。最新稳定版 virtio 驱动程序可在以下位置下载： <https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso>\
  必要时可使用旧版网络驱动程序，但如果您的操作系统不支持 virtio 网络驱动程序，请考虑升级到较新的版本。
* 请记住——NIC 组队在 VergeOS VM 上通常没有好处，因为网络冗余和负载均衡已经由基础设施提供。在客户机操作系统中使用 NIC 组队会消耗不必要的资源，并可能引发问题。（此规则的唯一例外是机器使用物理网络直通硬件的情况。）

## 图形

* 在客户机操作系统中禁用所有屏保。
* 在客户机操作系统中移除所有图形效果（例如拖动或最小化效果）。

## 数据保护 - 快照与同步

明智的数据保护方案应同时使用快照和同步。

* **系统快照** 为整个系统提供回滚点，允许将整个 VergeOS 云恢复到某个特定时间点。通常最好在云级别配置快照；这样会包含该云中的所有内容，并可恢复整个系统，包括单独的 VM 和租户。通常无需在 VM 级别配置额外快照，除非某些特定 VM 需要更频繁地捕获或保留更长时间。
* **手动 VM 快照** 可在进行更改之前立即创建，例如客户机操作系统/应用程序更新或高级配置更改；然后可保存快照，直到验证 VM 更改为止。
* **站点同步** 可将数据复制到远程 VergeOS 系统/位置。同步是实现数据保护和业务连续性的重要策略，因为它可将数据的快速恢复副本存放到站点外。

如需使用内置的 VergeOS 功能设计数据保护策略的帮助，请联系支持团队。

## 客户机软件

* 卸载任何为其他虚拟化平台设计的客户机应用程序。
* 检查自动启动的服务列表，并禁用任何不必要的服务。
* 只安装实际需要的软件。

## 远程控制台选项

只有在使用 spice 厚客户端以获得音频直通/远程 USB/视频流时，才应选择 Spice 控制台选项。否则，最好使用 VNC。Spice 通常只应考虑用于虚拟桌面 VM。服务器应始终配置为使用 VNC，除非绝对需要远程 USB；否则 Spice 会带来过多不必要的开销。

{% hint style="success" %}
更改 *远程控制台* 选项（VNC/Spice/无）需要重新启动并更改视频设置。
{% endhint %}

## 机器类型（主板架构仿真）

Q35 是 VM 的默认仿真，通常可提供最佳性能和功能。通常，在创建新 VM 时，最好保持 Machine Type 的默认选择（这会将芯片组固定为当前安装在物理主机上的最新 Q35 版本）。提供了旧版本的 Q35 仿真和 i440FX 仿真选项以实现旧版兼容性。另有一个选项可选择 *Q35-...最新* 作为 Machine Type 的一个选项。这样会自动将 VM 升级到可用的最新 Q35 版本（在 VM 重新启动时生效），因为当主机系统升级后，将会出现新的 Q35 版本。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.verge.io/run-the-platform/zh/xu-ni-ji/vm-best-practices.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
