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 6. toukokuuta 2024 kello 10.33
, 6. toukokuuta 2024→Aiheesta muualla
(18 välissä olevaa versiota samalta käyttäjältä ei näytetä) | |||
Rivi 58: | Rivi 58: | ||
Asennetaan Debian SDK | Asennetaan Debian SDK | ||
sudo apt install devscripts build-essential dkms | sudo apt -y install devscripts build-essential dkms | ||
Asennetaan [https://sdkman.io/ SDKMAN] ja Linstorin vaatima uusin [https://gradle.org/ Gradle] sen avulla. | Asennetaan [https://sdkman.io/ SDKMAN] ja Linstorin vaatima uusin [https://gradle.org/ Gradle] sen avulla. | ||
SDKMAN: | SDKMAN: | ||
sudo apt install curl zip && curl -s "https://get.sdkman.io" | bash | sudo apt -y install curl zip && curl -s "https://get.sdkman.io" | bash | ||
Ja sen jälkeen Gradle: | Ja sen jälkeen Gradle: | ||
Rivi 189: | Rivi 189: | ||
linstor resource-group create homelabrg --storage-pool homelabpool --place-count 3 | linstor resource-group create homelabrg --storage-pool homelabpool --place-count 3 | ||
Luodaan looginen tallennustila: | Luodaan looginen tallennustila: | ||
Rivi 333: | Rivi 330: | ||
Jossa -b block size, -C cluster size, -N node count, -L label | Jossa -b block size, -C cluster size, -N node count, -L label | ||
Tiedostojärjestelmän luonnin jälkeen tehdään kaikissa palvelimissa /var/lib/one- kansio ja liitetään /dev/drbd1000 siihen seuraavalla komennolla: | Tiedostojärjestelmän luonnin jälkeen tehdään kaikissa palvelimissa /var/lib/one/datastores- kansio ja liitetään /dev/drbd1000 siihen seuraavalla komennolla: | ||
sudo mkdir /var/lib/one && sudo mount /dev/drbd1000 /var/lib/one | sudo mkdir -p /var/lib/one/datastores && sudo mount /dev/drbd1000 /var/lib/one/datastores | ||
Tarkistetaan lsblk -f komennolla: | Tarkistetaan lsblk -f komennolla: | ||
Rivi 351: | Rivi 348: | ||
Tulosteesta pitäisi löytyä jotakuinkin tälläinen rivi: | Tulosteesta pitäisi löytyä jotakuinkin tälläinen rivi: | ||
/dev/drbd1000 50G 0,1G 50G 1% /var/lib/one | /dev/drbd1000 50G 0,1G 50G 1% /var/lib/one/datastores | ||
Ja jos kaikki meni oikein niin linstorin tarkastuskomento: | Ja jos kaikki meni oikein niin linstorin tarkastuskomento: | ||
Rivi 444: | Rivi 441: | ||
sudo apt update && sudo apt -y install opennebula opennebula-sunstone opennebula-fireedge opennebula-gate opennebula-flow opennebula-provision opennebula-node-kvm docker-machine-opennebula | sudo apt update && sudo apt -y install opennebula opennebula-sunstone opennebula-fireedge opennebula-gate opennebula-flow opennebula-provision opennebula-node-kvm docker-machine-opennebula | ||
Lisätään asennuksen luoma oneadmin käyttäjä docker- | Lisätään asennuksen luoma oneadmin käyttäjä libvirt ja docker-ryhmiin | ||
sudo adduser oneadmin docker | sudo adduser oneadmin docker && sudo adduser oneadmin libvirt | ||
Vaihdetaan oneadmin-käyttäjäksi ja lisätään salasana: | Vaihdetaan oneadmin-käyttäjäksi ja lisätään salasana: | ||
Rivi 465: | Rivi 463: | ||
Koska osassa opennebulan paketeista on vielä tätä ohjetta kirjoitettaessa ristiriitaisuuksia Debian 12:n pakettien kanssa niin asennetaan pelkästään varmasti toimivat paketit näihin palvelimiin seuraavasti: | Koska osassa opennebulan paketeista on vielä tätä ohjetta kirjoitettaessa ristiriitaisuuksia Debian 12:n pakettien kanssa niin asennetaan pelkästään varmasti toimivat paketit näihin palvelimiin seuraavasti: | ||
sudo apt install augeas-tools libnbd-bin ruby-sqlite3 ipset rsync ruby jq vlan | |||
mkdir opennebula && cd opennebula | mkdir opennebula && cd opennebula | ||
wget https://downloads.opennebula.io/repo/6.8/Debian/11/pool/opennebula/opennebula-common_6.8.0-1_all.deb | wget https://downloads.opennebula.io/repo/6.8/Debian/11/pool/opennebula/opennebula-common_6.8.0-1_all.deb | ||
Rivi 473: | Rivi 471: | ||
Oneadmin-käyttäjälle täytyy luoda salasanaton [[ssh]]-kirjautuminen palvelimien välille ja sitten voidaan Debian 12 palvelimet lisätä Debian 11 hallintapaneelista virtuaalikoneisänniksi. | Oneadmin-käyttäjälle täytyy luoda salasanaton [[ssh]]-kirjautuminen palvelimien välille ja sitten voidaan Debian 12 palvelimet lisätä Debian 11 hallintapaneelista virtuaalikoneisänniksi. | ||
HUOM! Oneadmin kayttäjän kotikansio on /var/lib/one ja ssh tiedot myös tallentuu ja haetaan sieltä. isäntiä ei saa lisättyä control-nodeen ellei näistä sijainneista löytyviä ssh-avaimia luoda ja kopioida esim. [[scp]]:n avulla koneelta toiselle /var/lib/one/.ssh/authorized_keys tiedostoon. | |||
OpenNebula käyttää myös kansiota /var/tmp/one mutta asennuspaketti ei joka kerta sitä uudelle koneelle asennettaessa luo, joku bugi ilmeisesti, jolloin klusteri ei toimi. Siinä tapauksessa puuttuva /var/tmp/one kansio taytyy vain luoda [[mkdir]]-komennolla ja [[chown]]illa vaihtaa sen omistusoikeus oneadminille. | |||
==Huomiota== | ==Huomiota== | ||
Rivi 490: | Rivi 492: | ||
* Linstoria ajetaan tässä dual-primary moodissa ja äkillisen virtakatkoksen tai muun häiriön tapahtutuessa palvelinten uudelleenkäynnistyksen yhteydessä saattaa tapahtua nk. [https://www.google.com/search?q=split+brain+drbd&sca_esv=ee520a4c543f855e&sxsrf=ACQVn08x_CGXtg7oj1_8Cg7hJNlTDRbH9g%3A1714227872009&ei=oAotZrQLpY3A8A_v4JCoDg&udm=&oq=split+brain+dr&gs_lp=Egxnd3Mtd2l6LXNlcnAiDnNwbGl0IGJyYWluIGRyKgIIAjIIEAAYgAQYywEyCBAAGIAEG split-brain reaktio], joka tarkoittaa, että palvelin ei tiedä miltä koneelta tieto haetaan replikoitavaksi ja on haasteellista saada järjestelmä tästä virheestä toipumaan ilman uudelleenasennusta ja tietojen häviämistä. Joten etenkin tuotantokäytössä on syytä heti käyttöönoton jälkeen aloittaa [[crontab]]in ja vaikka [[rsync]]in avulla Linstorin DRBD-osion säännöllinen tiheä [[varmuuskopiointi]]. | * Linstoria ajetaan tässä dual-primary moodissa ja äkillisen virtakatkoksen tai muun häiriön tapahtutuessa palvelinten uudelleenkäynnistyksen yhteydessä saattaa tapahtua nk. [https://www.google.com/search?q=split+brain+drbd&sca_esv=ee520a4c543f855e&sxsrf=ACQVn08x_CGXtg7oj1_8Cg7hJNlTDRbH9g%3A1714227872009&ei=oAotZrQLpY3A8A_v4JCoDg&udm=&oq=split+brain+dr&gs_lp=Egxnd3Mtd2l6LXNlcnAiDnNwbGl0IGJyYWluIGRyKgIIAjIIEAAYgAQYywEyCBAAGIAEG split-brain reaktio], joka tarkoittaa, että palvelin ei tiedä miltä koneelta tieto haetaan replikoitavaksi ja on haasteellista saada järjestelmä tästä virheestä toipumaan ilman uudelleenasennusta ja tietojen häviämistä. Joten etenkin tuotantokäytössä on syytä heti käyttöönoton jälkeen aloittaa [[crontab]]in ja vaikka [[rsync]]in avulla Linstorin DRBD-osion säännöllinen tiheä [[varmuuskopiointi]]. | ||
==Viritysvinkkejä== | |||
*Useissa netistä löytyvissä ohjeissa suositellaan tai jopa käsketään konffata kahta verkkokorttia käyttäen. Siinä tietysti puolensa, koska helpompaa tehdä kahdella verkkoliitynnällä. Mutta vaikka asennetaan kaks verkkokorttia niin kannattaa bondata verkkoyhteydet ja [[vlan]]ia hyödyntäen niillä verkkoyhteydet koneille, niin on aina maksimit käytössä, eikä replikointi vie kaikkea kaistaa kotiverkossa olevilta muilta koneilta. | |||
*Klusterin nopeutta saa kasvatettua huomattavasti verkkokorttien [[Verkkoliitynnät_monipuolisemmin#Yhteysnopeuden_kasvattaminen_ryhmitt.C3.A4m.C3.A4ll.C3.A4|bondingilla]] ja/tai tietenkin 2,5Gbitin tai jopa 10 Gigan verkkokorteilla ja kytkimillä. | |||
*Toisekseen klusterin nopeutta saa kasvatettua paljon NVME-levyillä ja suurella määrällä RAM-muistia ja ajamalla niitä sovelluksia ja/tai virtuaalikoneita [[ramdisk]]issä jotka tarvitsevat paljon nopeutta/tehoa | |||
*Helppo ja halpa tapa kasvattaa nopeutta on tietysti rakentaa [[zpool]]-pakka [[RAIDZ]]-muotoon stripingiä hyödyntymällä, joka vastaa muiden tiedostojärjestelmien [[RAID]]0-tasoa. Tässä systeemissä on [[varmuuskopiointi]] aivan äärimmäisen tärkeää. Vaikka klusteri toimii ja DRBD-osioilta saa tiedot vaikka vain kaksi konetta olisi päällä niin kun menee tilttiin niin kaikki tieto on vaarassa hävitä. | |||
*OpenNebula control ja Linstor controlleria voi ajaa vaikka pöytäkoneella Docker-konteissa ja WakeOnLan:illa käynnistää klusterin koneet vain silloin ja sitä mukaa kun niitä tarvii, niin se näkyy kyllä kodin sähkölaskussa. Etenkin jos klusterissa on vaikka 8 kpl servereitä, kuten tämän artikkelin alkuperäisellä kirjoittajalla on artikkelin kirjoittamisen aikaan. | |||
==Aiheesta muualla== | ==Aiheesta muualla== | ||
Rivi 505: | Rivi 515: | ||
*[https://docs.opennebula.io/6.8/overview/opennebula_concepts/opennebula_overview.html OpenNebulan virallinen dokumentaatio (englanniksi)] | *[https://docs.opennebula.io/6.8/overview/opennebula_concepts/opennebula_overview.html OpenNebulan virallinen dokumentaatio (englanniksi)] | ||
*[https://computingforgeeks.com/install-opennebula-kvm-node-on-debian/ OpenNebula KVM-noden konfigurointi -ohje (englanniksi)] | *[https://computingforgeeks.com/install-opennebula-kvm-node-on-debian/ OpenNebula KVM-noden konfigurointi -ohje (englanniksi)] | ||
*[https://docs.opennebula.io/6.0/installation_and_configuration/containerized_deployment/architecture_deployment.html Frontend node Docker/Podman kontissa(englanniksi)] | |||
[[Luokka:Verkko]] | [[Luokka:Verkko]] |