Disclaimer :
Dit document is niet juist en is niet meer onderhouden.
|
Gentoo Linux rsync Mirrors Beleid
1.
Vereisten
Minimale Bandbreedte
Om op voldoende wijze mirror te hosten moet je minstens een 5 Mbps full
duplex kanaal ter beschikking hebben.
Minimum Aantal Simulate Gebruikers
We vragen dat je minimum 15 simultane connecties toelaat.
Minimum Hardware Vereisten
Opdat je op een deftige manier minimum 15 simultane gebruikerconnecties
kan afhandelen vragen we dat je op zijn minst de volgende minimale
hardware vereisten hebt:
- PIII 500 Processor
- 256 Mb RAM
Update Frequentie
Updates moeten om elk half uur gebeuren, telkens op het uur en half uur. Het is
zeer belangrijk dat dit schema precies opgevolgd wordt, aangezien we een
round-robin-style gebruiken voor de gebruikers hun rsync-server.
Belangrijk:
Dit moet strikt gehandhaafd worden, aangezien een niet-geupdate sync server
heel wat meer traffic genereert voor alle servers die betrokken zijn in het
proces (zie de FAQ onderaan voor meer details).
|
MOTD (/etc/rsync/rsyncd.motd)
Gelieve de volgende informatie in je rsync MOTD bestand te plaatsen:
- server naam
- server IP adres
- server specificaties (CPU en RAM)
- bandbreedte beschikbaar naar de server
- gebruikersconnectielimiet, indien toepasbaar
- server locatie (stad en land)
- contacteernaam en e-mail
Het toevoegen van bovenstaande informatie in je MOTD bestand maakt het mogelijk
om je mirror gemakkelijk te identificeren in geval van problemen.
2.
Implementatie details
Om een nieuwe mirror op te stellen, gelieve de volgende stappen uit te voeren:
-
Stel je mirror in om te synchroniseren tegen een bestaande, publieke Gentoo
Linux rsync mirror. Het doet er niet toe welkeen. Gelieve wel te
synchroniseren zoals hierboven uitgelegd.
-
Vul een bugreport in op http://bugs.gentoo.org en geef je
servernaam, ip-adres, contactinformatie en het feit dat je een rsync mirror
wil zijn in. We zullen je server gebruiken om te zien of die correct
gesynchroniseerd wordt. Indien ze niet exact om :00 en :30 synchroniseert
zullen we je vragen om je cronjob (of hoe je het ook implementeert) correct
in te stellen.
-
Eenmaal we zien dat de mirror correct gesynchroniseert wordt zullen we je
server's IP-adres toevoegen aan de rsync1.us.gentoo.org toegangslijst.
-
Update dan je rsync cronjob zodat deze naar
rsync1.us.gentoo.org wijst. We zullen je server gedurende 48
tot 72 uur monitoren om te zien of deze correct synchroniseert.
Indien alle stappen vlotjes doorlopen werden zullen we een officieel
rsync[num].[landcode].gentoo.org DNS-adres aanmaken en je mirror toevoegen aan
onze rsync.gentoo.org en rsync.[landcode].gentoo.org round-robin-DNS. Kort
hierna zal je merken dat er traffiek gegenereerd wordt.
Verder zal jij, als mirror admin, toegevoegd worden aan de gentoo-mirrors
mailinglist (lage traffiek) zodat je op de hoogte gehouden wordt over alle
zaken aangaande rsync-mirrors.
Nota:
Bedankt voor het helpen van de Gentoo Linux gebruikers en ontwikkelaars! Voor
rsync beheerzaken of -problemen, gelieve http://bugs.gentoo.org te
bezoeken en een bug in te vullen onder "rsync".
|
3.
Parallelle Taken
We zullen binnenkort een rrdtool gegenereerde pagina hebben die niet meer dan
links zal bevatten naar grafieken (gesorteerd op continent, land, server) van
de officiele rsync mirrors die beschikbaar zijn (deze zullen gemaakt worden met
de sping uitvoer). We zullen deze grafieken dagelijks bekijken, en onbereikbare
servers zullen verwijderd worden van de RR DNS totdat de problemen opgelost
zijn.
We zullen scripts hebben die controleren of alle mirrors om de 30 minuten
synchroniseren.
Waarschuwing:
Indien een mirror periodisch problemen heeft of veroorzaakt, zelfs nadat de
admin gecontacteerd werd, dan zal deze mirror permanent van de RR DNS
verwijderd worden.
|
4.
Kleine FAQ
Q: Wie moet ik contacteren in geval van rsync mirror zaken?
A: Bezoek http://bugs.gentoo.org en vul een bugreport in onder "rsync".
Q: Ik draai een private rsync mirror voor mijn bedrijf. Kan ik
rsync1.us.gentoo.org gebruiken?
A: Aangezien onze resources gelimiteerd zijn moeten we ervoor zorgen dat
deze zo goed mogelijk verdeeld worden zodat we een maximaal aantal
gebruikers kunnen bedienen. Hierdoor limiteren we de connecties naar
onze master rsync (en ook naar onze distfiles mirror) tot publieke
mirrors. Gebruikers zijn altijd welkom om de gewone mirrors te gebruiken
om een eigen, private rsync mirror op te stellen, alhoewel we je vragen
enkele basis rsync
etiquette guidelines te volgen.
Q: Is het belangrijk dat ik mijn mirror telkens om :00 en :30 synchroniseer?
A: Ja dit is belangrijk. Aangezien elke gebruiker rsyncs t.o.v. een mirror
sluist zij het verschil tussen zijn bestandssysteem en de mirror over het
internet. Indien je mirror verschilt van de rest en een gebruiker maakt gebruik
van een round-robin hostnaam, dan zal de hoeveelheid doorgesluisde informatie
heel wat hoger liggen dan wat eigenlijk nodig was, wat nadeling is voor jou,
voor de gebruiker, en voor de andere mirrors.
Bijvoorbeeld:
Een gebruikers is ingesteld om rsync uit te voeren tegen
rsync://rsync.gentoo.org/gentoo-portage.
Laten we veronderstellen dat rsync.gentoo.org een DNS RR schema is
voor rsync1.gentoo.org, rsync2.gentoo.org en
rsync3.gentoo.org.
Laten we dan veronderstellen dat rsync1 en rsync3 op de opgelegde tijden
synchroniseren, maar rsync2 enkel om middernacht, en laten we veronderstellen
dat het momenteel namiddag is.
-
De gebruikers synct tegen rsync1 en brengt zijn /usr/portage uptodate. Laten we
veronderstellen dat dit 5 megabyte transfer vereist.
-
De gebruikers synct opnieuw, ditmaal tegen rsync2. Alle aanpassingen die net
gebeurd waren worden ineens weer ongedaan gemaakt, misschien zelfs meer. Laten
we zeggen dat er weer 5 megabyte getransfereerd werd.
-
De gebruiker synct opnieuw, nu tegen rsync3, waarop de portage structuur weer
uptodate wordt. Aangezien rsync2 oud was en rsync3 recent zal de gebruiker weer
5 megabytes transfereren.
In bovenstaand voorbeeld heeft de gebruiker 5 * 3 = 15 megabytes
getransfereerd, wat 3 maal meer is dan wat de gebruiker eigenlijk zou moeten
transfereren, waardoor zijn indruk over het Gentoo Portage systeem wat
negatiever wordt.
Tevens hebben rsync2 en rsync3 5 megabytes (per gebruiker) meer getransfereerd
dan wat nodig was indien rsync2 uptodate was.
Aangezien we zeer veel gebruikers hebben die de DNS RR gebruiken heb je dus
enorm veel bandbreedte verspilt, wat dus veel geld kost en dit niet enkel voor
jouw mirror, maar ook voor die van de andere admins.
We weten dat er altijd een beetje clockdrift zal zijn tussen elke mirror, en
dat niet elke mirror exact op hetzelfde tijdstip zal synchroniseren. Om dit
probleem zo klein mogelijk te maken raden we je aan om een NTP daemon te
draaien om deze drift te minimaliseren.
Indien dat niet genoeg reden is voor jou om ntpd te draaien, dan is het
misschien handig te weten dat je logbestanden zwaarder zullen doorwegen in
rechtszaken indien je kan aantonen dat je klok zuiver loopt met de rest van de
wereld.
Indien je ntpd niet de ganse tijd wil draaien, probeer dan op zijn minst
ntpdate minstens dagelijks uit te voeren via een cronjob.
Q: Hoe vind ik de dichtsbijzijnde mirror?
A: We hebben hiervoor netselect. Indien je nog niet emerge netselect
uitgevoerd hebt, doe dit dan. Voer daarna netselect rsync.gentoo.org
uit. Na een minuut of zo zal netselect een IP-adres geven. Gebruik dit IP-adres
dan als de enige parameter voor rsync, met daarachter 2 dubbelpunt-tekens:
rsync 1.2.3.4::. Je zou moeten te zien krijgen welke mirror het is aan
de banner-boodschap. Update je /etc/make.conf adhv deze gegevens.
Q: Kan ik compressie gebruiken wanneer ik met
rsync1.us.gentoo.org synchroniseer?
A: Neen. Compressie gebruikt teveel resources op de server, waardoor we
deze uitgeschakeld hebben. Probeer niet compressie te gebruiken
tegen deze server.
5.
Voorbeeld scripts
Op dit moment vereist het mirroren van de Portage structuur ongeveer 60 MiB,
dus echt veel ruimte neemt dit niet in. Je laat best ongeveer 200 MiB ruimte
over voor toekomstige groei. Een Portage tree mirror opstellen is eenvoudig --
allereerst moet je je ervan verzekeren dat je mirror rsync staan heeft. Stel
daarna je rsync.conf in om er ongeveer als volgt uit te zien:
Codevoorbeeld 5.1: rsyncd.conf |
#uid = nobody
#gid = nobody
use chroot = no
max connections = 20
pid file = /var/run/rsyncd.pid
motd file = /etc/rsync/rsyncd.motd
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[gentoo-x86-portage]
#this entry is for compatibility
path = /space/gentoo/rsync
comment = Gentoo Linux Portage tree
[gentoo-portage]
#modern versions of portage use this entry
path = /gentoo/rsync
comment = Gentoo Linux Portage tree mirror
exclude = distfiles
|
Hierboven wijst de gentoo-x86-portage mirror naar dezelfde data als
gentoo-portage. Alhoewel we recent de officiele naam van de mirror aangepast
hebben naar gentoo-portage is gentoo-x86-portage nog steeds nodig voor
achterwaardse compatibiliteit, dus stel beide entries in.
Nu moet je de Gentoo Linux Portage tree mirroren. Je gebruikt hiervoor best de
volgende scripts:
Codevoorbeeld 5.2: rsync-gentoo-portage.sh |
#!/bin/bash
RSYNC="/usr/bin/rsync"
OPTS="--quiet --recursive --links --perms --times --devices --delete --timeout=600"
#Uncomment the following line only if you have been granted access to rsync1.us.gentoo.org
#SRC="rsync://rsync1.us.gentoo.org/gentoo-portage"
#If you are waiting for access to our master mirror, select one of our mirrors to mirror from:
SRC="rsync://rsync2.de.gentoo.org/gentoo-portage"
DST="/space/gentoo/rsync/"
echo "Started update at" `date` >> $0.log 2>&1
logger -t rsync "re-rsyncing the gentoo-portage tree"
${RSYNC} ${OPTS} ${SRC} ${DST} >> $0.log 2>&1
echo "End: "`date` >> $0.log 2>&1
|
Codevoorbeeld 5.3: /etc/init.d/rsyncd |
#!/sbin/runscript
# Copyright 1999-2002 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License, v2
or later
# $Header: /var/cvsroot/gentoo/xml/htdocs/doc/nl/rsync.xml,v 1.12 2012/06/30 18:42:54 swift Exp $
depend() {
need net
}
# FYI: --sparce seems to cause problems.
RSYNCOPTS="--daemon --safe-links --timeout=1800"
start() {
ebegin "Starting rsync daemon"
start-stop-daemon --start --quiet --pidfile /var/run/rsyncd.pid --nicelevel 15 --exec /usr/bin/rsync -- ${RSYNCOPTS}
eend $?
}
stop() {
ebegin "Stopping rsync daemon"
start-stop-daemon --stop --quiet --pidfile /var/run/rsyncd.pid
eend $?
}
|
Je rsyncd.motd dient je IP-adres te bevatten, alsook andere relevante
informatie over je mirror, zoals informatie over de host die de Portage mirror
aanbiedt, administratieve contactgegevens, ... Nadat je goedgekeurd werd als
een officiele rsync-mirror zal je host gealiaset worden met een naam in de vorm
van rsync[nummer].[landcode].gentoo.org.
The contents of this document are licensed under the Creative Commons -
Attribution / Share Alike license.
|