Нээлттэй мананцар. Богино тэмдэглэл

Нээлттэй мананцар. Богино тэмдэглэл

Сайн уу. Энэхүү нийтлэлийг виртуалчлалын платформыг сонгох хооронд гацсан хэвээр байгаа хүмүүст зориулж, "Бид proxmox суулгасан бөгөөд ерөнхийдөө бүх зүйл хэвийн, нэг ч завсарлагагүйгээр 6 жил ажилласан" цуврал нийтлэлийг уншсан хүмүүст зориулж бичсэн болно. Гэхдээ нэг юмуу өөр бэлэн шийдлийг суулгасны дараа асуулт гарч ирнэ: хяналтыг илүү ойлгомжтой болгохын тулд би үүнийг энд хэрхэн засах вэ, мөн энд нөөцлөлтийг хянах боломжтой .... Дараа нь цаг ирж, та илүү ажиллагаатай зүйлийг хүсч байгаагаа, эсвэл энэ хар хайрцгийг биш өөрийн систем доторх бүх зүйлийг тодорхой болгохыг хүсч байгаагаа, эсвэл гипервизор, олон тооны виртуал машинаас илүү зүйлийг ашиглахыг хүсч байгаагаа ойлгодог. Энэ нийтлэл нь Opennebula платформ дээр суурилсан зарим бодол санаа, практикийг агуулсан болно - Би үүнийг сонгосон учраас. Энэ нь нөөцийг шаарддаггүй бөгөөд архитектур нь тийм ч төвөгтэй биш юм.

Тиймээс бидний харж байгаагаар олон үүл үйлчилгээ үзүүлэгчид kvm дээр ажиллаж, хяналтын машинуудтай гадаад холболт хийдэг. Томоохон хостууд үүлэн дэд бүтцэд зориулж өөрсдийн хүрээг бичдэг нь тодорхой байна, жишээ нь ижил YANDEX. Хэн нэгэн openstack ашигладаг бөгөөд энэ үндсэн дээр холболт хийдэг - SELECTEL, MAIL.RU. Гэхдээ хэрэв танд өөрийн гэсэн техник хангамж, цөөн тооны мэргэжилтнүүд байгаа бол та ихэвчлэн бэлэн зүйлийг сонгодог - VMWARE, HYPER-V, үнэ төлбөргүй, төлбөртэй лицензүүд байдаг, гэхдээ энэ нь бидний одоо ярьж байгаа зүйл биш юм. Сонирхогчдын талаар ярилцъя - эдгээр нь компани нь "Таны дараа хэн үйлчилгээ үзүүлэх вэ", "Бид үүнийг дараа үйлдвэрлэлд нэвтрүүлэх гэж байна уу" гэж тодорхой хэлсэн ч шинэ зүйл санал болгож, туршиж үзэхээс айдаггүй хүмүүс юм. ? Аймшигтай." Гэхдээ та эхлээд эдгээр шийдлүүдийг туршилтын вандан сандал дээр хэрэглэж болох бөгөөд хэрэв хүн бүрт таалагдаж байвал цаашдын хөгжүүлэлт, илүү ноцтой орчинд ашиглах асуултыг тавьж болно.

Мөн тайлангийн холбоос энд байна www.youtube.com/watch?v=47Mht_uoX3A Энэхүү платформыг хөгжүүлэхэд идэвхтэй оролцогчоос.

Магадгүй энэ нийтлэлд туршлагатай мэргэжилтэнд ямар нэг зүйл илүүдэхгүй бөгөөд аль хэдийн ойлгомжтой байх болно, зарим тохиолдолд би бүх зүйлийг тайлбарлахгүй, учир нь ижил төстэй тушаалууд, тайлбарууд Интернет дээр байдаг. Энэ бол энэ платформтой холбоотой миний туршлага юм. Идэвхтэй оролцогчид юуг илүү сайн хийж болох вэ, ямар алдаа гаргасан талаар сэтгэгдэл дээр нэмж оруулах байх гэж найдаж байна. Бүх үйлдлүүд өөр өөр шинж чанартай 3 компьютерээс бүрдсэн гэрийн стенд явагдсан. Мөн энэ програм хангамж хэрхэн ажилладаг, хэрхэн суулгах талаар би тусгайлан заагаагүй. Үгүй ээ, зөвхөн удирдлагын туршлага, надад тулгарсан асуудлууд. Магадгүй энэ нь тэдний сонгосон хэн нэгэнд ашигтай байх болно.

