Можно ли использовать один образ виртуальной машины для запуска нескольких гостей (Windows (сервер?))?
Можно ли использовать один образ виртуальной машины для запуска множества гостей, где каждый гость является ОС Windows Server (в первую очередь, Windows 2003R2, мы бы вообще перешли на 2008R2 или что-то еще, что было актуально), установив точно такие же приложения и те же настройки Windows (отсюда и желание одного изображения), но отличающиеся только несколькими файлами конфигурации, а также именем компьютера, IP-адресом и т. д.
Редактировать Примечание: Windows Server не является обязательным для нас. Мы могли бы запускать гостевые узлы как XP или Win7, и это также работало бы.
Поэтому я бы хотел, чтобы гости поделились общей "службой приложений OS +", в которой все исправления для ОС и приложений нужно администрировать только один раз.
Однако каждый гость должен отображаться как отдельный отдельный сервер в сети (имя компьютера в домене и т. Д.), И у каждого гостя могут быть очень небольшие различия в конфигурации. (Например, некоторые гости запускают службы X и Y, а другие - службы X и Z.)
Это возможно с любым решением для виртуализации? Какое оборудование нужно? Какие поставщики поддерживают это? Это хорошая идея в конце концов (для серверов)?
Справочная информация: это для нашей фермы серверов сборки. Каждый узел сборки в любом случае должен быть точно таким же, за исключением его "идентификатора" (имя компьютера и т. Д.), Чтобы сделать его доступным из главного узла сборки. (И главный узел сборки будет идентичен, но с небольшими отличиями в отношении программного обеспечения для автоматизации сборки.)
3 ответа
Я не знаю ни одного решения, которое позволило бы вам заменить базовые биты главного образа и заставить их магическим образом распространяться на несколько подчиненных систем. Тем не менее, вы можете достичь почти того же результата, если будете в порядке с перестройкой ведомых устройств каждый раз, когда вы исправляете мастер, при очень низких затратах времени и усилий.
В нашей среде разработки мы используем vSphere и клонируем наши главные веб-серверы и серверы dev db с функциональностью VMware Linked Clone. Вы не можете получить к нему доступ с помощью обычных инструментов управления графическим интерфейсом, поскольку связанные клоны существуют в основном для использования VMware View (что позволяет легко управлять такими решениями, но не совместимо с ОС Windows Server); однако API доступен и поддерживается, поэтому можно работать со связанными клонами с помощью сценариев. Доступны два варианта: Perdown: http://download.virtuallyghetto.com/vGhettoLinkedClone.html и PowerCLI (расширение VMware PowerShell) http://www.vmdev.info/?p=202.
Как только вы научитесь создавать связанные клоны, вам нужно будет найти способ настроить каждый клон, который вы создаете. К сожалению, я не могу вам здесь помочь, так как наш разработчик - это все Linux, и настройка клона Linux тривиальна (для начала, ничего из этого беспорядок sysprep), но я знаю, что автоматическая настройка Windows все еще выполнима - в основном, у вас есть выполнить то же самое, что делает vCenter, когда вы создаете обычный клон Windows VM с vCenter Client.
Это не будет простой проект, нам потребовалось несколько недель, чтобы все заработало и работало гладко, но теперь мы можем воссоздать нашу полную среду разработки за считанные минуты, при этом нужно управлять (исправлениями, кодом и схемой БД). обновления, развертывание нового приложения) только две основные виртуальные машины.
Я не буду здесь говорить об оборудовании, поскольку все зависит от ваших конкретных потребностей: размера и количества серверов, ожиданий разработчиков в отношении производительности и т. Д. Не стесняйтесь просматривать Serverfault для рекомендаций по проектированию для сред vSphere, вы будете найти много хороших советов.
Как PS, я сомневаюсь, что это экономически эффективный путь для любого, кроме самых крупных разработчиков, но было бы неуместно его пропускать: если у вас есть куча денег, вы можете добиться результатов, подобных View, с любой ОС, использующей vCloud Director: http://www.vmware.com/products/vcloud-director/overview.html.
Не то, что я знаю, и вот почему:
Метод виртуализации, который наиболее близок к тому, что вы описываете, - это тот тип, который используется такими вещами, как Solaris Zones и OpenVZ. Конечно, это * nix системы, но это все еще полезный пример. Виртуальные машины этого типа совместно используют ядро между всеми виртуальными машинами и хост-операционной системой, поэтому при исправлении ядра операционной системы все виртуальные машины применяют одно и то же исправление (конечно, после этапа перезагрузки всего). Они не могут поделиться какими-либо изменениями файловой системы, такими как исправления в libpam или любые системные библиотеки.
Windows является другим критерием и, возможно, еще больше зависит от взаимодействия ядра с файлом. Он даже менее способен делать то, что вы делаете, чем системы * nix. Самым большим камнем преткновения является то, что идентификационные данные машины по существу хранятся в монолитном хранилище в файлах с резервной копией в памяти, а не в файлах системы * nix. Это гораздо сложнее изменить, чем "всего несколько файлов в /etc".
Вы можете начать с основного изображения, скопировать его по своему усмотрению, а затем настроить, например, имя и IP-адрес. Однако после внесения изменений вам потребуется управлять исправлениями для каждой машины. Если вы используете VMware, вы можете использовать VCenter для управления исправлениями.