下载重定向器当前状态
2021年12月23日 | Andrii Nikitin | CC-BY-SA-3.0
下载重定向器当前状态 (download.opensuse.org)。
介绍
软件包更新在 openSUSE 世界中是一个有些争议的话题,有时与有问题的用户体验有关,特别是对于那些不在欧洲和美国的用户而言。
重要的是要理解,将体验与其他发行版进行比较是有争议的,因为 openSUSE 基础设施不仅负责下载 Leap 和 Tumbleweed 软件包,还可能负责任何受支持架构/操作系统的任何其他 OBS 项目。这使得 openSUSE 基础设施需要关心大约 95000 个不同的项目,这些项目可能随时收到更新;相比之下,其他 Linux 提供商的典型基础设施有 5-8 个具有或多或少明确发布计划的项目。
现在,有人可能会指出 openSUSE 可以将这些挑战分开,并为选定的项目(如 Leap 和 Tumbleweed)提供更一致的体验,并为其他 OBS 项目提供单独的解决方案。这样可以最大限度地减少大多数用户和新手的糟糕体验的可能性。这是一个正确的观察,只是它并不能使整体技术挑战变得更简单,并且可能需要更多资源来启用和支持这两种解决方案。无论如何,本文的目的不是深入探讨此类讨论,其主要目标是将常规 OBS 下载和 Leap / Tumbleweed 下载作为其中的一部分。
MirrorBrain
从历史上看,download.opensuse.org 背后的下载重定向器是 MirrorBrain 项目 https://mirrorbrain.org/ 。我从 2020 年 5 月左右开始为其贡献代码,并在今年年初进行了一些故障排除经验。我引入了一个 CI 环境,修复了一些错误,并还有其他计划。但是,在考虑部署和故障排除时,要浏览庞大的 cron 作业日志以了解正在发生的事情,这是一种令人沮丧的体验。如果没有在部署和维护 MirrorBrain 繁忙环境中的经验,我很难快速成功地改进 openSUSE 基础设施。此外
- SQL 模式需要重构,因为在镜像扫描期间发生死锁;
- MirrorBrain 是 python / Perl / C(apache2 插件)/ cron 的混合体,感觉有些分散;
- 需要额外的 WebUI 来管理镜像、管理任务、报告等,很可能会引入额外的框架并使项目更加复杂。
为了控制和故障排除信息流,我迫切需要一个合适的作业队列。由于我之前的项目与 OpenQA 相关,我对如何使用 Mojolicious 框架实现这些挑战以及重用 OpenQA 中的部分代码有清晰的认识。
所以我计划向 MirrorBrain 添加一个作业队列,但一种新的感觉很快涌上心头——看起来我试图在同一个 git 仓库中管理两个项目,事情变得更加复杂。所以我决定将其拆分为一个新项目,看看会发生什么。
MirrorCache
因此,目前,SSL 加密流量(https 请求)到 download.opensuse.org 被重定向到新的重定向器服务 - mirrorcache.opensuse.org 。这是一个明显的开始,因为 MirrorBrain 缺乏 http / https 路由,并且当前的 https 负载量是 http 的几倍,这为在较小的负载下测试性能提供了一个很好的机会。
此外,北美镜像由 mirrorcache-us.opensuse.org 管理,大洋洲镜像由 mirrorcache-au.opensuse.org(也称为 mirrorcache.firstyer.id.au - 感谢 William Brown!)管理,因此来自这些地区到 mirrorcache.opensuse.org 的请求相应地重定向。目前有一些计划让 zypper 了解区域实例,但它们仍处于早期设计阶段。
因此,如果您位于大洋洲或北美地区,请考虑直接使用您的区域 mirrorcache 实例,而不是进行跨大陆请求。并且也可能考虑调整访问以使用 https download.opensuse.org 。(并非 https 能够大幅提高安全性,而是它本身就是一种良好的做法)。
现在,特权用户可以使用 https://mirrorcache.opensuse.org/app/server 上的 WebUI 编辑镜像的详细信息,并且计划引入单独的镜像管理员,以便每个人都可以添加和维护自己的镜像。
敬请期待更多关于从 MirrorBrain 完全切换到 MirrorCache 以及更多区域 mirrorcache 实例的信息。
有用的链接
为您的机器显式配置 MirrorCache:https://en.opensuse.net.cn/MirrorCache#Setting_up_MirrorCache_for_your_machine