За ингээд эхэлцгээе. Системийн администраторын хувьд миний хувьд дараах зүйлүүд чухал бөгөөд үүнгүйгээр би энэ шийдлийг ашиглах боломжгүй юм.

1. Суурилуулалтын давтагдах чадвар

Нээлттэй мананцарыг суулгах олон заавар байдаг тул ямар ч асуудал гарах ёсгүй. Хувилбараас хувилбар руу шилжих үед шинэ боломжууд гарч ирдэг бөгөөд хувилбараас хувилбар руу шилжихэд үргэлж ажиллахгүй.

2. Хяналт

Бид зангилаа өөрөө, kvm болон нээлттэй мананцарыг хянах болно. Аз болоход энэ нь аль хэдийн бэлэн болсон. Линукс хостууд, ижил Zabbix эсвэл зангилаа экспортлогчийг хянах олон сонголт байдаг - хэн нь илүү дуртай вэ - одоогоор би үүнийг zabbix-ээр дамжуулан системийн хэмжигдэхүүн (хэмжиж болох температур, дискний массивын тууштай байдал) гэж тодорхойлж байна. , мөн Prometheus экспортлогчоор дамжуулан програмуудын хувьд. Жишээлбэл, квм мониторингийн хувьд та төслийг авч болно github.com/zhangjianweibj/prometheus-libvirt-exporter.git мөн үүнийг systemd-ээр ажиллуулахаар тохируулсан, энэ нь маш сайн ажилладаг бөгөөд kvm хэмжигдэхүүнийг харуулдаг, мөн бэлэн хяналтын самбар байдаг. grafana.com/grafana/dashboards/12538.

Жишээлбэл, миний файл энд байна:

/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

Тиймээс бидэнд 1 экспортлогч байна, бидэнд нээлттэй мананцарыг хянахын тулд хоёрдахь хэрэгтэй, би үүнийг ашигласан github.com/kvaps/opennebula-exporter/blob/master/opennebula_exporter

Энгийн хэмжээнд нэмж болно зангилаа_экспортлогч системд дараах хяналт тавих.

node_exporter файлын эхлэлийг дараах байдлаар өөрчилнө.

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

mkdir -p /var/lib/opennebula_exporter лавлах үүсгэнэ үү

Дээр үзүүлсэн bash скриптийг ашиглавал эхлээд консолоор дамжуулан ажлыг шалгана уу, хэрэв энэ нь бидэнд хэрэгтэй зүйл байвал (хэрэв алдаа гарвал xmlstarlet суулгана уу) /usr/local/bin/opennebula_exporter.sh руу хуулна уу.

Минут тутамд cron даалгавар нэмнэ үү:

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

Хэмжигдэхүүнүүд гарч эхэлсэн тул та тэдгээрийг прометей шиг авч, график байгуулж, анхааруулга өгөх боломжтой. Grafana дээр та жишээ нь ийм энгийн хяналтын самбар зурж болно.

Нээлттэй мананцар. Богино тэмдэглэл

(энд би CPU, RAM-ыг хэтрүүлсэн нь тодорхой байна)

Zabbix-ийг хайрладаг, ашигладаг хүмүүст зориулж байна github.com/OpenNebula/addon-zabbix

Хяналт-шинжилгээний хувьд гол нь тэнд байгаа. Мэдээжийн хэрэг, та суулгасан виртуал машиныг хянах хэрэгслийг ашиглаж, тооцоонд өгөгдөл оруулах боломжтой, энд хүн бүр өөрийн гэсэн алсын хараатай байдаг, би энэ талаар илүү нягт ажиллаж эхлээгүй байна.

Би одоохондоо мод бэлтгэж амжаагүй байна. Хамгийн энгийн сонголт бол /var/lib/one санг ердийн илэрхийлэлтэй задлан шинжлэхийн тулд td-agent нэмэх явдал юм. Жишээлбэл, sunstone.log файл нь nginx regexp болон платформд нэвтрэх түүхийг харуулсан бусад файлуудтай таарч байна - үүний давуу тал нь юу вэ? Жишээлбэл, бид "Алдаа, алдаа" гэсэн тоог тодорхой хянаж, хаана, ямар түвшинд эвдрэл байгааг хурдан хянах боломжтой.

3. Нөөцлөлт

Мөн төлбөртэй дууссан төслүүд байдаг - жишээлбэл, sep wiki.sepsoftware.com/wiki/index.php/4_4_3_Tigon:Nebula_Нөөцлөлтийг нээх. Энд бид зүгээр л машины дүрсийг нөөцлөх нь ижил биш гэдгийг ойлгох ёстой, учир нь манай виртуал машинууд бүрэн интеграцчилалтай ажиллах ёстой (таны програмын сүлжээний тохиргоо, vm нэр, тусгай тохиргоог дүрсэлсэн ижил контекст файл) . Тиймээс бид юуг, хэрхэн нөөцлөхөө эндээс шийднэ. Зарим тохиолдолд vm дотор байгаа зүйлийг хуулбарлах нь дээр. Магадгүй та зөвхөн өгөгдсөн машинаас нэг дискийг нөөцлөх хэрэгтэй.

Жишээлбэл, бид уншсаны дараа бүх машинууд байнгын зургуудаас эхэлдэг болохыг тогтоосон docs.opennebula.io/5.12/operation/vm_management/img_guide.html

Энэ нь эхлээд бид өөрийн vm-ээс зургийг байршуулж болно гэсэн үг юм:

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

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

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

Би бас интернетээс олж мэдсэн сонирхолтой тайлан мөн илүү олон зүйл бий ийм нээлттэй төсөл, гэхдээ зөвхөн qcow2-д зориулсан хадгалах сан байдаг.

Гэхдээ бид бүгд мэдэж байгаачлан эрт орой хэзээ нэгэн цагт та нэмэлт нөөцлөлт хийхийг хүсэх цаг ирнэ, энд илүү хэцүү бөгөөд магадгүй удирдлага төлбөртэй шийдэлд мөнгө хуваарилах эсвэл өөр замаар явж, энд зөвхөн нөөцөө багасгаж байна гэдгийг ойлгох болно. мөн програмын түвшинд нөөцлөлт хийж, хэд хэдэн шинэ зангилаа болон виртуал машин нэмэх - тийм ээ, энд би үүлийг зөвхөн програмын кластеруудыг ажиллуулахын тулд ашиглаж, мэдээллийн баазыг өөр платформ дээр ажиллуулах эсвэл бэлэн болгохыг хэлж байна. боломжтой бол ханган нийлүүлэгчээс.

4. Хэрэглэхэд хялбар

Энэ догол мөрөнд би өөрт тулгарсан асуудлуудыг тайлбарлах болно. Жишээлбэл, зургуудын дагуу бидний мэдэж байгаагаар байнгын шинж чанартай байдаг - энэ зургийг vm-д холбоход бүх өгөгдөл энэ зураг дээр бичигдсэн байдаг. Хэрэв тогтвортой биш бол зургийг хадгалах сан руу хуулж, өгөгдлийг эх зургаас хуулсан зүйл рүү бичнэ - загвар загварууд ингэж ажилладаг. Тогтвортой гэж зааж өгөхөө мартаж, 200 ГБ зургийг хуулсан тул би өөртөө дахин дахин асуудал үүсгэсэн. Асуудал нь энэ процедурыг цуцлах боломжгүй тул та зангилаа руу очиж одоогийн "cp" процессыг устгах хэрэгтэй.

Чухал сул талуудын нэг нь та зүгээр л gui ашиглан үйлдлүүдийг цуцлах боломжгүй юм. Өөрөөр хэлбэл, та тэдгээрийг цуцалж, юу ч болоогүйг хараад дахин эхлүүлж, цуцлах бөгөөд үнэндээ зургийг хуулах 2 cp процесс байх болно.

Дараа нь яагаад opennebula шинэ тохиолдол бүрийг шинэ id-р дугаарладгийг ойлгох болно, жишээлбэл, ижил proxmox-д 101 id-тэй vm үүсгээд, устгаад, дараа нь та үүнийг дахин үүсгэж, id 101-тэй болгодог. Opennebula-д ийм зүйл тохиолдохгүй, шинэ жишээ бүр шинэ id-ээр үүсгэгдэх бөгөөд энэ нь өөрийн гэсэн логиктой байдаг - жишээлбэл, хуучин өгөгдлийг устгах эсвэл амжилтгүй суулгацыг устгах.

Хадгалалтад мөн адил хамаарна; хамгийн гол нь энэ платформ нь төвлөрсөн хадгалалтад чиглэгддэг. Орон нутгийн хэрэглээнд зориулсан нэмэлтүүд байдаг, гэхдээ энэ тохиолдолд бидний ярьж байгаа зүйл биш юм. Ирээдүйд хэн нэгэн зангилаанууд дээр дотоод хадгалалтыг хэрхэн ашиглаж, үйлдвэрлэлд амжилттай ашиглаж чадсан тухай нийтлэл бичих болно гэж би бодож байна.

5. Хамгийн их энгийн байдал

