Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия | Предыдущая версия | ||
для_начала:выбрать_тип_виртуализации [2011/12/29 14:46] |
для_начала:выбрать_тип_виртуализации [2022/11/21 09:14] (текущий) v.kirilovskij [выбрать тип виртуализации] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== выбрать тип виртуализации ====== | ||
+ | |||
+ | ~~Title: Как правильно выбрать тип виртуализации ~~ | ||
+ | |||
+ | Слова для поиска: | ||
+ | |||
+ | ---- | ||
+ | ===== Задача: | ||
+ | Нужно выбрать тип виртуализации чтобы потом не пришлось решать проблемы связанные с переездом / миграцией. Переустанавливать систему, | ||
+ | ===== Решение: | ||
+ | |||
+ | Коммерческие решения для виртуализации хороши в корпоративной среде и особенно при недостатке квалификации у обслуживающего персонала. Однако для систем массового хостинга они получаются неоправданно дороги и заметных технических преимуществ не имеют. | ||
+ | |||
+ | Потому здесь речь в основном об открытых и свободных платформах виртуализации - KVM, OpenVZ и XEN. | ||
+ | |||
+ | Каждый тип виртуализации хорош по своему, | ||
+ | |||
+ | Я попытаюсь выделить свойства значимые для пользователя сервера чтобы Вы могли сделать верный выбор. | ||
+ | |||
+ | ==== Технические особенности OpenVZ ==== | ||
+ | |||
+ | [[wp> | ||
+ | |||
+ | **OpenVZ** — это реализация технологии виртуализации на уровне операционной системы, | ||
+ | |||
+ | Главная особенность - **одно общее ядро для всех контейнеров**. Это определяет основные свойства, | ||
+ | |||
+ | === Преимущества === | ||
+ | |||
+ | **Низкая стоимость.** Представьте себе такую аналогию - ваш автомобиль (сервер здесь как аналог автомобиля) едет без груза (мало клиентов) со скоростью ограниченной транспортным потоком | ||
+ | OpenVZ выгодна хостинговой компании и это оборачивается выгодой для клиентов ибо стоимость таких VPS самая низкая. | ||
+ | |||
+ | **Высокая производительность.** А теперь снова вернемся к аналогии описанной выше. На ваш автомобиль загрузили 40 тонн груза и освободилось шоссе (на ваш сервер пришло много клиентов и резко возросло количество запросов). Ваш автомобиль получил мощность целой колонны грузовиков (openvz выделил вам все ядра CPU, всю гарантированную память (oomguardpages) и еще немного (privvmpages) для разгона) и помчался со скоростью ограниченной правилами движения (суммарной скоростью всех внешних каналов связи). Таким образом вы получили заметно больше чем оплатили. И это выгодно | ||
+ | |||
+ | === Недостатки === | ||
+ | Узкое место технологии OpenVZ - относительно медленная работа с диском. Эта проблема в принципе работы этой системы. В качестве хранилища данных в OpenVZ используется общая файловая система - террабайты данных. Ядро системы выделяет каждому контейнеру лимит на долю этого пространства и контролирует каждый запрос к файловой системе - не выходит ли он за пределы заданной квоты. Процесс проверки не так уж быстр. Все контейнеры порождают огромное количество запросов на запись и чтение которые генерируют значительную дополнительную нагрузку на ядро за счет этих проверок. | ||
+ | |||
+ | Вторая проблема связанная с файловой системой - общий дисковый кэш. Контейнеры с наиболее активным дисковым вводом/ | ||
+ | |||
+ | **Общая виртуальная память - swap.** OpenVZ дает возможность использовать swap виртуальным серверам, | ||
+ | |||
+ | Прочие недостатки связаны с общим ядром и необходимостью изоляции каждого контейнера от " | ||
+ | |||
+ | У владельца гостевой системы ограничены возможности по использованию параметров ядра. | ||
+ | Он не может использовать многие модули и функции ядра, не может сменить версию ядра. | ||
+ | |||
+ | У вас не будут работать NFS и IPSec. Например использование OpenVPN может вызвать крах системы - kernel panic. | ||
+ | Если на уровне ядра случается серьезный сбой, то это крушит все гостевые системы. | ||
+ | |||
+ | Менее значительный недостаток - в гостевой системе может использоваться только Linux и только те версии которые предусмотрены администратором. | ||
+ | ==== Технические особенности XEN==== | ||
+ | [[wp> | ||
+ | === Преимущества === | ||
+ | **Использование паравиртуализации.** Паравиртуализация — адаптация ядра гостевой операционной системы или использование специальных драйверов для возможности скоординированной работы с устройствами (диск, сеть) ядра Dom0 и гостя. Это резко снижает потери на виртуализацию. | ||
+ | Виртуальная машина, | ||
+ | |||
+ | **Использование любого типа ОС** - Linux, Windows, FreeBSD и т.п. | ||
+ | |||
+ | **Высокая изоляция контейнера от " | ||
+ | Гости не делят память и диск. У каждого свое персональное ядро ОС. | ||
+ | Совместно используются только процессоры. Но для каждого гостя может быть назначен приоритет для CPU или, в случае необходимости, | ||
+ | |||
+ | **Персональный swap у каждого виртуального сервера.** Например в случае прихода слишком большого количества клиентов запускается слишком много демонов apache и память заканчивается. Ядро системы внутри контейнера задействует виртуальную память, | ||
+ | |||
+ | **Возможность миграции запущенной виртуальной машины** между физическими машинами позволяет в случае обслуживания узла или перегрузки незаметно перемещать машину на другой узел. | ||
+ | === Недостатки === | ||
+ | **Более высокая стоимость** - главный недостаток. Это понятно. Не хочешь делиться, | ||
+ | |||
+ | **Генетические проблемы.** XEN получил в наследство некоторый набор технических и лицензионных проблем. | ||
+ | |||
+ | Лицензионная проблема в том, что хотя Nemesis распространяется на условиях The Nemesis Free License, система не является открытой технологией. Правообладатель сохраняет контроль над системой. И там замешаны интересы Microsoft. Это образует своеобразный капкан. Вероятно это было одной из причин для отказа Red Hat от участия в развитии XEN и переноса усилий на альтернативную технологию - [[wp> | ||
+ | ===== Технические особенности KVM ===== | ||
+ | [[wp> | ||
+ | |||
+ | === Преимущества === | ||
+ | **Простота.** KVM обладает всеми преимуществами XEN, но в добавок здесь есть простота. Простая загрузка модуля KVM превращает ядро Linux в гипервизор. Модуль ядра экспортирует устройство, | ||
+ | Каждый виртуальный сервер представлен как отдельный процесс связанный с устройством /dev/kvm. | ||
+ | Количество программного кода kvm минимально и, как следствие, | ||
+ | |||
+ | **Рекордная производительность подсистем | ||
+ | |||
+ | **Потенциал развития.** Производительность системы от версии к версии постоянно растет. А KVM - относительно очень молодой проект. Появляются новые технологии. Вероятно скоро можно будет задействовать механизмы дедупликации данных на уровне файловой системы BtrFS и дедупликацию оперативной памяти - KSM. Пока эти проекты недостаточно зрелые для широкого применения, | ||
+ | Дедупликация позволяет использовать один физический элемент для размещения блока данных в случае если существуют одинаковые блоки. А в случае работы множества почти одинаковых виртуальных серверов таких блоков может быть очень много. | ||
+ | Это может увеличить плотность размещения | ||
+ | === Недостатки === | ||
+ | **Молодость**. Эта технология быстро развивается и неизбежно содержит еще множество реальных и потенциальных проблем. Программные средства для управления KVM по возможностям пока уступают XEN. | ||
+ | ===== Итоги и рекомендации===== | ||
+ | Основная рекомендация - выбрать тип виртуализации в соответствии с текущим состоянием вашего проекта, | ||
+ | |||
+ | Если мы обсуждаем вебсервер, | ||
+ | |||
+ | ==== Причины для выбора OpenVZ ==== | ||
+ | |||
+ | У вас нет резких пиков нагрузки, | ||
+ | |||
+ | Когда Вы уже на максимальном тарифном плане и нагрузка заметно нарастает, | ||
+ | |||
+ | ==== Причины для выбора XEN/KVM ==== | ||
+ | |||
+ | * Вы хотите использовать Windows или FreeBSD. | ||
+ | * Повышенные требования к доступности сервера в часы пик. | ||
+ | * Нагрузка резко меняется, | ||
+ | * У вашего сервера высокий трафик и большая нагрузка на диск. | ||
+ | |||
+ | ==== Выбор между XEN и KVM. ==== | ||
+ | |||
+ | Объективно оценить сложно. Разница в технических параметрах невелика. | ||
+ | |||
+ | Вероятно здесь важно оценить перспективы. | ||
+ | |||
+ | Мои личные предпочтения - KVM. Больше позитивных ожиданий. | ||
+ | ==== Результаты наших тестов ==== | ||
+ | Тестирование производилось путем одновременного запуска тестов apache benchmark на статическом и динамическом контенте c умеренной дисковой нагрузкой (rsync --bwlimit=5000) в цикле. | ||
+ | |||
+ | Оценивалось падение количества обрабатываемых запросов с ростом количества активных виртуальных серверов. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== Ссылки: | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | ---- | ||
+ | Актуальность: | ||
+ | |||
+ | {{tag> | ||