OCFS2 failisüsteemi kasutamine Debianiga
Sisukord
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.
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.