将公共镜像添加到 Rocky 的镜像管理器¶
公共镜像的最低要求¶
我们一直欢迎新的公共镜像。但它们应该得到良好的维护,并托管在 24/7 的数据中心环境中。可用带宽应至少为 1 GBit/s。我们优先考虑提供双栈 (IPv4 和 IPv6) 的镜像。请不要提交使用动态 DNS 配置的镜像。如果您所在的地区镜像较少,我们也接受较低的速度。
请不要提交托管在 Cloudflare 等 Anycast CDN 上的镜像,因为这可能会导致在 dnf
中选择最快镜像的性能不佳。
请注意,我们无法接受位于受美国出口管制法规约束的国家/地区的公共镜像。您可以在此处找到这些国家的列表: https://www.bis.doc.gov/index.php/policy-guidance/country-guidance/sanctioned-destinations
截至撰写本文时(2022 年末),镜像所有当前和过去的 Rocky Linux 发行版的存储空间需求约为 2 TB。
我们的主镜像服务器是 rsync://msync.rockylinux.org/rocky-linux
。第一次同步时,请使用离您较近的镜像。您可以在此处找到所有官方镜像: here。
请注意,未来我们可能会限制对官方主镜像服务器的访问,仅限于官方公共镜像。因此,如果您运行的是私有镜像,请考虑从您附近的公共镜像服务器进行 rsync
。本地镜像也可能同步得更快。
设置您的镜像¶
请设置一个 cron 作业来定期同步您的镜像,每天运行大约 6 次。但请确保在整点之后同步,以帮助分摊负载。如果您只检查 fullfiletimelist-rocky
的更改,并且仅在文件更改时才执行完整同步,那么您可以每小时同步一次。
以下是一些 crontab 示例
#This will synchronize your mirror at 0:50, 4:50, 8:50, 12:50, 16:50, 20:50
50 */6 * * * /path/to/your/rocky-rsync-mirror.sh > /dev/null 2>&1
#This will synchronize your mirror at 2:25, 6:25, 10:25, 14:25, 18:25, 22:25
25 2,6,10,14,18,22 * * * /path/to/your/rocky-rsync-mirror.sh > /dev/null 2>&1
#This will synchronize your mirror every hour at 15 minutes past the hour.
#Only use if you are using our example script
15 * * * * /path/to/your/rocky-rsync-mirror.sh > /dev/null 2>&1
对于简单的同步,您可以使用以下 rsync
命令
rsync -aqH --delete source-mirror destination-dir
在发布新版本时,请考虑使用锁定机制,以避免同时运行多个 rsync
作业。
您还可以使用并修改我们实现锁定和必要时进行完整同步的示例脚本。该脚本位于 https://github.com/rocky-linux/rocky-tools/blob/main/mirror/mirrorsync.sh。
第一次完整同步后,请检查您的镜像是否一切正常。最重要的是检查所有文件和目录是否已同步,您的 cron 作业是否正常工作,以及您的镜像是否可以从公共互联网访问。请仔细检查您的防火墙规则!为避免任何问题,请不要强制执行 http 到 https 重定向。
如果您在设置镜像时有任何疑问,请加入 https://chat.rockylinux.org/rocky-linux/channels/infrastructure
完成后,请转到下一节,提议您的镜像成为公共镜像!
您需要什么¶
- 在 https://accounts.rockylinux.org/ 上拥有一个帐户
创建站点¶
Rocky 使用 Fedora 的 Mirror Manager 来组织社区镜像。
在此处访问 Rocky 的镜像管理器: https://mirrors.rockylinux.org/mirrormanager/
成功登录后,您的个人资料将显示在右上角。选择下拉菜单,然后点击“我的站点”。
将加载一个新页面,列出帐户下的所有站点。第一次打开时,该页面将为空。点击“注册新站点”。
将加载一个新页面,其中包含重要的出口合规声明供您阅读。然后填写以下信息
- “站点名称”
- “站点密码” - 由
report_mirrors
脚本使用,您可以设置任何您想要的密码 - “组织 URL” - 公司/学校/组织 URL,例如 https://rocky-linux.cn/
- “私有” - 勾选此框可隐藏您的镜像,使其不被公开使用。
- “用户活跃” - 取消勾选此框可暂时禁用此站点,它将从公开列表中删除。
- “所有站点都可以从我这里拉取吗?” - 允许所有镜像服务器从我这里拉取,而无需显式地将它们添加到我的列表中。
- “下游站点管理员的评论。请在此处包含您的同步源,以避免依赖循环。”
点击“提交”后,您将返回到主镜像页面。
配置站点¶
从主镜像页面选择下拉菜单,然后点击“我的站点”。
将加载帐户站点页面,并且站点应该已列出。点击它进入信息站点。
上一节中的所有选项再次列出。页面底部有三个新选项:管理员、主机和删除站点。点击“主机 [添加]”。
创建新主机¶
填写适用于该站点的以下选项
- “主机名” - 必需:由公众最终用户看到的服务器的 FQDN
- “用户活跃” - 取消勾选此框可暂时禁用此主机,它将从公开列表中删除。
- “国家” - 必需:2 字母 ISO 国家代码
- “带宽” - 必需:整数兆比特/秒,此主机可以服务的带宽量
- “私有” - 例如,不对公众开放,一个内部私有镜像
- “Internet2” - 在 Internet2 上
- “Internet2 客户端” - 为 Internet2 客户端提供服务,即使是私有的
- “ASN” - 自治系统编号,用于 BGP 路由表。仅当您是 ISP 时才需要。
- “ASN 客户端” - 为同一 ASN 的所有客户端提供服务。用于 ISP、公司或学校,而不是个人网络。
- “机器人电子邮件” - 电子邮件地址,将收到上游内容更新通知
- “评论” - 文本,任何您希望公众最终用户了解的关于您的镜像的其他信息
- “最大连接数” - 每个客户端的最大并行下载连接数,通过 metalinks 建议。
点击“创建”,它将重定向回该主机的“信息站点”。
更新主机¶
在“信息站点”的底部,“主机”选项旁边现在应该显示主机名。点击名称加载主机页面。上一节中的所有相同选项再次列出。底部有几个新选项。
-
“站点本地网络块”:网络块用于尝试将最终用户引导到特定站点的镜像。例如,一所大学可以列出他们的网络块,mirrorlist CGI 将返回大学本地镜像而不是国家本地镜像。格式为一个 IP 地址/子网掩码 (例如 18.0.0.0/255.0.0.0),CIDR 表示法 (例如 18.0.0.0/8),IPv6 前缀/长度,或 DNS 主机名。值必须是公共 IP 地址(不包含 RFC1918 私有空间地址)。仅当您是 ISP 和/或拥有可公开路由的网络块时才使用!
-
“对等 ASN”:对等 ASN 用于将同一网络上的最终用户引导到我们的镜像。例如,一所大学可以列出他们的对等 ASN,mirrorlist CGI 将返回大学本地镜像而不是国家本地镜像。您必须属于 MirrorManager 管理员组才能在此创建新条目。
-
“允许的国家”:一些镜像需要限制自己只为本国的最终用户提供服务。如果您是其中之一,请列出您允许最终用户来自的国家/地区的 2 字母 ISO 代码。mirrorlist CGI 将遵守此规则。
-
“支持的类别”:主机支持软件类别。例如 Fedora 类别包括 Fedora 和 Fedora Archive。
点击“支持的类别”下的“[添加]”链接。
支持的类别¶
对于“类别”,选择“Rocky Linux”,然后选择“创建”以加载 URL 页面。然后点击“[添加]”加载“添加主机类别 URL”页面。只有一个选项。对支持的每个协议重复此操作。
- “URL” - 指向顶层目录的 URL (rsync, https, http)
示例
http://rocky.example.com
https://rocky.example.com
rsync://rocky.example.com
总结¶
填写完信息后,一旦下一次镜像刷新发生,站点就会出现在镜像列表中。
贡献者:Amin Vakil, Steven Spencer, Ganna Zhyrnova