Модератор: UncleFather
-
UncleFather
- Site Admin
- Сообщения: 1569
- Зарегистрирован: 17 авг 2004 16:20, Вт
- Контактная информация:
Перенос ОС MS Windows (на UEFI) в виртуальную среду Hyper-V
Задача:
Имеется физическая машина с операционной системой Microsoft Windows под управлением UEFI. Необходимо перенести (скопировать) ее в виртуальную среду гипервизора Hyper-V.
Решение:
-
Скачиваем утилиту Disk2vhd с официального сайта Microsoft. С помощью этой утилиты мы создадим виртуальный диск VHD (Virtual Hard Disk — формат виртуальной машины Microsoft) из физического диска, для использования его в среде Microsoft Virtual PC или Microsoft Hyper-V.
Отличительное свойство этой утилиты — это то, что она «умеет» создавать образы VHD непосредственно на работающей системе, так сказать «в режиме реального времени».
-
Запускаем утилиту на исходном компьютере и создаем виртуальный диск, отметив галочкой системный том:
-
-
Дожидаемся окончания создания контейнера с образом диска и переносим его на диск гипервизора Hyper-V.
-
Создаем виртуальную машину второго поколения с параметрами по умолчанию. В качестве виртуального диска указываем только что скопированный файл образа VHDX.
-
Устанавливаем необходимые настройки — количество процессоров, объем оперативной памяти и пр.
-
Пытаемся стартовать виртуальную машину. Если все хорошо и ОС успешно загружается, значит наша задача выполнена.
Но иногда бывает, что операционная система отказывается загружаться и мы увидим ошибку
No UEFI Compatible file system was found
В этом случае нужно будет дополнительно выполнить приведенные ниже шаги.
Причина такого поведения системы в том, что в виртуальном контейнере VHDX отсутствует отформатированный том в системном EFI разделе 100Mb. Сам раздел присутствует, но система не распознает том в этом разделе и помечает его как RAW:
Мы знаем, что для удачной загрузки, операционной системе нужен как раз этот EFI раздел, на котором должен находиться отформатированный в FAT32 том, где в папке EFI/Microsoft/boot должны присутствовать необходимые для загрузки файлы. На исходной системе так и было:
Но, вследствие каких-то преобразований при упаковке в контейнер VHDX, этот том был утерян или поврежден, поэтому нам нужно просто его восстановить, и вновь поместить нужные для загрузки операционной системы файлы по фиксированному пути. Итак, продолжаем:
-
-
Подключаем к виртуальной машине загрузочный iso образ диска с ОС, поддерживающей загрузку с UEFI и запускаем виртуальную машину.
-
Начинаем установку операционной системы, в первом окне выбираем язык, а во втором — «Восстановление системы».
-
Заходим в режим командной строки и запускаем утилиту разметки диска:
-
Смотрим какие физические диски в системе установлены и выбираем нужный:
-
Выводим список томов и выбираем том с нераспознанной файловой системой RAW:
-
Присваиваем тому букву, например, L и форматируем его в файловой системе FAT32:
Код: Выделить всё
assign letter=L format fs=FAT32 label=«BOOT»
-
После окончания форматирования, выходим из утилиты diskpart и создаем нужную папку на диске L:
-
Заходим в эту папку и пересоздаем загрузочный сектор на загрузочном разделе:
-
Заново создаем хранилище BCD, скопировав файлы среды загрузки из системного каталога:
Здесь:
-
C:\Windows — путь к каталогу с установленной ОС Windows;
-
/l ru-ru — языковой стандарт, который используется при инициализации хранилища BCD;
-
/s L: — буква тома, назначенная целевому системному разделу, в который копируются файлы среды загрузки;
-
/f ALL — указывает, что копировать нужно все файлы среды загрузки, включая файлы для компьютеров с UEFI или BIOS (теоретическая возможность загружаться на EFI и BIOS системах).
-
-
Выходим из режима восстановления
-
Выключаем виртуальную машину, заходим в ее параметры и удаляем из ее устройств за ненадобностью загрузочный iso образ диска
-
На этом настройка закончена. Теперь виртуальная машина сможет без проблем загрузиться с перенесенным дисковым контейнером vhdx.
Почитать по теме: Восстановление EFI загрузчика в MS Windows
Видеоинструкцию смотрим здесь:
Alexander A. Manaeff©
Понравилась статья? Будем крайне признательны за репосты в соцсетях! Материально поддержать проект можно здесь
На чтение 2 мин Просмотров 9.3к. Опубликовано
В данной заметке мы поговорим о том, как перенести работающую физическую систему Windows, будь то серверная или десктопная, на виртуальный сервер Hyper-V при помощи утилиты Disk2VHD. Данная программ является частью набора ПО для диагностики и администрирования ОС на базе MS Windows от Sysinternals, о чем говорится в данной статье. Эти утилиты доступны как для загрузки, так и в качестве live-версии.
Перенос физической Windows системы в виртуальную среду с помощью Disk2VHD
Очень удобно, когда есть возможность освободить физический сервер или рабочую станцию, перенеся ее содержимое в целости и сохранности в виртуальную среду. Данная операция называется Physical-to-Virtual, P2V. Таким образом, повысится отказоустойчивость, гибкость развертывания и обслуживания сервисов.
Используя Disk2VHD, мы создаем образ работающей системы (без ее остановки), записанный в виртуальный жесткий диск формата VHD. Подключив его к гипервизору, в нашем случае Hyper-V, мы получим полную копию работающей физической системы (со всеми установленными приложениями, настройками и ролями) в виртуальной среде.
Стоит отметить – программа Disk2VHD бесплатна, проста в использовании, не требует установки, поддерживает запуск из командной строки и обслуживает большинство современных ОС MS Windows.
Создание образа происходит следующим образом:
Сейчас лучше выбирать формат .VHDX, т.к. он в полной мере поддерживается всеми версиями Hyper-V. Если на системном диске есть скрытый раздел – его нужно обязательно скопировать.
Работа данной утилиты в командной строке:
disk2vhd C: C:\Distr\Image.vhd
Выполнится конвертация диска С, а таким образом – все диска на сервере:
disk2vhd * C:\Distr\Image.vhd
Подключение образа, как было сказано, ранее доступно в Hyper-V. Выполняется следующим образом – подключаемся в Hyper-V Manager, создаем новую виртуальную машину, указываем нужные характеристики (CPU, RAM, LAN), а в качестве жесткого диска – созданный нами диск в формате .VHDX.
Далее запускаем виртуальную машину. Необходимо выполнить установку драйверов. В Windows Server 2012 это выполняется автоматически. В нашем случае используется более ранняя версия серверной ОС (Win SRV 2003), поэтому необходимо запустить вручную интеграцию драйверов:
После этого потребуется перезагрузка.
По завершению которой мы получим полноценный работающий сервер. Единственное, что потребуется сделать (в некоторых случаях) – настройка сетевых адаптеров.
Как видим, процесс миграции физических серверов в виртуальную среду с помощью Disk2VHD не вызывает никаких трудностей и рекомендован к использованию.
Занимаюсь IT с 2007 года. Всё началось с увлечения — разгона компьютерного оборудования. Много воды и азота утекло с тех пор… Сейчас уже более 3х лет со своей командой оказываю комплексную поддержку и продвижение бизнеса: SEO, Яндекс.Директ, рассылки и удалённое обслуживание серверов. Буду рад помочь, обращайтесь!
07 Dec 2018
- virtualbox
Задача: Перенести существующую Windows 10 со всеми настройками, файлами и дисками на виртуальную машину. Как оказалось, решений несколько, и все они весьма простые.
Задача номер один — конвертировать существующие диски в виртуальные
Существует несколько способов перенести копию операционной системы на виртуальный диск, с помощью disk2vhd и с помощью средства резервного копирования Windows
Способ первый — с помощью disk2vhd
Скачиваем disk2vhd v2.01 и запускаем.
- Снимаем галочку с пункта «Use Vhdx».
- В левой части окна отмечаем галочкой нужные диски, можно выбрать только диск с установленной Windows, мне же нужно было отметить все диски.
- Указываем место хранения и имя файла виртуального диска.
- Нажимаем Create
И программа начнет создание виртуального диска, в зависимости размера это может занять значительное время. Когда программа закончит работу файл виртуального диска с расширением .vhd будет находится в той папке, которую вы указали.
Способ второй — с помощью резервного копирования Windows
Так как формат vhd принадлежит Microsoft, встроенное в Windows средство создания резервного образа системы, создает образы в формате vhd. Чтобы создать виртуальный диск нужно перейти:
Панель управления->Система и безопасность->История файлов->Резервная копия образа системы
Затем выбираем место сохранения резервного образа.
По умолчанию выбран диск С и скрытый раздел с файлами загрузки Windows.
Нажимаем Архивировать
Начнется процесс создания архива
Архивированный файл будет в папке WindowsImageBackup->Имя пользователя->Backup
Задача номер два — запустить сохраненную систему на виртуальной машине
Теперь нам нужно создать виртуальную машину и запустить ее. Иногда, при переносе Windows в виртуальную среду страдает загрузчик системы, который нам придется восстановить, чтобы это сделать мы загрузимся с iso-образа Windows и с помощью среды восстановления исправим загрузчик.
Установка VirtualBox и создание виртуальной машины
Windows
Установка VirtualBox на Windows не должна вызывать вопросов, поэтому просто скачиваем VirtualBox, устанавливаем и запускаем ее.
Linux
Есть два способа установки VirtualBox: из репозиториев ubuntu или из репозиториев Oracle.Чтобы установить из репозиториев ubuntu используйте:
sudo apt-get install virtualbox
После этого терминал запросит у вас пароль, введите его и ждите завершения загрузки и установки.
Установка из репозиториев Oracle более предпочтительна — версии там новее.
Сначала добавляем репозиторий:
echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" | sudo tee -a /etc/apt/sources.list
Затем добавим ключи репозитория:
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
Обновляем список пакетов:
Устанавливаем пакет для модулей ядра таких как vboxdrv и vboxnetflt:
sudo apt-get install dkms
Устанавливаем VirtualBox:
sudo apt-get install virtualbox-5.2
После того как VirtualBox установится, нам нужно добавить нашего пользователя в группу vboxusers:
sudo usermod -a -G vboxusers `whoami`
Создание вируальной машины
В главном окне нажимаем “Создать”.
Даем имя и выбираем тип и версию системы в соответствии с тем, какую систему мы будем загружать
Выделяем необходимое количество оперативной памяти. Для Windows 10 я ставлю не меньше 2048 Мб.
Выбираем “Использовать существующий виртуальный диск” и нажимаем на кнопку проводника
В проводнике находим нужный нам образ системы. Выделяем, нажимаем “Открыть”.
Нажимаем “Создать”.
Виртуальная машина создана, но при запуске скорее всего выдаст ошибку при загрузке.
Исправление загрузчика
Это решение с исправлением загрузчика относиться только к MBR дискам и системам. С исправлением загрузчика в GPT еще не сталкивался, если будут проблемы придется дополнить заметку.
Чтобы исправить загрузчик нам нужно загрузиться в iso-образа и войти в среду восстановления.
Для этого нажимаем “Настроить”
На вкладке «Система» стрелочками меняем порядок загрузки, первым устройством выставляем — Оптический диск, а вторым — Жёсткий диск. Нажимаем “Ок”.
На вкладке “Носители” подключаем iso-образ. Выбираем пустое поле и нажимаем на значок диска.
Нажимаем “Выбрать образ оптического диска” и выбираем iso-образ Windows. Во избежание конфликтов, той же версии Widows, как и система, которую мы пытаемся реанимировать.
Настройка VirtualBox завершена. Нажимаем “Ок”, тем самым сохраняем настройки.
Запускаем виртуальную машину.
На предложение загрузится с CD соглашаемся и нажимаем любую клавишу. После этого система загрузиться с нашего iso-образа.
После загрузки нажимаем Shift+F10, чтобы открыть окно командной строки.
Вводим команды:
- diskpart
- lis vol — выводим все разделы жёсткого диска или дисков (если их несколько) в список.
- sel vol 1 — в моем случае Том 1, это скрытый раздел System Reserved (Зарезервировано системой) размер 100 Мб — отвечающий за загрузку Windows 7, он некорректен (файловая система RAW) и его нужно удалить, а затем создать заново.
- del vol — удаляем некорректный раздел образуя нераспределённое пространство на жёстком диске.
- lis dis — выводим список дисков подключенных к компьютеру.
- sel dis 0 — выбираем единственный Диск 0.
- create par primary size=100 — создаём заново скрытый раздел System Reserved (Зарезервировано системой) размер 100 Мб.
- format fs=NTFS — форматируем его в файловую систему NTFS.
- activ — делаем активным.
- assign — присваиваем букву.
- lis vol — выводим все разделы накопителей подключенных к компьютеру в список.
- exit
- bcdboot D:\Windows — создаём заново файлы загрузки на скрытом разделе System Reserved для Windows, так как буква диска операционной системы в среде восстановления (D:)).
Выходим из командной строки, выключаем виртуальную машину, в настройках меняем порядок загрузки, как мы это делали раньше, только теперь первым делом ставим Жесткий диск, также можно удалить iso-образ из Оптического диска. Загружаемся уже не с iso-образа. Наша Windows должна успешно загрузиться.
Возможные ошибки
Ошибка при удалении защищенного раздела
Иногда при попытке удаления тома raw возникает ошибка “память не может быть read”. Это происходит, если мы пытаемся удалить защищенный раздел в помощью команды del vol. Disk2vhd копирует только выбранный нами раздел, но сохраняет также и структуру всего диска.
Такая ошибка возникает, если мы решим удалить защищённый раздел с помощью команды del vol. Disk2vhd копирует только выбранный нами раздел,но сохраняет структуру всего диска. RAW, это отсутствие файловой системы раздела, но так как ID разделов Disk2vhd сохраняет, нужно действовать немного по-другому. В командной строке вводим команды:
- diskpart
- lis dis — выводит список физических дисков
- sel dis 0 — выбираем основной жёсткий диск
- lis par — показ всех разделов выбранного диска
- sel par 3 — выбираем третий(в нашем случае третий, может быть другой раздел
- del par override — удаляем раздел, для удаления раздела ESP и MSR или раздела OEM-изготовителя ноутбука, необходимо указать параметр override
Далее действуем также, как описано выше — восстанавливаем загрузчик:
- lis dis — выводим список дисков подключенных к компьютеру.
- sel dis 0 — выбираем единственный Диск 0.
- create par primary size=100 — создаём заново скрытый раздел System Reserved (Зарезервировано системой) размер 100 Мб.
- format fs=NTFS — форматируем его в файловую систему NTFS.
- activ — делаем активным.
- assign — присваиваем букву.
- lis vol — выводим все разделы накопителей подключенных к компьютеру в список.
- exit
- bcdboot D:\Windows — создаём заново файлы загрузки на скрытом разделе System Reserved для Windows, так как буква диска операционной системы в среде восстановления (D:)).
После этого из командной строки, выключаем виртуальную машину, в настройках меняем порядок загрузки,как мы это делали раньше, только теперь первым делом ставим Жесткий диск, также можно удалить iso-образ из Оптического диска. Загружаемся уже не с iso-образа. Наша Windows должна успешно загрузиться.
Синий экран при запуске виртуальной машины
Иногда после восстановления загрузчика Windows не загружается и мы видим синий экран с ошибкой 0x0000007B. Это случается из-за того, что ваша система, которую теперь мы пытаемся запустить на виртуальной машине работала к контроллером IDE, а не SATA. Выключайте виртуальную машину, заходите в Настройки -> Носители. Выбирайте контроллер SATA и удаляйте его.
Затем добавляйте контроллер IDE.
И прикрепляйте к нему наш виртуальный образ.
Запускаем виртуальную машину и радуемся.
Ошибка аппаратное ускорение (VT-x AMD-V) недоступно в вашей системе
Чтобы исправить эту ошибку нужно убедиться, что ваш процессор поддерживает апаратную виртуализацию. Для этого перезагружаемся и заходим в биос. Там ищем пункт, связанный с Virtual, Virtual mode или Virtualization. В некоторых версиях биос он находится на вкладке Advanced в пункте CPU Configuration и называется Secure Virtual Machine Mode, в других на вкладке Advanced BIOS Features, но он может называться по-другому. Напротив этого пункта нужно перевести переключатель из режима Disabled в режим Enabled. Сохраняем изменения и выходим из BIOS.
Если вы не нашли нужного пункта в BIOS, и не знаете поддерживает ли ваш процессор аппаратную виртуализаци, попробуйте программу SecurAble. Она не требует установки, скачиваете, запускаете и в третьем столбце видите либо YES, значит виртуализация поддерживается и она уже включена, либо LOCKED, значит виртуализация поддерживается, но заблокировна в BIOS и нужно ее включить, либо NO, в этом случае аппаратная виртуализация не поддерживается.
Загружаемся, открываем VirtualBox и в настройках виртуальной машины находим
Настройки -> Система -> Ускорение И, если пункт VT-x AMD-V не отмечен галочкой, отмечаем и нажимаем ОК.
Запускаем виртуальную машину.
Настройка виртуальной машины
Дополнения гостевой OC: общие папки и общий буфер обмена
Теперь осталось установить “Дополнения гостевой ОС”, после их установки VirtualBox настроит все драйвера и появится возможность переходить в “Режим полного экрана” и создавать общие папки и настроить общий буфер обмена с машиной хостом.
После того, как мы нажмем “Подключить образ диска Дополнения гостевой ОС” в CD приводе виртуальной машины появится диск с дополнениями. Нужно его открыть и установить программное обеспечение, которое на нем находится. Во время установки могут появится предупреждения о несовместимости драйверов. Везде соглашайтесь с установкой. После этого диск можно “изъять”. Чтобы дополнения заработали виртуальную машину придется перезапустить.
Установку Guest Additions (Дополнения гостевой ОС) на виртуальных машинах Linux удобнее выполнять через пакетный менеджер, а не через образ диска. Запустите терминал и установите:
sudo apt-get install virtualbox-guest-x11
sudo apt-get install virtualbox-guest-utils
Затем перезагрузите гостевую операционную систему.
Общий буфер обмена
Чтобы включить общий буфер обмена на запущенной виртуальной машине, в пункте меню Устройства, где мы выбирали “Подключить образ диска Дополнения гостевой ОС0”, выбираем пункт Общий буфер обмена и выбираем Двунаправленный.
Полный экран и настройка экрана
Чтобы настроить режим полного экрана или чтобы экран гостевой машины соотвествовал экрану хост машины, на запущенной виртуальной машине выбираем Вид и выбираем Подгонять размер экрана гостевой ОС для того, чтобы подогнать разрешение экрана виртуальной машины под разрешение экрана вашей хост машины для комфортной работы. Там же можно выбрать Режим интеграции дисплея или Полноэкранный режим в зависимости от ваших нужд.
Общие папки
Чтобы удобно обмениваться файлами между хост и гостевой машинами настроим общую папку. Переходим в меню Устройства -> Общие папки -> Настроить общие папки. Значком + добавляем общую папку и в открывшемся окне проводника выбираем путь к папке, отмечаем галочками Автоподключение и Создать постоянную папку. Нажимаем сохранить, чтобы закрыть оба окна и, если и хостовая и гостевая машина у вас Windows перезагружаем компьютер, чтобы общая папка была готова к использованию. Файлы в общей папке видны одновременно и на хост и на гостевой машине.
Если хост или гостевая машина у вас Linux, то перед тем как перезагружать компьютер нужно добавить своего пользователя в группу vboxsf, если вы не сделали этого раньше, на этапе установки VirtualBox. На Linux машине используйте команду, где вместо user укажите имя пользователя, от которого вы будете запускать файловый менеджер:
sudo usermod -aG vboxsf user
После этого перезагрузите компьютер.
Если после перезагрузки в гостевой машине Windows не появилась общая папка подключите сетевой диск, который находится по адресу \vboxsvr\имя_папки.
имя_папки — то самое имя, которые Вы дали расшаренной директории.
Оптимизация: VMware OS Optimization Tool
Для виртуальных машин на Windows я использую VMware OS Optimization Tool. Скачиваем архив, распаковываем и запускаем программу на нашей виртуальной машине. Не на хосте.
В окне программы мы видим доступные опции для оптимизации. Многие из них включены по-умолчанию. В левом нижнем углу кнопка, чтобы запустить оптимизацию — “Optimize”.
Начнется процесс оптимизации, после завершения которого ваша Windows будет работать значительно быстрее и потреблять меньше оперативной памяти.
Важно Отдельно хочу посоветовать, пробежаться глазами по включенным пунктам оптимизации и снять галочки с тех пунктов, которые вам оптимизировать не нужно, например, один из пунктов отключает OneDrive и если вы собираетесь его использовать на виртуальной машине снимите галочку с соответствующего пункта.
Несмотря на то, что VMware OS Optimization Tool делает бекап реестра и все измененные пункты можно откатить назад, если что-то пойдет не так, рекомендую сделать снапшот (снимок состояния виртуальной машины) прежде чем запускать утилиту — снапшоты использовать куда удобнее и безопаснее, чем восстанавливать бекап реестра.
P.S. Спасибо админу remontcompa.ru за эту статью и вот эту статью, а также remontka.pro за этот материал про создание виртуального диска и вот этот про восстановление загрузчика в Windows 10. За часть скриншотов спасибо losst.ru
Содержание
- Сайт ARNY.RU
- Перенос физической Windows системы в виртуальную среду Hyper-V
- Перенос физической Windows системы в виртуальную среду с помощью Disk2VHD
- Как перенести ОС Windows на виртуальную машину
- Перенос физического сервера на виртуальный – как управиться за 1 день
- 1. Создаём образ диска текущего физического сервера
- 2. Отправляем образ диска облачному провайдеру
- Импорт и экспорт в Hyperv или перенос виртуальных машин
- Экспорт Hyper V
- Импорт Hyper V
- Экспорт и импорт виртуальной машины Hyper V в Powershell
Сайт ARNY.RU
Почему снова статья про перенос?
Что не так с UEFI?
Вот с последним и будем бороться. Особенность установки Windows на чистый UEFI без поддержки совместимости или с отключенной поддержкой совместимости, заключается в том, что:
Описание проблемы
Решение
Работа с EFI разделом
Вот так выглядит диск на исходном сервере:
и никаких средств для работы с ним Windows не предлагает. Получаем виртуальный диск.
А вот та же картинка с сервера-донора:
Запускаем на доноре disk2vhd и отмечаем только Зарезервировано системой (остальные партиции будут присутствовать в созданном диске, но в виде неотформатированных разделов RAW):
Оба виртуальных диска копируем на Windows 10 и подсоединяем их через Управление дисками для работы:
Разделы RAW можно удалить, но вот удалять EFI раздел оснастка не умеет и Acronis не умеет это делать. Воспользуемся встроенной утилитой diskpart, запустив командную строку от имени Администратора:
Запускаем опять Управление дисками и проверяем:
Копируем загрузчик, делаем это с помощью Acronis Disk Director:
Работа с GPT диском
Воспользуемся проверенным методом. Всё подробно описано, повторяться не буду, скажу лишь вкратце: удаляем все разделы через встроенную оснастку Windows, переводим диск в MBR с её же помощью, ищем разделы внешней программой.
Единственное отличие в том, что в этот раз пользовался утилитой Acronis Recovery Expert из комплекта Acronis Disk Director для поиска разделов, а не Paragon Partition Manager, но в целом разница невелика.
Пара замечаний по материалу:
Прикладываю виртуальный жесткий диск, в котором только 100Mb раздел загрузчика Windows 2008 R2 на всякий пожарный.
Источник
Перенос физической Windows системы в виртуальную среду Hyper-V
В данной заметке мы поговорим о том, как перенести работающую физическую систему Windows, будь то серверная или десктопная, на виртуальный сервер Hyper-V при помощи утилиты Disk2VHD. Данная программ является частью набора ПО для диагностики и администрирования ОС на базе MS Windows от Sysinternals, о чем говорится в данной статье. Эти утилиты доступны как для загрузки, так и в качестве live-версии.
Перенос физической Windows системы в виртуальную среду с помощью Disk2VHD
Очень удобно, когда есть возможность освободить физический сервер или рабочую станцию, перенеся ее содержимое в целости и сохранности в виртуальную среду. Данная операция называется Physical-to-Virtual, P2V. Таким образом, повысится отказоустойчивость, гибкость развертывания и обслуживания сервисов.
Используя Disk2VHD, мы создаем образ работающей системы (без ее остановки), записанный в виртуальный жесткий диск формата VHD. Подключив его к гипервизору, в нашем случае Hyper-V, мы получим полную копию работающей физической системы (со всеми установленными приложениями, настройками и ролями) в виртуальной среде.
Стоит отметить – программа Disk2VHD бесплатна, проста в использовании, не требует установки, поддерживает запуск из командной строки и обслуживает большинство современных ОС MS Windows.
Создание образа происходит следующим образом:
Сейчас лучше выбирать формат .VHDX, т.к. он в полной мере поддерживается всеми версиями Hyper-V. Если на системном диске есть скрытый раздел – его нужно обязательно скопировать.
Работа данной утилиты в командной строке:
Выполнится конвертация диска С, а таким образом – все диска на сервере:
Далее запускаем виртуальную машину. Необходимо выполнить установку драйверов. В Windows Server 2012 это выполняется автоматически. В нашем случае используется более ранняя версия серверной ОС (Win SRV 2003), поэтому необходимо запустить вручную интеграцию драйверов:
После этого потребуется перезагрузка.
По завершению которой мы получим полноценный работающий сервер. Единственное, что потребуется сделать (в некоторых случаях) – настройка сетевых адаптеров.
Как видим, процесс миграции физических серверов в виртуальную среду с помощью Disk2VHD не вызывает никаких трудностей и рекомендован к использованию.
Нашли ошибку в тексте? Выделите фрагмент текста и нажмите Ctrl+Enter
Источник
Как перенести ОС Windows на виртуальную машину
Существует несколько способов преобразования установленной ОС Windows в образ для виртуальной машины. Созданный образ можно использовать, например, для тестирования, для проверки стабильности системы после установки какого-либо обновления, или для того, чтобы зафиксировать состояние старой машины перед внесением изменений.
Большинство программ виртуализации поддерживают функцию преобразования установленной ОС Windows в образы виртуальной машины. Некоторые решения уже поставляются со встроенными функциями, но в ряде случаев для этой же цели может понадобится использование сторонних продуктов.
В этом руководстве собраны инструкции по преобразованию установок Windows в виртуальные образы Microsoft Hyper-V, VirtualBox и VMware.
Перенос ОС Windows в виртуальную машину Microsoft Hyper-V выполняется очень просто благодаря программе Disk2vhd от Sysinternals.
Программа является портативной, ее можно запускать из любого расположения на диске после распаковки архива. Для работы приложения требуются права администратора. Программа может применяться для создания виртуальной машины из одного или нескольких томов на компьютере.
Примечание: программу можно запустить в режиме командной строки, используя формат:
Пользователь должен выбрать целевой путь и имя файла (с расширением vhdx), а также тома, которые следует включить в виртуальный образ.
Вы можете выбрать только раздел Windows или даже преобразовать несистемные разделы в образы VHD, не выбирая раздел Windows.
Disk2VHD поставляется с двумя дополнительными параметрами, которые указываются при запуске. Первый устанавливает выходной формат VHDX. Вы можете отключить данный параметр, чтобы использовать VHD.
VHDX имеет несколько преимуществ, такие как поддержка более крупных виртуальных дисков (64 ТБ против 2 ТБ), лучшая защита от повреждений, дистанционное онлайн изменение размера и др. VHD необходим в основном для целей совместимости, например, когда продукт не поддерживает VHDX, а также когда вы хотите преобразовать образ в Virtualbox.
Второй параметр позволяет использовать теневую копию тома.
Disk2VHD обрабатывает выбранные тома и превращает их в образы виртуальных дисков, которые сохраняются в выбранном месте.
VirtualBox поставляется без встроенного инструмента конвертации установок Windows в образы виртуальной машины.
Однако, вы можете использовать альтернативное решение. Прежде всего, вам нужно создать образ VHD (как показано в разделе Microsoft Hyper-V выше).
После того, как вы получили образ VHD, можете использовать инструмент командной строки vboxmanage, который поставляется с VirtualBox, для клонирования носителя и сохранения его в другом формате.
Преобразование может занять некоторое время в зависимости от размера изображения и доступных ресурсов вашего компьютера.
Вы можете создавать виртуальные образы машин Windows для VMware с помощью VMware vCenter Converter. Вы можете загрузить программу с официального сайта VMware, но для этого требуется учетная запись. На нашем сайте утилита доступна для загрузки без регистрации.
Примечание: Программа создает виртуальный образ полной машины. В графическом интерфейсе нет возможности исключить жесткие диски или разделы.
Размер установщика равен примерно 170 мегабайт. Во время установки вам будет предложено присоединиться к программе улучшения качества обслуживания клиентов.
Чтобы преобразовать запущенную систему Windows в виртуальный образ для VMware, выберите опцию “Конвертировать машину” в главном интерфейсе программы, чтобы начать работу.
После загрузки мастера, убедитесь, что для типа источника установлено значение “включено” и выбран “этот локальный компьютер”. Вы также можете создавать виртуальные образы удаленных компьютеров, но для этого необходимо указать имя или IP-адрес устройства, а также учетные данные.
Выберите виртуальную машину VMware в разделе тип цели на следующей странице и выберите целевую папку для сохранения образа.
Создание образа может занять некоторое время, в зависимости от количества томов, их размеров и ресурсов устройства.
Источник
Перенос физического сервера на виртуальный – как управиться за 1 день
Если вам не хочется читать предисловия и обоснования разумности переноса данных на виртуальный сервер, вы можете сразу перейти к инструкции.
Содержание собственного оборудования или парка его – удовольствие не дешевое и почти всегда не имеет никакого отношения к непосредственному притоку денег в организацию. Собственный сервер, который может даже стоять в собственном небольшом помещении в офисе – пережиток прошлого, он все больше вызывает раздражение у современных руководителей.
Бизнесу требуется функционирующий сервис, а не парк оборудования и персонал его обслуживающий. С какими проблемами сталкивается малый и средний бизнес, решая приобрести собственный сервер:
Сейчас практически ни один современный бизнес не обходится без собственной, пусть даже минимальной, IT-инфраструктуры. Это может быть сайт, система управления бизнес-процессами, любого рода сервисы, требующие постоянной стабильной работы и постоянной доступности: от бухгалтерии до биржевой торговли – это с высочайшей степенью отказоустойчивости обеспечит инфраструктура провайдера облачных услуг, например, наша.
Почему виртуальный сервер на чужой инфраструктуре надежнее собственного физического?
Первое, что нужно понять – не все VPS / VDS серверы одинаково хорошие, зачастую представители лоукост-сегмента предлагают виртуальный сервер по надежности ничем не лучше того, что стоял бы у вас дома под столом. Это как раз потому, что собираются они без резервирования чего-либо. Однако, на такие серверы тоже есть спрос: существует множество задач, для которых не критичны простои в несколько часов или полная потеря данных – это как правило серверы для VPN, прокси или разовых рассылок (чаще всего СПАМа).
Если говорить о надежности, выбирая сегмент хотя бы немного выше минимальной планки, то здесь стоит рассчитывать на:
Нелишним будет отметить, что все вышеперечисленное относится и к VPS.house
Перенести физический сервер на виртуальный – задача очень простая и с ней справится самый обычный «пользователь ПК». Основное время уходит на снятие образа данных с текущего диска и дальнейшее его копирование на сервер будущего провайдера. Если данных действительно много, то процесс может занять день или даже больше, но вам при этом не обязательно находится за компьютером – можно заниматься любыми другими делами параллельно.
1. Создаём образ диска текущего физического сервера
Для создания образа диска предлагаем воспользоваться постой утилитой Disk2vhd. Она не требует установки и скачать ее можно прямо с сайта Microsoft:
https://docs.microsoft.com/en-us/sysinternals/downloads/disk2vhd
VHD/VHDX – это формат образа диска, который используется в средах аппаратной виртуализации Hyper-V. Такая среда применяется на сервисе VPS.house и у многих провайдеров, которые предлагают услуги по аренде виртуальных серверов с ОС Windows Server.
Распакуете скаченный ZIP-архив и запустите файл disk2vhd.exe
Перед началом создания образа убедитесь, что отмечено галочкой поле «Use Vhdx», это важно для того, чтобы получить образ диска в современном формате VHDX, поддерживающим расширение объёма до 64ТБ.
В поле имени файла укажите место, куда необходимо сохранить конечный файл образа. Обратите внимание на требуемый объём свободного места для создания образа!
Отметьте только те диски, которые нужны вам для работы в облаке. Если у вас в этом же сервере есть большой диск для резервных копий, тратить время на подготовку образа и перенос данных вместе с ним может быть не всегда разумно.
В зависимости от объёма данных и скорости работы вашей текущей дисковой системы процесс подготовки образа может занять до нескольких часов.
В конечном итоге вы увидите в выбранном месте ваш готовый образ – самое сложное на этом заканчивается.
2. Отправляем образ диска облачному провайдеру
Какими свойствами должен обладать хороший провайдер облачных услуг мы описали выше, вы можете выбрать любого импонирующего вам или же создать аккаунт и сервер автоматически за 1-2 минуты на VPS.house
Выбирая конфигурацию обратите внимание на объем жёсткого диска, он не должен быть меньше размера файла вашего образа и того объёма, который вам необходим для нормальной дальнейшей работы.
После создания аккаунта и виртуального сервера вам необходимо написать заявку в службу поддержки хостинга с просьбой о предоставлении данных для загрузки вашего образа диска – в ответ будут даны данные для доступа к изолированной FTP-директории, куда вы сможете скопировать ваш образ.
В зависимости от объёма файла и скорости каналов связи в вашем текущем дата-центре или офисе, перенос может занять несколько часов. Со своей стороны, для загрузки клиентских образов мы предоставляем место на временном сервере, который подключен к сети на постоянной скорости 2 Гбит/с. Данная скорость позволяет перенести, например, крупный файловый сервер или сервер баз данных объёмом 1 ТБ всего за полтора часа.
Как только вы загрузите файл вам достаточно написать повторную заявку в поддержку для подключения данного образа к рабочей архитектуре хостинга – провайдер сделает все остальное за вас и включит сервер в работу. Он будет сразу доступен по выделенному вам новому IP-адресу, который вы заранее будете видеть в личном кабинете.
P.S.: данная инструкция работает не только для переноса физического сервера на виртуальный, она также отлично подойдет и для переезда с одного облака на другое.
Если у вас уже есть работающий виртуальный сервер, на настройку которого вы потратили уйму времени и вам не хочется повторять все снова в другом месте, но при этом вы не до конца удовлетворены качеством оказываемых услуг или их стоимостью – воспользуйтесь предложенной инструкцией и идентичный настроенный сервер заработает в новом облаке менее чем за 1 день с минимальными усилиями с вашей стороны.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Источник
Импорт и экспорт в Hyperv или перенос виртуальных машин
Импорт и экспорт в Hyper V это возможность копирование и переноса виртуальных машин. Эта возможность используется в тестовой среде, когда у нас есть образ или шаблон машины и для переноса с одного сервера на другой. Я так же слышал, что кто-то использует эту возможность как резервное копирование. Мы рассмотрим на примерах с GUI и в Powershell.
Если вы хотите создать шаблон виртуальной машины, то перед экспортом нужно сделать sysprep. Что бы просто перенести виртуальную машину Hyper V этого делать не надо.
Либо запустить файл sysprep.exe в этой папке:
И подтвердить действия с этими настройками:
После окончания работы утилиты компьютер выключится и его нельзя будет включать. Если вы его включите, то идентификаторы сгенерируются и операцию нужно будет проделывать заново.
Экспорт Hyper V
Теперь выполним экспорт виртуальной машины Hyper V, в этот момент ВМ может быть включена. Нажмите на нее правой кнопкой и найдите кнопку экспорта:
Выберете путь, куда хотите экспортировать ВМ и нажмите кнопку подтверждения. ВМ будет экспортирована со всеми настройками и виртуальным диском:
После этого мы выполнили в Hyper V копирование виртуальной машины.
Импорт Hyper V
Что бы выполнить в Hyper V импорт виртуальной машины нажмите следующую кнопку:
После стартового окна нам нужно будет выбрать папку, куда мы экспортировали ВМ:
Проверяем, что имя ВМ совпадает с той, которую мы хотим импортировать:
На следующем окне у нас появляется три возможных пункта клонирования виртуальной машины Hyper V. Так как ВМ тоже имеет уникальные идентификаторы этот пункт очень важен:
Если в этот момент уже работает ВМ с этим идентификатором, то мы получим ошибку:
The operation failed because a virtual machine with the same identifier already exists. Select a new identifier and try the operation again.
Ошибка загрузки конфигурации виртуальной машины hyper v
Я выполню копирование машины, но остальные варианты аналогичны:
В случае с копированием мы можем выбрать новое расположение файлов чекпоинтов, конфигураций и кэша либо использовать установленное по умолчанию:
В этом окне выбирается расположение диска:
В этой ВМ адаптер подключен к другому коммутатору и его не существует на этом хосте гипервизора. Проверка коммутаторов идет по именам и если раньше коммутатор, на этом же хосте, назывался ‘Ext 1’, а затем был удален или переименован на ‘Ext 01’ вы тоже получите ошибку. Можно выбрать новый коммутатор или пропустить этот шаг:
На последнем шаге мы проверяем введенные данные и нажимаем кнопку подтверждения:
После этого ВМ импортируется и вам может понадобится подключиться к коммутатору и переименовать ее.
В обоих случаях вам нужно зайти в настройки ВМ:
Для переименовывания машины нужно зайти на вкладку «Имя»:
Если сетевых адаптеров у ВМ нет, то нужно зайти во вкладку добавления устройств и добавить сетевой адаптер:
А затем подключить к коммутатору:
После этого в Hyper V виртуальная машина будет подключена и ее можно запускать.
Экспорт и импорт виртуальной машины Hyper V в Powershell
Все команды имеют ключ ComputerName, а значит перенос виртуальной машины Hyper V может делаться на удаленном компьютере.
Получим список ВМ Hyper V, что бы узнать какую машину экспортировать:
Что бы через консоль Powershell в Hyper V скопировать виртуальную машину, в базовом варианте, нужно сделать следующее:
Так как мы можем выполнить клонирование и включенной машины, то у нас есть несколько способов манипулировании с памятью. Для этого есть ключ CaptuteLiveState, которого нет в версии Windows Server 2012 r2 и ниже, со значениями:
По умолчанию используется CaptureSavedState.
Для импорта есть три варианта сохранения идентификаторов, которые описывались выше.
Если вы решили импортировать ВМ, которая уже находиться в нужной папке и с сохранением идентификаторов сделайте так:
Import-VM : Failed to create virtual machine. The operation failed because a virtual machine with the same identifier already exists. Select a new identifier and try the operation again.
Для импорта ВМ, с сохранением идентификаторов, но в новое место на диске выполните:
В случае копирования VM с генерированием нового идентификатора можно сделать так:
В этом случае все файлы будут перемещены в папку, которая была указана в настройках Hyper V. Операция клонирования выполнена.
Источник
Время на прочтение10 мин
Количество просмотров55K
«Любишь Hyper-V – люби и PowerShell»
Первое правило Сообщества Hyper-V в Телеграм
«А если любишь VMware ESXi, то люби PowerShell на пару с ESXi CLI и REST API»
Дополнено мной
Живая миграция (live migration) – популярная функция в Hyper-V. Она позволяет переносить работающие виртуальные машины без видимого простоя. В сети много инструкций по переносу ВМ, но многие из них устарели. Вдобавок не все заглядывают в расширенные настройки и правильно используют возможности Live Migration.
Я собрал нюансы и неочевидные параметры для быстрого переноса ВМ внутри кластера и между кластерами. Заодно поделюсь маленькими секретами в настройке и проектировании. Надеюсь, статья будет полезна начинающим админам.
Дисклеймер: Все описанные шаги желательно сделать ДО ввода сервера Hyper-V в прод. Hyper-V никогда не прощает ошибок проектирования и подведет вас при первом удобном случае. То есть уже на следующий день.
Вспоминаем матчасть
Как обычно происходит миграция ВМ с одного узла на другой внутри кластера Hyper-V:
- Конфигурация ВМ копируется с одного узла кластера на другой.
- Страницы памяти виртуальной машины помечаются для копирования на целевой хост, и начинается процесс их перемещения в режиме онлайн.
- Поскольку виртуальная машина все еще работает, страницы памяти постоянно меняются. Во время миграции Hyper-V отслеживает измененные страницы памяти и переносит их на другой хост. Процесс повторяется до тех пор, пока на первом узле кластера не останется только несколько измененных страниц.
Копирование страниц памяти с одного узла на другой и их синхронизация.
- ВМ на исходном хосте выключается, оставшиеся страницы памяти копируются на целевой хост, и виртуальная машина на нем включается. Переключение происходит за доли секунды. Процесс достаточно быстрый, чтобы ни один клиент не заметил простоя.
Это и называется живой миграцией. Схема справедлива для любого гипервизора.
Чем больше оперативной памяти у ВМ и чем интенсивнее она изменяется, тем дольше будет переезд. Поэтому трафик живой миграции требует хорошего канала и тщательной настройки.
По такой схеме работает классическая живая миграция внутри Failover Cluster. Для нее нужен общий том CSV, поданный всем хостам кластера.
Помимо этого есть второй вид Live Migration, живая миграция в режиме «ничего общего» (Shared-Nothing Live Migration). Этот сценарий обычно используется для миграции ВМ без простоя между кластерами. Помимо страниц памяти с одного хоста Hyper-V на другой копируется диск VHD(X) с переносом и синхронизацией дельты данных, записанных на него.
Разберем основные нюансы по настройке интерфейсов.
Задаем настройки протоколов
- Для начала зайдем в Hyper-V manager и откроем правым кликом настройки Hyper-V. В настройках Live Migration укажем адреса сетевых интерфейсов, к которым будет обращаться гипервизор:
- Заглянем в Advanced features. Нас интересуют оба пункта: протокол аутентификации и транспорт, который используют наши ВМ.
- Authentication protocol: по умолчанию установлен протокол CredSSP – Credential Security Support Provider Protocol. Он прост в использовании, но, если в инфраструктуре несколько кластеров, мы не сможем перенести ВМ между кластерами.
Мы выберем Kerberos как более безопасный и подходящий для переноса ВМ между различными кластерами.
- Performance options: здесь выбираем сетевой протокол. Живая миграция у нас будет работать поверх Switch Embedded Team по протоколу SMB (Server Message Block).
Возможность использовать этот протокол появилась в Windows Server 2016. SMB по умолчанию отдает трафик в несколько портов (SMB Multi-channel). Также он прекрасно работает с RDMA – адаптером удаленного прямого доступа к памяти. Это полезно для ускорения переноса кластеров.
- Authentication protocol: по умолчанию установлен протокол CredSSP – Credential Security Support Provider Protocol. Он прост в использовании, но, если в инфраструктуре несколько кластеров, мы не сможем перенести ВМ между кластерами.
- Kerberos позволяет переносить ВМ между кластерами, но требует настройки ограниченного делегирования (Kerberos Constrained Delegation) на объектах Computer в Active Directory.
Начиная с Windows Server 2016, службы работают в контексте NETWORK SERVICE, который не может имперсонироваться в AD. Так что в этом случае выбираем неограниченное делегирование (Unconstrained Delegation), но учитываем, что это довольно небезопасно:
Если живая миграция инициируется через System Center Virtual Machine Manager (SC VMM), то дополнительной настройки не нужно. SC VMM является доверенным сервисом для переноса машин по Shared-Nothing Live Migration.
- Протокол SMB не требует особой настройки. Если мы находимся в доверенной среде, можно немного ускорить процесс Live Migration и отключить сквозное шифрование данных SMB:
Set-SmbServerConfiguration -EncryptData $false -RejectUnencryptedAccess $false
Так мы совершим меньше действий при передаче трафика и не потратим лишнее время на шифрование. В случае с кластерами оно может нам понадобиться.
Эти же настройки в более модном Windows Admin Center:
Разбираемся с конфигурацией сети
Сетевая оптимизация Hyper-V – это крайне дискуссионная тема в сообществе и безграничное поле для экспериментов (предела совершенству в нем нет по определению). Так что перед пошаговой настройкой сети разберемся, как технологии изменились за последнее время и как можно это использовать.
Как было раньше. Старые мануалы по переносу ВМ Hyper-V описывают сценарии с использованием технологии тиминга Load Balancing/Fail Over (LBFO). LBFO позволяла группировать физические сетевые адаптеры и создавать поверх них интерфейсы. Но были и минусы, например: не было поддержки RDMA, нельзя было выяснить, через какой порт тима будет идти трафик. А поскольку трафик живой миграции требует довольно жирного канала, это превращалось в проблему, когда все сетевые ворклоады ломились в один физический порт.
Как сейчас. В Windows Server 2019 даже нельзя создать виртуальный свитч поверх LBFO Team. Единственным поддерживаемым решением для объединения портов сетевой карты в Hyper-V остался Switch Embedded Team (SET).
SET агрегирует адаптеры, как и vSwitch у ESXi. Физические сетевые порты становятся патч-кордом для разных типов трафика (в том числе для ВМ), а поверх них нарезаются виртуальные интерфейсы.
Тут нужно добавить, что в типах гипервизоров есть небольшой рассинхрон. Англоязычные авторы считают, что есть только 2 типа, но на самом деле их 3 (подробно мы с коллегами описывали их в этом посте). Когда-то гипервизоры ESX были гибридного типа (1+). Это был такой модернизированный Red Hat c ролью гипервизора. VMware ушла от этого в vSphere 4.1 и стала честным гипервизором типа 1 (bare-metal).
Microsoft взяла опыт VMware на вооружение и реализовала Switch Embedded Team в Windows Server 2016. Эта схема показывает большую производительность и гибкость в управлении трафиком в рамках тиминга.
В новых версиях SET позволяет создавать разные виртуальные интерфейсы для разных нагрузок поверх группы физических интерфейсов. По сути, это виртуальные сетевые адаптеры корневого раздела, которыми мы можем управлять наподобие виртуальных адаптеров ВМ.
Как это влияет на процесс настройки. В Hyper-V, помимо менеджмент-интерфейса, мы обычно создаем интерфейсы для живой миграции и интерфейсы для CSV-трафика кластера. Для этого нам нужно знать количество сетевых портов, входящих в SET, – именно столько виртуальных интерфейсов нужно будет создать. Также учитываем расположение сетевых портов на PCI-шине, количество сокетов для последующего маппинга интерфейсов по NUMA-нодам и количество физических ядер на каждом процессоре.
Посмотрим на процесс пошагово
- Для начала опишем сети, которые будем использовать. Предположим, у нас стандартная двухпортовая on-board сетевая карта и двухсокетная материнская плата.
- Создать SET через стандартный интерфейс можно с помощью Virtual Switch в VMM (Virtual Machine Manager). Если VMM нет, выполняем следующий скрипт PowerShell на каждом хосте Hyper-V:
New-VMSwitch -Name "SET" –NetAdapterName "NIC1","NIC2" -EnableEmbeddedTeaming $True -AllowManagementOS $true -MinimumBandwidthMode Weight
В результате мы создадим свитч с менеджмент-интерфейсом. MinimumBandwidthMode обязательно сразу задаем как weight, иначе после создания SET мы не сможем изменить этот параметр. Так пропускная способность сети будет указана в относительных числах. Это понадобится для настройки Network QoS Policies (а иначе они не будут работать).
Если мы настраиваем SET поверх RDMA-адаптеров, то MinimumBandwidthMode работать не будет ни в каком режиме. Следовательно, Network QoS Policies при включенном RDMA тоже работать не будут.
- Алгоритм балансировки выставляем в Dynamic вместо дефолтного Hyper-V Port (в Windows Server 2019). Dynamic использует лучшие аспекты режимов Address Hash и Hyper-V Port и хорошо обрабатывает и входящий, и исходящий трафик:
Set-VMSwitchTeam "SET" -LoadBalancingAlgorithm Dynamic
Здесь нужно быть очень внимательным, особенно если мы создаем SET через SC VMМ и оставляем балансировку Host Default. В Windows Server 2016 алгоритмом по умолчанию был Dynamic. В Windows Server 2019 дефолтный алгоритм по непонятным причинам изменили на Hyper-V Port, так что можно и ошибиться.
- Когда мы создали свитч, IP-адрес первого физического интерфейса мигрирует на виртуальный интерфейс свитча.
После этого мы создаем сетевые интерфейсы по количеству физических портов на сетевой карте и «прибиваем» CSV-трафик и трафик живой миграции к каждому порту:
# Создаем виртуальные сетевые адаптеры Live Migration Add-VMNetworkAdapter –ManagementOS –Name "LiveMigration01" –SwitchName MGMT-Switch -NumaAwarePlacement $true Add-VMNetworkAdapter –ManagementOS –Name "LiveMigration02" –SwitchName MGMT-Switch -NumaAwarePlacement $true # Задаем VLAN Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName "LiveMigration*" -VlanId 2 -Access #Задаем IP-адреса для адаптеров New-NetIPAddress –InterfaceAlias "vEthernet (LiveMigration01)" -IPAddress 192.168.2.2 -PrefixLength 24 -Confirm:$false New-NetIPAddress –InterfaceAlias "vEthernet (LiveMigration02)" -IPAddress 192.168.2.3 -PrefixLength 24 -Confirm:$false # Создаем виртуальные сетевые адаптеры CSV-трафика Add-VMNetworkAdapter –ManagementOS –Name "CSV01" –SwitchName MGMT-Switch -NumaAwarePlacement $true Add-VMNetworkAdapter –ManagementOS –Name "CSV02" –SwitchName MGMT-Switch -NumaAwarePlacement $true # Задаем VLAN Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName "CSV*" -VlanId 3 -Access # Задаем IP-адреса для адаптеров New-NetIPAddress –InterfaceAlias "vEthernet (CSV01)" -IPAddress 192.168.3.2 -PrefixLength 24 -Confirm:$false New-NetIPAddress –InterfaceAlias "vEthernet (CSV02)" -IPAddress 192.168.3.3 -PrefixLength 24 -Confirm:$false
- Теперь мы должны утилизировать все доступные нам оффлоады. Например, я выкручиваю Jumbo Frames до 9K для всех типов трафика, кроме Management.
Тут без помощи сетевых инженеров не обойтись: потребуется настройка портов на сетевом оборудовании.
Set-NetAdapterAdvancedProperty -Name "NIC1" -DisplayName "Jumbo Packet" -DisplayValue 9014 Set-NetAdapterAdvancedProperty -Name "NIC2" -DisplayName "Jumbo Packet" -DisplayValue 9014 Set-NetAdapterAdvancedProperty -Name "vEthernet (CSV01)" -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes" Set-NetAdapterAdvancedProperty -Name "vEthernet (CSV02)" -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes" Set-NetAdapterAdvancedProperty -Name "vEthernet (LiveMigration01)" -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes" Set-NetAdapterAdvancedProperty -Name "vEthernet (LiveMigration02)" -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes"
Названия свойств сильно зависят от модели сетевой карты, так как это не статические фичи Windows Server, а фичи конкретной модели сетевой карты. Чтобы использовать эти фичи, нужно ОБЯЗАТЕЛЬНО ставить драйверы от производителя сетевой карты и ни в коем случае не использовать стандартный драйвер Windows. Иначе сразу после создания SET может отвалиться сеть по Management’у. Список всех свойств сетевой карты можно получить через командлет Get-NetAdapterAdvancedProperties.
- Проверим, что метрики сетевых интерфейсов равны:
Синхронизируем метрики интерфейсов и снизим приоритет интерфейсов CSV-трафика. В моем случае задавал так:
Set-NetIPInterface -InterfaceIndex 16 -InterfaceMetric 10000 Set-NetIPInterface -InterfaceIndex 3 -InterfaceMetric 10000 Set-NetIPInterface -InterfaceIndex 9 -InterfaceMetric 10500 Set-NetIPInterface -InterfaceIndex 6 -InterfaceMetric 10500
Это нужно, чтобы трафик равномерно распределялся между физическими портами на равных.
- Если карта поддерживает RDMA, то трафик живой миграции уместно перенести на нее. RDMA позволяет двум хостам обмениваться данными в их памяти без обращения к ОС хостов и без нагрузки на CPU. Поддержку RDMA на карте проверяем с помощью командлета Get-NetAdapterRdma.
Пример: что можно получить с помощью командлета. Скрин со statemigration.com.
При этом сетевые ворклоады машин лучше оставить на встроенном или внешнем адаптере без RDMA (но, опять же, эта тема дискуссионная).
- На сетевую производительность влияет расстояние до сокета процессора от конкретного порта и PCI-шины. Поэтому перейдем к маппингу виртуальных адаптеров и настройке Virtual Machine Queues (VMQ).
Маппинг необходим, чтобы трафик гарантированно выходил из определенного сетевого порта и не произошла ситуация, когда все сетевые нагрузки уходят в один случайный порт.
Set-VMNetworkAdapterTeamMapping -ManagementOS -PhysicalNetAdapterName "NIC1" -VMNetworkAdapterName "LiveMigration01" Set-VMNetworkAdapterTeamMapping -ManagementOS -PhysicalNetAdapterName "NIC2" -VMNetworkAdapterName "LiveMigration02" Set-VMNetworkAdapterTeamMapping -ManagementOS -PhysicalNetAdapterName "NIC1" -VMNetworkAdapterName "CSV01" Set-VMNetworkAdapterTeamMapping -ManagementOS -PhysicalNetAdapterName "NIC2" -VMNetworkAdapterName "CSV02"
- Настройка VMQ помогает учесть расположение на PCI-шине. По умолчанию, очереди обрабатываются нулевым ядром нулевого процессора. Это не очень хорошо: во-первых, мы его ОЧЕНЬ сильно греем, во-вторых, так мы просто не сможем выжать из сетевого порта больше 3 Гб. Это относится к трафику ВМ. Но у нас же другой трафик (SMB)! Значит, имеет смысл настроить RSS.
До Windows Server 2019 настройка VMQ была обязательна, пока не появился dVMMQ. Он автоматически балансирует трафик и перекидывает его с ядра на ядро, как только нагрузка доходит 90%. Так что на Windows Server 2019 сидеть и высчитывать ядра для VMQ не нужно.
Настраиваем так:
Set-NetAdapterRss -Name "NIC1" -BaseProcessorGroup 0 -BaseProcessorNumber 2 -MaxProcessors 8 -MaxProcessorNumber 16 Set-NetAdapterRss -Name "NIC2" -BaseProcessorGroup 0 -BaseProcessorNumber 16 -MaxProcessors 8 -MaxProcessorNumber 30
Посмотрим наглядно, как это работает. Предположим, у нас есть 2 процессора с 16 физическими ядрами. Это 32 логических ядра с учетом многопоточности. Открываем Excel и выписываем по порядку ядра от 0 до 31:
Для первого порта сетевого адаптера назначаем Base Processor Number 2. Для количества ядер берем степень двойки. В четвертой степени получим 16 – это значение задаем для MaxProcessorNumber.
BaseProcessor для второго адаптера тоже будет равен 16 (опять берем степень двойки). На картинке хорошо виден перехлест для обработки трафика на шестнадцатом ядре. Ситуация не критичная, так как нулевое ядро мы разгрузили и не используем для обработки Live Migration.
Через эти же командлеты можно задать и количество RSS-очередей (RSS Queues). Их количество зависит от конкретной модели сетевой карты, поэтому перед настройкой RSS Queues нужно изучить документацию к сетевой карте.
Настраиваем миграцию для кластеризованного сценария
Со стороны Failover Cluster дополнительно выкрутим настройки таймаутов кластера:
(Get-Cluster).SameSubnetDelay = 2000
(Get-Cluster).SameSubnetThreshold = 30
- SameSubnetDelay указывает, сколько раз в какое время мы посылаем хартбиты. По умолчанию он выставлен в 1 секунду.
Если узлы кластера находятся в одной сети, этого достаточно. Если они в разных сетях, то нужно настроить CrossSubnetDelay с теми же значениями.
- SameSubnetThreshold показывает, сколько хартбитов мы можем максимально пропустить. По дефолту это 5 хартбитов, максимум – 120. Мы поставим оптимальное значение – 30 хартбитов.
Для высоконагруженных машин важно выкрутить оба параметра. Если не уложимся, то с большой вероятностью такая машинка не переедет.
Чтобы трафик живой миграции использовался только на определенной сети, также оставим отдельную сеть в настройках Failover Cluster:
Собственно, это и есть минимальный джентльменский набор настроек для корректной работы Live Migration в Hyper-V.