openSUSE:Infrastruttura di siti mirror

Questo documento descrive i vari modi per fare una copia mirror del contenuto di download.opensuse.org e come poter realizzare un sito mirror ufficiale.

Cosa serve per offrire un mirror pubblico?

  • È necessario spazio su disco, di almeno 40-60 GB, a seconda di ciò di cui si fa la copia mirror.
  • È necessaria una banda di dati (trasferibili e passanti) di un'ampiezza abbastanza considerevole. È difficile stimare la quantità reale di dati trasferiti ma, per fare un esempio, in Germania 1 TB di dati al mese dovrebbe essere considerato il valor minimo raggiungibile, anche piuttosto facilmente. Si otterrà un certo margine di sicurezza se il mirror avrà a disposizione 2 TB al mese. Una connessione da 10mbit è il minimo, in termini di banda passante, meglio sarebbero 100mbit (al secondo). In alcune località la situazione può essere diversa e i requisiti possono variare localmente. In generale, maggiore è il contenuto di cui si fa il mirror, maggiore è il traffico attirato, d'altro canto siamo in grado di controllare il numero delle ridirezioni in modo efficace. Relativamente al traffico generato, la presenza dei file delle immagini ISO è in larga parte il fattore determinante.
  • Hardware o OS non hanno alcuna importanza.

Le dimensioni attuali dei moduli per rsync sono elencate in questa pagina ma si noti che è perfettamente possibile fare il mirror solo di alcune parti di un modulo.

I server rsync

Accessibile al pubblico: rsync.opensuse.org

Questo server rsync è aperto a tutti. Offre pubblico accesso attraverso il protocollo rsync al contenuto di download.opensuse.org. Solitamente l'accesso è limitato a 50 connessioni simultanee, quindi può a volte capitare di non riuscire ad accedervi. Anche alcuni dei siti mirror elencati qui potrebbero offrire le funzionalità di rsync.

Accessibile ai siti mirror registrati: stage.opensuse.org

I siti mirror registrati possono connettersi a stage.opensuse.org. Questo server fornisce il contenuto aggiornato di download.opensuse.org prima del rilascio ufficiale ed ha una velocità di trasferimento più elevata dei server pubblici. Per avere accesso al server dovrai registrarti all'indirizzo mailto:ftpadmin@suse.de, sempre che il tuo sito mirror disponga almeno di una connessione da 100 MBit e siano soddisfatte le condizioni delineate nel paragrafo seguente.

Condizioni per accedere a stage.opensuse.org

Occorre innanzitutto chiarire cosa si intende per "contenuti in staging" ("staged content" in inglese), nell'ambito di questo articolo. Staged content è il materiale che non abbiamo ancora intenzione di rendere pubblico -- ma che, ciò nonostante, vorremmo già distribuire ai siti mirror, così che, al momento del rilascio al pubblico, sia già disponibile nella copia del mirror, e quindi accessibile a molti. Per fare ciò procediamo nel modo seguente. Proteggiamo la directory impostandone i permessi a 'rwxr-x---' (0750). La directory viene poi resa disponibile come parte dell'albero di directory che è mantenuto sul server rsync dello staged content. Quando i siti mirror si sincronizzeranno con quel contenuto, replicheranno anche quei permessi. E quando arriva il momento del rilascio i permessi della directory vengono cambiati a rwxr-xr-x (0755), e la prima volta in cui i mirror si sincronizzano nuovamente, si allineano con l'avvenuto cambiamento e anche la directory di prima diventa accessibile sui loro server HTTP e, o anche, FTP. Questo metodo di rilascio tramite cambiamento dei permessi è a volte chiamato "bit flip release" (rilascio a scambio di bit).

