Openstack дахь ачааллыг тэнцвэржүүлэх

Томоохон үүлэн системүүдэд тооцоолох нөөцийн ачааллыг автоматаар тэнцвэржүүлэх эсвэл тэгшлэх асуудал онцгой хурцаар тавигддаг. Tionix (Ростелеком компаниудын нэг хэсэг болох үүлэн үйлчилгээний хөгжүүлэгч, оператор) мөн энэ асуудлыг шийдэж өгсөн.

Манай хөгжүүлэлтийн үндсэн платформ нь Openstack бөгөөд бид бүх хүмүүсийн адил залхуу байдаг тул платформд аль хэдийн орсон бэлэн модулийг сонгохоор шийдсэн. Бидний сонголт Watcher дээр унасан бөгөөд бид үүнийг хэрэгцээнд ашиглахаар шийдсэн.
Openstack дахь ачааллыг тэнцвэржүүлэх
Эхлээд нэр томъёо, тодорхойлолтыг харцгаая.

Нэр томъёо ба тодорхойлолтууд

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

Үйлдэл Энэ нь OpenStack кластерын удирдаж буй зорилтот нөөцийн одоогийн төлөвийг өөрчилдөг энгийн ажил юм, тухайлбал: виртуал машин шилжүүлэх (шилжүүлэх), зангилааны тэжээлийн төлөвийг өөрчлөх (зангилааны_хүчний_төлөвийг өөрчлөх), nova үйлчилгээний төлөвийг өөрчлөх (nova_service_state) ), амтыг өөрчлөх (хэмжээг өөрчлөх), NOP мессежийг бүртгэх (nop), тодорхой хугацааны туршид үйлдэл хийхгүй байх - түр зогсоох (унтах), диск шилжүүлэх (эзлэхүүн_шилжүүлэх).

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

Аудит нь кластерыг оновчтой болгох хүсэлт юм. Өгөгдсөн кластерт нэг зорилгод хүрэхийн тулд оновчлолыг хийдэг. Амжилттай аудит бүрийн хувьд Watcher Үйл ажиллагааны төлөвлөгөө гаргадаг.

Аудитын хамрах хүрээ нь аудит хийж байгаа нөөцийн багц юм (хүртээмжтэй бүс(үүд), зангилааны агрегаторууд, бие даасан тооцооллын зангилаа эсвэл хадгалах цэгүүд гэх мэт). Загвар бүрт аудитын хамрах хүрээг тодорхойлсон. Хэрэв аудитын хамрах хүрээг заагаагүй бол кластерийг бүхэлд нь аудит хийнэ.

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

Бөөгнөрөл нь тооцоолох, хадгалах, сүлжээний нөөцөөр хангадаг физик машинуудын цуглуулга бөгөөд ижил OpenStack удирдлагын зангилаагаар удирддаг.

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

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

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

Онооны хөдөлгүүр нь сайн тодорхойлогдсон оролттой, тодорхой гаралттай, цэвэр математикийн даалгавар гүйцэтгэдэг, гүйцэтгэх боломжтой файл юм. Ингэснээр тооцоолол нь хийгдэж буй орчноос хамааралгүй бөгөөд хаана ч ижил үр дүнг өгөх болно.

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

Ажиглагчийн зорилго ба стратеги

Зорилго
Стратеги

Муухай зорилго
Хуурамч стратеги 

Үнэлгээний загваруудыг ашиглан дамми стратеги

Хэмжээг өөрчилсөн хуурамч стратеги

Эрчим хүч хэмнэх
Эрчим хүч хэмнэх стратеги

Серверийг нэгтгэх
Офлайн серверийн үндсэн нэгдэл

VM ажлын ачааллыг нэгтгэх стратеги

Ажлын ачааллыг тэнцвэржүүлэх
Ажлын ачааллыг тэнцвэржүүлэх шилжилт хөдөлгөөний стратеги

Хадгалах багтаамжийн тэнцвэрийн стратеги

Ажлын ачааллыг тогтворжуулах

Шуугиантай хөрш
Шуугиантай хөрш

Дулааны оновчлол
Гаралтын температурт суурилсан стратеги

Агаарын урсгалыг оновчтой болгох
Агаарын урсгалын жигд шилжих стратеги

Тоног төхөөрөмжийн засвар үйлчилгээ
Бүсийн шилжилт хөдөлгөөн

ангилагдаагүй
Ашиглагч

