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

Запуск 100 виртуальных машин на одном хост-сервере VMWare

Я использую VMWare много лет, запустив десятки производственных серверов с очень небольшим количеством проблем. Но я никогда не пробовал размещать более 20 виртуальных машин на одном физическом хосте. Вот идея:

  1. Урезанная версия Windows XP может работать с 512 МБ ОЗУ и 4 ГБ на диске.
  2. За 5000 долларов я получил 8-ядерную машину серверного класса с 64 ГБ ОЗУ и четырьмя зеркалами SAS.
  3. Поскольку на этот сервер умещается 100 вышеупомянутых виртуальных машин, стоимость моего оборудования составляет всего 50 долларов за виртуальную машину, что очень приятно (дешевле, чем аренда виртуальных машин в GoDaddy или любых других магазинах хостинга).

Хотелось бы узнать, сможет ли кто-нибудь добиться такой масштабируемости с помощью VMWare? Я сделал несколько тестов и наткнулся на странную проблему. Производительность виртуальной машины начинает резко снижаться после запуска 20 виртуальных машин. В то же время хост-сервер не показывает никаких узких мест в ресурсах (диски простаивают на 99%, загрузка ЦП ниже 15% и имеется много свободной оперативной памяти).

Буду признателен, если вы поделитесь своими историями успеха в масштабировании VMWare или любой другой технологии виртуализации!

Да, ты можешь. Даже для некоторых рабочих нагрузок Windows 2003 достаточно 384 МБ, поэтому 512 МБ - довольно хорошая оценка, даже если она немного выше. ОЗУ не должно быть проблемой, как и процессор.

100 виртуальных машин - это немного круто, но это выполнимо, особенно если виртуальные машины не будут очень загружены. Мы легко запускаем 60 серверов (Windows 2003 и RHEL) на одном сервере ESX.

Предполагая, что вы говорите о VMware ESX, вы также должны знать, что он может чрезмерно загружать память. Виртуальные машины почти никогда не используют полностью назначенную норму памяти, поэтому ESX может выделить виртуальным машинам больше, чем доступный объем ОЗУ, и запустить больше виртуальных машин, чем на самом деле «официально» имеется ОЗУ.

Скорее всего, вашим узким местом будет не ЦП или ОЗУ, а ввод-вывод. VMware может похвастаться огромным количеством операций ввода-вывода в секунду в своем маркетинге, но когда дело доходит до конфликта, конфликты резервирования SCSI и ограниченная пропускная способность остановят вас, прежде чем вы приблизитесь к показателям операций ввода-вывода в секунду, которыми хвастается VMware.

В любом случае, мы не наблюдаем снижения производительности 20 виртуальных машин. Какую версию ESX вы используете?

Одна из основных проблем в такой большой среде - предотвращение аварий и защита данных. Если сервер умирает, то вместе с ним умирает 100 виртуальных машин.

Вам необходимо спланировать какое-то аварийное переключение виртуальных машин, а также запланировать какое-то управление «дополнительными виртуальными машинами», которое защитит ваши виртуальные машины в случае сбоя. Конечно, такое резервирование означает увеличение затрат - вероятно, поэтому во многих случаях такие затраты не утверждаются до тех пор, пока их преимущества не будут очевидны на практике (из-за их отсутствия).

Помните также, что хост виртуальной машины - это только одна из нескольких точек отказа:

  • Сеть - что, если сетевая карта хоста виртуальной машины выйдет из строя?
  • Память - что, если часть памяти хоста виртуальной машины испортится?
  • ЦП - если ядро ​​ЦП умирает, что происходит с виртуальными машинами?
  • Питание - есть только один или два кабеля питания?
  • Порт управления - предположим, вы не можете получить доступ к управлению хостом виртуальной машины?

Это всего лишь несколько: массивная инфраструктура виртуальных машин требует особого внимания к предотвращению потери данных и предотвращению потери виртуальных машин.