Ci sono alcuni suggerimenti al riguardo che l'amministratore del sito mirror dovrebbe seguire con attenzione:

  • eseguire rsync col parametro -p (--perms), in modo tale che i permessi vengano replicati sulla macchina d'arrivo.
  • se mantieni un server rsync pubblico assicurati che il demone rsync venga eseguito con uno user id diverso da quello dello script che preleva il contenuto (agendo in modalità "pull"). Altrimenti potresti stare distribuendo pubblicamente il contenuto staged. Puoi ottenere questo, per esempio, impostando uid = nobody e gid = nogroup nei rispettivi moduli per rsync.
  • esegui gli script del tuo sito mirror con uno user id diverso da quello con cui il tuo server HTTP/FTP viene lanciato. Usare lo stesso user id renderebbe tutti i file leggibili per il server HTTP/FTP. Lo stesso effetto si presenta se esegui il server come root.
  • non lanciare mai il tuo server web (server FTP e, o in alternativa, server rsync) come root. Un errore di configurazione in qualche modo ricorrente è, se si usa lighttpd, che quest'ultimo venga eseguito come root, poiché ci si è scordati della configurazione che lo fa partire con un utente e, o in alternativa, con un gruppo diversi.

Dovresti essere iscritto alla mailing list dedicata ai siti mirror (vedi in fondo alla pagina), così che possiamo tenerti informato riguardo le attività di rilascio in corso. Ti terremo aggiornato sul calendario dei rilasci e sull'esatta collocazione temporale del rilascio pubblico -- e potrai davvero supportarci in modo attivo.

Registrare il proprio sito mirror