Мэдээжийн хэрэг, цааш явах тусам таныг ойлгох хүмүүс цөөрөх болно.

Миний индэрийн нөхцөлд - nfs хадгалах 3 зангилаа - бүх зүйл хэвийн ажиллаж байна. Гэхдээ хэрэв бид цахилгаан тасарсантай холбоотой туршилтуудыг хийх юм бол, жишээлбэл, агшин зуурын зураг ажиллуулж, зангилааны хүчийг унтраах үед бид мэдээллийн санд агшин зуурын зураг байгаа тохиргоог хадгалдаг, гэхдээ үнэндээ байхгүй байна (бид бүгдээрээ ойлгодог. Энэ үйлдлийн талаар өгөгдлийн санг анх sql дээр бичсэн боловч үйл ажиллагаа өөрөө амжилттай болсонгүй). Давуу тал нь агшин зуурын зураг үүсгэх үед тусдаа файл үүсдэг бөгөөд "эцэг эх" байдаг тул асуудал гарсан тохиолдолд gui-ээр ажиллахгүй байсан ч бид qcow2 файлыг авч тусад нь сэргээх боломжтой. docs.opennebula.io/5.8/operation/vm_management/vm_instances.html

Сүлжээнд харамсалтай нь бүх зүйл тийм ч хялбар биш юм. Наад зах нь энэ нь openstack-ээс хамаагүй хялбар, би зөвхөн vlan (802.1Q) ашигласан - энэ нь маш сайн ажилладаг, гэхдээ хэрэв та загварын сүлжээнээс тохиргоонд өөрчлөлт оруулбал эдгээр тохиргоог аль хэдийн ажиллаж байгаа машинуудад ашиглахгүй. Та сүлжээний картыг устгаад нэмэх хэрэгтэй, дараа нь шинэ тохиргоо хэрэгжинэ.

Хэрэв та үүнийг нээлттэй стектэй харьцуулахыг хүсч байгаа бол та үүнийг хэлж болно: opennebula-д өгөгдөл хадгалах, сүлжээ, нөөцийг удирдахад ямар технологийг ашиглах талаар тодорхой тодорхойлолт байдаггүй - администратор бүр өөрт нь юу илүү тохиромжтой болохыг өөрөө шийддэг.

6. Нэмэлт залгаасууд болон суулгацууд

Эцсийн эцэст, бидний ойлгож байгаагаар үүл платформ нь зөвхөн kvm төдийгүй vmware esxi-г удирдах боломжтой. Харамсалтай нь надад Vcenter-тэй усан сан байгаагүй, хэрэв оролдсон хүн байвал бичээрэй.

Бусад үүл үйлчилгээ үзүүлэгчдийн дэмжлэгийг зааж өгсөн docs.opennebula.io/5.12/advanced_components/cloud_bursting/index.html
AWS, AZURE.

Би бас Selectel-ээс Vmware Cloud-ийг холбохыг оролдсон боловч юу ч бүтсэнгүй - ерөнхийдөө олон хүчин зүйл байгаа тул үүнийг хаасан бөгөөд хостинг үйлчилгээ үзүүлэгчийн техникийн дэмжлэгт бичих нь утгагүй юм.

Түүнчлэн, одоо шинэ хувилбар нь салюттай болсон - энэ нь докер дээрх kvm-ийн нэг төрөл болох microvm-ийг эхлүүлсэн бөгөөд энэ нь илүү олон талт байдал, аюулгүй байдал, бүтээмжийг нэмэгдүүлэх боломжийг олгодог. Миний Docker-ээс харж байгаа цорын ганц давуу тал бол энэ эмуляцийг ашиглах үед нэмэлт процесс шаарддаггүй бөгөөд энэ эмуляцийг ашиглах үед эзлэгдсэн залгуур байхгүй болно. Үүнийг ачаалал тэнцвэржүүлэгч болгон ашиглах боломжтой (гэхдээ би бүх туршилтыг бүрэн гүйцэд хийж дуустал энэ талаар тусдаа нийтлэл бичих нь зүйтэй болов уу).

7. Ашиглалтын эерэг туршлага, алдаа засах

Би ажлын талаар ажигласан зүйлээ хуваалцахыг хүссэн, заримыг нь дээр дурдсан, би илүү ихийг бичмээр байна. Үнэн хэрэгтээ, энэ нь зөв тогтолцоо биш, ерөнхийдөө энд байгаа бүх зүйл таяг гэж боддог цорын ганц хүн биш байх - тэд үүнтэй хэрхэн ажилладаг вэ? Гэхдээ дараа нь бүх зүйл нэлээд логик юм гэсэн ойлголт ирдэг. Мэдээжийн хэрэг та хүн бүрт таалагдах боломжгүй бөгөөд зарим зүйлийг сайжруулах шаардлагатай.

Жишээлбэл, дискний дүрсийг нэг мэдээллийн сангаас нөгөөд хуулах энгийн үйлдэл. Миний хувьд nfs-тэй 2 зангилаа байдаг, би зургийг илгээдэг - хуулах нь урд талын нээлттэй мананцараар дамждаг, гэхдээ бид бүгд өгөгдлийг хостуудын хооронд шууд хуулах ёстой гэдэгт дассан байдаг - ижил vmware, hyper-v дээр бид. үүнд дассан, гэхдээ энд өөр. Өөр арга барил, өөр үзэл баримтлал байдаг бөгөөд 5.12 хувилбарт тэд "өгөгдлийн сан руу шилжих" товчийг устгасан - зөвхөн машин өөрөө л дамждаг, гэхдээ хадгалах газар биш, учир нь төвлөрсөн хадгалалт гэсэн үг.

Дараа нь янз бүрийн шалтгааны улмаас түгээмэл тохиолддог алдаа юм: "Виртуал машиныг байрлуулах алдаа: /var/lib/one//datastores/103/10/deployment.5-аас домэйн үүсгэж чадсангүй." Доорх нь хамгийн чухал зүйл юм.

  • Oneadmin хэрэглэгчийн зургийн эрх;
  • oneadmin хэрэглэгчийн libvirtd-г ажиллуулах зөвшөөрөл;
  • Өгөгдлийн санг зөв суурилуулсан уу? Явж, зангилаа дээрх замыг шалгана уу, магадгүй ямар нэг зүйл унасан байх;
  • Сүлжээг буруу тохируулсан, эс тэгвээс урд талдаа сүлжээний тохиргоонд vlan-ийн үндсэн интерфэйс нь br0, харин зангилаа дээр bridge0 гэж бичигдсэн байдаг - энэ нь ижил байх ёстой.

Системийн мэдээллийн сан нь таны vm-ийн мета өгөгдлийг хадгалдаг, хэрэв та vm-г байнгын дүрсээр ажиллуулж байгаа бол vm нь таны vm-г үүсгэсэн хадгалах сан дээр анх үүсгэсэн тохиргоонд хандах эрхтэй байх шаардлагатай - энэ нь маш чухал юм. Тиймээс, vm-г өөр мэдээллийн сан руу шилжүүлэхдээ бүх зүйлийг дахин шалгах хэрэгтэй.

8. Баримт бичиг, хамт олон. Цаашдын хөгжил

Үлдсэн хэсэг нь сайн бичиг баримт, олон нийт, гол зүйл бол төсөл цаашид үргэлжлүүлэн амьдрах явдал юм.

Ерөнхийдөө бүх зүйл маш сайн баримтжуулсан бөгөөд албан ёсны эх сурвалжийг ашиглавал суулгах, асуултын хариултыг олоход асуудал гарахгүй.

Олон нийт, идэвхтэй. Суулгацдаа ашиглаж болох олон бэлэн шийдлүүдийг нийтэлдэг.

Одоогийн байдлаар 5.12-оос хойш компанийн зарим бодлого өөрчлөгдсөн forum.opennebula.io/t/towards-a-stronger-opennebula-community/8506/14 Төсөл хэрхэн хөгжихийг харах сонирхолтой байх болно. Эхэндээ би өөрсдийн шийдлүүдийг ашигладаг зарим борлуулагчид болон салбарын санал болгож буй зүйлийг тусгайлан онцолсон. Мэдээжийн хэрэг, юу хэрэглэх талаар тодорхой хариулт байхгүй байна. Гэхдээ жижиг байгууллагуудын хувьд жижиг хувийн үүлээ хадгалах нь санагдсан шиг тийм ч үнэтэй биш байж магадгүй юм. Хамгийн гол нь танд яг юу хэрэгтэй байгааг мэдэх явдал юм.

Үүний үр дүнд та үүлэн системийг сонгохоос үл хамааран нэг бүтээгдэхүүн дээр зогсох ёсгүй. Хэрэв танд цаг байгаа бол бусад нээлттэй шийдлүүдийг авч үзэх нь зүйтэй юм.

Сайхан чат байна t.me/opennebula Тэд таныг Google-ээс асуудлаа шийдэх арга замыг хайхад идэвхтэй тусалдаг бөгөөд илгээдэггүй. Бидэнтэй нэгд.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх