Рекомендации по запуску Linux в Hyper-V

Область применения: Windows Server 2022, Azure Stack HCI версии 20H2; Windows Server 2019, Windows Server 2016, Hyper-V Server 2016, Windows Server 2012 R2, Hyper-V Server 2012 R2, Windows Server 2012, Hyper-V Server 2012, Windows Server 2008 R2, Windows 10, Windows 8.1, Windows 8, Windows 7.1, Windows 7

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

Настройка файловой системы Linux в динамических VHDX-файлах

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

  • При создании VHDX используйте 1 МБ BlockSizeBytes (по умолчанию 32 МБ) в PowerShell, например:
PS > New-VHD -Path C:\MyVHDs\test.vhdx -SizeBytes 127GB -Dynamic -BlockSizeBytes 1MB
  • Формат ext4 предпочтителен для ext3, так как ext4 эффективнее, чем ext3 при использовании с динамическими VHDX-файлами.

  • При создании файловой системы укажите количество групп в 4096, например:

# mkfs.ext4 -G 4096 /dev/sdX1

Время ожидания меню Grub в поколении 2 Виртуальные машины

Из-за устаревшего оборудования, удаленного из эмуляции в виртуальных машинах поколения 2, таймер меню grub отсчитывается слишком быстро, чтобы отображалось меню grub, немедленно загружая запись по умолчанию. Пока grub не будет исправлен для использования таймера, поддерживаемого EFI, измените /boot/grub.conf, /etc/default/grub или эквивалентно значению timeout=100000 вместо значения по умолчанию timeout=5.

Загрузка PxE на Виртуальные машины поколения 2

Так как таймер PIT отсутствует в Виртуальные машины поколения 2, сетевые подключения к серверу PxE TFTP могут быть преждевременно завершены и не позволяют загрузчику считывать конфигурацию Grub и загружать ядро с сервера.

В RHEL 6.x устаревший загрузчик EFI версии 0.97 EFI можно использовать вместо grub2, как описано здесь: https://access.redhat.com/documentation/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-netboot-pxe-config-efi.html

В дистрибутивах Linux, отличных от RHEL 6.x, можно выполнить аналогичные действия, чтобы настроить grub версии 0.97 для загрузки ядер Linux с сервера PxE.

Кроме того, на клавиатуре RHEL/CentOS 6.6 и ввод мыши не будет работать с ядром предварительной установки, которое предотвращает указание параметров установки в меню. Последовательная консоль должна быть настроена, чтобы разрешить выбор параметров установки.

  • В файле efidefault на сервере PxE добавьте следующий параметр ядра console=ttyS1.

  • На виртуальной машине в Hyper-V настройте COM-порт с помощью этого командлета PowerShell:

Set-VMComPort -VMName <Name> -Number 2 -Path \\.\pipe\dbg1

Указание файла начального запуска для предварительной установки ядра также позволит избежать необходимости ввода клавиатуры и мыши во время установки.

Использование статических MAC-адресов с кластеризация отработки отказа

Виртуальные машины Linux, которые будут развернуты с помощью кластеризация отработки отказа, должны быть настроены со статическим адресом управления доступом к мультимедиа (MAC) для каждого виртуального сетевого адаптера. В некоторых версиях Linux конфигурация сети может быть потеряна после отработки отказа, так как новый MAC-адрес назначается виртуальному сетевому адаптеру. Чтобы избежать потери конфигурации сети, убедитесь, что каждый виртуальный сетевой адаптер имеет статический MAC-адрес. Mac-адрес можно настроить, изменив параметры виртуальной машины в диспетчере Hyper-V или диспетчере отказоустойчивых кластеров.

Использование сетевых адаптеров Hyper-V, а не устаревших сетевых адаптеров

Настройте и используйте виртуальный адаптер Ethernet, который является сетевой карта для Hyper-V с повышенной производительностью. Если к виртуальной машине подключены устаревшие и сетевые адаптеры Hyper-V, имена сети в выходных данных ifconfig могут отображать случайные значения, такие как _tmp12000801310. Чтобы избежать этой проблемы, удалите все устаревшие сетевые адаптеры при использовании сетевых адаптеров Hyper-V на виртуальной машине Linux.

Использование планировщика ввода-вывода для повышения производительности операций ввода-вывода на диске

Ядро Linux предлагает два набора планировщиков дисковых операций ввода-вывода для переупорядочения запросов. Один набор предназначен для более старой подсистемы blk, и один набор предназначен для более новой подсистемы blk-mq. В любом случае при использовании современных твердотельных дисков рекомендуется использовать планировщик, который передает решения о планировании в базовый гипервизор Hyper-V. Для ядер Linux с помощью подсистемы blk это планировщик noop. Для ядер Linux с помощью подсистемы blk-mq это планировщик none.

Для определенного диска доступные планировщики можно увидеть в этом расположении файловой системы: /sys/class/block/queue/<diskname>scheduler с выбранным планировщиком в квадратных скобках. Планировщик можно изменить, написав в это расположение файловой системы. Изменение должно быть добавлено в скрипт инициализации, чтобы сохраниться во время перезагрузки. Дополнительные сведения см. в документации по дистрибутиву Linux.

NUMA

Версии ядра Linux ниже 2.6.37 не поддерживают NUMA в Hyper-V с виртуальными машинами большего размера. Эта проблема влияет в основном на дистрибутивы более ранних версий, в которых используется исходное ядро Red Hat 2.6.32, и была исправлена в Red Hat Enterprise Linux (RHEL) 6.6 (kernel-2.6.32-504). В системах под управлением модифицированных ядер старше версии 2.6.37 или ядер RHEL старше 2.6.32-504 в командной строке ядра необходимо задать параметр загрузки numa=off в файле grub.conf. Дополнительные сведения см. в статье базы знаний Red Hat 436883.

Резервировать больше памяти для kdump

Если ядро записи дампа заканчивается паникой при загрузке, зарезервировать больше памяти для ядра. Например, измените параметр crashkernel=384M-:128M на crashkernel=384M-:256M в файле конфигурации Ubuntu grub.

Сжатие VHDX или расширение VHDX-файлов может привести к ошибкам таблиц секций GPT

Hyper-V позволяет сжимать файлы виртуального диска (VHDX) без учета структуры данных секции, тома или файловой системы, которые могут существовать на диске. Если VHDX сократился до конца виртуального жесткого диска, данные могут быть потеряны, что секция может быть повреждена или недопустимые данные могут быть возвращены при чтении секции.

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

Дополнительные справочники