Einen Debian-Archiv-Spiegel erstellen
- Spiegeln oder nicht
- Was spiegeln
- Von wo spiegeln
- Wie man spiegelt
- Teilweises Spiegeln
- Wann Spiegeln
- Empfohlene zusätzliche Einstellungen
- Wie ein Spiegel zu der Spiegelliste hinzugefügt wird
Spiegeln oder nicht
Obwohl wir uns über alle neuen Spiegel freuen, sollte jeder zukünftige Spiegel-Betreuer sicherstellen, dass er folgende Fragen beantworten kann, bevor er seinen eigenen Spiegel aufsetzt:
- Wird in meiner Umgebung ein Spiegel benötigt? Vielleicht gibt es bereits Spiegel in der Nähe.
- Habe ich die Ressourcen, um einen Spiegel zu betreiben? Spiegel nehmen beträchtlichen Plattenplatz und Bandbreite ein, Sie müssen daher in der Lage sein, die Kosten dafür zu übernehmen.
- Ist ein Spiegel die richtige Wahl? Manchmal beginnen Leute versehentlich, einen Spiegel aufzusetzen, obwohl Sie tatsächlich einen Proxy mit Cache betreiben wollen, wie z.B. apt-cacher-ng.
Was spiegeln
Die Haupt-Spiegelseite listet alle zum Spiegeln verfügbaren Archive auf.
- Benutzer werden nach dem debian/-Archiv suchen, um Debian über Netz zu installieren, CDs zu erstellen (mit jigdo), und bereits installierte Systeme zu aktualisieren.
-
debian-cd/ ist ein Archiv, das auf den verschiedenen Spiegelservern
nicht identisch ist. Auf manchen Servern enthält es die
jigdo-Vorlagen, um CD-Images zu erstellen (mit Dateien aus debian/),
auf anderen enthält es fertige CD-Images, auf wieder anderen beides.
Bitte lesen Sie die Seite Spiegeln der CD-Images für weitere Informationen zu diesem Thema. - debian-archive/ enthält das eigentliche Archiv, die alten und überholten Debian-Versionen. Es wird im Allgemeinen nur für einen kleinen Nutzerkreis von Interesse sein.
Bitte lesen Sie die Spiegel-Größen-Seite für genauere Informationen über die Spiegel-Größen.
Das debian-security/-Archiv enthält Sicherheitsaktualisierungen, die durch das Debian-Security-Team veröffentlicht werden. Es klingt für jeden interessant, da aber Sicherheitsaktualisierungen unregelmäßig auftreten, müssen Sie Ihren Spiegel sehr oft aktualisieren, um immer auf dem neuesten Stand zu sein (oder Push-Spiegeln benutzen), deshalb empfehlen wir nicht, es zu spiegeln. Debian gibt sich alle Mühe, stattdessen die hohe Verfügbarkeit von security.debian.org sicherzustellen.
Beachten Sie: Seit der Veröffentlichung von 3.1 (Sarge) im Juni 2005 ist das debian-non-US-Archiv missbilligt.
Von wo spiegeln
Viele Leute denken, dass ftp.debian.org die kanonische
Adresse von Debian-Paketen sei und dass es für sie am besten sei, von dort zu
spiegeln. Das ist nicht wahr.
ftp.debian.org ist
lediglich einer von mehreren Servern, die von einem internen Debian-Server
aktualisiert werden. Diese Adresse befindet sich derzeit lediglich
auf einem einzelnen Server und existiert hauptsächlich nur noch für die
Abwärtskompatibilität.
Die offiziellen Spiegel sind als guter Ort gedacht,
um davon zu spiegeln.
Jeder der Server in der vollständigen Liste aller
Spiegel, der das Type: Push-Primary
- oder Type:
Push-Secondary
-Tag besitzt, sollte fürs
Spiegeln gut geeignet sein. Bitte verwenden Sie einen, der netztopologisch
und geographisch nahe bei Ihnen liegt.
Es gibt keinen wirklichen Unterschied zwischen den verschiedenen Push-Primary-Spiegeln, soweit es das Spiegeln betrifft. Auf der anderen Seite, wenn viele Leute ftp.debian.org verwenden (und unglücklicherweise tun sie das), verschwendet das unnötigerweise die gespendete Bandbreite.
Spiegel-Administratoren in den Vereinigten Staaten sollten von
ftp.us.debian.org (der offiziellen Spiegeladresse aus den USA, einem
Push-Primary-Spiegel) spiegeln. Da diese Adresse aber auch ein Verteilalias
(round robin alias
) ist, ist es für gewöhnlich am
sinnvollsten herauszufinden, welche der Komponenten am besten ist und direkt
von dieser zu spiegeln.
Das Positive daran ist, dass das Risiko von Fehlschlägen beim
zweistufigen Rsync vermieden wird (verschiedene Stufen könnten auf
verschiedenen Maschinen ablaufen – dies kann bei bestimmten
Zeitfenstern zu unterschiedlichen Daten führen und eine sog. Race
Condition
verursachen). Das Negative daran ist, dass sich dies auf eine einzige
Maschine konzentriert, deren Leistungsfähigkeit variiert,
aber dies ist momentan unserem Spiegelnetz im Allgemeinen anhaftend.
Wie man spiegelt
Die bevorzugte Methode zum Spiegeln erfolgt mit dem sogenannten
ftpsync
-Skript-Satz, der in zwei Formen erhältlich ist:
- als Tarball von http://ftp-master.debian.org/ftpsync.tar.gz
- als ein Git-Depot: git clone https://ftp-master.debian.org/git/archvsync.git
Das von uns dringend empfohlene Spiegelprotokoll ist rsync.
Bitte spiegeln Sie Debian nicht mittels wget oder anderen FTP-basierten Werkzeugen. Sie scheinen gut zu funktionieren, aber sie haben eine Reihe von Problemen (sie können keine harten Links erkennen, das Erstellen von Teilspiegeln ist schwieriger usw.).
Rsync-Einrichtung
Wir empfehlen die Verwendung des ftpsync-Skript-Satzes, um das Archiv zu spiegeln. Folgen Sie der beigefügten README-Datei, um das Spiegeln einzurichten.
Falls Sie Ihre eigenen Skripte verwenden, müssen diese mindestens die folgenden Funktionalitäten aufweisen:
Sie MÜSSEN einen zweistufigen Sync durchführen
Das Spiegeln des Archivs muss in zwei Stufen erfolgen. Der erste Rsync-Lauf muss die Index-Dateien ignorieren. Die korrekten Exclude-Optionen für den ersten Rsync-Lauf lauten:
--exclude Packages* --exclude Sources* --exclude Release* --exclude InRelease --exclude i18n/* --exclude ls-lR*In der ersten Stufe dürfen keine Dateien gelöscht werden.
Die zweite Stufe sollte die oben ausgeschlossenen Dateien übertragen und Dateien löschen, die nicht mehr zum Spiegel gehören.
Begründung: Falls das Spiegeln in einer Stufe erfolgt, wird es Zeiträume geben, während der die Indexdatei Dateien referenziert, die noch nicht gespiegelt wurden.
Sie dürfen
pushes
NICHT während des Laufs ignorieren (beim Push-Spiegeln).Falls während des Spiegelsynchronisierens ein Push erhalten wird, darf dieser NICHT ignoriert werden. Der gesamte Synchronisationsprozess muss erneut durchlaufen werden.
Begründung: die meisten Implementierungen der Debian-Spiegelskripte lassen den Spiegel in einem inkonsistenten Zustand, falls während des ersten Synchronisationslaufs ein zweiter Push erhalten wird. Es ist davon auszugehen, dass sich in naher Zukunft die Push-Frequenz erhöhen wird.
- Führen Sie rsync mit zumindest diesen Optionen aus: --recursive --times --links --hard-links --delete.
- Falls Sie zusätzlichen Plattenplatz haben, verwenden Sie auch die --delete-after Option, um einige der temporären Aktualisierungsprobleme zu vermeiden.
- Nachdem rsync mit dem Spiegeln fertig ist, fügen Sie einen Zeitstempel
im
project/trace/-Verzeichnis des Debian-Spiegels hinzu, der nach ihrem Server benannt ist. Das heißt, dass Sie date -u > .../debian/project/trace/ihr.server aufrufen sollen, nachdem Ihr tägliches rsync beendet ist. - Wir raten nachdrücklich vom Ausschluss der project/-, doc/- und anderer Unterverzeichnisse ab. Normalerweise sind sie von geringfügiger Größe und dennoch nützlich für die Benutzer. Insbesondere project/trace hilft sehr viel, falls es Spiegel-Probleme gibt.
Teilweises Spiegeln
Aufgrund des bereits großen Umfangs des Debian-Archivs bevorzugen es einige Leute, nur die Teile zu spiegeln, die sie auch benötigen. Wenn Sie etwas ausschließen wollen, sollten Sie Architekturen ausschließen.
Mit dem empfohlenen ftpsync kann dies durch das Editieren der ARCH_EXCLUDE-Variable geschehen.
Wir empfehlen Ihnen dringend, die project/-, doc/- und weitere Unterverzeichnisse nicht auszuschließen. Üblicherweise sind diese nicht sehr groß und trotzdem für die Benutzer nützlich. Insbesondere project/trace hilft sehr, falls es Spiegel-Probleme gibt.
Es können auch andere speziell geschriebene Skripte verwandt werden, aber normalerweise sind diese nicht notwendig und werden auch für offizielle Spiegel nicht empfohlen.
Wann Spiegeln
Das Hauptarchiv wird viermal täglich aktualisiert. Die Spiegel starten typischerweise um 3:00, 9:00, 15:00 and 21:00 Uhr (alles UTC) mit der Aktualisierung, aber das sind keine festen Zeiten und Sie sollten Ihren Spiegel nicht fest darauf einstellen.
Ihr Spiegel sollte sein Update einige Stunden nach dem Hauptarchiv-Spiegelpuls durchführen. Sie sollten prüfen, ob die Site, von der Sie spiegeln, eine Zeitstempel-Datei in ihrem project/trace/ Unterverzeichnis hinterlässt. Die Zeitstempel-Datei wird genauso wie die Site benannt, und sie wird die Zeit der Beendigung der letzten Spiegel-Aktualisierung enthalten. Fügen Sie ein paar Stunden zu dieser Zeit hinzu (um sicher zu sein) und spiegeln Sie dann.
Die einfachste Art, um automatisch zu spiegeln, ist, den Prozess täglich von cron aufrufen zu lassen. Weitere Informationen mit man crontab.
Beachten Sie, falls ihre Site mit einem Push-Mechanismus angestoßen wird, müssen Sie sich um all dies nicht kümmern.
Push-gesteuertes Spiegeln
Push
-Spiegeln ist eine Art des Spiegelns, die wir entwickelt haben,
um die Zeit zu minimieren, die es benötigt, bis Änderungen im Archiv die
Spiegel erreichen. Der Server-Spiegel benutzt einen SSH-Auslöser, um dem
nachgeschalteten Spiegel mitzuteilen, dass er sein Archiv aktualisieren soll.
Das Pushing
(dt. Schieben
) ist normalerweise auf einen
sicheren Auslöser begrenzt, der keine variablen Daten akzeptiert und der
Rest des Spiegelprozesses ist ein einfaches Pull
(dt. Ziehen
),
wie dies auch mit einem Cron-Auftrag geschieht.
Push-Spiegeln wird benötigt, um mehrere Server synchron zu halten (wie die
Server in DNS round-robin-Aliasen wie ftp.us.debian.org), und wir
verwenden es für unsere erst- und zweitrangigen Spiegel. Da diese Methode
aber ein bisschen mehr Aufwand beim Aufsetzen erfordert, wird sie gewöhnlich
für private
Spiegel nicht verwendet.
Für eine detaillierte Beschreibung, wie dieses funktioniert, warum es sicher ist und wie ein Push-Spiegel aufgesetzt wird, finden Sie in der kompletten Beschreibung.
Empfohlene zusätzliche Einstellungen
Wenn Sie planen, den Debian-Spiegel durch HTTP zur Verfügung zu
stellen, fügen Sie bitte die folgenden Einstellungen zur
Apache-Konfiguration (natürlich unter der Annahme, dass Sie Apache benutzen)
im <Directory /pfad/zu/ihrem/debian/spiegel>-Block
hinzu, wobei /pfad/zu/ihrem/debian/spiegel der tatsächliche
Namen des Verzeichnisses sein sollte, indem sich ihr Spiegel befindet:
Options +Indexes +SymlinksIfOwnerMatch IndexOptions NameWidth=* +SuppressDescription
Dies erlaubt Verzeichnis-Indizes und stellt sicher, dass Symlink-Verfolgung funktioniert. Die Dateinamen in den Verzeichnis-Indizes werden nicht abgeschnitten, und die (größtenteils nicht vorhandenen) Beschreibungen werden nicht angezeigt.
In Apache 1.3.x kann die folgende Option hinzugefügt werden:
DirectoryIndex .
Fügen Sie diese Option nicht bei Verwendung von Apache 2.x hinzu.
Wie ein Spiegel zu der Spiegelliste hinzugefügt wird
Sobald ein Spiegelserver installiert ist, sollte er bei Debian registriert werden, damit er in die Liste der Spiegel aufgenommen werden kann. Anmeldungen können über unser einfaches Web-Formular erfolgen.
Probleme und Anfragen können Sie an mirrors@debian.org schicken.
