Opennebula. Maikling tala

Opennebula. Maikling tala

Kamusta kayong lahat. Ang artikulong ito ay isinulat para sa mga nalilito pa rin sa pagpili ng mga platform ng virtualization at pagkatapos basahin ang artikulo mula sa seryeng "Nag-install kami ng proxmox at sa pangkalahatan ay maayos ang lahat, 6 na taon ng uptime nang walang isang solong pahinga." Ngunit pagkatapos mag-install ng isa o isa pang out-of-the-box na solusyon, ang tanong ay lumitaw: paano ko ito itatama dito, upang ang pagsubaybay ay mas maliwanag, at dito, upang makontrol ang mga backup…. At pagkatapos ay darating ang oras at napagtanto mo na gusto mo ng isang bagay na mas gumagana, o gusto mong maging malinaw ang lahat sa loob ng iyong system, at hindi ang itim na kahon na ito, o gusto mong gumamit ng isang bagay na higit pa sa isang hypervisor at isang grupo ng mga virtual machine. Ang artikulong ito ay maglalaman ng ilang mga saloobin at kasanayan batay sa Opennebula platform - Pinili ko ito dahil. hindi ito hinihingi sa mga mapagkukunan at ang arkitektura ay hindi masyadong kumplikado.

At kaya, tulad ng nakikita natin, maraming cloud provider ang gumagana sa kvm at gumagawa ng mga panlabas na koneksyon para makontrol ang mga makina. Malinaw na ang malalaking hoster ay nagsusulat ng kanilang sariling mga balangkas para sa imprastraktura ng ulap, ang parehong YANDEX halimbawa. Ang isang tao ay gumagamit ng openstack at gumagawa ng isang koneksyon sa batayan na ito - SELECTEL, MAIL.RU. Ngunit kung mayroon kang sariling hardware at isang maliit na kawani ng mga espesyalista, kadalasan ay pipili ka ng isang bagay na handa - VMWARE, HYPER-V, mayroong libre at bayad na mga lisensya, ngunit hindi iyon ang pinag-uusapan natin ngayon. Pag-usapan natin ang tungkol sa mga mahilig - ito ang mga hindi natatakot na mag-alok at sumubok ng bago, sa kabila ng katotohanan na malinaw na nilinaw ng kumpanya, "Sino ang magseserbisyo nito pagkatapos mo," "Ilalabas ba natin ito sa produksyon mamaya ? Nakakatakot." Ngunit maaari mo munang ilapat ang mga solusyong ito sa isang test bench, at kung gusto ito ng lahat, maaari mong itaas ang tanong ng karagdagang pag-unlad at paggamit sa mas seryosong mga kapaligiran.

Narito rin ang isang link sa ulat www.youtube.com/watch?v=47Mht_uoX3A mula sa isang aktibong kalahok sa pagbuo ng platform na ito.

Marahil sa artikulong ito ay may isang bagay na magiging labis at naiintindihan na ng isang nakaranasang espesyalista, at sa ilang mga kaso hindi ko ilalarawan ang lahat dahil ang mga katulad na utos at paglalarawan ay magagamit sa Internet. Ito ay karanasan ko lamang sa platform na ito. Umaasa ako na ang mga aktibong kalahok ay magdagdag sa mga komento kung ano ang maaaring gawin nang mas mahusay at kung anong mga pagkakamali ang nagawa ko. Ang lahat ng mga aksyon ay naganap sa isang home stand na binubuo ng 3 mga PC na may iba't ibang mga katangian. Gayundin, partikular na hindi ko ipinahiwatig kung paano gumagana ang software na ito at kung paano i-install ito. Hindi, tanging karanasan sa pangangasiwa at ang mga problemang naranasan ko. Marahil ito ay magiging kapaki-pakinabang sa isang tao sa kanilang pinili.

Kaya, magsimula tayo. Bilang isang tagapangasiwa ng system, ang mga sumusunod na punto ay mahalaga sa akin, kung wala ito ay malamang na hindi ko magagamit ang solusyon na ito.

1. Pag-uulit ng pag-install

Mayroong maraming mga tagubilin para sa pag-install ng opennebula, hindi dapat magkaroon ng anumang mga problema. Mula sa bersyon hanggang sa bersyon, lumalabas ang mga bagong feature na hindi palaging gagana kapag lumilipat mula sa bersyon patungo sa bersyon.

2. Pagsubaybay

Susubaybayan namin ang node mismo, kvm at opennebula. Sa kabutihang palad, ito ay handa na. Mayroong maraming mga pagpipilian tungkol sa pagsubaybay sa mga host ng Linux, ang parehong Zabbix o node exporter - kung sino ang mas gusto kung ano ang mas mahusay - sa ngayon ay tinukoy ko ito bilang mga sukatan ng system ng pagsubaybay (temperatura kung saan ito masusukat, pagkakapare-pareho ng disk array), sa pamamagitan ng zabbix , at para sa mga aplikasyon sa pamamagitan ng Prometheus exporter. Para sa kvm monitoring, halimbawa, maaari mong kunin ang proyekto github.com/zhangjianweibj/prometheus-libvirt-exporter.git at itakda ito upang tumakbo sa pamamagitan ng systemd, gumagana ito nang maayos at nagpapakita ng mga sukatan ng kvm, mayroon ding isang handa na dashboard grafana.com/grafana/dashboards/12538.

Halimbawa, narito ang aking file:

/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

At kaya mayroon kaming 1 exporter, kailangan namin ng pangalawa para masubaybayan ang mismong opennebula, ginamit ko ito github.com/kvaps/opennebula-exporter/blob/master/opennebula_exporter

Maaaring idagdag sa normal node_exporter upang subaybayan ang sistema ng mga sumusunod.

Sa node_exporter file binabago namin ang simula tulad nito:

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

Lumikha ng isang direktoryo na mkdir -p /var/lib/opennebula_exporter

bash script na ipinakita sa itaas, suriin muna namin ang trabaho sa pamamagitan ng console, kung ipinapakita nito kung ano ang kailangan namin (kung nagbibigay ito ng error, pagkatapos ay i-install ang xmlstarlet), kopyahin ito sa /usr/local/bin/opennebula_exporter.sh

Magdagdag ng cron task para sa bawat minuto:

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

Nagsimulang lumitaw ang mga sukatan, maaari mong gawin ang mga ito tulad ng isang prometheus at bumuo ng mga graph at gumawa ng mga alerto. Sa Grafana maaari kang gumuhit, halimbawa, tulad ng isang simpleng dashboard.

Opennebula. Maikling tala

(malinaw na dito na overcommit ko ang cpu, ram)

Para sa mga mahilig at gumagamit ng Zabbix, meron github.com/OpenNebula/addon-zabbix

As far as monitoring is concerned, the main thing is that it is there. Siyempre, maaari mong, bilang karagdagan, gamitin ang built-in na virtual machine na mga tool sa pagsubaybay at mag-upload ng data sa pagsingil, narito ang lahat ay may sariling pananaw, hindi pa ako nagsimulang magtrabaho dito nang mas malapit.

Hindi pa talaga ako nagsisimulang mag-log. Ang pinakasimpleng opsyon ay ang magdagdag ng td-agent para i-parse ang /var/lib/one na direktoryo na may mga regular na expression. Halimbawa, ang sunstone.log file ay tumutugma sa nginx regexp at iba pang mga file na nagpapakita ng kasaysayan ng pag-access sa platform - ano ang bentahe nito? Well, halimbawa, maaari naming tahasang subaybayan ang bilang ng "Error, error" at mabilis na subaybayan kung saan at sa anong antas mayroong malfunction.

3. Mga backup

Mayroon ding mga bayad na natapos na proyekto - halimbawa sep wiki.sepsoftware.com/wiki/index.php/4_4_3_Tigon:OpenNebula_Backup. Dito dapat nating maunawaan na ang simpleng pag-back up ng isang imahe ng makina ay hindi pareho sa kasong ito, dahil ang aming mga virtual machine ay dapat gumana nang may ganap na pagsasama (ang parehong file ng konteksto na naglalarawan sa mga setting ng network, pangalan ng vm at mga custom na setting para sa iyong mga application) . Kaya naman, dito tayo magpapasya kung ano at paano natin i-back up. Sa ilang mga kaso, mas mahusay na gumawa ng mga kopya ng kung ano ang nasa vm mismo. At marahil kailangan mo lamang mag-backup ng isang disk mula sa isang ibinigay na makina.

Halimbawa, natukoy namin na ang lahat ng mga makina ay nagsisimula sa patuloy na mga imahe, samakatuwid, pagkatapos basahin docs.opennebula.io/5.12/operation/vm_management/img_guide.html

Nangangahulugan ito na maaari muna nating i-upload ang larawan mula sa ating vm:

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

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΏΠΎΠ΄ ΠΊΠ°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΎΠ½ сохранился

oneimage show 77
/var/lib/one//datastores/100/f9503161fe180658125a9b32433bf6e8
   
И Π΄Π°Π»Π΅Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΡƒΠ΄Π° Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ‚Π°ΠΊ сСбС способ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ…ΠΎΡ‚Π΅Π» ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ инструмСнты opennebula ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

Nakahanap din ako sa Internet kawili-wiling ulat at meron pa tulad ng isang bukas na proyekto, ngunit mayroon lamang imbakan para sa qcow2.

Pero as we all know, sooner or later there comes a time na gusto mo ng incremental backups, mas mahirap dito at baka maglaan ng pera ang management for a paid solution, or go the other way and understand that here we are only cutting resources, at paggawa ng mga backup sa antas ng aplikasyon at pagdaragdag ng ilang mga bagong node at virtual machine - oo, dito, sinasabi ko na ang paggamit ng cloud ay purong upang ilunsad ang mga cluster ng application, at ilunsad ang database sa isa pang platform o kumuha ng isang handa na. mula sa supplier, kung maaari.

4. Dali ng paggamit

Sa talatang ito ay ilalarawan ko ang mga problemang aking naranasan. Halimbawa, ayon sa mga imahe, tulad ng alam natin, mayroong paulit-ulit - kapag ang imaheng ito ay naka-mount sa isang vm, ang lahat ng data ay nakasulat sa larawang ito. At kung hindi nagpapatuloy, kung gayon ang imahe ay kinopya sa imbakan at ang data ay nakasulat sa kung ano ang kinopya mula sa pinagmulang imahe - ito ay kung paano gumagana ang mga template ng template. Paulit-ulit akong nagdulot ng mga problema para sa aking sarili sa pamamagitan ng paglimot na tukuyin ang paulit-ulit at ang 200 GB na imahe ay kinopya, ang problema ay ang pamamaraang ito ay tiyak na hindi maaaring kanselahin, kailangan mong pumunta sa node at patayin ang kasalukuyang proseso ng "cp".

Isa sa mga mahalagang disadvantage ay hindi mo maaaring kanselahin ang mga aksyon gamit lamang ang gui. O sa halip, kakanselahin mo ang mga ito at makita na walang mangyayari at sisimulan mo silang muli, kanselahin ang mga ito at sa katunayan ay magkakaroon na ng 2 cp na proseso na kinokopya ang imahe.

At pagkatapos ay pagdating sa pag-unawa kung bakit binibilang ng opennebula ang bawat bagong instance na may bagong id, halimbawa, sa parehong proxmox ay lumikha ng isang vm na may id 101, tinanggal ito, pagkatapos ay nilikha mo itong muli at id 101. Sa opennebula hindi ito mangyayari, bawat bagong instance ay gagawin gamit ang isang bagong id at ito ay may sariling lohika - halimbawa, pag-clear ng lumang data o hindi matagumpay na pag-install.

Ang parehong napupunta para sa imbakan; higit sa lahat, ang platform na ito ay naglalayong sa sentralisadong imbakan. Mayroong mga addon para sa paggamit ng lokal, ngunit hindi iyon ang pinag-uusapan natin sa kasong ito. Sa palagay ko, sa hinaharap, may isang tao na magsusulat ng isang artikulo tungkol sa kung paano nila pinamamahalaang gumamit ng lokal na imbakan sa mga node at matagumpay na magamit ito sa paggawa.

5. Pinakamataas na pagiging simple

Siyempre, habang mas malayo ka, mas kakaunti ang mga makakaintindi sa iyo.

Sa ilalim ng mga kondisyon ng aking stand - 3 node na may nfs storage - lahat ay gumagana nang maayos. Ngunit kung magsasagawa kami ng mga eksperimento na kinasasangkutan ng pagkawala ng kuryente, halimbawa, kapag nagpapatakbo ng snapshot at pinapatay ang kapangyarihan ng node, nagse-save kami ng mga setting sa database na mayroong snapshot, ngunit sa katunayan ay wala (well, naiintindihan nating lahat na tayo sa una ay isinulat ang database tungkol sa aksyon na ito sa sql , ngunit ang operasyon mismo ay hindi matagumpay). Ang kalamangan ay kapag lumilikha ng isang snapshot, isang hiwalay na file ang nabuo at mayroong isang "magulang", samakatuwid sa kaso ng mga problema at kahit na hindi ito gumana sa pamamagitan ng gui, maaari naming kunin ang qcow2 file at ibalik ito nang hiwalay. docs.opennebula.io/5.8/operation/vm_management/vm_instances.html

Sa mga network, sa kasamaang palad, hindi lahat ay napakasimple. Well, hindi bababa sa ito ay mas madali kaysa sa openstack, ginamit ko lamang ang vlan (802.1Q) - ito ay gumagana nang maayos, ngunit kung gumawa ka ng mga pagbabago sa mga setting mula sa network ng template, kung gayon ang mga setting na ito ay hindi mailalapat sa mga tumatakbo nang makina, i.e. kailangan mong magtanggal at magdagdag ng network card, pagkatapos ay ilalapat ang mga bagong setting.

Kung nais mo pa ring ihambing ito sa openstack, maaari mong sabihin ito: sa opennebula walang malinaw na kahulugan kung aling mga teknolohiya ang gagamitin para sa pag-iimbak ng data, pamamahala ng network, mga mapagkukunan - ang bawat administrator ay nagpapasya para sa kanyang sarili kung ano ang mas maginhawa para sa kanya.

6. Mga karagdagang plugin at pag-install

Pagkatapos ng lahat, tulad ng naiintindihan namin, ang cloud platform ay maaaring pamahalaan hindi lamang ang kvm, kundi pati na rin ang vmware esxi. Sa kasamaang palad, wala akong pool na may Vcenter, kung sinuman ang sumubok, mangyaring sumulat.

Nakasaad ang suporta para sa iba pang cloud provider docs.opennebula.io/5.12/advanced_components/cloud_bursting/index.html
AWS, AZURE.

Sinubukan ko ring ikonekta ang Vmware Cloud mula sa Selectel, ngunit walang gumana - sa pangkalahatan, na-block ito dahil maraming mga kadahilanan, at walang punto sa pagsulat sa teknikal na suporta ng hosting provider.

Gayundin, ngayon ang bagong bersyon ay may paputok - ito ay ang paglulunsad ng microvm, isang uri ng kvm harness over docker, na nagbibigay ng higit na versatility, seguridad at pagtaas ng produktibidad dahil hindi na kailangang mag-aksaya ng mga mapagkukunan sa pagtulad sa mga kagamitan. Ang tanging bentahe na nakikita ko sa Docker ay hindi ito kumukuha ng karagdagang bilang ng mga proseso at walang mga inookupahang socket kapag ginagamit ang emulation na ito, i.e. Ito ay lubos na posible na gamitin ito bilang isang load balancer (ngunit ito ay malamang na sulit na magsulat ng isang hiwalay na artikulo tungkol dito hanggang sa ganap kong maisagawa ang lahat ng mga pagsubok).

7. Positibong karanasan sa paggamit at pag-debug ng error

Nais kong ibahagi ang aking mga obserbasyon tungkol sa gawain, inilarawan ko ang ilan sa mga ito sa itaas, nais kong magsulat ng higit pa. Sa katunayan, malamang na hindi lang ako ang nag-iisip sa una na hindi ito ang tamang sistema at sa pangkalahatan lahat ng bagay dito ay isang saklay - paano nila ito gagawin? Ngunit pagkatapos ay dumating ang pag-unawa na ang lahat ay medyo lohikal. Siyempre, hindi mo mapasaya ang lahat at nangangailangan ng pagpapabuti ang ilang aspeto.

Halimbawa, isang simpleng operasyon ng pagkopya ng imahe ng disk mula sa isang datastore patungo sa isa pa. Sa aking kaso, mayroong 2 node na may nfs, ipinadala ko ang imahe - ang pagkopya ay nangyayari sa pamamagitan ng frontend opennebula, bagaman lahat tayo ay sanay na sa katotohanan na ang data ay dapat na direktang kopyahin sa pagitan ng mga host - sa parehong vmware, hyper-v tayo sanay sa ganito, pero dito sa iba. Mayroong ibang diskarte at ibang ideolohiya, at sa bersyon 5.12 inalis nila ang button na "migrate to datastore" - ang makina lang mismo ang inililipat, ngunit hindi ang storage dahil nangangahulugang sentralisadong imbakan.

Ang susunod ay isang popular na error na may iba't ibang dahilan: "Error sa pagde-deploy ng virtual machine: Hindi makalikha ng domain mula sa /var/lib/one//datastores/103/10/deployment.5" Nasa ibaba ang nangungunang bagay na titingnan.

  • Mga karapatan sa imahe para sa isang user ng admin;
  • Mga pahintulot para sa oneadmin user na magpatakbo ng libvirtd;
  • Tama ba ang pagkaka-mount ng datastore? Pumunta at suriin ang landas sa node mismo, marahil ay may nahulog;
  • Maling na-configure ang network, o sa halip sa frontend ito ay nasa mga setting ng network na ang pangunahing interface para sa vlan ay br0, ngunit sa node ito ay nakasulat bilang bridge0 - dapat itong pareho.

Ang system datastore ay nag-iimbak ng metadata para sa iyong vm, kung pinapatakbo mo ang vm na may patuloy na imahe, kung gayon ang vm ay kailangang magkaroon ng access sa unang ginawang pagsasaayos sa imbakan kung saan mo nilikha ang vm - ito ay napakahalaga. Samakatuwid, kapag naglilipat ng isang vm sa isa pang datastore, kailangan mong i-double-check ang lahat.

8. Dokumentasyon, komunidad. Karagdagang pag-unlad

At ang natitira, magandang dokumentasyon, komunidad at ang pangunahing bagay ay ang proyekto ay patuloy na mabubuhay sa hinaharap.

Sa pangkalahatan, ang lahat ay medyo mahusay na dokumentado at kahit na gumamit ng isang opisyal na mapagkukunan ay hindi magiging problema ang pag-install at paghahanap ng mga sagot sa mga tanong.

Komunidad, aktibo. Nag-publish ng maraming handa na solusyon na magagamit mo sa iyong mga pag-install.

Sa ngayon, nagbago ang ilang patakaran sa kumpanya mula noong 5.12 forum.opennebula.io/t/towards-a-stronger-opennebula-community/8506/14 Magiging kawili-wiling makita kung paano bubuo ang proyekto. Sa simula, partikular kong itinuro ang ilan sa mga vendor na gumagamit ng kanilang mga solusyon at kung ano ang inaalok ng industriya. Siyempre, walang malinaw na sagot kung ano ang gagamitin. Ngunit para sa mas maliliit na organisasyon, ang pagpapanatili ng kanilang maliit na pribadong ulap ay maaaring hindi kasing mahal ng tila. Ang pangunahing bagay ay upang malaman kung ano mismo ang kailangan mo.

Bilang resulta, anuman ang pipiliin mo bilang isang cloud system, hindi ka dapat huminto sa isang produkto. Kung mayroon kang oras, sulit na tingnan ang iba pang mas bukas na mga solusyon.

May magandang chat t.me/opennebula Aktibong tinutulungan ka nila at hindi ka pinapadala upang maghanap ng solusyon sa problema sa Google. Sumali ka.

Pinagmulan: www.habr.com

Magdagdag ng komento