Типы гипервизоров
Существующие типы организации систем виртуальных машин

В предыдущей статье было обосновано, что LAMPу лучше всего ставить на виртуальную машину. А для этого нужно сначала установить на ваше оборудование один из вариантов гипервизора или, что то же, монитора виртуальных машин VMM (Virtual Machine Monitor).

Для тех, кто не знаком с соответствующей теорией, мы рекомендуем почитать главу 7 книги-учебника Таненбаума и Боса “Современные операционные системы”.

Нам здесь достаточно будет привести несколько определений.

Основной или базовой (Host OS) операционной системой называется операционная система, общающаяся непосредственно с аппаратурой компьютера.

Гостевой (Guest OS) называется операционная система, установленная на виртуальной машине.

Как видно из приведённой выше схемы, существует три типа виртуализации:

  1. Случай, когда гипервизор работает непосредственно на аппаратуре, фактически выполняя ряд функций обычной операционной системы.
  2. Случай, когда гипервизор работает как приложение в основной операционной системе и не является её частью
  3. Гибридный вариант, когда гипервизор работает как отдельный сервис в рамках основной операционной системы и является её частью.

Поскольку мы действуем в предположении, что и рабочая станция и сервер у нас должны располагаться на одном и том же компьютере, то гипервизор  первого типа для нас не подходит. Отметим только, что если всё же вы готовы выделить отдельный компьютер под сервер, то непременно ставьте VMM первого типа, так как он зарекомендовал себя как очень надёжный и быстрый механизм поддержки работы виртуальных машин. Особо выделим, что даже у коммерческих продуктов типа Windows, гипервизор первого типа Hyper-V Server 2019, который, в частности, используем и мы в своей работе, является бесплатным свободно распространяемым продуктом высокого класса для серьёзных предприятий, при применении которого лицензионные требования возникают только по отношению к гостевым операционным системам.

Так уж исторически произошло, что большинство персональных компьютеров в России (да и в мире вообще) работает на одной из версий ОС Windows. Причин тому можно назвать много. Приведём лишь три из них. Первая и самая главная, это гениальный коммерческий талант Билла Гейтса, основателя компании Микрософт. Вы только почитайте вот эту статью, где очень хорошо описан этот момент. Вторая, не менее важная, очень высокое качество набора инструментов Microsoft Office. Именно благодаря второму моменту более безопасное и мощное семейство ОС Linux никак не может похвастаться таким количеством клиентов.  Ну и третий момент – это количество и разнообразие разработанного программного обеспечения для ПК с архитектурой Intel x86 (IA-32) или AMD64 и OC Windows намного больше, чем для других архитектур и операционных систем. В частности, если драйвер рассматривать тоже как программное обеспечение, то вероятность того, что ваша видеокарта, любая другая плата расширения или периферийное оборудование, будут иметь адекватно работающий драйвер под Windows намного выше, чем вероятность наличия такового под другую ОС.

Исходя из этого, мы сейчас научимся ставить гипервизор третьего типа на ПК с OC Windows версии 8.0 или старше. Но это не значит, что вы тоже обязательно должны ставить именно Windows Hyper-V VMM. Если у вас установлен Linux, то мы можем посоветовать очень хорошо себя зарекомендовавшую систему виртуализации Proxmox Virtual Environment. В общем-то, можете использовать любой гипервизор, к которому лежит у вас душа и который работает на вашей ОС, как основной (Host OS).

Итак, мы действуем в предположении, что у вас на компьютере есть установленная версия Windows не младше Windows 8 Professional (Windows Server 2008 для серверной линейки), процессор имеет хотя бы 2 ядра и поддерживает виртуализацию,  а оперативной памяти достаточно, чтобы можно было что-то выделить под гостевую операционную систему (по хорошему, ПК должен иметь не менее 8 Gbyte RAM для этого). Кроме этого, понятное дело, нужно чтобы на винчестере было достаточно места для установки гостевой операционной системы и самого гипервизора, так что нам будет нужен ПК с объёмом винчестера минимум 512 GB. Все эти требования с лихвой удовлетворяются средним современным ПК, так что фактически всё это не является проблемой.

