概述
Windows模板封装是将已安装必要软件(驱动、QGA等软件)的Windows云主机,清除重建SID(安全标识符,用于标识用户、组和计算机帐户的唯一的号码)并封装为云主机镜像,主要用于定制化批量创建云主机。
- 本教程适用Windows版本:Windows Server 2008 R2、Windows Server 2012 R2、Windows 7、Windows 10、Windows Server 2016、Windows Server 2019。
- 本教程适用ZStack Cloud云平台版本:5.4.12及以上版本。
环境准备
- ZStack Cloud云平台:
请在官网获取5.4.12及以上最新版本。
- Windows镜像:
请在Microsoft官网按需获取Windows镜像,并遵守相关授权许可。本教程参考版本为:cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_x64_dvd_617598.iso。
- USB3.0驱动(可选):
Windows Server 2008 R2操作系统仅自带USB2.0驱动,请按需安装USB3.0驱动,参考路径(64位):http://cdn.zstack.io/tools/renesas_usb30_21390.exe 。
模板封装
- Windows方式:添加镜像使用Windows平台类型,封装模板包含IDE和Virtio两类驱动,务必按照Windows方式模板封装方法进行操作。
- WindowsVirtio方式:添加镜像使用Windows平台类型,并打开Virtio开关,封装模板仅包含Virtio类型驱动,务必按照Windows Virtio方式模板封装方法进行操作。
Windows方式模板封装
- 添加镜像。
- 安装操作系统。
- 安装GuestTools及其他软件。
- 系统预处理。
- 创建系统模板。
以下以Windows Server 2008 R2操作系统为例,详细介绍Windows方式模板封装完整流程。
添加镜像
将Windows Server 2008 R2镜像添加到ZStack Cloud镜像列表,为安装操作系统使用。
- 名称:设置镜像名称
- 简介:可选项,可留空不填
- 镜像类型:选择镜像类型,本场景选择:系统镜像
- 镜像格式:选择镜像格式,本场景选择:iso
- CPU架构:设置镜像的CPU架构,云主机在创建时将继承镜像的CPU架构,此处选择x86_64
- 平台:选择平台类型Windows
- 操作系统:选择Windows
- Virtio:关闭
- 镜像服务器:选择已添加的镜像服务器
- 镜像路径:选择并填写添加镜像的URL路径或本地文件路径Note:
- URL路径支持HTTP/HTTPS/FTP/SFTP 格式和file:///两种格式,其中file:///格式目前仅支持镜像仓库。
- 本地文件,表示选择当前浏览器可访问的镜像直接上传,支持镜像仓库。
- BIOS模式:选择BIOS模式,默认为Legacy。包括:Legacy和UEFI
- Legacy:所有操作系统均支持此模式。
- UEFI:Windows 7、Windows Server 2008 R2、Windows 8及以后版本支持此模式。Note:
- 对于使用UEFI引导模式的Windows云主机(例如:Windows
Server 2012 R2、Windows Server 2016和Windows
10等版本),启动后会显示如下页面,需按任意键继续安装,否则将进入UEFI Shell,如图 1所示:
若进入UEFI Shell,需执行以下命令,才能成功启动进入操作系统:图 1. 按下任意键继续 
操作后请及时按任意键,否则会再次进入UEFI Shell。Shell> fs0: FS0:\> dir FS0:\> cd EFI FS0:\EFI\> cd BOOT FS0:\EFI\BOOT\> BOOTX64.EFI
- 对于使用UEFI引导模式的Windows云主机(例如:Windows
Server 2012 R2、Windows Server 2016和Windows
10等版本),启动后会显示如下页面,需按任意键继续安装,否则将进入UEFI Shell,如图 1所示:

安装操作系统
使用添加的Windows Server 2008 R2镜像创建云主机并安装操作系统。
创建云主机
- 基础配置。可参考以下示例输入相应内容:
- 名称:设置云主机名称
- 简介:可选项,可设置云主机简介
- 数量:设置云主机数量,支持批量创建云主机
- 标签:可选项,可为云主机绑定一个或多个标签
- 分组:可选项,为云主机选择分组。如不选择,云主机将归属至默认分组
- 设置云主机规格有以下两种方式:
- 基础规格:选择云平台已有规格创建云主机
- 计算规格:选择云平台已有计算规格
- 镜像:选择云平台已有镜像
- 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,提高云主机性能
- 网络配置:选择创建云主机使用的三层网络及相关配置,需配置以下参数:
- 系统配置。可参考以下示例输入相应内容:
- SSH登录方式:可选项,可设置云主机SSH登录方式
- 主机名:可选项,可设置云主机的主机名
- UserData:可选项,支持上传用户自定义的参数或脚本,对主机做一些定制化配置或完成特定任务
- 控制台密码:可选项,可设置云主机控制台密码
- 控制台模式:可选项,可设置云主机控制台登录模式
- 确认信息。
查看将要创建的云主机,支持跳转修改。

