Benutzer-Werkzeuge

Webseiten-Werkzeuge


comp:ocfs2os123
Übersetzungen dieser Seite?:

OCFS2 auf openSUSE 12.3

Das Cluster-Filesystem OCFS2 kenne ich von der Arbeit her. Es ermöglicht vielen Nodes (im Büro: über 20) den Zugriff auf dasselbe Filesystem. Und was dort mit SLES 11 (mit HA-Pack) möglich ist, sollte doch zu Hause auch gehen.

Ha.

Installation

Das war der einfache Teil:

zypper se ocfs2
zypper in ocfs2-tools-o2cb ocfs2console

und die Pakete kamen mitsamt ihren Abhängigkeiten, direkt aus dem openSUSE-OSS-Update-Repository.

Filesystem erstellen

Ein Filesystem habe ich via iSCSI vom NAS eingebunden, partitioniert und dann initialisiert:

mkfs.ocfs2 -L wernasocfs2 -T mail --fs-feature-level=default --global-heartbeat \
  --cluster-stack o2cb --cluster-name OCFS2WERNAS -F /dev/sdc1
 
mkfs.ocfs2 1.8.2
Cluster stack: o2cb
Cluster name: OCFS2WERNAS
Stack Flags: 0x1
NOTE: Feature extended slot map may be enabled
Overwriting existing ocfs2 partition.
WARNING: Cluster check disabled.
Proceed (y/N): y
Filesystem Type of mail
Label: wernasocfs2
Features: sparse extended-slotmap backup-super unwritten inline-data strict-journal-super xattr indexed-dirs refcount discontig-bg
Block size: 4096 (12 bits)
Cluster size: 4096 (12 bits)
Volume size: 1610611687424 (393215744 clusters) (393215744 blocks)
Cluster groups: 12191 (tail covers 15104 clusters, rest cover 32256 clusters)
Extent allocator size: 100663296 (24 groups)
Journal size: 268435456
Node slots: 16
Creating bitmaps: done
Initializing superblock: done
Writing system files: done
Writing superblock: done
Writing backup superblock: 6 block(s)
Formatting Journals: done
Growing extent allocator: done
Formatting slot map: done
Formatting quota files: done
Writing lost+found: done
mkfs.ocfs2 successful

Konfiguration

Wesentlich höher als der Aufwand, den ich unter SLES betrieben habe. Ein manuelles Erstellen der /etc/ocfs2/cluster.conf führte zu

o2cb list-nodes OCFS2WERNAS
o2cb: Unknown code ____ 251 while loading cluster configuration file '/etc/ocfs2/cluster.conf'

Kein Beinbruch, nehmen wir halt die grafische Oberfläche:

# ocfs2console
Traceback (most recent call last):
  File "/usr/sbin/ocfs2console", line 33, in <module>
    from ocfs2interface.console import main
  File "/usr/lib64/python2.7/site-packages/ocfs2interface/console.py", line 26, in <module>
    from mount import mount, unmount
  File "/usr/lib64/python2.7/site-packages/ocfs2interface/mount.py", line 20, in <module>
    import ocfs2
ImportError: /usr/lib64/python2.7/site-packages/ocfs2interface/ocfs2module.so: undefined symbol: io_queue_release

Hm, unter SLES 11 hatte ich nie solche Probleme. Für ocfs2console habe ich <https://bugzilla.novell.com/show_bug.cgi?id=827504> aufgemacht.

Nachtrag 2013-07-10: Der Bug wurde geschlossen – „openSUSE-RU-2013:1170-1: An update that has two recommended fixes can now be installed.“ :-) Sources used: openSUSE 12.3 (src): ocfs2-tools-1.8.2-4.8.1

Also brav alles von Hand angelegt:

klops:~ # o2cb add-cluster OCFS2WERNAS
klops:~ # o2cb heartbeat-mode OCFS2WERNAS global
klops:~ # o2cb add-heartbeat OCFS2WERNAS /dev/disk/by-label/wernasocfs2
klops:~ # o2cb start-heartbeat OCFS2WERNAS
Global heartbeat started
klops:~ # o2cb add-node --ip 192.168.2.55 --number 0 OCFS2WERNAS klops
klops:~ # o2cb add-node --ip 192.168.2.77 --number 1 OCFS2WERNAS sieben
klops:~ # o2cb add-node --ip 192.168.2.44 --number 2 OCFS2WERNAS thinkt51
klops:~ # o2cb list-cluster OCFS2WERNAS
heartbeat:
        region = 5F1672E500D94138BF3C4F517813A336
        cluster = OCFS2WERNAS
 
node:
        number = 0
        name = klops
        ip_address = 192.168.2.55
        ip_port = 7777
        cluster = OCFS2WERNAS
 
cluster:
        node_count = 3
        heartbeat_mode = global
        name = OCFS2WERNAS

Hä? Und wirklich, in der Datei /etc/ocfs2/cluster.conf stand nur der eine Node. Der „node count“ wurde aber brav hochgezählt. Dazu wurde vor vier Wochen schon ein Bug (https://bugzilla.novell.com/show_bug.cgi?id=822190 angelegt), aber der ist immer noch im Status „new“. Ich habe noch einen dazu gelegt (https://bugzilla.novell.com/show_bug.cgi?id=827479), vielleicht hilft das ja.

Alternativ gäbe es o2cb_ctl, aber:

klops:~ # o2cb_ctl -C -n sieben -t node -a number=1 -a ip_address=192.168.2.77 -a ip_port=7777 -a cluster=OCFS2WERNAS
o2cb_ctl: Unable to access cluster service Cannot initialize cluster

OK, nachdem o2cb gestartet wurde, funktioniert der Befehl – aber wieder wird nur der „node count“ hochgesetzt, aber der Node selbst nicht eingetragen.

Ausgabe der Befehle:

Nun, mounten lässt sich das Ding aber manchmal:

# mount /dev/disk/by-label/wernasocfs2 /zdisk/ocfs2
# mount | grep ocfs2
ocfs2_dlmfs on /dlm type ocfs2_dlmfs (rw,relatime)
/dev/sdc1 on /zdisk/ocfs2 type ocfs2 (rw,relatime,_netdev,heartbeat=global,nointr,data=ordered,errors=remount-ro,atime_quantum=60,cluster_stack=o2cb,coherency=full,user_xattr,acl)

Und dann wieder:

klops:~ # mount /zdisk/ocfs2/
mount.ocfs2: Invalid argument while mounting /dev/sdc1 on /zdisk/ocfs2. Check 'dmesg' for more information on this error.

Und dmesg sagt dazu:

[ 2907.104719] OCFS2 1.5.0
[ 2907.147382] (mount.ocfs2,8078,0):ocfs2_verify_userspace_stack:876 ERROR: cluster stack passed to mount, but this filesystem does not support it
[ 2907.147440] ocfs2: Unmounting device (8,33) on (node 0)
[ 2907.147457] (mount.ocfs2,8078,0):ocfs2_fill_super:1230 ERROR: status = -22

Die spinnen, die Römer…

comp/ocfs2os123.txt · Zuletzt geändert: 2013-07-10 1109 von werner