То що воно таке: OpenStack?


Програмне середовище OpenStack наразі постійно на шпальтах новинних ресурсів. З одного боку це потужна система підтримки хмарних інфраструктур, яку порівнюють з монстрами на зразок VMWare vCloud, або Amazon Web Services, а з іншого боку -- відкритий код, ліцензія Apache, підтримка численної спільноти. Пропоную вашій увазі реферативний огляд, щось на кшталт особистого конспекту, по системі OpenStack на основі матеріалу з домашнього сайту http://www.openstack.org.

Що таке OpenStack взагалі?

OpenStack це вільно розповсюджуване (ліцензія Apache) ПЗ з відкритим кодом для побудови приватних (private) хмар або таких, що розміщуються на спільно використованих ресурсах (public). OpenStack являє собою хмарну операційну систему, яка має здатність до масивного масштабування, та базується на відкритих стандартах. OpenStack є компонентною платформою, окремі компоненти можуть додаватися або вилучатися з неї за потребою.

OpenStack це також спільнота розробників та технологів хмарних обчислень, яка початково була створена хостінговою компанією RackSpace та влючає на сьогодні більш ніж 60 провідних розробників технологій та більш ніж 1000 учасників проекту.

Основні компоненти OpenStack

1) управляючий компонент (Compute), кодова назва Nova

Здійснює забезпечення (provisioning) та управління (management) великими мережами, що утворені віртуальними машинами. Відмовостійка та масштабована платформа для хмарних обчислень. Не залежить від використованих апаратних засобів та типу гіпервізору. Сам по собі Nova не має будь-яких функцій віртуалізації, але радше використовує програмний інтерфейс застосування (API) від libvirt для взаємодії з усіма підтримуваними гіпервізорами. Функціональність Nova доступна через програмний інтерфейс застосування веб-служб, який є сумісним з програмним інтерфейсом застосування EC2 від Amazone Web Services. Основні функції та особливості Nova:

  • керування життєвим циклом кожного об'єкту
  • керування обчислювальними ресурсами
  • мережна взаємодія та авторизація
  • програмний інтерфейс застосування, базований на REST
  • підтримка асинхронної взаємодії, що логічно узгоджена (consistent) з подіями, що відбуваються
  • не залежить від конкретного гіпервізора: підтримує Xen, XenServer/XCP, KVM, UML, VMware vSphere та Hyper-V

Основні компоненти Nova:

сервер програмного інтерфейсу застосування (API server, nova-api)
Сервер програмного інтерфейсу застосування забезпечує інтерфейс, через який зовнішній світ здатний взаємодіяти з хмарною інфраструктурою. Це єдиний компонент, який використовується зовнішнім світом для керування інфраструктурою. Керування здійснюється за допомогою викликів веб-сервісів, що використовують інтерфейс EC2. У свою чергу сервер програмного інтерфейсу застосування взаємодіє з відповідними компонентами хмарної інфраструктури через буфер повідомлень. У якості альтернативи до інтерфейсу EC2 OpenStack також надає власний програмного інтерфейс під назвою "OpenStack API"
буфер повідомлень (Message Queue, rabbit-mq server)
Контролер хмари OpenStack взаємодіє з іншими компонентами, такими як Планувальник, Контролер мережі та Контролер томів за протоколом AMQP (Advanced Message Queue Protocol). Nova використовує асинхронні виклики для замовлення результатів запитів, при чому повернення результатів відбувається у вигляді зворотнього виклику, що здійснюється відразу після того, як ці результати підготовані. В наслідок використання асинхронної взаємодії ніякі операції користувачів не зупиняються надовго для очікування. Це є тим більше важливим, оскільки багато дій, що виконуються у результаті викликів програмного інтерфейсу застосування, такі як запуск віртуальної системи або завантаження образу, потребують дуже багато часу
сервісні виконавці обчислень (Compute Workers, nova-compute)
Сервісні виконавці обчислень мають справу з керуванням життєвим циклом віртуальних систем. Вони отримують запити щодо керування життєвим циклом через Буфер повідомлень та виконують відповідні дії. В типовій виробничій хмарній системі існують декілька сервісних виконавців. Віртуальна система розташовується на будь-якому з вільних сервісних виконавців на основі використованого алгоритму планування
контролер мережі (Network Controller, nova-network)
Контролер мережі забезпечує мережні налаштування на серверах платформи (host machines). Він здійснює розподіл IP-адрес, конфігурування VLAN для проектів, створює групи відповідно до вимог безпеки налаштовує мережу для віддалених вузлів
виконавці операцій з томами (Volume Workers, nova-volume)
Виконавці операцій з томами використовуються для керування томами на основі технології LVM, що використовуються віртуальними системами. Виконавці операцій з томами здійснюють такі операції як створення, видалення, призначення томів до віртуальних систем та відміна призначення. Томи є засобом створення сховищ необмеженого за часом збереження даних, в той час як основний тім віртуальної системи не забезпечує довготривалого збереження даних, змінена інформація на ньому втрачається після відміни призначення до віртуальної системи та поновлюється той стан інформації, в якому вона була в момент призначення тому до віртуальної системи. До збережених даних доступ відновлюється після того, як тім знову призначається до тієї самої або іншої віртуальної системи.
Будь-які цінні дані, які збираються протягом життєвого циклу віртуальної системи, мають бути збережені томі, таким чином, що до них можна отримати доступ пізніше. Це за звичай стосується сховищ даних, що використовують сервери баз даних тощо
планувальник (Scheduler, nova-scheduler)
Планувальник спрямовує виклики Сервера програмного інтерфейсу застосування на відповідні компоненти OpenStack. Він функціонує як демон nova-scheduler, обираючи з пулу наявних ресурсів сервісного виконавця згідно використаного алгоритму планування. Планувальник може приймати рішення з огляду на різні фактори, такі як навантаження, зайнятість пам'яті, фізична відстань до зони доступу (availability zone), архітектури процесора, тощо. Планувальник має архітектуру, що підтримує використання додатків розширення (pluggable architecture).
Наразі nova-scheduler реалізує декілька основних алгоритмів планування:
  • лотерея (chance): в цьому методі виконавець обирається випадково в будь-якій зоні доступу
  • по зоні доступу: подібно до лотереї, але виконавець випадково обирається в зазначеній зоні доступу
  • простий: в цьому методі для розташування віртуальної системи обирається виконавець, що має найменше навантаження. Інформація про поточне навантаження може бути отримана від балансувальника навантаження

2) об'єктне сховище даних (Object storage), кодова назва Swift

Захищене та надійне сховище для петабайтів даних, яке побудовано на стандартних апаратних засобах. Це не файлова система чи структура даних реального часу. Скоріше, це довготривале сховище для великих обсягів статичних даних, які можна витягти, використати або оновити. Використовує розподілену архітектуру без єдиної точки відмови, має високу відмовостійкість, масштабованість та продуктивність. Може використовуватися компонентом Glance для збереження образів миттєвих знімків.

3) сервіс образів (Image service), кодова назва Glance

Створення (create), впорядкування (catalog) та управління (manage) масивними бібліотеками образів миттєвих знімків (snapshots) комп'ютерних вузлів. Здійснює знайдення, реєстрацію та надання у використання віртуальних дискових образів. Наявний програмний інтерфейс застосування забезпечує стандартний інтерфейс REST для запитів щодо інформації про віртуальні дискові образи, які зберігаються у різноманітних системах, включаючи Object storage. Клієнти можуть реєструвати нові дискові образи, запитувати інформацію про загально доступні образи, використовувати клієнтську бібліотеку Image service для потокового використання (streaming) віртуальних дискових образів.

Нещодавно додані компоненти

4) сервіс ідентифікації (Identity), кодова назва Keystone

Уніфікована аутентифікація для всіх проектов OpenStack, яка інтегрується з існуючими системами аутентифікації.

5) панель керування (Dashboard), кодова назва Horizon

Надання адміністраторам та користувачам засобів доступу та керування ресурсами, базованими у хмарі, за допомогою порталу самообслуговування.

Взаємодія користувачів з OpenStack можлива через панель керування або через застосування, які використовують програмний інтерфейс застосування OpenStack.

Переваги OpenStack

керованість та гнучкість
Незалежність від фірмових технологій окремих виробників, модульна структура, сумісність з системами, що вже існують, або розробками третіх сторін з метою максимального виконання ваших бізнес-вимог
масштабованість
Використання глобальними корпораціями в масивно масштабованих хмарах на спільно використовуваних ресурсах (public) та у приватних хмарах
відкритий промисловий стандарт
більш ніж 50 провідних розробників -- таких як Cisco, Citrix, Dell, Intel, Microsoft, беруть участь у спільності OpenStack. Нові хмари на основі OpenStack знаходяться у процесі створення по всьому світу
відкритість та сумісність
Відкритий код та ліцензія використання Apache захищає від потрапляння у залежність до єдиного виробника. Сумісність з тисячами хмар, що вже існують, на спільно використовуваних та приватних ресурсах, безшовна міграція від хмари до хмари
гнучкість технології
присутність у екосистемі світових лідерів з технологій обумовлює підтримку хмарами широкого розмаїття особливостей (features). Наприклад, підтримувані гіпервізори включають ESX, Hyper-V, KVM, LXC, QEMU, UML, Xen, XenServer

Інші статті за темою
  1. Три гарантованих шляхи як послати до дідька хмарні обчислення
  2. Переосмислення хмарних обчислень -- черговий раз
  3. Хмарні обчислення: визначення NIST

Copyright © 2012 Dnipro Networks
Всі права захищені. Використання повністю або частково оригінальних матеріалів з цієї сторінки має супроводжуватися посиланням на сайт Dnipro Networks.