Creare un mirror dell'archivio Debian

Se creare un mirror

I nuovi mirror sono sempre ben accetti ma ogni potenziale gestore di un nuovo mirror dovrebbe rispondere alle seguenti domande prima di avviare un proprio mirror:

Cosa mettere nel mirror

La pagina principale dei mirror elenca gli archivi disponibili.

Visitare la pagina delle dimensioni dei mirror per informazioni più precise riguardo la grandezza dei mirror.

La directory debian-security/ contiene solamente gli aggiornamenti di sicurezza rilasciati dal Debian Security Team. Sembra interessante per tutti, ma siccome gli aggiornamenti sono sporadici, bisognerebbe sincronizzare il mirror molto spesso per essere aggiornati (oppure usare il push mirroring) ed è per questo che non è raccomandato. Debian si sforza al massimo per mantenere disponibile security.debian.org.

NB: l'archivio debian-non-US/ è deprecato a partire da Debian 3.1 (sarge) rilasciato nel giugno 2005.

Da dove sincronizzarsi

Molte persone pensano che ftp.debian.org sia la locazione canonica dei pacchetti Debian e che sincronizzarsi da quel sito sia la scelta migliore. Questo non è vero.

ftp.debian.org è solamente uno dei tanti server che sono aggiornati da un server interno di Debian. Attualmente è geograficamente posizionato su un singolo server ed esiste ancora principalmente per compatibilità con il passato.

I mirror ufficiali sono degli ottimi punti da cui fare un mirror. Uno qualsiasi dei server nella lista completa dei mirror etichettato Type: Push-Primary oppure Type: Push-Secondary è una buona fonte per sincronizzarsi. Si raccomanda di utilizzarne uno rete-geograficamente vicino.

Non c'è nessuna differenza tra i vari mirror Push-Primary fintanto che il mirroring viene effettuato. D'altra parte, se molte persone usassero ftp.debian.org (e purtroppo lo fanno), questo necessariamente comporta uno spreco della banda che ci viene donata.

Chi gestisce un mirror negli Stati Uniti d'America dovrebbe fare il mirror da ftp.us.debian.org (l'indirizzo del mirror ufficiale negli Stati Uniti, che è un mirror di push primario). Ma, poiché quell'indirizzo è anche un alias DNS in round-robin tra parecchie macchine, è solitamente raccomandabile determinare quale delle macchine è la migliore e poi fare il mirror da quella.
Il vantaggio di questa operazione è che previene il rischio di errori durante la sincronizzazione a due fasi con rsync (a causa della finestra temporale le due diverse fasi potrebbero svolgersi su due macchine diverse con dati diversi, causando una race condition). Lo svantaggio è che si concentra tutto su un solo sito le cui prestazioni potrebbero variare, ma questo è comune all'intera rete dei mirror.

Come sincronizzarsi

Il metodo raccomandato per sincronizzarsi è l'insieme di script chiamato ftpsync, disponibile in due formati:

Il protocollo caldamente raccomandato per la sincronizzazione è rsync.

Si raccomanda di non usare wget o oltri strumenti basati su FTP. Sembrano funzionare bene, ma hanno parecchi problemi (non riconoscono i collegamenti fisici, complicano la realizzazione di mirror parziali, ecc.).

Impostazione di rsync

Si raccomanda l'utilizzo dell'insieme di script ftpsync per sincronizzarsi con l'archivio. Seguire le indicazioni nel file README per impostare il mirroring.

Se invece si vogliono usare dei propri script, queste sono le funzionalità minimali che devono essere supportate:

Mirroring parziale

Considerando le già grandi dimensioni dell'archivio Debian, alcune persone preferisono fare il mirroring solo delle parti di cui hanno bisogno. Se si vuole escludere qualcosa si dovrebbero escludere le architetture.

Con ftpsync, questo si può fare modificando la variabile ARCH_EXCLUDE.

Si scoraggia fortemente l'esclusione delle directory project/, doc/ e delle altre sottodirectory. Di solito hanno una dimensione minore e sono comunque utili agli utenti. Specialmente project/trace aiuta molto in caso di problemi con il mirror.

È possibile usare altri script ma di solito non è necessario e inoltre non è raccomandato sui mirror ufficiali.

Quando sincronizzarsi

L'archivio principale viene aggiornato quattro volte al giorno. I mirror solitamente iniziano la sincronizzazione intorno alle 03:00, 09:00, 15:00 e 21:00 (tutti orari UTC) ma questi non sono mai orari definitivi e ogni mirror non si dovrebbe fissare su quelli.

Il mirror andrebbe aggiornato dopo qualche ora rispetto agli aggiornamenti dell'archivio principale. È opportuno controllare se il mirror utilizzato per la sincronizzazione crea un file timestamp nella sua directory project/trace/. Il file di timestamp sarà chiamato come il sito, e conterrà l'orario di completamento dell'ultimo aggiornamento. Aggiungere un paio di ore da quell'orario (per essere sicuri) e avviare la sincronizzazione a quell'ora.

La maniera più semplice per sincronizzarsi ogni giorno è usare cron. Consultare man crontab per dettagli.

Notare che se l'aggiornamento del proprio mirror viene attivato tramite il meccanismo di push, allora questa operazione non è necessaria.

Avvio del mirroring con push

Il push mirroring è una forma di mirroring basata su rsync che è stata sviluppata per minimizzare i tempi che impiegano i cambiamenti dell'archivio a raggiungere i vari mirror. Il server di origine usa un trigger SSH per avvisare i mirror destinatari di aggiornarsi. L'attività di pushing è solitamente limitata a un trigger sicuro che non contiene dati variabili, quindi il resto del processo di mirroring è la semplice pull come un job di cron.

Il push mirroring è necessario per mantenere sincronizzati molti server (come i server con DNS in round-robin ftp.us.debian.org) ed è utilizzato per i nostri mirror di primo e secondo livello. Questo metodo richiede uno sforzo maggiore di impostazione e non è comunemente usato per i mirror privati.

Per una descrizione più dettagliata del funzionamento, perché è più sicuro e come creare un push mirror, consultare la spiegazione completa.

Ulteriori impostazioni raccomandate

Se si crea un mirror Debian disponibile via HTTP per favore aggiungete le seguenti impostazioni alla vostra configurazione di Apache (supponendo naturalmente che stiate usando Apache) nel blocco <Directory /percorso/al/vostro/mirror/debian> dove /percorso/al/vostro/mirror/debian dovrebbe essere il percorso alla directory che contiene la copia dell'archivio Debian:

   Options +Indexes +SymlinksIfOwnerMatch
   IndexOptions NameWidth=* +SuppressDescription

Questo abilita l'indice delle directory e assicura che funzionino i link simbolici. I nomi dei file nell'indice delle directory non saranno troncati e le descrizioni (pressoché inesistenti) non saranno mostrate.

Con Apache 1.3.x, è necessario aggiungere la seguente opzione:

   DirectoryIndex .

Non aggiungerla con Apache 2.x.

Come aggiungere un mirror alla lista dei mirror

Una volta che il mirror è impostato dovrebbe essere registrato in Debian così da essere incluso nella lista dei mirror. Gli invii delle registrazioni possono essere effettuati utilizzando il nostro semplice form web.

Problemi o domande possono essere inoltrati a mirrors@debian.org.