DeveloperWiki:NewMirrors
添加新镜像
本文档将概述为 Arch 包添加新镜像的流程。
关于私有镜像的说明
- 带宽并非免费的。镜像提供者必须为他们为您提供的数据付费。
- 尽管您为您的ISP付费,这一点仍然适用。
- 一个完整的镜像大小超过 100 GiB。
- 您将下载许多可能永远不会使用的软件包。
- 镜像运营商更希望您只下载您需要的软件包。
- 请务必查看 pacman/Tips and tricks#Network shared pacman cache 中列出的替代方案,然后再设置私有镜像。
2级镜像方案
由于高负载和带宽限制,Arch Linux 使用 2 级镜像方案。
有少数 1 级镜像每小时直接从 archlinux.org 同步。
所有其他镜像应从 1 级镜像同步。不允许从 archlinux.org 同步。
给镜像管理员
2级要求
- 磁盘空间 >= 100 GiB
- 从 1 级镜像同步 (参见 https://archlinux.org.cn/mirrors/tier/1/)
- 同步上游镜像的所有内容 (即,不要只同步某些仓库)
- 同步频率不得超过每小时一次,但至少应每天同步一次。
- 在随机分钟同步,这样请求更有可能与其他镜像错开。
- 使用以下 rsync 选项:
-rlptH --safe-links --delete-delay --delay-updates - 如果您希望向我们的用户发送停机通知,请使用 arch-mirrors-announce 列表。您无需订阅即可发帖。
- http 或 https 支持
1级要求
- 2级要求
- 带宽 >= 100 Mbit/s
- rsync 支持
- 经过验证的可靠性 (作为 2 级镜像一段时间并具有合理的正常运行时间,响应不同步通知等)。
您可以使用 rsync 直接同步,或以 syncrepo-template.sh 脚本作为起点。请注意,该脚本会尝试最大限度地减少负载和带宽使用 (截至 2018-03-01,每次 rsync 运行约 3 MiB 的元数据),以防没有更改。如果您不同步得很频繁,或者您的上游镜像不提供 lastupdate 文件,请随时删除此检查。
通过TLS进行rsync
tls=1 选项时,默认使用 openssl。如果您希望通过 TLS 进行 rsync,Arch Linux 正通过 geo mirrors 和 T0 到 T1 镜像提供 支持 TLS 的 rsync 端点 以供同步。您可以使用 rsync-ssl(1),这是一个 rsync(1) 的包装器。端口暴露为 874,这是 rsync-ssl 默认使用的端口。
要为您的镜像设置通过 TLS 的 rsync,您可以遵循 Arch Linux 实现的相同模式,即使用 nginx 和 TLS 来处理 rsync 守护进程。使用由 nginx-mod-stream 支持的 TCP 负载均衡,nginx 连接到 rsync 套接字并转发请求。rsync 需要在其配置中启用 use proxy = on 功能,并且 SSL 证书由 nginx 提供。有关进一步的实现,可以在 Arch Linux GitLab 上查看 Arch Linux 方面所做的更改。另一种实现类似结果的方法是使用 stunnel。
创建功能请求
- 我们不接受新的 ftp 镜像。
- 如果您正在提交对现有镜像的更改
- 请使用您最初在 Arch Linux GitLab 上提交镜像的账户提交,或者发送一封包含用于该镜像的联系电子邮件的邮件。
- 可以选择在此处粘贴被更改镜像的链接: https://archlinux.org.cn/mirrors/。
前往 https://gitlab.archlinux.org/archlinux/arch-mirrors/-/issues 创建一个包含以下信息的功能请求:
- 镜像域名
- 镜像的地理位置 (国家)
- 支持的访问方法 (http, https, rsync) 的 URL (无 ftp)
- 您的镜像可用带宽
- 一个管理员联系电子邮件 (可选,见下文)
- 一个备用管理员联系电子邮件 (可选)
- (1 级镜像) Rsync IP,以便您的服务器可以被允许从 0 级 (rsync.archlinux.org) 同步
- (2 级镜像) 您正在从中同步的 1 级镜像的名称。您可以在 https://archlinux.org.cn/mirrors/tier/1/ 中找到可用的 1 级镜像。
Arch Linux 工作人员将使用联系电子邮件与镜像管理员联系,如果他们对镜像有疑问或镜像有问题。如果未提供联系电子邮件,镜像列表可能会随时被移除,尤其是在出现问题时,且不事先通知管理员。
如果镜像管理员正在添加或修改现有镜像的 URL,他们可以在请求中指明,并附上现有镜像的链接。
联系信息和邮件列表
欢迎加入 arch-mirrors 邮件列表,该列表可用于讨论我们的镜像。如果您想告知用户您的镜像停机,请使用 arch-mirrors-announce 邮件列表。您无需订阅即可向 arch-mirrors-announce 发帖。
如果您想联系 Arch Linux 工作人员提问,您可以选择使用 arch-mirrors 列表,可以在我们的跟踪器上打开一个 Bug 报告,或者发送邮件至 mirrors@archlinux.org。还有一个用于任何讨论或问题的 #archlinux-mirrors IRC 频道。
Arch Linux 方面
- 将镜像信息添加到 Django 管理站点
- 使用
gen_rsync.conf.pl脚本重新生成 rsync 白名单 - 仅适用于 1 级镜像,或在禁用之前未分级的镜像访问时 (也由每小时一次的 cron 作业完成)。 - 重新生成 pacman-mirrorlist 包
镜像大小
为了让您对所需的镜像空间有所了解,这里有一些数字 (截至 2023-05-23)
强制
- pool (所有软件包) - 80 GiB
- repositories (core, core-testing, extra, extra-testing, gnome-unstable, kde-unstable, multilib, multilib-testing) - 总计约 200 MiB
可选
- iso - 5 GiB (建议)
- archive - 15 GiB (永久冻结)
- other - 18 GiB
- sources - 114 GiB
- images - 6 GiB
- wsl - 500 MiB
- pool/*-debug - 60 GiB (未来可能会增长)
大多数镜像不同步 archive、other 和 sources 目录,但会同步所有其他内容 (包括临时仓库),因此通常您需要为 Arch Linux 镜像保留大约 70 GiB 的空间。
但是,请注意,当发生大规模重建时,所需空间可能会暂时增加,从而导致许多软件包以不同版本出现两次。请在上述数值基础上再规划 30 GiB 到 50 GiB 的缓冲空间。