Про системы виртуализации

Что может виртуализация:

  • Запуск множества операционных систем одновременно.
  • Гарантированная изоляция ОС друг от друга.
  • Возможность гибкого разделения ресурсов между машинами.

Преимущества виртуализации:

  • Повышение изоляции.
  • Ограничение одной или группы тесно связанных служб собственной виртуальной машиной.
  • Снижение вероятности сбоев от взаимного влияния программ.
  • Безопасность.
  • Распределение задач администрирования — возможность ограничить права каждого администратора только самыми необходимыми.
  • Снижение потенциальных вредных последствий взлома какой-либо из служб.
  • Распределение ресурсов — каждая машина получает столько ресурсов, сколько ей необходимо, но не более того.
  • Приоритезация задач.
  • Выделение память по требованию.
  • Гибкое распределение сетевого трафика между машинами.
  • Распределение дисковых ресурсов.
  • Постоянная доступность.
  • Есть возможность live-миграции машин.
  • Плавный апгрейд критических серверов.
  • Повышение качества администрирования.
  • Возможность выполнения регрессионных тестов.
  • Возможность экспериментирования и исследования.

Принципы и виды виртуализации:

  • Интерпретация и динамическая рекомпиляция — при использовании динамической рекомпиляции программа-эмулятор преобразует фрагменты исполняемой программы в код, который может быть выполнен на другом компьютере, непосредственно во время ее работы. Рекомпилятор имеет меньшую совместимость, чем интерпретатор, но он быстрее.

 

Примеры: Bochs, PearPC, QEMU, Microsoft VirtualPC for MAC.

  • Паравиртуализация и портирование — модификация ядра гостевой ОС выполняется таким образом, что в нее включается новый набор API, через который она может напрямую работать с аппаратурой, не конфликтуя с другими виртуальными машинами. При этом нет необходимости задействовать полноценную ОС в качестве хостового ПО, функции которого в данном случае исполняет специальная система, получившая название гипервизора (hypervisor).
    • Достоинства: отсутствии потребности в хостовой ОС. Виртуальная машина устанавливаются фактически на “голое железо”, а аппаратные ресурсы используются эффективно.
    • Недостатки: сложность реализации подхода и необходимость создания специализированной ОС-гипервизора.

 

Примеры: Xen, UML, lguest, Microsoft Hyper-V, KVM, VMware ESX Server.

  • Виртуализация на уровне ОС — при таком подходе используется одно ядро хостовой ОС для создания независимых параллельно работающих операционных сред. Ядро обеспечивает полную изолированность контейнеров, поэтому программы из разных контейнеров не могут воздействовать друг на друга.
    • Достоинства: высокая эффективность использования аппаратных ресурсов, низкие накладные технические расходы, отличная управляемость, минимизация расходов на приобретение лицензий.
    • Недостатки: реализация только однородных вычислительных сред.

 

Примеры: FreeVPS, iCore Virtual Accounts, Linux-VServer, OpenVZ, Parallels Virtuozzo Containers, Zones, FreeBSD, Jail, sysjail, WPARs, Solaris Containers.

  • Полная виртуализация — при таком подходе используются немодифицированные экземпляры гостевых операционных систем, а для поддержки работы этих ОС служит общий слой эмуляции их исполнения поверх хостовой ОС, в роли которой выступает обычная операционная система.
    • Достоинства: относительная простота реализации, универсальность и надежность решения; все функции управления берет на себя хост-ОС.
    • Недостатки: высокие дополнительные накладные расходы на используемые аппаратные ресурсы, отсутствие учета особенностей гостевых ОС, меньшая, чем нужно, гибкость в использовании аппаратных средств.

 

Примеры: VMware Workstation, VMware Server, Parallels Desktop, Parallels Server, Microsoft VirtualPC, Microsoft Virtual Server, Microsoft Hyper-V, QEMU с модулем kqemu, KVM, Virtual Iron.

  • Слой совместимости

 

Примеры: Cygwin, Wine.

Материалы по теме: ссылка.