Комментарии 22
Во всём openstack'е меня пугает только libvirt. Очевидный же костыль поверх остальных систем виртуализации.
+1
Ну, может и без libvirt можно обойтись. ;-) С Xen, я слышал, openstack напрямую работает, без костылей.
0
Это очень сложный вопрос. Дело в том, что «напрямую» с зеном работать несколько сложно — это всё-таки гипервизор. Обычно там ниже тулстек (xm, xl, xapi), с которым работают через XenAPI. Однако, даже XenAPI в некоторых местах упирается в довольно уродливые костыли…
+1
Эм… я, кажется, не так выразился, в том случае разговор шёл про Xen Cloud Platform.
0
Попытка притащить в openstack xapi выглядит вообще, даже, не костылём, а так, «прислонили, вроде держится».
Вся задница в том, как openstack предоставляет устройства для xapi. У xapi с sm и так недобрые отношения в районе udev'а, а тут ещё и дополнительная абстракция нагрузку накидывает. И всё это на бедный /etc/xensource/scripts/block.
Да-да, всё это клёвое могучее облако держится на банальном шелл-скрипте, который даже в параллель работать не может. Оно едва под xapi вытягивает, а вы ещё поверх абстракций накручиваете.
Вся задница в том, как openstack предоставляет устройства для xapi. У xapi с sm и так недобрые отношения в районе udev'а, а тут ещё и дополнительная абстракция нагрузку накидывает. И всё это на бедный /etc/xensource/scripts/block.
Да-да, всё это клёвое могучее облако держится на банальном шелл-скрипте, который даже в параллель работать не может. Оно едва под xapi вытягивает, а вы ещё поверх абстракций накручиваете.
+7
А что костыльного в наличии обобщенного уровня, который инкапсулирует в себе различия между виртуалками?
+4
Ну, расскажите, как выглядит, например, синхронная перезагрузка 5 виртуальных машин на хосте. А я вам потом расскажу, что там внутри творится.
0
— перезагружается 1-я виртуальная машина на хосте;
— перезагружается 2-я виртуальная машина на хосте;
— перезагружается 3-я виртуальная машина на хосте;
— перезагружается 4-я виртуальная машина на хосте;
— перезагружается 5-я виртуальная машина на хосте;
— перезагружается 2-я виртуальная машина на хосте;
— перезагружается 3-я виртуальная машина на хосте;
— перезагружается 4-я виртуальная машина на хосте;
— перезагружается 5-я виртуальная машина на хосте;
0
Ну почему же костыль? Дополнительный слой абстракции — да, безусловно. Что слой абстракции не всегда хорошо — тоже факт. Когда мы экспериментировали с динамическим выделением ресурсов машинам на KVM в зависимости от текущего и прогнозируемого потребления, libvirt сознательно не использовали, потому что он в жертву унификации не всё нужное пробрасывает.
Но в случае изначально мультивендорного OpenStack у них особо выбора нет. Поддерживать разные гипервизоры нужно, чтобы обеспечить выполнение заявленного «независимость от поставщика и свобода выбора». В итоге унификация необходима. Её можно делать низкоуровнево (а-ля libvirt) или втаскивать в высокоуровневую логику управлятора, который будет общаться с каждым гипервизором по-своему. Они выбрали libvirt — почему бы и нет, меньше велосипедов в итоге.
Но в случае изначально мультивендорного OpenStack у них особо выбора нет. Поддерживать разные гипервизоры нужно, чтобы обеспечить выполнение заявленного «независимость от поставщика и свобода выбора». В итоге унификация необходима. Её можно делать низкоуровнево (а-ля libvirt) или втаскивать в высокоуровневую логику управлятора, который будет общаться с каждым гипервизором по-своему. Они выбрали libvirt — почему бы и нет, меньше велосипедов в итоге.
+5
Он не слой абстракции, он костыль для парсинга вывода нижележащих костылей и попытка сделать над ними новый костыль.
Кстати, libvirt — это совсем не «низкоуровнево». Низкоуровнево — это напрямую с гипервизором и процессами.
Основная проблема всех этих клёвых штук не в работе VM, тут-то комунизм и свободное конструирование любых абстракций, а в районе блочных/сетевых устройств, которые не коммунизм, а… м… СССР образца 37 года.
Кстати, libvirt — это совсем не «низкоуровнево». Низкоуровнево — это напрямую с гипервизором и процессами.
Основная проблема всех этих клёвых штук не в работе VM, тут-то комунизм и свободное конструирование любых абстракций, а в районе блочных/сетевых устройств, которые не коммунизм, а… м… СССР образца 37 года.
0
То что главные мучения с дисками и сетью — да, согласен. Насчёт костылей, абстракций и низко/высоко-уровневости — всё-таки это зависит от того, какую задачу решаем.
В случае работы с одним наперёд заданным гипервизором libvirt не нужен. Если я планирую KVM-инфраструктуру и точно знаю, что кроме KVM в ней ничего не будет, то плодить лишние обёртки мне ни к чему. В этом случае можно и напрямую с процессами и гипервизором общаться — так правда часто удобнее.
Если же постановка такова, что гипервизоров изначально несколько (случай OpenStack), то всё равно придется как-то извращаться. В этот момент выбор небольшой — или взять libvirt со всеми его плюсами и минусами, или начинать писать свой libvirt. Я как-то третьего пути не вижу. Поэтому вполне понимаю, что люди предпочли свой не писать. Единственное, было бы хорошо, чтобы они при этом понимали все ограничения того, на чём решили основываться. Но в этом гадать бесполезно — время и будущие релизы покажут.
В случае работы с одним наперёд заданным гипервизором libvirt не нужен. Если я планирую KVM-инфраструктуру и точно знаю, что кроме KVM в ней ничего не будет, то плодить лишние обёртки мне ни к чему. В этом случае можно и напрямую с процессами и гипервизором общаться — так правда часто удобнее.
Если же постановка такова, что гипервизоров изначально несколько (случай OpenStack), то всё равно придется как-то извращаться. В этот момент выбор небольшой — или взять libvirt со всеми его плюсами и минусами, или начинать писать свой libvirt. Я как-то третьего пути не вижу. Поэтому вполне понимаю, что люди предпочли свой не писать. Единственное, было бы хорошо, чтобы они при этом понимали все ограничения того, на чём решили основываться. Но в этом гадать бесполезно — время и будущие релизы покажут.
+1
Не взлетит. Глянул в вики, глянул офиц. сайт так и не понял что это толком, поверхностное описание для нубов, сладостно присыпанное маркетингом.
-3
:-) Оно уже взлетело. Посмотри вот сюда. =)
+1
Так что такое OpenStack? Обёртка над KVM, VirtualBox, OpenVZ и т.д. с веб-интерфейсом и какими-то готовыми образами с линухом?
-1
Вам нужно гуглить на предмет Infrastructure as a Service (IaaS).
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Перспективы OpenStack: Red Hat vs VMware