Linux-Admin: Oracle Cluster File System (OCFS)
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 = 3 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
auf
node.startup = automatic
geändert.
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.