openSUSE:镜像基础设施
服务器要成为公共镜像站点需要什么?
- 根据镜像的内容,至少需要 40GB 到 60GB 的磁盘空间。
- 需要大量的带宽;实际数量很难预测,但例如在德国,每月 1TB 应该被认为是最低限度,并且很容易达到。 镜像站点理想情况下能够负担每月 2TB 以避免带宽限制。 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 分钟的延迟。
请注意,“ports”和“repositories”目录在 stage-main-repos.o.o 中只有一小部分(每个 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
- 仅允许扫描:是/否
- 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
IRC 频道名为 #opensuse-mirrors 在 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:最常用的文件,适合 160GB。 这当前包括最新产品的安装仓库和 CD/DVD 媒体、其更新以及其他最受欢迎的仓库。 这是磁盘空间有限的镜像站点最合适的模块。 大部分请求都来自这些文件。
- opensuse-hotstuff-80gb:更严格选择的最受欢迎的文件,限制为 80GB 的空间。 如果您的镜像站点磁盘空间非常有限,请使用此模块。 尽管如此,大部分请求都来自此模块中包含的文件,因此仅镜像这些文件非常有用。
- 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 也托管 Build Service 的所有内容。由于更新会一直发生,只要构建了新的软件包集,也可以推送内容,而不是轮询。这显然需要在您的服务器上为 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 进行。
请注意,build service 仓库会不断增长,目前(2020 年 11 月 22 日)占用 16Tb。