[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