OCFS2 failisüsteemi kasutamine Debianiga

Allikas: Kuutõrvaja
Redaktsioon seisuga 13. juuni 2009, kell 20:32 kasutajalt Imre (arutelu | kaastöö) (FC)

Sissejuhatus

OCFS2 failisüsteem on Oracle poolt arendatud ühiskasutuses plokkseadme failisüsteem (ingl. k. shared disk file system), mis tähendab, et üks ja sama nö füüsiline plokkseade on ühendatud samaaegselt mitme arvuti külge (tavaliselt mitte juurfailisüseemina, vaid nt andmete jaoks) ning OCFS2 failisüsteem ja tema infrastruktuuri komponendid (lock manager jt) hoolitsevad selle eest, et sellisel kasutausel ei tekiks konflikte; et ühe arvuti poolt failisüsteemis tehtud muudatused oleks paista teistes arvutites mõistliku aja pärast. Sellisest süsteemi nimetatakse OCFS2 klustriks ja osalevaid arvuteid klustri komponentideks.

Plokkseadme ühendamine samaagselt mitmesse arvutisse

Plokkseadme ühendamiseks samaaegselt mitmesse arvutisse on nt sellised võimalused

  • iSCSI
  • Xen domU guestidel nö 'w!' parameetriga
  • FC

iSCSI

iSCSI abil plokkseadme ühendamist samaaegset mitmesse arvutisse illustreerib selline skeem

    node0            node1             node2
     ___              ___               ___
    |   |            |   |             |   |
    |___|            |___|             |___|
      |   /dev/sda     |   /dev/sda      |   /dev/sda  - iSCSI initiatorid (kliendid)
      |                |                 |
    --|----------------|-----------------|--------|-----
                                                  |
                                                 _|_
                                                |   |  iSCSI target (server)
                                                |___|

http://kuutorvaja.eenet.ee/wiki/ISCSI_kasutamine

Xen

Plokkseadme ühendamist samaaegset mitmesse Xen domU operatsioonisüsteemi eksemplari illustreerib selline skeem

    node0            node1             node2
     ___              ___               ___
    |   |            |   |             |   |
    |___|            |___|             |___|
      |   /dev/xvda2   |   /dev/xvda2    |   /dev/xvda2 - Xen domU guestid
      |                |                 |
    --|----------------|-----------------|--------|-----
                                                  |
                                                 _|_
                                                |   |  Xen dom0
                                                |___|  /dev/data/ocfs2-storage

http://kuutorvaja.eenet.ee/wiki/Virtualiseerimine_tarkvaraga_Xen#Jagatud_plokkseadme_kasutamine

Käesolevas pala tekitamisel on tuginetud Xen domU arvutite külge Xeni vahenditega ühendatud plokkseadme kasutamisele.

FC

FC ja DM-Multipath kasutamist on käsitletud palas http://kuutorvaja.eenet.ee/wiki/DM-Multipath

OCFS2 tööpõhimõte

Kõik OCFS2 klustris osalevad arvutid vahetavad omavahel andmeid toimuvate muudatuste kohta kasutades vaikimisi 7777/tcp pordi

               node2
                ___
               |   |
           /   |___|  \   7777/tcp
         /              \
       /                  \
 
    node0                 node1
     ___                   ___ 
    |   |   -----------   |   |
    |___|                 |___|

OCFS2 andmevahetus toimub üle kahe erineva kanali

  • klustri komponendile külge ühendatud plokkseadmega suhtlemine, nt üle fc (FC), etherneti (iSCSI) või nö sisemiselt (Xen)
  • klustri komonentide vaheline suhtlemine, üle 7777/tcp pordi

Töötava klustri komponentides käivad seoses OCFS2 tarkvaraga muu hulgas sellised protsessid

 # ps aux | egrep "oc|o2"
 ...
 root      2839  0.0  0.0      0     0 ?        S<   18:09   0:00 [o2net]
 root      2854  0.0  0.0      0     0 ?        S<   18:13   0:00 [o2hb-F2AF06707F]
 root      2860  0.0  0.0      0     0 ?        S<   18:13   0:00 [ocfs2_wq]
 root      2861  0.0  0.0      0     0 ?        S<   18:13   0:00 [ocfs2dc]
 root      2866  0.0  0.0      0     0 ?        S<   18:13   0:00 [ocfs2cmt]

Ettevalmistuste tegemine

OCFS2 failisüsteemi kasutamiseks tuleb ühendada kõigile jagatud failisüsteemi kasutamises osalevatele arvutitele ühendada külge rw režiimis jagatud plokkseade, nt valides eelmises punktis esitatud võimaluste seast sobiva.

OCFS2 tarkvara koosneb mitmest osast

  • tuuma moodulitena - sisalduvad paketihalduse Debian Lenny tuuma koosseisus
  • haldusprogrammidena - pakett ocfs2-tools

Pakett ocfs2-tools paigaldamiseks tuleb öelda

 # apt-get install ocfs2-tools