Муухай зорилго - туршилтын зорилгоор ашигладаг нөөц зорилго.

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

Түүврийн онооны хөдөлгүүрийг ашигладаг хуурамч стратеги - стратеги нь өмнөхтэй төстэй бөгөөд цорын ганц ялгаа нь машин сургалтын аргуудыг ашиглан тооцоо хийдэг түүврийн "онооллын хөдөлгүүр" ашиглах явдал юм.

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

Үйлдвэрлэлд ашигладаггүй.

Эрчим хүч хэмнэх - эрчим хүчний хэрэглээг багасгах. Энэхүү зорилгын эрчим хүч хэмнэх стратеги нь VM-ийн ажлын ачааллыг нэгтгэх стратегийн (Серверийн нэгдлийн) хамт нөөц багатай үед ч ажлын ачааллыг динамикаар нэгтгэх замаар эрчим хүчийг хэмндэг динамик тэжээлийн удирдлагын (DPM) боломжуудтай: виртуал машинуудыг цөөн цэгт шилжүүлдэг. , шаардлагагүй зангилаанууд идэвхгүй болсон. Стратеги нь нэгтгэсний дараа заасан параметрийн дагуу зангилааг асаах/унтраах шийдвэрийг санал болгож байна: "min_free_hosts_num" - ачааллыг хүлээж байгаа чөлөөт идэвхжүүлсэн зангилааны тоо, "үнэгүй_ашигласан_хувь" - үнэгүй идэвхжүүлсэн хостуудын эзлэх хувь. машинууд эзэлдэг зангилааны тоо. Стратеги ажиллахын тулд тэнд байх ёстой Ironic-г идэвхжүүлж, тохируулсан бөгөөд зангилаанууд дээрх цахилгааны эргэлтийг зохицуулах боломжтой.

Стратегийн параметрүүд

сонголт
төрөл
анхдагчаар
тодорхойлолт

үнэгүй ашигласан_хувь
тоо
10.0
Үнэгүй тооцоолох зангилааны тоог виртуал машинтай тооцоолох зангилааны тоонд харьцуулсан харьцаа

мин_үнэгүй_хостын_тоо
Int
1
хамгийн бага тооны чөлөөт тооцооллын зангилааны тоо

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

Серверийг нэгтгэх - тооцоолох зангилааны тоог багасгах (нэгтгэх). Энэ нь үндсэн офлайн сервер нэгтгэх ба VM ажлын ачааллыг нэгтгэх стратеги гэсэн хоёр стратегитай.

Офлайн серверийн нэгтгэлийн үндсэн стратеги нь ашигласан серверүүдийн нийт тоог багасгаж, шилжих тоог багасгадаг.

Үндсэн стратеги нь дараахь хэмжүүрүүдийг шаарддаг.

хэмжүүр
үйлчилгээ
залгаасууд
тайлбар

тооцоолох. зангилаа. cpu. хувь
цеилометр
ямар ч
 

cpu_util
цеилометр
ямар ч
 

Стратегийн параметрүүд: migration_thrempts - унтрах боломжит нэр дэвшигчдийг хайх хослолын тоо (анхдагч, 0, хязгаарлалтгүй), хугацаа - хэмжигдэхүүний мэдээллийн эх сурвалжаас статик нэгтгэлийг авах секундын хугацааны интервал (анхдагч, 700).

Ашигласан аргууд: шилжих, nova үйлчилгээний төлөвийг өөрчлөх (change_nova_service_state).

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

  1. Буулгах үе шат - хэт их ашигласан нөөцийг боловсруулах;
  2. Нэгтгэх үе шат - дутуу ашиглагдаагүй нөөцийг зохицуулах;
  3. Шийдлийг оновчтой болгох - шилжилт хөдөлгөөний тоог багасгах;
  4. Ашиглагдаагүй тооцоолох цэгүүдийг идэвхгүй болгож байна.

Стратеги нь дараахь хэмжүүрүүдийг шаарддаг.

хэмжүүр
үйлчилгээ
залгаасууд
тайлбар

санах ойн
цеилометр
ямар ч
 

disk.root.size
цеилометр
ямар ч
 

Дараах хэмжүүрүүд нь сонголттой боловч боломжтой бол стратегийн нарийвчлалыг сайжруулах болно:

хэмжүүр
үйлчилгээ
залгаасууд
тайлбар

санах ой.оршин суугч
цеилометр
ямар ч
 

cpu_util
цеилометр
ямар ч
 

Стратегийн параметрүүд: хугацаа — хэмжигдэхүүний өгөгдлийн эх сурвалжаас статик нэгтгэлийг авах хугацааны интервал секундээр (өгөгдмөл, 3600).

Өмнөх стратегитай ижил аргуудыг ашигладаг. Илүү дэлгэрэнгүй мэдээллийг энд.

Ажлын ачааллыг тэнцвэржүүлэх — тооцооллын зангилаа хоорондын ажлын ачааллыг тэнцвэржүүлэх. Зорилго нь Ажлын ачааллыг тэнцвэржүүлэх шилжих стратеги, Ачааллыг тогтворжуулах, Хадгалах чадавхийг тэнцвэржүүлэх стратеги гэсэн гурван стратегитай.

Ажлын ачааллыг тэнцвэржүүлэх шилжих стратеги нь хостын виртуал машины ажлын ачаалал дээр тулгуурлан виртуал машины шилжилт хөдөлгөөнийг явуулдаг. Зангилааны % CPU эсвэл RAM ашиглалт нь тогтоосон босго хэмжээнээс хэтэрсэн тохиолдолд шилжих шийдвэрийг гаргадаг. Энэ тохиолдолд шилжүүлсэн виртуал машин нь зангилааг бүх зангилааны дундаж ачаалалд ойртуулах ёстой.

шаардлага

  • Физик процессор ашиглах;
  • Дор хаяж хоёр физик тооцооллын зангилаа;
  • Тооцооллын зангилаа бүр дээр ажилладаг ceilometer-агент-тооцоолол, Ceilometer API-г суулгаж, тохируулж, дараах хэмжүүрүүдийг цуглуулсан:

хэмжүүр
үйлчилгээ
залгаасууд
тайлбар

cpu_util
цеилометр
ямар ч
 

санах ой.оршин суугч
цеилометр
ямар ч
 

Стратегийн параметрүүд:

сонголт
төрөл
анхдагчаар
тодорхойлолт

хэмжүүр
String
'cpu_util'
Үндсэн хэмжүүрүүд нь: 'cpu_util', 'memory.resident'.

босго
тоо
25.0
Шилжин суурьших ажлын ачааллын босго.

хугацаа
тоо
300
Хуримтлагдсан хугацааны Целометр.

Ашигласан арга бол шилжилт хөдөлгөөн юм.

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

шаардлага

  • Физик процессор ашиглах;
  • Дор хаяж хоёр физик тооцооллын зангилаа;
  • Тооцооллын зангилаа бүр дээр ажилладаг ceilometer-агент-тооцоолол, Ceilometer API-г суулгаж, тохируулж, дараах хэмжүүрүүдийг цуглуулсан:

хэмжүүр
үйлчилгээ
залгаасууд
тайлбар

cpu_util
цеилометр
ямар ч
 

санах ой.оршин суугч
цеилометр
ямар ч
 

Хадгалах чадавхийг тэнцвэржүүлэх стратеги (Quens-ээс эхлэн хэрэгжүүлсэн стратеги) - стратеги нь Cinder усан сангуудын ачааллаас хамааран дискийг шилжүүлдэг. Усан сангийн ашиглалтын түвшин тогтоосон босго хэмжээнээс хэтэрсэн тохиолдолд шилжүүлгийн шийдвэрийг гаргадаг. Зөөж буй диск нь усан санг бүх Cinder усан сангийн дундаж ачаалалд ойртуулах ёстой.

Шаардлага ба хязгаарлалт

  • Хамгийн багадаа хоёр Cinder усан сан;
  • Дискийг шилжүүлэх боломж.
  • Кластер өгөгдлийн загвар - Cinder кластер өгөгдлийн загвар цуглуулагч.

Стратегийн параметрүүд:

сонголт
төрөл
анхдагчаар
тодорхойлолт

эзлэхүүний_босго
тоо
80.0
Эзлэхүүнийг тэнцвэржүүлэх дискний босго утга.

Ашигласан арга нь дискний шилжилт (bolume_migrate) юм.

Шуугиантай хөрш - Сүүлийн түвшний кэшийг хэтрүүлэн ашигласнаар IPC-ийн хувьд өндөр ач холбогдолтой виртуал машины гүйцэтгэлд сөргөөр нөлөөлж буй "шуугиантай хөрш"-ийг тодорхойлж, шилжүүлэх. Өөрийн стратеги: Дуу чимээтэй хөрш (стратегийн параметр нь cache_threshold (өгөгдмөл утга нь 35) бөгөөд гүйцэтгэл нь заасан утга хүртэл буурах үед шилжилт хөдөлгөөн эхэлдэг. Стратеги ажиллахын тулд идэвхжүүлсэн. ХХК (Сүүлийн түвшний кэш) хэмжигдэхүүн, CMT дэмжлэгтэй хамгийн сүүлийн үеийн Intel сервер, түүнчлэн дараах хэмжүүрүүдийг цуглуулах:

хэмжүүр
үйлчилгээ
залгаасууд
тайлбар

cpu_l3_cache
цеилометр
ямар ч
Intel шаардлагатай CMT.

Кластер өгөгдлийн загвар (өгөгдмөл): Нова кластер өгөгдлийн загвар цуглуулагч. Ашигласан арга бол шилжилт хөдөлгөөн юм.

Хяналтын самбараар дамжуулан энэ зорилттой ажиллах нь Queens-д бүрэн хэрэгждэггүй.

Дулааны оновчлол - температурын горимыг оновчтой болгох. Гаралтын (яндангийн агаарын) температур нь серверийн дулааны/ажлын төлөвийг хэмжих чухал дулааны телеметрийн системүүдийн нэг юм. Зорилтот нэг стратеги нь Гаралтын температурт суурилсан стратеги бөгөөд эх үүсвэрийн хостуудын гаралтын температур тохируулж болох босго хэмжээнд хүрэх үед ажлын ачааллыг дулааны хувьд таатай хостууд руу (хамгийн бага гаралтын температур) шилжүүлэхээр шийддэг.

Стратеги ажиллахын тулд танд Intel Power Node Manager суулгаж, тохируулсан сервер хэрэгтэй 3.0 буюу түүнээс дээш, түүнчлэн дараах хэмжүүрүүдийг цуглуулах:

хэмжүүр
үйлчилгээ
залгаасууд
тайлбар

hardware.ipmi.node.outlet_temperature
цеилометр
IPMI
 

Стратегийн параметрүүд:

сонголт
төрөл
анхдагчаар
тодорхойлолт

босго
тоо
35.0
Шилжин суурьших температурын босго.

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

Ашигласан арга бол шилжилт хөдөлгөөн юм.

Агаарын урсгалыг оновчтой болгох — агааржуулалтын горимыг оновчтой болгох. Өөрийн стратеги - Амьд шилжих хөдөлгөөнийг ашиглан жигд агаарын урсгал. Энэ стратеги нь серверийн сэнсээс гарах агаарын урсгал нь тогтоосон босго хэмжээнээс хэтэрсэн тохиолдолд виртуал машин шилжих хөдөлгөөнийг идэвхжүүлдэг.

Стратеги ажиллахын тулд танд дараахь зүйлс хэрэгтэй болно.

  • Техник хангамж: тооцоолох цэгүүд < NodeManager 3.0-ийг дэмждэг;
  • Хамгийн багадаа хоёр тооцоолох цэг;
  • Агаарын урсгал, системийн хүч, оролтын температур зэрэг хэмжигдэхүүнийг амжилттай мэдээлэх боломжтой ceilometer-agent-compute болон Ceilometer API бүрэлдэхүүнийг тооцоолох цэг бүр дээр суулгаж, тохируулсан:

хэмжүүр
үйлчилгээ
залгаасууд
тайлбар

техник хангамж.ipmi.зангилаа.агаарын урсгал
цеилометр
IPMI
 

техник хангамж.ipmi.зангилаа.температур
цеилометр
IPMI
 

техник хангамж.ipmi. зангилаа. хүч
цеилометр
IPMI
 

Стратеги ажиллахын тулд танд Intel Power Node Manager 3.0 эсвэл түүнээс хойшхи хувилбарыг суулгаж, тохируулсан сервер хэрэгтэй.

Хязгаарлалт: Энэхүү үзэл баримтлал нь үйлдвэрлэлд зориулагдаагүй болно.

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

Амьд шилжилт хөдөлгөөн хийх боломжтой.

Стратегийн параметрүүд:

сонголт
төрөл
анхдагчаар
тодорхойлолт

босго_агаарын урсгал
тоо
400.0
Шилжилтийн нэгжийн агаарын урсгалын босго нь 0.1CFM байна

босго_оролтын_t
тоо
28.0
Шилжилтийн шийдвэр гаргах оролтын температурын босго

босго_хүч
тоо
350.0
Шилжилтийн шийдвэр гаргах системийн чадлын босго

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

Ашигласан арга бол шилжилт хөдөлгөөн юм.

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

Хязгаарлалтууд: үйлдлийн жин ба параллель байдлыг тохируулах шаардлагатай.

Стратегийн параметрүүд:

сонголт
төрөл
анхдагчаар
тодорхойлолт

тооцоолох_зангилаа
массив
Аль нь ч биш
Шилжилтийн цэгүүдийг тооцоолох.

хадгалах_цөөрөм
массив
Аль нь ч биш
Шилжин суурьшихад зориулсан хадгалах цэгүүд.

зэрэгцээ_нийт
бүхэл тоо
6
Зэрэгцээ хийгдэх ёстой үйл ажиллагааны нийт тоо.

Зангилаа бүрт параллель
бүхэл тоо
2
Тооцооллын зангилаа тус бүрийн зэрэгцээ гүйцэтгэсэн үйлдлийн тоо.

нэг бассейнд параллель
бүхэл тоо
2
Хадгалах сан бүрийн хувьд зэрэгцээ гүйцэтгэсэн үйлдлийн тоо.

тэргүүлэх ач холбогдол
объект
Аль нь ч биш
Виртуал машин болон дискний тэргүүлэх жагсаалт.

хавсаргасан_эзлэхүүнтэй
boolean
хуурамч
Худал - бүх дискийг шилжүүлсний дараа виртуал машинууд шилжинэ. Үнэн—холбогдсон бүх дискийг шилжүүлсний дараа виртуал машинууд шилжинэ.

Тооцооллын зангилааны массивын элементүүд:

сонголт
төрөл
анхдагчаар
тодорхойлолт

src_node
мөр
Аль нь ч биш
Виртуал машинуудыг шилжүүлж буй тооцоолох цэг (шаардлагатай).

dst_node
мөр
Аль нь ч биш
Виртуал машинууд шилжиж байгаа зангилааг тооцоол.

Хадгалах зангилааны массив элементүүд:

сонголт
төрөл
анхдагчаар
тодорхойлолт

src_pool
мөр
Аль нь ч биш
Дискүүдийг шилжүүлж буй хадгалах сан (шаардлагатай).

dst_pool
мөр
Аль нь ч биш
Дискүүдийг шилжүүлэх хадгалах сан.

src_type
мөр
Аль нь ч биш
Жинхэнэ дискний төрөл (шаардлагатай).

dst_type
мөр
Аль нь ч биш
Үүссэн дискний төрөл (шаардлагатай).

Объектийн тэргүүлэх элементүүд:

сонголт
төрөл
анхдагчаар
тодорхойлолт

төсөл
массив
Аль нь ч биш
Төслийн нэрс.

тооцоолох_зангилаа
массив
Аль нь ч биш
Зангилааны нэрийг тооцоолох.

хадгалах_сан
массив
Аль нь ч биш
Хадгалах сангийн нэрс.

тооцоолох
тоолох
Аль нь ч биш
Виртуал машины параметрүүд [“vcpu_num”, “mem_size”, “disk_size”, “created_at”].

хадгалах
тоолох
Аль нь ч биш
Дискний параметрүүд ["хэмжээ", "үүсгэсэн_ат"].

Ашигласан аргууд нь виртуал машины шилжилт, дискний шилжилт юм.

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

Шинэ зорилго бий болгох

Харагч шийдвэрийн хөдөлгүүр стратеги ашиглан хүрч болох гадаад зорилгыг нэгтгэх боломжтой болгодог "гадаад зорилго" залгаас интерфэйстэй.

Шинэ зорилго үүсгэхээсээ өмнө одоо байгаа зорилго тань таны хэрэгцээнд нийцэхгүй байгаа эсэхийг шалгах хэрэгтэй.

Шинэ залгаас үүсгэж байна

Шинэ зорилт үүсгэхийн тулд та: зорилтот ангиа өргөтгөх, ангийн аргыг хэрэгжүүлэх шаардлагатай авах_нэр() үүсгэхийг хүсч буй шинэ зорилтын өвөрмөц ID-г буцаах. Энэ өвөрмөц танигч нь таны дараа зарлах нэвтрэх цэгийн нэртэй тохирч байх ёстой.

Дараа нь та ангийн аргыг хэрэгжүүлэх хэрэгтэй авах_дэлгэцийн_нэр() үүсгэхийг хүсч буй зорилтын орчуулагдсан дэлгэцийн нэрийг буцаах (орчуулсан мөрийг буцаахын тулд хувьсагчийг бүү ашигла, ингэснээр орчуулгын хэрэглүүр автоматаар цуглуулна.).

Ангийн аргыг хэрэгжүүлэх орчуулагдах_дэлгэцийн_нэр()өөрийн шинэ зорилтот орчуулгын түлхүүрийг (үнэндээ англи дэлгэцийн нэр) буцааж өгөх. Буцах утга нь get_display_name() руу орчуулагдсан мөртэй тохирч байх ёстой.

Түүний аргыг хэрэгжүүл үр_өгөөжийн_тодорхойлолт()өөрийн зорилтот үр ашгийн тодорхойлолтыг буцаах. get_efficacy_specification() арга нь Watcher-аас өгсөн Unclassified() жишээг буцаана. Энэхүү гүйцэтгэлийн тодорхойлолт нь хоосон тодорхойлолттой тохирч байгаа тул зорилгоо боловсруулах явцад хэрэгтэй болно.

Эндээс харах

Харагч архитектур (дэлгэрэнгүй мэдээлэл) энд).

Openstack дахь ачааллыг тэнцвэржүүлэх

Бүрэлдэхүүн хэсгүүд

Openstack дахь ачааллыг тэнцвэржүүлэх

Watcher API - Watcher-аас өгсөн REST API-г хэрэгжүүлдэг бүрэлдэхүүн хэсэг. Харилцааны механизмууд: CLI, Horizon залгаас, Python SDK.

Ажиглагч ДБ - Харагч мэдээллийн сан.

Watcher Applier — Watcher Decision Engine бүрэлдэхүүн хэсгээс бий болгосон үйл ажиллагааны төлөвлөгөөний гүйцэтгэлийг хэрэгжүүлэх бүрэлдэхүүн хэсэг.

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

Watcher Metrics Publisher - Зарим хэмжигдэхүүн эсвэл үйл явдлыг цуглуулж, тооцоолж, тэдгээрийг CEP-ийн төгсгөлд нийтэлдэг бүрэлдэхүүн хэсэг. Бүрэлдэхүүн хэсгийн ажиллагааг Ceilometer нийтлэгчээр хангаж болно.

Complex Event Processing (CEP) хөдөлгүүр - үйл явдлыг нарийн төвөгтэй боловсруулах хөдөлгүүр. Гүйцэтгэлийн шалтгааны улмаас CEP Engine-ийн олон тохиолдол зэрэг ажиллаж болох бөгөөд тус бүр нь тодорхой төрлийн хэмжигдэхүүн/үйл явдлыг боловсруулдаг. Watcher системд CEP ​​нь хоёр төрлийн үйлдлийг өдөөдөг: - цаг хугацааны цуврал мэдээллийн санд харгалзах үйл явдал / хэмжигдэхүүнийг бүртгэх; - Openstack кластер нь статик систем биш тул энэ үйл явдал нь одоогийн оновчлолын стратегийн үр дүнд нөлөөлж болзошгүй тохиолдолд Watcher Decision Engine руу зохих үйл явдлуудыг илгээнэ үү.

Бүрэлдэхүүн хэсгүүд нь AMQP протоколыг ашиглан харилцан үйлчилдэг.

Watcher-г тохируулж байна

Watcher-тай харилцах схем

Openstack дахь ачааллыг тэнцвэржүүлэх

Ажиглагчийн шинжилгээний үр дүн

  1. Оновчлол - Үйл ажиллагааны төлөвлөгөөний 500 хуудсан дээр (цэвэр Queens болон Tionix модулиудтай тавиур дээр) энэ нь аудитыг эхлүүлж, үйл ажиллагааны төлөвлөгөөг гаргасны дараа л гарч ирнэ; хоосон хуудас нь хэвийн нээгдэнэ.
  2. Үйлдлийн дэлгэрэнгүй таб дээр алдаа байгаа тул аудитын зорилго, стратегийг олж авах боломжгүй байна (цэвэр Queens болон Tionix модулиудтай тавиур дээр).
  3. Дамми (туршилт)-ын зорилготой аудитыг хэвийн явуулж, эхлүүлж, үйл ажиллагааны төлөвлөгөө боловсруулдаг.
  4. Зорилго нь ажиллахгүй бөгөөд шинэ стратеги үүсгэх үед завсрын тохиргоонд зориулагдсан тул Ангилагдаагүй зорилгын аудитыг үүсгэдэггүй.
  5. Ажлын ачааллыг тэнцвэржүүлэх (Хадгалах багтаамжийн тэнцвэрийн стратеги)-ийн аудитыг амжилттай хийсэн боловч үйл ажиллагааны төлөвлөгөө гаргаагүй байна. Хадгалах санг оновчтой болгох шаардлагагүй.
  6. Ажлын ачааллыг тэнцвэржүүлэх зорилтын (Ачааллын тэнцвэржүүлэх шилжилтийн стратеги) аудитыг амжилттай хийсэн боловч үйл ажиллагааны төлөвлөгөө гаргаагүй байна.
  7. Ажлын ачааллыг тэнцвэржүүлэх (Ачааллыг тогтворжуулах стратеги) аудит амжилтгүй болсон.
  8. Шуугиантай хөршийн зорилтот аудитыг амжилттай хийсэн боловч үйл ажиллагааны төлөвлөгөө гаргаагүй байна.
  9. Техник хангамжийн засвар үйлчилгээ хийх аудитыг амжилттай хийсэн, үйл ажиллагааны төлөвлөгөөг бүрэн гаргаагүй (гүйцэтгэлийн үзүүлэлтүүд үүсдэг, гэхдээ үйл ажиллагааны жагсаалт өөрөө үүсдэггүй).
  10. Тооцоолох болон хяналтын зангилаанууд дээрх nova.conf тохиргооны засварууд (үндсэн хэсэгт compute_monitors = cpu.virt_driver) алдааг засдаггүй.
  11. Серверийг нэгтгэх (Үндсэн стратеги)-д чиглэсэн аудит бас амжилтгүй болсон.
  12. Серверийг нэгтгэх (VM ажлын ачааллыг нэгтгэх стратеги)-ийн аудитууд алдаа гарлаа. Бүртгэлд эх сурвалж мэдээллийг авахад алдаа гарсан байна. Ялангуяа алдааны тухай хэлэлцэх энд.
    Бид тохиргооны файлд Watcher-ийг зааж өгөхийг оролдсон (энэ нь тус болсонгүй - бүх Оновчлолын хуудсанд алдаа гарсны үр дүнд тохиргооны файлын анхны агуулга руу буцах нь нөхцөл байдлыг засахгүй):

    [watcher_strategies.basic] өгөгдлийн эх үүсвэр = ceilometer, gnocchi
  13. Эрчим хүч хэмнэх аудит амжилтгүй болсон. Бүртгэлээс харахад асуудал Ironic байхгүй хэвээр байгаа бөгөөд энэ нь baremetal үйлчилгээгүйгээр ажиллахгүй болно.
  14. Дулааны оновчлолын аудит амжилтгүй болсон. Сэргээх арга нь Серверийн нэгтгэл (VM ажлын ачааллыг нэгтгэх стратеги)-тай ижил байна (эх өгөгдлийн алдаа)
  15. Агаарын урсгалыг оновчтой болгох зорилгоор хийсэн аудитууд алдаа гарлаа.

Дараах аудитын гүйцэтгэлийн алдаанууд бас гарч байна. Шийдвэр-engine.log логууд дахь ул мөр (кластерийн төлөв тодорхойлогдоогүй).

→ Алдааны тухай хэлэлцүүлэг энд

дүгнэлт

Бидний хоёр сарын судалгааны үр дүн нь бүрэн хүчин чадалтай, ажлын ачааллыг тэнцвэржүүлэх системийг олж авахын тулд бид энэ хэсэгт Openstack платформын хэрэгслүүдийг боловсронгуй болгох талаар нягт хамтран ажиллах ёстой гэсэн хоёрдмол утгагүй дүгнэлт байв.

Watcher нь асар их боломж бүхий ноцтой, хурдацтай хөгжиж буй бүтээгдэхүүн болох нь батлагдсан бөгөөд үүнийг бүрэн ашиглахад маш их нухацтай ажил шаардагдана.

Гэхдээ энэ талаар цувралын дараагийн нийтлэлүүдэд илүү ихийг хэлэх болно.

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

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