Debian homelab(opennebula, drbd, linstor ja ocfs2)
Tässä luodaan kolmen Debian 11/12 palvelimen homelab ja/tai testiklusteri.
Laitteistovaatimukset
Jokaisessa 3:ssa koneessa tulee minimissään löytyä seuraavat ominaisuudet:
- 4GB RAM
- 2 ytiminen prosessori(suositeltava minimi 4 ydintä) ja valmistajasta riippuen VT-x tai AMD-V ominaisuudella
- 1 kpl kiintolevy 10GB (/dev/sda), jossa juuriosio ja johon on asennettu käyttöjärjestelmä
- 1 kpl kiintolevy 50GB (/dev/sdb), joka liitetään klusterin yhteiseksi levyksi
- 1 kpl Gigabitin verkkokortti RJ-45
Laittistovaatimuksille ei perinteisesti ole ylärajaa. Edellämainitut ominaisuudet siis minimi vaatimukset ja mitä tehokkaampi laitteisto käytössä, sitä sulavammin ohjelmisto toimii.
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.
- 2 kpl Debian 12 tuoreella minimaalisella asennuksella.
Tässä ohjeessa emme käy Debianin 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.
Seuraavat toimenpiteet tehdään jokaisessa klusterin palvelimessa.
Muokataan /etc/hosts- tiedosto
sudo nano /etc/hosts
Lisätään rivit:
192.168.1.200 control.lan control 192.168.1.201 node-1.lan node-1 192.168.1.202 node-2.lan node-2
Poistutaan ctrl+x
Asennetaan ZFS -tiedostojärjestelmä
sudo apt install apt linux-headers-amd64 zfsutils-linux zfs-dkms zfs-zed
Luodaan zpool looginen varanto
Haetaan /dev/sdb:n disk-id
ls -lh /dev/disk/by-id/
Luodaan varanto tulosteesta saadusta disk-id:stä
sudo zpool create homelabpool <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 SDKMAN ja Linstorin vaatima uusin Gradle sen avulla.
SDKMAN:
curl -s "https://get.sdkman.io" | bash
Ja sen jälkeen Gradle:
sdk install gradle 8.7
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/
To be continued ....