
Hej alle sammen. Denne artikel er skrevet til dem, der stadig er i tvivl om valg af virtualiseringsplatform og efter at have lĂŠst artiklen i serien "Vi satte proxmox op, og alt kĂžrer fint, 6 Ă„rs oppetid uden nedbrud". Men efter installation af en eller anden lĂžsning, opstĂ„r spĂžrgsmĂ„let: hvordan kan vi justere her og der for at gĂžre overvĂ„gningen mere forstĂ„elig, og her for at kontrollere backups... Og sĂ„ kommer tiden, hvor man indser, at man Ăžnsker noget mere funktionelt, eller man Ăžnsker, at alting inden for ens system skal vĂŠre klart, i stedet for at det ligner en sort kasse, eller man Ăžnsker at bruge noget, der er mere end en hypervisor med en masse virtuelle maskiner. I denne artikel vil der vĂŠre lidt refleksioner og praksis baseret pĂ„ platformen Opennebula â jeg har valgt den, da den ikke stiller store krav til ressourcerne, og arkitekturen ikke er sĂ„ kompleks.
SĂ„ som vi ser, arbejder mange cloud-udbydere pĂ„ KVM og laver eksterne bindings for at administrere maskiner. Det er klart, at store hostingfirmaer skriver deres bindings til cloud-infrastrukturen, som f.eks. YANDEX. Nogle bruger OpenStack og laver bindings baseret pĂ„ det â SELECTEL, MAIL.RU. Men hvis du har dit eget udstyr og et lille team af specialister, vĂŠlger man typisk noget fra de fĂŠrdige lĂžsninger â VMWARE, HYPER-V, der er gratis og betalte licenser, men det handler ikke om det lige nu. Lad os tale om entusiaster â dem, der ikke er bange for at foreslĂ„ og prĂžve nye ting, pĂ„ trods af at firmaet tydeligt har givet udtryk for: "Hvem skal sĂ„ vedligeholde det efter dig?" "Skal vi virkelig implementere dette i produktion? Det lyder skrĂŠmmende." Men man kan jo starte med at anvende disse lĂžsninger i testmiljĂžer, og hvis alle er tilfredse, kan man rejse spĂžrgsmĂ„let om videre udvikling og brug i mere seriĂžse omgivelser.
Her er ogsÄ et link til oplÊgget fra en aktiv deltager i udviklingen af denne platform.
MÄske vil der vÊre noget overflÞdigt i denne artikel, som allerede er klart for en erfaren specialist, og i nogle tilfÊlde vil jeg ikke beskrive alt, da sÄdanne kommandoer og beskrivelser findes pÄ nettet. Her er kun min erfaring med denne platform. Jeg hÄber, at aktive deltagere vil tilfÞje i kommentarerne, hvad der kan gÞres bedre, og hvilke fejl jeg har begÄet. Alle handlinger blev udfÞrt under forholdene for et hjemmeopsÊt, bestÄende af 3 pc'er med forskellige specifikationer. Jeg har desuden bevidst undladt at angive, hvordan denne software fungerer og hvordan man installerer den. Nej, kun erfaring med administration og de problemer, jeg har stÞdt pÄ. MÄske kan det vÊre nyttigt for nogen i deres valg.
SĂ„ lad os komme i gang. For mig som systemadministrator er fĂžlgende punkter vigtige, uden hvilke jeg nĂŠppe vil bruge denne lĂžsning.
1. Gentagelighed af installation
Der er masser af installationsvejledninger til OpenNebula, sÄ der burde ikke opstÄ problemer. Fra version til version kommer der nye funktioner, som ikke altid kan fungere, nÄr man opgraderer fra en version til en anden.
2. OvervÄgning
Vi vil overvĂ„ge selve noden, KVM og OpenNebula. Heldigvis er der allerede noget, der er klar. Der er mange muligheder for overvĂ„gning af Linux-hosts, for eksempel Zabbix eller Node Exporter â hvad der nu passer bedst til den enkelte â pĂ„ nuvĂŠrende tidspunkt definerer jeg, at overvĂ„gning af systemmetrikker (temperatur, hvor den kan mĂ„les, konsistens af diskarrayet), sker gennem Zabbix, mens hvad angĂ„r applikationer, bruges eksportĂžren i Prometheus. For overvĂ„gning af KVM kan du for eksempel tage projektet og sĂŠtte det op til at kĂžre gennem systemd, det fungerer ganske godt og viser KVM-metrikker, der er ogsĂ„ et fĂŠrdigt dashboard. .
For eksempel, her er min fil:
/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.targetSÄ vi har 1 eksportÞr, vi har brug for en anden til overvÄgning af selve OpenNebula, jeg brugte sÄdan en
Det kan tilfÞjes til det almindelige til systemovervÄgning som fÞlgende.
I filen for Node Exporter Êndrer vi starten sÄledes:
ExecStart=/usr/sbin/node_exporter --web.listen-address=":9102" --collector.textfile.directory=/var/lib/opennebula_exporter/textfile_collectorOpretter en mappe mkdir -p /var/lib/opennebula_exporter
bash-scriptet prÊsenteret ovenfor tester vi fÞrst funktionalitet via konsollen; hvis det viser, hvad det skal (hvis det giver en fejl, sÄ installerer vi xmlstarlet), kopierer vi det til /usr/local/bin/opennebula_exporter.sh
TilfĂžjer en cron-job hvert minut:
*\/1 * * * * (\/usr\/local\/bin\/opennebula_exporter.sh > \/var\/lib\/opennebula_exporter\/textfile_collector\/opennebula.prom)Metrikkerne er begyndt at dukke op, man kan hente dem med Prometheus, opbygge grafer og lave alarmer. I Grafana kan man for eksempel lave et simpelt dashboard som dette.

(det er klart, at jeg har lavet overcommit pÄ cpu, ram)
For dem der elsker og bruger Zabbix, er der
Det er alt om overvÄgning, det vigtigste er, at det eksisterer. SelvfÞlgelig kan man supplere med de indbyggede vÊrktÞjer til overvÄgning af virtuelle maskiner og eksportere data til fakturering, her har alle deres egen opfattelse, jeg har endnu ikke dykket dybere ind i det.
Til logging er jeg ikke kommet sĂ„ langt endnu. Som det enkleste alternativ er det at tilfĂžje td-agent til at parse mappen \/var\/lib\/one med regulĂŠre udtryk. For eksempel passer filen sunstone.log til regexp nginx og andre filer, der viser historikken for anmodninger til platformen â hvad er fordelen ved dette? Ja, vi kan tydeligt fĂžlge antallet af "Error, error" og hurtigere finde ud af, hvor og pĂ„ hvilket niveau der er en fejl.
3. Backup
Der er ogsĂ„ betalte tilfredsstillende projekter â for eksempel sep :OpenNebula_Backup. Her skal vi forstĂ„, at det ikke blot handler om at lave backup af maskinens billede, da vores virtuelle maskiner skal fungere med fuld integration (den samme kontekstfil, hvor netvĂŠrksindstillinger, vm-navn og tilpassede indstillinger for dine applikationer beskrives). Derfor fastlĂŠgger vi, hvad og hvordan vi vil lave backup. I nogle tilfĂŠlde er det bedre at lave kopier af det, der findes i selve vm. Og det kan vĂŠre nĂždvendigt kun at tage backup af Ă©n disk fra denne maskine.
For eksempel har vi fastlagt, at alle maskiner starter med persistente billeder, sÄ vi har lÊst
det betyder, at vi fĂžrst kan eksportere billedet fra vores vm:
onevm disk-saveas 74 3 prom.qcow2
Image ID: 77
Lad os se, hvilket navn det er gemt under
oneimage show 77
\/var\/lib\/one\/datastores\/100\/f9503161fe180658125a9b32433bf6e8
Og derefter kopierer vi det, hvor vi har brug for det. SelvfÞlgelig er det ikke den bedste metode. Jeg ville bare vise, at ved at bruge OpenNebula vÊrktÞjer kan man bygge lignende lÞsninger.Jeg har ogsÄ fundet og der er ogsÄ , men her kun til qcow2 lager.
Men som vi alle ved, kommer der en tid, hvor man Þnsker inkrementelle sikkerhedskopier. Det er svÊrere, og muligvis vil ledelsen bevilge penge til en betalt lÞsning, eller man kan gÄ en anden vej og forstÄ, at her bruger vi kun ressourcer, mens sikkerhedskopieringen foregÄr pÄ applikationsniveau og ved at tilfÞje flere noder og virtuelle maskiner. Ja, her siger jeg, at man kun bruger cloud til at starte applikationsklustre, mens databaser kÞres pÄ en anden platform eller tages fra en leverandÞr, hvis det er muligt.
4. Brugervenlighed
I dette afsnit vil jeg beskrive de problemer, jeg har stĂždt pĂ„. For eksempel, nĂ„r det kommer til billeder, som vi ved er persistent â nĂ„r dette billede er monteret til en VM, bliver alle data skrevet til dette billede. Men hvis det er non-persistent, kopieres billedet til lageret, og data skrives i det, der blev kopieret fra det oprindelige billede â sĂ„dan fungerer skabelonerne. Jeg har gentagne gange skabt problemer for mig selv ved at glemme at angive persistent, og 200 GB billedet blev kopieret; problemet er, at denne procedure med sikkerhed ikke kan annulleres, man skal gĂ„ til noden og stoppe den aktuelle proces 'cp'.
En af de vÊsentlige ulemper er, at man ikke kan annullere handlingerne blot ved at bruge GUIt. Faktisk vil du annullere dem og se, at intet sker, og sÄ igen starte, annullere, hvorefter der i realiteten vil vÊre 2 cp-processer, der kopierer billedet.
Og her kommer forstĂ„elsen af, hvorfor OpenNebula nummererer hver ny instans med et nyt ID. For eksempel, hvis jeg i Proxmox har oprettet en VM med ID 101, slettede den og derefter igen opretter den, vil ID vĂŠre 101. I OpenNebula vil dette ikke ske, hver ny instans oprettes med et nyt ID, hvilket har sin egen logik â for eksempel rensning af gamle data eller mislykkede installationer.
Det samme gÊlder for lageret; denne platform er isÊr rettet mod centraliseret lagring. Der er tilfÞjelsesprogrammer til brug af lokale ressourcer, men det handler ikke om dette. Jeg tror, at i fremtiden vil nogen skrive en artikel om, hvordan man har formÄet at bruge lokal lagring pÄ noder og succesfuldt anvende det i produktion.
5. Maksimal enkelhed
SelvfÞlgelig, jo lÊngere man gÄr, desto fÊrre bliver der, der virkelig forstÄr en.
Under my setup â 3 nodes with NFS storage â everything works fine. However, when conducting power-off experiments, for example during a snapshot launch and power-off of the node, we retain settings in the database indicating that there is a snapshot, but in reality, it doesn't exist (well, we all understand that initially, it recorded in the SQL database about this action, but the operation itself was unsuccessful). The plus side is that when creating a snapshot, a separate file is generated, and there is a "parent," so in case of problems, even if it doesn't work through the GUI, we can take the QCOW2 file and restore it separately.
When it comes to networks, unfortunately, it's not that simple. At least it's easier than in OpenStack; I only used VLAN (802.1Q) â it works quite well, but if you make changes to the settings from the template network, those settings will not apply to already running machines, so you have to delete and re-add the network card for the new settings to take effect.
If we want to compare it to OpenStack, we can say that in OpenNebula there's no clear definition of which technologies to use for data storage, network management, or resources â each administrator decides for themselves what is most convenient.
6. Additional plugins and installations
As we know, the cloud platform can manage not only KVM but also VMware ESXi. Unfortunately, I didn't have a pool with vCenter; if anyone has tried it, please let me know.
Support for other cloud providers has been stated.
AWS, AZURE.
I also tried to connect VMware Cloud from Selectel, but it didn't work out â in general, I gave up. There are too many factors, and there's no point in writing to the hosting provider's tech support.
Additionally, the new version now features Firecracker â this is launching microVMs, a type of KVM wrapping over Docker, which provides even more versatility, security, and performance because it doesn't waste resources on hardware emulation. I see only advantages compared to Docker in that it doesn't occupy additional processes and there are no occupied sockets when using this emulation, so it can quite well be used as a load balancer (but I suppose a separate article should be written about this; I haven't conducted all tests in full yet).
7. Positive experience using and debugging errors
Jeg ville dele mine observationer om arbejdet, jeg har beskrevet en del ovenfor, og jeg vil gerne skrive mere. Det er sandsynligvis ikke kun mig, der i starten tĂŠnker, at dette ikke er det rigtige system, og at alt her er klodset â hvordan arbejder man overhovedet med dette? Men sĂ„ kommer forstĂ„elsen, og det bliver ganske logisk. SelvfĂžlgelig kan man ikke tilfredsstille alle, og nogle punkter krĂŠver forbedringer.
For eksempel en simpel operation til at kopiere et diskbillede fra en datastore til en anden. I mit tilfĂŠlde er der 2 noder med NFS, jeg sender billedet â kopieringen gĂ„r gennem frontend OpenNebula, selvom vi alle er vant til, at data skal kopieres direkte mellem vĂŠrterne â i VMware, Hyper-V er vi vant til dette, men her er det anderledes. Her er der en anden tilgang og ideologi, og i version 5.12 er knappen âmigrate to datastoreâ fjernet â det er kun selve maskinen, der flyttes, men ikke lageret, da der underforstĂ„s et centraliseret lager.
Yderligere en populĂŠr fejl med forskellige Ă„rsager: âError deploying virtual machine: Could not create domain from /var/lib/one//datastores/103/10/deployment.5â Nedenfor vil der vĂŠre en liste over, hvad man skal se pĂ„.
- Retten til billedet for brugeren oneadmin;
- Rettigheder for brugeren oneadmin til at starte libvirtd;
- Er datastore korrekt monteret? GÄ og tjek stien pÄ selve noden, det er muligt, at noget er faldet af;
- Forkert konfigureret netvĂŠrk, snarere stĂ„r der i frontend-netvĂŠrksindstillingerne, at br0 er den primĂŠre grĂŠnseflade for VLAN, men pĂ„ noden stĂ„r der â bridge0 â det skal vĂŠre ens.
System datastore gemmer metadata for din VM, hvis du starter VM med et persistent image, skal VM have adgang til den oprindeligt oprettede konfiguration pĂ„ det lager, hvor du har oprettet VM â dette er meget vigtigt. Derfor skal man dobbelttjekke alt, nĂ„r man flytter VM til en anden datastore.
8. Dokumentation, community. Videre udvikling
Og resten, god dokumentation, et community, og vigtigst af alt, at projektet fortsat lever fremadrettet.
Her er det generelt, alt er ret godt dokumenteret, og selv med den officielle kilde vil det ikke vÊre noget problem at installere og finde svar pÄ spÞrgsmÄl.
FĂŠllesskabet er aktivt. De offentliggĂžr mange fĂŠrdige lĂžsninger, som du kan bruge i dine installationer.
PÄ nuvÊrende tidspunkt er nogle politikker Êndret i virksomheden med version 5.12 Det vil vÊre interessant at finde ud af, hvordan projektet udvikler sig. I begyndelsen nÊvnte jeg specifikt nogle leverandÞrer, der bruger deres lÞsninger og det, som industrien tilbyder. Der er ikke et klart svar pÄ, hvad du bÞr bruge. Men for smÄ organisationer kan stÞtte til deres eget lille private sky ikke vÊre sÄ dyrt, som det synes. Det vigtigste er at vide prÊcist, hvad du har brug for.
Som konklusion, uanset hvad du vÊlger som sky system, bÞr du ikke stoppe ved ét produkt. Hvis du har tid, er det vÊrd at se pÄ nogle andre mere Äbne lÞsninger.
Der er en god chatgruppe de hjÊlper aktivt og sender ikke dig hen for at finde lÞsningen pÄ problemet i Google. Tilmeld dig.
Kilde: habr.com