Klustri seadistamine

Kluster seadistatakse moodustades kõigis klustri komponentides samasuguse sisuga kaks seadistusfaili

 # cat /etc/ocfs2/cluster.conf
 node:
       ip_port = 7777
       ip_address = 192.168.10.51
       number = 0
       name = node0
       cluster = kluster
 
 node:
       ip_port = 7777
       ip_address = 192.168.10.52
       number = 1
       name = node1
       cluster = kluster
 
 node:
       ip_port = 7777
       ip_address = 192.168.10.53
       number = 2
       name = node2
       cluster = kluster
 
 cluster:
       node_count = 3
       name = kluster

ja /etc/default/o2cb

 # cat /etc/default/o2cb 
 O2CB_ENABLED=true 
 O2CB_BOOTCLUSTER=kluster
 O2CB_HEARTBEAT_THRESHOLD=31
 O2CB_IDLE_TIMEOUT_MS=30000
 O2CB_KEEPALIVE_DELAY_MS=2000
 O2CB_RECONNECT_DELAY_MS=2000

Klustri kasutamine

Klustri käivitamiseks tuleb esmalt laadida tuuma moodulid ning ühendada külge vajalikud pseudo-failisüsteemid öeldes

 # /etc/init.d/o2cb load
 Loading filesystem "configfs": OK
 Mounting configfs filesystem at /sys/kernel/config: OK
 Loading stack plugin "o2cb": OK
 Loading filesystem "ocfs2_dlmfs": OK
 Mounting ocfs2_dlmfs filesystem at /dlm: OK

Seejärel käivitad kluster

 # /etc/init.d/o2cb online kluster
 Setting cluster stack "o2cb": OK
 Starting O2CB cluster kluster: OK

Ainult ühes klustri komponendis tuleb moodustada OCFS2 failisüsteem öeldes nt, '-N 3' tähistab asjaolu, et klustris osaleb kolm komponenti

 # mkfs.ocfs2 -N 3 /dev/xvda3 
 mkfs.ocfs2 1.4.1
 Cluster stack: classic o2cb
 Filesystem label=
 Block size=4096 (bits=12)
 Cluster size=4096 (bits=12)
 Volume size=4294967296 (1048576 clusters) (1048576 blocks)
 33 cluster groups (tail covers 16384 clusters, rest cover 32256 clusters)
 Journal size=67108864
 Initial number of node slots: 3
 Creating bitmaps: done
 Initializing superblock: done
 Writing system files: done
 Writing superblock: done
 Writing backup superblock: 1 block(s)
 Formatting Journals: done
 Formatting slot map: done
 Writing lost+found: done
 mkfs.ocfs2 successful

Ning lõpuks ühendada külge failisüsteem öeldes

 # mount /dev/xvda3 /srv/data

Seejärel tuleb ka ülejäänud klustri komponentides öelda

 # /etc/init.d/o2cb load
 # /etc/init.d/o2cb online kluster
 # mount /dev/xvda3 /srv/data

OCFS2 klustri komponendi seiskamiseks tuleb öelda

 # umount /srv/data
 # /etc/init.d/o2cb offline kluster
 # /etc/init.d/o2cb unload

Klustri komponendi oleku küsimuseks tuleb öelda, nt töötaval juhtumil vastatakse

 # /etc/init.d/o2cb status kluster
 Driver for "configfs": Loaded
 Filesystem "configfs": Mounted
 Stack glue driver: Loaded
 Stack plugin "o2cb": Loaded
 Driver for "ocfs2_dlmfs": Loaded
 Filesystem "ocfs2_dlmfs": Mounted
 Checking O2CB cluster kluster: Online
 Heartbeat dead threshold = 31
   Network idle timeout: 30000
   Network keepalive delay: 2000
   Network reconnect delay: 2000
 Checking O2CB heartbeat: Active

Logi

Viimase komponendi käivitumisel tekib node0:/var/log/kern.log'i nt selline sissekanne

 Jun 13 18:28:47 node0 kernel: o2net: accepted connection from node node2 (num 2) at 192.168.10.53:7777
 Jun 13 18:28:51 node0 kernel: ocfs2_dlm: Node 2 joins domain F2AF06707F454C79BBE68B0D2F3BC05E
 Jun 13 18:28:51 node0 kernel: ocfs2_dlm: Nodes in domain ("F2AF06707F454C79BBE68B0D2F3BC05E"): 0 1 2

Märkused

  • Klustri mõõduka kasutamise korras toimub üle 7777/tcp pordi märkimisväärne andmevahetus, ca 500 kBait/s.
  • Paketina ocfs2console jagatakse graafilist seadistus ja haldusprogrammi OCFS2 klustri jaoks, kasutaja peab ise otsustama, kas tema jaoks on oluline seda kasutada.
  • Tundub, et OCFS2 ei sisalda iseenesest mingit klustri komponentide omavahelist autentimist.

Kasulikud lisamaterjalid