Ero sivun ”Debian homelab(opennebula, drbd, linstor ja ocfs2)” versioiden välillä
Siirry navigaatioon
Siirry hakuun
Debian homelab(opennebula, drbd, linstor ja ocfs2) (muokkaa)
Versio 27. huhtikuuta 2024 kello 23.56
, 27. huhtikuuta 2024→OCFS2-tiedostojärjestelmän asennus ja käyttöönotto
Ei muokkausyhteenvetoa |
|||
(38 välissä olevaa versiota samalta käyttäjältä ei näytetä) | |||
Rivi 13: | Rivi 13: | ||
== Ohjelmistovaatimukset == | == Ohjelmistovaatimukset == | ||
* 1 kpl Debian 11 tuoreella minimaalisella asennuksella. Tämä palvelin toimii sekä osana klusteria, että käyttöliittymänä ja hallitsee muita klusterissa olevia palvelimia ja palveluita. | * 1 kpl (controlnode)Debian 11 tuoreella minimaalisella asennuksella. Tämä palvelin toimii sekä osana klusteria, että käyttöliittymänä ja hallitsee muita klusterissa olevia palvelimia ja palveluita. | ||
* 2 kpl Debian 12 tuoreella minimaalisella asennuksella. | * 2 kpl(node 1 ja 2) Debian 12 tuoreella minimaalisella asennuksella. | ||
Tässä ohjeessa emme käy [[Debian]]in perusasennusta läpi, koska se onnistuakseen tässä pitää osata asentaa Debian ja tietää myös muita peruskäsitteitä Debianista ja Linux-järjestelmästä yleisesti. | Tässä ohjeessa emme käy [[Debian]]in perusasennusta läpi, koska se onnistuakseen tässä pitää osata asentaa Debian ja tietää myös muita peruskäsitteitä Debianista ja Linux-järjestelmästä yleisesti. | ||
Rivi 28: | Rivi 28: | ||
192.168.1.200 control.lan control | 192.168.1.200 control.lan control | ||
192.168.1.201 node-1.lan node-1 | 192.168.1.201 node-1.lan node-1 | ||
192.168.1.202 | 192.168.1.202 node-2.lan node-2 | ||
Poistutaan ctrl+x | Poistutaan ctrl+x | ||
Rivi 43: | Rivi 43: | ||
Luodaan varanto tulosteesta saadusta disk-id:stä | Luodaan varanto tulosteesta saadusta disk-id:stä | ||
Debian 11: | |||
sudo zpool create controltank <disk-id> | |||
Debian 12 node-1 | |||
sudo zpool create nodetank1 <disk-id> | |||
Debian 12 node-2 | |||
sudo zpool create nodetank2 <disk-id> | |||
== Asennetaan [[DRBD]] ja [[Linstor]] == | |||
Debianin pakettivarastoista ei löydy Linstoria, eikä sen vaatimaa DRBD 9 versiota, pelkästään version nro 8 löytyy, eikä se tue kuin kahta palvelinta, eikä myöskään Linstor tue kasiversiota. Joten käännämme tarvittavat paketit Ubuntun PPA:sta löytyvistä paketeista. | |||
Nämä pitää tehdä Debian 11 koneella ja toisella Debian 12 koneella, valmiit .deb paketit voi kopioida ja asentaa käännöskoneena käytetyltä Debian 12 koneelta toiselle. | |||
Asennetaan Debian SDK | |||
sudo apt install devscripts build-essential dkms | |||
Asennetaan [https://sdkman.io/ SDKMAN] ja Linstorin vaatima uusin [https://gradle.org/ Gradle] sen avulla. | |||
SDKMAN: | |||
curl -s "https://get.sdkman.io" | bash | |||
Ja sen jälkeen Gradle: | |||
sdk install gradle 8.7 | |||
'''HUOM! Tässä ohjeessa haetaan uusimmat ohjeen kirjoittamisen aikaan(27.4.2024) olleet dsc:t. Linbitin PPA:sta poistuu vanhoja ja uusia tulee tilalle melko usein, joten ei kannata tästä suoraan copypeistata, vaan hakea uusimmat dsc:t täältä: [https://launchpad.net/~linbit/+archive/ubuntu/linbit-drbd9-stack/+packages Linbit/Ubuntu PPA DRBD9 stack] ''' | |||
Luodaan kansiot ja haetaan Ubuntun PPA:sta dsc-tiedot: | |||
cd ~ && mkdir drbd && mkdir drbd-utils && mkdir -p linstor/server && mkdir -p linstor/client && mkdir -p linstor/python && mkdir drbd-linstor-debs | |||
Kernelin tarvitsema DRBD-moduuli: | |||
cd drbd && dget --extract --allow-unauthenticated https://launchpad.net/~linbit/+archive/ubuntu/linbit-drbd9-stack/+sourcefiles/drbd/9.2.9~rc.1-1ppa1~jammy1/drbd_9.2.9~rc.1-1ppa1~jammy1.dsc | |||
cd drbd-9.2.9~rc.1 && sudo mk-build-deps --install --remove && dpkg-buildpackage --build=binary --no-sign && cd .. | |||
mv drbd-dkms*.deb drbd-ueficert*.deb ~/drbd-linstor-debs/ && cd .. | |||
Käyttöjärjestelmän tarvitsema drbd-utils paketti: | |||
cd drbd-utils && dget --extract --allow-unauthenticated https://launchpad.net/~linbit/+archive/ubuntu/linbit-drbd9-stack/+sourcefiles/drbd-utils/9.28.0~rc.1-1ppa1~jammy1/drbd-utils_9.28.0~rc.1-1ppa1~jammy1.dsc | |||
cd drbd-utils-9.28.0~rc.1 && sudo mk-build-deps --install --remove && dpkg-buildpackage --build=binary --no-sign && cd .. | |||
mv drbd-utils*.deb ~/drbd-linstor-debs/ && cd .. | |||
Linstor server paketit: | |||
cd linstor/server && dget --extract --allow-unauthenticated https://launchpad.net/~linbit/+archive/ubuntu/linbit-drbd9-stack/+sourcefiles/linstor-server/1.27.0-1ppa1~jammy1/linstor-server_1.27.0-1ppa1~jammy1.dsc | |||
cd linstor-server-1.27.0 | |||
nano debian/control | |||
Muutetaan Build-Dependseistä | |||
gradle (>=4.4.1-13) | |||
Tallennetaan ja poistutaan ctrl+x | |||
sudo mk-build-deps --install --remove && dpkg-buildpackage --build=binary --no-sign && cd .. | |||
mv linstor*.deb ~/drbd-linstor-debs/ && cd .. | |||
Linstor client paketti: | |||
cd client && dget --extract --allow-unauthenticated https://launchpad.net/~linbit/+archive/ubuntu/linbit-drbd9-stack/+sourcefiles/linstor-client/1.22.0-1ppa1~jammy1/linstor-client_1.22.0-1ppa1~jammy1.dsc | |||
cd linstor-client-1.22.0 && sudo mk-build-deps --install --remove && dpkg-buildpackage --build=binary --no-sign && cd .. | |||
mv linstor*.deb ~/drbd-linstor-debs/ && cd .. | |||
Linstor python paketti: | |||
cd python && dget --extract --allow-unauthenticated https://launchpad.net/~linbit/+archive/ubuntu/linbit-drbd9-stack/+sourcefiles/python-linstor/1.22.0-1ppa1~jammy1/python-linstor_1.22.0-1ppa1~jammy1.dsc | |||
cd python-linstor-1.22.0 && sudo mk-build-deps --install --remove && dpkg-buildpackage --build=binary --no-sign && cd .. | |||
mv python-linstor*.deb ~/drbd-linstor-debs/ && cd ~/drbd-linstor-debs/ | |||
Asennetaan riippuvuudet ja käännetyt paketit: | |||
sudo apt install python3-natsort && sudo dpkg -i *.deb | |||
Paketit asentuvat yleensä puhtaaseen Debian-asennukseen, mutta jos on tehty pienikin muokkaus niin häiriöitä voi esiintyä. Jos paketit eivät asennu ilman erroreita niin komento: | |||
sudo reboot | |||
Ja pakettien uudelleenasennus: | |||
cd ~/drbd-linstor-debs/ && sudo dpkg -i *.deb | |||
Jos vieläkään ei asennu niin komento: | |||
sudo dmesg | |||
Myös /var/log-tiedoston tutkiminen voi auttaa. Jos mikään ei auta niin paketit verkkolevylle tai muistitikulle talteen ja Debianin uudelleenasennus ja sitten pakettien asennus "puhtaaseen tauluun". | |||
== Luodaan DRBD/Linstor klusteri == | |||
'''Huom! Nämä komennot annetaan AINOASTAAN Debian 11 control-koneessa.''' | |||
Käynnistetään ja kytketään linstor-controller päälle: | |||
sudo systemctl enable --now linstor-controller | |||
Lisätään palvelimet klusteriin: | |||
linstor node create control 192.168.1.200 --node-type combined | |||
linstor node create node-1 192.168.1.201 | |||
linstor node create node-1 192.168.1.202 | |||
Komennolla: | |||
linstor node list | |||
Tulostuu seuraavaa: | |||
{| class="wikitable" | |||
|- | |||
! Node !! NodeType !! Addresses !! State | |||
|- | |||
| control || COMBINED || 192.168.1.200:3366 (PLAIN) || Online | |||
|- | |||
| node-1 || SATELLITE || 192.168.1.201:3366 (PLAIN) || Online | |||
|- | |||
| node-2 || SATELLITE || 192.168.1.202:3366 (PLAIN) || Online | |||
|} | |||
Luodaan tallennusvaranto: | |||
linstor storage-pool create zfs control homelabpool controltank | |||
linstor storage-pool create zfs node-1 homelabpool nodetank1 | |||
linstor storage-pool create zfs node-2 homelabpool nodetank2 | |||
Komennolla: | |||
linstor storage-pool list | |||
Tulostuu jotakuinkin seuraavaa: | |||
{| class="wikitable" | |||
|- | |||
! StoragePool !! Node !! Driver !! PoolName !! FreeCapacity !! TotalCapacity !! CanSnapshots !! State !! SharedName | |||
|- | |||
| DfltDisklessStorPool || control || DISKLESS || || || || False || Ok || control;DfltDisklessStorPool | |||
|- | |||
| DfltDisklessStorPool || node-1 || DISKLESS || || || || False || Ok || node-1;DfltDisklessStorPool | |||
|- | |||
| DfltDisklessStorPool || node-2 || DISKLESS || || || || False || Ok || node-2;DfltDisklessStorPool | |||
|- | |||
| homelabpool || control || ZFS || controltank || 50.00 GiB || 50.00 GiB || True || Ok || control;homelabpool | |||
|- | |||
| homelabpool || node-1 || ZFS || nodetank1 || 50.00 GiB || 50.00 GiB || True || Ok || node-1;homelabpool | |||
|- | |||
| homelabpool || node-2 || ZFS || nodetank2 || 50.00 GiB || 50.00 GiB || True || Ok || node-2;homelabpool | |||
|- | |||
|} | |||
Luodaan resurssiryhmä ja määritellään tallennustila sille: | |||
linstor resource-group create homelabrg --storage-pool homelabpool --place-count 3 | |||
Luodaan volume-ryhmä: | |||
linstor volume-group create homelabrg | |||
Luodaan looginen tallennustila: | |||
linstor resource-definition create homelabdisk0 | |||
linstor volume-definition create homelabdisk0 40G | |||
linstor resource create control homelabdisk0 --storage-pool homelabpool | |||
linstor resource create node-1 homelabdisk0 --storage-pool homelabpool | |||
linstor resource create node-1 homelabdisk0 --storage-pool homelabpool | |||
Tarkistuskomento: | |||
linstor resource-definition list | |||
Tulostaa jotakuinkin seuraavaa: | |||
{| class="wikitable" | |||
|- | |||
! ResourceName !! Port !! ResourceGroup !! State | |||
|- | |||
| homelabdisk0 || 7000 || DfltRscGrp || ok | |||
|- | |||
|} | |||
Ja jos kaikki meni oikein niin tarkastuskomento: | |||
linstor resource list | |||
Tulostaa jotakuinkin seuraavaa: | |||
{| class="wikitable" | |||
|- | |||
! ResourceName !! Node !! Port !! Usage !! Conns !! State !! CreatedON | |||
|- | |||
| homelabdisk0 || control || || Unused || Ok || UpToDate || 2024-04-26 17:55:13 | |||
|- | |||
| homelabdisk0 || node-1 || || Unused || Ok || UpToDate || 2024-04-26 17:58:13 | |||
|- | |||
| homelabdisk0 || node-2 || || Unused || Ok || UpToDate || 2024-04-26 17:59:13 | |||
|} | |||
Seuraavaksi sallitaan kaikkien klusterin palvelinten liittää samanaikaisesti Linstorin luoma jaettu /dev/drbd1000 resurssi: | |||
linstor controller drbd-options --allow-two-primaries yes | |||
'''<big>Huom! Tuota yllämainittua komentoa/ominaisuutta ei voi käyttää kuin [[Ocfs2]] ja [[GFS2]] tiedostojärjestelmien kanssa. Muilla(esim. [[ext4]] tai [[btrfs]] )järjestelmä vikaantuu pahasti.</big>''' | |||
== OCFS2-tiedostojärjestelmän asennus ja käyttöönotto == | |||
Seuraavat komennot annetaan jälleen kaikissa kolmessa palvelimessa. | |||
Asennetaan komennolla: | |||
sudo apt install ocfs2-tools | |||
Luodaan klusteri: | |||
sudo o2cb add-cluster homelabcluster | |||
Lisätään palvelimet klusteriin: | |||
sudo o2cb add-node homelabcluster control --ip 192.168.1.200 --port 7777 --number 0 | |||
sudo o2cb add-node homelabcluster node-1 --ip 192.168.1.201 --port 7777 --number 1 | |||
sudo o2cb add-node homelabcluster node-2 --ip 192.168.1.202 --port 7777 --number 2 | |||
Rekisteröidään klusteri: | |||
sudo o2cb register-cluster homelabcluster | |||