Меню

настройка hyper v для ubuntu

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

Установка Ubuntu Server на Hyper-V

Несколько дней назад нам потребовалось развернуть сервер на Ubuntu в виртуальной среде. Так как на выделенном под проект сервере уже стоял Windows Server 2008, выбор пал на Hyper-V, бесплатный гипервизор от Microsoft. В тоже время установка имеет ряд особенностей, о которых мы и поговорим в этой статье.

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

Итак, у нас имеется Windows Server 2008 SP2 c добавленной ролью Hyper-V и Ubuntu Server 10.04.1 LTS. В Hyper-V создаем стандартную виртуальную машину и начинаем установку системы с образа или диска. Одна неприятная особенность — в текстовом режиме перерисовка каждого экрана занимает 15-20 секунд, неприятно, но на процесс установки это никак не влияет.

Первое серьезное предупреждение в процессе установки сообщит вам, что установщик не смог обнаружить сетевые интерфейсы. Это нормально, по умолчанию Ubuntu не поддерживает виртуальное оборудование Hyper-V, спокойно продолжаем установку.

При установке откажитесь от автоматической установки обновлений, это очень важный момент, почему — поясним ниже.

Установив систему следует включить загрузку необходимых для полноценной работы в Hyper-V модулей, которые входят в ядро системы, но не включены. Учитывая что сети нет, и поставить даже mc вы не сможете, будем довольствоваться простым редактором nano. Для включения модулей необходимо отредактировать /etc/initramfs-tools/modules

В открывшийся файл добавляем следующие строки:

Выходим по Ctrl+X утвердительно отвечая на предложение сохранить изменения.

За что отвечают и для чего нужны эти модули?

  • hv_vmbus — шина Hyper-V, основной модуль
  • hv_storvsc — поддержка виртуального хранилища (виртуальный жесткий диск)
  • hv_blkvsc — поддержка блочных устройств, требуется для хранилища.
  • hv_netvsc — поддержка синтетической сетевой карты
  • hv_utils — поддержка расширенных возможностей Hyper-V, таких как управление питанием гостевой системы и т.п.

Теперь обновим образ начальной загрузки системы (initramfs):

Изменения будут применены при следующей загрузке системы, а пока настроим сетевые интерфейсы, для этого отредактируем /etc/network/interfaces:

Добавим интерфейс eth0 и настроим его, например у нас это выглядит так:

Также на забудьте указать DNS сервера в /etc/resolv.conf

нашем случае для DNS серверов 192.168.0.100 и 192.168.0.101 и домена example.com записи будут выглядеть так:

Сохраняем изменения и перезагружаемся:

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

На этом нашу статью можно было бы и закончить, если бы не один неприятный момент: если вы попытаетесь обновить систему, то при обновлении получите ошибку и система больше не загрузится. Чтобы избежать этого, отключите все модули initramfs, кроме hv_vmbus и hv_netvsc (не забудьте перезагрузиться). После обновления включите модули обратно. В любом случае перед обновлением и прочим потенциально опасными операциями стоит сделать снимок системы, что позволит в любой момент времени быстро вернуться к ее текущему состоянию.

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

В заключение стоит отметить, что установка Ubuntu Server на Hyper-V, хоть и требует некоторых дополнительных действий, довольно проста и не вызывает проблем. Работа системы в виртуальной среде не вызывает нареканий, стабильна и может быть рекомендована к применению в производственных условиях.

источник

Рекомендации по запуску Linux в Hyper-V Best Practices for running Linux on Hyper-V

Область применения: 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 Applies To: 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. This topic contains a list of recommendations for running Linux virtual machine on Hyper-V.

Читайте также:  psp как вернуть до заводских настроек

Настройка файловых систем Linux в динамических VHDX-файлах Tuning Linux File Systems on Dynamic VHDX Files

