Spiegelserverinfrastruktur
aus openSUSE, der freien Wissensdatenbank
Dieses Dokument beschreibt die verschieden Wege, wie der Inhalt von ftp.opensuse.org gespiegelt werden kann und wie ein offizieller Spiegelserver etabliert werden kann.
Inhaltsverzeichnis |
rsync-Server
Öffentlicher Zugriff: rsync.opensuse.org
Dieser rsync-Server steht allen offen. Er bietet einen öffentlichen Zugriff über das rsync-Protokoll auf den Inhalt von download.opensuse.org. Er ist momentan auf 50 gleichzeitige Verbindungen begrenzt, weshalb es sein könnte, dass Sie nicht immer darauf zugreifen können. Verschiedene Spiegelserver bieten ebenfalls einen rsync-Dienst an.
Zugriff für registrierte Spiegelserver: stage.opensuse.org
Registrierte Spiegelserver erhalten Zugriff auf stage.opensuse.org. Dieser Server bietet den aktualisierten Inhalt von ftp.opensuse.org vor der offiziellen Veröffentlichung an und verfügt über eine höhere Transferrate als die öffentlichen Server. Wenn ihr Server über mindestens 100MBit Bandbreite verfügt und die im nächsten Abschnitt aufgeführten Bedingungen erfüllt sind, möchten Sie sich vielleicht bei mailto:ftpadmin@suse.de für einen Zugang registrieren.
Bedingungen für den Zugriff auf stage.opensuse.org
"staged content" ist Inhalt, der noch nicht für die Öffentlichkeit gedacht ist -- den wir aber bereits gerne an unsere Spiegelserver verteilen würden, so dass er zum Zeitpunkt der Veröffentlichung bereits gespiegelt und dadurch für viele Leute schnell verfügbar ist. Wie kann dass nun erreicht werden? Wie setzten Die Zugriffsrechte für das zu schützende Verzeichnis auf 'rwxr-x---' (0750). Das Verzeichnis wird dann als Teil des Baums ausgeliefert, der auf dem stage-Server bereitgehalten wird. Wenn Spiegelserver davon synchronisieren werden Sie diese Zugriffsrechte übernehmen. Wenn dann der Zeitpunkt der Veröffentlichung gekommen ist, werden die Zugriffsrechte für das Verzeichnis auf 'rwxr-xr-x' (0755) gesetzt, und wenn der Spiegelserver das nächste Mal synchronisiert, werden auch die neuen Rechte wieder übernommen und das Verzeichnis wird auch auf den HTTP/FTP-Spiegelservern lesbar. Dieser Veröffentlichungsvorgang durch Ändern der Zugriffsrechte wird manchmal auch als "bit flip release" bezeichnet.
Es gibt dabei einige Besonderheiten, die Sie (als Spiegelserveradmin) beachten müssen:
- Führen Sie rsync mit -p (--perms) aus, so dass die Zugriffsrechte auf der Maschine reproduziert werden.
- Wenn Sie einen öffentlichen rsync-Server betreiben: Stellen Sie sicher, dass ihr rsync-Daemon unter einer anderen Benutzer-ID läuft als das Skript, das die Inhalte ausliefert. Andernfalls könnte es sein, dass sie den staged content bereits öffentlich zugänglich machen. Sie können dies bspw. dadurch verhindern, in dem Sie für das verwendete rsync-Modul die uid auf nobody und die gid auf nogroup setzen.
- Führen Sie ihre Spiegelserverskripte unter einer anderen Benuzter-ID als ihren HTTP/FTP-Server aus. Eine identischer Benutzer-ID würde alle Dateien für den HTTP/FTP-Server lesbar machen. Der gleiche Effekt tritt ein, wenn Sie den Server vom root-Benutzer laufen lassen.
- Lassen Sie ihren Webserver nie als root-Benutzer laufen. Eine häufige Fehlkonfiguration tritt bspw. beim Einsatz von lighttpd ein, der unter root läuft, da die Konfiguration, die ihn unter einem anderen Benutzer/einer anderen Gruppe laufen lässt vergessen wurde.
Sie sollten die Spiegelserver-Mailingliste abonniert haben (mehr dazu am Ende dieser Seite), so dass wir Sie über kommende Veröffentlichungen und weiteres auf dem Laufenden halten können. Wir werden Sie über den Veröffentlichungsplan und die genaue Terminierung von Veröffentlichungen informieren -- wodurch Sie uns aktiv unterstützen können.
Registrieren Sie ihren Spiegelserver
Um Clients an ihren Spiegelserver weiterleiten zu können, benötigen wir folgendes:
- E-Mail-Adresse zur Kontaktaufnahme
- HTTP URL auf ihrem Spiegelserver (bspw. http://ihrspiegelserver.beispiel.de/pub/opensuse/)
- Ist ihr Spiegel in der Lage, große Dateien zu handhaben? (um Abbilder größer als 2Gb handhaben zu können)
- nur-lesen rsync-Zgriff für unseren Scanner -- für Überprüfungen, die wir durchführen, um unsere Weiterleiterdatenbank aktuell zu halten. Die geschieht von 195.135.220.0/22.
- FTP URL, falls Sie einen FTP-Server laufen haben. Kann als Rückfallprotokoll für das Scannen dienen, falls rsync nicht verfügbar ist.
Falls Sie diese Informationen in einem Schreiben an mailto:ftpadmin@suse.de, werden wir ihren Spiegelserver zu unserer Spiegelserverdatenbank hinzufügen. Die Spiegelserverdatenbank wird von unserem Weiterleitungsdienst verwendet, um Clients aktiv auf ihren Server weiterleiten zu können. Wir versuchen, Anfragen auf geographischer Grundlage über die Client-IP-Adresse zu verteilen. Die Menge an Weiterleitungen hängt auch von einer Punktzahl ab, welche wir gemeinsam mit ihnen ermitteln werden, um Kapazitäten genau zu treffen.
Weiterhin überwachen wir aktiv den Inhalt auf Spiegelservern, so dass wir nur auf Dateien weiterleiten, die auch aktuell auf einem Spiegelserver existieren. rsync ist dafür die effektivste Methode; die Überprüfung von 300.00 Dateien dauert damit nur wenige Minuten. Die zweitbeste Methode, falls rsync nicht verfügbar ist, nutzt FTP, allerdings ist dies weniger effizient (dauert beträchtlich länger und verursacht auf ihrem Server mehr Last). Als allerletzte Möglichkeit können wir auch noch auf HTTP zurückfallen, falls weder rsync noch FTP verfügbar sind. Allerdings erreicht man dann nur Schneckentempo. Folglich sollten Sie bitte ein rsync-Modul für den openSUSE-Inhalt in Betracht ziehen, welches eine wesentlich schnellere Überprüfung ihres Servers ermöglicht.
Vielleicht wollen Sie ihren Spiegelserver zu unseren offiziellen Listen für die stabile Version oder die Entwicklerversion hinzufügen. Dies ist ein Wiki, klicken Sie einfach oben auf die Verknüpfung "bearbeiten", am besten auch noch "edit" im englischen Wiki ;)
Informiert bleiben
Die Mailing-Liste mirror@opensuse.org (vormals suse-mirror@suse.de) ist recht ruhig und wird hauptsächlich für Ankündigungen genutzt. Sie ist auch ein guter Ort für Diskussionen rund um die Spiegelung von openSUSE-Inhalt, sollte diese nötig sein. Zum Abonnieren schreiben Sie bitte an mailto:ftpadmin@suse.de (da dies eine geschlossene Liste ist).
Die allgemeine Kontaktadresse lautet: mailto:ftpadmin@suse.de
Es gibt einen IRC-Kanal namens #opensuse-mirrors auf freenode.net.
Einrichtung eines Spiegelservers
Anleitung zur Einrichtung eines Spiegelservers
rsync-Module
Die rsync-Module auf stage.opensuse.org und rsync.opensuse.org sind größtenteils identisch. Ersterer hat zusätzlichen Inhalt, der noch nicht veröffentlicht ist, und da der andere von ihm synchronisiert gibt es eine kleine Zeitverschiebung bei der Synchronisation zwischen den Beiden.
Größen für die rsync-Module werden jede Nacht ausgewertet:
Ein Beispiel für einen Einzeiler für die Synchronisierung eines Moduls könnte so aussehen:
rsync -rlpt rsync.opensuse.org::opensuse-hotstuff-160gb /srv/pub/opensuse/ --delete-after -hi --stats
allgemeine ftp.opensuse.org-Module:
- opensuse-hotstuff-160gb: Die meistangefragten Dateien, die in 160 GB passen. Dies umfasst zur Zeit das Installationspaketdepot, die CD/DVD-Medien des aktuellen Produkts, seine Aktualisierungen und die beliebtesten anderen Paketdepots.
- opensuse-hotstuff-80gb: Eine eingeschränktere Auswahl beliebter Dateien, die in 80 GB passen. Nutzen Sie dieses Modul, wenn Sie stark begrenzten Speicherplatz haben. Dennoch gehen die meisten Anfragen an Dateien in diesem Modul, weshalb es nützlich ist, auch "nur" diese Dateien zu spiegeln.
- opensuse-updates: Dieses rsync-Modul stellt den /update-Baum bereit, der die offiziellen Aktualisierungen für veröffentlichte openSUSE-Distributionen enthält, beginnend mit openSUSE 10.3. (Um Aktualisierungen für ältere Veröffentlichungen zu spiegeln, prüfen Sie rsync://ftp.suse.com/suse/update/.)
- opensuse-full: Dieses Modul bietet bis auf das Verzeichnis SL-OSS-factory den kompletten Inhalt von ftp.opensuse.org an. SL-OSS-factory wird ausgeschlossen, weil sich sein Inhalt ständig verändert. Sie sollten stattdessen drpmsync benutzen um dieses Verzeichnis zu aktualisieren, da es im Vergleich zu rsync den Datenverkehr auf unter 10% reduziert.
- opensuse-full-with-factory: Das selbe wie vorher, diesmal aber mit SL-OSS-factory-Verzeichnis, welche die Factory Distribution enthält. Wir empfehlen aber weiterhin, dieses Modul nicht zu benutzen. Sie können das "drpmsync"-Verzeichnis ausschließen, wenn Sie nicht planen, einen drpmsync-Server zu unterhalten.
Module zur Spiegelung der Build Service-Paketdepots:
- buildservice-repos: Der komplette Inhalt
- buildservice-repos-main: Alles, bis auf die home:-Projekte der Nutzer
Aktualisierungen passieren jederzeit, wann immer ein Paketdepot des Build Service neu gebaut und aktualisiert wird. Es ist auch möglich, die Aktualisierungen gepushed zu bekommen.
Module zur Spiegelung des drpmsync-Baums:
- opensuse-drpmsync: nur distribution/SL-OSS-factory/drpmsync Baum (OSS-Teil)
- opensuse-drpmsync-nonoss: nur distribution/SL-Factory-non-oss/drpmsync Baum (non-OSS-Teil)
- opensuse-full-with-factory-drpmsync: Das selbe wie opensuse-full-with-factory, enthält auch den drpmsync-Baum.
Nuten Sie dies nur, wenn Sie vorhaben, ihren eigenen drpmsync-Server aufzusetzen.
Wenn Sie diese Bäume spiegeln wollen, dann müssen Sie sich darüber im Klaren sein, dass die enorme Anzahl an Dateien (~200000) zu einer erheblichen Last auf unserem rsync-Server führt. Vermeiden Sie dies bitte nach Möglichkeit.
drpmsync.opensuse.org
Drpmsync ist ein Synchronisierungsdienst für die Factory Distribution. Er reduziert den Dantentransfer auf ein Minimum, indem er nur xdelta-Daten übermittelt, falls die lokalen RPMS nicht älter als einen Monat sind.
Drpmsync bietet nur Zugang zum SL-OSS-factory-Verzeichnis. Dieses Verzeichnis enthält immer den letzten Entwicklungsstand der Distribution, wodurch es auch einen inkonsistenten oder fehlerhaften Zustand beinhalten kann. Es ist nützlich für Entwickler, um den neuesten Code zu erhalten oder für Tester um den letzten Entwicklungsstand zu überprüfen.
Einen drpmsync-Klienten können Sie im Paket deltarpm finden oder von http://download.opensuse.org/tools/drpmsync/ herunterladen. Aufrufen können Sie ihn beispielsweise so:
drpmsync drpmsync.opensuse.org:8888/Factory /mein/verzeichnis
Beachten Sie bitte, dass drpmsync.opensuse.org schwer beansprucht sein könnte, wir suchen deshalb nach öffentlichen Spiegelservern welche ebenfalls einen drpmsync-Server unterhalten möchten. Kontaktieren Sie uns, wenn Sie solch einen ebenfalls laufen lassen wollen.
Pushing-Unterstützung für Build Service-Aktualisierungen
stage.opensuse.org beherbergt auch den kompletten Inhalt des Build Service. Da die Aktualisierungen die ganze Zeit über geschehen, wann immer ein neuer Paketsazt gebaut wurde, ist es genauso möglich, die Inhalte zugeschoben (pushed) zu bekommen, anstatt ständig danach anfragen (polling) zu müssen. Dies benötigt aber rsync-Schreibzugriff für stage.opensuse.org auf ihrem Server. Die Vorteile dabei sind, dass
- der Spiegelserver immer aktuell ist,
- keine Notwendigkeit besteht, rsync-Aufrufe über alle Paketdepots laufen lassen zu müssen. Das pushing wird nur die Depots aktualisieren, in denen sich etwas geändert hat. Die reduziert die E/A-Last auf dem Spiegel maßgeblich.
- der Weiterleiter, der auf http://download.opensuse.org/ läuft, darüber in Kenntnis ist, dass die Pakete aktualisiert wurden und so sofort auf den Spiegelserver weiterleiten kann.
Wie wird man zu einem pushed Spiegelserver?
Der normale Weg (wir können allerdings auch einen alternativen Weg anbieten) besteht darin, ein rsync-Modul auf ihrem Server aufzumachen, auf welches stage.opensuse.org Schreibzugriff erhält. Eine Anmeldung und ein Passowrt sind optional möglich, aber nicht wirklich notwendig. Schreiben Sie dann bitte eine E-Mail an mailto:ftpadmin@suse.de , in der Sie uns die folgenden Informationen mitteilen:
- den Servernamen, auf den gepushed werden soll
- das zu nutzende rsync-Modul
- optional Benutzerkonto samt Passwort
- Was Sie spiegel wollen (alles oder nur einige bestimmte Projekte)
- Wie die öffentliche URL zum Herunterladen lauten wird.
- Alle Arten spezieller Wünsche :)
Dann benötigen wir noch rsync-Lesezugriff, um ihren Spiegelserver für unseren Weiterleiter überprüfen zu können. Die Weiterleiterdatenbank muss periodisch aktualisiert werden, so dass sie die aktuellen Dateien auf ihrem Spiegel kennt. Die Prüfung geschieht von 195.135.220.0/22.
Der push pausiert zwischen 1:00 und 2:00 MESZ und zwischen 13:00 und 14:00 MESZ. Wenn Sie von ihrer Seite aus einen pulling rsync laufen lassen wollen, dann ist dies die beste Zeit dafür.
Planung: Größe & Aktualisierungsfrequenz
| Größe | Pfad des Baums | Frequenz der Aktualisierung |
|---|---|---|
| 25G | distribution/10.2/iso | selten/nie |
| 36G | distribution/10.2/repo | selten/nie |
| 20G | distribution/10.3/iso | selten/nie |
| 51G | distribution/10.3/repo | selten/nie
|
| 18G | update | häufig (Synchronisierung alle 4-24 Stunden)
Dieser Baum wird wachsen. Ende 2008 wird eine Größe von 35G erwartet. Wuchs innerhalb von einem Jahr auf 15G an |
| 235G | repositories (mit home:/) | sehr oft -- push rsync empfohlen |
| 133G | repositories (ohne home:/) | sehr oft -- push rsync empfohlen
|
| <160G | [opensuse-hotstuff-160gb] | unterschiedlich (synchronisieren Sie all sechs Stunden) |
| <80G | [opensuse-hotstuff-80gb] | unterschiedlich (synchronisieren Sie all sechs Stunden)
|
(Stand 19. Mai 2008)

