首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么决定了WDS在VMware VMware期间使用的协议?

是什么决定了WDS在VMware VMware期间使用的协议?
EN

Server Fault用户
提问于 2019-05-09 14:52:45
回答 1查看 1.3K关注 0票数 2

好朋友们,

我已经在我的环境中成功地实现了,构建了x86和x64引导映像以支持UEFI和Legacy BIOS,使用(v8450),并且能够成功地启动物理机器(HP Z4)和虚拟机(运行在ESXi 6.5主机上的VM版本13 )。此外,我还创建了相关的DHCP类和策略,以确保向适当的PXEClient (即UEFI )提供正确的引导文件。

尽管如此,在使用UEFI启动时(启用了安全引导),我注意到了两件事(第二件事是值得关注的,因此我发布了这个问题):

  1. 在引导过程中,物理机器成功地与WDS服务器联系,并在大约6秒内拉下引导映像,然后在大约6-8分钟内完成OS安装。
  2. 在引导过程中,虚拟机还成功地与WDS Server联系并提取引导映像。然而,它需要45分钟至1小时以上的启动图像。在此之后,操作系统安装在与物理盒相同的时间内完成(只需8分钟)。

为了排除故障,我确认WDS Server没有遇到任何会影响其NIC性能的技术问题。我确实检查了VM的NIC配置,发现它使用的是E1000E适配器类型,所以我将它改为使用VMXNET 3适配器类型。这一情况略有改善。

因此,我决定进行Wireshark数据包捕获,看看是否可以看到物理机器和VM与WDS Server通信的方式有什么不同。在我看来,唯一出类拔萃的是:

  1. 物理机器使用TFTP协议
  2. 虚拟机使用了UDP协议

因此,有人知道在某个地方是否存在指示虚拟机更喜欢UDP协议而不是TFTP的设置吗?在VMware文档中,我发现除了一个声明之外,没有什么是确定的,那就是PXE引导VM是可能的,并且是受支持的。

任何帮助都是非常感谢的,谢谢,我对冗长的叙述表示歉意。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2019-05-13 11:11:40

因此,对于任何遇到此问题的人,我的解决方案是调整WDS RemoteInstall引导文件夹中各自体系结构(即x64或RemoteInstall)中的"ramdisktftpwindowsize“和”ramdisktftpwindowsize“文件中的启动配置数据(BCD)设置。之后,我重新启动了WDS服务。我现在看到的是大约10-15秒,虚拟机上的引导映像加载时间,物理机器上使用大约400 on引导映像的大约6-10秒。

我唯一注意到的是,这会产生支离破碎的IP包,但它们无论如何都是重新组装的,所以不会对我的终端用户或网络造成太大的影响,因为基于我将作为PXE启动系统进行成像的频率和时间,对最终用户或网络的影响很小。但是,如果这对你来说是个问题,那就去找另一个解决办法吧。

在我的环境中,路径如下(当然,您的路径可能不同,因此相应调整):

代码语言:javascript
复制
For 32-bit (x86):  "F:\SCCM\RemoteInstall\Boot\x86\default.bcd"
For 64-bit (x64):  "F:\SCCM\RemoteInstall\Boot\x64\default.bcd"

注意:出于明显的原因(我希望),在进行更改之前对default.bcd文件进行备份。

--以下是我为实现这个解决方案所做的工作:

  1. 打开PXE服务器上的WDS管理控制台(在我的示例中是运行Windows部署服务角色的SCCM server )并停止服务器。您也可以停止WDS服务--但是我更喜欢前者(因为它是一种更干净的方法,IMHO)。
  2. 启动一个管理命令提示符窗口(不要尝试使用PowerShell控制台,我与BCDEdit命令交互时运气不佳)。
  3. 在单独的Windows窗口中,找到适当的"default.bcd“文件,或者注意其路径,或者通过"SHIFT+Right-Click”和“复制为路径”将其复制到剪贴板中。
  4. 在WDS停止并且default.bcd文件的路径在手后,返回命令提示符并键入以下命令(酌情替换x86或x64 ):
    • 使用以下命令列出当前引导存储参数:
      • bcdedit /enum all /store F:\SCCM\RemoteInstall\Boot\x86\default.bcd

代码语言:javascript
复制
- **Set the TFTP Windows Size to a value of 8:** 
    - `bcdedit /store F:\SCCM\RemoteInstall\Boot\x86\default.bcd /set {68d9e51c-a129-4ee1-9725-2ab00a957daf} ramdisktftpwindowsize 8`
代码语言:javascript
复制
- **Set the TFTP Block Size to a value of 16384:** 
    - `bcdedit /store F:\SCCM\RemoteInstall\Boot\x86\default.bcd /set {68d9e51c-a129-4ee1-9725-2ab00a957daf} ramdisktftpblocksize 16384`
代码语言:javascript
复制
- **List the current boot store parameters again and verify your changes are there:** 
    - `bcdedit /enum all /store F:\SCCM\RemoteInstall\Boot\x86\default.bcd`
  1. 回到WDS管理控制台并启动WDS服务器
  2. 使用以下命令向WDS Server发出信号,使用更改重新生成引导文件:**- sc控件wdsserver 129

就是这样。通过这些更改,我能够在PXE服务器上启动Wireshark,pxe启动了我的虚拟机。当我在Wireshark中观看时,我看到最初的对话以"TFTPWindowSize = 4“和"TFTPBlockSize = 1456”开始,但在引导加载程序开始下载后不久,我看到了重新协商我设置的值生效的位置--这时我看到VM在10-15秒内加载引导映像。

正如我前面提到的,我看到了大约8个“支离破碎的IP协议”数据包,但是它们都被重组了,而且最终目标也实现了--虚拟机和物理机器都快速启动并成功地安装了操作系统。

希望这个信息对某人有帮助--很抱歉写了一个book...lol。

以下帖子的学分:https://blog.uvm.edu/jgm/2010/11/04/tuning-microsoft-pxe-tftp/

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/966574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档