% rsync -vaHz --delete rsync://ftp4.de.FreeBSD.org/FreeBSD/ /pub/FreeBSD/
镜像 FreeBSD
商标
FreeBSD 是 FreeBSD 基金会的注册商标。
制造商和销售商用来区分其产品的许多名称被声称为商标。在本文档中出现这些名称的地方,如果 FreeBSD 项目了解商标声明,则这些名称后面会加上“™”或“®”符号。
目录
摘要
一篇关于如何镜像 FreeBSD 的正在进行的文章,面向中心管理员。
我们目前不接受新的社区镜像。 |
1. 联系信息
镜像系统协调员可以通过电子邮件联系 mirror-admin@FreeBSD.org。还有一个 FreeBSD 镜像站点邮件列表。
2. FreeBSD 镜像的要求
2.1. 磁盘空间
磁盘空间是最重要的要求之一。根据您要镜像的发布集、体系结构和完整程度,可能会占用大量的磁盘空间。还要记住,官方镜像可能需要是完整的。网页始终应该完整镜像。还要注意,这里列出的数字反映了当前状态(在 12.0-RELEASE/11.3-RELEASE)。进一步的开发和发布只会增加所需的空间量。还要确保保留一些(大约 10-20%)额外的空间,以防万一。以下是一些近似数字
完整的 FTP 分发:1.4 TB
CTM 增量:10 GB
网页:1GB
FTP 分发当前的磁盘使用量可以在 ftp://ftp.FreeBSD.org/pub/FreeBSD/dir.sizes 找到。
2.2. 网络连接/带宽
当然,您需要连接到互联网。所需的带宽取决于您打算如何使用镜像。如果您只是想镜像 FreeBSD 的某些部分以供您网站/内网本地使用,那么需求可能比您想公开提供文件时要小得多。如果您打算成为官方镜像,则所需的带宽将更高。我们这里只能给出粗略的估计
本地站点,无公共访问:基本上没有最低限度,但 < 2 Mbps 可能会使同步过于缓慢。
非官方公开站点:34 Mbps 可能是一个良好的开端。
官方站点:建议 > 100 Mbps,您的主机应该尽可能靠近您的边界路由器。
2.3. 系统要求、CPU、RAM
这取决于预期的客户端数量,这由服务器的策略决定。它还受到您想要提供的服务类型的影響。普通的 FTP 或 HTTP 服务可能不需要大量的资源。注意如果您提供 rsync。这会对 CPU 和内存要求产生重大影响,因为它被认为是一个内存消耗大户。以下只是一些示例,为您提供一个非常粗略的提示。
对于一个提供 rsync 的访问量适中的站点,您可以考虑使用一个大约 800MHz - 1 GHz 的当前 CPU,以及至少 512MB RAM。这可能是您想要为官方站点提供的最低配置。
对于一个经常使用的站点,您肯定需要更多的 RAM(将 2GB 作为良好的开端),并可能需要更多的 CPU,这也可能意味着您需要使用一个 SMP 系统。
您还需要考虑一个快速的磁盘子系统。SVN 存储库上的操作需要一个快速的磁盘子系统(强烈建议使用 RAID)。具有自身缓存的 SCSI 控制器也可以加快速度,因为这些服务中的大多数都会对磁盘进行大量的小修改。
2.4. 要提供的服务
每个镜像站点都需要提供一组核心服务。除了这些必需的服务之外,服务器管理员可以选择提供一些可选的服务。本节解释了您可以提供的服务以及如何实施它们。
2.4.1. FTP(FTP 文件集必需)
这是最基本的服务之一,对于每个提供公共 FTP 分发的镜像来说都是必需的。FTP 访问必须是匿名的,不允许上传/下载比率(反正也是荒谬的事情)。不需要上传功能(并且绝不允许用于 FreeBSD 文件空间)。此外,FreeBSD 档案应该在 /pub/FreeBSD 路径下可用。
有很多软件可以设置为允许匿名 FTP(按字母顺序排列)。
/usr/libexec/ftpd
:可以使用 FreeBSD 自身的 ftpd。请务必阅读 ftpd(8)。ftp/ncftpd:一个商业软件包,教育用途免费。
ftp/oftpd:一个以安全为主要目标而设计的 ftpd。
ftp/proftpd:一个模块化且非常灵活的 ftpd。
ftp/pure-ftpd:另一个以安全为重点开发的 ftpd。
ftp/twoftpd:同上。
ftp/vsftpd:一个“非常安全”的 ftpd。
FreeBSD 的 ftpd
、proftpd
以及可能还有 ncftpd
是最常用的 FTPd 之一。其他 FTPd 在镜像站点中没有大量的用户群。需要考虑的一件事是,您可能需要灵活地限制允许的并发连接数量,从而限制消耗的网络带宽和系统资源。
2.4.2. Rsync(FTP 文件集可选)
Rsync 通常用于访问 FreeBSD FTP 区域的内容,以便其他镜像站点可以使用您的系统作为其源。该协议在许多方面不同于 FTP。它更节省带宽,因为在文件更改时,只传输文件之间的差异,而不是整个文件。Rsync 确实需要为每个实例分配大量的内存。大小取决于同步模块的大小,以目录和文件的数量来衡量。Rsync 可以使用 rsh
和 ssh
(现在是默认设置)作为传输,或者使用它自己的协议进行独立访问(这是公共 rsync 服务器的首选方法)。可以应用身份验证、连接限制和其他限制。只有一个软件包可用
2.4.3. HTTP(网页必需,FTP 文件集可选)
如果您想提供 FreeBSD 网页,您需要安装一个 Web 服务器。您可以选择通过 HTTP 提供 FTP 文件集。Web 服务器软件的选择由镜像管理员决定。一些最受欢迎的选择是
www/apache24:Apache 仍然是互联网上部署最广泛的 Web 服务器之一。它被 FreeBSD 项目广泛使用。
www/boa:Boa 是一个单任务 HTTP 服务器。与传统的 Web 服务器不同,它不会为每个传入连接创建子进程,也不会创建自身子进程的多个副本以处理多个连接。尽管如此,它应该为纯粹的静态内容提供相当不错的性能。
www/cherokee:Cherokee 是一个非常快、灵活且易于配置的 Web 服务器。它支持如今广泛的技术:FastCGI、SCGI、PHP、CGI、SSL/TLS 加密连接、虚拟主机、用户身份验证、即时编码和负载均衡。它还生成与 Apache 兼容的日志文件。
www/lighttpd:lighttpd 是一个安全、快速、兼容且非常灵活的 Web 服务器,它针对高性能环境进行了优化。与其他 Web 服务器相比,它的内存占用非常小,并能很好地处理 CPU 负载。
www/nginx:nginx 是一个高性能边缘 Web 服务器,内存占用小,具有构建现代高效 Web 基础设施的关键功能。功能包括 HTTP 服务器、HTTP 和邮件反向代理、缓存、负载均衡、压缩、请求限流、连接复用和重用、SSL 卸载和 HTTP 媒体流。
www/thttpd:如果您要提供大量静态内容,您可能会发现使用 thttpd 等应用程序比其他应用程序更高效。它针对在 FreeBSD 上提供卓越的性能进行了优化。
3. 如何镜像 FreeBSD
好的,现在您了解了要求以及如何提供服务,但不了解如何获取它。:-) 本节解释了如何实际镜像 FreeBSD 的各个部分,使用哪些工具,以及从哪里镜像。
3.1. 镜像 FTP 站点
FTP 区域是需要镜像的最大数据量。它包括网络安装所需的分发集、分支(实际上是签出源代码树的快照)、用于用安装分发写入 CD-ROM 的 ISO 映像、一个实时文件系统以及端口树的快照。当然,所有这些都是针对不同 FreeBSD 版本和不同体系结构的。
镜像 FTP 区域的最佳方法是 rsync。您可以安装端口 net/rsync,然后使用 rsync 与上游主机同步。rsync 已在 Rsync(FTP 文件集可选) 中提到。由于 rsync 访问不是必需的,因此您首选的上游站点可能不允许访问。您可能需要稍微找一找才能找到允许 rsync 访问的站点。
由于 rsync 客户端的数量会对服务器机器产生重大影响,大多数管理员都会对服务器施加限制。对于镜像,您应该向您同步的网站维护人员询问他们的策略,并可能为您的主机申请例外(因为您是镜像)。 |
镜像 FreeBSD 的命令行可能看起来像这样
请参阅 rsync 文档,该文档也位于 http://rsync.samba.org/,了解与 rsync 一起使用的各种选项。如果您同步整个模块(不像子目录),请注意模块目录(此处为“FreeBSD”)将不会创建,因此您不能省略目标目录。您可能还想设置一个脚本框架,通过 cron(8) 调用此类命令。
3.2. 镜像 WWW 页面
自 2021-01-25 将文档迁移到 Hugo/Asciidoctor 以来,使用 rsync 镜像网站不再有效。 |
目前正在进行研究,以使用 官方基础设施 实现网站镜像。
对于以前的网站镜像,实现镜像网站的一种方法是在本地构建网站,并使用其将要托管的对应地址。
% cd website && env HUGO_baseURL="https://www.XX.freebsd.org/" make
在 FreeBSD 文档项目入门指南 一书中查看有关构建工具的更多详细信息。
注意网站被拆分为 www.FreeBSD.org 和 docs.FreeBSD.org,它们之间存在链接;此外,目前, |
3.3. 镜像软件包
由于带宽、存储和管理的要求非常高,FreeBSD 项目决定不允许公开镜像软件包。对于拥有大量机器的站点,运行 pkg(8) 进程的缓存 HTTP 代理可能很有利。或者,可以通过运行以下命令获取特定软件包及其依赖项
% pkg fetch -d -o /usr/local/mirror vim
获取这些软件包后,必须通过运行以下命令生成存储库元数据
% pkg repo /usr/local/mirror
获取软件包并生成存储库元数据后,通过 HTTP 将软件包提供给客户端机器。有关更多信息,请参阅 pkg(8) 手册页,特别是 pkg-repo(8) 页面。
3.4. 我应该多久镜像一次?
每个镜像至少应每天更新一次。当然,需要一个带有锁定的脚本,以防止多个运行同时发生,并从 cron(8) 运行。由于几乎每个管理员都以自己的方式执行此操作,因此无法提供具体说明。它可能像这样工作
将运行镜像应用程序的命令放入脚本中。建议使用普通的
/bin/sh
脚本。添加一些输出重定向,以便将诊断消息记录到文件中。
测试您的脚本是否有效。检查日志。
使用 crontab(1) 将脚本添加到适当用户的 crontab(5) 中。这应该是一个与 FTP 守护进程运行的用户不同的用户,这样如果 FTP 区域内的文件权限不是世界可读的,则匿名 FTP 无法访问这些文件。这用于“暂存”版本 - 确保所有官方镜像站点在发布当天都拥有所有必要的发布文件。
以下是一些推荐的计划
FTP 文件集:每天
WWW 页面:每天
4. 从哪里镜像
这是一个重要的问题。因此本节将花费一些精力来解释背景。我们将多次说明:在任何情况下都不应该从 ftp.FreeBSD.org
镜像。
4.1. 关于组织的几句话
镜像按国家/地区组织。所有官方镜像都有 ftpN.CC.FreeBSD.org
格式的 DNS 条目。CC(即国家/地区代码)是该镜像所在的国家/地区的顶级域名(TLD)。N 是一个数字,表示主机将是该国家/地区的第 N 个镜像。(同样适用于 wwwN.CC.FreeBSD.org
等)有些镜像没有 CC 部分。这些是连接非常良好并允许大量并发用户的镜像站点。ftp.FreeBSD.org
实际上是两台机器,一台目前位于丹麦,另一台位于美国。它不是主站点,永远不应该用来镜像。大量的在线文档引导“交互式”用户访问 ftp.FreeBSD.org
,因此自动化镜像系统应该找到另一台机器来镜像。
此外,还存在一个镜像层次结构,它用层级来描述。主站点没有被引用,但可以被描述为Tier-0。从这些站点镜像的镜像可以被视为Tier-1,Tier-1-镜像的镜像是Tier-2,等等。鼓励官方站点成为较低层级,但层级越低,对资源的要求就越高,如 FreeBSD 镜像要求 中所述。此外,对低层级镜像的访问可能是受限制的,对主站点的访问绝对是受限制的。层级-层次结构没有在 DNS 中反映出来,通常也没有在除了主站点以外的任何地方记录。但是,像 1-4 这样编号较低的官方镜像通常是Tier-1(这只是一个粗略的提示,没有规则)。
4.2. 好吧,我现在应该从哪里获取东西?
在任何情况下都不应该从 ftp.FreeBSD.org
镜像。简而言之,从互联网角度最接近您的站点镜像,或者为您提供最快的访问速度的站点镜像。
4.2.1. 我只想从某个地方镜像!
如果您没有特殊意图或要求,好的 中的声明适用。这意味着
检查哪些站点提供最快的访问速度(跳跃次数、往返时间)并提供您打算使用的服务(例如 rsync)。
联系您选择的站点的管理员,说明您的请求,并询问他们的条款和政策。
按照上述步骤设置您的镜像。
4.2.2. 我是官方镜像,哪个站点适合我?
一般来说,我只想从某个地方镜像! 中的描述仍然适用。当然,您可能希望重点关注您的上游应该处于较低层级。在 官方镜像 中描述了有关官方镜像的一些其他注意事项。
4.2.3. 我想访问主站点!
如果您有充分的理由和先决条件,您可能希望并获得访问其中一个主站点的权限。对这些站点的访问通常是受限制的,并且访问权限有特殊政策。如果您已经是官方镜像,这无疑有助于您获得访问权限。在任何其他情况下,请确保您的国家/地区确实需要另一个镜像。如果它已经有三个或更多镜像,请先咨询“区域管理员”(hostmaster@CC.FreeBSD.org)或 FreeBSD 镜像站点邮件列表。
任何帮助您成为官方镜像的人,都应该帮助您获得合适的上游主机的访问权限,无论是主站点之一,还是合适的 Tier-1 站点。如果没有,您可以发送电子邮件至 mirror-admin@FreeBSD.org 请求帮助。
FTP 文件集有一个主站点。
4.2.3.1. ftp-master.FreeBSD.org
这是 FTP 文件集的主站点。
ftp-master.FreeBSD.org
提供 rsync 访问权限,以及 FTP。请参阅 镜像 FTP 站点。
由于它们是Tier-1-镜像,因此也鼓励镜像允许对 FTP 内容进行 rsync 访问。
5. 官方镜像
官方镜像是指
a) 拥有
FreeBSD.org
DNS 条目(通常是 CNAME)。b) 在 FreeBSD 文档(如手册)中列为官方镜像。
到目前为止,区分官方镜像。官方镜像不一定是Tier-1-镜像。但是,您可能找不到一个不是官方镜像的Tier-1-镜像。
5.1. 官方 (tier-1) 镜像的特殊要求
很难说明所有官方镜像的要求,因为项目在这一点上比较宽容。更简单地说,官方 tier-1 镜像需要什么。所有其他官方镜像都可以将其视为一个大应该。
Tier-1 镜像需要
携带完整的文件集
允许访问其他镜像站点
提供 FTP 和 rsync 访问权限
此外,管理员应该订阅 FreeBSD 镜像站点邮件列表。请参阅 此链接,了解有关如何订阅的详细信息。
对于集线器管理员,尤其是 Tier-1 集线器管理员,检查 发布计划 以获取下一个 FreeBSD 版本非常重要。这很重要,因为它会告诉您下一个版本何时计划发布,从而让您有时间为随之而来的流量高峰做好准备。 集线器管理员还应该尽量保持其镜像尽可能最新(同样,对于 Tier-1 镜像来说,这一点更重要)。如果 Mirror1 有一段时间没有更新,那么较低层级镜像将开始从 Mirror1 镜像旧数据,从而导致恶性循环……保持您的镜像更新! |
5.2. 那么如何成为官方镜像?
请与集群管理员联系,如 https://freebsd.ac.cn/administration/#t-clusteradm 中所述。
6. 来自镜像站点的部分统计数据
以下链接指向您最喜欢的镜像(即唯一愿意提供统计数据的镜像)的统计页面。
6.1. FTP 站点统计数据
ftp.is.FreeBSD.org - hostmaster@is.FreeBSD.org - (带宽) (FTP 进程) (HTTP 进程)
ftp2.ru.FreeBSD.org - mirror@macomnet.ru - (带宽) (HTTP 和 FTP 用户)
最后修改时间:2024 年 9 月 20 日,由 Fernando Apesteguía 修改