Запуск множества виртуальных машин на одном хосте - PullRequest
2 голосов
/ 30 сентября 2008

Мне нужно запустить относительно большое количество виртуальных машин на относительно небольшом количестве физических хостов. Каждая виртуальная машина мало что делает - каждая из них должна запускать только одну базовую сетевую службу - например, SMTP или что-то подобное. Кроме того, нагрузка на каждый будет чрезвычайно легкой.

К сожалению, цифры примерно 100 виртуальных машин на 5 физических хостах. Каждый хост достаточно приличный - ядро ​​2 с 2 гигабайтами оперативной памяти и диском объемом 1 ТБ. Тем не менее, я знаю, что просто взять образ VMware Ubuntu и выбросить на эту машину не получится где-то около 100 экземпляров и будет что-то ближе к 20.

Итак, есть ли надежда на такое соотношение изображений и хостов? Кроме того, какая реализация виртуальной машины лучше всего подходит для этой цели - то есть имеет ли эффективное общее использование ресурсов? Здесь мы в основном используем vmware, но если есть существенное преимущество в производительности, которое можно получить, переключившись на Xen или что-то подобное, я уверен, что мы это учтем.

Заранее благодарим за ваши идеи :) 1007 *

Примечание. В итоге мы использовали OpenVZ, и он работал довольно хорошо. Параметры по умолчанию для шаблона Ubuntu позволяют нам запускать около 40 экземпляров на машину.

Ответы [ 16 ]

0 голосов
/ 03 октября 2008

Еще одна проблема с запуском каждой службы в ее собственной виртуальной машине заключается в том, что всем им потребуется собственный IP-адрес. 100 IP-адресов могут не быть проблемой во внутренней сети (например, настройки 172/8 или 10/8), но если они являются частью вашего класса A (если у вас так много публичных), у вас закончатся быстро.

И, как уже спрашивали другие, почему каждый сервис должен быть своей собственной виртуальной машиной? Многие из них должны легко работать на одном хосте.

0 голосов
/ 02 октября 2008

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

0 голосов
/ 30 сентября 2008

Несколько мыслей ...

1 - Как отмечают другие, арифметика памяти не работает, вам потребуется больше оперативной памяти.

2- В зависимости от службы вы можете найти предварительно сконфигурированные виртуальные машины. Например, Astaro имеет настройку виртуальной машины для бесплатного программного обеспечения брандмауэра. Вы также можете найти очень маленький дистрибутив Linux, который вы можете адаптировать.

3- Может быть, я что-то упускаю, но похоже, что Ubuntu уже довольно близко ... 20 экземпляров на машину на 5 машинах получают 100 экземпляров, которые вам нужны. Однако для будущего роста не так много возможностей ...

Берегите себя, удачи.

0 голосов
/ 30 сентября 2008

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

0 голосов
/ 30 сентября 2008

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

Скорее рекламная ссылка.

0 голосов
/ 30 сентября 2008

Если вы выполните математику, вы получите в среднем 100 МБ ОЗУ для каждой машины. Это не так много. Затраты на виртуальную машину довольно велики, и в каждом случае приходится запускать полную ОС.

Либо вы используете какой-то очень маленький след ОС (http://www.damnsmalllinux.org/?)) и тратите время, чтобы сократить его еще больше, либо вы получаете более крупные машины.

Поскольку машины настолько дешевы, я бы предпочел перейти на 64-битную ОС с большим количеством оперативной памяти.

...