Некоторые файловые системы Linux могут потреблять значительный объем свободного места на диске, даже если файловая система в основном пуста. Some Linux file systems may consume significant amounts of real disk space even when the file system is mostly empty. Чтобы уменьшить объем используемого дискового пространства в динамических VHDX-файлах, учитывайте следующие рекомендации. To reduce the amount of real disk space usage of dynamic VHDX files, consider the following recommendations:

  • При создании VHDX используйте 1 МБ Блокксизебитес (из 32 МБ по умолчанию) в PowerShell, например: When creating the VHDX, use 1MB BlockSizeBytes (from the default 32MB) in PowerShell, for example:

    Формат ext4 является предпочтительным для ext3, так как ext4 больше пространства, чем ext3 при использовании с динамическими VHDX-файлами. The ext4 format is preferred to ext3 because ext4 is more space efficient than ext3 when used with dynamic VHDX files.

    При создании файловой системы укажите число групп 4096, например: When creating the filesystem specify the number of groups to be 4096, for example:

    Время ожидания меню GRUB на виртуальных машинах поколения 2 Grub Menu Timeout on Generation 2 Virtual Machines

    Из-за того, что устаревшее оборудование удаляется из эмуляции на виртуальных машинах поколения 2, для отображения меню GRUB слишком быстро вычисляется таймер обратного отсчета, и сразу же загружается запись по умолчанию. Because of legacy hardware being removed from emulation in Generation 2 virtual machines, the grub menu countdown timer counts down too quickly for the grub menu to be displayed, immediately loading the default entry. Пока GRUB не будет использоваться для использования таймера, поддерживаемого EFI, измените /Бут/груб/груб.конф,/т.п./default/grubили эквивалентным параметром «Timeout = 100000» вместо значения по умолчанию «timeout = 5». Until grub is fixed to use the EFI-supported timer, modify /boot/grub/grub.conf, /etc/default/grub, or equivalent to have «timeout=100000» instead of the default «timeout=5».

    Загрузка PxE на виртуальных машинах поколения 2 PxE Boot on Generation 2 Virtual Machines

    Так как в виртуальных машинах поколения 2 отсутствует таймер «СМОЛой», сетевые подключения к PxE-серверу TFTP можно преждевременно завершить и предотвратить считывание конфигурации GRUB и загрузку ядра с сервера. Because the PIT timer is not present in Generation 2 Virtual Machines, network connections to the PxE TFTP server can be prematurely terminated and prevent the bootloader from reading Grub configuration and loading a kernel from the server.

    В дистрибутивах Linux, отличных от RHEL 6. x, можно выполнить аналогичные действия, чтобы настроить GRUB v 0.97 для загрузки ядер Linux с PxE-сервера. On Linux distributions other than RHEL 6.x, similar steps can be followed to configure grub v0.97 to load Linux kernels from a PxE server.

    Кроме того, при вводе с помощью клавиатуры и мыши RHEL/CentOS 6,6 не будет работать с предварительно установленным ядром, что не позволит указать параметры установки в меню. Additionally, on RHEL/CentOS 6.6 keyboard and mouse input will not work with the pre-install kernel which prevents specifying installation options in the menu. Чтобы разрешить выбор параметров установки, должна быть настроена последовательная консоль. A serial console must be configured to allow choosing installation options.

    В файле ефидефаулт на PxE-сервере добавьте следующий параметр ядра «console = ttyS1» . In the efidefault file on the PxE server, add the following kernel parameter «console=ttyS1»

    На виртуальной машине в Hyper-V настройте COM-порт с помощью этого командлета PowerShell: On the VM in Hyper-V, setup a COM port using this PowerShell cmdlet:

    Указание файла Kickstart для предварительно установленного ядра также позволит избежать необходимости ввода с клавиатуры и мыши во время установки. Specifying a kickstart file to the pre-install kernel would also avoid the need for keyboard and mouse input during installation.

    Использование статических MAC-адресов с отказоустойчивой кластеризацией Use static MAC addresses with failover clustering

    Виртуальные машины Linux, которые будут развернуты с помощью отказоустойчивой кластеризации, должны быть настроены со статическим MAC-адресом для каждого виртуального сетевого адаптера. Linux virtual machines that will be deployed using failover clustering should be configured with a static media access control (MAC) address for each virtual network adapter. В некоторых версиях Linux сетевая конфигурация может быть потеряна после отработки отказа, поскольку виртуальному сетевому адаптеру назначается новый MAC-адрес. In some versions of Linux, the networking configuration may be lost after failover because a new MAC address is assigned to the virtual network adapter. Чтобы избежать потери конфигурации сети, убедитесь, что у каждого виртуального сетевого адаптера есть статический MAC-адрес. To avoid losing the network configuration, ensure that each virtual network adapter has a static MAC address. Вы можете настроить MAC-адрес, изменив параметры виртуальной машины в диспетчере Hyper-V или диспетчер отказоустойчивости кластеров. You can configure the MAC address by editing the settings of the virtual machine in Hyper-V Manager or Failover Cluster Manager.

    Использование сетевых адаптеров, относящихся к Hyper-V, а не устаревших сетевых адаптеров Use Hyper-V-specific network adapters, not the legacy network adapter

    Настройте и используйте виртуальный адаптер Ethernet, который является сетевой картой Hyper-V с повышенной производительностью. Configure and use the virtual Ethernet adapter, which is a Hyper-V-specific network card with enhanced performance. Если к виртуальной машине подключены как устаревшие, так и сетевые адаптеры, относящиеся к Hyper-V, сетевые имена в выходных данных команды ifconfig-a могут показывать случайные значения, такие как _tmp12000801310. If both legacy and Hyper-V-specific network adapters are attached to a virtual machine, the network names in the output of ifconfig -a might show random values such as _tmp12000801310. Чтобы избежать этой проблемы, удалите все устаревшие сетевые адаптеры при использовании сетевых адаптеров, связанных с Hyper-V, в виртуальной машине Linux. To avoid this issue, remove all legacy network adapters when using Hyper-V-specific network adapters in a Linux virtual machine.

    Для повышения производительности дискового ввода-вывода используйте планировщик заданий (NOOP/None) Use I/O scheduler noop/none for better disk I/O performance

    Ядро Linux предлагает два набора планировщиков дискового ввода-вывода для переупорядочивания запросов. The Linux kernel offers two sets of disk I/O schedulers to reorder requests. Один набор предназначен для более старой подсистемы «BLK», а один — для новой подсистемы «BLK-MQ». One set is for the older ‘blk’ subsystem and one set is for the newer ‘blk-mq’ subsystem. В любом случае с современными твердотельными дисками рекомендуется использовать планировщик, который передает решения о планировании в базовый гипервизор Hyper-V. In either case, with today’s solid state disks it is recommended to use a scheduler that passes the scheduling decisions to the underlying Hyper-V hypervisor. Для ядер Linux, использующих подсистему «BLK», это планировщик «NOOP». For Linux kernels using the ‘blk’ subsystem, this is the “noop” scheduler. Для ядер Linux, использующих подсистему «BLK-MQ», это планировщик «None». For Linux kernels using the ‘blk-mq’ subsystem, this is the “none” scheduler.

    Для конкретного диска доступные планировщики могут отображаться в этой папке файловой системы:/СИС/класс/блокк/ /куеуе/счедулер с выбранным планировщиком в квадратных скобках. For a particular disk, the available schedulers can be seen at this file system location: /sys/class/block/ /queue/scheduler, with the currently selected scheduler in square brackets. Планировщик можно изменить, записав в это расположение файловой системы. You can change the scheduler by writing to this file system location. Чтобы сохранить изменения между перезагрузками, необходимо добавить это изменение в скрипт инициализации. The change must be added to an initialization script in order to persist across reboots. Дополнительные сведения см. в документации по дистрибутив Linux. Consult your Linux distro documentation for details.

    NUMA NUMA

    Версии ядра Linux ниже 2.6.37 не поддерживают NUMA в Hyper-V с виртуальными машинами большего размера. Linux kernel versions earlier than 2.6.37 don’t support NUMA on Hyper-V with larger VM sizes. Эта проблема влияет в основном на дистрибутивы более ранних версий, в которых используется исходное ядро Red Hat 2.6.32, и была исправлена в Red Hat Enterprise Linux (RHEL) 6.6 (kernel-2.6.32-504). This issue primarily impacts older distributions using the upstream Red Hat 2.6.32 kernel, and was fixed in Red Hat Enterprise Linux (RHEL) 6.6 (kernel-2.6.32-504). В системах под управлением модифицированных ядер старше версии 2.6.37 или ядер RHEL старше 2.6.32-504 в командной строке ядра необходимо задать параметр загрузки numa=off в файле grub.conf. Systems running custom kernels older than 2.6.37, or RHEL-based kernels older than 2.6.32-504 must set the boot parameter numa=off on the kernel command line in grub.conf. Дополнительные сведения см. в статье базы знаний Red Hat 436883. For more information, see Red Hat KB 436883.

    Зарезервируйте больше памяти для кдумп Reserve more memory for kdump

    Если ядро записи дампа завершается с тревогой при загрузке, зарезервируйте больше памяти для ядра. In case the dump capture kernel ends up with a panic on boot, reserve more memory for the kernel. Например, измените параметр crashkernel = 384M-: 128M на crashkernel = 384M-: 256M в файле конфигурации Ubuntu GRUB. For example, change the parameter crashkernel=384M-:128M to crashkernel=384M-:256M in the Ubuntu grub configuration file.

    Сжатие VHDX-файлов или расширения VHD и VHDX может привести к ошибочным таблицам разделов GPT Shrinking VHDX or expanding VHD and VHDX files can result in erroneous GPT partition tables

    Hyper-V позволяет сжимать файлы виртуального диска (VHDX) без учета разделов, томов или структур данных файловой системы, которые могут существовать на диске. Hyper-V allows shrinking virtual disk (VHDX) files without regard for any partition, volume, or file system data structures that may exist on the disk. Если VHDX-файл сжимается до конца раздела, то данные могут быть потеряны, при этом Секция может быть повреждена, а при чтении секции могут возвращаться недопустимые данные. If the VHDX is shrunk to where the end of the VHDX comes before the end of a partition, data can be lost, that partition can become corrupted, or invalid data can be returned when the partition is read.

    После изменения размера VHD или VHDX администраторы должны использовать служебную программу, например fdisk, или частично обновить структуру разделов, томов и файловой системы, чтобы отразить изменение размера диска. After resizing a VHD or VHDX, administrators should use a utility like fdisk or parted to update the partition, volume, and file system structures to reflect the change in the size of the disk. Сжатие или увеличение размера VHD или VHDX с таблицей разделов GUID (GPT) вызовет предупреждение, если для проверки макета раздела используется средство управления секциями, и администратору будет выведено предупреждение об исправлении первого и дополнительного заголовков GPT. Shrinking or expanding the size of a VHD or VHDX that has a GUID Partition Table (GPT) will cause a warning when a partition management tool is used to check the partition layout, and the administrator will be warned to fix the first and secondary GPT headers. Этот ручной этап можно выполнить без потери данных. This manual step is safe to perform without data loss.

    источник