Назад | Перейти на главную страницу

Должен ли я выбрать KVM / XEN вместо OpenVZ или использовать их вместе?

У меня есть двойной сервер xeon e5504 с [на данный момент] только 8 ГБ оперативной памяти. Хранилище тоже не впечатляет: 3x по 146 ГБ на дисках raid5 + 500 ГБ. В настоящее время он работает как сервер разработки, но он слишком спроектирован для наших нужд, и, поскольку наши методы разработки изменились за последние 2 года, мы решили, что он будет работать как производственная система для некоторых наших приложений + мы хотели бы иметь отдельную систему для тестирования /исследовательская работа. Наши приложения в основном представляют собой веб-приложения, развернутые на котах [во множественном числе, поскольку для некоторых приложений требуются более старые версии] и подключенные к Postgres.

Я хотел бы иметь производственную систему, в которой настроены только httpd + tomcat + db, и больше ничего там не работает. Стерильная система. Кроме того, мне нужна тестовая система, в которой я мог бы играть с разными настройками JVM, развертывать свои тестовые приложения, играть с настройками tomcat / httpd и перезапускать их, не мешая производственной системе.

Кроме того, я хотел бы иметь возможность поиграть с разными версиями Linux, с новыми ядрами, чтобы проверить, как они работают, и т. Д. Я знаю, что с OpenVZ это невозможно, и для этого мне придется выбрать KVM. Я думаю об объединении этих двух и настройке KVM, чтобы иметь возможность работать с разными системами [linux, если быть откровенным] + использовать openVZ для настройки отдельных машин для моих нужд разработки. Я бы просто согласился с этим, но чтение здесь и там о влиянии полной виртуализации на производительность контейнеров и просмотр спецификаций моего сервера заставляет меня дважды подумать об этом. Я не хочу слишком сильно терять производительность, особенно из-за характера моих приложений [несколько JVM работают одновременно].

Я буду впервые использовать виртуализацию, помимо использования виртуального бокса / vmserver рабочего стола. Хотя я быстро учусь, я не хочу так сильно связываться с основной системой, что это сломает рабочие приложения или заставит их сканировать. Хотя это более или менее внутренние приложения и они не создают большой нагрузки, они должны быть стабильными.

Я читал, что KVM-хост - это обычная установка Linux, и он позволяет запускать на нем обычные процессы. Если это так, то можно ли запускать openVZ? Я имею в виду ... могу ли я запустить KVM и OpenVZ в одной системе / ядре? Или мне нужно настроить другую систему для запуска контейнеров OpenVZ? Насколько сильно это повлияет на производительность? Моего оборудования хватит?

ох и еще кое-что ... к сожалению, средства у меня ограничены ... Я ищу только бесплатное решение: /

Это вроде как зависит от того, что вы делаете. OpenVZ превосходен с точки зрения хостинга, потому что он очень эффективно использует оборудование. Все неиспользованные ресурсы доступны для использования. Таким образом, у вас может быть более высокая плотность контейнеров, и это может быть передано клиентам в виде более низких цен за контейнер. При использовании KVM любая память или пространство на жестком диске, которые клиент не использует, тратятся впустую. Поэтому вы не можете привлечь столько клиентов или нуждаться в большем объеме RAM / HD и т. Д., Которое передается покупателю по более высоким ценам.

С точки зрения пользователя, они получают больше прибыли от OpenVZ, потому что там не используется память для ядра, модулей ядра и аппаратных утилит. В результате получается небольшая экономия памяти. При установленных базовых серверных, основных и базовых группах я вижу, что в контейнере OpenVZ используется около 15 МБ памяти, не включая кеш / буферы, в отличие от более 100 МБ на KVM, не включая кеш / буферы. Оба использовали CentOS 6 64bit и измеряли сразу после перезагрузки. Таким образом, план VPS на 512 МБ от провайдера OpenVZ фактически дает клиенту на 100 МБ больше памяти, чем план на 512 МБ KVM.

Другое преимущество OpenVZ - очень низкие накладные расходы. Вероятно, не более чем на 2 или 3% выше при работе на голом металле. Фактически, из-за таких низких накладных расходов мы обычно помещаем клиентов с выделенными серверами в один контейнер OpenVZ, потому что им намного проще управлять. Если они хотят перейти в другой центр обработки данных или обновить оборудование, это так же просто, как навести и щелкнуть, просто перенесите контейнер на новое оборудование и готово. Не требуется переустановка и настройка. KVM не так эффективен, хотя у меня нет сравнительных данных. Я могу сказать это по его использованию и просмотру средней нагрузки. Я бы сказал, может быть, на 10% больше накладных расходов. Итак, накладные расходы 12-13% против 2-3%. Многие люди думают, что накладные расходы KVM со временем улучшатся, но я не заметил особых изменений за последние пару лет. Я думаю, что сначала были улучшения, но за последние пару лет он немного повзрослел, и улучшения производительности стабилизировались.

Единственным серьезным недостатком OpenVZ является то, что заказчик не может получить доступ к ядру или сделать что-либо с ним. Некоторые вещи, которые им необходимы, могут быть выполнены поставщиком или настроены для доступа клиентов в панелях управления, например, что делает SolusVM с TUN / TAP и PPP. Подавляющему большинству клиентов хостинга доступ к ядру не требуется.

Разница заключается в подходе к виртуализации. KVM - это модуль ядра (отсюда и название), который работает как часть ядра Linux и допускает либо собственную виртуализацию, либо паравиртуализацию. Вы используете полную системную среду.

Openvz запускает ОС в контейнерах - аналогично тюрьмам BSD. Это более эффективно, когда все ваши виртуальные машины работают под одной и той же ОС (скажем, Linux), и фактически каждый «гость» является экземпляром ОС, которая привязана к основной ОС.

KVM даст вам значительно большую гибкость с точки зрения ОС - вы можете запустить виртуальную машину Windows или fbsd внутри хоста KVM. Однако для каждой виртуальной машины потребуется выделить образы жестких дисков и память.

Openvz лучше, если вы хотите запустить массу виртуальных машин Linux и у вас должна быть возможность гибко распределять ресурсы между ними. Поскольку все системы используют одну и ту же файловую систему, ядро ​​и пространство памяти, контейнеру не требуется память для его исключительного использования.

Я попробовал Proxmox, и это кажется мне лучшим решением. Я очень доволен после нескольких дней использования и надеюсь на лучшее. Имейте в виду, это мнение основано на использовании в течение нескольких дней, но я не нашел ничего другого / более простого для достижения этой цели.