Порядок действий таков:

  • нажимаем комбинацию клавиш: {Windows, R}, набираем appwiz.cpl, жмём “ОК”;
  • в появившемся окне:

    Включение или отключение компонентов Windows

    выбираем “Включение или отключение компонентов Windows” из меню слева;

  • в появившемся новом небольшом окне ставим птичку в квадрате (checkbox) напротив Hyper-V и нажимаем “ОК”;

    Флаг добавления роли Hyper-V

  • дожидаемся установки компоненты и при появлении нижеследующего окна жмём на кнопку “Перезагрузить сейчас”:

    Hyper V Setup Reboot

  • после того, как система полностью перезагрузится, в меню средств администрирования системы появятся два новых пункта “Диспетчер Hyper-V” и “Быстрое создание Hyper-V”, и вы можете ими воспользоваться, однако поскольку в разных версиях Windows меню выглядят по-разному, то я предпочитаю, и вам советую всегда пользоваться комбинацией клавиш: {Windows, R}, после чего набирать virtmgmt.msc и жать на “ОК”, ибо это всегда работает во всех версиях одинаково и, самое главное, вам не придётся терять время на поиски нужных пунктов меню;
  • в появившемся окне Диспетчер Hyper-V (Hyper-V Manager в английском варианте):

    Диспечер Nyper-V

    • вы уже можете увидеть возможность создать виртуальную машину, однако перед тем, как её реализовать, важно проделать подготовительную работу, а именно: создать виртуальный коммутатор, для чего нажимаем на кнопку “Диспетчер виртуальных коммутаторов” в секции или меню “Действия”:

      Меню выбора типа виртуального коммутатора

    • выбираем тип из появившегося меню, для чего крайне важно понимать различие типов виртуальных коммутаторов:
      • первый вариант, внешняя сеть, говорит о том, что виртуальные машины будут в той же сети, что и физическая машина с основной ОС, то есть фактически мы будем иметь как бы ещё один или несколько ip-адресов (по количеству создаваемых виртуальных машин), привязанных к тому же физическому адаптеру, что и хост-машина – наиболее часто используемый вариант и он подходит для наших целей;
      • второй вариант, внутренняя сеть, подразумевает создание некоей сети, которая предназначена только для взаимодействия виртуальных машин друг с другом, а также с хост-машиной, но другие компьютеры в физической сети не будут иметь к ней доступа – не так часто используемый вариант, подходит для нас только в том варианте, когда сайт с WordPress установлен на  физической машине с основной ОС (Host OS), а база данных на виртуальной машине с гостевой ОС;
      • ну и третий, самый редкий вариант, когда сеть организуется только между виртуальными машинами, а доступа даже к хосту основной ОС нет – используется в основном для целей тестирования и отладки тех или иных сервисов, которые в случае использования в коммутаторах первых двух типов могут навредить вовлечённым в повседневную работу процессам, доступ к виртуальной машине в такой сети возможен только средствами Диспетчера Hyper-V, так что этот вариант сети напоминает VPN
    • итак, мы выбираем первый вариант и нажимаем на кнопку “Создать виртуальный коммутатор”, что приводит к появлению следующего окна:

      Cоздание виртуального коммутатора Hyper-V

    • здесь мы введём имя нашего виртуального коммутатора (например “Hyper-V Virtual Switch #1”), напишем примечание (например, “Виртуальный коммутатор для доступа к виртуальной машине WordPress”) и нажмём на клавишу “ОК” (если для ваших целей нужно определить номер VLAN, то это можно сделать с помощью соответствующего флажка, но мы не будем это делать, так как это выходит за рамки излагаемого материала и только отметим, что данная возможность, позволяет изолировать создаваемую виртуальную локальную сеть от остальных сетей, предоставив ей отдельный номер, причём так, что все сетевые устройства и, в частности, виртуальные машины с одним номером VLAN, будут работать в некой единой воображаемой виртуальной локальной сети, независимо от того, где они находятся)
    • в результате появится следующее промежуточное предупреждающее окно:

      окончание процесса создания виртуального коммутатора

    • здесь очень важно, чтобы вы знали текущую конфигурацию вашей сети, для чего как обычно запустите соответствующую оснастку (snap-in) Windows комбинацией клавиш {Windows, R} и вводом ncpa.cpl, после чего просмотрите конфигурацию (особенно DNS) и запомните на случай, если её нужно будет восстанавливать;
    • если вы готовы, то нажмите на кнопку “Да” и у вас через секунд 5-10, появится ещё одно сетевое устройство vEthernet (Hyper-V Virtual Switch #1) в выводе результата работы оснастки “ncpa.cpl”, которое перенесёт на себя ip-настройки вашего физического сетевого адаптера:

      окончательный вариант сетевых подключений

    • если не учесть этого момента, то легко можно запутаться – ещё раз, теперь ваш физический сетевой адаптер, к которому вы привязывали виртуальный коммутатор, будет использовать только компоненту связи с расширяемым управляемым виртуальным коммутатором 2-ого уровня Hyper-V и драйвер протокола LLDP, а все его бывшие сетевые настройки автоматически перекочуют на новое виртуальное сетевое подключение, имеющее указанное вами при создании виртуального сетевого коммутатора имя (на практике статические настройки dns не переносятся и их приходится вносить вручную, ибо без правильной настройки dns, как вы понимаете, у вас мало что будет работать):

      физический сетевой адаптер

    • помимо этого, как вы можете видеть на приведённом чуть выше снимке с экрана, если у вас Windows 10 или старше, в списке сетевых устройств сразу после установки компоненты (роли) Hyper-V, появился ещё и новый виртуальный сетевой адаптер vEthernet (Default Switch), который не имеет прямого отношения к обсуждаемой нами теме создания внешнего виртуального коммутатора, а используется по умолчанию для внутренних виртуальных коммутаторов и обеспечивает функционирование механизма NAT, позволяющего даже в этом случае организовать функционирование интернет на гостевой операционной системе.
  • всё, теперь мы будучи готовы к установке виртуальной машины, возвращаемся к окну Диспетчера Hyper-V (Hyper-V Manager) и выбираем из меню (или секции) “Действия” (Actions) подменю “Создать-Виртуальная машина” (New-Virtual Machine):

    Создать виртуальную машину

  • в очередном окне читаем информацию, ставим птичку в квадратике (checkbox),

    Информацию по созданию виртуальной машины Hyper-V чтобы в следующий раз она не выдавалась и жмём на клавишу “Далее” (Next), а не “Готово” (Finish) – привыкните не искать быстрых и лёгких путей там, где это не стоит делать, чтобы потом долго не разгребать то, что сделает система автоматом по умолчанию;

  • в следующем окне нужно будет ввести имя вашей виртуальной машины (у нас WordPress-01)

    Задаём имя виртуальной машины Hyper-V

  • а также определить место в файловой системе основной операционной системы (Host OS), где будут размещаться виртуальные машины – можно оставить путь по умолчанию (как на снимке с экрана), а можно ввести свой путь, например D:\Hyper-V или вообще выделить отдельный логический диск под виртуальные машины, критически важным здесь является скорость и надёжность соответствующего раздела файловой системы основной операционной системы;
  • после нажатия на кнопку “Далее” (Next) система предложит нам  выбрать поколение создаваемой виртуальной машины – выбирайте поколение 2 для современных операционных систем (мы будем ставить в качестве гостевой ОС Debian Linux 11, bullseye, и Hyper-V поддерживает виртуальные машины 2-ого поколения для этой ОС (смотрите эту статью);
  • следующее окно процесса установки предложит вам определить количество оперативной памяти (RAM), которое вы готовы выделить для запуска виртуальной машины (естественно, что отобрав её у хост-машины) – для наших целей желательно 4096, а лучше, выделите 8192, если вам позволяет конфигурация хоста, и оставьте включённым флаг “Использовать для этой виртуальной машины динамическую память”;

    Выделение оперативной памяти для запуска виртуальной машины Hyper-V

  • после нажатия на кнопку “Далее” (Next) следующее, что нам нужно будет сделать, так это выбрать сетевой адаптер, через который будет работать новая виртуальная машина – благо мы его предварительно создали и остаётся только выбрать его из списка:

    Выбор сетевого адаптера виртуальной машины Hyper-V

  • на предпоследнем шаге определяем местонахождение файла, содержащего виртуальный жёсткий диск виртуальной машины – здесь опять-таки можно оставить всё по умолчанию, а можно указать и свой путь, например “D:\Hyper-V\Virtual Hard Disks”, делая упор на скорость и надёжность устройства (мы тоже предпочитаем хранить саму виртуальную машину и её диск в одной отдельной быстрой и надёжной каталожной структуре, но здесь как на снимке с экрана демонстрируем вариант по умолчанию);

    определение местоположения файла виртуального диска создаваемой виртуальной машины Hyper-V

  • что касается размера виртуального жёсткого диска то всё зависит от того, что за операционная среда будет стоять на виртуальной машине, для наших целей будет достаточно и значения по умолчанию, но всё же лучше указать 256 ГБ, особенно, если учитывать то, что на нашей виртуальной машине будет размещаться не только собственно LAMPa, но и несколько сайтов со своими базами данных;
  • ну и в последнем, завершающем окне мы ничего не меняем, так как учиться устанавливать гостевую ОС будем в следующей статье, а просто нажимаем “Далее”

    Установить гостевую ОС позднее

  • получаем совсем уже последнее информационное окно:

    Завершение процесса создания новой виртуальной машины Hyper-V

  • обращаем внимание на то, где по умолчанию располагается файл, содержащий наш виртуальный жёсткий диск, нажимаем кнопку “Готово” (Finish) и на этом завершаем процесс создания новой виртуальной машины Hyper-V.