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


24

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

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

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

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


4
Какой продукт VMware вы планируете использовать? ESX? ESXi? Сервер?
wzzrd

2
Вы можете без проблем запустить XP с 256, особенно если это легкие задачи. Microsoft требует 64, но 128 «достаточно» technet.microsoft.com/en-us/library/bb457057.aspx
Мэтт Рогиш

1
где вы покупаете ваши серверы? Я хочу один :)
Уоррен

1
Только 5000 долларов США, вы можете продать мне два? :)
Тарас Чухай

У вас есть «это количество процессора» на вашем хостинг-сервере, и каждая виртуальная машина получит свою долю. Кроме того, у esxi будут накладные расходы: «переключаться на эту виртуальную машину, управлять ею, переключаться на следующую и т. Д.», Много раз в секунду. Это означает, что каждая виртуальная машина получит лишь небольшую часть от общего процессорного времени. Чем больше виртуальных машин, тем больше вы делите свой процессор (и тем больше накладных расходов вы также добавляете, что означает, что вместо того, чтобы иметь 100 виртуальных машин, у вас на самом деле будет немного больше).
Оливье Дюлак

Ответы:


15

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

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

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

Скорее всего, вашим узким местом будет не CPU или RAM, а IO. VMware может похвастаться огромным количеством операций ввода-вывода в секунду в своем маркетинге, но когда дело доходит до толчка, конфликты резервирования SCSI и ограниченная пропускная способность остановят вас на пути, прежде чем вы приблизитесь к хвастовству IOPS, которое VMware предлагает.

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


Спасибо Wzzrd! В настоящее время я использую VMWare Server 2.0, но планирую попробовать ESX очень скоро. Я очень внимательно наблюдал за вводом / выводом на всех хост-массивах, и единственный способ, с помощью которого я смог максимизировать его, - это перезагрузить несколько гостей одновременно. Когда гости выполняют легкую рабочую нагрузку или остаются бездействующими, диски хоста на 99% простаивают. Итак, я подозреваю, что что-то кроме CPU и IO вызывает замедление работы всех виртуальных машин. Кстати, они резко замедляются - требуется 20 секунд, чтобы открыть меню «Пуск», и если я запускаю диспетчер задач внутри виртуальной машины, диспетчер задач занимает 90% ЦП - странно!
Деннис Кашкин

2
Это потому, что вы используете VMware Server. VMware Server - это платформа виртуализации поверх другой платформы (чаще всего Linux), в то время как ESX - платформа виртуализации с нуля. Очень разные, как по концепции, так и по тому, как она работает.
wzzrd

К сожалению, когда наступит день патча с 100 виртуальными машинами, вы будете перезагружать большую часть мата в одно и то же время;) И патчить самому сложно. Остерегайтесь пакета обновления - вот когда начинается настоящая боль;)
TomTom

Хватит дурачить себя, думая, что голый металл - это нечто особенное. ESXi - это просто урезанный Linux. Да, линукс
Дрезенде

2
@dresende. Нет, это не так. Доверьтесь мне.
wzzrd

11

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

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

Помните также, что хост VM является лишь одной из нескольких точек отказа:

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

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


2
Послушай Дэвида. Вам понадобится конфигурация N + 1, а это означает, что вам нужна как минимум одна запасная простаивающая машина, способная справиться со всей рабочей нагрузкой другой машины, если она выйдет из строя. Моя рекомендация - кластер из двух серверов, который равномерно распределяет нагрузку, но может независимо обрабатывать всю рабочую нагрузку в случае сбоя одной машины.
Джейсон Пирс,

4

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

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

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


3

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


2
Я бы определенно создал несколько «корзин» и настроил несколько автоматических резервных копий. В наши дни узкие места ввода-вывода можно легко устранить с помощью SSD-накопителей. Я использовал диски Intel MLC емкостью 160 ГБ, и они впечатляют. Обычно производительность случайного ввода-вывода в 5 раз выше, чем у лучших дисков SAS (в простых конфигурациях RAID).
Деннис Кашкин

1

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

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


1

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

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

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


1

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


1

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

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


1

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

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


0

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

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

Мне очень интересно посмотреть, сможете ли вы достичь фактора 4x на 8-ядерном процессоре.


1
Это предварительная версия ESX 3.5U2 - в файле config для максимальных обновлений 2 указано значение 8, но для рабочих нагрузок VDI этот показатель увеличивается до 11. Я почти уверен, что увидел что-то, чего не могу найти, что увеличило эту рекомендацию VDI до 19 с обновлением 3 или 4. Для vSphere этот предел теперь составляет 20. Поиск максимальных значений конфигурации VMware ESX для официальных документов от VMware.
Хелвик

Мои виртуальные машины большую часть времени простаивают. Люди подключаются, возможно, несколько раз в день, чтобы запустить какое-то легкое программное обеспечение. Я подтвердил, что эти виртуальные машины создают очень небольшую нагрузку на процессор на хосте, когда они простаивают (20 виртуальных машин увеличивают загрузку процессора до 9% на основе двухъядерной системы). Сможете ли вы вспомнить, как оправдано ограничение в 4 ВМ на ЦП? Они думают о веб-серверах или настольных ОС?
Деннис Кашкин
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.