Al fine di reindirizzare i client verso il tuo mirror, sono necessari i seguenti elementi:

  • indirizzo email assieme al nome dell'amministratore, per un riferimento da ricontattare
  • URL HTTP sul tuo mirror (p. es. http://yourmirror.example.com/pub/opensuse/)
  • il tuo server web supporta i file di grandi dimensioni? (per ospitare immagini di dimensione maggiore di 2 GB)
  • accesso in sola lettura per il nostro scanner -- per la scansione del sito che effettuiamo per mantenere aggiornato il nostro database delle ridirezioni dei download. La scansione ha origine da 195.135.220.0/22. (Verificalo con rsync -v yourmirror.example.com::)
  • URL FTP, se mantieni un server FTP. Può servire come protocollo di emergenza per la scansione, qualora rsync non sia disponibile. Negli altri casi FTP non è usato da openSUSE.
  • Un nome ed un URL dell'operatore o sponsor del mirror, da mostrare nell'elenco dei mirror.
  • Che qualcuno del tuo gruppo di lavoro sia iscritto a mirror@opensuse.org - vedi il paragrafo su come tenersi informati più sotto.
  • Gli IP e DNS del tuo sito mirror, per essere aggiunti al nostro server staging. Infatti, il nostro server staging limita l'accesso ai moduli attuali soltanto a un ridotto elenco di host ammessi, per cui, dopo l'aggiunta, al tuo server non verranno più inflitte le restrizioni che sono normalmente applicate per il server rsync.opensuse.org pubblico.

Se fornirai questi dati scrivendo a ftpadmin@suse.de, aggiungeremo il tuo sito mirror al nostro database di mirror. Il database dei mirror è usato dal nostro server di download per ridirigere attivamente i client al tuo sever. Cerchiamo di distribuire le richieste su base geografica in base all'indirizzo IP del client. La quantità di ridirezioni distribuite dipende anche da un punteggio che stabiliremo assieme a te, al fine di adattare le ridirezioni alle capacità del tuo mirror.

Inoltre teniamo attivamente sotto controllo il contenuto dei siti mirror, così da ridirigere soltanto i file che effettivamente esistono su quei server, ed rsync è il modo più efficiente di farlo: passare in rassegna 300.000 file può richiedere soltanto alcuni minuti con quello strumento. Il secondo miglior metodo, se rsync non sia disponibile, è farlo attraverso FTP, ma è molto meno efficiente (richiede un tempo considerevolmente maggiore e comporta un maggior carico al tuo server). Come ultima risorsa, possiamo ripiegare su HTTP, se né rsync né FTP siano disponibili. Ma è molto lento. Così, dovresti considerare la possibilità di aggiungere un modulo rsync per il contenuto di opensuse, il quale consente una scansione ben più rapida del tuo server.

Tenersi informati

La mailing list mirror@opensuse.org (precedentemente chiamata suse-mirror@suse.de) è poco trafficata ed è usata principalmente per gli annunci agli iscritti. Se fosse necessario è anche il posto appropriato per le discussioni riguardo la copia mirror dei contenuti di openSUSE. Per iscriversi si prega di inviare un messaggio a mailto:mirror+subscribe@opensuse.org e, dato che è una mailing list bloccata, inviare anche un breve messaggio a mailto:ftpadmin@suse.de e chiedere di essere aggiunti.

L'indirizzo generale da contattare è: mailto:ftpadmin@suse.de

C'è anche un canale IRC su freenode.net, il suo nome è #opensuse-mirrors.

Come realizzare un sito mirror

Per un howto vedere qui: en:openSUSE:Mirror_howto

Moduli per rsync

I moduli per rsync su stage.opensuse.org e rsync.opensuse.org sono perlopiù identici. Il primo ha contenuti aggiuntivi che devono ancora essere rilasciati, e dato che il secondo viene sincronizzato sul primo, tra di loro c'è un breve scarto di tempo per via della sincronizzazione.

Le dimensioni dei moduli per rsync sono rilevate ogni notte:

Un esempio di una riga di comando di sincronizzazione, per un modulo, potrebbe assomigliare a questa:

rsync -rlpt rsync.opensuse.org::opensuse-hotstuff-160gb /srv/pub/opensuse/ --delete-after -hi --stats


moduli di particolare importanza:

opensuse-hotstuff-160gb: I file più richiesti, che stanno entro i 160 GB di spazio. Questo modulo include attualmente il repo install e i supporti per CD/DVD del prodotto più recente, i suoi aggiornamenti e gli altri repository più popolari. E' il modulo più indicato per siti mirror con spazio su disco limitato. La maggioranza delle richieste riguarda esattamente questi file.
opensuse-hotstuff-80gb: Una selezione ancora più ridotta dei file più popolari, ristretta a 80 GB di spazio. Usa questo modulo se il tuo sito mirror ha uno spazio su disco estremamente limitato. Ma ancora, la maggioranza delle richieste riguarda i file compresi in questo modulo, per cui fare una copia mirror di "solo" questi file è massimamente utile.
opensuse-updates: Questo modulo per fornisce l'albero della directory /update, con gli aggiornamenti ufficiali per le distribuzioni di openSUSE rilasciate,a partire da openSUSE 10.3. (Per creare una copia mirror degli aggiornamenti dei rilasci più vecchi, controlla rsync://ftp.suse.com/suse/update/.)
opensuse-full: Questo modulo per rsync fornisce il contenuto completo di download.opensuse.org, ad eccezione della directory SL-OSS-factory. La ragione per cui questa directory viene esclusa è l'elevata frequenza con cui avvengono aggiornamenti all'interno di essa. Per fare il mirror della directory SL-OSS-factory, raccomandiamo invece l'uso di drpmsync per prelevare questa directory, che diminuisce il traffico a meno del 10% rispetto a quello di rsync.
opensuse-full-with-factory: Lo stesso del modulo precedente con in più la directory SL-OSS-factory che contiene la distribuzione Factory. Di nuovo, si sconsiglia l'uso di questo modulo.
opensuse-source: Questo modulo per rsync fornisce l'albero della directory /source, che contiene i pacchetti sorgente per openSUSE 11.1 in avanti. Disponibile solo su stage.opensuse.org, ma senza restrizioni d'accesso.
opensuse-debug: Questo modulo per rsync fornisce l'albero della directory /debug, che contiene i pacchetti sorgente per openSUSE 11.1 in avanti, e include gli aggiornamenti rilasciati. Disponibile solo su stage.opensuse.org, ma senza restrizioni d'accesso.

moduli per fare la copia mirror dei repository di Build Service:

buildservice-repos: L'intero contenuto
buildservice-repos-main: Tutto ad eccezione del ramo home: dei progetti mantenuti dagli utenti

Qui gli aggiornamenti avvengono ininterrottamente, cioè ogni volta che un repository fornito dal Build Service viene ricreato ed aggiornato. Inoltre è possibile ricevere gli aggiornamenti dal server push.


moduli per fare la copia mirror dell'albero della directory drpmsync:

opensuse-drpmsync: solo albero delle directory distribution/SL-OSS-factory/drpmsync (sezione OSS)
opensuse-drpmsync-nonoss: solo albero delle directory distribution/SL-Factory-non-oss/drpmsync tree only (sezione non-OSS)
opensuse-full-with-factory-drpmsync: Lo stesso contenuto di opensuse-full-with-factory, incluso anche l'albero della directory drpmsync.

Da usare solo se hai intenzione di realizzare il tuo server drpmsync.

Se vuoi creare una copia mirror di questi alberi di directory, è necessario tenere conto che il numero enorme di file coinvolti (~200000) causerà un carico considerevole sul tuo server rsync. Faresti meglio ad evitare tale copia mirror, se possibile.

drpmsync.opensuse.org

drpmsync è un servizio di sincronizzazione (sync) per la distribuzione Factory. Il servizio riduce drasticamente i dati da trasferire trasmettendo soltanto le modifiche xdelta dei dati, se il file rpm locale non è più vecchio di un mese.

drpmsync permette di accedere soltanto alla directory SL-OSS-factory. Questa directory contiene sempre la compilazione più recente della distribuzione. Questo vuol dire che potrebbe anche contenere un sistema in uno stato inconsistente o del tutto non funzionante. La directory risulta utile agli sviluppatori, che possono prelevare il codice sorgente più recente, e ai tester, per verificare la bontà dell'ultima versione.

È possibile trovare un client per drpmsync all'interno del pacchetto make deltarpm, dal sito http://download.opensuse.org/tools/drpmsync/, e può essere richiamato con questa linea di comando, per esempio:

drpmsync drpmsync.opensuse.org:8888/Factory /my/directory

Si prega di notare che drpmsync.opensuse.org potrebbe stare servendo un traffico dati molto intenso, siamo perciò alla ricerca di gestori di mirror pubblici disposti anche a mantenere un server drpmsync. Se anche tu vuoi offrire un server di questo tipo, per favore contattaci.

Supporto a modalità Push per gli aggiornamenti dal Build Service

stage.opensuse.org ospita inoltre tutto il contenuto dal Build Service. Dato che gli aggiornamenti avvengono senza sosta, ogni volta che è stato creato un nuovo gruppo di pacchetti è anche possibile far sì che il contenuto venga direttamente inviato al proprio server, in modalità push, invece che doverlo richiedere al server (in polling). Gli ovvi requisiti sono: accesso in scrittura per rsync da parte di stage.opensuse.org sul proprio server. I vantaggi di questo metodo sono:

  • il sito mirror è quasi sempre aggiornato,
  • non è necessario fare delle richieste di sincronizzazione con rsync a tutti i mirror. Con la modalità server push verranno aggiornati soltanto i repositori che hanno ricevuto dei cambiamenti. Questo riduce di molto il carico di IO (input-output) del sito mirror.
  • il redirector in esecuzione in http://download.opensuse.org/ è informato che i pacchetti sono stati aggiornati e può immediatamente redirigere verso il sito mirror.

Come diventare un mirror aggiornato in modalità push?

Il metodo solito (ma possiamo anche supportarne uno diverso) consiste nell'aprire un modulo rsync sul proprio server, nel quale stage.opensuse.org ottenga accesso in scrittura. Opzionalmente è possibile prevedere un login con password, ma non affatto necessario. Per favore scrivi, successivamente alla apertura, una e-mail a mailto:ftpadmin@suse.de in cui ci comunicherai:

  • il nome del server a cui servire i contenuti (in push)
  • il modulo rsync da usarsi
  • account e password (facoltativo)
  • Di cosa vuoi fare la copia mirror (tutto o solo alcuni particolari progetti)
  • Quale sarà l'url del download pubblico.
  • Ogni sorta di particolare richiesta :)

Abbiamo infine bisogno dell'accesso in lettura per rsync al fine di analizzare il tuo sito mirror per il nostro download redirector. Il database del download redirector necessita di essere aggiornato periodicamente per riflettere la situazione attuale dei file sul tuo sito mirror. La scansione ha origine dall'intervallo 195.135.220.0/22.