Su internet ci sono un sacco di guide su OCFS2 per RHEL e CentOS, ma nessuna per Debian/Ubuntu quindi visto che ho dovuto configurarlo per lavoro, voglio condividere la mia esperienza con voi.
Installazione di OC2FS
per iniziare è necessario installare i seguenti pacchetti:
apt-get install OCFS2-tools ocfs2console
Configurare OC2FS
In RHEL/CentOS il file di configurazione principale si trova in / etc/sysconfig/o2cb
nella nostra amata distro si trova in: /etc/default/o2cb
Apriamo il file e cambiamo la seguente riga:
da
O2CB_ENABLED = false
a
O2CB_ENABLED = true
Ciò consente di avviare il modulo ocfs2 al boot.
OC2FS installazione cluster.conf
Creiamo il file di configurazione nel seguente modo:
vim /etc/ocfs2/cluster.conf
(si possono avere anche più nodi se volete)
node:
name = SERVER-FARM-ME1
cluster = ocfs2
number = 0
ip_address = 192.168.192.1
ip_port = 7777
node:
name = SERVER-FARM-ME2
cluster = ocfs2
number = 1
ip_address = 192.168.192.2
ip_port = 7777
cluster:
name = ocfs2
node_count = 2
Il nome deve corrispondere all’hostname corretto delle macchine, mentre l’ip deve appartenere alla scheda di rete adibita all’herbeart (consiglio una scheda di rete dedicata)
La parte “cluster” è il nome con il quale verrà chiamato questo cluster e dove viene dichiarato quando nodi sono presenti, assicuriamoci che lo stesso nome sia dichiarato nel file /etc/default/o2c.
Spostiamo il file cluster.conf su ogni nodo (ricordiamoci che ogni nodo deve avere lo stesso identico file cluster.conf)
Ora per settare i parametri principali del demone di solito sotto RHEL/CentOS si usa questo comando:
/etc/init.d/o2cb configure
Mentre su Ubuntu/Debian si utilizza questa fantastica utility:
dpkg-reconfigure ocfs2-tools (nella maggior parte delle config vanno bene i parametri di default)
Dopo avviamo il servizio o2cb:
/etc/init.d/o2cb start
Loading module “configfs”: OK
Mounting configfs filesystem at /sys/kernel/config: OK
Loading module “ocfs2_nodemanager”: OK
Loading module “ocfs2_dlm”: OK
Loading module “ocfs2_dlmfs”: OK
Mounting ocfs2_dlmfs filesystem at /dlm: OK
Starting O2CB cluster ocfs2: OK
Dopo controlliamo lo stato del o2cb, dovrebbe uscire fuori una cosa del genere:
/etc/init.d/o2cb status
Module “configfs”: Loaded
Filesystem “configfs”: Mounted
Module “ocfs2_nodemanager”: Loaded
Module “ocfs2_dlm”: Loaded
Module “ocfs2_dlmfs”: Loaded
Filesystem “ocfs2_dlmfs”: Mounted
Checking O2CB cluster ocfs2: Online
Heartbeat dead threshold = 7
Network idle timeout: 10000
Network keepalive delay: 5000
Network reconnect delay: 2000
Checking O2CB heartbeat: Active
Formattiamo le partizioni in OCFS2:
mkfs.ocfs2 -b 4k -C 32K -L "NomeLabel" -N 2 /dev/sda2
Assicuriamoci di sostituire “/dev/sda2″ con la partizione che desideriamo formattare. Cerchiamo di non sbagliare perché perderemo tutti i dati su quella partizione.
L’opzioni sono quelle consigliate de default da oracle tranne che per l’opzione “-N 2″ questa imposta il numero massimo di nodi che possono montare quel filesystem, questo valore può essere aumentato ma non può essere diminuito. Non si dovrebbe avere un numero maggiore del necessario (o almeno di non molto). La documentazione Oracle dice che in caso di necessità questo valore può essere aumentato in qualsiasi momento.
Montiamo la partizione OCFS2
mount -t ocfs2
-o _netdev,datavolume /dev/sda2 /mnt/sda2
L’opzione datavolume si deve usare se la partizione conterrà tablespace di oracle, se invece conterrà altri tipi di file si può montare nel seguente modo:
mount -t ocfs2
-o _netdev,defaults /dev/sda2 /mnt/sda2
Ora mettiamo la config del file fstab cosi da consetire il montaggio automatico all’avvio
vim /etc/fstab
/dev/drbd1 /ocfs2 _netdev,datavolume 0 0 (Primo esempio)
/dev/drbd1 /ocfs2 _netdev,defaults 0 0 (Secondo esempio)
Questo è tutto spero di aver fatto cosa gradita a tutti.
Frank
Ottimo articolo grazie!
Grazie sei molto gentile
Ciao Francesco,
trovo la guida interessante, ma non riesco a capire qlcosa. OCFS2 mi permette di usare un disco per due nodi e sincronizza i contenuti?, oppure devo avere due dischi da sincronizzare (per due nodi?). Mi spiego meglio: ho creato due server con debian, al primo ho dato due dischi, al secondo solo uno. Poi ho seguito la guida passo passo, ma mentre sul primo nodo leggo (lanciando il comando mounted.ocfs2 -f):
Device FS Nodes
/dev/sdb1 ocfs2 linux1
sul secondo non vedo niente.
In sintesi ho aggiunto un disco al primo server l’ho formattato con ocfs2, ho configurato il tutto e poi però non capisco come faccio a farlo vedere al secondo nodo?
Giovanni ocfs può essere usato o con uno storage in fibra o iscsi oppure usando drdb, il disco deve cmq essere visto da tutti e due i nodi.
Fammi sapere se ti servono altre info