[Zope-it] domanda per sistemisti su Zope e High Availability
Marco Bizzarri
m.bizzarri@icube.it
Thu, 20 Mar 2003 07:43:08 +0100
Diego OLERNI wrote:
> Ciao a tutti,
> vengo subito al dunque: non avendo esperienze su Zope devo
> descrivere in un progetto una struttura nella quale conciliare Zope ed
> alta disponibilità del servizio (fault tolerance).
>
> Ho 3 scelte:
>
> 1) due macchine identiche con Apache e Zope, area di storage condivisa
> tramite array di dischi SCSI, una delle due macchine attiva e on-line,
> la seconda "addormentata" (Zope non startato, rete non attiva) va a
> monitorare lo stato della prima macchina per mezzo di Hearthbeat e Mon
> (sul modello di quello che succede con i Director nel progetto LVS) e
> quando questa dovesse fermarsi ne prenderebbe il posto startando i
> servizi di rete e Zope ed andandosi a leggere il DB di Zope sull'array
> condiviso.
> DUBBIO: possono nascere problemi dal fatto che la prima macchina, per
> qualche motivo, abbia ancora un'istanza di Zope in qualche modo attiva
> andando a bloccare letture e scritture dall'area di storage che risulta
> condivisa?
>
> 2) situazione analoga alla precedente, sostituendo l'array di dischi
> SCSI con una coppia di server dedicati esclusivamente allo storage dei
> dati. In questo caso ridondanza (mirroring) dei dati e condivisione
> degli stessi sarebbe ottenuta utilizzando il filesystem CODA
> (http://www.coda.cs.cmu.edu).
> DUBBIO: qui il problema legato ai blocchi su scrittura e lettura
> dovrebbe non sussistere grazie alla struttura di CODA, il dubbio nasce
> sulle prestazioni del tutto in base al fatto che alcune letture vengono
> fatte comunque in rete (gigabit ethernet).
>
> 3) una situazione intermedia tra le precedenti potrebbe prevedere di
> condividere l'area di storage senza utilizzare server aggiuntivi, ma
> utilizzando il filesystem CODA direttamente sulle due macchine
> equipaggiate con Zope e Apache (eliminando così anche l'array SCSI). Io
> sarei abbastanza orientato su quest'ultima ipotesi, ma ho paura che
> dovendosi sobbarcare anche la replicazione dei dati il server potrebbe
> risultare eccessivamente affaticato, senza contare che la soluzione n° 2
> separa l'area dati permettendomi di spostare i due server dietro un
> firewall (cosa vera fino ad un certo punto perchè comunque ogni macchina
> tiene in locale una cache dei dati da scrivere su fs CODA).
>
>
> Avrei scartato la soluzione di un cluster perchè richiederebbe troppe
> macchine (due director, almeno due server Zope equipaggiati con moduli
> ZEO, almeno un server di tipo Zope Storage Server ed una sua replica,
> siamo già a sei macchine!) e perchè non mi aspetto un carico tale da
> richiedere load balancing e giustificare un investimento così elevato.
>
> Sarò grato a chiunque mi darà indicazioni utili (compresi "mio cugggino
> mi ha detto che..." :-) )
>
> Saluti a tutti
>
> Diego
>
>
> _______________________________________________
> Zope-it maillist - Zope-it@zope.org
> http://mail.zope.org/mailman/listinfo/zope-i
> t
Ciao Diego.
Parlo piu' che altro a partire da info reperite in giro. Delle buone
discussioni sui cluster le puoi trovare sul sito di redhat quando
parlano dei loro Advancede Server, o su quello di Mission Critical
Linux. Il secondo in particolare ha delle presentazioni abbastanza
omnicomprensive.
Quanto ai tuoi dubbi:
1) si', secondo me problemi ti possono nascere tranquillamente, e a
molto piu' basso livello. Infatti, usando ext2/ext3 o reiserfs o quello
che sia, devi essere assolutamente certo che non ci siano due macchine
che stiano montando la stessa partizione. Infatti, le soluzioni
commerciali che si trovano in giro sui cluster in genere includono anche
meccanismi di power-off fisico (ogni server pilota l'UPS dell'altra
macchina) in modo da accertarsi che non ci siano problemi di questo genere.
Non conosco abbastsanza lo ZODB da dirti se possa essere lasciato in uno
stato in cui una istanza pensi che sia ancora 'montato' da uno Zope, ma
dalle esperienze che abbiamo fatto direi di no (abbiamo buttato giu'
Zope nei peggio modi, ma non ha mai protestato quanto al montare lo Storage)
2) o 3) Sinceramente non ho notizie buone su CODA e sulla sua effettiva
usabilita' in un ambiente di produzione (il che non vuol dire che non
sia ottimo ;-))
A quello che credo di aver capito, stai mettendo in piedi questa
struttura piu' per motivi di availability che di performance. A questo
punto, credo che tu ti possa permettere il carico di lavoro in piu'
necessario a mantenere la sincronizzazione sui dati...
Spero di esserti stato utile
Saluti
Marco