Ocfs2

Linux.fista
Siirry navigaatioon Siirry hakuun


OCFS2
Kotisivu OCFS2 Wiki

OCFS2 (Oracle Cluster File System Version 2) on yleiskäyttöinen ja jaettu levyjärjestelmä, joka on tarkoitettu klustereiden käyttöön. Se tarjoaa korkean suorituskyvyn ja korkean käytettävyyden. Vaihtoehtoisesti voit myös liittää OCFS2-tiedostojärjestelmän itsenäiseen, ei-klusteroituun järjestelmään. OCFS2 mahdollistaa seuraavat edut:

Voit käyttää reflink-komentoa OCFS2:ssa luodaksesi copy-on-write -klooneja yksittäisistä tiedostoista. Voit myös käyttää cp --reflink -komentoa samalla tavalla kuin Btrfs-tiedostojärjestelmässä. Tällaiset kloonit auttavat säästämään levytilaa, kun tallennetaan useita samankaltaisia tiedostoja, kuten virtuaalikoneiden kuvia tai Linux-säiliöitä. Huomaa, että käytettäessä reflink-komentoa, tuloksena oleva tiedostojärjestelmä käyttäytyy alkuperäisten tiedostojen kloonina, mikä tarkoittaa, että niiden UUID:t ovat samat. Kun luot kloonin reflink-komennolla, sinun on muutettava UUID käyttämällä tunefs.ocfs2 -komentoa.

Liittämällä paikallinen OCFS2-tiedostojärjestelmä voit myöhemmin siirtää tiedostojärjestelmän klusteritiedostojärjestelmään ilman muunnosta. OCFS2 tarjoaa paikallisen tiedostojärjestelmän semantiikkaa, joten lähes kaikki sovellukset voivat käyttää sitä. Klusteritietoiset sovellukset voivat käyttää välimuistissa yhtenäistä rinnakkais-I/O:ta useista klusterisolmuista tasapainottaakseen toimintaa klusterin yli tai käyttää käytettävissä olevaa tiedostojärjestelmätoiminnallisuutta siirtyäkseen toiselle solmulle, jos jokin solmu epäonnistuu.

OCFS2:n käyttötapauksia ovat muun muassa:[muokkaa]

  • Kuormantasaus: Voit käyttää OCFS2-solmuja jakamaan resursseja asiakasjärjestelmien välillä. Esimerkiksi solmut voisivat jakaa jaetun tiedostojärjestelmän käyttämällä Sambaa tai NFS:ää. Palvelupyyntöjen jakamiseksi solmujen välillä voit käyttää round-robin DNS:ää, verkkokuormantasapainotinta tai määrittää, mitä solmua tulisi käyttää kullakin asiakkaalla.
  • Oracle Real Application Cluster -käyttötapaus: Oracle Real Application Cluster (RAC) käyttää omaa klusteripinoaan, Cluster Synchronization Services (CSS). Voit käyttää O2CB:ta yhdessä CSS:n kanssa, mutta huomaa, että kumpikin pino on konfiguroitu erikseen aikarajoituksille, solmuille ja muille klusteriasetuksille. Voit käyttää OCFS2:ta tiedostojen ja Oracle-klusterirekisterin (OCR) isäntänä, mutta grid-infrastruktuurin käyttäjän kotihakemisto on oltava paikallisessa tiedostojärjestelmässä kullakin solmulla.

Yksinkertainen esimerkki. Ocfs2:n asentaminen Debianiin[muokkaa]

Artikkeli soveltuu vain tietylle jakelulle vaikka sen tulisi käsitellä aihetta neutraalisti. Sitä tulisi muuttaa siirtämällä jakeluriippuvaiset yksityiskohdat Jakelukohtaista kappaleen alle - tai koko sivu kyseisen jakelun alasivuksi.

Tarvitaan 2 kpl palvelimia, virtuaalikoneetkin käy tähän esimerkkiin. Juuritiedostojärjestelmää ei voi jakaa, joten molemmissa palvelimissa pitää olla yksi ylimääräinen levy tai levyosio. Esimerkissä käytetään /dev/sdb5 -osiota

Muokataan /etc/hosts-tiedostoa molemmissa palvelimissa niin, että molemmat palvelimet löytyy sieltä:

sudo nano /etc/hosts

Lisää rivit/palvelimet:

192.168.1.201  esimerkkiservu-1.lan esimerkkiservu-1
192.168.1.202  esimerkkiservu-2.lan esimerkkiservu-2


Ocfs2 löytyy Debianin pakettivarastoista ja se asennetaan molempiin palvelimiin komennolla:

sudo apt install ocfs2-tools

Nämä komennot annetaan molemmissa palvelimissa. Luodaan klusteri:

