*** ВНИМАНИЕ: Блог переехал на другой адрес - demin.ws ***

понедельник, 4 января 2010 г.

Виртуальные машины в быту

Лично я плохо представляю себе работу современного программиста сейчас без виртуальных машин. Даже на моем домашнем ноутбуке конфигурация выглядит так: "dark side" в виде Windows 7 в качестве хост-системы и пачка линуксовых виртуальных машин под VMware и VirtualBox.

Windows 7 для iTunes (увы, iPhone иначе толком не синхронизируешь), MS Office (в основном только ради Visio) и Visual Studio разнообразных версий. Все остальное происходит в виртуальных машинах. Благодаря аппаратной виртуализации в современных процессорах производительнось практически такая же (и у кого сейчас меньше двух ядер?). А умелое распределение ресурсов между виртуальными машиными вообще позволяет нивелировать потери.

Большинство современных виртуализаторов умеют очень ловко интегрировать десктоп гостевой системы в основную. Например, у меня окно той же виртуализированной Ubuntu выглядит обычным окном Windows, размер которого можно спокойно менять, при этом виртуальная среда автоматически подстраивает свой десктоп на лету под размер этого окна. Раньше, когда аппаратная поддержка виртуализации не была так распространена, и поэтому виртуальные машины реально тормозили, я долгое время использовал Cooperative Linux, так как он виртуализирует только память, и поэтому работает на полной скорости компьютера. Но coLinux не поддерживает многопроцессорность и требует особого ядра Линукса. С самим ядром уже не поиграешься.

В чем прелесть такого подхода с виртуальными машинами? Для начала — это изолированность сред. Не надо держать на одной системе много конфликтующего хлама, ибо постоянно для разных проектов нужны разные компиляторы, разные библиотеки, может и разные операционные системы. Диски/накопители для виртуальных сред — это просто файлы. Их просто копировать, уменьшать/расширять, сохранять, использовать для разных сред и т.д. И миграция с одного физического компьютера на другой упрощается в разы, так как надо просто слить образы машин.

Захотел подключить новый диск в систему или подменить развернутый Oracle на другую версию — пять минут работы. Захотел вернуть назад — еще две минуты. Да и клиенту дать образ настроенной виртуальной машины проще, чем объяснять, как все настраивать с нуля. А он потом еще все и сломает шаловливыми ручками.

Пока я вижу только один значительный минус при домашнем использовании — дисковое пространство, ибо для каждой системы счет сразу идет на гигабайты, а может и их десятки. 4-5 виртуальных машин, и начинаешь думать, куда бы сбросить временно неиспользуемые.

Но и тут есть выход. Например, у меня юниксовый раздел для домашнего (home) каталога используется в нескольких виртуальных машинах. Раздел с проектами тоже может быть замонтирован в разные машины. Повторюсь — управление дисковыми разделами в виде файлов крайне просто и удобно.

Для серверных решений весьма популярна система виртуальных операционных систем ESXi. Небольшой супервизор грузится в начале, и затем дает возможность управлять виртуализацией гостевых систем (диски, память, процессорное время и т.д.). То есть мой Windows 7 является простецким аналогом такого супервизора.

Подходим к сути. Так сейчас уже стало модно заменять стандартный BIOS на что-нибудь нужное, например Линукс с минимальным набором программ для интернета. Проекты coreboot и Splashtop уже давно существуют. Некоторое время назад лично я был очень впечатлен одним их видео:

Выходит, что логичным продолжением было бы зашить вместо BIOSа супервизор виртуальных машин.

Включаешь компьютер, мгновенно стартует супервизор, который дает тебе возможность управлять витуальными средами. Вот получится все одном флаконе на одном компьютере: и Windows, и Mac, и Linux и все на свете.

Проблемы конечно будут — надо делать драйвера виртуальных устройств под поддерживаемые операционные системы, но многое уже имеется в тех же VMware и VirtualBox.

В общем, в дополнение к модной "облачной" модели домашних компьютеров виртуальная модель однозначно имеет будущее. Для тех, кто любит "по-горячее".

3 комментария:

  1. И... присоединяясь. Виртуальная машина для работы офиса - лучшее решение. Все настройки ( юзера, профили, пароли, принтеры и т.п. долгонастраиваемая хрень ), все базы хранятся в копии как файлы. Запустить новый, восстановить старый офис можно за 10-15 мин. 3 таких сервера WINDOWS SERVER 2003 работают у нас уже около года без проблем, многие юзера и не знают, что удаленно работают на виртуальном компе. Железо - 4-х ядерный прцессор, два ядра для виртуального сервера, софт VMWARE SERVER, основная ОС WINDOWS XP PRO (хотя можно и HOME)

    ОтветитьУдалить
  2. А не возникает проблем, если одновременно запущены несколько ВМ, использующих один и тот же раздел? Вроде бы основная масса ФС рассчитана на то, что в работающей системе данные на разделе может менять только драйвер ФС.

    ОтветитьУдалить
  3. Виртуальный машины живут только на своих виртуальных дисках. Разделяют они только разделы с данными. В принципе, если драйвер дает монтировать файловую систему, значит он разрулит все конфликты. Иначе - только чтение.

    ОтветитьУдалить