Hoi allegearre. Dit artikel is skreaun foar dyjingen dy't noch ferskuord binne tusken it kiezen fan virtualisaasjeplatfoarms en nei it lêzen fan it artikel út 'e searje "Wy hawwe proxmox ynstalleare en yn't algemien is alles goed, 6 jier uptime sûnder ien pauze." Mar nei it ynstallearjen fan ien of oare out-of-the-box oplossing, komt de fraach op: hoe kin ik dit hjir korrigearje, sadat de tafersjoch mear begryplik is, en hjir, om backups te kontrolearjen .... En dan komt de tiid en jo realisearje dat jo wat mear funksjoneel wolle, of jo wolle dat alles yn jo systeem dúdlik wurdt, en net dizze swarte doaze, of jo wolle wat mear brûke as in hypervisor en in bosk firtuele masines. Dit artikel sil wat gedachten en praktyk befetsje basearre op it Opennebula-platfoarm - ik haw it keazen omdat. it is net easket op middels en de arsjitektuer is net sa kompleks.
En sa, lykas wy sjogge, wurkje in protte wolkproviders oan kvm en meitsje eksterne ferbiningen om masines te kontrolearjen. It is dúdlik dat grutte hosters har eigen kaders skriuwe foar wolkynfrastruktuer, deselde YANDEX bygelyks. Immen brûkt openstack en makket in ferbining op dizze basis - SELECTEL, MAIL.RU. Mar as jo jo eigen hardware en in lyts personiel fan spesjalisten hawwe, kieze jo gewoanlik wat klear - VMWARE, HYPER-V, d'r binne fergees en betelle lisinsjes, mar dat is net wêr't wy it no oer hawwe. Litte wy prate oer entûsjasters - dit binne dejingen dy't net bang binne om wat nijs oan te bieden en te besykjen, nettsjinsteande it feit dat it bedriuw dúdlik makke hat: "Wa sil dit nei jo tsjinje," "Sille wy dit letter yn produksje rôlje. ? Scary." Mar jo kinne dizze oplossingen earst tapasse yn in testbank, en as elkenien it liket, dan kinne jo de fraach fan fierdere ûntwikkeling en gebrûk yn mear serieuze omjouwings ophelje.
Ek hjir is in keppeling nei it rapport
Miskien yn dit artikel sil wat oerstallich wêze en al begryplik foar in betûfte spesjalist, en yn guon gefallen sil ik net alles beskriuwe, om't ferlykbere kommando's en beskriuwingen beskikber binne op it ynternet. Dit is gewoan myn ûnderfining mei dit platfoarm. Ik hoopje dat aktive dielnimmers yn de opmerkings sille tafoegje wat der better kin en hokker flaters ik makke. Alle aksjes fûnen plak yn in thússtand besteande út 3 PC's mei ferskate skaaimerken. Ek haw ik spesifyk net oanjûn hoe't dizze software wurket en hoe't jo it kinne ynstallearje. Nee, allinich administraasjeûnderfining en de problemen dy't ik tsjinkaam. Miskien sil dit nuttich wêze foar ien yn har kar.
Dus, lit ús begjinne. As systeembehearder binne de folgjende punten wichtich foar my, sûnder dat ik dizze oplossing net wierskynlik sil brûke.
1. Ynstallaasje repeatability
D'r binne in protte ynstruksjes foar it ynstallearjen fan opennebula, d'r moatte gjin problemen wêze. Fan ferzje nei ferzje ferskine nije funksjes dy't net altyd sille wurkje as jo fan ferzje nei ferzje ferpleatse.
2. Monitoring
Wy sille monitor it knooppunt sels, kvm en opennebula. Gelokkich is it al klear. D'r binne in protte opsjes foar it kontrolearjen fan Linux-hosts, deselde Zabbix- as knooppunt-eksporteur - wa't wat better fynt - op it stuit definiearje ik it as monitorsysteemmetriken (temperatuer wêr't it kin wurde mjitten, konsistinsje fan 'e skiif-array), fia zabbix , en as foar applikaasjes fia de Prometheus eksporteur. Foar kvm-monitoring kinne jo bygelyks it projekt nimme
Hjir is bygelyks myn bestân:
/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
En sa hawwe wy 1 eksporteur, wy hawwe in twadde nedich om de iepennebula sels te kontrolearjen, ik haw dit brûkt
Kin wurde tafoege oan normaal
Yn it node_exporter-bestân feroarje wy de start sa:
ExecStart=/usr/sbin/node_exporter --web.listen-address=":9102" --collector.textfile.directory=/var/lib/opennebula_exporter/textfile_collector
Meitsje in map mkdir -p /var/lib/opennebula_exporter
bash-skript hjirboppe presintearre, kontrolearje wy earst it wurk fia de konsole, as it toant wat wy nedich binne (as it in flater jout, dan ynstallearje xmlstarlet), kopiearje it nei /usr/local/bin/opennebula_exporter.sh
Foegje in cron-taak ta foar elke minút:
*/1 * * * * (/usr/local/bin/opennebula_exporter.sh > /var/lib/opennebula_exporter/textfile_collector/opennebula.prom)
Metriken begon te ferskinen, jo kinne se nimme as in prometheus en grafiken bouwe en warskôgings meitsje. Yn Grafana kinne jo bygelyks sa'n ienfâldich dashboard tekenje.
(it is dúdlik dat ik hjir cpu, ram oermeitsje)
Foar dyjingen dy't fan Zabbix hâlde en brûke, is d'r
Wat it tafersjoch oanbelanget is it wichtichste dat it der is. Fansels kinne jo ek de ynboude ark foar monitoaring fan firtuele masines brûke en gegevens oplade nei fakturearring, hjir hat elkenien har eigen fyzje, ik bin noch net begon te wurkjen oan dit nauwer.
Ik bin noch net echt begon te loggen. De ienfâldichste opsje is om td-agent ta te foegjen om de map /var/lib/one te parsearjen mei reguliere útdrukkingen. Bygelyks, it sunstone.log-bestân komt oerien mei de nginx regexp en oare bestannen dy't de skiednis fan tagong ta it platfoarm sjen litte - wat is it foardiel hjirfan? No, bygelyks, kinne wy eksplisyt it oantal "Flater, flater" folgje en fluch folgje wêr't en op hokker nivo in defekt is.
3. Reservekopy
Der binne ek betelle ôfmakke projekten - bygelyks sep
Wy hawwe bygelyks bepaald dat alle masines begjinne mei persistente ôfbyldings, dus nei it lêzen
Dit betsjut dat wy earst de ôfbylding kinne uploade fan ús vm:
onevm disk-saveas 74 3 prom.qcow2
Image ID: 77
Смотрим, под каким именем он сохранился
oneimage show 77
/var/lib/one//datastores/100/f9503161fe180658125a9b32433bf6e8
И далее копируем куда нам необходимо. Конечно, так себе способ. Просто хотел показать, что используя инструменты opennebula можно строить подобные решения.
Ik fûn ek op it ynternet
Mar sa't wy allegearre witte, komt der ier of let in tiid dat jo inkrementele backups wolle, it is hjir dreger en miskien sil it management jild tawize foar in betelle oplossing, of de oare kant op gean en begripe dat wy hjir allinich boarnen besunigje, en it meitsjen fan backups op it tapassingsnivo en it tafoegjen fan in oantal nije knopen en firtuele masines - ja, hjir, ik sis dat ik de wolk suver brûke om applikaasjeklusters te starten, en de database op in oar platfoarm te starten of in klear makke fan de leveransier, as it mooglik is.
4. Gemak fan gebrûk
Yn dizze paragraaf sil ik de problemen beskriuwe dy't ik tsjinkaam. Bygelyks, neffens ôfbyldings, lykas wy witte, is d'r persistint - as dizze ôfbylding op in vm is monteard, wurde alle gegevens nei dizze ôfbylding skreaun. En as net-persistent, dan wurdt de ôfbylding kopiearre nei de opslach en de gegevens wurde skreaun nei wat waard kopiearre út de boarne ôfbylding - dit is hoe sjabloan sjabloanen wurkje. Ik haw ferskate kearen problemen foar mysels feroarsake troch te ferjitten om persistent oan te jaan en de 200 GB-ôfbylding waard kopiearre, it probleem is dat dizze proseduere wis net kin wurde annulearre, jo moatte nei it knooppunt gean en it hjoeddeistige "cp" -proses deadzje.
Ien fan 'e wichtige neidielen is dat jo aksjes net kinne annulearje mei gewoan de gui. Of leaver, jo sille se annulearje en sjen dat der neat bart en jo sille se opnij begjinne, se annulearje en yn feite sille d'r al 2 cp-prosessen wêze dy't de ôfbylding kopiearje.
En dan komt it om te begripen wêrom't iepennebula elke nije eksimplaar nûmeret mei in nije id, bygelyks, yn deselde proxmox makke in vm mei id 101, wiske it, dan meitsje jo it wer en id 101. Yn opennebula sil dit net barre, elke nije eksimplaar sil makke wurde mei in nije id en dit hat syn eigen logika - bygelyks âlde gegevens wiskje of net suksesfolle ynstallaasjes.
Itselde jildt foar opslach; meast fan alles is dit platfoarm rjochte op sintrale opslach. D'r binne tafoegings foar it brûken fan lokaal, mar dat is net wêr't wy it oer hawwe yn dit gefal. Ik tink dat immen yn 'e takomst in artikel sil skriuwe oer hoe't se it slagge om lokale opslach op knopen te brûken en it mei súkses te brûken yn produksje.
5. Maksimum ienfâld
Fansels, hoe fierder jo geane, hoe minder dejingen wurde dy't jo sille begripe.
Under de betingsten fan myn stand - 3 knopen mei nfs opslach - alles wurket goed. Mar as wy eksperiminten útfiere mei in stroomûnderbrekking, bygelyks by it útfieren fan in momintopname en it útskeakeljen fan de krêft fan 'e knooppunt, bewarje wy ynstellings yn' e databank dat d'r in momintopname is, mar yn feite is d'r gjin (goed, wy begripe allegear dat wy skreau earst de databank oer dizze aksje yn sql , mar de operaasje sels wie net suksesfol). It foardiel is dat by it meitsjen fan in momintopname in aparte triem wurdt foarme en d'r is in "âlder", dus yn gefal fan problemen en sels as it net wurket fia gui, kinne wy de qcow2-bestân ophelje en it apart weromsette
Op netwurken is spitigernôch net alles sa ienfâldich. No, it is teminsten makliker as yn openstack, ik brûkte allinich vlan (802.1Q) - it wurket frij goed, mar as jo wizigingen meitsje yn 'e ynstellings fan it sjabloannetwurk, dan wurde dizze ynstellings net tapast op al rinnende masines, d.w.s. jo moatte in netwurkkaart wiskje en tafoegje, dan wurde de nije ynstellings tapast.
As jo it ek wolle fergelykje mei openstack, dan kinne jo dit sizze: yn opennebula is d'r gjin dúdlike definysje fan hokker technologyen te brûken foar it bewarjen fan gegevens, it behearjen fan it netwurk, boarnen - elke behearder beslút foar himsels wat foar him handiger is.
6. Oanfoljende plugins en ynstallaasjes
Ommers, sa't wy it begripe, kin it wolkplatfoarm net allinich kvm beheare, mar ek vmware esxi. Spitigernôch, ik hie gjin swimbad mei Vcenter, as immen hat besocht, please skriuwe.
Stipe foar oare wolkproviders wurdt oanjûn
AWS, AZURE.
Ik besocht ek Vmware Cloud te ferbinen fan Selectel, mar neat wurke - yn 't algemien waard it blokkearre om't d'r in protte faktoaren binne, en d'r is gjin punt om te skriuwen nei de technyske stipe fan' e hostingprovider.
Ek, no hat de nije ferzje firecracker - dit is de lansearring fan microvm, in soarte fan kvm harnas oer docker, dy't noch mear veelzijdigheid, feiligens en ferhege produktiviteit jout, om't d'r gjin need is om boarnen te fergrieme op it emulearjen fan apparatuer. It ienige foardiel dat ik sjoch boppe Docker is dat it gjin ekstra oantal prosessen nimt en d'r binne gjin besette sockets by it brûken fan dizze emulaasje, d.w.s. It is hiel mooglik om it te brûken as in load balancer (mar it is wierskynlik it wurdich om in apart artikel oer dit te skriuwen oant ik alle tests folslein haw útfierd).
7. Posityf ûnderfining fan gebrûk en flater debuggen
Ik woe myn observaasjes oer it wurk diele, ik haw hjirboppe wat fan beskreaun, ik soe graach mear skriuwe wolle. Ja, ik bin wierskynlik net de iennichste dy't earst tinkt dat dit net it goede systeem is en yn 't algemien is alles hjir in kruk - hoe wurkje se hjir sels mei? Mar dan komt it begryp dat alles frij logysk is. Fansels kinne jo net elkenien graach en guon aspekten fereaskje ferbettering.
Bygelyks, in ienfâldige operaasje fan it kopiearjen fan in skiifôfbylding fan de iene datastore nei de oare. Yn myn gefal binne d'r 2 knooppunten mei nfs, ik stjoer de ôfbylding - kopiearjen bart troch de frontend opennebula, hoewol wy allegear wend binne oan it feit dat gegevens direkt moatte wurde kopieare tusken hosts - yn deselde vmware, hyper-v binne wy wend oan dit, mar hjir oan in oar. D'r is in oare oanpak en in oare ideology, en yn ferzje 5.12 hawwe se de knop "migrearje nei datastore" fuortsmiten - allinich de masine sels wurdt oerdroegen, mar net de opslach, om't betsjut sintralisearre opslach.
Folgjende is in populêre flater mei ferskate redenen: "Flater ynsette firtuele masine: Koe gjin domein meitsje fan /var/lib/one//datastores/103/10/deployment.5" Hjirûnder is it boppeste ding om te sjen.
- Ofbyldingsrjochten foar de oneadmin-brûker;
- Tastimmingen foar de oneadmin-brûker om libvirtd út te fieren;
- Is de datastore goed monteard? Gean en kontrolearje it paad op it knooppunt sels, miskien is der wat fallen;
- Ferkeard ynsteld netwurk, of leaver op 'e frontend, is it yn' e netwurkynstellingen dat de haadynterface foar vlan br0 is, mar op 'e node is it skreaun as bridge0 - it moat itselde wêze.
systeem datastore bewarret metadata foar jo vm, as jo de vm útfiere mei in persistente ôfbylding, dan moat de vm tagong hawwe ta de ynearsten oanmakke konfiguraasje op 'e opslach wêr't jo de vm makke hawwe - dit is heul wichtich. Dêrom, by it oerdragen fan in vm nei in oare datastore, moatte jo alles dûbel kontrolearje.
8. Dokumintaasje, mienskip. Fierdere ûntwikkeling
En de rest, goede dokumintaasje, mienskip en it wichtichste ding is dat it projekt bliuwt libje yn 'e takomst.
Yn 't algemien is alles frij goed dokumintearre en sels mei in offisjele boarne sil it gjin probleem wêze om te ynstallearjen en antwurden op fragen te finen.
Mienskip, aktyf. Publisearret in protte klearmakke oplossingen dy't jo kinne brûke yn jo ynstallaasjes.
Op it stuit binne guon belied yn it bedriuw feroare sûnt 5.12
As gefolch, nettsjinsteande wat jo kieze as wolksysteem, moatte jo net stopje by ien produkt. As jo tiid hawwe, is it de muoite wurdich om nei oare mear iepen oplossingen te sjen.
Der wurdt goed praat
Boarne: www.habr.com