# ZSvirt 开源 FAQ（下）：迁移备份、API、社区与选型 10 问

> 下篇回答迁移与备份恢复、API 与 SDK、文档与社区反馈、开源范围与平台选型 10 个问题：ZMigrate、OVF、VMDK 三种迁移方式，Veeam 对接计划，Java SDK 初始化与 HTTP 202，Session/AccessKey 认证，漏洞报告与生产使用。

- 发布时间: 2026-10-28
- 更新时间: 2026-10-28
- 作者: [ZSvirt 团队](https://github.com/ZSvirt)
- 分类: 最佳实践
- 标签: ZSvirt, FAQ, VMware 迁移, 备份恢复, API, Java SDK, 开源许可, ZSvirt FAQ, ZMigrate 迁移, OVF 导入, VMDK 导入, ZSvirt 备份, ZSvirt 恢复, ZSvirt 异地备份, ZSvirt Java SDK, ZSvirt API 认证, ZSvirt GPL 3.0

[图片可在规范 HTML 页面中查看: ZSvirt 社区 QA：20 个问题，带你了解 ZSvirt（下篇）](https://zsvirt.io/zh/blog/zsvirt-faq-part-2/)

本文是 ZSvirt 开源 FAQ 的下篇。[上篇](https://zsvirt.io/zh/blog/zsvirt-faq-part-1)回答了安装部署与登录、Windows／GPU／ARM 支持、网络与存储配置，共 10 个问题；下篇继续整理迁移与备份恢复、API 与 SDK 调用、文档与社区反馈、开源范围与平台选型。

### 问题列表一览

- **迁移与备份恢复**
  - 问题 11：从 VMware 迁入 ZSvirt，如何选择迁移方式？
  - 问题 12：OVF 如何导入？数据盘未识别怎么办？
  - 问题 13：Veeam 对接有何计划？内置备份、恢复和异地同步怎么做？
- **API 与 SDK 调用**
  - 问题 14：Java SDK 如何初始化？HTTP 202 如何获取最终结果？
  - 问题 15：ZSvirt 支持 API 对接吗？如何认证和调用？
- **文档与社区反馈**
  - 问题 16：官方文档在哪里？为什么保留 ZStack／ZSphere 的历史命名？
  - 问题 17：故障、功能需求和界面翻译问题如何反馈？
  - 问题 18：安全漏洞如何报告和处理？
- **开源范围与平台选型**
  - 问题 19：开源版能免费用于生产吗？和 OpenStack 是什么关系？
  - 问题 20：平台选型与性能如何评估？有哪些自动化对接入口？

## 迁移与备份恢复

### 问题 11：从 VMware 迁入 ZSvirt，如何选择迁移方式？

**可根据停机窗口和现有文件，选择 ZMigrate 在线迁移、OVF 整机导入或 VMDK 磁盘导入。**

#### ZMigrate 在线迁移

适合批量迁移或需要缩短停机时间的场景。无须在源 VM 内安装代理，源 VM 运行时同步数据，最终割接时再停机。

操作顺序：部署 ZMigrate → 上传 VDDK → 配置数据网关 → 添加 VMware 源平台 → 创建迁移任务 → 同步并测试验证 → 停止源 VM 并割接。

在线迁移有并发限制；OVF、VMDK 离线导入不受该在线并发限制。

#### OVF 整机导入

适合可安排停机导出的场景。关闭源 VM，导出包含 `.ovf`、关联 VMDK 和 MF 文件的完整文件集，再通过“新建虚拟机 > 导入虚拟机”导入。

#### VMDK 磁盘导入

适合已有 VMDK、只需迁移磁盘数据的场景。将 VMDK 添加为平台镜像，平台按镜像存储类型自动转换为 qcow2 或 raw，再用镜像创建 VM。CPU、内存和网络需重新配置，BIOS 模式须与源 VM 一致。

参考：[三种迁移方式与操作流程](https://zsvirt.io/zh/blog/zmigrate-workflow-walkthrough)、[无代理迁移说明](https://zsvirt.io/zh/blog/why-we-open-sourced-zsvirt)、[并发范围说明](https://zsvirt.io/zh/blog/two-weeks-after-open-sourcing-zsvirt)

### 问题 12：OVF 如何导入？数据盘未识别怎么办？

**OVF 导入需准备完整文件集，确保引用匹配，并配置可用的镜像存储。**

支持单机及分布式镜像仓库，生成 VM 后默认自动清理对应临时模板。

1. 准备 `.ovf`、全部关联的 VMDK 和 MF 文件，文件名、个数及配置须与 OVF 描述一致。
2. 进入“*新建虚拟机 > 导入虚拟机*”，上传文件集，选择镜像存储、运行位置和目标数据存储，提交导入。
3. 导入后的硬盘 1 默认使用 IDE，数据盘使用 Virtio。客户机缺少 Virtio 驱动时，安装并启动 [VMTools](https://docs.zsvirt.io/docs/user-guide/compute/vm/vmtools/install-windows) 后，系统才可识别数据盘。**不要初始化原有数据盘。**

参考：[导入手册](https://docs.zsvirt.io/docs/user-guide/compute/vm/basic-operations/import-vm)

### 问题 13：Veeam 对接有何计划？内置备份、恢复和异地同步怎么做？

**Veeam 对接所需的 API Proxy 包计划在后续版本提供，具体发布日期以官方发布为准。**

当前推荐使用 ZSvirt 内置备份与恢复功能，操作步骤如下：

1. 添加备份存储；复用镜像存储时，选择已启用、已连接的单机镜像仓库，填写备份网络 CIDR。
2. 创建 VM 备份计划，选择对象、备份存储和策略；执行一次备份，等待生成成功的恢复点。
3. 在“*数据保护 > 已保护资源*”选择 VM 和成功的备份数据，点击“*新建虚拟机*”，配置运行位置和网络后创建。恢复验证时接入隔离网络，避免与源 VM 冲突。

#### 适用条件

创建备份计划前，确认备份额度可用，VM 处于运行或暂停状态，且未绑定其他备份计划。**共享盘和 RDM 盘不在备份范围内。**

#### 异地同步

提前添加异地备份存储后，可在备份计划中配置异地同步。使用异地备份创建 VM 前，需先将备份同步回本地备份存储。

参考：[备份计划](https://docs.zsvirt.io/docs/user-guide/backup/vm-backup/create-plan)、[复用镜像存储](https://docs.zsvirt.io/docs/user-guide/backup/backup-storage/local/reuse-image-storage)、[恢复步骤](https://docs.zsvirt.io/docs/user-guide/backup/restore/create-vm-from-backup)

## API 与 SDK 调用

### 问题 14：Java SDK 如何初始化？HTTP 202 如何获取最终结果？

**Java SDK 初始化使用 `ZSClient.configure(config)`。HTTP 202 表示已受理，仍需获取最终结果。**

#### 提示 `setConfig()` 未调用

使用 Action 的 `call()` 方法前，先创建并配置 `ZSConfig` 对象，再调用 `ZSClient.configure(config)`。报错中的 `setConfig()` 是提示文字中的错误方法名。

参考：[SDK 初始化源码](https://github.com/zsvirt/zsvirt/blob/4a4d3061b123596393ae577b29c0bc7f22627769/sdk/src/main/java/org/zstack/sdk/ZSClient.java#L118)

#### 收到 HTTP 202

Java SDK 默认轮询获取最终结果；配置 WebHook 并接入回调处理后，通过回调获取结果。直接调用 REST API 时，对响应体中的 `location` 发起 GET 请求；若仍返回 202，则继续轮询，直至获得最终业务结果。失败信息见 `error` 字段。

参考：[SDK 异步结果处理](https://github.com/zsvirt/zsvirt/blob/4a4d3061b123596393ae577b29c0bc7f22627769/sdk/src/main/java/org/zstack/sdk/ZSClient.java#L320)、[服务端结果查询](https://github.com/zsvirt/zsvirt/blob/4a4d3061b123596393ae577b29c0bc7f22627769/rest/src/main/java/org/zstack/rest/RestServer.java#L715)

### 问题 15：ZSvirt 支持 API 对接吗？如何认证和调用？

**ZSvirt 提供 RESTful API，支持 Session 和 AccessKey 签名认证。**

- **Session**：账户登录 API 调用成功后，以响应中的 `inventory.uuid` 作为 Session UUID，请求头使用 `Authorization: OAuth <SessionUUID>`。
- **AccessKey**：在 Java SDK 的 Action 对象中填写 accessKeyId、accessKeySecret，由 SDK 签名；直接 REST 调用按文档生成 `Authorization: ZStack <AccessKeyID>:<签名>`，并携带与签名计算一致的 Date 请求头。

使用有效 Session 查询虚拟机：

```
curl -H 'Authorization: OAuth <SessionUUID>' \
  'http://<管理节点IP>:8080/zstack/v1/vm-instances'
```

示例 URL 按实际 API 地址替换；查询成功后，虚拟机列表位于响应的 `inventories` 字段。

参考：[账户登录 API](https://docs.zsvirt.io/docs/api-reference/system-management/user-configuration/log-in-by-account)、[查询虚拟机 API](https://docs.zsvirt.io/docs/api-reference/compute/vm/query-vm-instance)、[AccessKey 认证](https://docs.zsvirt.io/docs/api-reference/access-key)

## 文档与社区反馈

### 问题 16：官方文档在哪里？为什么保留 ZStack／ZSphere 的历史命名？

**安装文档、用户手册、API 文档和分类 FAQ 均已开放，入口见[文档中心](https://zsvirt.io/docs)。**

ZSvirt 由 ZStack ZSphere 商业化项目开源并独立发展而来，部分代码、配置和文档仍保留 ZStack／ZSphere 的历史命名（如环境变量、配置项、依赖、路径、命令等）。这些命名仅用于兼容，不影响 ZSvirt 正常使用。

参考：[命名说明](https://docs.zsvirt.io/docs/quick-start)

### 问题 17：故障、功能需求和界面翻译问题如何反馈？

**故障反馈需附可复现信息，功能请求需说明使用场景。**

故障、功能需求和界面翻译问题提交到 [Issues](https://github.com/zsvirt/zsvirt/issues)，使用交流发布到 [Discussions](https://github.com/zsvirt/zsvirt/discussions)。故障反馈请附：

```
ZSvirt／SDK 版本与部署方式：
服务器、系统、CPU、网络和存储：
复现步骤、预期结果与实际结果：
失败时间及其时区、任务／资源 ID：
原始错误与对应时段日志：
```

在 GitHub 提交 Issue 或发布 Discussion 前，请移除日志中的密码、令牌和业务敏感数据；界面翻译问题请附页面路径和原文。

参考：[贡献指南](https://github.com/zsvirt/zsvirt/blob/main/CONTRIBUTING.md)

### 问题 18：安全漏洞如何报告和处理？

疑似漏洞请通过安全邮箱私下报告：首选 `security@zsvirt.io`，备选 `community@zsvirt.io`。

不要在公开 Issue 披露漏洞细节。报告附受影响版本、复现条件、影响范围、脱敏证据及回联方式。

维护者按[安全政策](https://github.com/zsvirt/zsvirt/security/policy)接收和验证报告，评估修复或缓解措施，并协调披露。

## 开源范围与平台选型

### 问题 19：开源版能免费用于生产吗？和 OpenStack 是什么关系？

**ZSvirt 由 ZSphere 开源并独立发展，源代码采用 GPL 3.0，可用于生产，无需支付平台许可费。**

ZSvirt 采用独立技术路线，不是 OpenStack 衍生项目。厂商驱动、第三方软件及商业服务遵循各自的许可和收费规则。

参考：[开源范围说明](https://zsvirt.io/zh/blog/why-we-open-sourced-zsvirt)、[生产使用与技术路线说明](https://zsvirt.io/zh/blog/two-weeks-after-open-sourcing-zsvirt)

### 问题 20：平台选型与性能如何评估？有哪些自动化对接入口？

功能与管理方式可参考官方[对比文章](https://zsvirt.io/zh/blog/zsvirt-vs-proxmox-ve)；性能和兼容性需按 [PoC 指南](https://zsvirt.io/zh/blog/evaluate-zsvirt-as-a-vmware-alternative)，在目标硬件、存储和业务负载下验证。

自动化对接入口：[REST API](https://docs.zsvirt.io/docs/api-reference)、[SDK](https://docs.zsvirt.io/docs/api-reference/sdk-specifications)、[Terraform Provider](https://docs.zsvirt.io/docs/terraform-for-zsphere)。

安装部署与登录、Windows／GPU／ARM 支持、网络与存储配置见[上篇](https://zsvirt.io/zh/blog/zsvirt-faq-part-1)。

---

- 代码仓库：[https://github.com/zsvirt/zsvirt](https://github.com/zsvirt/zsvirt)
- 下载中心：[https://zsvirt.io/zh/download](https://zsvirt.io/zh/download)
- 文档中心：[https://zsvirt.io/docs](https://zsvirt.io/docs)

## 加入社区

- **问题反馈**：[GitHub Issues](https://github.com/zsvirt/zsvirt/issues)
- **社区讨论**：[GitHub Discussions](https://github.com/zsvirt/zsvirt/discussions)
- **社交媒体**：
  - YouTube：[https://youtube.com/@ZSvirt](https://youtube.com/@ZSvirt)
  - LinkedIn：[https://www.linkedin.com/in/zsvirt-community/](https://www.linkedin.com/in/zsvirt-community/)
  - X/Twitter：[https://x.com/ZSvirt](https://x.com/ZSvirt)
  - Discord：[https://discord.com/invite/KHsw63z9xA](https://discord.com/invite/KHsw63z9xA)
  - Email：[community@zsvirt.io](mailto:community@zsvirt.io)

## 官方链接


- [规范 HTML 页面](https://zsvirt.io/zh/blog/zsvirt-faq-part-2/)
- [在 GitHub 讨论](https://github.com/ZSvirt/zsvirt/discussions)
