Opennebula. Korta anteckningar

Opennebula. Korta anteckningar

Hej alla. Denna artikel Ă€r skriven för de som fortfarande tvekar mellan olika virtualiseringsplattformar, och efter att ha lĂ€st artikeln i serien "Vi installerade proxmox och allt fungerar utmĂ€rkt, 6 Ă„rs driftsĂ€kerhet utan avbrott". Men efter installationen av nĂ„got av de fĂ€rdiga lösningarna uppstĂ„r frĂ„gan om hur man kan justera och förbĂ€ttra sĂ„ att övervakningen blir tydligare, och hĂ€r för att kontrollera backupen
. Och sen kommer tiden nĂ€r man inser att man vill ha nĂ„got mer funktionellt, eller att man vill att allt ska vara tydligt i sitt system, istĂ€llet för den hĂ€r svarta lĂ„dan, eller man vill anvĂ€nda nĂ„got mer Ă€n en hypervisor och en massa virtuella maskiner. I denna artikel kommer det att finnas en del tankar och praktiska exempel baserade pĂ„ plattformen Opennebula – jag valde den eftersom den inte Ă€r sĂ„ resurskrĂ€vande och arkitekturen Ă€r inte sĂ„ komplicerad.

SĂ„ som vi ser arbetar mĂ„nga molnleverantörer pĂ„ kvm och skapar externa grĂ€nssnitt för att hantera maskiner. Det Ă€r uppenbart att stora hostingleverantörer skriver sina egna lösningar för molninfrastrukturen, samma YANDEX till exempel. Vissa anvĂ€nder OpenStack och bygger ett grĂ€nssnitt baserat pĂ„ det – SELECTEL, MAIL.RU. Men om du har din egen hĂ„rdvara och en liten grupp specialister, vĂ€ljer man oftast nĂ„got fĂ€rdigt – VMWARE, HYPER-V, det finns gratis och betalda licenser, men det Ă€r inte Ă€mnet för idag. LĂ„t oss prata om entusiaster – de Ă€r de som inte Ă€r rĂ€dda för att föreslĂ„ och prova nĂ„got nytt, trots att företaget tydligt har signalerat "Vem ska underhĂ„lla detta efter dig?", "Ska vi verkligen lansera detta i produktion? SkrĂ€mmande." Men man kan ju börja med att anvĂ€nda dessa lösningar i ett teststĂ„nd, och om alla Ă€r nöjda, kan man lyfta frĂ„gan om vidare utveckling och anvĂ€ndning i mer seriösa miljöer.

HÀr Àr ocksÄ en lÀnk till föredraget www.youtube.com/watch?v=47Mht_uoX3A frÄn en aktiv deltagare i utvecklingen av denna plattform.

Det kan hÀnda att det finns nÄgot överflödigt i denna artikel som redan Àr klart för en erfaren specialist, och i vissa fall kommer jag inte att beskriva allt, eftersom liknande kommandon och beskrivningar finns pÄ nÀtet. HÀr Àr bara min erfarenhet av att arbeta med denna plattform. Jag hoppas att aktiva deltagare kompletterar i kommentarerna om vad som kan göras bÀttre och vilka misstag jag har gjort. Alla ÄtgÀrder har genomförts i en hemmastÄnd med tre datorer med olika specifikationer. Dessutom har jag avsiktligt valt att inte ange hur denna programvara fungerar och hur man installerar den. Nej, endast administrations erfarenheter och problem som jag har stött pÄ. Kanske kan detta vara till nytta för nÄgon vid valet.

SÄ, lÄt oss börja. För mig som systemadministratör Àr följande punkter viktiga, utan vilka jag knappast skulle anvÀnda denna lösning.

1. InstallationsÄterkomlighet

Det finns massor av instruktioner för att installera opennebula, sÄ det borde inte uppstÄ nÄgra problem. FrÄn version till version dyker nya funktioner upp som kanske inte alltid fungerar vid övergÄng mellan versioner.

2. Övervakning

Vi kommer att övervaka sjĂ€lva noden, kvm och opennebula. Lyckligtvis finns det redan nĂ„got klart. Det finns mĂ„nga alternativ för övervakning av linux-servrar, antingen Zabbix eller node exporter — vad som passar bĂ€st — för tillfĂ€llet definierar jag det sĂ„ hĂ€r: övervakning av systemmetrik (temperatur dĂ€r den kan mĂ€tas, konsistens i diskarrayer), via zabbix, medan det som gĂ€ller applikationer via exporter till Prometheus. NĂ€r det gĂ€ller att övervaka kvm kan vi till exempel anvĂ€nda projektet github.com/zhangjianweibj/prometheus-libvirt-exporter.git och stĂ€lla in det för att starta via systemd, det fungerar bra och visar kvm-metrik, det finns ocksĂ„ en fĂ€rdig dashboard grafana.com/grafana/dashboards/12538.

Till exempel, hÀr Àr 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.target

Och sÄ har vi 1 exporter, vi behöver en till för att övervaka sjÀlva opennebula, jag anvÀnde denna github.com/kvaps/opennebula-exporter/blob/master/opennebula_exporter

Kan lÀggas till i vanlig node_exporter för att övervaka systemet enligt följande.

I filen för node_exporter Àndrar vi startkommandot pÄ följande sÀtt:

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

Skapa katalogen mkdir -p /var/lib/opennebula_exporter

Bash-skriptet som presenteras ovan kontrollerar först arbetet via konsolen, om det visar vad som behövs (om det ger ett fel, installera xmlstarlet), kopiera det till /usr/local/bin/opennebula_exporter.sh

LÀgg till ett cron-jobb för varje minut:

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

Metrics have started to appear, you can retrieve them with Prometheus and create graphs and alerts. In Grafana, you can draw a simple dashboard like this.

Opennebula. Korta anteckningar

(it's clear that I've done overcommit for CPU and RAM here)

For those who love and use Zabbix, there is github.com\/OpenNebula\/addon-zabbix

That's all for monitoring; the main thing is that it's there. Of course, you can additionally use built-in tools for monitoring virtual machines and export data to billing; everyone has their own vision on this, and I haven't delved into it more deeply yet.

As for logging, I haven't really started yet. The simplest option is to add td-agent for parsing the directory \/var\/lib\/one using regular expressions. For example, the file sunstone.log fits the regexp for nginx and other files that show the history of interactions with the platform — what's the advantage of this? Well, for instance, we can clearly track the number of "Error, error" messages and quickly identify where and at what level the issue is occurring.

3. Backups

There are also paid enhanced projects — for example sep wiki.sepsoftware.com\/wiki\/index.php\/4_4_3_Tigon:OpenNebula_Backup. Here we need to understand that simply backing up a machine image is not enough; our virtual machines need to operate with full integration (the same context file that describes network settings, the VM name, and custom settings for your applications). Therefore, we determine what and how we will backup. In some cases, it is better to create copies of what is stored directly in the VM. And perhaps we should only backup one disk from this machine.

For example, we've determined that all machines boot with persistent images, so after reading docs.opennebula.io\/5.12\/operation\/vm_management\/img_guide.html

we can first export the image from our VM:

onevm disk-saveas 74 3 prom.qcow2\nImage ID: 77\n\nLet's see under what name it was saved\n\noneimage show 77\n\/var\/lib\/one\/\/datastores\/100\/f9503161fe180658125a9b32433bf6e8\n   \nAnd then we copy it wherever we need. Of course, it's not the best method. I just wanted to show that using OpenNebula tools, similar solutions can be built.

I also found an interesting report and there's another open project like this, but this one is only for qcow2 storage.

Men som vi alla vet, kommer det förr eller senare en tid dĂ„ man vill ha inkrementella sĂ€kerhetskopior; hĂ€r Ă€r det svĂ„rare och det Ă€r möjligt att ledningen kommer att avsĂ€tta pengar för en betald lösning, eller gĂ„ en annan vĂ€g och inse att vi bara förbrukar resurser hĂ€r, medan sĂ€kerhetskopiering görs pĂ„ applikationsnivĂ„ och genom att öka antalet nya noder och virtuella maskiner — ja, hĂ€r sĂ€ger jag att man ska anvĂ€nda molnet enbart för att starta applikationskluster, medan databaser ska drivas pĂ„ en annan plattform eller anvĂ€nda en fĂ€rdig lösning frĂ„n en leverantör, om det Ă€r möjligt.

4. AnvÀndarvÀnlighet

I denna punkt kommer jag att beskriva de problem jag har stött pĂ„. Till exempel, vad gĂ€ller bilder, som vi vet, finns det persistent — nĂ€r denna bild monteras pĂ„ en VM, skrivs all data till denna bild. Om den Ă€r non-persistent kopieras bilden till lagringen och data skrivs dĂ€r det kopierades frĂ„n den ursprungliga bilden — sĂ„ fungerar mallarna. Jag har upprepade gĂ„nger stĂ€llt till problem för mig sjĂ€lv genom att glömma att ange persistent och 200 GB bilden kopierades; problemet Ă€r att denna procedur förmodligen inte kan annulleras, man mĂ„ste gĂ„ till noden och döda den pĂ„gĂ„ende 'cp'-processen.

En av de viktiga nackdelarna Àr att man inte kan Ängra ÄtgÀrder enbart genom att anvÀnda GUI. Man Ängrar dem, ser att ingenting hÀnder och startar om, Ängrar igen och i praktiken kommer det redan att finnas 2 'cp'-processer som kopierar bilden.

Och hĂ€r kommer insikten om varför opennebula numrerar varje ny instans med ett nytt id; till exempel i proxmox skapade jag en VM med id 101, tog bort den, och skapade sedan en ny och fick id 101. I OpenNebula kommer det inte att bli sĂ„; varje ny instans kommer att skapas med ett nytt id och det finns en logik bakom detta — till exempel för att rensa gamla data eller misslyckade installationer.

Samma sak gÀller lagring; denna plattform fokuserar mest pÄ centraliserad lagring. Det finns tillÀgg för att anvÀnda lokal lagring, men det handlar inte om det i detta fall. Jag tror att nÄgon i framtiden kommer att skriva en artikel om hur man lyckades anvÀnda lokal lagring pÄ noder och framgÄngsrikt anvÀnda det i produktion.

5. Maximal enkelhet

SjÀlvklart, ju lÀngre man gÄr, desto fÀrre blir de som verkligen förstÄr en.

Under the conditions of my setup — 3 nodes with NFS storage — everything works fine. However, if we perform experiments with power outages, for example, when starting a snapshot and cutting off the power to the nodes, we retain the settings in the database indicating that there is a snapshot, but in reality, it does not exist (we all understand that it initially recorded the action in the SQL database, but the operation itself was unsuccessful). The plus side is that when creating a snapshot, a separate file is formed and there is a 'parent,' so in case of issues, even if it doesn't work through the GUI, we can take the qcow2 file and restore it separately. docs.opennebula.io/5.8/operation/vm_management/vm_instances.html

When it comes to networks, unfortunately, it's not that simple. At least it's easier than in OpenStack; I've only used VLAN (802.1Q) — it works quite well, but if you make changes in the settings from the template network, those settings will not apply to already running machines, i.e., you need to delete and re-add the network card for the new settings to take effect.

If you want to compare with OpenStack, you could 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 more convenient.

6. Additional plugins and installations

As we understand, 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, please let me know.

In the support of other cloud providers, it has been stated docs.opennebula.io/5.12/advanced_components/cloud_bursting/index.html
AWS, AZURE.

I also tried to integrate VMware Cloud from Selectel, but nothing worked out — overall, I gave up since there were many factors, and writing to the hosting provider's tech support seemed pointless.

Additionally, in the new version, there is Firecracker — this launches microVMs, a kind of KVM wrapper over Docker, which provides even more versatility, security, and enhanced performance since it doesn't waste resources on hardware emulation. I see only advantages over Docker in that it doesn’t occupy additional processes or sockets when using this emulation, meaning it can easily be used as a load balancer (but perhaps I should write a separate article about this, as I have yet to conduct all tests fully).

7. Positive experience of use and error debugging

Jag ville dela med mig av mina observationer angĂ„ende systemets funktion, en del har jag beskrivit ovan och jag vill skriva mer. Verkligen, det Ă€r troligtvis inte bara jag som först tĂ€nker att det hĂ€r inte Ă€r rĂ€tt system och att allt hĂ€r Ă€r hackigt — hur fungerar man egentligen med detta? Men sen kommer insikten om att allt Ă€r ganska logiskt. SjĂ€lvklart kan man inte tillfredsstĂ€lla alla och vissa aspekter krĂ€ver förbĂ€ttringar.

Till exempel, en enkel operation att kopiera en diskavbild frĂ„n en datastore till en annan. I mitt fall finns det 2 noder med NFS, jag skickar bilden — kopieringen sker genom frontend OpenNebula, Ă€ven om vi alla Ă€r vana vid att data ska kopieras direkt mellan vĂ€rdarna — i VMware och Hyper-V Ă€r vi just vana vid detta, men hĂ€r fungerar det annorlunda. HĂ€r Ă€r det en annan metod och annan ideologi, och i version 5.12 togs knappen 'migrate to datastore' bort — endast sjĂ€lva maskinen flyttas, inte lagringen, eftersom det förutsĂ€tter en centraliserad lagring.

Sedan finns det ett vanligt fel med olika orsaker 'Error deploying virtual machine: Could not create domain from /var/lib/one//datastores/103/10/deployment.5'. Nedan Àr en lista över vad du bör se över.

  • RĂ€ttigheter för bilden för anvĂ€ndaren oneadmin;
  • RĂ€ttigheter för anvĂ€ndaren oneadmin för att köra libvirtd;
  • Är datastoren korrekt monterad? GĂ„ och kontrollera sökvĂ€gen pĂ„ sjĂ€lva noden, kanske har nĂ„got försvunnit;
  • Felaktigt konfigurerat nĂ€tverk, egentligen stĂ„r det i frontend-instĂ€llningarna att br0 Ă€r det primĂ€ra grĂ€nssnittet för VLAN, medan noden har angivit — bridge0 — det mĂ„ste vara samma pĂ„ bĂ„da.

Systemdatastore lagrar metadata för din VM, om du kör VM med en bestĂ€ndig bild mĂ„ste VM ha tillgĂ„ng till den ursprungligen skapade konfigurationen pĂ„ den lagring dĂ€r du skapade VM:n — detta Ă€r mycket viktigt. SĂ„ vid flytt av VM till en annan datastore mĂ„ste allt dubbelkollas.

8. Dokumentation, gemenskap. Vidare utveckling

Och mer, bra dokumentation, en aktiv gemenskap och viktigast av allt, att projektet fortsÀtter att leva i framtiden.

HÀr Àr det överlag ganska vÀl dokumenterat och det bör inte vara nÄgra problem att installera eller hitta svar pÄ frÄgor, Àven frÄn officiella kÀllor.

Gemenskapen Àr aktiv. De publicerar mÄnga fÀrdiga lösningar som du kan anvÀnda i dina installationer.

För nÀrvarande har vissa policys förÀndrats i företaget med version 5.12. forum.opennebula.io/t/towards-a-stronger-opennebula-community/8506/14 Det blir intressant att se hur projektet utvecklas. I början angav jag medvetet nÄgra leverantörer som anvÀnder sina egna lösningar och det som erbjuds inom branschen. Det finns inget klart svar pÄ vad du ska anvÀnda, förstÄs. Men för smÄ organisationer kan stödet för sitt eget lilla privata moln kosta betydligt mindre Àn vad det verkar. Det viktiga Àr att veta exakt vad du behöver.

Som en slutsats, oavsett vad du valt som molnsystem, bör du inte stanna kvar vid en enda produkt. Om du har tid, titta pÄ andra mer öppna lösningar.

Det finns en bra chatt t.me/opennebula som aktivt hjÀlper och inte bara skickar dig för att söka lösningar pÄ problemet pÄ Google. GÄ med.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster