在System Center Virtual Machine Manager(简称SCVMM或VMM)的架构里,库(Library)是一个非常关键但又容易被新手忽视的组件。它本质上是一个共享存储库,专门用来存放虚拟硬盘文件(VHD/VHDX)、ISO镜像、虚拟机模板、服务模板、脚本、应答文件(sysprep.inf、unattend.xml)等各种资源。没有库服务器,VMM就只是个简单的管理控制台;有了库服务器配合模板机制,才能真正实现虚拟机的标准化批量交付。本文将从库服务器的搭建配置讲起,一步步演示虚拟机模板的创建与使用方法。

一、VMM库服务器的概念与添加配置
库服务器是一台承载库共享文件夹的主机,通常在安装VMM管理服务器时会自动创建一个默认库共享,路径一般是C:\ProgramData\Virtual Machine Manager Library Files,并通过SMB共享给VMM使用。生产环境中推荐把库单独部署到一台专用服务器或文件服务器集群上,避免与管理服务器争抢资源,同时也便于后续做容量扩展。
添加库服务器的操作在VMM控制台的“库”视图中完成:点击“添加库服务器”,输入计算机名或浏览AD中的对象,VMM会自动安装VMM代理到目标主机。添加完成后需要指定一个共享文件夹作为库共享,VMM默认会给出MSSCVMMLibrary这样的名称。需要注意的是,共享权限由VMM自动配置,不要手动改动NTFS权限,否则会导致资源扫描失败。
库服务器添加后,VMM每隔一小时会自动执行一次库刷新(Library Refresh),扫描共享中的文件变化。如果手动上传了一个VHDX文件却看不到,可以在库视图右侧点“刷新”强制同步。也可以用PowerShell触发刷新:
# 获取库服务器并手动刷新库对象
Get-SCLibraryShare | Refresh-SCLibraryShare
# 查看库共享中的所有资源
Get-SCLibraryResource | Where-Object { $_.ResourceType -eq "Virtual Hard Disk" } |
Select-Object Name, SharePath
二、库资源的组织与管理规范
库共享内部建议按照资源类型建立清晰的目录结构,例如VHD文件夹存放基础磁盘、ISO文件夹存放安装镜像、Scripts存放自定义脚本、AnswerFiles存放无人值守应答文件。良好的目录结构不仅方便管理员查找,也能让模板引用的路径保持稳定,后期迁移库服务器时工作量会小很多。
存放虚拟硬盘时有几个注意点。第一,作为模板母盘的VHDX应该是经过Sysprep泛化处理的干净系统盘,不要携带特定计算机名和域信息。第二,建议为每个操作系统版本和补丁状态维护独立的母盘文件,命名采用类似Win2022-Std-Core-202406.vhdx这种带版本号的格式,方便回溯。第三,差异磁盘虽然节省空间,但在模板场景下容易造成链式依赖,除非明确需要,否则尽量使用动态扩展或固定大小的完整磁盘。
除了磁盘和镜像,库中还可以存放“来宾操作系统配置文件”和“硬件配置文件”这类逻辑资源。硬件配置文件预先定义CPU数量、内存大小、虚拟交换机、逻辑网络等参数;来宾配置文件则定义操作系统类型、域加入信息、产品密钥、时区等。这两类文件可以被多个模板复用,是减少重复配置的有效手段。
三、基于Sysprep母盘创建虚拟机模板
创建模板的第一步是准备一个模板母盘。常见做法是先创建一台虚拟机,安装好操作系统、补丁、常用软件和防病毒客户端,然后运行Sysprep泛化并关机:
:: 在来宾操作系统内执行泛化 C:\Windows\System32\sysprep\sysprep.exe /generalize /oobe /shutdown /mode:vm
泛化完成后,在VMM控制台的“VM和服务”视图中右键这台虚拟机,选择“创建”,再选“VM模板”。VMM会提示此操作将破坏源虚拟机(因为模板本质上是泛化磁盘加配置的封装),确认后进入向导流程。
向导中需要依次配置几个关键部分。硬件配置页可以指定代数(第一代或第二代虚拟机)、CPU、内存、磁盘和网络适配器,其中网络适配器建议绑定到逻辑网络并设置为静态IP模式配合IP池使用,这样部署出来的虚拟机能自动获得IP地址。操作系统配置页则填写计算机名模式(例如用通配符Web###自动生成Web001、Web002这样的名字)、管理员密码、域名加入凭据、产品密钥和时区。这些配置会写入unattend应答文件,部署时由来宾代理自动注入,实现全程无人值守。
也可以完全用PowerShell完成模板创建,便于纳入自动化流程:
# 从库中获取泛化后的硬盘
$vhdx = Get-SCVirtualHardDisk -Name "Win2022-Std-Core.vhdx"
# 创建硬件配置文件
$hwProfile = New-SCHardwareProfile -Name "WebHW" -CPUCount 4 `
-MemoryMB 8192 -VirtualVideoAdapterEnabled $true
# 创建VM模板
New-SCVMTemplate -Name "Win2022-Web-Template" `
-VirtualHardDisk $vhdx -HardwareProfile $hwProfile `
-ComputerNamePattern "Web####" -AdministratorPassword "P@ssw0rd!" `
-FullTemplateName "Windows Server 2022 Web模板"
四、使用模板部署虚拟机的流程与验证
模板建好之后,创建虚拟机变成了几分钟的事情。在“VM和服务”视图中点击“创建虚拟机”,选择“使用现有虚拟机模板”,向导会自动带入模板中的硬件和操作系统配置,只需要确认放置的主机组,VMM的智能放置功能(Placement)会根据CPU、内存、磁盘和网络评分推荐最合适的主机。
部署过程中VMM会执行几个动作:把库中的母盘VHDX复制到目标主机的存储路径,创建虚拟机配置文件,然后启动虚拟机。虚拟机首次开机时来宾内部的Sysprep过程被触发,按照模板中定义的unattend配置完成计算机名设置、加域、网络配置等操作。整个过程无需人工干预,这也是模板相比手工安装最大的价值所在。
部署完成后建议做几项验证:确认虚拟机能拿到IP池分配的地址、能成功加域、来宾中VMM来宾服务处于运行状态。日常维护中,当操作系统出现重大补丁或软件版本更新时,应重新制作母盘并更新模板,保持版本迭代的可追溯性。通过库服务器加模板的组合,配合VMM的服务模板甚至可以做到多层应用的一键部署,为私有云环境的标准化交付打下坚实基础。