Flexiant Cloud Orchestrator: энэ нь юу дагалддаг

Flexiant Cloud Orchestrator: энэ нь юу дагалддаг

IaaS (Виртуал Дата Төв) үйлчилгээг үзүүлэхийн тулд бид Русоникс Бид арилжааны оркестр ашигладаг Flexiant Cloud Orchestrator (FCO). Энэхүү шийдэл нь нэлээд өвөрмөц архитектуртай бөгөөд үүнийг олон нийтэд мэддэг Openstack болон CloudStack-аас ялгаж өгдөг.

KVM, VmWare, Xen, Virtuozzo6/7, мөн ижил Virtuozzo-ийн контейнеруудыг тооцооллын зангилааны гипервизор болгон дэмждэг. Дэмжигдсэн хадгалах сонголтууд нь локал, NFS, Ceph болон Virtuozzo Storage орно.

FCO нь нэг интерфейсээс олон кластер үүсгэх, удирдахыг дэмждэг. Өөрөөр хэлбэл, та Virtuozzo кластер болон KVM + Ceph кластерыг хулганаар сэлгэх замаар удирдаж болно.

Үндсэндээ FCO нь үүлэн үйлчилгээ үзүүлэгчдэд зориулсан цогц шийдэл бөгөөд үүнд зохион байгуулалтаас гадна тооцоо, бүх тохиргоо, төлбөрийн залгаас, нэхэмжлэх, мэдэгдэл, борлуулагч, тариф гэх мэт орно. Гэсэн хэдий ч тооцооны хэсэг нь Оросын бүх нарийн ширийн зүйлийг багтаах чадваргүй тул бид өөр шийдлийн төлөө түүний хэрэглээг орхисон.

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

Flexiant Cloud Orchestrator: энэ нь юу дагалддаг

Архитектурын хувьд FCO нь хэд хэдэн хэсгээс бүрдэх бөгөөд тус бүр нь бие даасан кодтой, зарим нь өөрийн мэдээллийн сантай байдаг.

Skyline - админ болон хэрэглэгчийн интерфейс
Jade – бизнесийн логик, тооцоо, даалгаврын удирдлага
Бар – үйлчилгээний зохицуулагч, бизнесийн логик болон кластеруудын хооронд мэдээлэл солилцох ажлыг удирдаж, зохицуулдаг.
XVPManager – кластерийн элементүүдийн удирдлага: зангилаа, хадгалалт, сүлжээ, виртуал машин.
XVPAgent – XVPManager-тай харилцахын тулд зангилаанууд дээр суулгасан агент

Flexiant Cloud Orchestrator: энэ нь юу дагалддаг

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

FCO-ийн гол давуу тал нь түүний "хайрцагласан" шинж чанараас үүдэлтэй. Энгийн байдал, минимализм таны үйлчилгээнд байна. Хяналтын зангилааны хувьд Ubuntu дээрх нэг виртуал машин хуваарилагдсан бөгөөд үүнд шаардлагатай бүх багцуудыг суулгасан болно. Бүх тохиргоог тохиргооны файлд хувьсах утга хэлбэрээр байрлуулсан болно:

# cat /etc/extility/config/vars
…
export LIMIT_MAX_LIST_ADMIN_DEFAULT="30000"
export LIMIT_MAX_LIST_USER_DEFAULT="200"
export LOGDIR="/var/log/extility"
export LOG_FILE="misc.log"
export LOG_FILE_LOG4JHOSTBILLMODULE="hostbillmodule.log"
export LOG_FILE_LOG4JJADE="jade.log"
export LOG_FILE_LOG4JTL="tigerlily.log"
export LOG_FILE_LOG4JXVP="xvpmanager.log"
export LOG_FILE_VARS="misc.log"
…

Бүх тохиргоог эхлээд загварт засварлаж, дараа нь генераторыг ажиллуулна
#build-config нь vars файл үүсгэж, тохиргоог дахин уншихыг үйлчилгээнүүдэд тушаана. Хэрэглэгчийн интерфэйс нь сайхан бөгөөд амархан брэнд болно.

Flexiant Cloud Orchestrator: энэ нь юу дагалддаг

Таны харж байгаагаар интерфейс нь хэрэглэгчийн удирдаж болох виджетүүдээс бүрддэг. Тэрээр хуудаснаас виджетүүдийг хялбархан нэмж/устгах боломжтой бөгөөд ингэснээр өөрт хэрэгтэй хяналтын самбарыг үүсгэж болно.

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

  1. Захиалгат залгаасуудыг дэмждэг, жишээлбэл, та өөрийн төлбөрийн арга эсвэл өөрийн гадаад нөөцийг бичиж хэрэглэгчдэд өгөх боломжтой.
  2. Зарим үйл явдлын захиалгат триггерүүд дэмжигддэг, жишээлбэл, анхны виртуал машиныг үүсгэх үед үйлчлүүлэгч рүү нэмэх
  3. Интерфэйс дэх тусгай виджетүүдийг дэмждэг, жишээлбэл, YouTube-ийн видеог хэрэглэгчийн интерфэйс рүү шууд оруулах.

Бүх тохируулга нь Lua дээр суурилсан FDL дээр бичигдсэн байдаг. Хэрэв та Луаг мэддэг бол FDL-д ямар ч асуудал гарахгүй.

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

function register()
    return {"pre_user_api_publish"}
end
   
function pre_user_api_publish(p)  
    if(p==nil) then
        return{
            ref = "cancelPublishImage",
            name = "Cancel publishing",
            description = "Cancel all user’s images publishing",
            triggerType = "PRE_USER_API_CALL",
            triggerOptions = {"publishResource", "publishImage"},
            api = "TRIGGER",
            version = 1,
        }
    end

    -- Turn publishing off
    return {exitState = "CANCEL"}
   
end

Бүртгэлийн функцийг FCO цөм дуудна. Энэ нь дуудах функцын нэрийг буцаана. Энэ функцийн "p" параметр нь дуудлагын контекстийг хадгалдаг бөгөөд үүнийг анх дуудах үед хоосон (тэг) байх болно. Энэ нь бидэнд триггерээ бүртгүүлэх боломжийг олгоно. triggerType-д бид гох нь нийтлэх үйлдлээс ӨМНӨ дуудагдсан бөгөөд зөвхөн хэрэглэгчдэд л нөлөөлнө гэдгийг харуулж байна. Мэдээжийн хэрэг, бид системийн администраторуудад бүх зүйлийг нийтлэхийг зөвшөөрдөг. TriggerOptions-д бид гох асаах үйлдлүүдийг нарийвчлан тодорхойлдог.

Хамгийн гол нь буцах {exitState = "CANCEL"}, ийм учраас гохыг боловсруулсан. Хэрэглэгч өөрийн зургийг хяналтын самбар дээр хуваалцахыг оролдох үед энэ нь бүтэлгүйтлийг буцаана.

FCO архитектурт аливаа объект (диск, сервер, зураг, сүлжээ, сүлжээний адаптер гэх мэт) нь нийтлэг параметрүүдийг агуулсан нөөцийн нэгж хэлбэрээр илэрхийлэгддэг.

  • UUID нөөц
  • нөөцийн нэр
  • нөөцийн төрөл
  • Нөөцийн эзэмшигч UUID
  • нөөцийн төлөв (идэвхтэй, идэвхгүй)
  • нөөцийн мета өгөгдөл
  • нөөцийн түлхүүрүүд
  • Нөөцийг эзэмшдэг бүтээгдэхүүний UUID
  • нөөц VDC

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

Түлхүүрүүд нь тодорхой нөөцүүдийг тэмдэглэж, тэдэнтэй ажиллах логикийг өөрчлөх боломжтой. Жишээлбэл, бид гурван физик зангилааг Жин түлхүүрээр тэмдэглэж, зарим үйлчлүүлэгчийг ижил түлхүүрээр тэмдэглэж, ингэснээр эдгээр зангилаануудыг эдгээр үйлчлүүлэгчдэд биечлэн хуваарилж болно. Бид энэ механизмыг VM-ийнхаа хажууд хөршдөө дургүй VIP үйлчлүүлэгчдэд ашигладаг. Функцийг өөрөө илүү өргөн хүрээнд ашиглах боломжтой.

Лицензийн загвар нь физик зангилааны процессорын цөм бүрийн төлбөрийг багтаадаг. Зардал нь кластерын төрлөөс хамаарна. Жишээлбэл, хэрэв та KVM болон VMware-г хамтад нь ашиглахаар төлөвлөж байгаа бол лицензийн үнэ нэмэгдэх болно.

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

Энэ найрал хөгжимчинтэй хэдэн жил ажилласан болохоор бид маш тохиромжтой гэж тэмдэглэж чадна. Харамсалтай нь бүтээгдэхүүн нь ямар ч дутагдалтай зүйл биш юм:

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

НИЙТ: Ерөнхийдөө бүтээгдэхүүний сэтгэгдэл сайн байна. Бид найрал хөгжим хөгжүүлэгчтэй байнга холбоотой байдаг. Залуус бүтээлч хамтын ажиллагаанд бэлэн байна.

Энгийн байдлаас үл хамааран FCO нь өргөн функцтэй. Цаашдын нийтлэлүүдэд бид дараах сэдвүүдийг илүү гүнзгийрүүлэн судлахаар төлөвлөж байна.

  • FCO дахь сүлжээ
  • live-recovery болон FQP протоколоор хангах
  • өөрийн залгаасууд болон виджетүүдийг бичих
  • Load Balancer болон Acronis зэрэг нэмэлт үйлчилгээг холбох
  • нөөцлөх
  • зангилааг тохируулах, тохируулах нэгдсэн механизм
  • виртуал машины мета өгөгдлийг боловсруулах

З.Я. Хэрэв та бусад зүйлийг сонирхож байвал сэтгэгдэл дээр бичээрэй. Хамтдаа байгаарай!

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

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