概述
Windows模板封装是将已安装必要软件(驱动、QGA等软件)的Windows云主机,清除重建SID(安全标识符,用于标识用户、组和计算机帐户的唯一的号码)并封装为云主机镜像,主要用于定制化批量创建云主机。
- 本教程以Windows 10 Enterprise Evaluation 22H2 x64为例。
- 本教程适用ZStack Cloud云平台V5.5.38。
环境准备
模板封装需要提前准备以下软件/工具:
- 云平台:ZStack Cloud V5.5.38
- Windows镜像:请在Microsoft官网按需获取Windows镜像,并遵守相关授权许可。本教程参考版本为Windows 10 Enterprise Evaluation 22H2 x64。
- GuestTools:使用云平台提供的GuestTools,本教程参考版本为5.5.0。
模板封装
- 添加镜像。
- 安装操作系统。
- 安装GuestTools及其他软件。
- 系统预处理。
- 创建系统模板。
以下以Windows 10操作系统为例,详细介绍Windows 10模板封装完整流程。
添加镜像
将Windows 10镜像添加到ZStack Cloud镜像列表,为安装操作系统使用。
- 名称:设置镜像名称
- 简介:可选项,可留空不填
- 镜像类型:选择镜像类型,本场景选择:系统镜像
- 镜像格式:选择镜像格式,本场景选择:iso
- CPU架构:设置镜像的CPU架构,云主机在创建时将继承镜像的CPU架构,此处选择x86_64
- 平台:选择平台类型Windows
- 操作系统:选择Windows 10。
- Virtio:关闭
- 镜像服务器:选择已添加的镜像服务器
- 镜像路径:选择并填写添加镜像的URL路径或本地文件路径注:
- URL路径支持HTTP/HTTPS/FTP/SFTP 格式和file:///两种格式,其中file:///格式目前仅支持镜像仓库。
- 本地文件,表示选择当前浏览器可访问的镜像直接上传,支持镜像仓库。
- BIOS模式:选择UEFI。

安装操作系统
使用添加的Windows 10镜像创建云主机并安装操作系统。
创建云主机
- 基础配置。可参考以下示例输入相应内容:
- 名称:设置云主机名称
- 简介:可选项,可设置云主机简介
- 数量:设置云主机数量,支持批量创建云主机
- 标签:可选项,可为云主机绑定一个或多个标签
- 分组:可选项,为云主机选择分组。如不选择,云主机将归属至默认分组
- 设置云主机规格有以下两种方式:
- 基础规格:选择云平台已有规格创建云主机
- 计算规格:选择云平台已有计算规格
- 镜像:选择云平台已有镜像
- BIOS模式:选择云主机BIOS模式,默认与镜像BIOS模式保持一致
- 数据云盘:可选项,可为云主机创建并加载数据云盘
- 数据云盘规格:选择云平台已有数据云盘规格
- VirtioSCSI:可选项,可为云主机创建VirtioSCSI类型的数据云盘
- 自定义规格:自定义规格创建云主机
- CPU:设置云主机CPU核数
- 内存:设置云主机内存
- 镜像:选择云平台已有镜像
- BIOS模式:选择云主机BIOS模式,默认与镜像BIOS模式保持一致
- 数据云盘:可选项,可为云主机创建并加载数据云盘
- 数据云盘容量:设置数据云盘容量
- VirtioSCSI:可选项,可为云主机创建VirtioSCSI类型的数据云盘
- 基础规格:选择云平台已有规格创建云主机
- 资源配置。可参考以下示例输入相应内容:
- 网络配置:选择创建云主机使用的三层网络及相关配置,需配置以下参数:
- 网络:选择创建云主机使用的三层网络,包括:私有网络、公有网络、VPC网络
- 设为默认网络:若同时添加多个网络配置,可指定默认网络
- 启用SR-IOV:可选项,选择是否启用SR-IOV功能
- 指定IP:可选项,可自定义配置云主机IP地址
- MAC地址:可选项,可自定义配置云主机MAC地址
- 安全组:可选项,可为云主机配置安全组
- 集群:可选项,指定启动云主机的物理机所在的集群
- 存储分配策略:可选项,选择存储分配策略
- 物理机:选择指定的物理机来启动云主机。如果已经选择了集群,只能选择该集群所在的物理机
- 虚拟光驱:为云主机创建更多虚拟光驱
- GPU:通过指定规格或指定设备方式为云主机加载GPU设备(物理GPU、vGPU)
- CPU绑定:创建云主机时,设置云主机的虚拟CPU(vCPU)与物理机的物理CPU(pCPU)严格关联,可给云主机分配特定的pCPU,提高云主机性能
- 网络配置:选择创建云主机使用的三层网络及相关配置,需配置以下参数:
- 系统配置。可参考以下示例输入相应内容:
- 主机名:可选项,可设置云主机的主机名
- UserData:可选项,支持上传用户自定义的参数或脚本,对主机做一些定制化配置或完成特定任务
- 控制台密码:可选项,可设置云主机控制台密码
- 控制台模式:可选项,可设置云主机控制台登录模式
- 确认信息。
查看将要创建的云主机,支持跳转修改。
本例选择2个vCPU、4 GiB内存、80 GiB根云盘和UEFI启动方式,关闭VirtIO。