安装操作系统
在云主机界面选中云主机名称,点击按钮,进入控制台后显示云主机安装界面。

请参考常规Windows Server 2008 R2安装操作系统进行配置,安装系统过程将自动重启系统,可能导致控制台中断,重新进入即可。操作系统安装完毕后,自定义设置管理员密码并登录系统,至此Windows系统安装完毕。

预防磁盘脱机设置
C:\Users\Administrator> diskpart ::进入diskpart
DISKPART> san ::查看SAN策略
DISKPART> san policy=onlineall ::使用diskpart更改SAN策略
DISKPART> exit安装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 ISO到云主机。
- 加载GuestTools镜像:
- 安装GuestTools及Virtio驱动:
右键选择从媒体安装或运行程序或双击运行GuestTools安装程序,根据弹出的安装向导提示,依次安装GuestTools、常用工具和Virtio驱动。
如图 7所示:图 7. 安装GuestTools 

- 确认完成并重启计算机:
GuestTools安装完成后,在弹出的完成框中点击Finish按钮,确认完成并重启计算机使配置生效。
如图 8所示:图 8. 完成并重启计算机 
系统重启后,将自动修改云主机的平台为:Windows Virtio。
安装其他软件(可选)
除了GuestTools中包含的工具/驱动,用户可按需安装其他软件。
例如:Windows Server 2008 R2操作系统仅自带USB2.0驱动,用户可按需安装USB3.0驱动,安装后USB3.0支持USB透传功能。
可通过以下链接获取驱动文件:http://cdn.zstack.io/tools/renesas_usb30_21390.exe ,下载后双击文件即可安装。

系统预处理
- 使用管理员权限打开CMD命令行;
- 进入C:\Windows\System32\sysprep目录运行Sysprep工具;
- 配置预处理规则并执行操作。请参考以下示例进行设置:
- 系统清理操作:选择进入系统全新体验(OOBE)
- 通用:勾选此选项。勾选后,使用封装模板新创建的云主机系统具有独立唯一SID
- 关机选项:选择关机
- 允许执行第三方脚本:
在云主机内,执行
Set-ExecutionPolicy RemoteSigned -Force,允许执行第三方脚本,保证网络配置下发、读取、执行脚本等平台功能可正常使用。
创建系统模板
成功创建系统模板后,可使用该镜像定制化批量创建云主机,也可导出镜像用于其他云平台创建云主机。
创建云主机镜像
在云主机界面选中需要创建镜像的云主机,点击按钮,进入创建镜像界面。
- 名称:填写创建镜像的名称
- 简介:可选项,可留空不填
- 镜像类型:选择系统镜像
- 镜像服务器:选择已添加的镜像服务器

