openSUSE:镜像结构

跳转至: 导航, 搜索
本文档描述了为 download.opensuse.org 的内容做镜像的多种方法,以及如何成为一个官方镜像。

成为公开镜像的需求

  • 根据镜像的大小,需要 40-60 GB 空间。
  • 需要不少流量。真实数量无法估计,但比如在德国 1TB/月是下限,很容易达到。如果镜像能够提供 2TB 每月的流量就会很轻松。10mbit 是最小需求,最好是 100mbit。在一些地方,情况可能不同,需求也就是不同。总体来说,镜像了越多的内容,就会引来越多的流量,另一方面我们也可以控制转向给你的数量。ISO 的下载是流量的最大来源。
  • 硬件或系统无所谓。

当前的 rsync 模块大小列示在 下面。但是注意完全可以只镜像一部分模块。

Rsync 服务器

公开访问:rsync.opensuse.org

此 rsync 服务器对所有人开放。它提供通过 rsync 协议对 download.opensuse.org 内容的公开访问。访问限制在 50 个链接,因此您可能不是随时都能访问到它。有些 openSUSE:Factory_镜像 或许也提供 rsync 服务。

仅供注册镜像访问:stage.opensuse.org

注册的镜像可以访问 stage.opensuse.org。此服务器提供 download.opensuse.org 在官方发布前的更新内容,传输速率也比公开服务器大。如果您的镜像有至少 100MBit 连接,并满足如下条件,您可以发信给 ftpadmin@suse.de 注册访问权限。

访问 stage.opensuse.org 的条件

预演内容意味着不应现在公开的内容 -- 但是我们依然愿意分发给镜像,这样在公开发布时,它们就已经被镜像了,这样大家就可以访问了。这是如何实现的呢?我们设置文件夹权限保护为 'rwxr-x---' (0750)。然后把该文件夹存放在预演 rsync 服务器上。当镜像从它同步时,会复刻这些权限。当公开发行的时候,文件夹权限被修改为 rwxr-xr-x (0755),这样镜像在下一次同步时,它们就可以同步过去,它们的 HTTP/FTP 服务器就可以访问这些内容了。这种改权限的发布过程也叫做 翻牌发布

有一些镜像管理员需要注意的事项:

  • 使用 -p (--perms) 参数运行 rsync,这样权限就可以复刻到目标机器。
  • 如果您运行一个公开 rsync 服务器:请确保运行 rsync 守护程序的用户不能是运行拉取内容的脚本的用户。否则您就公开发布了这些预演内容。例如,您可以这么做,设置相关 rsync 模块的 uid 为 nobody,gid 为 nogroup。
  • 运行镜像脚本的用户不能是运行 HTTP/FTP 服务器的用户。同样的用户会让 HTTP/FTP 服务器可以读取所有文件。用 root 运行也是一样的效果。
  • 永远别以 root 运行您的网络服务器 (FTP 服务器 / rsync 服务器)。一个一再出现的配置错误就是,如果使用的是 lighttp,它以 root 运行,就会忽略您配置的不同的运行用户/用户组。

您应该订阅镜像邮件列表 (见此页下方),这样我们就可以随时通知您发布活动了。我们会通知您发布日程,和公开发布的精确时间 -- 您也可以更积极的支持我们。

注册您的镜像

为了中转客户到您的镜像,我们需要如下信息:

  • 联系邮件
  • 镜像的 HTTP URL (例如 http://yourmirror.example.com/pub/opensuse/)
  • 您的网络服务器可存放大文件吗? (处理大于 2 GB 的文件)
  • 我们的扫描器的只读 rsync 权限 -- 我们扫描它里让我们的下载中转器数据库保持最新。扫描器的地址是 195.135.220.0/22.
  • 如果您运行 FTP 服务器的话还要 FTP URL。如果 rsync 不可能的话,可以作为备份扫描协议。否则 openSUSE 不使用 FTP。
  • 操作员或镜像贡献者的名字和 URL,用于显示在 镜像列表

如果您写信给 ftpadmin@suse.de 并提供这些数据,我们将添加您的镜像到我们的镜像数据库。

镜像数据库被我们的下载服务器用来积极分配客户到您的服务器,我们尝试根据客户 IP 地址的地理分布来分发请求。中转量也取决于我们和您商议的分数,该分数用来匹配您的能力。

另外,我们积极监控我们镜像上的内容,这样我们只中转该镜像上有的文件请求。rsync 是最有效的方法; 扫描 300.000 文件只需要几分钟。如果 rsync 不可用,第二好的方法是 FTP,但它的效率相对较低 (耗时更长,对您的服务器负载的压力更大)。最后的备份手段是 HTTP,在 rsync 或 FTP 不可用的情况下。但是它超慢。 因此请考虑为 openSUSE 内容添加 rsync 模块,那样扫描的更快一些。

保持联系

mirror@opensuse.org 邮件列表 (之前叫做 suse-mirror@suse.de) 的流量很低,基本用作公告。它也是一个合适的在有必要时讨论 openSUSE 镜像的地方。订阅请写信给 mirror+subscribe@opensuse.org 并且,由于它是一个封闭列表,请也发邮件给 ftpadmin@suse.de 让它加你。

通用联系地址是:ftpadmin@suse.de

IRC 频道在 freenode.net 上的 #opensuse-mirrors 频道。

如何设置镜像

指南见此:openSUSE:镜像指南

rsync 模块

stage.opensuse.org 和 rsync.opensuse.org 上的 rsync 模块大体相同。前者有一些预演待发布的额外内容,后者从它同步,两者的延迟很小。

rsync 模块大小每日更新:

命令行同步某个模块的命令应该像这样:

 rsync -rlpt rsync.opensuse.org::opensuse-hotstuff-160gb /srv/pub/opensuse/ --delete-after -hi --stats

大家感兴趣的主要模块:

opensuse-hotstuff-160gb: 最多请求的文件,大小控制为 160 GB。这目前包括安装源和最新产品的 CD/DVD 介质,它们的更新,和最受欢迎的其他软件源。这是磁盘空间有限的镜像最适合用的模块。大部分请求都是这些文件。
opensuse-hotstuff-80gb: 更严格挑选的最受欢迎文件,大小控制为 80GB。如果您的镜像空间更小,请用这个。大多数请求都指向这个模块中的文件,因此只镜像它们也是很有用的。
opensuse-updates: 这个 rsync 模块提供了 /update 树,这是自 10.3 起已发布版本的官方升级。(要镜像更旧版本的升级,请用 rsync://ftp.suse.com/suse/update/。)
opensuse-full: 这个 rsync 模块提供了module provides the complete content of download.opensuse.org 的完整内容,除了 SL-OSS-factory 目录。排除此目录的原因是里面的内容更新太频繁。要镜像 SL-OSS-factory 目录,我们推荐 使用 drpmsync 来获取此目录,它与 rsync 相比能降低到 10% 以下的流量。
opensuse-full-with-factory: 和前面的一样,还包括了 SL-OSS-factory 目录,此目录包含 Factory 发行版。同样,我们不推荐使用此模块。
opensuse-source: 这个 rsync 模块提供 /source 树,该树包含 11.1 之后的源代码软件包。只在 stage.opensuse.org 上有,但没有访问权限限制。
opensuse-debug: 这个 rsync 模块提供 /debug 树,该树包含 11.1 之后的源代码软件包,和发布的更新。只在 stage.opensuse.org 上有,但没有访问权限限制。

镜像 编译服务 使用的 rsync 模块 repositories:

buildservice-repos: 完整内容
buildservice-repos-main: 除了用户 home 项目的所有东西

更新随时有,编译服务上的某个源被重新编译和更新就会有更新。也可以使用 推送来获取更新。


镜像 drpmsync 树所用的 rsync 模块:

opensuse-drpmsync: 只有 distribution/SL-OSS-factory/drpmsync 树 (OSS 部分)
opensuse-drpmsync-nonoss: 只有 distribution/SL-Factory-non-oss/drpmsync 树 (non-OSS 部分)
opensuse-full-with-factory-drpmsync: 和 opensuse-full-with-factory 一样,包括 drpmsync 树。

在您想要设置您自己的 drpmsync 服务器时才用。

如果您想要镜像这些树,您需要注意大量的文件 (~200000) 会在我们的 rsync 服务器上造成很高负载。可能的话请尽量避免。

drpmsync.opensuse.org

drpmsync 是供Factory 发行版使用的同步工具。如果本地 RPM 不超过 1 个月,它将只传输差值数据来大幅降低传输流量。

drpmsync 只提供对 SL-OSS-factory 目录的访问。这个目录总是包含最新的发行版编译结果。这意味着它也可能处于不一致或很崩溃的状态。它可以让开发者获取最新代码或者让测试者检验最新版本。

drpmsync 客户端可以在 make deltarpm 软件包中找到,在http://download.opensuse.org/tools/drpmsync/。它的使用方法如下:

  drpmsync drpmsync.opensuse.org:8888/Factory /my/directory

请注意 drpmsync.opensuse.org 可能始终处于高负载状态,我们期待 公开镜像 能帮忙运行drpmsync 服务器。如果您想要的话,请联系我们

编译服务更新的推送支持

stage.opensuse.org 也存放编译服务的所有内容。由于更新每时每刻都在发生,当一个新软件包被编译就会发生,因此可以选择推送内容,而不是轮询它。很显然 stage.opensuse.org 需要您服务器的 rsync 可写权限。这种方式的好处是:

  • 镜像总是最新的,
  • 无需通过所有源运行 rsync 请求。推送会自动更新变更的源。这将显著降低镜像 IO 负载。
  • 运行在 http://download.opensuse.org/中转器 能够立刻知道软件包已被更新并立刻中转客户到该镜像。

如何成为推送镜像?

通常的方式 (但我们也支持其他方式) 是在您的服务器上打开一个 rsync 模块,stage.opensuse.org 有该模块的写入权限。登录名和秘密是可选的,但并不真的需要。请写信给 ftpadmin@suse.de 并告诉我们:

  • 供推送的服务器名
  • 供使用的 rsync 模块
  • 可选的帐号和密码
  • 您想要镜像什么 (所有或者某些特定项目)
  • 公开下载地址
  • 任何特殊要求 :)

然后,我们需要 rsync 读取权限以让下载中转器扫描您的镜像。下载中转器数据库需要定时更新以反应您镜像上的真实文件情况。扫描来自于 195.135.220.0/22。

计算表:大小 & 更新周期

大小 子树路径 更新周期


20G distribution/10.3/iso 很少/永不
51G distribution/10.3/repo 很少/永不
21G distribution/11.0/iso 很少/永不
42G distribution/11.0/repo 很少/永不
947M distribution/11.1/delta 很少/永不
19G distribution/11.1/iso 很少/永不
14G distribution/11.1/repo 很少/永不


25G update/10.3 频繁 (每 4-24 小时同步)
13G update/11.0 频繁 (每 4-24 小时同步)
4.6G update/11.1 频繁 (每 4-24 小时同步)

更新树会不断增长

18G factory 常规
228G repositories (including home:/) 超频繁 --推荐 push rsync
120G repositories (without home:/) 超频繁 --推荐 push rsync
<160G [opensuse-hotstuff-160gb] 看情况 (每 6 小时同步)
<80G [opensuse-hotstuff-80gb] 看情况 (每 6 小时同步)

(更新于 March 14, 2008)