Previous Entry Share Next Entry
vmware vs. openvz
openvz
k001
Выношу из комментов ответ на вопрос dzz, чем OpenVZ отличается от VMware. Написано, понятное дело, ночью, экспромтом, не редактировал, только отформатировал чуть лучше. Очень неформально и субъективно. И, вероятно, неполно. На исследование не претендует. Можно задавать вопросы.

VMware — это эмуляция. Тот, кого запускают внутри VMware, думает, что он работает на настоящем железе — а фактически он работает внутри эмулятора. Понятное дело, что с таким подходом нельзя получить хорошую производительность, поэтому в VMware есть куча трюков и приседаний на предмет улучшения производительности, так что в итоге она не такая уж и хреновая — может, процентов на 20-30 хуже, чем на том же "настоящем" железе. С появлением всяких VT/Pacifica ситуация будет улучшаться далее.

OpenVZ — это OS level virtualization или, другими словами говоря, partitioning. В рамках одного-единственного ядра операционки (для OpenVZ это запатченный Linux kernel, Virtuozzo есть ещё и под Винды) мы умеем делить комп на множество "кусочков", в каждом из которых полноценно живёт и работает весь userlevel (то есть всё, кроме ядра — в Линуксе это init, всяческие демоны, программулины, библиотеки и проч.).

Недостатки и достоинства по большей части очевидны. В VMware можно пускать всё, что хочешь, напр. Линукс и полуось под Виндой. За это мы платим производительностью и плотностью (density) — ну никак ты не запустишь хотя бы сотню Линуксов (не говоря уже о Виндах) даже на приличном PC сервере. Из не особенно очевидных недостатков VMware — статическое распределение ресурсов (нельзя на ходу поменять объём оперативной памяти, выданной гостю), сложный менеджмент (по сути мы имеем кучу компьютеров (пускай виртуальных), поэтому обновить на них софт "одним махом" не удастся — надо в каждый "комп" ходить и всё там делать). Да и вообще вся конструкция (железо -> операционная система -> vmware -> операционная система -> приложения) несколько, эээ, странная, что ли. Действительно странная.

Достоинства OpenVZ, как и недостатки, проистекают из архитектуры. Так как мы имеем единое ядро, мы можем свободно рулить любыми ресурсами железа. Поэтому дать какой-то виртуальной машине (мы называем её VPS, Virtual Private Server) больше или меньше памяти прямо на ходу — не проблема. Более того — между всеми VPSками есть эдакие резиновые границы (у ресурсов есть минимум и максимум, все VPS плавают между этими значениями, если никто особо RAM не использует — некий VPS может на время откушать существенный её кусок (в рамках своего максимума, конечно). Менеджмент более униформенный (особенно в Виртуозе, особенно в Виндовой версии — так, заплатки от MS встают сразу на все VPSы). Плотность существенно выше — на гигабайте памяти можно разместить больше 150 VPS, в каждой из которых будет работать апач, сендмейл, sshd, крон и всё остальное. Понятно, что если мы добавим к этому набору MySQL и какой-нибудь mod_perl, то 150 таких VPS наверное не влезет, но, в общем, всё равно влезет в 10 раз больше, чем мы можем получить VMок от VMware. При этом у каждого VPS всё своё, кроме ядра. Кернель общий. Отсюда основной "недостаток" — нельзя запустить рядом Линукс, Винду и ПолуОсь. Да, дистрибутивы разные можно запустить рядом, и это бывает приятно для дивелоперов, тестеров и т.п. Ещё один плюс — очень быстрое создание VPS. Понадобился тебе новый сервер для чего-нибудь — говоришь команду (vzctl create NNN), и через минуту сервер готов. Даешь ему айпишник (vzctl set NNN --ipadd x.x.x.x --save), запускаешь (vzctl start NNN) — и всё.

Про примеры применения писать неохота уже — посмотри мои слайды по ссылке в openvz, там достаточно хорошие примеры есть. На самом деле, если вдуматься, то почти всем это нужно (просто они ещё об этом не знают). Можно рассматривать OpenVZ как ну очень продвинутый chroot или jail.

Виртуозо — это OpenVZ за деньги (кажется, $1000 per CPU), с контрольными панелями, всякими тулзами и прочими свистелками и прибамбасами.
Tags:

  • 1
:)
хорошо написано
доступно :)

> Да, дистрибутивы разные можно запустить рядом, и это бывает приятно для дивелоперов, тестеров и т.п.

Вот с этого места, если можно, поподробнее.
Можно ли запустить несколько дистрибутивов, использующих разные ядра?
Т.е. что-то вроде RH 5.x + RH 7.x + RH 9 + FC 4?

Нет конечно.

...

Re: Нет конечно.

(Anonymous)
RH 7.x + RH 9 + FC 4
вот так точно можно, с некоторыми оговорками.

Re: Нет конечно.

забыл залогиниться

Можно, но ядро будет одно. То есть если дистрибутив умеет работать на 2.6 ядре -- то он будет работать. Все четыре федоры коры, например, будут, RH9, вероятно, тоже, а вот более ранние, наверное, нет (я не пробовал).

Virtuozzo бывает и на 2.4 ядре (OpenVZ ядро выпускать не стали) -- там будут работать все старые редхаты (но fc3 и выше не будут -- они уже явно требуют 2.6).

Таким образом, две машинки охватят требуемый вами набор. Если так уж хочется сделать это на одной машинке -- можно запустить VMware и в ней виртуозу -- это всё равно будет легче, чем запустить 10 VMware VMs.

Да, конечно, если вам по каким-то причинам нужно собственное ядро, или точное такое ядро, как в дистрибутиве -- такая технология вам не подходит.

PS а зачем вам RH5.x?

> а зачем вам RH5.x?

RH 5.x на самом деле не нужен, но 7.2, 9 и всякие FC - нужны.
Для тестирования работоспособности софта под конкретными дистрибутивами.

> Можно, но ядро будет одно

ну это просто смешно, при наличии в вопросе фразы "использующих разные ядра?"... Пахнет как плохой маркетинг...

Вопрос стоял так: Можно ли запустить несколько дистрибутивов, использующих разные ядра?

Действительно, разные дистрибутивы используют (по умолчанию) разные ядра. Однако это не мешает использовать с этими дистрибутивами разные другие ядра, и не мешает эти дистрибутивы запустить под ядром OpenVZ. Именно это я и ответил. Я также упомянул, что если хочется точно и конкретно именно то ядро, которое идёт в этом дистрибутиве, запустить -- то OpenVZ не вариант. Я также упомянул, что зачастую в этом (в оригинальном ядре) нет необходимости. После этого я уточнил, для чего человеку нужны вот эти разные дистибутивы, и он ответил, что для тестирования прикладного софта. В этом случае, как правило, нет необходимости в оригинальном дистрибутивном ядре, если только софт не слишком низкоуровневый или не заточен под особенности конкретного ядра. Бывает это крайне редко.

Теперь у меня вопрос - в каком месте тут "пахнет плохим маркетингом"? Я тут вообще не вижу маркетинга никакого -- человек спросил об особенностях продукта, я ему ответил, что он может, чего он не может, почему и зачем. Ещё раз подчеркну -- в вопросе не стояла задача "использовать разные ядра", в вопросе была констатация факта, что разные дистрибутивы используют разные ядра.

Кир, ты не устал ещё одно и тоже людям повторять? :-)

 

Re: Кир, ты не устал ещё одно и тоже людям повторять? :-)

не устал, работа такая

"От работы кони 'это-самятся'". ;-)

 

Re: "От работы кони 'это-самятся'". ;-)

Это не только работа. Мне всегда было приятно поделиться полезными знаниями, кого-то чему-то научить (не насильно, а когда человеку интересно, и когда я уверен, что это не зря, в том смысле что человек как минимум понимает). Плюс виртуализация -- это хорошо почти для всех, и точно ни для кого не плохо. Плюс это опенсорс. Плюс это работа, и это приятно, когда вектор твоих наклонностей и вектор твоей работы более-менее совпадают.

Это всё прекрасно, просто, сколько я помню, ты ...

... везде примерно одно и тоже говоришь. Вот это сравнение VZ vs. Vmware явно не новое. :-)

  • 1
?

Log in

No account? Create an account