openSUSE:镜像基础设施
服务器要成为公共镜像站点需要什么?
- 它至少需要 40GB 到 60GB 的磁盘空间,具体取决于镜像的内容。
- 它需要大量的带宽;实际数量很难预测,但例如在德国,每月 1 TB 应该被认为是最低限度,并且很容易达到。 镜像站点最好能够负担每月 2 TB 以避免带宽限制。 10Mbps 是最低要求,100Mbps 更好。具体情况和要求因地点而异,可能与预期不同。通常,镜像的内容越多,吸引的流量就越多,但我们可以很好地控制重定向的数量。 ISO 镜像的存在是导致流量的最大决定因素。
- 硬件或操作系统并不重要。
页面上列出的 rsync 模块的大小 在此处,但请注意,完全可以只镜像模块的一部分。
Rsync 服务器
公众访问权限
rsync.opensuse.org
此 rsync 服务器对任何人开放。它通过 rsync 协议提供对 download.opensuse.org 内容的公共访问权限。访问通常限制为 50 个并发连接,因此您可能无法始终访问它。此处列出的某些镜像站点 此处 也可能提供 rsync 服务。
stage-main-repos.opensuse.org,又名 stage3.opensuse.org
此 rsync 具有与主 stage.opensuse.org 相同的 rsyncd 配置,但它有 5 分钟的延迟。
请注意,stage-main-repos.o.o 上的“ports”和“repositories”目录仅包含一小部分(每个 150GB)更可能被用户请求的仓库。如果您想要所有内容,请使用 stage.o.o。
slc-mirror.opensuse.org
以前称为 provo-mirror.opensuse.org。如果您发现与其他地区的网络瓶颈,此 rsync 服务器可供美洲使用。
注册镜像的访问权限
stage.opensuse.org
注册的镜像站点可以访问 stage.opensuse.org。此服务器在官方发布之前提供 download.opensuse.org 的更新内容,并且比公共服务器具有更高的传输速率。如果您至少拥有 100Mbps 的连接,并且满足以下段落中概述的条件,您可以注册访问权限 mailto:admin@opensuse.org。
访问 stage.opensuse.org 的条件
首先说明一下“预发布内容”。预发布内容并非旨在公开,但我们仍然希望将其传播到镜像站点,以便在公开发布时已经镜像,从而为许多人提供访问权限。那么如何实现呢?我们将目录的权限设置为受保护的“rwxr-x---”(0750)。然后将该目录作为托管在 stage rsync 服务器上的树的一部分提供。当镜像站点从其同步时,它们将复制这些权限。当发布时间到来时,目录权限更改为 rwxr-xr-x (0755),当镜像站点下次同步时,它们会赶上并将其在 HTTP 服务器上作为可访问目录。通过权限更改进行的发布过程有时称为“位翻转发布”。
对于此,您(作为镜像站点管理员)需要注意一些注意事项
- 使用 -p (--perms) 运行 rsync,以便在目标机器上重现权限。
- 如果您运行公共 rsync 服务器:请确保您的 rsync 守护程序在与拉取内容的脚本不同的用户 ID 下运行。否则,您可能会公开提供预发布内容。例如,您可以通过在相应的 rsync 模块中设置 uid = nobody 和 gid = nogroup 来实现这一点。
- 在与 HTTP 服务器运行的不同的用户 ID 下运行您的镜像站点脚本。相同的用户 ID 会使所有文件对 HTTP 服务器可读。以 root 用户身份运行服务器也会产生相同的影响。
- 切勿以 root 用户身份运行您的 Web/rsync 服务器。一种经常发生的错误配置是,如果使用 lighttpd,则以 root 用户身份运行它,因为忘记了导致其以不同用户/组运行的配置。
您应该订阅镜像邮件列表(请参阅此页面的底部),以便我们可以让您了解正在进行的发布活动。我们将通知您发布计划和确切的发布时间——您可以积极支持我们。
注册您的镜像站点
为了将客户端重定向到您的镜像站点,我们需要以下信息
- 管理员的电子邮件地址和姓名以供联系。由于镜像站点通常运行多年且人员流动,我们强烈建议使用组地址,例如 mirror@ 或 ftpadmin@ 或类似地址。
- 镜像站点的运营商或赞助商的名称和 URL,用于在 镜像站点列表 中显示
- 您的团队中的某人订阅了 mirror@lists.opensuse.org - 请参阅下面的 保持知情 部分。
- 您的镜像站点上的 HTTP URL(例如 http://yourmirror.example.com/pub/opensuse/)
- 只读 rsync 访问权限供我们的扫描程序使用——用于扫描,我们执行此操作以使我们的下载重定向器数据库保持最新。它来自 195.135.220.0/22 和 2001:067c:2178::/48 内的任何 IP。 (通过 rsync -v yourmirror.example.com:: 进行测试)
- 您服务器的限制。我们可以仅将请求限制为来自您的 区域、您的国家/地区、您的 ASN 或您的 前缀 的客户端。也可以仅将访问权限限制为使用 IPv6 的客户端。如果您的服务器无法提供大文件(通常大于 2GB),也可以将其添加为限制。最后,路由到您服务器的请求数量由分数计算(通常为 100)——如果您不想获得太多流量,也可以更改此分数。请在您的电子邮件中请求任何这些限制。
- 您的镜像站点的 DNS 条目,以便添加到我们的暂存服务器。我们的暂存服务器将访问权限限制为当前模块中的少量允许主机列表,因此您的服务器不会受到公共 rsync.opensuse.org 服务器上存在的限制的影响。
请将以下信息发送到 admin@opensuse.org
- 管理员姓名
- 管理员电子邮件
- 订阅 mirror@lists.opensuse.org:是/否
- 赞助商名称
- 赞助商 URL
- RSYNC URL
- RSYNC 仅允许用于扫描:是/否
- HTTP URL
- 限制
- stage.opensuse.org 白名单上的 IP 和 DNS
如果您提供此数据,我们将您的镜像站点添加到我们的镜像站点数据库。镜像站点数据库由我们的下载服务器用于主动将客户端重定向到您的服务器。我们尝试根据客户端 IP 地址的地理位置分配请求。发出的重定向数量还取决于我们与您一起确定的分数,以匹配您的容量。
此外,我们还会主动监控镜像站点上的内容,以便仅重定向到实际存在于镜像站点上的文件。rsync 是最有效的方法,使用它扫描 300,000 个文件可能只需几分钟。否则,我们可以回退到 HTTP,但速度很慢。因此,请考虑添加一个允许更快扫描您服务器的 opensuse 内容的 rsync 模块。
保持知情
mirror@lists.opensuse.org 邮件列表(以前称为 suse-mirror@suse.de)流量低,主要用于公告。它也是在需要时围绕镜像 openSUSE 内容进行讨论的合适场所。要订阅,只需发送邮件至 mirror-subscribe@lists.opensuse.org。
通用联系地址是:admin@opensuse.org
有一个名为 #opensuse-mirrors 的 IRC 频道,位于 irc.libera.chat。
如何设置镜像站点
请参阅此处了解操作方法:openSUSE:Mirror howto
rsync 模块
stage.opensuse.org 和 rsync.opensuse.org 上的 rsync 模块大部分相同。前者具有尚未发布的额外内容,由于后者与其同步,因此两者之间存在短暂的同步滞后时间。
rsync 模块的大小每晚都会三角测量
从模块同步的命令行示例如下
rsync -rlptyH rsync.opensuse.org::opensuse-full /srv/pub/opensuse/ --delay-updates --delete-delay -hi --stats
请注意,此示例克隆 opensuse-full 模块,消耗大量磁盘空间。如果您打算仅镜像模块的一部分,则 --exclude 和 --exclude-from 参数可能很有用。
要在实际下载内容并填充磁盘之前执行试运行,请使用带有 -n 的 rsync。
感兴趣的模块
注意:本节的某些部分已过时。hotstuff 模块当前仅在暂存平台上可用,并且不会动态更新。
- opensuse-hotstuff-160gb:最常用的文件,适合 160 GB。这当前包括最新产品的安装仓库和 CD/DVD 媒体、其更新以及其他最受欢迎的仓库。这是磁盘空间有限的镜像站点最合适的模块。大多数请求都指向这些文件。
- opensuse-hotstuff-80gb:更严格选择的最受欢迎的文件,限制为 80 GB 的空间。如果您的镜像站点磁盘空间非常有限,请使用此模块。尽管如此,大多数请求都指向包含在此模块中的文件,因此仅镜像这些文件非常有用。
- opensuse-updates:此 rsync 模块提供 /update 树,其中包含从 openSUSE 10.3 开始发布的 openSUSE 发行版的官方更新。
- opensuse-full:此 rsync 模块提供 download.opensuse.org 的完整内容,不包括 tumbleweed 目录。排除此目录的原因是内部更新频率很高。
- opensuse-full-with-factory:与上一个模块相同,包括包含 Tumbleweed 发行版 的 tumbleweed 目录。
- opensuse-source:此 rsync 模块提供 /source 树,其中包含从 openSUSE 11.1 开始的源包。仅在 stage.opensuse.org 上可用,但没有访问限制。
- opensuse-debug:此 rsync 模块提供 /debug 树,其中包含从 openSUSE 11.1 开始的源包,并包含发布的更新。仅在 stage.opensuse.org 上可用,但没有访问限制。
- opensuse-history:此 rsync 模块提供 openSUSE 版本的历史副本。在可预见的未来,这仅包括 Tumbleweed 的快照,主要用于与 tumbleweed-cli 一起使用。在 rsync 此模块时,请确保使用“-H”选项,否则它将占用太多的空间。请参阅 镜像站点公告线程 以获取更多详细信息。
镜像 Build Service 仓库 的模块
- buildservice-repos:完整内容
- buildservice-repos-main:所有内容,但不包括用户的 home: 项目
更新会随时发生,只要 Build Service 中的仓库被重建和更新。也可以 推送 更新。
推送 Build Service 更新的支持
stage.opensuse.org 也托管构建服务的所有内容。由于更新随时发生,每当构建了新的软件包集时,也可以推送内容,而不是轮询获取。这显然需要您的服务器上 stage.opensuse.org 具有 rsync 写访问权限。这种方法的优点是:
- 镜像几乎总是最新的,
- 无需通过所有仓库运行 rsync 调用。推送只会更新已更改的仓库。这大大减少了镜像的 IO 负载。
- 在 重定向器 运行于 http://download.opensuse.org/ 的情况下,它知道软件包已更新,并可以立即重定向到镜像。
如何成为一个推送镜像?
通常的方法(但我们也可以支持不同的方法)是在您的服务器上打开一个 rsync 模块,让 stage.opensuse.org 获得写访问权限。可以选择使用登录名和密码,但实际上并非必需。请稍后发送邮件至 mailto:admin@opensuse.org,告知我们
- 要推送到的服务器名称
- 要使用的 rsync 模块
- 可选的帐户和密码
- 公共下载 URL 将是什么。
然后,我们需要 rsync 读访问权限来扫描您的镜像,以获取我们的 下载重定向器。下载重定向器数据库需要定期更新,以反映镜像上的实际文件。扫描来自 195.135.220.0/22。
请注意,构建服务仓库会不断增长,目前(2020 年 11 月 22 日)占用 16Tb 空间。