安装操作系统
在云主机详情页点击打开控制台,进入Windows安装界面。选择语言和键盘设置,阅读并按许可条件接受协议。选择Custom: Install Windows only (advanced),再选择新建根云盘,点击Next开始安装。


安装过程中系统将自动重启,控制台中断后重新进入即可。到达首次启动设置(OOBE)界面后,按Ctrl+Shift+F3重启并进入审核模式。出现Sysprep窗口时,点击Cancel,继续安装GuestTools。
安装GuestTools及其他软件
| 类别 | 名称 | 作用 |
|---|---|---|
| Virtio驱动 | SCSI控制器驱动 | Virtio类型的存储控制器驱动,能够有效提高虚拟化环境中云主机的磁盘性能。 |
| PCI简易通讯控制器驱动 | 安装PCI简易通讯控制器驱动后,Windows云主机能够与底层KVM虚拟化通信。 | |
| PCI设备驱动 | 安装并开启内存监控后Windows将支持气球内存伸缩功能。 | |
| 以太网控制器驱动 | Virtio类型的以太网控制器驱动,能够有效提高虚拟化环境中云主机的网络性能。 | |
| 常用工具 | QGA (QEMU Guest Agent) |
实现物理机与云主机进行交互的应用程序,此交互方式不依赖网络,大大增强云主机的性能与功能。 检测云主机内GuestTools及Virtio驱动状态。 安装后云主机默认支持在线修改密码功能。 |
| Cloudbase-Init | 安装Cloudbase-Init的云主机支持导入User Data等定制化功能。 | |
| agent内部监控 |
安装agent后可以查看云主机内部监控数据。 |
安装GuestTools
- 操作系统安装完成后,进入云主机详情页,点击安装性能优化工具,挂载GuestTools ISO。
- 进入云主机控制台,打开GUESTTOOLS-5.5.0光驱,运行安装程序。根据向导安装驱动和Visual C++运行库。本版本随后自动安装QEMU Guest Agent并配置Cloudbase-Init 1.1.8。
- 安装完成后,保留Reboot the computer to finish installation!勾选,点击Finish,重启计算机使配置生效。

系统重启后,在云主机详情页确认性能优化工具显示已安装。

安装其他软件(可选)
除了GuestTools包含的工具/驱动,您可按需安装其他软件。若设备管理器中的ACPI\QEMU0002设备显示Code 28,挂载virtio-win-0.1.302.iso,使用qemufwcfg\w10\amd64中的签名驱动更新该设备。
系统预处理
系统预处理是通过Windows系统自带的系统准备工具(Sysprep)为硬件独立和清理准备计算机。可参考以下步骤执行系统预处理:
- 清理临时文件、测试数据和个人信息,完成系统更新及重启。
- 使用管理员权限打开CMD命令行,执行以下命令。示例使用Cloudbase-Init配套应答文件,安装路径不同时请修改路径。
cd /d "C:\Program Files\Cloudbase Solutions\Cloudbase-Init" %WINDIR%\System32\Sysprep\Sysprep.exe /generalize /oobe /shutdown ^ /unattend:"%CD%\conf\Unattend.xml" - 等待Sysprep执行完成并自动关机;如执行失败,先排查错误,不要以手动关机代替系统预处理。在平台卸载安装ISO和工具ISO,保持云主机关机并创建镜像。
创建系统模板
成功创建系统模板后,可使用该镜像定制化批量创建云主机,也可导出镜像用于其他云平台创建云主机。
创建云主机镜像
在云主机界面选中需要创建镜像的云主机,点击按钮,进入创建镜像界面。
- 名称:填写创建镜像的名称
- 简介:可选项,可留空不填
- 镜像类型:选择系统镜像
- 镜像服务器:选择已添加的镜像服务器
导出镜像
- ImageStore类型镜像服务器:
在镜像页面点击按钮,即可导出镜像。
镜像生成后,可在总览页面复制已导出的镜像URL下载镜像,也可在导出记录页面复制已导出的镜像URL或直接点击下载镜像。
- Ceph类型镜像服务器:Ceph类型镜像服务器支持UI导出和镜像服务器导出两种方式:
- 在UI上导出:
在镜像页面点击按钮,即可导出镜像。
镜像导出后,可以在总览页面复制已导出的镜像URL下载镜像,也可以在导出记录页面复制已导出的镜像URL或直接点击下载镜像。
- 在镜像服务器上导出:
- 进入已创建镜像的总览页面,复制安装路径。
- 登录Ceph服务器终端,使用rbd
export命令导出,例如:假定获取到的安装路径为ceph://bak-t-c9923f982/61ece0adc72,使用以下命令导出镜像:
[root@ceph-node1 ~]#rbd export bak-t-c9923f982/61ece0adc72 /root/export-test.image #bak-t-c9923f982表示镜像所在的pool的名字 #61ece0adc72表示镜像的名字 #/root/export-test.image表示导出的目标文件名字注: rbd export命令中不包含 ceph:// 前缀。
- 在UI上导出:

