Linux-Admin: Oracle Cluster File System (OCFS)

Aus Hergipedia
Zur Navigation springen Zur Suche springen

Wozu ist das gut?

Um den Netzwerkspeicherplatz des iSCSI-RAID-Systems von mehreren Servern aus gleichzeitig zu mounten, ist ein Cluster-Dateisystem nötig. OCFS2 erfüllt diese Kriterien und ist in den Ubuntu- und OpenSuse-Standard-Repos enthalten.

Einrichtung eines OCFS2-Clusters

Paket-Installation

Benötigt werden zusätzlich zur Standard-Installation folgende Pakete:

open-iscsi
ocfs2-tools
(openSUSE: zusätzlich ocfs2-tools-o2cb)
sowie deren Abhängigkeiten

Cluster-Definition

Alle Rechner, die Zugriff auf den iSCSI-Plattenbereich erhalten sollen, benötigen eine Cluster-Definitions-Datei, die auf ALLEN Nodes IDENTISCH sein muss:

/etc/ocfs2/cluster.conf

In dieser Datei wird der Cluster und alle seine Teilnehmer ("nodes") definiert. Der Port 7777 ist der Default. Bei uns läuft das Speichernetzwerk im internen Netzwerk (192.168.0.*), in der Firewall UFW explizit erlaubt bzw. bei openSUSE als interne Zone definiert. Dann muss Port 7777 nicht extra geöffnet werden.

Dies ist die Beispiel-Konfiguration für den vmstorage-Cluster:

cluster: 
node_count = 4 
name = vmstorage

node: 
ip_port = 7777 
ip_address = 192.168.0.12 
number = 1 
name = vmhost1 
cluster = vmstorage

node: 
ip_port = 7777 
ip_address = 192.168.0.13 
number = 2 
name = vmhost2 
cluster = vmstorage 

node: 
ip_port = 7777 
ip_address = 192.168.0.14 
number = 3 
name = vmhost3
cluster = vmstorage

node: 
ip_port = 7777 
ip_address = 192.168.0.15 
number = 4
name = vmhost4
cluster = vmstorage

iSCSI-Target mounten

Um sich mit dem iSCSI-RAID zu verbinden, benutzt man den iSCSI-Initiator.

In der Datei /etc/iscsi/iscsid.conf wird eine Zeile von:

node.startup = manual

geändert auf:

node.startup = automatic

Dann werden die iSCSI-Freigaben auf dem eonstor-RAID gesucht:

iscsiadm -m discovery -t st -p 192.168.0.10

Man sollte zwei Freigaben (vmstorage und datengrab) zu sehen bekommen. Der Initiatorname steht in /etc/iscsi/initiatorname.iscsi. Dem iSCSI-RAID muss die IQN des zugreifenden Servers bekannt sein. Falls das noch nicht der Fall ist, muss diese Angabe mit minicom auf dem iSCSI-RAID gespeichert werden. Dann sollte man sich anmelden können mit:

iscsiadm -m node --login

Auf openSUSE sind mit YAST folgende Einstellungen nötig:

  • Dienst beim Booten starten
  • Discovery:
    • 192.168.0.10 für vmstorage
    • 192.168.0.11 für datengrab
    • leere Authentifizierung (NICHT "keine Auth.")
  • Login in das passende Target
  • Verbindung: automatisch

O2CB-Dienst starten

Der o2cb-Dienst regelt die Kommunikation der Cluster-Teilnehmer untereinander sowie die Verwaltung der Lock-Files. Falls es sich um eine Neuinstallation handelt, müssen zuerst die Grundeinstellungen festgelegt werden: openSUSE:

rco2cb configure

Ubuntu:

service o2cb configure ("or do it the Debian way ...")
Einstellungen:
* Dienst beim Booten starten
* Name des zu startenden Clusters (vmstorage oder datengrab)
* alles andere: default (ENTER)

Mounten des Dateisystems

Zum Testen kann man das Dateiystem normal manuell mounten:

mount <devicename> <mountpoint>

Für den Dauerbetrieb empfiehlt sich ein Eintrag in der /etc/fstab. Nützlich: Besser die Notation /dev/disk/by-path/* verwenden, um Verwechslungen mit anderen devices (sda1, sdb1 etc.) auszuschließen. Am besten lässt man sich die vorhandenen EInträge auflisten mit

ll /dev/disk/by-path

Wichtig ist der _netdev-Eintrag, sonst wird beim Booten zu früh versucht, das iSCSI-Target zu mounten. Hier ein Beispiel auf vmhost1:

# vmstorage on eonstor iscsi raid
/dev/disk/by-path/ip-192.168.0.10:3260-iscsi-iqn.2002-10.com.infortrend:raid.sn7195854.00-lun-0-part1  /vmstorage  ocfs2  _netdev 0 0

Besonderheiten

Wenn verschiedene o2cb / dlm-Versionen kooperieren sollen, sollte der Node mit der ÄLTESTEN Version das Dateisystem ZUERST mounten, sonst kommt es zu Fehlern.