sudo o2cb add-cluster esimerkkiklusteri

Nämä komennot annetaan molemmissa palvelimissa. Lisätään palvelimet klusteriin:

sudo o2cb add-node esimerkkiklusteri esimerkkiservu-1 --ip 192.168.1.201 --port 7777 --number 1
sudo o2cb add-node esimerkkiklusteri esimerkkiservu-2 --ip 192.168.1.202 --port 7777 --number 2

Nämä komennot annetaan molemmissa palvelimissa. Rekisteröidään klusteri:

sudo o2cb register-cluster esimerkkiklusteri command

Tarkistetaan klusterin asetustiedosto:

cat /etc/ocfs2/cluster.conf

Jos kaikki meni oikein sen pitäisi antaa seuraanvalainen tuloste:

cluster:
name = esimerkkiklusteri
heartbeat_mode = local
node_count = 2
node:
cluster = esimerkkiklusteri
number = 1
ip_port = 7777
ip_address = 192.168.1.201
name = esimerkkiservu-1
node:
cluster = esimerkkiklusteri
number = 2
ip_port = 7777
ip_address = 192.168.1.202
name = esimerkkiservu-2

HUOM! Debianin paketissa on bugi ja klusteri ei käynnisty ennenkuin teet pari manuaalista liitosta komennoilla. Tämä täytyy tehdä jokaisen käynnistyksen jälkeen, tai automatisoida se esimerkiksi crontabiin:

sudo mount -t ocfs2_dlmfs none /dlm && sudo sudo mount -t configfs none /config

Mikäli juuritiedostojärjestelmässä ei ole kansioita dlm ja config, voit luoda ne komennolla:

sudo mkdir /dlm && sudo mkdir /config


Tämän jälkeen klusteri voidaan käynnistää molemmissa palvelimissa komennolla:

sudo /etc/init.d/o2cb start

Toiminnan voi tarkistaa komennolla:

sudo /etc/init.d/o2cb status

Jonka pitäisi antaa seuraavankaltainen tuloste:


o2cb.service - LSB: Load O2CB cluster services at system boot.
Loaded: loaded (/etc/init.d/o2cb; generated)
Active: active (running) since Sat 2024-04-27 13:25:20 EEST; 3s ago
Docs: man:systemd-sysv-generator(8)
Process: 45895 ExecStart=/etc/init.d/o2cb start (code=exited, status=0/SUCCESS)
Tasks: 1 (limit: 9371)
Memory: 236.0K
CPU: 73ms
CGroup: /system.slice/o2cb.service
`-45942 o2hbmonitor
Apr 27 13:25:20 esimerkkiservu-1 systemd[1]: Starting o2cb.service - LSB: Load O2CB cluster services at system boot....
Apr 27 13:25:20 esimerkkiservu-1 o2cb[45895]: checking debugfs...
Apr 27 13:25:20 esimerkkiservu-1 o2cb[45895]: Loading stack plugin "o2cb": OK
Apr 27 13:25:20 esimerkkiservu-1 o2cb[45895]: Loading filesystem "ocfs2_dlmfs": OK
Apr 27 13:25:20 esimerkkiservu-1 o2cb[45895]: Mounting ocfs2_dlmfs filesystem at /dlm: OK
Apr 27 13:25:20 esimerkkiservu-1 o2cb[45895]: Setting cluster stack "o2cb": OK
Apr 27 13:25:20 esimerkkiservu-1 o2cb[45895]: Registering O2CB cluster "esimerkkiklusteri": OK
Apr 27 13:25:20 esimerkkiservu-1 o2cb[45895]: Setting O2CB cluster timeouts : OK
Apr 27 13:25:20 esimerkkiservu-1 o2hbmonitor[45942]: Starting
Apr 27 13:25:20 esimerkkiservu-1 systemd[1]: Started o2cb.service - LSB: Load O2CB cluster services at system boot..

Nyt voidaan molemmissa palvelimissa luoda ocfs2-tiedostojärjestelmä komennolla:

sudo mkfs.ocfs2 -b 4k -C 1M -N 2 -L jaettulevy /dev/sdb5

Jossa -b block size, -C cluster size, -N node count, -L label

Tämän jälkeen liitetään levy esimerkkikansioon komennolla:


sudo mount /dev/sdb5 /esimerkkikansio

Jonka jälkeen sitä voi käyttää kuten mitä tahansa muuta liitettyä levyä ja tallentaa tiedostoja ja nämä ovat reaaliaikaisesti käytössä molemmilla koneilla. Erittäin hyödyllinen esimerkiksi tietokannoissa, nfs/samba-servuissa ja virtuaalikoneiden tallennustilana.


Katso myös[muokkaa]