Нет никаких заявлений о жизнеспособности этого в производстве, но есть очень интересная демонстрация NetApp, в которой они предоставляют 5440 рабочих столов XP на 32 хостах ESX (это 170 на хост) примерно за 30 минут, используя очень мало места на диске из-за дедупликации на общей виртуальной машине. изображений

http://www.youtube.com/watch?v=ekoiJX8ye38

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

Никогда не делал этого, но я обещаю, что вы потратите гораздо больше, чем на хранилище, чтобы получить достаточное количество операций ввода-вывода в секунду для поддержки такого количества виртуальных машин, чем на серверное оборудование. Вам потребуется много операций ввода-вывода в секунду, если все 100 из них будут активны одновременно. Чтобы не прозвучать отрицательно, но вы также считали, что кладете много яиц в одну корзину (похоже, вы ищете решение для одного сервера?)

Меня больше всего беспокоит конкуренция за ЦП с 100 виртуальными машинами на одном хосте. Вы должны помнить, что процессор НЕ виртуализирован, поэтому каждой машине придется ждать доступа к процессору. Вы можете начать видеть разногласия, посмотрев на ESXTOP, мне сказали, что все, что больше 5 в поле% RDY, очень плохо от инженеров VMWare.

По своему опыту я видел около 30-40 серверов, работающих на одном хосте (не слишком много).

У меня было 10 хостов на VMWare Server 1.0.6 (под Windows 2003), и он регулярно сталкивался с проблемами ввода-вывода (и если ночные сборки когда-либо перекрывались с чем-то другим, тогда у них были бы проблемы). После обновления с Windows до ESXi U3 мы обнаружили, что наши проблемы с производительностью исчезли (ночные сборки больше не давали сбоев).

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

Я бы рекомендовал изучить / протестировать наличие файлов SWAP на разных дисках, если у вас возникнут проблемы.

Если вы собираетесь это сделать, я настоятельно рекомендую вам использовать новые процессоры Intel Nehalem серии Xeon 55xx - они предназначены для работы виртуальных машин, и их дополнительная пропускная способность памяти также очень поможет. Да, и если вы можете использовать больше дисков меньшего размера, чем несколько больших - это вам очень поможет. Если вы можете использовать ESX v4 и выше 3.5U4.

У меня есть 20 виртуальных машин XP с 512 МБ оперативной памяти каждая на машине с 16 ГБ оперативной памяти. Меньше этого, и они переключаются на диск, и это становится узким местом. Однако это всегда активные виртуальные машины XP.

VMware и его функция OverCommit должны позволить вам установить больше оперативной памяти на каждую машину XP. Подобная машина будет совместно использовать одни и те же страницы, что может уменьшить объем записи на диск. Это то, что я хотел бы изучить при нашей настройке, чтобы попытаться добавить больше машин, поскольку наши виртуальные машины XP выполняют 10-20 мегабайт непрерывного дискового трафика.

Нам не удалось привлечь 100 счастливых гостей на VMWare Server, но затем выяснилось, что ESXi работает намного лучше. Итак, похоже, что 100 виртуальных машин XP не проблема, если вы используете ESXi и приличный сервер (несколько дисковых зеркал для распределения операций ввода-вывода, пара микросхем I7 и 64 ГБ ОЗУ). Для конечных пользователей нет видимой задержки, и ресурсы хоста не исчерпаны (самым горячим из них является ЦП, но обычно он простаивает не менее 70%).

PS. Этот вопрос был задан мной, когда мы боролись с VMWare Server.

В прошлый раз, когда я проверял, VMware рекомендует не более 4 виртуальных машин на ядро ​​обработки для ESX, предполагая, что на каждую виртуальную машину приходится один виртуальный ЦП.

Это говорит о том, что накладные расходы на управление становятся фактором.

Мне очень интересно узнать, действительно ли вы можете достичь 4-кратного коэффициента на 8-ядерном блоке.