Wikipedia:Server
Da Wikipedia, l'enciclopedia libera.
La versione aggiornata di questo articolo è presente, in inglese, su meta
Wikipedia e gli altri progetti Wikimedia si avvalgono del funzionamento di diversi server. I nomi dei server sono basati su famosi enciclopedisti della storia.
Indice |
[modifica] Elenco dei server
La popolarità dei progetti Wikimedia rende necessario utilizzare più di un server, su ciascuno dei quali è installato il sistema operativo GNU/Linux. Di seguito viene elencata la configurazione, aggiornata al 12 ottobre 2004:
Nome | Data | Funzione | SO | Indirizzo IP | Hardware | Origine nome |
ariel | 05/2004 | Database master | Fedora core 2 (64-bit) custom | 207.142.131.244 | 2U, 2 x Opteron 248, 8 GB (8x1G) PC2700 registered ECC RAM, 6x73GB 15K SCA SCSI drives (4 RAID 1+0 (146 GB), 2 RAID 1 (72 GB)) | Ariel Durant |
suda | 01/2004 | Database slave and fallback | Fedora core 2 (64-bit) | 207.142.131.226 | 2U, 2 x Opteron 246, 4 GB (4x1G) PC2700 registered ECC RAM, 4x146GB SCSI RAID 1+0 (292 GB) and 2x36GB SCA SCSI RAID 1 (36 GB) | Suda |
bacon | 08/2004 | Database slave. | Fedora core 2 (64bits) | 207.142.131.200 | 2U, 2xOpteron 242 1.6 GHz, 4 GB (4x1G) PC2700 registered ECC RAM, 6x200GB SATA RAID 10 | Francis Bacon |
albert | 08/2004 | NFS storage server. Burning in by using it as a database server. | SUSE Linux 9.1 | 207.142.131.201 | 2U, 2xOpteron 242 1.6 GHz, 1 GB (2x512M) PC2700 registered ECC RAM, 6x250GB SATA (RAID 5) (details) | Albertus Magnus |
zwinger | 01/2004 | NFS, mail, Apache (download only), DNS, coda (experimental) | Redhat 9 | 207.142.131.234 | 1U, 1 x Pentium 4 2.6 GHz, 1 GB (cap?) unbuf non-ECC DDR400 RAM, 250 GB SATA (details) | Theodor Zwinger |
browne | 01/2004 | Squid | Fedora core 2 | 207.142.131.229 | 1U, 1 x Pentium 4 2.6 GHz, 4 GB (4x1G) unbuf non-ECC DDR400 RAM, 80 GB SATA | Thomas Browne |
coronelli | 01/2004 | Squid | Fedora core 2 | 207.142.131.230 | 1U, 1 x Pentium 4 2.6 GHz, 3 GB (2x1G? +?) unbuf non-ECC DDR400 RAM, 80 GB SATA | Vincenzo Coronelli |
maurus | 05/2004 | Squid | Fedora core 2 | 207.142.131.238 | 1U, 1 x Pentium 4 2.8 GHz, 4 GB (4x1G) unbuf DDR 400 ECC RAM, 80 GB SATA | Rabanus Maurus |
rabanus | 05/2004 | Squid | Fedora core 2 | 207.142.131.239 | 1U, 1 x Pentium 4 2.8 GHz, 4 GB (4x1G) unbuf DDR 400 ECC RAM, 80 GB SATA | Rabanus Maurus |
will | 05/2004 | Squid | Fedora core 2 | 207.142.131.243 | 1U, 1 x Pentium 4 2.8 GHz, 4 GB RAM, 2 x 200 GB SATA in RAID 1 (details) | Will Durant |
bart | 01/2004 | Squid, 1120 MB memcached | Fedora core 2 | 207.142.131.227 | 1U, 1 x Pentium 4 2.6 GHz, 4 GB (4x1G) unbuf non-ECC DDR400 RAM, 80 GB SATA | Bartholomeus de Glanvilla |
bayle | 01/2004 | Apache, 1120 MB memcached, switched between Squid and Apache as needed | Fedora core 2 | 207.142.131.228 | 1U, 1 x Pentium 4 2.6 GHz, 2 GB (2x1G) unbuf non-ECC DDR400 RAM, 80 GB SATA | Pierre Bayle |
diderot | 08/2004 | Apache. | Fedora core 2 | 207.142.131.250 | 1U, 1 x Pentium 4 3 GHz, 0.5 GB (2x256M) unbuf DDR400 ECC RAM, 200 GB SATA | Denis Diderot |
goeje | 08/2004 | Apache. | Fedora core 2 | 207.142.131.198 | 1U, 1 x Pentium 4 3 GHz, 0.5 GB (2x256M) unbuf DDR400 ECC RAM, 200 GB SATA | Michael Jan de Goeje |
yongle | 05/2004 | Apache, 1960 MB memcached | Fedora core 2 | 207.142.131.237 | 1U, 1 x Pentium 4 2.8 GHz, 4 GB (4x1G) unbuf DDR 400 ECC RAM, 80 GB SATA | Emperor Yongle |
isidore | 01/2004 | Apache, 1 tugelacache | Fedora core 2 | 207.142.131.231 | 1U, 1 x Pentium 4 2.6 GHz, 1 GB (cap?) unbuf non-ECC DDR400 RAM, 80 GB SATA | Isidore of Seville |
moreri | 01/2004 | Apache, 280 MB memcached | Fedora core 2 | 207.142.131.232 | 1U, 1 x Pentium 4 2.6 GHz, 1 GB (cap?) unbuf non-ECC DDR400 RAM, 80 GB SATA | Louis Moréri |
vincent | 01/2004 | Apache | Fedora core 2 | 207.142.131.233 | 1U, 1 x Pentium 4 2.6 GHz, 1 GB (cap?) unbuf non-ECC DDR400 RAM, 80 GB SATA | Vincent of Beauvais |
avicenna | 08/2004 | Apache | Fedora core 2 | 207.142.131.249 | 1U, 1 x Pentium 4 3 GHz, 0.5 GB (2x256M) unbuf DDR400 RAM, 200 GB SATA | Avicenna |
dalembert | 08/2004 | Apache | Fedora core 2 | 207.142.131.194 | 1U, 1 x Pentium 4 3 GHz, 0.5 GB (2x256M) unbuf DDR400 RAM, 200 GB SATA | Jean le Rond d'Alembert |
tingxi | 08/2004 | Apache | Fedora core 2 | 207.142.131.195 | 1U, 1 x Pentium 4 3 GHz, 0.5 GB (2x256M) unbuf DDR400 RAM, 200 GB SATA | Jiang Tingxi |
alrazi | 08/2004 | Apache | Fedora core 2 | 207.142.131.196 | 1U, 1 x Pentium 4 3 GHz, 0.5 GB (2x256M) unbuf DDR400 RAM, 200 GB SATA | Al-Razi |
friedrich | 08/2004 | Apache | Fedora core 2 | 207.142.131.197 | 1U, 1 x Pentium 4 3 GHz, 0.5 GB (2x256M) unbuf DDR400 RAM, 200 GB SATA | Friedrich Arnold Brockhaus |
harris | 08/2004 | Apache | Fedora core 2 | 207.142.131.199 | 1U, 1 x Pentium 4 3 GHz, 0.5 GB (2x256M) unbuf DDR400 RAM, 200 GB SATA | John Harris |
hypatia | 10/2004 | Apache | Fedora core 2 | 207.142.131.212 | 1U, 1x Pentium 4 3.0 GHz, 1 GB RAM, 1x 200 GB SATA | Hypatia of Alexandria |
humboldt | 10/2004 | Apache | Fedora core 2 | 207.142.131.213 | 1U, 1x Pentium 4 3.0 GHz, 1 GB RAM, 1x 200 GB SATA | Alexander von Humboldt |
kluge | 10/2004 | Apache | Fedora core 2 | 207.142.131.214 | 1U, 1x Pentium 4 3.0 GHz, 1 GB RAM, 1x 200 GB SATA | Friedrich Kluge |
avarroes | 10/2004 | Apache, DB backup slave | Fedora core 2 | 207.142.131.217 | 1U, 1x Pentium 4 3.0 GHz, 1 GB RAM, 2x 250 GB SATA RAID 0 | Averroes |
khaldun | 10/2004 | Apache | Fedora core 2 | 207.142.131.218 | 1U, 1x Pentium 4 3.0 GHz, 1 GB RAM, 2x 250 GB SATA RAID 0 | Ibn Khaldun |
chloe | Squid in France, in test. | Debian | ? | 1U, 1 x Celeron 600 MHz, 640 MB RAM, 20 GB ATA. HP Hosting Server Appliance sa1100 | richiesta donatore | |
bleuenn | Squid in France, in test. | Debian | ? | 1U, 1 x Celeron 600 MHz, 640 MB RAM, 20 GB ATA. HP Hosting Server Appliance sa1100 | richiesta donatore | |
ennael | Squid in France, in test. | Debian | ? | 1U, 1 x Celeron 600 MHz, 640 MB RAM, 20 GB ATA. HP Hosting Server Appliance sa1100 | richiesta donatore |
- Zwinger gestisce la posta e il filesystem NFS per le altre macchine.
- Ariel è il server per il database principale, su cui gira MySQL: su di esso vengono memorizzati tutti gli articoli. Ariel ha un RAID 1+0 a quattro dischi e due dischi impostato in configurazione RAID 1 con una cache alimentata a batteria e 8 GB di RAM. Suda è il database secondario, di riserva rispetto ad Ariel. Bacon è un altro slave per il database.
- alrazi, avicenna, dalembert, diderot, friedrich, goeje, harris, moreri, vincent, tingxi e yongle sono dei server web Apache, configurati tutti in maniera identica. I server Apache accolgono le richieste da parte degli utenti, prelevano i dati dal database se necessario, e restituiscono i risultati formattati all'utenza utilizzando il software MediaWiki implementato in PHP con la cache PHP (our experience) Turck MMCache. Questi server condividono le directory di lavoro attraverso NFS, dunque gli upload ecc. dovrebbero essere abbastanza sincronizzati.
- I sistemi Squid Browne, coronelli, maurus, rabanus, bart and bayle mantengono grandi cache delle pagine, in modo che richieste comuni o frequenti non richiedano l'uso dei server Apache o dei database. Questi soddisfano la maggior parte delle richieste fatte dai visitatori che non hanno effettuato il login. Attualmente stanno lavorando al 75% circa delle loro possibilità, quadruplicando la capacità dei server Apache che stanno dietro di essi. Questo diventa particolarmente evidente quando una grande mole di traffico punta a una particolare pagina attraverso un collegamento web proveniente da un altro sito, poiché l'efficienza della cache per quella pagina sarà quasi del 100%. Essi eseguono anche la distribuzione del carico tra i server Apache. Il DNS Round-robin distribuisce il carico tra gli Squid. Vedi meta:cache strategy per maggiori dettagli.
- Will è in riparazione per problemi di surriscaldamento della CPU.
Il sistema è disegnato per eseguire il failover e utilizzare le configurazioni di backup al livello di Apache e di Squid, ed è presente il supporto per il backup dei database, ma non in failover automatico.
[modifica] Hosting
Al momento attuale tutti le apparecchiature in servizio sono ospitate in un centro dati utilizzato da Bomis.com in Florida. Lo stesso centro dati sta fornendo gratuitamente lo spazio per i rack e metà della banda. Dall'inizio del progetto fino a settembre (?) ha fornito tutta la banda.
Un'offerta di hosting e banda fatta da http://www.lost-oasis.fr/ in Francia è stata accettata e verrà utilizzata per fornire un servizio di cache Squid europeo usando chloe, bleuenn e ennael.
Dopo che i test sui sistemi siti in Francia saranno andati bene, probabilmente verranno accettate nuove offerte di hosting e banda.
[modifica] Controllo
L'efficienza della cache Squid viene tenuta sotto controllo. Di seguito ci sono le richieste al secondo per tutti i server (in verde) e la parte relativa alla cache (in blu):
http://wikimedia.org/stats/live/org.wikimedia.all.squid.requests-hits-day.png
Una pagina di controllo "esterna" è disponibile su OpenFacts.
Anche i vecchi server web, che non sono attualmente in servizio, erano stati battezzati con nomi di enciclopedisti:
- "Pliny" (Plinio il Vecchio)
- "Larousse" (Pierre Larousse. Nota: Wikimedia non è legata all'enciclopedia Larousse).
- "Geoffrin" (Marie Thérèse Rodet Geoffrin)
Anche se Wikipedia è libera sia nel senso di "libertà di parola", sia nel senso di "gratuito", mantenere il sito web comporta una spesa. Tu puoi aiutare acquistando nuovo hardware per i server e donandolo alla fondazione no-profit Wikimedia:
http://wikimediafoundation.org/fundraising
[modifica] Note per gli Amministratori
[modifica] Installazione di MediaWiki
Wikimedia usa uno script di installazione MediaWiki condiviso. Cioè, una copia degli script viene utilizzata da tutti i progetti. I singoli progetti hanno i loro propri LocalSettings.php, mentre CommonSettings.php viene usato per definire le impostazioni relative a tutti i progetti.
Il server NFS (montato su /home) contiene le impostazioni locali e gli uploads. Immagazzina anche una copia del template del codice di MediaWiki. Questo template viene copiato in ogni server Apache ogni volta che il codice viene aggiornato. Esiste uno script per fare questo: sync-common-all sotto /home/wikipedia/bin/. La ragione di questo procedimento sta nel fatto che usando NFS per fornire questi files PHP si rallenta di molto l'accesso. Devi essere su zwinger per usare sync-common-all.
Le copie locali dei files di MediaWiki sono conservate sotto /usr/local/apache/common/ (nelle sotto directory php, style e images; queste sono immagini dell'interfaccia utente (UI) MediaWiki, non uploads di file).
[modifica] Webalizer
Le statistiche di webalizer sono generate su <project-url>/stats, ad esempio http://it.wikipedia.org/stats. Per creare una nuova serie di statistiche, crea una directory per il progetto, per esempio /home/wikipedia/htdocs/wikimedia/stats/it.wiktionary.org
[modifica] Ordini e descrizioni dettagliate dell'hardware
- meta:Hardware order August 2004: Search database server (bacon), NFS storage server (albert), 8 3.0 GHz P4 web servers (diderot, goeje, avicenna, dalembert, tingxi, alrazi, friedrich, harris), gigabit ethernet switch, 146 GB SCSI drive per Suda.
- meta:Hardware order May 2004: Rimpiazzo per Geoffrin database server (ariel), tre macchine generiche 2.8 GHz P4 (maurus, rabanus, yongle) e un paio di drive 250 GB ATA. Basato su upgrade discussion April 2004.
- meta:Hardware order January 2004: 8 macchine generiche (bart, bayle, browne, coronelli, isidore, moreri, vincent, zwinger) e 1 database server (suda).
[modifica] Collegamenti esterni
- Grafici del traffico Wikimedia in diretta
- Ganglia cluster stats - Florida cluster per i server Wikimedia e qualche volta per i cluster
- Statistiche di utilizzo di Webalizer
- Alexa Traffic Rank
- Technical FAQ - How about the hardware?
- meta:Wikimedia servers network proposal
[modifica] Informazioni utili riguardanti altri siti
- Evolution of LiveJournal systems (pick the PDF file) and journals to watch for system details: Brad (Fitzpatrick) lj_backend lj_maintenance
- MySQL User's Conference 2004 blog highlights