文档目录

概述

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。

模板封装

Windows 10模板封装的基本流程如下:
  1. 添加镜像。
  2. 安装操作系统。
  3. 安装GuestTools及其他软件。
  4. 系统预处理。
  5. 创建系统模板。

以下以Windows 10操作系统为例,详细介绍Windows 10模板封装完整流程。

添加镜像

将Windows 10镜像添加到ZStack Cloud镜像列表,为安装操作系统使用。

在ZStack Cloud主菜单,点击资源中心 > 云资源池 > 计算配置 > 镜像按钮。在镜像页面,点击添加镜像按钮。在弹出的添加镜像界面,可参考以下示例输入相应内容:
  • 名称:设置镜像名称
  • 简介:可选项,可留空不填
  • 镜像类型:选择镜像类型,本场景选择:系统镜像
  • 镜像格式:选择镜像格式,本场景选择:iso
  • CPU架构:设置镜像的CPU架构,云主机在创建时将继承镜像的CPU架构,此处选择x86_64
  • 平台:选择平台类型Windows
  • 操作系统:选择Windows 10。
  • Virtio:关闭
  • 镜像服务器:选择已添加的镜像服务器
  • 镜像路径:选择并填写添加镜像的URL路径或本地文件路径
    注:
    • URL路径支持HTTP/HTTPS/FTP/SFTP 格式和file:///两种格式,其中file:///格式目前仅支持镜像仓库。
    • 本地文件,表示选择当前浏览器可访问的镜像直接上传,支持镜像仓库。
  • BIOS模式:选择UEFI。
如图 1所示:
图 1. 安装镜像就绪


安装操作系统

使用添加的Windows 10镜像创建云主机并安装操作系统。

创建云主机

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

    查看将要创建的云主机,支持跳转修改。

本例选择2个vCPU、4 GiB内存、80 GiB根云盘和UEFI启动方式,关闭VirtIO。

图 2. 源云主机配置确认(英文界面示例)

源云主机配置确认(英文界面示例)

安装操作系统

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

图 3. 选择自定义安装(英文界面示例)

选择自定义安装(英文界面示例)
图 4. 选择安装目标盘(英文界面示例)

选择安装目标盘(英文界面示例)

安装过程中系统将自动重启,控制台中断后重新进入即可。到达首次启动设置(OOBE)界面后,按Ctrl+Shift+F3重启并进入审核模式。出现Sysprep窗口时,点击Cancel,继续安装GuestTools。

安装GuestTools及其他软件

GuestTools是ZStack Cloud为Windows云主机提供的性能优化工具,其中包含以下工具/驱动:
类别 名称 作用
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

  1. 操作系统安装完成后,进入云主机详情页,点击安装性能优化工具,挂载GuestTools ISO。
  2. 进入云主机控制台,打开GUESTTOOLS-5.5.0光驱,运行安装程序。根据向导安装驱动和Visual C++运行库。本版本随后自动安装QEMU Guest Agent并配置Cloudbase-Init 1.1.8。
  3. 安装完成后,保留Reboot the computer to finish installation!勾选,点击Finish,重启计算机使配置生效。
图 5. GuestTools安装完成(英文界面示例)

GuestTools安装完成(英文界面示例)

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

图 6. 平台GuestTools状态

平台GuestTools状态

安装其他软件(可选)

除了GuestTools包含的工具/驱动,您可按需安装其他软件。若设备管理器中的ACPI\QEMU0002设备显示Code 28,挂载virtio-win-0.1.302.iso,使用qemufwcfg\w10\amd64中的签名驱动更新该设备。

系统预处理

系统预处理是通过Windows系统自带的系统准备工具(Sysprep)为硬件独立和清理准备计算机。可参考以下步骤执行系统预处理:

  1. 清理临时文件、测试数据和个人信息,完成系统更新及重启。
  2. 使用管理员权限打开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"
  3. 等待Sysprep执行完成并自动关机;如执行失败,先排查错误,不要以手动关机代替系统预处理。在平台卸载安装ISO和工具ISO,保持云主机关机并创建镜像。

创建系统模板

成功创建系统模板后,可使用该镜像定制化批量创建云主机,也可导出镜像用于其他云平台创建云主机。

创建云主机镜像

在云主机界面选中需要创建镜像的云主机,点击操作 > 快照与镜像 > 创建镜像按钮,进入创建镜像界面。

可参考以下示例输入相应内容:
  • 名称:填写创建镜像的名称
  • 简介:可选项,可留空不填
  • 镜像类型:选择系统镜像
  • 镜像服务器:选择已添加的镜像服务器
如图 7所示,点击确定按钮,等待创建任务完成并确认镜像可用。
图 7. 创建镜像


注: 系统预处理完成后,请保持源云主机关机,避免再次触发首次初始化。

导出镜像

导出镜像用于其他云平台直接使用该镜像创建云主机,不同类型镜像服务器的导出方法不同:
  • ImageStore类型镜像服务器:

    在镜像页面点击操作 > 导出镜像按钮,即可导出镜像。

    镜像生成后,可在总览页面复制已导出的镜像URL下载镜像,也可在导出记录页面复制已导出的镜像URL或直接点击下载镜像。

  • Ceph类型镜像服务器:
    Ceph类型镜像服务器支持UI导出和镜像服务器导出两种方式:
    • 在UI上导出:

      在镜像页面点击操作 > 导出镜像按钮,即可导出镜像。

      镜像导出后,可以在总览页面复制已导出的镜像URL下载镜像,也可以在导出记录页面复制已导出的镜像URL或直接点击下载镜像。

    • 在镜像服务器上导出:
      1. 进入已创建镜像的总览页面,复制安装路径。
      2. 登录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:// 前缀。
Windows 10 系统模板封装教程 | 5.5.38 | ZStack Cloud · ZCF | ZStack 资源中心