Ocfs2
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:
- 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
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.201 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..