Use Microsoft Connected Cache to Accelerate OS Downloads

未关闭
#272 12 条评论 3 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
18/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
冷清
技术栈
powershell

调研方向

The request needs a design decision before code: how the module would read DHCP option 235 on the client and rewrite Windows ESD and driver download URLs to a Connected Cache node, with an opt-in switch. The payload names no files or functions, so locate the existing download logic first. Done would mean an optional, documented setting that falls back to the Microsoft CDN when no cache host is set. Agree the approach with maintainers before writing code.

由索引模型根据 Issue 内容生成。

描述

enhancement

Is your feature request related to a problem? Please describe.
With Microsoft rolling out standalone Connected Cache in preview, it would be helpful to have the ability to utilize network-local Connected Cache Nodes when downloading the Windows ESD image and drivers hosted by Windows Update. This would drastically reduce outbound network usage for large deployment loads (ex. only need to "download" Windows ESD once for 100+ device stagings).

Describe the solution you'd like
Before downloading content from Microsoft's CDN, check for DHCP option code 235 (DOCacheHost) on the client which, if configured for Connected Cache, will contain the local Connected Cache Node's FQDN or IP address (Source). If the value is set, rearrange the content download URL to use the connected cache endpoint:
http://[HostMachine-IP-address]/filestreamingservice/files/<file-hash>/<file-name>?cacheHostOrigin=<original-MS-download-server-FQDN> (Source)
If the file has not yet been cached by the Connected Cache Node, it will fetch the file from Microsoft's CDN, cache it on the node, and serve it to OSDCloud as if you had downloaded directly from the CDN. Future requests for that file would then be served directly from the Connected Cache Node.
Make use of this feature optional to allow administrators to choose not to use this solution (ex. option code 235 is in use elsewhere).

Describe alternatives you've considered
Running a cache solution that sits on the entire network is also an option, though this would present extra setup/maintenance burden to administrators and might not always be allowed in a corporate environment. For example, LANCache or a similar solution can serve this purpose but would require extra configuration, an extra server separate from any existing Connected Cache node, and redirection of all DNS on the network in order to function effectively.

Additional context
I work as an administrator for a medium/large Microsoft shop, and we are currently testing Connected Cache for use across our global footprint. Being able to cache Windows install files for OSDCloud would markedly reduce bandwidth load (especially in some global offices with less-than-stellar internet service) and improve download speeds.

主要语言
PowerShell
星标
251
派生
102
平均合并
2 分钟
30 天内合并 PR
4

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

OSDeploy/OSD 的其他 Issue

查看 OSDeploy/OSD 的全部 Issue

相似的 Issue

更多 DevOps Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。