OCFS2 - Oracle Cluster File System

Oracle Cluster File System (OCFS2) e' un cluster file system per Linux realizzato dalla Oracle Corp. e distribuito come Open Source (licenza GPL).

Un cluster file system consente di definire un file system montato ed acceduto contemporaneamente da diversi sistemi. Poiche' i sistemi accedono direttamente allo storage le prestazioni ottenibili sono superiori di ordini di grandezza rispetto ad una condivisione di file con NFS.

Il precursore di OCFS2 e' OCFS, sempre realizzato da Oracle, che consentiva solo la condivisione di raw devices tra sistemi Linux differenti (come necessario nell'implementazione di Oracle RAC ed ASM). Con OCFS2, rilasciato con la versione 11g R2 della base dati, possono essere posti in cluster anche normali file system contenenti programmi, file di configurazione, ... o qualsiasi altro dato.

La configurazione in cluster di un file system consente di garantire un'elevata disponibilita' dei servizi (HA: High Availability). Un esempio puo' essere una serie di web server richiamati da un load balancer HW che condividono lo stesso FS.

Introduzione

Un cluster OCFS2 e' composto da una serie di sistemi che accedono agli stessi dischi fisici e che li utilizzano in contemporanea. Tutti i sistemi sono Linux (Red Hat, Unbreakable Linux, Suse, ...). I sistemi sono comunicano tra loro mediante la rete per controllare la presenza di tutti i nodi e per la gestione dei lock distribuiti.

Una volta installato e configurato OCFS2 i file system appaiono come dischi locali a tutti i sistemi in cluster che li possono utilizzare normalmente.

Installazione

OCFS2 e' da tempo disponibile nel kernel Linux, l'installazione e' molto semplice e richiede solo alcuni pacchetti:

ocfs2-2.6.Y
ocfs2-tools-1.4.X
ocfs2console-1.4.X
Dove Y dipende dalla versione del kernel ed X e' la versione piu' recente disponibile.

Configurazione

Il modo piu' semplice e' quello di utilizzare il tool grafico di configurazione: ocfs2console! L'interfaccia grafica e' utilizzata sia per la configurazione del cluster e che per la formattazione dei dischi.
E' lo strumento consigliato per la configurazione, anche perche' un cluster file system normalmente non richiede attivita' di gestione se non l'aggiunta di nuovi dischi/file system.

La configurazione viene mantenuta sul file /etc/ocfs2/cluster.conf. Ecco un esempio:

node:
	ip_port = 7777
	ip_address = 10.20.30.101
	number = 0
	name = webserver01
	cluster = ocfs2

node:
	ip_port = 7777
	ip_address = 10.20.30.102
	number = 1
	name = webserver02
	cluster = ocfs2

node:
	ip_port = 7777
	ip_address = 10.20.30.103
	number = 2
	name = webserver03
	cluster = ocfs2

node:
	ip_port = 7777
	ip_address = 10.20.30.104
	number = 3
	name = webserver04
	cluster = ocfs2

cluster:
	node_count = 4
	name = ocfs2

Lo storage e' tipicamente constituito da dischi in SAN (FC, FCoE). Anche i dischi possono essere configurati da interfaccia grafica.
E' importante notare che al momento della formattazione e' necessario indicare il numero massimo di nodi...
Il Block size e' un elemento di tuning importante.

I parametri del kernel da definire sono il panic_on_oops ed il panic (rispettivamente a 1 e 30 per evitare situazioni di deadlock).
I parametri del modulo o2cb sono definiti nel file /etc/sysconfig/o2cb e non richiedono generalmente modifiche.

Al boot sono tipicamente attivati (dagli script S24o2cb e S25ocfs2 in /etc/rc3.d) i processi di gestione:
[user_dlm] [o2net] [o2hb-XXX] [ocfs2_wq] [ocfs2dc] [kjournald] [ocfs2cmt]

I file system ocfs2 possono essere montati al boot come tutti gli altri file system. Ecco un esempio di configurazione (/etc/fstab):
# DeviceMount PointTypeOptionsdump Freq.fsck Pass.
ocfs2_dlmfs /dlm ocfs2_dlmfs rw 0 0
/sda1/www ocfs2 rw,_netdev,heartbeat=local 0 0

etc

Per un'introduzione ai cluster consultare questo documento.

I cluster file system non sono una novita'! Oltre 10 anni fa Digital aveva introdotto un Cluster File System nel suo sistema operativo Tru64 Unix v.5. Da anni era disponibile la stessa funzionalita' su VMS (che pero' non conosco come ambiente), sempre realizzato da Digital...
Un Cluster File System presenta difficolta' tecniche non banali per un'implementazione robusta ed efficiente. Su Linux l'affidabilita' delle soluzioni su NFS e la sempre crescente velocita' delle interfacce di rete forniscono un'alternativa semplice e poco costosa.

Su Linux e' disponibile un altro cluster file system: GFS (Global File System) di Red Hat. Molto interessante, ma differente come funzionalita' rispetto ad OCFS ed a GFS e' lo ZFS: il recente file system sviluppato da Sun e disponibile per Solaris e per Unix.

Sul sito ufficiale OCFS2 e' dispinibile tutta la documentazione tra cui la User Guide.


Testo: OCFS2 - Oracle Cluster File System
Data: 31 Settembre 2010
Versione: 1.0.1
Autore: mail@meo.bogliolo.name