Программа для создания виртуальной машины – Скачать бесплатно программы для Windows, Android и iOS. Для компьютеров и гаджетов.

Содержание

Автоматизация Для Самых Маленьких. Часть 1.1. Основы виртуализации / Habr

Предыдущая статья рассматривала архитектуру виртуализированной сети, underlay-overlay, путь пакета между VM и прочее.
Роман Горге вдохновился ею и решил написать обзорный выпуск о виртуализации вообще.

В данной статье мы затронем (или попытаемся затронуть) вопросы: а как собственно происходит виртуализация сетевых функций, как реализован backend основных продуктов, обеспечивающих запуск и управление VM, а также как работает виртуальный свитчинг (OVS и Linux bridge).

Тема виртуализации широка и глубока, объяснить все детали работы гипервизора невозможно (да и не нужно). Мы ограничимся минимальным набором знаний необходимым для понимания работы любого виртуализированного решения, не обязательно Telco.


  • Введение и краткая история виртуализации
  • Типы виртуальных ресурсов — compute, storage, network
  • Виртуальная коммутация
  • Инструменты виртуализации — libvirt, virsh и прочее
  • Заключение


История современных технологий виртуализации берет свое начало в 1999 году, когда молодая компания VMware выпустила продукт под названием VMware Workstation. Это был продукт обеспечивающий виртуализацию desktop/client приложений. Виртуализация серверной части пришла несколько позднее в виде продукта ESX Server, который в дальнейшем эволюционировал в ESXi (i означает integrated) — это тот самый продукт, который используется повсеместно как в IT так и в Telco как гипервизор серверных приложений.

На стороне Opensource два основных проекта принесли виртуализацию в Linux:

  • KVM (Kernel-based Virtual Machine) — модуль ядра Linux, который позволяет kernel работать как гипервизор (создает необходимую инфраструктуру для запуска и управления VM). Был добавлен в версии ядра 2.6.20 в 2007 году.
  • QEMU (Quick Emulator) — непосредственно эмулирует железо для виртуальной машины (CPU, Disk, RAM, что угодно включая USB порт) и используется совместно с KVM для достижения почти «native» производительности.
На самом деле на сегодняшний момент вся функциональность KVM доступна в QEMU, но это не принципиально, так как бо́льшая часть пользователей виртуализации на Linux не использует напрямую KVM/QEMU, а обращается к ним как минимум через один уровень абстракции, но об этом позже.

Сегодня VMware ESXi и Linux QEMU/KVM это два основных гипервизора, которые доминируют на рынке. Они же являются представителями двух разных типов гипервизоров:

  • Type 1 — гипервизор запускается непосредственно на железе (bare-metal). Таковым является VMware ESXi, Linux KVM, Hyper-V
  • Type 2 — гипервизор запускается внутри Host OS (операционной системы). Таковым является VMware Workstation или Oracle VirtualBox.

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

Производители железа также должны были сделать свою часть работы, дабы обеспечить приемлемую производительность.

Пожалуй, наиболее важной и самой широко используемой является технология Intel VT (Virtualization Technology) — набор расширений, разработанных Intel для своих x86 процессоров, которые используются для эффективной работы гипервизора (а в некоторых случаях необходимы, так, например, KVM не заработает без включенного VT-x и без него гипервизор вынужден заниматься чисто софтверной эмуляцией, без аппаратного ускорения).
Наиболее известны два из этих расширений — VT-x и VT-d. Первое важно для улучшения производительности CPU при виртуализации, так как обеспечивает аппаратную поддержку некоторых ее функций (с VT-x 99.9% Guest OS кода выполняется прямо на физическом процессоре, делая выходы для эмуляции только в самых необходимых случаях), второе для подключения физических устройств напрямую в виртуальную машину (для проброса виртуальных функций (VF) SRIOV, например, VT-d должен быть включен).

Следующей важной концепцией является отличие полной виртуализации (full virtualization) от пара-виртуализации (para-virtualization).

Полная виртуализация — это хорошо, это позволяет запускать какую угодно операционную систему на каком угодно процессоре, однако, это крайне неэффективно и абсолютно не подходит для высоконагруженных систем.
Пара-виртуализация, если коротко, это когда Guest OS понимает что она запущена в виртуальной среде и кооперируется с гипервизором для достижения большей эффективности. То есть появляется guest-hypervisor интерфейс.
Подавляющее большинство используемых операционных систем сегодня имеют поддержку пара-виртуализации — в Linux kernel это появилось начиная с ядра версии 2.6.20.

Для работы виртуальной машины нужны не только виртуальный процессор (vCPU) и виртуальная память (RAM), требуется также эмуляция PCI-устройств. То, есть по сути, требуется набор драйверов для управления виртуальными сетевыми интерфейсами, дисками и тд.
В гипервизоре Linux KVM данная задача была решена посредством внедрения

virtio — фреймворка для разработки и использования виртуализированных устройств ввода/вывода.
Virtio представляет из себя дополнительный уровень абстракции, который позволяет эмулировать различные I/O устройства в пара-виртуализированном гипервизоре, предоставляя в сторону виртуальной машины единый и стандартизированный интерфейс. Это позволяет переиспользовать код virtio-драйвера для различных по своей сути устройств. Virtio состоит из:

  • Front-end driver — то что находится в виртуальной машине
  • Back-end driver — то что находится в гипервизоре
  • Transport driver — то что связывает backend и frontend

Эта модульность позволяет изменять технологии, применяемые в гипервизоре, не затрагивая драйверы в виртуальной машине (этот момент очень важен для технологий сетевой акселерации и Cloud-решений в целом, но об этом позже).
То есть существует связь guest-hypervisor, когда Guest OS «знает» о том, что запущена в виртуальной среде.
Если вы хоть раз писали вопрос в RFP или отвечали на вопрос в RFP «Поддерживается ли в вашем продукте virtio?» Это как раз было о поддержке front-end virtio драйвера.

Из чего же состоит виртуальная машина?
Выделяют три основных вида виртуальных ресурсов:
  • compute — процессор и оперативная память
  • storage — системный диск виртуальной машины и блочные хранилища
  • network — сетевые карты и устройства ввода/вывода

CPU


Теоретически QEMU способен эмулировать любой тип процессора и соотвествующие ему флаги и функциональность, на практике используют либо host-model и точечно выключают флаги перед передачей в Guest OS либо берут named-model и точечно включают\выключают флаги.

По умолчанию QEMU будет эмулировать процессор, который будет распознан Guest OS как QEMU Virtual CPU. Это не самый оптимальный тип процессора, особенно если приложение, работающее в виртуальной машине, использует CPU-флаги для своей работы. Подробнее о разных моделях CPU в QEMU.

QEMU/KVM также позволяет контролировать топологию процессора, количество тредов, размер кэша, привязывать vCPU к физическому ядру и много чего еще.

Нужно ли это для виртуальной машины или нет, зависит от типа приложения, работающего в Guest OS. Например, известный факт, что для приложений, выполняющих обработку пакетов с высоким PPS, важно делать CPU pinning, то есть не позволять передавать физический процессор другим виртуальным машинам.

Memory


Далее на очереди оперативная память — RAM. С точки зрения Host OS запущенная с помощью QEMU/KVM виртуальная машина ничем не отличается от любого другого процесса, работающего в user-space операционной системы. Соотвественно и процесс выделения памяти виртуальной машине выполняется теми же вызовами в kernel Host OS, как если бы вы запустили, например, Chrome браузер.
Перед тем как продолжить повествование об оперативной памяти в виртуальных машинах, необходимо сделать отступление и объяснить термин NUMA — Non-Uniform Memory Access.
Архитектура современных физических серверов предполагает наличие двух или более процессоров (CPU) и ассоциированной с ней оперативной памятью (RAM). Такая связка процессор + память называется узел или нода (node). Связь между различными NUMA nodes осуществляется посредством специальной шины — QPI (QuickPath Interconnect)

Выделяют локальную NUMA node — когда процесс, запущенный в операционной системе, использует процессор и оперативную память, находящуюся в одной NUMA node, и удаленную NUMA node — когда процесс, запущенный в операционной системе, использует процессор и оперативную память, находящиеся в разных NUMA nodes, то есть для взаимодействия процессора и памяти требуется передача данных через QPI шину.

С точки зрения виртуальной машины память ей уже выделена на момент ее запуска, однако в реальности это не так, и kernel Host OS выделяет процессу QEMU/KVM новые участки памяти по мере того как приложение в Guest OS запрашивает дополнительную память (хотя тут тоже может быть исключение, если прямо указать QEMU/KVM выделить всю память виртуальной машине непосредственно при запуске).

Память выделяется не байт за байтом, а определенным размером — page. Размер page конфигурируем и теоретически может быть любым, но на практике используется размер 4kB (по умолчанию), 2MB и 1GB. Два последних размера называются HugePages и часто используются для выделения памяти для memory intensive виртуальных машин. Причина использования HugePages в процессе поиска соответствия между виртуальным адресом page и физической памятью в Translation Lookaside Buffer (TLB), который в свою очередь ограничен и хранит информацию только о последних использованных pages. Если информации о нужной page в TLB нет, происходит процесс, называемый

TLB miss, и требуется задействовать процессор Host OS для поиска ячейки физической памяти, соответствующей нужной page.

Данный процесс неэффективен и медлителен, поэтому и используется меньшее количество pages бо́льшего размера.
QEMU/KVM также позволяет эмулировать различные NUMA-топологии для Guest OS, брать память для виртуальной машины только из определенной NUMA node Host OS и так далее. Наиболее распространенная практика — брать память для виртуальной машины из NUMA node локальной по отношению к процессорам, выделенным для виртуальной машины. Причина — желание избежать лишней нагрузки на QPI шину, соединяющую CPU sockets физического сервера (само собой, это логично если в вашем сервере 2 и более sockets).



Как известно, оперативная память потому и называется оперативной, что ее содержимое исчезает при отключении питания или перезагрузке операционной системы. Чтобы хранить информацию, требуется постоянное запоминающее устройство (ПЗУ) или
persistent storage
.
Существует два основных вида persistent storage:
  • Block storage (блоковое хранилище) — блок дискового пространства, который может быть использован для установки файловой системы и создания партиций. Если грубо, то можно воспринимать это как обычный диск.
  • Object storage (объектное хранилище) — информация может быть сохранена только в виде объекта (файла), доступного по HTTP/HTTPS. Типичными примерами объектного хранилища являются AWS S3 или Dropbox.

Виртуальная машина нуждается в persistent storage, однако, как это сделать, если виртуальная машина «живет» в оперативной памяти Host OS? Если вкратце, то любое обращение Guest OS к контроллеру виртуального диска перехватывается QEMU/KVM и трансформируется в запись на физический диск Host OS. Этот метод неэффективен, и поэтому здесь так же как и для сетевых устройств используется virtio-драйвер вместо полной эмуляции IDE или iSCSI-устройства. Подробнее об этом можно почитать здесь. Таким образом виртуальная машина обращается к своему виртуальному диску через virtio-драйвер, а далее QEMU/KVM делает так, чтобы переданная информация записалась на физический диск. Важно понимать, что в Host OS дисковый backend может быть реализован в виде CEPH, NFS или iSCSI-полки.

Наиболее простым способом эмулировать persistent storage является использование файла в какой-либо директории Host OS как дискового пространства виртуальной машины. QEMU/KVM поддерживает множество различных форматов такого рода файлов — raw, vdi, vmdk и прочие. Однако наибольшее распространение получил формат qcow2 (QEMU copy-on-write version 2). В общем случае, qcow2 представляет собой определенным образом структурированный файл без какой-либо операционной системы. Большое количество виртуальных машин распространяется именно в виде qcow2-образов (images) и являются копией системного диска виртуальной машины, упакованной в qcow2-формат. Это имеет ряд преимуществ — qcow2-кодирование занимает гораздо меньше места, чем raw копия диска байт в байт, QEMU/KVM умеет изменять размер qcow2-файла (resizing), а значит имеется возможность изменить размер системного диска виртуальной машины, также поддерживается AES шифрование qcow2 (это имеет смысл, так как образ виртуальной машины может содержать интеллектуальную собственность).

Далее, когда происходит запуск виртуальной машины, QEMU/KVM использует qcow2-файл как системный диск (процесс загрузки виртуальной машины я опускаю здесь, хотя это тоже является интересной задачей), а виртуальная машина имеет возможность считать/записать данные в qcow2-файл через virtio-драйвер. Таким образом и работает процесс снятия образов виртуальных машин, поскольку в любой момент времени qcow2-файл содержит полную копию системного диска виртуальной машины, и образ может быть использован для резервного копирования, переноса на другой хост и прочее.

В общем случае этот qcow2-файл будет определяться в Guest OS как /dev/vda-устройство, и Guest OS произведет разбиение дискового пространства на партиции и установку файловой системы. Аналогично, следующие qcow2-файлы, подключенные QEMU/KVM как /dev/vdX устройства, могут быть использованы как block storage в виртуальной машине для хранения информации (именно так и работает компонент Openstack Cinder).



Последним в нашем списке виртуальных ресурсов идут сетевые карты и устройства ввода/вывода. Виртуальная машина, как и физический хост, нуждается в PCI/PCIe-шине для подключения устройств ввода/вывода. QEMU/KVM способен эмулировать разные типы чипсетов — q35 или i440fx (первый поддерживает — PCIe, второй — legacy PCI ), а также различные PCI-топологии, например, создавать отдельные PCI-шины (PCI expander bus) для NUMA nodes Guest OS.

После создания PCI/PCIe шины необходимо подключить к ней устройство ввода/вывода. В общем случае это может быть что угодно — от сетевой карты до физического GPU. И, конечно же, сетевая карта, как полностью виртуализированная (полностью виртуализированный интерфейс e1000, например), так и пара-виртуализированная (virtio, например) или физическая NIC. Последняя опция используется для data-plane виртуальных машин, где требуется получить line-rate скорости передачи пакетов — маршрутизаторов, файрволов и тд.

Здесь существует два основных подхода — PCI passthrough и SR-IOV. Основное отличие между ними — для PCI-PT используется драйвер только внутри Guest OS, а для SRIOV используется драйвер Host OS (для создания VF — Virtual Functions) и драйвер Guest OS для управления SR-IOV VF. Более подробно об PCI-PT и SRIOV отлично написал Juniper.

Для уточнения стоит отметить что, PCI passthrough и SR-IOV это дополняющие друг друга технологии. SR-IOV это нарезка физической функции на виртуальные функции. Это выполняется на уровне Host OS. При этом Host OS видит виртуальные функции как еще одно PCI/PCIe устройство. Что он дальше с ними делает — не важно.

А PCI-PT это механизм проброса любого Host OS PCI устройства в Guest OS, в том числе виртуальной функции, созданной SR-IOV устройством

Таким образом мы рассмотрели основные виды виртуальных ресурсов и следующим шагом необходимо понять как виртуальная машина общается с внешним миром через сеть.


Если есть виртуальная машина, а в ней есть виртуальный интерфейс, то, очевидно, возникает задача передачи пакета из одной VM в другую. В Linux-based гипервизорах (KVM, например) эта задача может решаться с помощью Linux bridge, однако, большое распространение получил проект Open vSwitch (OVS).
Есть несколько основных функциональностей, которые позволили OVS широко распространиться и стать de-facto основным методом коммутации пакетов, который используется во многих платформах облачных вычислений(например, Openstack) и виртуализированных решениях.

  • Передача сетевого состояния — при миграции VM между гипервизорами возникает задача передачи ACL, QoSs, L2/L3 forwarding-таблиц и прочего. И OVS умеет это.
  • Реализация механизма передачи пакетов (datapath) как в kernel, так и в user-space
  • CUPS (Control/User-plane separation) архитектура — позволяет перенести функциональность обработки пакетов на специализированный chipset (Broadcom и Marvell chipset, например, могут такое), управляя им через control-plane OVS.
  • Поддержка методов удаленного управления трафиком — протокол OpenFlow (привет, SDN).

Архитектура OVS на первый взгляд выглядит довольно страшно, но это только на первый взгляд.

Для работы с OVS нужно понимать следующее:

  • Datapath — тут обрабатываются пакеты. Аналогия — switch-fabric железного коммутатора. Datapath включает в себя приём пакетов, обработку заголовков, поиск соответствий по таблице flow, который в Datapath уже запрограммирован. Если OVS работает в kernel, то выполнен в виде модуля ядра. Если OVS работает в user-space, то это процесс в user-space Linux.
  • vswitchd и ovsdb — демоны в user-space, то что реализует непосредственно сам функциональность коммутатора, хранит конфигурацию, устанавливает flow в datapath и программирует его.
  • Набор инструментов для настройки и траблшутинга OVS — ovs-vsctl, ovs-dpctl, ovs-ofctl, ovs-appctl. Все то, что нужно, чтобы прописать в ovsdb конфигурацию портов, прописать какой flow куда должен коммутироваться, собрать статистику и прочее. Добрые люди написали статью по этому поводу.

Каким же образом сетевое устройство виртуальной машины оказывается в OVS?

Для решения данной задачи нам необходимо каким-то образом связать между собой виртуальный интерфейс, находящийся в user-space операционной системы с datapath OVS, находящимся в kernel.

В операционной системе Linux передача пакетов между kernel и user-space-процессами осуществляется посредством двух специальных интерфейсов. Оба интерфейса использует запись/чтение пакета в/из специальный файл для передачи пакетов из user-space-процесса в kernel и обратно — file descriptor (FD) (это одна из причин низкой производительности виртуальной коммутации, если datapath OVS находится в kernel — каждый пакет требуется записать/прочесть через FD)

  • TUN (tunnel) — устройство, работающее в L3 режиме и позволяющее записывать/считывать только IP пакеты в/из FD.
  • TAP (network tap) — то же самое, что и tun интерфейс + умеет производить операции с Ethernet-фреймами, т.е. работать в режиме L2.

Именно поэтому при запущенной виртуальной машине в Host OS можно увидеть созданные TAP-интерфейсы командой ip link или ifconfig — это «ответная» часть virtio, которая «видна» в kernel Host OS. Также стоит обратить внимание, что TAP-интерфейс имеет тот же MAC-адрес что и virtio-интерфейс в виртуальной машине.

TAP-интерфейс может быть добавлен в OVS с помощью команд ovs-vsctl — тогда любой пакет, скоммутированный OVS в TAP-интерфейс, будет передан в виртуальную машину через file descriptor.

Реальный порядок действий при создании виртуальной машины может быть разным, т.е. сначала можно создать OVS bridge, потом указать виртуальной машине создать интерфейс, соединенный с этим OVS, а можно и наоборот.

Теперь, если нам необходимо получить возможность передачи пакетов между двумя и более виртуальными машинами, которые запущены на одном гипервизоре, нам потребуется лишь создать OVS bridge и добавить в него TAP-интерфейсы с помощью команд ovs-vsctl. Какие именно команды для этого нужны легко гуглится.

На гипервизоре может быть несколько OVS bridges, например, так работает Openstack Neutron, или же виртуальные машины могут находиться в разных namespace для реализации multi-tenancy.

А если виртуальные машины находятся в разных OVS bridges?

Для решения данной задачи существует другой инструмент — veth pair. Veth pair может быть представлен как пара сетевых интерфейсов, соединенных кабелем — все то, что «влетает» в один интерфейс, «вылетает» из другого. Veth pair используется для соединения между собой нескольких OVS bridges или Linux bridges. Другой важный момент что части veth pair могут находиться в разных namespace Linux OS, то есть veth pair может быть также использован для связи namespace между собой на сетевом уровне.

В предыдущих главах мы рассматривали теоретические основы виртуализации, в этой главе мы поговорим об инструментах, которые доступны пользователю непосредственно для запуска и изменения виртуальных машин на KVM-гипервизоре.
Остановимся на трех основных компонентах, которые покрывают 90 процентов всевозможных операций с виртуальными машинами:

  • libvirt
  • virsh CLI
  • virt-install
Конечно, существует множество других утилит и CLI-команд, которые позволяют управлять гипервизором, например, можно напрямую пользоваться командами qemu_system_x86_64 или графическим интерфейсом virt manager, но это скорее исключение. К тому же существующие сегодня Cloud-платформы, Openstack, например, используют как раз libvirt.

libvirt


libvirt — это масштабный open-source проект, который занимается разработкой набора инструментов и драйверов для управления гипервизорами. Он поддерживает не только QEMU/KVM, но и ESXi, LXC и много чего еще.
Основная причина его популярности — структурированный и понятный интерфейс взаимодействия через набор XML-файлов плюс возможность автоматизации через API. Стоит оговориться что libvirt не описывает все возможные функции гипервизора, он лишь предоставляет удобный интерфейс использования полезных, с точки зрения участников проекта, функции гипервизора.

И да, libvirt это де-факто стандарт в мире виртуализации сегодня. Только взгляните на список приложений, которые используют libvirt.

Хорошая новость про libvirt — все нужные пакеты уже предустановлены во всех наиболее часто используемых Host OS — Ubuntu, CentOS и RHEL, поэтому, скорее всего, собирать руками нужные пакеты и компилировать libvirt вам не придется. В худшем случае придется воспользоваться соответствующим пакетным инсталлятором (apt, yum и им подобные).

При первоначальной установке и запуске libvirt по умолчанию создает Linux bridge virbr0 и его минимальную конфигурацию.

Именно поэтому при установке Ubuntu Server, например, вы увидите в выводе команды ifconfig Linux bridge virbr0 — это результат запуска демона libvirtd

Этот Linux bridge не будет подключен ни к одному физическому интерфейсу, однако, может быть использован для связи виртуальных машин внутри одного гипервизора. Libvirt безусловно может быть использован вместе с OVS, однако, для этого пользователь должен самостоятельно создать OVS bridges с помощью соответствующих OVS-команд.

Любой виртуальный ресурс, необходимый для создания виртуальной машины (compute, network, storage) представлен в виде объекта в libvirt. За процесс описания и создания этих объектов отвечает набор различных XML-файлов.

Детально описывать процесс создания виртуальных сетей и виртуальных хранилищ не имеет особого смысла, так как эта прикладная задача хорошо описана в документации libvirt:

Сама виртуальная машина со всеми подключенными PCI-устройствами в терминологии libvirt называется domain. Это тоже объект внутри libvirt, который описывается отдельным XML-файлом.

Этот XML-файл и является, строго говоря, виртуальной машиной со всеми виртуальными ресурсами — оперативная память, процессор, сетевые устройства, диски и прочее. Часто данный XML-файл называют libvirt XML или dump XML.
Вряд ли найдется человек, который понимает все параметры libvirt XML, однако, это и не требуется, когда есть документация.

В общем случае, libvirt XML для Ubuntu Desktop Guest OS будет довольно прост — 40-50 строчек. Поскольку вся оптимизация производительности описывается также в libvirt XML (NUMA-топология, CPU-топологии, CPU pinning и прочее), для сетевых функций libvirt XML может быть очень сложен и содержать несколько сот строк. Любой производитель сетевых устройств, который поставляет свое ПО в виде виртуальных машин, имеет рекомендованные примеры libvirt XML.

virsh CLI

Утилита virsh — «родная» командная строка для управления libvirt. Основное ее предназначение — это управление объектами libvirt, описанными в виде XML-файлов. Типичными примерами являются операции start, stop, define, destroy и так далее. То есть жизненный цикл объектов — life-cycle management.

Описание всех команд и флагов virsh также доступно в документации libvirt.

virt-install

Еще одна утилита, которая используется для взаимодействия с libvirt. Одно из основных преимуществ — можно не разбираться с XML-форматом, а обойтись лишь флагами, доступными в virsh-install. Второй важный момент — море примеров и информации в Сети.

Таким образом какой бы утилитой вы ни пользовались, управлять гипервизором в конечном счете будет именно libvirt, поэтому важно понимать архитектуру и принципы его работы.


В данной статье мы рассмотрели минимальный набор теоретических знаний, который необходим для работы с виртуальными машинами. Я намеренно не приводил практических примеров и выводов команд, поскольку таких примеров можно найти сколько угодно в Сети, и я не ставил перед собой задачу написать «step-by-step guide». Если вас заинтересовала какая-то конкретная тема или технология, оставляйте свои комментарии и пишите вопросы.






  • Александру Шалимову — моему коллеге и эксперту в области разработки виртуальных сетей. За комментарии и правки.
  • Евгению Яковлеву — моему коллеге и эксперту в области виртуализации за комментарии и правки.

Виртуальные машины дома и в бизнесе

Стремительное развитие технологий виртуализации оказало значительное влияние не только на развитие ИТ-инфраструктуры крупных предприятий. Мощности настольных персональных компьютеров достигли такого уровня, когда одна физическая машина может поддерживать несколько одновременно запущенных операционных систем в виртуальных машинах. Еще несколько лет назад виртуальные машины были чем-то экзотическим для конечных пользователей, которые устанавливали их, большей частью, в ознакомительных целях. Теперь многоядерные процессоры и большие объемы оперативной памяти на домашнем или офисном компьютере не редкость, и это позволяет придумывать новые варианты их использования в контексте технологий виртуализации.

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

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

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

Как использовать виртуальные машины дома

Большинство пользователей персональных компьютеров часто сталкиваются с проблемой использования потенциально опасных или нестабильных приложений, которые могут либо повредить операционную систему, либо оказать влияние на работу других программ. Зачастую домашний компьютер, на котором расположены также и рабочие документы, используется несколькими людьми, среди которых не все понимают, как правильно с ним обращаться, чтобы не повредить важные данные или операционную систему. Создание учетных записей типа «User» не решает этой проблемы, поскольку для установки многих приложений необходимы административные права, и работа за компьютером в таком режиме существенно ограничивает его использование. Безусловно, многие сталкиваются также и с проблемой перенесения операционной системы и установленных приложений на другой компьютер при его покупке. Категория пользователей, активно использующих ноутбуки, сталкивается с проблемой синхронизации данных между ним и стационарным компьютером. Ведь необходима не только синхронизация файлов, но требуется также использовать одни и те приложения на работе и дома. Для множества людей, немаловажна также возможность обучения работе с различными операционными системами, от которых в этом случае не требуется высокого быстродействия. При этом, например, работая в Linux, пользователю требуется обращаться к Windows-приложениям, и для этого приходится перезагружать компьютер. И главной проблемой при обучении является невозможность моделирования реальной сети между несколькими компьютерами при наличии в распоряжении одного. Все эти и множество других проблем, позволяет решить использование виртуальных машин в настольных системах виртуализации.

Основными вариантами домашнего использования виртуальных машин являются следующие:

  • Создание персональной виртуальной среды, изолированной от хостовой системы, что позволяет использовать на одном компьютере несколько копий рабочих окружений, полностью изолированных друг от друга. К сожалению, такая модель исключает вариант использования виртуальных сред для 3D-игр, поскольку производители платформ виртуализации не научились еще полноценно поддерживать эмуляцию всех функций видеоадаптеров. Впереди всех на данный момент в этом отношении компания VMware, которая в последних версиях своей настольной платформы VMware Workstation включила функции по экспериментальной поддержке Direct-3D и шейдеров. Тем не менее, не так давно компания PCI-SIG, занимающаяся разработкой стандарта PCI Express, опубликовала новые спецификации стандарта PCI Express 2.0, в которых заявляется о поддержке функций виртуализации ввода-вывода, которые значительно упрощают гостевым системам доступ к физическому железу. Бесспорно, не за горами то время, когда мы будем играть в игры на виртуальных машинах.
  • Создание переносных виртуальных машин, готовых к использованию на любой другой совместимой по архитектуре платформе. Если вам необходимо продемонстрировать работу какой-либо программы, при этом она или окружение операционной системы должны быть определенным образом настроены — виртуальные машины лучший вариант в этом случае. Сделайте в виртуальной машине все необходимые действия, запишите ее на DVD-диск и там, где вам нужно показать, как все работает, установите платформу виртуализации и запустите виртуальную машину.
  • Получение безопасных пользовательских окружений для Интернет. При работе в сети Интернет, которая, как всем известно, изрядно наполнена вирусами и «троянскими конями», запуск интернет-браузера в режиме user-mode для многих не является приемлемым решением, с точки зрения безопасности. Ведь в программном обеспечении, в том числе и в операционных системах, существует множество уязвимостей, сквозь которые вредоносное ПО может повредить важные данные. Виртуальная машина в этом случае является более выигрышным вариантом, поскольку вредоносная программа после получения контроля над операционной системой в виртуальной машине, может причинить вред только внутри нее, не затрагивая при этом хостовую ОС. Кстати, в последнее время начали появляться вирусы, обнаруживающие свое присутствие в виртуальной машине и не выдающие себя в этом случае, однако пока таких вредоносных программ единицы, и в любом случае вред важным данным нанесен не будет, пока зараженные объекты не будут перенесены в хостовую ОС. Поэтому применение виртуальных машин в этом случае нисколько не исключает использование антивирусного ПО.
  • Создание сред для экспериментов с потенциально опасным программным обеспечением. На виртуальной машине вы можете безболезненно опробовать новый чистильщик реестра или дисковую утилиту. Вы также можете без всякого риска устанавливать прикладное ПО, которое может при определенных условиях повредить систему или ваши данные. В этом случае виртуальная машина выступает в роли «песочницы», в которой играются ваши программы. Вы можете спокойно наблюдать за их работой и изучать их, не беспокоясь при этом за сохранность данных.
  • Удобное и простое резервное копирование пользовательских сред. В конечном счете, виртуальная машина — это всего лишь папка с файлами на вашем компьютере, которая может быть скопирована на резервный носитель, а потом легко восстановлена. В этом случае не требуется создавать образов жесткого диска, чтобы сделать резервную копию вашей системы.
  • Возможность обучения работе с операционными системами, отличными от вашей хостовой. Безусловно, можно установить вторую ОС параллельно с вашей основной системой, но в таком случае, если вам понадобится какое-либо приложение из основной системы, вам придется перезагрузиться. В этом случае виртуальная машина идеальный вариант: вы запускаете нужную вам ОС параллельно с хостовой и переключаетесь между ними в случае необходимости. Во многих системах обмен файлами между гостевой и хостовой системой организован просто — перетаскиванием файлов и папок указателем мыши.

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

Настольные платформы виртуализации в бизнесе

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

  • Создание хранилищ типовых шаблонов рабочих окружений пользователей. В зависимости от специфики работы организации, ее сотрудникам необходимо применение определенного набора программного обеспечения. При приходе в организацию нового сотрудника, ему необходимо установить операционную систему, определенным образом настроить ее, в соответствии с требованиями организации и политиками безопасности, а также установить все необходимое прикладное ПО. При использовании шаблонов виртуальных машин эта проблема решается очень просто: сотруднику устанавливается настольная платформа виртуализации, а в ней запускается виртуальная машина из набора шаблонов организации, в которой установлено все необходимое ПО и сделаны соответствующие настройки операционной системы. Такая модель позволит существенно сократить временные затраты на развертывание, а также обеспечить высокую гибкость при переносе виртуального десктопа сотрудника на другую физическую машину. Безусловно, такой вариант использования, возможно, потребует повышенных аппаратных ресурсов оборудования, однако это с лихвой окупится, если сотруднику приходится оперировать большими объемами разнородных данных, резервное копирование которых потребует значительного времени. Например, сотрудники службы маркетинга, которые устанавливают множество необходимых им программ, ежедневно пробуют что-то и работают с различными документами. В этом случае, они могут копировать папку с файлами их рабочей виртуальной машины в конце рабочего дня, не боясь при этом, что завтра при установке очередной программы все «сломается».
  • Создание виртуальной инфраструктуры десктопов, позволяющей централизованно хранить пользовательские окружения на защищенных серверах компании. Сами конечные пользователи при этом используют средства удаленного доступа к рабочему столу своих окружений (например, Terminal Services), хранящихся в корпоративном датацентре. Такой вариант использования виртуальных машин требует значительных затрат на его внедрение, поскольку в этом случае требуется поддержка серверных платформ виртуализации датацентра компании. Однако в этом случае обеспечивается наилучший уровень безопасности и доступности. Поскольку все рабочие среды хранятся и обслуживаются централизованно в защищенном средствами безопасности датацентре, вероятность утечки конфиденциальной информации существенно снижается. При этом степень доступности таких окружений значительно повышается, ведь доступ к ним может быть обеспечен из любой точки с высокоскоростным соединением. Строго говоря, это решение не относится к настольным платформам виртуализации, однако затрагивает конечных пользователей. Примером такого решения может служить VMware Virtual Desktop Infrastructure, основанное на виртуальной инфраструктуре серверов организации в корпоративном датацентре. Структура такой модели приведена на рисунке:

    Виртуальная инфраструктура десктопов VMware Desktop Infrastructure

  • Применение защищенных политиками безопасности виртуальных машин. IT-профессионалам, которым требуется обеспечение конфиденциальности их персональных данных, а также частая демонстрация различного программного обеспечения заказчикам, отлично подойдут решения для создания защищенных виртуальных машин, которые предоставляют средства разграничения доступа к различным функциям по работе с виртуальной машиной. Также можно установить срок действия виртуальной машины и таким образом распространить программное обеспечение, чтобы определенный круг лиц не мог использовать виртуальную машину свыше дозволенного времени. Примером такого решения служит продукт ACE Manager компании VMware.
  • Упрощение обучения пользователей за счет создания учебных классов с виртуальными машинами, где установлены различные операционные системы и прикладное программное обеспечение. В случае если группу сотрудников организации необходимо обучить использованию какого-либо продукта или программы, можно создать один шаблон виртуальной машины и установить платформу виртуализации на каждом из компьютеров учебного класса. Далее виртуальная машина может быть скопирована на все компьютеры и запущена со всем необходимым количеством программ. Если понадобится обучение другому продукту, можно создать новый шаблон виртуальной машины и также развернуть его на всех компьютерах учебного класса.
  • Разработка и тестирование программного обеспечения в компании. Виртуальная машина, являясь изолированной средой, идеально подходит для разработки ПО. Разработчики и тестеры могут создавать необходимые им конфигурации операционных систем и пользовательских окружений для симуляции поведения программы на различных платформах. В рамках этого варианта использования возможно также моделирование рабочих связок виртуальных машин на одной физической платформе, осуществляющих между собой сетевое взаимодействие. Кроме того, некоторые платформы, такие как VMware Workstation, позволяют создавать деревья состояний виртуальных машин, в каждом из которых сохранена определенная пользовательская конфигурация. К каждому из таких состояний возможен откат одним кликом мыши. Пример такого дерева:

    Пример дерева состояний виртуальной машины

Сравнительный обзор настольных платформ виртуализации

Ведущие компании в сфере производства настольных платформ виртуализации за последние два года много сделали, чтобы максимально упростить их использование и сделать доступными даже самому неискушенному пользователю. Лидерами в производстве систем виртуализации для конечных пользователей на данный момент являются компании: VMware с продуктами VMware Workstation, VMware ACE и VMware Fusion, Microsoft с продуктом Virtual PC, Parallels, продвигающая свою платформу виртуализации для Mac OS с продуктом Parallels Desktop for Mac, и компания InnoTek с бесплатной платформой с открытым исходным кодом VirtualBox. Кратко рассмотрим возможности некоторых из этих продуктов.

VMware Workstation

Консоль управления виртуальными машинами VMware Workstation 6

Компания VMware является на сегодняшний день безусловным лидером в области настольных систем виртуализации. Ее продукты просты в использовании, обладают широкими функциональными возможностями и отличаются высоким быстродействием. На продукт VMware Workstation ориентируются практически все производители настольных платформ виртуализации. Процесс создания виртуальной машины и установки гостевой операционной системы не вызывает особых трудностей: при создании необходимо указать объем оперативной памяти, выделяемой под гостевую систему, тип и размер виртуального диска, папку, где будут расположены файлы виртуальной машины и тип устанавливаемой гостевой ОС. В качестве установочного дистрибутива гостевой системы может использоваться загрузочный CD или DVD-диск или ISO-образ. После установки операционной системы в виртуальной машине обязательно необходимо установить VMware Tools и отключить все ненужные эмулируемые устройства в настройках в целях оптимизации быстродействия. Также можно создать мгновенный снимок (snapshot) «чистого» состояния гостевой системы, при этом все данные виртуальных дисков на этот момент будут сохранены, и в любое время можно будет вернуться к их сохраненному состоянию. К ключевым особенностям VMware Workstation можно отнести:

  • Поддержку различных типов виртуальных дисков (эмулируются контроллеры как для IDE, так и для SCSI дисков):
    • фиксированного размера (Preallocated) или растущие по мере заполнения (Growing), при этом первые оптимизированы по быстродействию, а вторые удобны тем, что не занимают много места до того, как будут заполнены
    • независимые (Independent) диски, на которые не оказывает влияния создание снимков состояния операционной системы. Такие диски удобны для организации хранилищ файлов, изменение которых не требуется при работе со снимками состояний гостевой системы
    • поддержка дисков, состояние которых не сохраняется при выключении виртуальной машины
    • возможность прямой записи на физический диск
  • Поддержку различных типов сетевого взаимодействия между виртуальными машинами, включая объединение виртуальных машин в «команды» (Teams), что позволяет создавать виртуальные подсети, состоящие из виртуальных машин с различным количеством виртуальных сетевых адаптеров (до трех). Виртуальный сетевой интерфейс при этом может работать в трех различных режимах:
    • Bridged Networking — виртуальная машина разделяет ресурсы сетевой карты с хостовой операционной системой и работает с внешней по отношению к ней сетью как самостоятельная машина.
    • Host-only Networking — виртуальная машина получает IP-адрес в собственной подсети хоста от DHCP-сервера VMware. Соответственно, работать в сети можно только с другими виртуальными машинами на этом хосте и с ОС самого хоста.
    • NAT — виртуальная машина работает также в собственной подсети хоста (но другой), однако, через NAT сервер VMware, может инициировать соединения во внешнюю сеть. Из внешней сети инициировать соединение с такой виртуальной машиной невозможно. В пределах хоста сетевое взаимодействие обеспечивается.
    • Диски также можно монтировать в хостовую систему с помощью утилиты vmware-mount и расширять с помощью утилиты vmware-vdiskmanager (эта утилита служит также для выполнения еще ряда действий над виртуальными дисками).
  • Возможность простого обмена файлами с помощью интерфейса Drag&Drop, а также путем создания общих папок (Shared Folders) между хостом и гостевой ОС.
  • Поддержку большого списка гостевых и хостовых операционных систем.

В последней версии VMware Workstation 6 включены также следующие полезные функции:

  • полная поддержка интерфейса USB 2.0
  • возможность записи активности виртуальной машины
  • интегрированный продукт VMware Converter (для Windows-хостов) для импорта виртуальных машин других производителей
  • запуск виртуальной машины в качестве сервиса

Стоит также отметить, что продукт VMware Workstation является на данный момент единственной платформой виртуализации, экспериментально поддерживающей Direct-3D в гостевых операционных системах. Основным и, пожалуй, единственным недостатком этой платформы является тот факт, что она не бесплатна.

Microsoft Virtual PC

Консоль управления виртуальными машинами Microsoft Virtual PC 2007

Появившись как конкурент VMware Workstation, продукт компании Connectix, купленный впоследствии корпорацией Microsoft вместе с компанией, не получил в ее руках достойного развития. В результате, на данный момент, практически по всем параметрам он проигрывает платформе VMware Workstation и может быть запущен только в хостовой операционной системе Windows. Однако достаточное количество пользователей применяют его в качестве настольной платформы виртуализации, поскольку Virtual PC является бесплатным и удовлетворяет основные потребности в отношении использования виртуальных машин. Процесс установки гостевой системы также весьма прост и интуитивен. После того, как операционная система будет установлена, необходимо установить Virtual Machine Additions (аналог VMware Tools в VMware Workstation), существенно повышающие быстродействие гостевой ОС, за счет улучшения техники виртуализации. VM Additions также можно установить и в гостевых операционных системах Linux.

К основным достоинствам продукта Microsoft Virtual PC можно отнести следующие возможности:

  • Полная поддержка Windows Vista как в качестве хостовой, так и в качестве гостевой операционной системы. В отношении быстродействия в Virtual PC 2007 был сделан существенный шаг вперед по сравнению с прошлой версией, и теперь быстродействие Windows Vista в виртуальной машине вполне приемлемо.
  • Поддержка 64-битных хостовых Windows-систем.
  • Повышенное быстродействие за счет использования улучшений, введенных в Microsoft Virtual Server 2005 R2.
  • Наличие различных типов виртуальных дисков:
    • Dynamically expanding (аналог Growing в VMware Workstation)
    • Fixed Size (аналог Preallocated в VMware Workstation)
    • Differencing — диск, хранящий в себе изменения от текущего состояния виртуального диска
    • Linked to a hard disk (аналог прямой записи на диск в VMware Workstation)
  • Наличие различных типов сетевого взаимодействия между виртуальными машинами и хостом:
    • аналог Bridged Networking в VMware Workstation
    • Local only (аналог Host-only в VMware Workstation)
    • Shared Networking (аналог NAT в VMware Workstation)

Нужно отметить, что продукт Virtual PC направлен, скорее, на применение домашними пользователями, нежели IT-профессионалами и разработчиками программного обеспечения, в то время как VMware Workstation, обладая значительно большей функциональностью, способен покрыть потребности последних. В то же время, Virtual PC бесплатен и предназначен в основном для упрощения миграции на новые операционные системы Microsoft и поддержки их устаревших версий. И, безусловно, на популярность платформы Virtual PC оказывает ее бесплатность, создавая определенную нишу для применения этого продукта.

Parallels Workstation и Parallels Desktop for Mac

Консоль виртуальной машины Parallels Desktop

Продукт Parallels Workstation предназначен для использования на Windows и Linux-платформах в качестве настольной системы виртуализации. В связи с тем, что компания Parallels (фактически принадлежащая российской компании SWSoft) сосредоточилась сейчас в основном на продукте Parallels Desktop, развитие этого продукта в данный момент несколько приостановилось и по функциональным возможностям он уступает двум ведущим настольным платформам от VMware и Microsoft. Поэтому расскажем о платформе Parallels Desktop for Mac, которая сейчас является основной для компьютеров от Apple. К тому же в данный момент развитие этой платформы весьма динамично, что обусловлено, в первую очередь, тем, что копания VMware всерьез намерена вторгнуться на рынок виртуализации для Маков со своим практически готовым к окончательному релизу продуктом VMware Fusion. Ключевые возможности платформы Parallels Desktop for Mac:

  • Простое создание виртуальных машин в три шага с помощью Parallels Installation Assistant. Чтобы создать виртуальную машину и установить в ней гостевую операционную систему, не потребуется лишних усилий.
  • Наличие утилиты Parallels Transporter, позволяющей осуществить миграцию с физической машины на виртуальную.
  • Полная поддержка гостевой ОС Windows Vista. При этом обеспечивается простой обмен файлами между гостевой и хостовой операционной системами
  • Поддержка интерфейса USB 2.0
  • Поддержка Mac OS X «Leopard»

Как и большинство продуктов для платформы Mac OS X, Parallels Desktop предоставляет пользователю простой и удобный интерфейс. Не секрет, что многие пользователи платформы Mac зачастую испытывают потребность в использовании продуктов для Windows, и Parallels Desktop предоставляет им такую возможность, позволяя чувствовать себя «в двух мирах».

Также можно упомянуть такие продукты компании Parallels, как Parallels Compressor Workstation и Parallels Compressor Server, позволяющие сжимать диски не только виртуальных машин Parallels, но и VMware, что является решением одной из проблем, часто возникающих у пользователей.

VirtualBox

Консоль виртуальной машины VirtualBox

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

Многие блоггеры, лояльно настроенные к компании VMware, тем не менее, заявили, что на их десктопах виртуальные машины на платформе VirtualBox работают заметно быстрее, чем виртуальные машины в VMware Workstation. К тому же до недавнего времени платформа VirtualBox была доступна только для Linux и Windows хостов, а в конце апреля появилась первая сборка для Mac OS X, где планируется конкуренция платформы с такими «монстрами» систем виртуализации, как Parallels и VMware. И, безусловно, у нее есть все шансы на победу. Учитывая полную открытость платформы и ее бесплатность, множество энтузиастов готовы взяться за доработку платформы и наращивание функционала, будем надеяться, без ущерба ее производительности. На данный момент VirtualBox обладает не такой широкой функциональностью, как ведущие платформы, не поддерживает 64-битные системы и сетевое взаимодействие с Windows Vista, но на сайте www.virtualbox.org можно получить оперативную информацию, над какими функциями системы ведется работа. На данный момент платформа обладает следующими основными возможностями:

  • Достаточно большой список поддерживаемых хостовых и гостевых операционных систем.
  • Поддержка множественных снимков текущего состояния гостевой системы (snapshots).
  • Динамически расширяющиеся и фиксированного размера диски.
  • Возможность установки Guest Additions (аналог VMware Tools) для повышения степени интеграции с хостовой ОС

Безусловно, касательно функциональности, VirtualBox является весьма незрелым продуктом, однако показатели его быстродействия говорят, что у платформы есть будущее, и сообщество Open Source приложит все усилия к его совершенствованию и развитию.

Что выбрать в качестве настольной системы виртуализации?

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

Бесспорно, когда речь идет об использовании настольной системы виртуализации дома на Windows хостах, следует выбирать между платформами Microsoft Virtual PC или VirtualBox, поскольку они бесплатны и обладают необходимым функционалом для поддержки виртуальных машин дома. Однако когда речь идет о применении виртуальных машин в бизнесе, в корпоративной среде предприятия, где развертывание настольных систем виртуализации предъявляет высокие требования к функциональности и надежности, не обойтись без VMware Workstation, существенно превосходящего другие описанные платформы. Здесь также может найти свое место и продукт VirtualBox, как наиболее оптимизированный по быстродействию.

Virtual PC следует использовать при обеспечении поддержки старых версий Windows и обкатке Windows Vista в качестве гостевой ОС. А без продукта Parallels Desktop пользователям платформы Мак не обойтись: об этом говорит тот факт, что результат в более чем 100 000 проданных копий продукта был зафиксирован еще в 2006 году. Пользователям Маков следует также обратить внимание на платформу VMware Fusion, которая в будущем претендует на лидерство в сфере настольных платформ виртуализации.

Технологии виртуализации для персональных компьютеров становятся все ближе к конечному пользователю и сейчас могут использоваться как повседневной работе сотрудников организаций, так и на домашних компьютерах для создания защищенных или изолированных персональных сред. К тому же использование виртуальных машин на десктопах не ограничивается описанными вариантами. Например, в виртуальной машине VMware, в оконном режиме консоли гостевой операционной системы, можно выставить большее поддерживаемого монитором разрешение, при этом у окна гостевой системы появятся полосы прокрутки. Это позволит протестировать веб-сайт или приложение на высоких разрешениях при отсутствии соответствующего монитора. Этот пример показывает, что варианты использования виртуальных машин на настольных компьютерах зависят от вашей фантазии. А стремительно развивающиеся пользовательские платформы виртуализации помогут вам в удовлетворении ваших потребностей.

Некоторые особенности использования виртуальных машин для новичков / Habr

Виртуальные машины, такие как Virtualbox, используются для эмуляции виртуальное оборудование и запуска нескольких операционных систем на компьютере. Чем лучше будет у вас CPU и чем больше будет оперативной памяти, тем быстрее будут выполнятся виртуальные машины на вашем компьютере.
Я предлагаю несколько советов которые помогут вам сэкономить время при начальной настройке виртуальных машин. Это будет полезно для работы с виртуальными машинами VirtualBox, VMware, Parallels, или любой другой.

Обязательно установите дополнения гостевой ОС VirtualBox или VMware Tools

После установки гостевой операционной системы в виртуальной машине, первое, что нужно сделать, это установить программное обеспечение виртуальной машины -«Дополнения гостевой ОС для VirtualBox» или VMware Tools для VMware». Эти пакеты включают в себя специальные драйверы, которые помогут вашей гостевой операционной системе работать быстрее на используя аппаратные средства вашей основной машины.

Установка пакета проста — в VirtualBox, после загрузки гостевой операционной системы, нажмите кнопку меню Устройства и выберите «Install Guest Additions». Если вы используете VMware, выберите «Install VMware Tools» в меню Virtual Machine. Следуйте инструкциям на экране для завершения установки — если вы используете Windows в качестве гостевой операционной системы, то это будет аналогично установке любого другого приложения.

Убедитесь, что вы имеете самую последнюю версию Guest Additions — если вы видите уведомление, что доступно обновление для Guest Additions или VMware Tools, вы должны установить его.

Создание фиксированного размера дисков при первоначальной настройке

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

Например, если вы создаете новую виртуальную машину с динамически выделяемым диском с максимальным размером 30 Гб, это не займет до 30 Гб места на жестком диске сразу.После установки операционной системы и программ, диск может только занять до 10 Гб. По мере добавления файлов на виртуальном диске, он будет расширяться до максимального размера в 30 Гб.

Это может быть удобно — каждая виртуальная машина не будет занимать неоправданно много места на вашем жестком диске. Тем не менее, это медленнее, чем создание фиксированного размера диска (диск с заранее выделенным местом). При создании фиксированного размера диска, все 30 Гб, будет занято немедленно на вашем компьютере.

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

Исключите каталог виртуальных машин в вашем антивирусе

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

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

Выделите больше памяти

Виртуальные машины любят много виртуальной памяти. Microsoft рекомендует 2 Гб RAM для 64-битной Windows 7, и эта рекомендация относится и к Windows 7 x32, когда он работает в виртуальной машине. Если вы работаете большими приложениями в виртуальной машине, вы можете выделить более 2 Гб оперативной памяти.

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

Выделите больше процессоров

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

Если вы собираетесь инсталлировать ОС семейства MS-Windows и в будущем чтобы можно было использовать больше ядер при инсталляции указывайте 2 ядра для того чтобы поставился корректный HAL, после инсталляции вы можете выключить машину и поставить 1 ядро по умолчанию для повседневного использования. Но для будущего вы всегда сможете добавить ядра без деинсталляции ОС. Linux VM может динамически определять любое количество ядер при загрузке ОС.

Настройте параметры видео

Тонкая настройка параметров видео и выделение большего объема видеопамяти поможет также улучшить скорость вашей виртуальной машины. Например, включение функции 2D ускорение в VirtualBox улучшает воспроизведение видео в виртуальных машинах, включение 3D-ускорения позволит вам использовать некоторые 3D-приложения.

По большому счету нужно минимизировать использование 3D например ОС Windows 7 — отключив Aero.

Убедитесь, что функции Intel VT-x или AMD-V включены

Intel VT-x и AMD-V являются специальными расширениями процессора, которые улучшают скорость виртуализации. Новые Intel и AMD процессоры обычно включают в себя эти функции. Тем не менее, некоторые компьютеры не включают автоматически VT-x или AMD-V — вам придется включить этот параметр в BIOS вашего компьютера.

Чтобы определить, поддерживает ли Ваш Intel процессор расширение Intel VT, воспользуйтесь утилитами показывающими системную информацию. Если ваш процессор поддерживает эту функцию, но опция недоступна в вашей виртуальной машине, вы должны в BIOS вашего компьютера включить эту функцию. Этот параметр обычно включен по умолчанию в материнских платах с процессорами AMD.

Поместите файлы виртуальной машины на другой диск

Производительность диска может ограничить скорость вашей виртуальной машины. Размещение файлов виртуальной машины на отдельном физическом диске или не на системном диске — может улучшить производительность. Ваша виртуальная машина и система не будут конкурентно читать и писать с одного диска.

Однако, вы не должны запускать виртуальную машину с внешнего диска (USB) — это будет гораздо медленнее.

Еще несколько полезных советов

  1. Выделение дополнительных процессоров редко бывает хорошей идеей. Используйте 1 CPU для настольных ОС.
  2. Постарайтесь не использовать графические гипервизоры для серверных ОС.
  3. Не выделяйте работающим VM Больше ядер чем есть на Вашем компьютере.

Установка и настройка виртуальной машины VirtualBox

logo_virtualboxЧтобы не подвергать ОС, установленную на компьютере, риску, но иметь возможность исследовать как различное ПО, так и функционал любой другой ОС, на рынке софта существует специальный тип программ для создания виртуальных компьютеров. Такие программы создают виртуальную среду с эмуляцией аппаратного компьютера. И на этот эмулятор можно устанавливать такую же виртуальную ОС. Самой известной такой программой является VirtualBox от американского разработчика Oracle.

 

0. Оглавление

  1. Особенности программы
  2. Минимальные системные требования
  3. Как бесплатно скачать программу
  4. Как установить программу
  5. Создание виртуального компьютера
  6. Установка операционной системы на виртуальный компьютер

1. Особенности программы

Бесплатность, функциональность, кроссплатформенность, русификация, интуитивно-понятный интерфейс, простота и понятность программных процессов и настроек, пошаговый матер создания виртуальных компьютеров – вот главные преимущества VirtualBox, благодаря которым она серьезно обыгрывает своих конкурентов.

Так, один из главных конкурентов — программа VMware Workstation – это платный коммерческий софт. Бесплатно можно использовать только VMware Player – это сильно урезанная по функционалу версия программы Workstation. В то время как VirtualBox бесплатно предоставляет полноценный функционал. Плюс к этому – VirtualBox существует в версиях для установки не только на ОС Windows и Linux, как VMware Workstation, но также первую можно установить и на ОС Mac OS X, и на Solaris.

Да и возможности регулировки видеопамяти, как у VirtualBox, у VMware Workstation нет.

У обеих этих программ также есть общий конкурент от компании Microsoft — Hyper-V, который входит в состав некоторых версий Windows. И, естественно, работать с ним можно только в рамках изучения вездесущей ОС Windows. Ни Linux, ни Mac OS X программа не поддерживает.

У VirtualBox самый богатый выбор систем, которые можно устанавливать в качестве виртуальной ОС – это большинство версий Windows, Linux, Mac OS X и Solaris, включая как 32-битную разрядность, так и 64-битную. Некоторые даже умудряются с помощью VirtualBox создать Андроид-эмулятор.

Как видите, если вы твердо решили стать на путь экспериментов с виртуальной компьютерной средой, VirtualBox идеальный для этого инструмент.

2. Минимальные системные требования

Что касается установки VirtualBox не в режиме активного виртуального компьютера, здесь программа не требовательна к аппаратным ресурсам – для установки программы необходим самый минимум:
— 512 Mб оперативной памяти,
— 200 Mб места на жестком диске для инсталляции,
— процессор с частотой, согласно требованиям самой ОС, например в случае с Windows ХР это Pentium не менее 300 МГц или его аналог от AMD.

Но, повторимся, это системные требования сугубо для установки VirtualBox на физическую (основную) ОС. Для режима активного виртуального компьютера потребуется гораздо больше системных ресурсов, и конкретные требования будут уже определяться той самой виртуальной (гостевой) ОС.

VirtualBox создает виртуальный компьютер на базе аппаратных характеристик физического ПК, часть которых автоматически эмулируется в виртуальный компьютер – например, процессор, видеокарта, CD/DVD-привод, USB-порты. А часть – оперативная память и занимаемое дисковое пространство – эмулируются согласно настройкам, которые вы устанавливаете в процессе создания виртуального компьютера программой. Некоторые аппаратные характеристики виртуального компьютера в дальнейшем можно менять, задавая им меньшие граничные параметры, которые VirtualBox имеет право задействовать. Ведь виртуальный компьютер в работающем состоянии мощь процессора, видеокарты, оперативной памяти будет заимствовать как раз таки у физического ПК.

Какую часть оперативной памяти и дискового пространства можно отдать виртуальному компьютеру при его создании программой VirtualBox?

Виртуальной ОС рекомендуется отдавать не больше половины имеющегося объема оперативной памяти на физическом ПК. Но и для работы виртуальной ОС может потребоваться минимум от 512 Мб до 1 Гб оперативной памяти. Например, для более-менее нормального функционирования виртуальной Windows ХР или Linux потребуется минимум в 512 Мб оперативной памяти.

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-01

А для установки на виртуальный компьютер ОС Windows 7 или 8 (8.1) минимальным показателем оперативной памяти будет 1 Гб.

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-02

Место на жестком диске компьютера виртуальная ОС будет занимать постоянно в виде файла формата программы. И если лишних 4-5 Гб минимума для Windows ХР или Linux без проблем наверняка найдется у многих, то о 20-25 Гб для полноценной работы ОС Windows 7 или 8 (8.1) например, владельцам старых сборок ПК с винчестером на каких-то 160 Гб придется позаботиться заранее, распрощавшись с давно не используемым файловым хламом.

3. Как бесплатно скачать программу

На официальном сайте разработчика инсталлятор программы VirtualBox в актуальной версии 4.3.8 можно скачать абсолютно бесплатно.

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-03

4. Как установить программу

Для установки программы достаточно скачанный инсталлятор запустить из загрузок браузера. VirtualBox инсталлируется стандартно, правда на английском языке. Не стоит переживать, если этот язык вам не знаком: что от вас и потребуется, так это нажать пару раз «Next» — т.е. «Далее».

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-04

Тем более, что все активные компоненты, с которыми устанавливается VirtualBox, будут нужны для полноценной ее работы.

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-05

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-06

Единственное, что в процессе установки программы на пару минут пропадет соединение с локальной сетью. Это требуется для установки сетевых драйверов, чтобы на виртуальном компьютере работал Интернет. Впрочем, VirtualBox об этом выдаст соответствующее уведомление, правда на английском языке.

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-07

Не стоит беспокоиться об этом, можно смело жать команду установки – «Install».

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-08

ОС Windows 7 и 8 (8.1) недоверчивы изначально к стороннему софту, потому постоянно просят то прав администратора, то разрешения доверять какому-то разработчику, то на установку отдельных компонентов дай им разрешение. Потому если при установке дополнительно понадобится подтвердить установку компонентов VirtualBox — USB Support (поддержка USB-портов) или VirtualBox Networking (поддержка сети), такое подтверждение, естественно, необходимо дать.

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-09

После этого программа завершит процесс установки, и если не снять галочку с автоматического запуска, сразу же после нажатия кнопки завершения – «Finish» — VirtualBox предстанет перед вами во всей своей красе, причем уже с русскоязычным интерфейсом.

Все – процесс установки самой программы завершен. Но впереди – создание виртуального компьютера и установка на него выбранной вами виртуальной ОС.

5. Создание виртуального компьютера

При создании виртуального компьютера с помощью VirtualBox нельзя ошибиться: после установки в главном окне программы будет виднеться единственная активная кнопка – «Создать», собственно, куда и нужно нажать. В появившемся окне необходимо виртуальному компьютеру задать название, выбрать ОС и ее конкретную версию.

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-10

Жмите «Next».

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

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-11

Не выходите на красную линию – это будет передачей виртуальному компьютеру половины аппаратных мощностей реального компьютера, и в случаях с маломощными машинами может не хватить производительности на работу основной ОС, не говоря уже о виртуальных средах. Минимальные рекомендации самой же VirtualBox слишком малы для полноценной работы, потому, как упоминалось выше, не стоит выделять для работы менее ресурсоемких ОС меньше 512 Мб, а для более ресурсоемких – меньше 1 Гб оперативной памяти.

Жмите «Next».

«Выберите жесткий диск» — именно это и нужно сделать в следующем окне настройки VirtualBox. И здесь для большинства будет целесообразно оставить пункт по умолчанию – «Создать новый виртуальный жесткий диск».

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-12

Жмите «Создать».

Появится следующее окно с несколькими форматами файлов хранения виртуального жесткого диска, с которыми умеет работать VirtualBox. Необходимо оставить пункт по умолчанию – «VDI».

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-13

Жмите «Next».

С типом виртуального жесткого диска – следующего окна настроек VirtualBox — лучше поступить так же, как и выше – оставить пункт по умолчанию.

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-14

Фиксированный жесткий диск виртуального компьютера будет более расторопным в работе.

Жмите «Next».

В следующем окне VirtualBox предложит задать имя виртуальному жесткому диску. Это не столь важно, потому можно оставить название по умолчанию, взятое с имени самого виртуального компьютера. Куда более важнее назначить папку для хранения файла виртуального жесткого диска и грамотно определить его объем.

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-15

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

По умолчанию папка хранения файла виртуального жесткого диска прописывается на системном диске физического ПК, где у многих может и не быть места для «увесистых» Windows 7 и 8 (8.1). Да и зачем захламлять системный диск? Лучше выбрать место хранения на несистемном диске. Нажмите значок в виде папки и укажите место хранения.

Жмите «Создать».

Подождите, пока VirtualBox создаст виртуальный компьютер. После этого в левой части главного окна программы появится его название с пометкой «Выключен», а в правой части окна можно увидеть основные аппаратные параметры.

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-16

6. Установка операционной системы на виртуальный компьютер

Необходимо заранее подготовить образ установочного диска с выбранной операционной системой или вставить загрузочный диск в CD/DVD-привод физического ПК.

В главном окне VirtualBox запустите созданный виртуальный компьютер с помощью кнопки «Запустить». Затем в автоматически появившемся окне выбора съемного носителя для загрузки выберите либо образ установочного диска с ОС, либо назначьте загрузочный диск, находящийся в CD/DVD приводе. Для этого нажмите значок обзора в виде папки.

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-17

Жмите «Продолжить».

Далее на виртуальном компьютере запустится процесс установки ОС, и все дальнейшие действия будут проходить точно так же, как и при установке системы на обычном физическом ПК.

ustanovka-i-nastrojka-virtualnoj-mashiny-virtualbox-18

Устанавливая впервые доселе незнакомую ОС, просто следуйте инструкциям установщика.

Смотрите также:

  • Импорт и Экспорт виртуальной машины в VirtualBox

    Переустановка операционной системы или смена компьютерного устройства не означает конец работы с установленными гостевыми ОС в программе VirtualBox. Правда, исключением может быть случай, когда файлы жёстких дисков виртуальных машин находятся на…

Создать виртуальную машину из публичного образа Windows | Яндекс.Облако

В этом разделе приведена инструкция для создания виртуальной машины с операционной системой Windows. Для создания виртуальной машины на базе Linux воспользуйтесь инструкцией Создать виртуальную машину из публичного образа Linux.

Чтобы создать виртуальную машину:

Консоль управления

CLI

API

Чтобы создать виртуальную машину:

  1. В консоли управления выберите каталог, в котором будет создана виртуальная машина.

  2. В списке сервисов выберите Compute Cloud.

  3. Нажмите кнопку Создать ВМ.

  4. В блоке Базовые параметры:

    • Введите имя и описание ВМ. Требования к имени:

      • Длина — от 3 до 63 символов.
      • Может содержать строчные буквы латинского алфавита, цифры и дефисы.
      • Первый символ — буква. Последний символ — не дефис.

      Примечание

      Имя виртуальной машины используется для генерации имени FQDN единожды — при создании ВМ. Если для вас важно имя FQDN, учитывайте это и задавайте нужное имя виртуальной машины при создании. Подробнее про генерацию имени FQDN читайте в разделе Имя хоста и FQDN.

    • Выберите зону доступности, в которой будет находиться виртуальная машина.

    • (опционально) Выберите или создайте сервисный аккаунт. Использование сервисного аккаунта позволяет гибко настраивать права доступа к ресурсам.

  5. В блоке Публичные образы:

    • Выберите Windows.
    • Выберите версию и редакцию операционной системы.
  6. (опционально) В блоке Диски настройте загрузочный диск:

    • Укажите нужный размер диска.
    • Выберите тип диска.
  7. (опционально) Если вы хотите создать виртуальную машину из существующего диска, в блоке Диски добавьте диск.

  8. В блоке Вычислительные ресурсы:

  9. В блоке Сетевые настройки:

    • Укажите идентификатор подсети или выберите облачную сеть из списка. Если сети нет, нажмите кнопку Создать новую сеть и создайте ее:
      • В открывшемся окне укажите имя новой сети и выберите, к какой подсети необходимо подключить виртуальную машину. У каждой сети должна быть как минимум одна подсеть (если подсети нет, создайте ее). Затем нажмите кнопку Создать.
    • В поле Публичный адрес выберите способ назначения адреса:
      • Автоматически — чтобы назначить случайный IP-адрес из пула адресов Яндекс.Облака.
      • Список — чтобы выбрать публичный IP-адрес из списка зарезервированных заранее статических адресов. Подробнее читайте в разделе Сделать динамический публичный IP-адрес статическим.
      • Без адреса — чтобы не назначать публичный IP-адрес.
    • (опционально) Выберите опцию защиты от DDoS-атак.
  10. При создании виртуальной машины в операционной системе будет автоматически создан пользователь Administrator. В поле Пароль задайте пароль для этого пользователя, с которым можно будет войти на виртуальную машину по RDP.

    Не используйте легко подбираемые пароли. Пароли должны соответствовать требованиям сложности политики безопасности Windows.

    В образах Windows Server от Яндекс.Облака у пароля пользователя Administrator по умолчанию не истекает срок действия.

  11. Нажмите кнопку Создать ВМ.

Виртуальная машина появится в списке. При создании виртуальной машине назначаются IP-адрес и имя хоста (FQDN).

Если у вас еще нет интерфейса командной строки Яндекс.Облака, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

  1. Посмотрите описание команды CLI для создания виртуальной машины:

    $ yc compute instance create --help
    
  2. Выберите один из публичных образов на базе операционной системы Windows.

    Чтобы получить список доступных образов, выполните следующую команду:

    $ yc compute image list --folder-id standard-images
    +----------------------+-------------------------------------+--------------------------+----------------------+--------+
    |          ID          |                NAME                 |          FAMILY          |     PRODUCT IDS      | STATUS |
    +----------------------+-------------------------------------+--------------------------+----------------------+--------+
    ...
    | fdvk34al8k5nltb58shr | centos-7-1549279494                 | centos-7                 | dqni65lfhvv2den5gtv9 | READY  |
    | fdv7ooobjfl3ts9gqp0q | windows-2016-gvlk-1548913814        | windows-2016-gvlk        | dqnnc72gj2ist3ktjj1p | READY  |
    | fdv4f5kv5cvf3ohu4flt | ubuntu-1604-lts-1549457823          | ubuntu-1604-lts          | dqnnb6dc7640c5i968ro | READY  |
    ...
    +----------------------+-------------------------------------+--------------------------+----------------------+--------+
    
  3. Создайте YAML-файл (например, metadata.yaml) и укажите следующие данные:

    
    net user administrator "<пароль>"
    
  4. Создайте виртуальную машину в каталоге по умолчанию:

    $ yc compute instance create \
        --name second-instance \
        --metadata-from-file user-data=metadata.yaml \
        --zone ru-central1-a \
        --public-ip \
        --create-boot-disk image-folder-id=standard-images,image-family=windows-2016-gvlk
    

    Данная команда создаст виртуальную машину со следующими характеристиками:

    • С именем second-instance.
    • С OC Windows Server 2016.
    • В зоне доступности ru-central1-a.
    • С пользователем Administrator.
    • С публичным IP.

    Чтобы создать виртуальную машину без публичного IP, исключите флаг --public-ip.

    Задайте:

    • Имя виртуальной машины в флаге --name.

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

      Примечание

      Имя виртуальной машины используется для генерации имени FQDN единожды — при создании ВМ. Если для вас важно имя FQDN, учитывайте это и задавайте нужное имя виртуальной машины при создании. Подробнее про генерацию имени FQDN читайте в разделе Имя хоста и FQDN.

    • Пароль администратора в файле metadata.yaml. Пароль необходим для доступа на виртуальную машину по RDP.

      Не используйте легко подбираемые пароли. Пароли должны соответствовать требованиям сложности политики безопасности Windows.

      В образах Windows Server от Яндекс.Облака у пароля пользователя Administrator по умолчанию не истекает срок действия.

Создайте виртуальную машину с помощью метода Create для ресурса Instance:

  1. Получите IAM-токен, используемый для аутентификации в примерах:

  2. Получите идентификатор каталога.

  3. Получите информацию об образе, из которого надо создать виртуальную машину (идентификатор образа и минимальный размер диска):

    • Если вы знаете семейство образа, получите информации о последнем образе в этом семействе:
      $ export IAM_TOKEN=CggaATEVAgA...
      $ export FAMILY=windows-2016-gvlk
      $ curl -H "Authorization: Bearer ${IAM_TOKEN}" \
        "https://compute.api.cloud.yandex.net/compute/v1/images:latestByFamily?folderId=standard-images&family=${FAMILY}"
      
      {
       "productIds": [
        "f2eu62v659or2tqv28l0"
       ],
       "os": {
        "type": "WINDOWS"
       },
       "id": "fd85s1nlcavgdpc16hj3",
       "folderId": "standard-images",
       "createdAt": "2019-04-30T10:53:56Z",
       "name": "windows-2016-gvlk-1556619485",
       "description": "Windows Server 2016 Datacenter is a operating system for virtualized private cloud environments. This version is activated with GVLK. Website and documentation: https://www.microsoft.com/en-us/cloud-platform/windows-server",
       "family": "windows-2016-gvlk",
       "storageSize": "26344423424",
       "minDiskSize": "26843545600",
       "status": "READY"
      }
      
    • Вы можете получить информацию об образе из списка публичных образов.
  4. Получите идентификатор подсети и идентификатор зоны доступности. В запросе укажите идентификатор каталога, в котором создана подсеть:

    $ export IAM_TOKEN=CggaATEVAgA...
    $ export FOLDER_ID=b1gvmob95yysaplct532
    $ curl -H "Authorization: Bearer ${IAM_TOKEN}" \
      "https://vpc.api.cloud.yandex.net/vpc/v1/subnets?folderId=${FOLDER_ID}"
    {
     "subnets": [
      {
       "v4CidrBlocks": [
        "10.130.0.0/24"
       ],
       "id": "b0c6n43ftldh40l0vfg2",
       "folderId": "b1gvmob95yysaplct532",
       "createdAt": "2018-09-23T12:15:00Z",
       "name": "default-ru-central1-c",
       "description": "Auto-created default subnet for zone ru-central1-c",
       "networkId": "enpe3m3fagludao8aslg",
       "zoneId": "ru-central1-c"
      },
      ...
     ]
    }
    
  5. Создайте файл с телом запроса на создание виртуальной машины, например body.json. Укажите следующие параметры:

    • folderId — идентификатор каталога.

    • name — имя, которое будет присвоено виртуальной машине при создании.

    • zoneId — зона доступности, которая соответствует выбранной подсети.

    • platformId — платформа.

    • resourceSpec — ресурсы, доступные виртуальной машине. Значения должны соответствовать выбранной платформе.

    • metadata — в метаданных в свойстве user-data необходимо передать скрипт с паролем администратора, например:

      "metadata": {
        "user-data": "#ps1\nnet user Administrator Passw0rd"
      },
      

      Не используйте легко подбираемые пароли. Пароли должны соответствовать требованиям сложности политики безопасности Windows.

      В образах Windows Server от Яндекс.Облака у пароля пользователя Administrator по умолчанию не истекает срок действия.

    • bootDiskSpec — настройки загрузочного диска. Укажите идентификатор выбранного образа и размер диска. Размер диска должен быть не меньше минимального размера диска, указанного в информации об образе.

    • networkInterfaceSpecs — настройки сети.

      • subnetId — идентификатор выбранной подсети.
      • primaryV4AddressSpec — IP-адрес, который будет присвоен виртуальной машине. Чтобы добавить публичный IP-адрес виртуальной машине, укажите:
        "primaryV4AddressSpec": {
            "oneToOneNatSpec": {
              "ipVersion": "IPV4"
            }
          }
        

    Подробнее про формат тела запроса в справочнике API.

    Пример файла body.json:

    {
      "folderId": "b1gvmob95yysaplct532",
      "name": "instance-demo-no-pwauth",
      "zoneId": "ru-central1-c",
      "platformId": "standard-v1",
      "resourcesSpec": {
        "memory": "4294967296",
        "cores": "2",
      },
      "metadata": {
        "user-data": "#ps1\nnet user Administrator Passw0rd"
      },
      "bootDiskSpec": {
        "diskSpec": {
          "size": "26843545600",
          "imageId": "fd85s1nlcavgdpc16hj3"
        }
      },
      "networkInterfaceSpecs": [
        {
          "subnetId": "b0c6n43ftldh40l0vfg2",
          "primaryV4AddressSpec": {
            "oneToOneNatSpec": {
              "ipVersion": "IPV4"
            }
          }
        }
      ]
    }
    
  6. Создайте виртуальную машину:

    $ export IAM_TOKEN=CggaATEVAgA...
    $ curl -X POST \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer ${IAM_TOKEN}" \
      -d '@body.json' \
      https://compute.api.cloud.yandex.net/compute/v1/instances
    

Создание виртуальной машины и инициализация операционной системы Windows занимают до 5 минут. Когда машина создана и готова к работе, она получает статус RUNNING. Вы можете следить за статусами машин в списке виртуальных машин вашего каталога.

При создании виртуальной машине назначаются IP-адрес и FQDN. Эти данные можно использовать для доступа к виртуальной машине по RDP.

Публичный IP-адрес можно сделать статическим. Подробнее читайте в разделе Сделать публичный IP-адрес виртуальной машины статическим.

См. также

Обходим детектирование виртуальной машины программами в VMWare / Habr

Разработчики вирусного ПО и просто разработчики, не желающие, чтобы их программу пытались реверсить, на этапе запуска или установки проводят проверки на виртуальную машину, и в случае её обнаружения отказываются работать, а то и вовсе самоликвидируются. Под катом описан способ, как можно попробовать решить эту проблему.

Я использовал VMWare Fusion для Mac, однако с тем же успехом способ работает и в Workstation для Win.

1) Для работы необходима заново установленная система, как внести изменения в уже существующую — не нашёл.

Готовите виртуальный диск, указываете систему, как это обычно делаете, и в настройках к устанавливаемой машине, у меня этот пункт назван Isolation, выключаете любой обмен данными с хостовой ОС.

2) Далее надо найти конфигурационный VMX файл, создаваемый на этапе создания машины в VMWare, и в конец добавить строки:

isolation.tools.getPtrLocation.disable = «TRUE»
isolation.tools.setPtrLocation.disable = «TRUE»
isolation.tools.setVersion.disable = «TRUE»
isolation.tools.getVersion.disable = «TRUE»
monitor_control.disable_directexec = «TRUE»
monitor_control.disable_chksimd = «TRUE»
monitor_control.disable_ntreloc = «TRUE»
monitor_control.disable_selfmod = «TRUE»
monitor_control.disable_reloc = «TRUE»
monitor_control.disable_btinout = «TRUE»
monitor_control.disable_btmemspace = «TRUE»
monitor_control.disable_btpriv = «TRUE»
monitor_control.disable_btseg = «TRUE»

Эти опции предотвращают детектирование программами виртуального окружения через такие сложные проверки, как отслеживание адресного пространства памяти, счётчиков.

Важно! Если на этапе настройки установки будет опция вроде «Express install», «Быстрая установка» — выключайте их. Также не стоит устанавливать VMWare Tools в установленную систему, т.к. некоторое ПО в проверку включает и наличие этого пакета.

3) Сохраняем файл, указываем для загрузки ISO с установщиком системы, устанавливаем ОС как обычно.

4) Несмотря на то, что подавляющее большинство программ, не любящих виртуальной среды, не заходят дальше проверок, которые мы отсекли на 2 шаге, некоторые особо упорные всё же идут дальше и пытаются искать, к примеру, всё, что похоже на название контроллеров виртуальных дисков.

Чтобы победить и их в Windows, идём в редактор реестра в ветку HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum. Как видите, там есть вполне явная отсылка к тому, что диск — виртуальный.


Нам нужно изменить его, убрав из параметра VMware, Virtual, Ven, итп, и сохранить её так.

Также имеет смысл заменить в реестре поиском по VMware/Virtual на какой-нибудь Intel или IBM всё, что меняется, а не только дисковые переменные.

После пробуйте запускать ваш упрямый объект экспериментов — в процентах 70 случаев описанные шаги помогут пройти проверки на виртуальное окружение.

Важно! Значение в HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum перезаписывается после каждой перезагрузки, так что его нужно менять после каждого нового запуска системы.

UPD от @Denisoid:

Естественно, это не исчерпывающее руководство, некоторое ПО также может пытаться определять виртуальную систему следующими методами:

1) Проверками диапазона MAC адресов (просто подменяется в настройках виртуального сетевого адаптера до запускa виртуальной машины)
2) Через WinAPI опросом конфигурации ОС и прочей системной информации (FirmwareTable)
3) Низкоуровневыми трюками.


Проверить, насколько вы обезопасили себя от обнаружения, а также ознакомиться с другими популярными у разработчиков средствами обнаружения песочниц и виртуалок можно средством Pafish.

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

Как видно, улучшить скрытность можно также выделив виртульной машине больше системных ресурсов. Что касается памяти, выбирать стоит значения, кратные 1024.

Спасибо всем, кто осилил статью и помог в дополнении её толковыми комментариями!

Популярные программы для создания виртуальных машин

Всем привет, с Вами автор блога matrixblog.ru. В сегодняшней статье мы познакомимся с таким понятием, как виртуальные машины.

Процесс виртуализации машин состоит в создании автономной виртуальной машины внутри нашего компьютера, который может рассматриваться, как наш второй компьютер. На такой машинке можно установить ОС, что позволяет запустить «систему в системе». Более того, эти системы выполняются одновременно. Примером может быть Windows 7, установленная на диск, который содержит установленную Windows XP или выбранный дистрибутив Linux. В результате, у нас запущены две системы одновременно — одна физическая, другая виртуальная. Машина физическая, на которой мы работаем — это «Host» (хозяин), а виртуальные системы — это системы «Guest» (гости). Виртуальные системы запускаются в изолированной среде и позволяют производить безопасное тестирование различного программного обеспечения, как и самих систем без ущерба для машины «матери». Это также позволяет запустить виртуальную копию старого компьютера.

Виртуальная машина использует процессор и выделенную оперативную память физического компьютера. Учитывая то, что виртуальная система (ОС) использует определенное количество оперативной памяти компьютера, он должен быть оснащен достаточными аппаратными ресурсами. Сказанное относится и к жесткому диску, на котором будут храниться файлы виртуальной машины. Эти файлы являются портативными, их можно переместить на другой компьютер и построить новую виртуальную машину на их основе. Это исключает необходимость каждый раз устанавливать виртуальную систему, потому что она уже установлена и настроена.

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

 

Что нужно знать про виртуальные машины

Начну с лирики. То, что есть такое понятие как виртуальные машины, я знал довольно давно, но никак не решался узнать поближе этот загадочный термин по ряду причин:

Отсутствие желания. Я из тех пользователей, которые используют Windows XP, да, 7 я тоже пробовал, да и 10 мне нравится, но, я люблю старые традиции. Я пробовал устанавливать несколько ОС на компьютере, тестировал их, но, как-то не сложилось, и я остался при XP. Хотя я слышал про возможность установки виртуальной ОС, но меня отпугивал тот факт, что нужно делиться ресурсами компьютера, да и надобности в одновременной работе с разными ОС не было.

Потребление ресурсов. Мне всегда в глаза лез тот факт, что для установки виртуальной машины нужен компьютер с большим числом оперативной памяти, звериным процессором и видеокартой. На самом деле, любая из перечисленных ниже программ позволяет указать нужные ресурсы, выделяемые для виртуальной ОС – размер оперативной памяти, объем видеокарты, распределение ресурсов процессора. Для примера, у меня 2 ГБ ОЗУ, процессор в 2ГЦ с двумя ядрами, я спокойно могу запускать параллельно ОС Windows 7 или Linux.

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

Вся суть в двух словах

Если говорить кратко и понятно, то виртуальные машины, а по сути, программы, которые их создают, не особо отличаются по своим возможностям:

Виртуальные жесткие диски. В зависимости от выбора программы, на компьютере будет создан один виртуальный жесткий диск (просто файл заданного размера) и, возможно, несколько файлов конфигурации. VirtualBox в этом плане наиболее лояльная, поскольку создает лишь один файл (при стандартной работе), Virtual PC 2007 – два (виртуальный и файл конфигурации), а VMware Player – все четыре.

Типы виртуальных дисков. Каждая программа работает с собственным типом виртуальных носителей, а для преобразования одного типа в другой приходится использовать специальные конвертеры. VirtualBox поддерживает не только свои виртуальные жесткие диски, но и файлы от Virtual PC или VMware Player.

Динамические и фиксированные виртуальные жесткие диски. Изначально, Virtual PC 2007 и VMware Player создают динамические виртуальные жесткие диски, на которые будет устанавливаться ОС. По сути, с ростом файлов на виртуальной машине, будет увеличиваться и размер виртуального жесткого диска до заданного предела, Для примера, мы создали новую виртуальную машину, выделили под неё 20 ГБ дискового пространства, на компьютере появится новый файл виртуальной машины, пока ничего не установлено, его размер будет несколько десятков, может сотен мегабайт. Мы установили на виртуальный носитель ОС, которая занимает 2 ГБ, размер файла вырастет на 2 ГБ, установили дополнительное ПО, размер файла снова вырос, и так далее. С одной стороны, это удобно, поскольку мы сразу не занимаем 20 ГБ, с другой стороны – это приводит к дополнительной фрагментации физического накопителя, что немного замедляет работу виртуальной ОС.

Если создавать виртуальный жесткий диск фиксированного размера, например, 20 ГБ, то на ПК сразу появится файл заданного размера, и его размеры не будут изменяться. Конечно, это сразу вырвет значительный кусок дискового пространства физического накопителя, но не будет происходить лишняя запись в сектора.

Проблема перехвата. При первом знакомстве с виртуальными машинами, новички могут столкнуться с тем, что курсор мыши «застрял» в окне виртуальной машины. Как вариант, можно использовать комбинацию Ctrl + Alt + Del для возврата в физическую среду, но лучше использовать клавиши и их комбинации: Правый Alt для Virtual PC, Ctrl +Alt для VMware Player, VirtualBox интуитивно передает управление курсором. Данный момент я немного затронул в статье Как легко установить Андроид на компьютер.

 

Популярные виртуальные машины

VirtualBox

Детальный обзор VirtualBox

Последнюю версию можно скачать по ссылке www.virtualbox.org/wiki/Downloads. Имеется поддержка русского интерфейса.

VirtualBox — это один из самых популярных виртуализаторов, предназначен для установки на 32 — и 64-битных платформах x86, поддержка расширений Intel VT-x и AMD-V. Системой хоста в его случае может быть Windows, Linux, Mac OS X, Solaris и BSD, кроме них, можно установить Dos или OS/2. Поддерживает операционные системы многопроцессорного типа, позволяет использовать USB и виртуальные драйвера. Поддержка 3D включает в себя DirectX и частично OpenGL. Одной виртуальной машине может предоставить до 32 виртуальных процессоров и 1,5 ГБ оперативной памяти (для 32-разрядных систем). Одновременно это дает возможность ограничить ресурсы, используемые отдельными гостевыми системами. Поддерживает Windows Aero. Последняя версия умеет клонировать работающие виртуальные машины. Работу упрощает возможность использования USB или общего буфера обмена, имеется поддержка ACPI.

Способность распознавания формата VMDK, позволяет подключить машины, созданные в VMware, работает с форматом VHD от Virtual PC. VirtualBox справляется и с форматом OVF. Динамически выделенное пространство виртуальных дисков экономит пространство, необходимое для работы установленных систем. Доступна также функция сохранения снимков виртуальных машин.

 

VMware Player

Детальный обзор VMware Player — появится позже

Последние версии программы находятся на официальном сайте по ссылке www.vmware.com/products/player/playerpro-evaluation.html. Более старые версии для 32-разрядных систем нужно искать на сторонних ресурсах, например, VMware Player 6 (имеется русификация).

VMware Player является бесплатным продуктом для домашнего использования, предназначенным для виртуализации 1-2 операционных систем. Устанавливается в Windows или Linux на платформе x86. Работает с 32-разрядными и 64-разрядными процессорами. Список гостевых систем длинный и включает в себя, кроме основных, ещё Solaris, Netware или QNXa. Player использует преимущества многопроцессорных систем, предоставляет доступ к виртуальным машинам через интерфейс USB. Первые версии VMware Player не позволяли создавать собственные машины и сводились только для эксплуатации в средах, созданных в других приложениях. В настоящее время, программа уже не имеет этого ограничения.

Для каждой машины может быть эмулировано до 8 процессоров. В зависимости от платформы, лимит оперативной памяти для систем составляет 8 ГБ для 32 бит и 64 в случае 64 бит.

 

Windows Virtual PC и Virtual PC 2007

Детальный обзор Virtual PC — появится позже

Версию Virtual PC 2007 нужно искать на сторонних ресурсах, последняя версия Windows Virtual PC имеется по ссылке www.microsoft.com/ru-ru/download/details.aspx?id=3702.

Windows Virtual PC — это новая версия Virtual PC 2007. По сравнению с предшественником программа предлагает новые функции, но лишена также несколько других важных элементов. Ввели, например, частичную поддержку USB, Windows Virtual PC также может использовать частично преимущества аппаратного ускорения 3D. Из-за этого уменьшилась гибкость среды. Официально, программу можно запускать только на Windows 7. Старые системы не поддерживаются, нужно использовать Virtual PC 2007. Системой организатором должна быть, по крайней мере, Windows XP с пакетом обновления 3. Не удается запустить Dos. Также не хватает драйверов и поддержки для систем Linux или OS/2. Была удалена возможность прямого обмена каталогами. Ограничений не было в Virtual PC 2007. Ни младший, ни старший вариант программы не позволяет сохранять снимки системы.

Windows Virtual PC поддерживает многопоточное функционирование виртуальных машин. Это означает, что работающие одновременно гостевые системы могут использовать отдельные потоки процессора. Это улучшает производительность.

На базе Virtual PC работает Windows XP Mode, доступный в Windows 7. Благодаря ему после загрузки соответствующего образа, пользователь может запустить на последней версии ос Microsoft виртуальную машину с полноценным XP и установить на нее программное обеспечение, специально предназначенное для этой системы. Поддержка этого механизма была упрощена до такой степени, что пользователь может запускать приложения XP прямо из семерки, даже не замечая, что они работают в виртуальной машине.

 

Заключение

В идеальных условиях, после установки одной из перечисленных выше программ, нужно выбрать из списка подходящую ОС, создать для неё виртуальную машину, и произвести установку системы. К сожалению, идеальных условий не бывает. Да и подобные программы созданы не для простого «знакомства» с новой версией ОС, а для создания полноценных связанных систем, с работающими программами и множеством программных и сетевых связей.

Кроме всего прочего, программа может вести себя по-разному на той или иной ОС или её версии. В одном случае, могут возникнуть трудности с видимостью внешних устройств, в другом – аппаратные средства компьютера не смогут удовлетворить потребности заданной оси. Всё зависит от конкретной ситуации и поставленной задачи.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *