Opennebula. Kratke bilješke

Opennebula. Kratke bilješke

Bok svima. Ovaj članak je napisan za one koji se još dvoume između odabira virtualizacijskih platformi i nakon čitanja članka iz serije “Instalirali smo proxmox i općenito je sve u redu, 6 godina rada bez ikakve pauze.” Ali nakon instaliranja jednog ili drugog rješenja izvan okvira, postavlja se pitanje: kako mogu ispraviti ovo ovdje, tako da praćenje bude razumljivije, a ovdje, za kontrolu sigurnosnih kopija…. A onda dođe vrijeme i shvatite da želite nešto funkcionalnije, ili želite da sve unutar vašeg sustava postane jasno, a ne ove crne kutije, ili želite koristiti nešto više od hipervizora i hrpe virtualnih strojeva. Ovaj će članak sadržavati neke misli i prakse temeljene na platformi Opennebula - izabrao sam je jer. nije zahtjevan za resurse i arhitektura nije toliko složena.

I tako, kao što vidimo, mnogi pružatelji usluga oblaka rade na kvm-u i uspostavljaju vanjske veze za kontrolu strojeva. Jasno je da veliki hosteri pišu vlastite okvire za infrastrukturu oblaka, na primjer isti YANDEX. Netko koristi openstack i na toj osnovi uspostavlja vezu - SELECTEL, MAIL.RU. Ali ako imate vlastiti hardver i malo osoblje stručnjaka, tada obično odaberete nešto gotovo - VMWARE, HYPER-V, postoje besplatne i plaćene licence, ali to nije ono o čemu sada govorimo. Razgovarajmo o entuzijastima - to su oni koji se ne boje ponuditi i isprobati nešto novo, unatoč činjenici da je tvrtka jasno rekla: "Tko će ovo servisirati nakon vas", "Hoćemo li to kasnije uvesti u proizvodnju ? Zastrašujuće." Ali ta rješenja možete prvo primijeniti na testnom stolu, pa ako se svima svidi, onda možete postaviti pitanje daljnjeg razvoja i korištenja u ozbiljnijim okruženjima.

Ovdje je i poveznica na izvješće www.youtube.com/watch?v=47Mht_uoX3A od aktivnog sudionika u razvoju ove platforme.

Možda će u ovom članku nešto biti suvišno i već razumljivo iskusnom stručnjaku, au nekim slučajevima neću sve opisati jer su slične naredbe i opisi dostupni na Internetu. Ovo je samo moje iskustvo s ovom platformom. Nadam se da će aktivni sudionici u komentarima dodati što bi se moglo učiniti bolje i koje sam pogreške napravio. Sve akcije odvijale su se na kućnom štandu koji se sastojao od 3 računala različitih karakteristika. Također, nisam posebno naveo kako ovaj softver radi i kako ga instalirati. Ne, samo administrativno iskustvo i problemi na koje sam naišao. Možda će ovo biti korisno nekome u njihovom izboru.

Dakle, počnimo. Kao administratoru sustava važne su mi sljedeće točke bez kojih vjerojatno neću koristiti ovo rješenje.

1. Ponovljivost ugradnje

Ima puno uputa za instalaciju opennebule, ne bi trebalo biti problema. Od verzije do verzije pojavljuju se nove značajke koje neće uvijek raditi kada prelazite s verzije na verziju.

2. Praćenje

Pratit ćemo sam čvor, kvm i opennebula. Srećom, već je spreman. Postoji puno opcija za nadgledanje Linux hostova, isti Zabbix ili node exporter - kako kome više odgovara - trenutno to definiram kao nadgledanje metrike sustava (temperatura gdje se može mjeriti, konzistentnost diskovnog polja), preko zabbixa , a što se tiče prijava preko Prometheus exportera. Za kvm nadzor, na primjer, možete uzeti projekt github.com/zhangjianweibj/prometheus-libvirt-exporter.git i namjesti da radi preko systemd-a, radi dosta dobro i pokazuje kvm metrics, ima i gotova nadzorna ploča grafana.com/grafana/dashboards/12538.

Na primjer, evo moje datoteke:

/etc/systemd/system/libvirtd_exporter.service
[Unit]
Description=Node Exporter

[Service]
User=node_exporter
ExecStart=/usr/sbin/prometheus-libvirt-exporter --web.listen-address=":9101"

[Install]
WantedBy=multi-user.target

I tako imamo 1 izvoznika, treba nam drugi da prati samu opennebulu, koristio sam ovo github.com/kvaps/opennebula-exporter/blob/master/opennebula_exporter

Može se dodati normalnom čvor_izvoznik za praćenje sustava na sljedeće.

U datoteci node_exporter mijenjamo početak ovako:

ExecStart=/usr/sbin/node_exporter --web.listen-address=":9102" --collector.textfile.directory=/var/lib/opennebula_exporter/textfile_collector

Stvorite direktorij mkdir -p /var/lib/opennebula_exporter

bash skripta prikazana gore, prvo provjeravamo rad kroz konzolu, ako pokazuje što nam treba (ako daje grešku, onda instalirajte xmlstarlet), kopirajte je u /usr/local/bin/opennebula_exporter.sh

Dodajte cron zadatak za svaku minutu:

*/1 * * * * (/usr/local/bin/opennebula_exporter.sh > /var/lib/opennebula_exporter/textfile_collector/opennebula.prom)

Počele su se pojavljivati ​​metrike, možete ih uzeti kao prometeja i graditi grafikone i slati upozorenja. U Grafani možete nacrtati, na primjer, tako jednostavnu kontrolnu ploču.

Opennebula. Kratke bilješke

(jasno je da ovdje preterujem cpu, ram)

Za one koji vole i koriste Zabbix, postoji github.com/OpenNebula/addon-zabbix

Što se tiče monitoringa, glavno je da ga ima. Naravno, možete dodatno koristiti ugrađene alate za praćenje virtualnog stroja i uploadati podatke na naplatu, ovdje svatko ima svoju viziju, nisam još pobliže počeo raditi na tome.

Nisam još stvarno počeo bilježiti. Najjednostavnija opcija je dodati td-agent za analizu /var/lib/one direktorija s regularnim izrazima. Na primjer, datoteka sunstone.log odgovara nginx regexpu i drugim datotekama koje prikazuju povijest pristupa platformi - koja je prednost ovoga? Pa, na primjer, možemo eksplicitno pratiti broj "Greška, greška" i brzo pratiti gdje i na kojoj razini postoji kvar.

3. Sigurnosne kopije

Ima i plaćenih odrađenih projekata - npr. sep wiki.sepsoftware.com/wiki/index.php/4_4_3_Tigon:OpenNebula_Backup. Ovdje moramo razumjeti da jednostavno sigurnosno kopiranje slike stroja nije uopće isto u ovom slučaju, jer naši virtualni strojevi moraju raditi s potpunom integracijom (ista kontekstna datoteka koja opisuje mrežne postavke, naziv vm-a i prilagođene postavke za vaše aplikacije) . Stoga ovdje odlučujemo što i kako ćemo sigurnosno kopirati. U nekim slučajevima bolje je napraviti kopije onoga što se nalazi u samoj vm. A možda trebate sigurnosno kopirati samo jedan disk s određenog stroja.

Na primjer, utvrdili smo da svi strojevi počinju s postojanim slikama, dakle, nakon čitanja docs.opennebula.io/5.12/operation/vm_management/img_guide.html

To znači da prvo možemo prenijeti sliku s našeg vm-a:

onevm disk-saveas 74 3 prom.qcow2
Image ID: 77

Смотрим, под каким именем он сохранился

oneimage show 77
/var/lib/one//datastores/100/f9503161fe180658125a9b32433bf6e8
   
И далее копируем куда нам необходимо. Конечно, так себе способ. Просто хотел показать, что используя инструменты opennebula можно строить подобные решения.

Našao sam i na internetu zanimljiv izvještaj i ima još toga tako otvoren projekt, ali postoji samo pohrana za qcow2.

Ali kao što svi znamo, prije ili kasnije dođe vrijeme kada želite inkrementalne sigurnosne kopije, ovdje je teže i možda će uprava izdvojiti novac za plaćeno rješenje ili će ići drugim putem i shvatiti da ovdje samo režemo resurse, i pravljenje sigurnosnih kopija na razini aplikacije i dodavanje brojnih novih čvorova i virtualnih strojeva - da, ovdje, govorim da korištenje oblaka isključivo za pokretanje klastera aplikacija i pokretanje baze podataka na drugoj platformi ili uzimanje gotove od dobavljača, ako je moguće.

4. Jednostavnost korištenja

U ovom odlomku opisat ću probleme na koje sam naišao. Na primjer, prema slikama, kao što znamo, postoji trajna - kada se ova slika montira na vm, svi podaci se zapisuju na ovu sliku. A ako nije postojana, slika se kopira u pohranu, a podaci se zapisuju u ono što je kopirano s izvorne slike - ovako funkcioniraju predlošci predložaka. Više puta sam sebi stvarao probleme zaboravljajući navesti persistent i slika od 200 GB je kopirana, problem je što se ova procedura sigurno ne može otkazati, morate otići do čvora i ubiti trenutni “cp” proces.

Jedan od važnih nedostataka je da ne možete poništiti radnje jednostavnim korištenjem GUI-ja. Ili bolje rečeno, poništit ćeš ih i vidjeti da se ništa ne događa i opet ćeš ih pokrenuti, poništiti i zapravo će već biti 2 cp procesa koji kopiraju sliku.

A onda dolazi do razumijevanja zašto opennebula svaku novu instancu označava novim ID-om, na primjer, u istom proxmoxu je kreirao vm s ID-om 101, izbrisao ga, zatim ga ponovno stvorite i ID-om 101. U opennebuli se to neće dogoditi, svaka nova instanca bit će kreirana s novim ID-om i to ima svoju logiku - na primjer, brisanje starih podataka ili neuspješne instalacije.

Isto vrijedi i za pohranu; prije svega, ova platforma je usmjerena na centraliziranu pohranu. Postoje dodaci za korištenje lokalnog, ali to nije ono o čemu govorimo u ovom slučaju. Mislim da će u budućnosti netko napisati članak o tome kako su uspjeli koristiti lokalnu pohranu na čvorovima i uspješno je koristiti u proizvodnji.

5. Maksimalna jednostavnost

Naravno, što dalje idete, sve je manje onih koji će vas razumjeti.

U uvjetima mog postolja - 3 čvora s nfs pohranom - sve radi dobro. Ali ako provodimo eksperimente koji uključuju nestanak struje, na primjer, kada pokrećemo snimku i isključimo napajanje čvora, spremamo postavke u bazu podataka da snimka postoji, ali je zapravo nema (dobro, svi razumijemo da u početku je napisao bazu podataka o ovoj akciji u sql, ali sama operacija nije bila uspješna). Prednost je što se prilikom izrade snapshota formira zasebna datoteka i postoji "roditelj", stoga u slučaju problema, čak i ako ne radi kroz gui, možemo pokupiti datoteku qcow2 i zasebno je vratiti docs.opennebula.io/5.8/operation/vm_management/vm_instances.html

Na mrežama, nažalost, nije sve tako jednostavno. Pa, barem je lakše nego u openstacku, koristio sam samo vlan (802.1Q) - radi prilično dobro, ali ako promijenite postavke iz predloške mreže, tada se te postavke neće primijeniti na već pokrenute strojeve, tj. trebate izbrisati i dodati mrežnu karticu, tada će se primijeniti nove postavke.

Ako ga još uvijek želite usporediti s openstackom, onda možete reći ovo: u opennebuli nema jasne definicije koje tehnologije koristiti za pohranjivanje podataka, upravljanje mrežom, resursima - svaki administrator odlučuje za sebe što mu više odgovara.

6. Dodatni dodaci i instalacije

Uostalom, kako mi razumijemo, platforma u oblaku može upravljati ne samo kvm, već i vmware esxi. Nažalost, nisam imao bazen s Vcentrom, ako je netko pokušao, neka napiše.

Navedena je podrška za druge pružatelje usluga oblaka docs.opennebula.io/5.12/advanced_components/cloud_bursting/index.html
AWS, AZURE.

Također sam pokušao povezati Vmware Cloud iz Selectela, ali ništa nije uspjelo - općenito je blokiran jer postoji mnogo čimbenika i nema smisla pisati tehničkoj podršci davatelja usluga hostinga.

Također, sada nova verzija ima firecracker - ovo je lansiranje microvm-a, vrste kvm harnessa preko dockera, koji daje još više svestranosti, sigurnosti i povećane produktivnosti jer nema potrebe za rasipanjem resursa na emulirajuću opremu. Jedina prednost koju vidim u odnosu na Docker je ta što ne zauzima dodatni broj procesa i nema zauzetih utičnica kada se koristi ova emulacija, tj. Sasvim je moguće koristiti ga kao balanser opterećenja (ali vjerojatno vrijedi napisati poseban članak o tome dok u potpunosti ne provedem sve testove).

7. Pozitivno iskustvo korištenja i otklanjanja pogrešaka

Htio sam podijeliti svoja zapažanja o radu, nešto sam opisao gore, želio bih napisati više. Doista, vjerojatno nisam jedini koji na prvu pomisli da ovo nije pravi sustav i općenito je sve ovdje štaka - kako uopće funkcioniraju s ovim? Ali onda dolazi do razumijevanja da je sve sasvim logično. Naravno, ne možete svima ugoditi i neki aspekti zahtijevaju poboljšanja.

Na primjer, jednostavna operacija kopiranja slike diska iz jednog skladišta podataka u drugo. U mom slučaju, postoje 2 čvora s nfs-om, šaljem sliku - kopiranje se događa kroz frontend opennebula, iako smo svi navikli na činjenicu da se podaci trebaju kopirati izravno između hostova - u istom vmware-u, hyper-v smo navikli na ovo, ali ovdje na drugo. Postoji drugačiji pristup i drugačija ideologija, au verziji 5.12 su uklonili gumb “migrate to datastore” - prenosi se samo sam stroj, ali ne i pohrana jer znači centralizirano skladištenje.

Sljedeća je popularna pogreška s različitim razlozima: "Pogreška pri implementaciji virtualnog stroja: Nije moguće stvoriti domenu iz /var/lib/one//datastores/103/10/deployment.5" Ispod je glavna stvar koju treba pogledati.

  • Prava na slike za oneadmin korisnika;
  • Dopuštenja za oneadmin korisnika za pokretanje libvirtd;
  • Je li pohrana podataka ispravno montirana? Idi i provjeri stazu na samom čvoru, možda je nešto otpalo;
  • Neispravno konfigurirana mreža, odnosno na frontendu je u mrežnim postavkama da je glavno sučelje za vlan br0, ali na čvoru piše kao bridge0 - mora biti isto.

sistemska pohrana podataka pohranjuje metapodatke za vaš vm, ako pokrenete vm s trajnom slikom, tada vm mora imati pristup inicijalno stvorenoj konfiguraciji na pohrani gdje ste kreirali vm - ovo je vrlo važno. Stoga, kada prenosite vm u drugu pohranu podataka, trebate sve još jednom provjeriti.

8. Dokumentacija, zajednica. Daljnji razvoj

I ostalo, dobra dokumentacija, zajedništvo i ono glavno da projekt nastavi živjeti i u budućnosti.

Općenito, sve je prilično dobro dokumentirano i čak i korištenjem službenog izvora neće biti problem instalirati i pronaći odgovore na pitanja.

Zajednica, aktivna. Objavljuje mnoga gotova rješenja koja možete koristiti u svojim instalacijama.

Trenutno su se neke politike u tvrtki promijenile od 5.12 forum.opennebula.io/t/towards-a-stronger-opennebula-community/8506/14 Bit će zanimljivo vidjeti kako će se projekt razvijati. Na početku sam posebno istaknuo neke od dobavljača koji koriste njihova rješenja i što industrija nudi. Naravno, nema jasnog odgovora što koristiti. Ali za manje organizacije, održavanje njihovog malog privatnog oblaka možda nije tako skupo kao što se čini. Glavna stvar je znati točno što vam je potrebno.

Kao rezultat toga, bez obzira na to što odaberete kao cloud sustav, ne biste se trebali zaustaviti na jednom proizvodu. Ako imate vremena, vrijedi pogledati druga otvorenija rješenja.

Dobar je razgovor t.me/opennebula Aktivno pomažu i ne šalju vas da tražite rješenje problema na Googleu. Pridruži nam se.

Izvor: www.habr.com

Dodajte komentar