Direct I/O e cluster filesystem: un dubbio

lunedì 23 luglio 2007 alle 23:48 | Pubblicato su Diario | Lascia un commento

In un recente post di Kevin Closson, in cui come spesso fa, sponsorizza l’utilizzo di NAS come storage e quindi di NFS, un lettore ha posto una domanda:

How can NFS substitute the functionality that a cluster file system offers? I am confused about this whole nfs with rac. If two instances are trying to write a file, how can nfs protect?”

Devo dire che anche io sono un po’ confuso, la risposta di Kevin Closson è:

A CFS would be in as much of the way as NFS if Oracle were to use either without Direct I/O. However, RAC uses Direct I/O with both. It is a non-issue.

Io non sono riuscito a tradurre la risposta, però ho fatto la seguente riflessione:

Direct I/O significa che quando si richiede al sistema operativo una scrittura su un file che sta su filesystem non si utilizza la cache che normalmente il sistema operativo utilizza, ma che la scrittura viene eseguita direttamente su disco. Questo significa che se ho due macchine collegate ad  uno storage condiviso (diciamo una SAN) su cui entrambe le macchine accedono e su cui c’è un filesystem qualsiasi, non cluster filesytem, ma che supporti il DIRECT I/O se da una delle due macchine scrivo qualcosa su questo filesystem (in modo DIRECT I/O)  dall’altra subito dopo faccio una lettura (sempre DIRECT I/O) vedo quello che ha scritto la prima macchina. Questo significa che non ho clusterfilesystem che mi proteggono da situazioni inconsistenti, ma se le due macchine si parlano si possono evitare situazioni anomale.

Mi spiego meglio, Oracle RAC può essere installato utilizzando come supporto per i datafile delle raw devices, in questo caso il sistema operativo non da alcun supporto per impedire che due scritture provenienti da due macchine diverse producano inconsistenze, quindi è Oracle stesso che si occupa di coordinare le scritture sui datafile fra le varie instanze del cluster.

Quindi secondo me allo stesso modo quello che mi viene da pensare è che il linea di principio RAC possa funzionare anche se sullo storage condiviso faccio un filesystem che supporti direct I/O: sarà vero?

Lascia un commento »

RSS feed for comments on this post. TrackBack URI

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Crea un sito o un blog gratuitamente presso WordPress.com.
Entries e commenti feeds.

%d blogger cliccano Mi Piace per questo: