среда, 23 января 2008 г.

[hobbi] ... чудеса в решете или N-машин на 1 ПК

...Мощности современного ПК неуклонно растут и вот в связи с этим технологии виртуализации снова бударажат умы программистов. Виртуальной машиной (англ. virtual machine) называют программную или аппаратную среду, исполняющую некоторый код (например, байт-код, шитый код, p-code или машинный код реального процессора), или спецификацию такой системы.

Зачастую виртуальная машина эмулирует работу реального компьютера. На виртуальную машину, так же как и на реальный компьютер можно инсталлировать операционную систему, у виртуальной машины так же есть BIOS, оперативная память, жёсткий диск (выделенное место на жёстком диске реального компьютера), могут эмулироваться периферийные устройства. На одном компьютере может функционировать несколько виртуальных машин.

Типы виртуализации

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

Виртуализация серверов
Виртуальная машина — это окружение, которое представляется для «гостевой» операционной системы, как аппаратное. Однако на самом деле это программное окружение, которое симулируется программным обеспечением хостовой системы. Эта симуляция должна быть достаточно надёжной, чтобы драйверы гостевой системы могли стабильно работать. При использовании паравиртуализации, виртуальная машина не симулирует аппаратное обеспечение, а, вместо этого, предлагает использовать специальное API. 
Bochs
Qemu
KVM
FAUmachine
Microsoft Virtual Server
Microsoft Virtual PC
twoOStwo
SVISTA
Parallels
VMware (VMware ESX Server)
Xen
VirtualBox


Виртуализация уровня ОС
Виртуализация на уровне операционной системы — виртуализирует физический сервер на уровне ОС, позволяя запускать изолированные и безопасные виртуальные серверы на одном физическом сервере. 
Solaris Containers/Zones
FreeBSD Jail
Linux-VServer
FreeVPS
OpenVZ
Virtuozzo
VDSmanager


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

Например, к реализации разделения ресурсов можно отнести Проект Crossbow позволяющий создавать несколько виртуальных сетевых интерфейсов на основе одного физического.
Агрегация, распределение или добавление множества ресурсов в большие ресурсы или объединение ресурсов. Например, симметричные мультипроцессорные системы объединяют множество процессоров; RAID и дисковые менеджеры объединяют множество дисков в один большой логический диск; RAID и сетевое оборудование использует множество каналов, объединённых так, чтобы они представлялись, как единый широкополосный канал. На мета-уровне компьютерные кластеры делают все вышеперечисленное. . Иногда сюда же относят сетевые файловые системы абстрагированные от хранилищ данных на которых они построены, например, Vmware VMFS, Solaris ZFS, NetApp WAFL


Виртуализация прикладных приложений
Виртуализация прикладных приложений — включает в себя рабочую среду для локально выполняемого приложения, использующего локальные ресурсы. Виртуализируемое приложение запускается в небольшом виртуальном окружении, которое включает в себя ключи реестра, файлы и другие компоненты, необходимые для запуска и работы приложения. Такая виртуальная среда работает как прослойка между приложением и операционной системой, что позволяет избежать конфликтов между приложениями. К виртуализации прикладных приложений можно отнести такие системы как Softgrid.

Подробный обзор методов виртуализации:

http://www.ibm.com/developerworks/ru/library/l-linuxvirt/index.html

Комментариев нет: