VHD Native Boot 的路演日志(路演使用 VHD Native Boot 打造多系统应用环境)已经发布过了,再配合之前关于 VHD Native Boot 的文章应该算比较全面的,贯穿下来相信大家能够掌握 VHD Native Boot 这一创新且具颠覆性的新特性。而今天将要与大家分享的是使用 Windows Deployment Services(WDS)部署 VHD Native Boot,通过这篇文章相信大家会有很大的收获!使用 WDS 部署 VHD Native Boot 将会更加方便快捷,因为 WDS 会自动帮你在裸机上创建相关的引导信息。此外,如果现有分区上已经存在系统,WDS 部署的 VHD Native Boot 能够自动创建配置多引导。更酷的是可以部署多个 VHD Native Boot 到计算机上,同时支持差异磁盘方式以及动态磁盘。种种特性预示着该技术将会在企业环境中大大被利用,例如我们可以利用 WDS 向一台已经安装有 Windows XP 或 Windows Vista 的计算机部署一个 Windows 7 VHD,或一个事先经过预安装配置的 Windows 7系统,作为测试或过渡使用。此外使用 VHD 还同步支持物理机和虚拟机的部署,我们只需要维护一份 VHD,便可以将其部署物理计算机或虚拟系统上,效率方面得到了进一步的提升。当然 VHD Native Boot 的更多应用还有待大家去发掘,就目前而言,VHD 已经渗透到了微软多个产品中,如我们所熟悉的虚拟机磁盘;Windows Vista/7 Complete PC Backup,Windows Server Backup 备份的文件格式;iSCSI LUNs 的后端存储以及SCVMM中的 Management Support。

        下面就让 gOxiA 引领大家开始这一体验之旅,在开始前有必要提示一下准备工作,首先要准备一个完整的 WDS 环境,需要注意的是 WDS 必须是基于 Windows Server 2008 R2 的,因为部署 VHD 这一功能只有 WS08R2 支持。系统 SKU 的选择,目前 Client 只有 Windows 7 的 Enterprise 以及 Ultimate 支持 VHD Native Boot,而 Server 则 Windows Server 2008 R2 SKUs 都支持。接下来我们需要准备一份用于部署的 VHD 文件,可以参考之前的文章使用 imagex 工具释放 Install.wim 中的对应版本到 VHD 中,也可以使用 WIM2VHD 工具进行转换,或者使用 Disk2VHD 抓取现有的系统 VHD 映像,但是需要考虑硬件驱动及 SID 等问题,建议执行 Sysprep,或者在虚拟机中直接安装系统,并进行必要的配置及常用软件的安装,之后执行 Sysprep。最后将这些 VHD 拷贝到 WDS 以备后用。另外,将 Windows 7 或 Windows Server 2008 R2 的安装光盘中 Sources 目录下的 Boot.wim 添加到 WDS 的启用映像中,用于后面的引导和安装,这一步骤不再复述,非常简单!

image
(Windows 启动流程示意图)

NativeVHDSchema
(VHD Native Boot 架构)

        准备工作结束后,就开始进入正题。因为 WDS 目前还不支持 UI 方式,即通过 WDS 管理器添加 VHD 的操作,所以我们需要借助 WDS 命令行工具 – wdsutil.exe 来完成工作。为了便于管理,我们可以单独为 VHD 类型的安装映像建立一个安装组,该操作可以使用 WDS 管理器进行添加,或使用下列命令行:

wdsutil /add-imagegroup /imagegroup:VHDs

        安装组创建完毕之后就可以开始添加 VHD 映像,为此请执行下列命令:

wdsutil /verbose /progress /add-image /imagefile:d:\vhdimages\windows7ultimate.vhd /imagetype:install /imagegroup:VHDs

Add-Image VHD

        命令行中的 verbose 和 progress 参数可以省略,用来显示详细信息和处理进度。其他参数都很容易理解,或是用“/?”获取相关的帮助,这里不再单独说明。到这里 VHD 的添加就完成了,非常之简单!如果是差异磁盘,那么只需要直接添加差异磁盘即可,父盘会自动添加到 WDS 存储 images 的目录中,出于安全原因原父盘名称会被自动修改为 Base-1.vhd 并被赋予隐藏属性。此外,打开 WDS 管理器我们能看到 VHDs 安装组中会存在两个刚添加好的映像,其中被禁用的便是 Base-1.vhd。因为添加的 VHD 都使用内部版本名+版本号作为映像名称,所以存在多个 VHD 时容易混淆,我们可以直接修改这些映像名称!

image

        OK,现在就来感受一下成果,启动一台客户端计算机(物理机或虚拟机均可)通过 PXE 引导进入 WDS 的安装向导界面,选择之前添加的 VHD 执行安装,接下来的时间可以休息一下!

image

        下图可以看到 VHD 被部署到客户端后的存储方式,默认 WDS 会在客户端计算机目标分区建立名为 WindowsImages 的根目录,其中会依序创建000、001 这样的子目录存储部署的 VHD 文件。此外,差异磁盘的父盘也会一同部署到客户端计算机上。至于网上有网友提到的使用差异磁盘来做客户端的还原和快速恢复应用,是一个很不错的想法,但是 gOxiA 认为 VHD Native Boot 更多考虑的应该是应用中会遇到的阻碍等问题。要细心设计如何更好的应用,而不是功能本身的操作。

image

        在欣喜之余对 VHD Native Boot 做一下总结,虽然 VHD Native Boot 有很大的发展潜力和优势,但是大家还是需要了解一些他的注意事项:

  • 强烈建议将 VHD 单独部署到一个独立分区中,并且不要在该分区内存储其他数据;
  • 不论 VHD 是固定磁盘还是动态扩展磁盘格式,存储 VHD 的分区一定要大于 VHD 的总容量;
  • VHD Native Boot 最大支持 512 个实例;
  • 不支持休眠;
  • 无法使用 BitLocker;
  • VHD 所在父分区不支持 Volume Snapshot;
  • 不支持 RAID。

         最后,WDS 部署 VHD 支持无人值守脚本,从而实现自动化部署。差异磁盘的创建则在 diskpart 命令环境中执行如:“create vdisk file=child.vhd parent=name.vhd”的命令行即可,其中 parent 即指定父硬盘。

        至此,本篇即告结束!欢迎感兴趣的网友与 gOxiA 联系共同学习探讨!

Tags: , , , , , , , , ,

        接上回(分享 MDT 2010 数据库版本的相关经验)继续,gOxiA 特地搭建了测试环境对相关知识盲点进行了实际测试学习。总结如下:

  • 如果从原 MDT 2008 上进行升级,那么 MDT 2010 会自动升级你的 MDT 数据库,即使数据库版本是 SQL Server 2000;
  • 同上,如果之前已经存在一个 MDT 2008 数据库,那么只需要在 MDT 2010 数据库配置中直接选中之前已经存在的数据库即可;
  • image
  • 同理,验证 MDT 2010 的数据库是可以基于 SQL Server 2000 的(并不存在无法连接这一说法),那么我们可以在 SQL Server 2000 上的用于 MDT 的数据库上执行 MDT 2008 带的数据库查询脚本,创建对应的表。之后再通过前面的步骤进行升级;
  • 如果需要将基于 SQL Server 2000 上的 MDT 数据库迁移到 SQL Server 2005 或 2008 版本上,那么可以使用 SQL Server Management Studio 附加原数据库,或通过导入和导出数据功能将原数据库中的表导入到新版本的数据库中。
  • 最后,如果是全新安装的 MDT 2010,并且不存在上一版本的 MDT 数据库,那么要创建和使用 MDT 数据库,则 SQL Server 版本必须高于 SQL Server 2000,否则就会出现之前日志中出现的数据库错误。

        如果你在配置 MDT 2010 数据库时出现:“Unable to create necessary database objects. 第 1 行:’MAX"’附件有语法错误。”的错误提示,那么继续浏览该篇日志是非常有必要的。

mdt_create_data_error

        很惭愧,gOxiA 直到昨天才知道  MDT 2010 “不完全支持”SQL Server 2000 数据库。为什么会这么说呢?!原因就是 gOxiA 为一个环境配置 MDT 2010 应用,但是在为 MDT 2010 配置数据库时出现了上面的错误信息,能想到的排错都用上了,据说是我人品问题大爆发,才会遇到!不过专家们友情提示与 SQL Server 版本有关!但是在另一个环境中确实是MDT 2010 + SQL Server 2000 这样组合,回忆之前的部署经历,该组合是从 MDT 2008 一路升级过来的,难道与此有关。而且分析了 MDT 2010 的 SQL 查询脚本,确实在 SQL Server 2000 中出现错误。

        之后安装了 SQL Server 2005 和 2008 Express 两个版本在不同的环境下测试,均配置正常。看来问题确实出在 SQL Server 版本上,而之前咨询的 MDT 2010 不能与 SQL Server 2000 连接这一说法并不完全正确,有事实有真相。而之所以之前的那个 MDT 2010 + SQL Server 2000 能完全正常工作,恐怕是因为在 MDT 2010 Beta 和 MDT 2010 RC 阶段时还支持 SQL Server 2000,所以内置的查询脚本顺利地升级了我的 SQL Server 2000 下的数据库,而 MDT 2010 RTM 正式发布后,说明中并未明显强调对数据库的限制而导致我的故障发生。对此,我昨天已经做了深刻的检讨,但是我不认为错全在我!根据这一系列的测试,其实只要 MDT 2010 的数据库进行了升级或已经生成,还是可以挂在 SQL Server 2000 上使用的。设计使然,也懒得再做进一步的研究!

         撰写这篇日志,存粹安慰自己,同时友情提示其他朋友,一但遇到这个问题知道是什么原因所致。我会在下一篇日志中与大家分享我是如何将之前 SQL Server 2000 中的 MDT 2010 数据库升级或迁移到 SQL Server 2005 和 2008 (包含 Express)中去。

分页: 34/49 第一页 上页 29 30 31 32 33 34 35 36 37 38 下页 最后页 [ 显示模式: 摘要 | 列表 ]