OCFS2 : Le FileSystem Cluster d'Oracle

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

OCFS2 est un filesystem cluster permettant de faire du partage de filesystem entre plusieurs machines avec tolerance de panne.

Ce système de fichier à été initialement créer pour les bases de données d'Oracle et possède donc un mécanisme de lock étidié pour ce type d'applications. Vous pouvez l'utiliser comme système de fichier, mais le poroblème est qu'il peut flusher au bout d'un certain temps de vie les locks trop vieux. Si votre idée est vraiment d'utiliser un filesystème cluster pour y stocker des fichiers, il faudrait mieux vous réorienter vers GFS.

2 Installation

Par défault OCFS2 est compilé en tant que module dans le noyaux.
Pour s'en assurer rien de tel qu'un grep sur le fichier config du kernel :

Command grep
grep OCFS2 /boot/config-`uname -r`

ce qui devrait retourner :

CONFIG_OCFS2_FS=m
CONFIG_OCFS2_DEBUG_MASKLOG=y

Nous allons donc installer le nécessaire :

Command
aptitude install ocfs2-tools

3 Configuration

3.1 cluster.conf

Ajoutez ceci dans le fichier /etc/ocfs2/cluster.conf. Faites attention, c'est très capricieux, intégrez donc que le strict nécessaire avec des tabulations etc... et pas de lignes superflues :

Configuration File /etc/ocfs2/cluster.conf
cluster:
        node_count = 2
        name = ocfs2_cluster
node:
        ip_port = 7777
        ip_address = 192.168.100.1
        number = 0
        name = zazu
        cluster = ocfs2_cluster
node:
        ip_port = 7777
        ip_address = 192.168.20.4
        number = 1
        name = shenzi
        cluster = ocfs2_cluster

Je ne pense pas avoir besoin de faire beaucoup d'explications, le fichier de configuration est claire. Mais bon, en voici quelques unes au cas ou :

  • node_count : nombre de noeuds dans le cluster

Cette configuration est bien-sûre a appliquer sur tous vos noeuds.

3.2 o2cb

Maintenant nous allons éditer le fichier de démarrage d'OCFS2 :

Configuration File /etc/default/o2cb
#
# This is a configuration file for automatic startup of the O2CB
# driver.  It is generated by running 'dpkg-reconfigure ocfs2-tools'.
# Please use that method to modify this file.
#
 
# O2CB_ENABLED: 'true' means to load the driver on boot.
O2CB_ENABLED=true
 
# O2CB_BOOTCLUSTER: If not empty, the name of a cluster to start.
O2CB_BOOTCLUSTER=ocfs2_cluster
 
# O2CB_HEARTBEAT_THRESHOLD: Iterations before a node is considered dead.
O2CB_HEARTBEAT_THRESHOLD=31
 
# O2CB_IDLE_TIMEOUT_MS: Time in ms before a network connection is considered dead.
O2CB_IDLE_TIMEOUT_MS=30000
 
# O2CB_KEEPALIVE_DELAY_MS: Max. time in ms before a keepalive packet is sent.
O2CB_KEEPALIVE_DELAY_MS=2000
 
# O2CB_RECONNECT_DELAY_MS: Min. time in ms between connection attempts.
O2CB_RECONNECT_DELAY_MS=2000

Il faut juste modifier O2CB_ENABLED et O2CB_BOOTCLUSTER en indiquant le nom du cluster OCFS2.

4 Lancement

Il existe un outils graphique permettant de gérer ocfs2, "ocfs2console", mais nous ne le verrons pas ici.

Pour démarrer proprement ocfs2 (nécessaire après chaque modification de configuration) :

Command
/etc/init.d/o2cb offline ocfs2
/etc/init.d/o2cb unload
/etc/init.d/o2cb load
/etc/init.d/o2cb online ocfs2

Pour les prochains redémarrages :

Command
/etc/init.d/o2cb restart

5 Formatage

Vous pouvez maintenant formater le device que vous souhaitez pour qu'il y ai OCFS2 avec la commande mkfs.ocfs2 :

Command mkfs
mkfs.ocfs2 /dev/drbd0

Il ne reste plus qu'a monter sur vos noeuds tout ceci :

Command mount
mount.ocfs2 /dev/drbd0 /mnt

6 Ressources

Documentation on Heartbeat2 Xen cluster with drbd8 and OCFS2