导出镜像
- 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表示导出的目标文件名字Note: rbd export命令中不包含 ceph:// 前缀。
- 在UI上导出:
Windows Virtio方式模板封装
- 添加镜像。
- 安装操作系统。
- 安装GuestTools及其他软件。
- 系统预处理。
- 创建系统模板。
以下以Windows Server 2008 R2操作系统为例,详细介绍Windows Virtio方式模板封装完整流程。
添加镜像
将Windows Server 2008 R2镜像和Virtio驱动镜像添加到ZStack Cloud镜像列表,为安装操作系统使用。
添加Windows镜像
在ZStack Cloud主菜单,点击,进入镜像界面。点击添加镜像,弹出添加镜像界面。
- 名称:设置镜像名称
- 简介:可选项,可留空不填
- 镜像类型:选择镜像类型,本场景选择:系统镜像
- 镜像格式:选择镜像格式,本场景选择:iso
- CPU架构:设置镜像的CPU架构,云主机在创建时将继承镜像的CPU架构,此处选择x86_64
- 平台:选择平台类型Windows
- 操作系统:选择WindowsServer2008
- Virtio:打开
- 镜像服务器:选择已创建的镜像服务器
- 镜像路径:选择并填写添加镜像的URL路径或本地文件路径Note:
- URL路径支持HTTP/HTTPS/FTP/SFTP 格式和file:///两种格式,其中file:///格式目前仅支持镜像仓库和Sftp镜像服务器。
- 本地文件,表示选择当前浏览器可访问的镜像直接上传,支持镜像仓库。
- BIOS模式:选择BIOS模式,默认为Legacy。包括:Legacy和UEFI
- Legacy:所有操作系统均支持此模式。
- UEFI:Windows 7、Windows Server 2008 R2、Windows 8及以后版本支持此模式。Note:
- 对于使用UEFI引导模式的Windows云主机(例如:Windows
Server 2012 R2、Windows Server 2016和Windows
10等版本),启动后会显示如下页面,需按任意键继续安装,否则将进入UEFI Shell,如图 12所示:
若进入UEFI Shell,需执行以下命令,才能成功启动进入操作系统:图 12. 按下任意键继续 
操作后请及时按任意键,否则会再次进入UEFI Shell。Shell> fs0: FS0:\> dir FS0:\> cd EFI FS0:\EFI\> cd BOOT FS0:\EFI\BOOT\> BOOTX64.EFI
- 对于使用UEFI引导模式的Windows云主机(例如:Windows
Server 2012 R2、Windows Server 2016和Windows
10等版本),启动后会显示如下页面,需按任意键继续安装,否则将进入UEFI Shell,如图 12所示:

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

- 64位操作系统磁盘驱动路径:viostor\*\amd64
- 32位操作系统磁盘驱动路径:viostor\*\x86

磁盘驱动加载完成后,选择系统安装路径并点击下一步按钮,继续之前的安装。安装系统过程将自动重启系统,可能导致控制台中断,重新进入即可。操作系统安装完毕后,自定义设置管理员密码并登录系统,至此Windows系统安装完毕。

预防磁盘脱机设置
C:\Users\Administrator> diskpart ::进入diskpart
DISKPART> san ::查看SAN策略
DISKPART> san policy=onlineall ::使用diskpart更改SAN策略
DISKPART> exit安装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 ISO到云主机。
- 加载GuestTools镜像:进入云主机控制台界面,点击GuestTools安装提示中的立即安装按钮,系统将自动加载GuestTools镜像到虚拟光驱,可前往计算机界面查看,如图 19所示:
图 19. 加载GuestTools镜像 
- 安装GuestTools及Virtio驱动:
右键选择从媒体安装或运行程序或双击运行GuestTools安装程序,根据弹出的安装向导提示,依次安装GuestTools、常用工具和Virtio驱动。
如图 20所示:图 20. 安装GuestTools 

- 确认完成并重启计算机:
GuestTools安装完成后,在弹出的完成框中点击Finish按钮,确认完成并重启计算机使配置生效。
如图 21所示:图 21. 完成并重启计算机 
系统重启后,将自动修改云主机的平台为:Windows Virtio。
安装其他软件(可选)
除了GuestTools中包含的工具/驱动,用户可按需安装其他软件。
例如:Windows Server 2008 R2操作系统仅自带USB2.0驱动,用户可按需安装USB3.0驱动,安装后USB3.0支持USB透传功能。
可通过以下链接获取驱动文件:http://cdn.zstack.io/tools/renesas_usb30_21390.exe ,下载后双击文件即可安装。

系统预处理
- 使用管理员权限打开CMD命令行;
- 进入C:\Windows\System32\sysprep目录运行Sysprep工具;
- 配置预处理规则并执行操作。请参考以下示例进行设置:
- 系统清理操作:选择进入系统全新体验(OOBE)
- 通用:勾选此选项。勾选后,使用封装模板新创建的云主机系统具有独立唯一SID
- 关机选项:选择关机
- 允许执行第三方脚本:
在云主机内,执行
Set-ExecutionPolicy RemoteSigned -Force,允许执行第三方脚本,保证网络配置下发、读取、执行脚本等平台功能可正常使用。
创建系统模板
成功创建系统模板后,可使用该镜像定制化批量创建云主机,也可导出镜像用于其他云平台创建云主机。
创建云主机镜像
在云主机界面选中需要创建镜像的云主机,点击按钮,进入创建镜像界面。
- 名称:填写创建镜像的名称
- 简介:可选项,可留空不填
- 镜像类型:选择系统镜像
- 镜像服务器:选择已添加的镜像服务器

导出镜像
- 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表示导出的目标文件名字Note: rbd export命令中不包含 ceph:// 前缀。
- 在UI上导出:


