Sätta upp en spegel av Debianarkivet
- Om du ska spegla
- Vad som bör speglas
- Platser att spegla
- Hur man speglar
- Spegla delmängder
- När du bör spegla
- Rekommenderade ytterligare inställningar
- Lägga till en spegel i spegellistan
Om du ska spegla
Även om vi är glada för alla speglar, bör alla som vill sätta upp en spegel försäkra sig om att de kan svara på dessa frågor innan de försöker starta sin egen spegel:
- Behövs det en spegel här? Kanske finns det redan en spegel i närheten.
- Har jag de resurser som behövs för att stå värd för en spegel? Speglar tar upp betydliga mängder diskutrymme och bandbredd, en kostnad man måste vara beredd att ta.
- Är en spegel rätt val? Några har av misstag börjat sätta upp en spegel när de egentligen ville ha en cachande mellanserver som apt-proxy
Vad som bör speglas
Ingångssidan för speglar innehåller en förteckning över vilka arkiv som är tillgängliga för spegling.
- Användarna kommer att leta efter debian/-arkivet för att installera Debian över nätverket, att bygga cd:ar (med jigdo) och att uppgradera redan installerade system.
-
debian-cd/ är ett arkiv som inte är identiskt hos alla spegelservrar.
På några platser innehåller det jigdo-mallar att bygga cd-avbildningar från
(används tillsammans med filer från debian/), på några innehåller det
färdigbyggda cd-avbildningar, och på vissa bådadera.
Se sidan om att spegla cd-avbildningar för vidare information om detta. - debian-archive/ innehåller det sanna arkivet, de gamla och föråldrade versionerna av Debian. Den är vanligtvis bara intressant för en liten del av användarna.
Se vår sida om storlek på spegeln för mer detaljerad information om spegelstorlekar.
Arkiven i debian-security/ innehåller säkerhetsuppdateringar som släppts av
Debians säkerhetsgrupp.
Det låter intressant för alla, men eftersom säkerhetsuppdateringarna är
sporadiska måste man spegla den väldigt ofta för att hålla sig à jour (eller
använda push
-spegling), så vi
rekommenderar det inte.
Debian gör allt som står i vår makt för att istället vidmakthålla
tillgängligheten hos security.debian.org.
Obs! Arkivet debian-non-US/ används inte längre i och med utgivningen av Debian 3.1 (Sarge) i juni 2005.
Platser att spegla
Många tror att ftp.debian.org är rätt
plats
för Debianpaket och att det är bäst att spegla därifrån.
Detta är inte korrekt.
ftp.debian.org är bara en av många servrar som uppdateras från
en intern Debianserver.
Adressen pekar för närvarande mot en enda adress och är mest där för
bakåtkompatibilitet.
Officiella speglar är tänkta att vara bra platser att
spegla från.
Alla servrar i den kompletta spegellistan som
är märkta Type: Push-Primary
eller
Type: Push-Secondary
bör vara lämpade att spegla från.
Välj en som är nära dig både nätverksmässigt och geografiskt.
Det är i praktiken ingen skillnad mellan olika Push-Primary-speglar vad gäller själva speglingen. Å andra sidan, om många använder ftp.debian.org (vilket tyvärr sker) slösar detta i onödan med donerad bandbredd.
Spegeladministratörer i Förenta Staterna bör spegla från ftp.us.debian.org
(den officiella spegeladressen i USA, vilken är en Push-Primary-spegel).
Men eftersom den adressen även är ett cirkulerande alias för flera maskiner
är det
oftast en bra idé att bestämma vilken av komponenterna som är bäst och
därefter spegla från just den.
Fördelen med detta är att man undviker risken för misslyckanden när
man kör en tvåstegs-rsync (olika steg kan hamna hos olika maskiner under det
tidsfönster då de har olika data, vilket ger en kapplöpningseffekt).
Nackdelen är att den koncentrerar sig på en enda plats, vilket gör att
prestanda kan variera, men det är något som finns där i hela vårt
spegelnätverk för närvarande.
Hur man speglar
Den rekommenderade metoden för att spegla är med den skriptsamling som kallas ftpsync och finns tillgänglig på två sätt:
- som en tarboll från http://ftp-master.debian.org/ftpsync.tar.gz
- som ett gitarkiv: git clone https://ftp-master.debian.org/git/archvsync.git
Vi rekommenderar starkt speglingsprotokollet anonym rsync.
Vi ber dig att inte använda wget eller andra ftp-baserade verktyg. De verkar fungera bra, men har vissa problem (de kan inte detektera hårda länkar, gör det svårare att ha en delvis spegling, osv).
Ställa in rsync
Vi rekommenderar att du använder skriptsamlingen ftpsync för att spegla arkivet. Följ den medföljande README-filen för att sätta upp spegeln.
Om du använder dina egna skript, gäller att den minsta funktionaliteten som måste stödjas är som följer:
-
MÅSTE genomföra en 2-stegssynkronisering.
Arkivspeglingen måste göras i två steg. Den första rsync-körningen måste ignorera indexfilerna. Det korrekta valet av "exclude"-parametrar för den första rsync-körningen är
--exclude Packages* --exclude Sources* --exclude Release* --exclude InRelease --exclude i18n/* --exclude ls-lR*Det första steget får inte ta bort några filer.
Det andra steget måste sedan hämta de filer som exkluderades ovan och ta bort filer som inte längre hör hemma på spegeln.
Motivering: om arkivspegling görs i ett enda steg, kommer det finnas tidsperioder då indexfilerna refererar till filer som inte har speglats ännu.
-
FÅR INTE ignorera uppdateringar under körning (för ”push”-spegling).
Om en uppdatering tas emot under en körning av spegelsynkroniseringen FÅR den INTE ignoreras. Hela synkroniseringsprocessen måste köras om.
Motivering: de flesta implementationer av speglingsskript för Debian kommer lämna spegeln i ett inkonsekvent tillstånd vid hämdelse av en andra uppdatering som utförs medan den första synkroniseringen fortfarande körs. Det är troligt att uppdateringsfrekvensen kommer öka i framtiden.
- Kör rsync med åtminstone dessa flaggor: --recursive --times --links --hard-links --delete.
- Om du har tillräckligt med diskutrymme bör även flaggan --delete-after användas för att undvika vissa temporära uppdateringsproblem.
-
När rsync är färdig med sin spegling, lägg till en tidsstämpelfil i
underkatalogen
project/trace/på Debianspegeln, med din server som namn. Det betyder att du bör köra date -u > .../debian/project/trace/din.server när din dagliga rsync är färdig. - Vi avråder å det bestämdaste att exkludera project/, doc/ och andra kataloger. Dessa är normalt mycket små, men väldigt användbara för användarna. Speciellt project/trace är väldigt bra att ha om det är några problem med speglingsprocessen.
Spegla delmängder
Med tanke på hur stort Debianarkivet redan är föredrar vissa att bara spegla de delar de behöver. Om du vill undvara något bör du undvara arkitekturer.
Med det rekommenderade ftpsync kan detta göras genom att redigera ARCH_EXCLUDE-variabeln. Det finns även andra specialskrivna skript, de är dock inte lämpliga för officiella speglar.
Vi rekommenderar å det bestämdaste mot att exkludera project/, doc/ och andra underkataloger. Vanligtvis är dessa inte speciellt stora men ändå användbara för användare. Speciellt project/trace är väldigt bra att ha om det är några problem med speglingsprocessen.
Du kan välja att använda andra specialskrivna skript, men det är oftast inte nödvändigt, och rekommenderas inte för officiella speglar.
När du bör spegla
Huvudarkivet uppdateras fyra gånger om dagen. Speglarna börjar normalt uppdatera runt klockan 3:00, 9:00, 15:00 och 21:00 (alla tiderna UTC), men dessa är inga fastslagna tider och du bör inte fixera dina speglar runt dem.
Din spegel bör uppdatera ett par timmar efter en av huvudarkivets spegelpulser. Du bör se om platsen du speglar från skapar en tidsstämpelfil i sin project/trace/-katalog. Tidsstämpelfilen kommer ha samma namn som den platsen, och ange den tidpunkt när senaste speglingskörningen slutfördes. Lägg till ett par timmar på det (för att vara på den säkra sidan) och spegla då.
Det enklaste sättet att automatiskt köra spegeln varje dag är att använda cron. Se man crontab för detaljer.
Om din plats blir push
-speglad behöver du inte bry dig om något av detta.
Push
-styrd spegling
Push
-spegling är en form av spegling med rsync vi har utvecklat
som minimerar tiden det tar för ändringar i huvudarkivet att nå speglarna.
En uppströmsspegel använder en SSH-utlösare som informerar nedströmsspegeln
om att den måste uppdateras.
Pushningen
begränsas oftast till en säker utlösare som inte tar någon
variabel indata, så att resten av spegelfunktionen är en vanlig pull
,
på samma sätt som för ett cron-jobb.
Push
-spegling är nödvändig för att hålla flera servrar
synkroniserade (som servrarna för cirkulerande DNS-alias, till exempel
ftp.us.debian.org), och vi använder det vanligtvis för våra första-
och andranivåspeglar.
För vanliga
speglar kräver detta en hel del arbete att ställa
in vilket egentligen inte är värt besväret jämfört med ett finjusterat
cron-jobb.
För en mer utförlig beskrivning av hur det fungerar, varför det är
säkert, och hur man sätter upp en push
-spegel, se
den kompletta förklaringen.
Rekommenderade ytterligare inställningar
Om du planerar att göra Debianspegeln tillgänglig över HTTP ber vi dig
lägga till följande inställningar till Apaches konfiguration (förutsatt,
naturligtvis, att du använder Apache), innanför blocket
<Directory /sökväg/till/din/debianspegel>,
där /sökväg/till/din/debianspegel är namnet på den
katalog du har spegeln i:
Options +Indexes +SymlinksIfOwnerMatch IndexOptions NameWidth=* +SuppressDescription
Detta aktiverar katalogindex och försäkrar att symboliska länkar fungerar. Filnamnen i katalogindexen kommer inte trunkeras och (de huvudsakligen icke-existerande) beskrivningarna kommer inte att visas.
I Apache 1.3.x kan även följande alternativ läggas till:
DirectoryIndex .
Lägg inte till detta alternativ för Apache 2.x.
Lägga till en spegel i spegellistan
När en spegel satts upp bör den registreras hos Debian så att den kan läggas in i spegellistan. Registrering kan göras via vårt enkla webbformulär.
Problem eller frågor kan ställas till mirrors@debian.org.
