Следующая новость
Предыдущая новость

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux

13.12.2018 16:13
Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux

Содержание статьи

  • Технологии виртуализации и требования к железу
  • Установка и настройка гипервизора
  • Logical Volume Manager
  • Создание виртуальной машины и управление ей
  • Расширение ресурсов гипервизора
  • Расширение ресурсов виртуальной машины
  • Расширяем диски
  • Миграция виртуальной машины на другой гипервизор

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

Мы пройдемся по всем тонкостям управления гипервизором, включая консольные и GUI-утилиты, расширение ресурсов и миграцию виртуальных машин на другой гипервизор.

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

Системные администраторы, работающие вплотную с виртуализацией на предприятии, мастера и виртуозы своего дела, поделились на два лагеря. Одни — приверженцы высокотехнологичной, но безумно дорогой VMware для Windows. Другие — любители open source и бесплатных решений на основе Linux VM. Можно долго перечислять преимущества VMware, но здесь мы остановимся на виртуализации, основанной на Linux VM.

Технологии виртуализации и требования к железу

Сейчас есть две популярные технологии виртуализации: Intel VT и AMD-V. В Intel VT (от Intel Virtualization Technology) реализована виртуализация режима реальной адресации; соответствующая аппаратная виртуализация ввода-вывода называется VT-d. Часто эта технология обозначается аббревиатурой VMX (Virtual Machine eXtension). В AMD создали свои расширения виртуализации и первоначально называли их AMD Secure Virtual Machine (SVM). Когда технология добралась до рынка, она стала называться AMD Virtualization (сокращенно AMD-V).

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

WWW

Вот полезный список процессоров с поддержкой технологии виртуализации.

Среди других требований гипервизоров — поддержка аппаратного RAID (1, 5, 10), которая повышает отказоустойчивость гипервизора при выходе жестких дисков из строя. Если поддержки аппаратного RAID нет, то можно использовать программный на крайний случай. Но RAID — это мастхэв!

Решение, описанное в этой статье, несет на себе три виртуальные машины и успешно работает на минимальных требованиях: Core 2 Quad Q6600 / 8 Гбайт DDR2 PC6400 / 2 × 250 Гбайт HDD SATA (хардверный RAID 1).

Установка и настройка гипервизора

Я покажу, как настраивать гипервизор, на примере Debian Linux 9.6.0 — Х64-86. Ты можешь использовать любой дистрибутив Linux, который тебе по душе.

Когда ты определишься с выбором железа и его наконец-то привезут, придет время ставить гипервизор. При установке ОС все делаем, как обычно, за исключением разметки дисков. Неопытные администраторы часто выбирают опцию «Автоматически разбить все дисковое пространство без использования LVM». Тогда все данные будут записаны на один том, что нехорошо по нескольким причинам. Во-первых, если жесткий диск выйдет из строя, ты потеряешь все данные. Во-вторых, изменение файловой системы доставит массу хлопот.

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

Logical Volume Manager

Менеджер логических томов (LVM) — это подсистема, доступная в Linux и OS/2, построенная поверх Device Mapper. Ее задача — представление разных областей с одного жесткого диска или областей с нескольких жестких дисков в виде одного логического тома. LVM создает из физических томов (PV — Phisical Volumes) логическую группу томов (VG — Volumes Group). Она, в свою очередь, состоит из логических томов (LV — Logical Volume).

Сейчас во всех дистрибутивах Linux с ядром 2.6 и выше есть поддержка LVM2. Для использования LVM2 на ОС с ядром 2.4 надо устанавливать патч.

После того как система обнаружила жесткие накопители, запустится менеджер разбивки жестких дисков. Выбираем пункт Guided — use entire disk and set up LVM.

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Guided — use entire disk and set up LVM

Теперь выбираем диск, на который будет установлена наша группа томов.

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Выбор диска для LVM

Система предложит варианты разметки носителя. Выбираем «Записать все файлы на один раздел» и идем дальше.

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Записать все файлы на один раздел

Система оповестит о том, что необходимо сохранить созданные изменения при разметке. Смело соглашаемся, выбрав Yes.

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Запись сохраненных изменений при разметке

После сохранения изменений мы получим одну логическую группу и два тома в ней. Первый — это корневой раздел, а второй — это файл подкачки. Тут многие зададут вопрос: а почему не выбрать разметку вручную и не создать LVM самому?

Я отвечу просто: при создании логической группы VG загрузочный раздел boot не пишется в VG, а создается отдельным разделом с файловой системой ext2. Если этого не учесть, то загрузочный том окажется в логической группе. Это обречет тебя на мучения и страдания при восстановлении загрузочного тома. Именно поэтому загрузочный раздел отправляется на том без LVM.

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Состояние дисков после разметки

Переходим к конфигурации логической группы для гипервизора. Выбираем пункт «Конфигурация менеджера логических томов».

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Конфигурация менеджера логических томов

Система оповестит о том, что все изменения будут записаны на диск. Соглашаемся.

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Запись сохраненных изменений при разметке

Далее в менеджере логических томов удаляем сначала созданные логические тома vg-<hostname>_root и vg-<hostname>_swap. А потом и саму логическую группу vg-<hostname>.

Создадим новую группу — к примеру, назовем ее vg_sata.

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Создание новой логической группы

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux

INFO

В серверах используются носители SATA, SSD, SAS, SCSI, NVMe. Хорошим тоном при создании логической группы будет указывать не имя хоста, а тип носителей, которые используются в группе. Советую логическую группу назвать так: vg_sata, vg_ssd, vg_nvme и так далее. Это поможет понять, из каких носителей построена логическая группа.

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Указание имени для новой логической группы

Далее выберем место на физическом томе, где будет размещена новая логическая группа. В данном случае спутать физический том не получится: загрузочный раздел помечен файловой системой ext2.

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Выбор физического тома для размещения логической группы

Создаем наш первый логический том. Это будет том для корневого раздела операционной системы. Выбираем пункт «Создать логический том».

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Создание логического тома

Выбираем группу для нового логического тома. У нас она всего одна.

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Выбор логической группы для нового тома

Присваиваем имя логическому тому. Правильнее всего при назначении имени будет использовать префикс в виде названия логической группы — например, vg_sata_root, vg_ssd_root и так далее.

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Задаем название нового тома

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

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Задаем название нового тома

По аналогии с примером выше создаем следующие логические тома:

  • vg_sata_home — 20 Гбайт под каталоги пользователей;
  • vg_sata_opt — 10 Гбайт для установки прикладного ПО;
  • vg_sata_var — 10 Гбайт для часто меняющихся данных, к примеру логов системы и других программ;
  • vg_sata_tmp — 5 Гбайт для временных данных, если объем временных данных велик, можно сделать и больше. В нашем примере этот раздел не создавался за ненадобностью;
  • vg_sata_swap — равен объему оперативной памяти. Это раздел для свопа, и создаем мы его для подстраховки — на случай, если закончится оперативная память на гипервизоре.

После создания всех томов завершаем работу менеджера.

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Завершение работы менеджера логических томов

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

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Состояние логической группы после создания томов

Создаем одноименный раздел под каждый логический том.

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Состояние логической группы после создания томов

Сохраняем и записываем проделанные изменения.

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Состояние логической группы после создания томов

После сохранения изменений разметки диска начнут ставиться базовые компоненты системы, а затем будет предложено выбрать и установить дополнительные компоненты системы. Из всех компонентов нам понадобится ssh-server и стандартные системные утилиты.

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Выбор дополнительных компонентов

После установки будет сформирован и записан на диск загрузчик GRUB. Устанавливаем его на тот физический диск, где сохранен загрузочный раздел, то есть /dev/sda.

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Предложение записать загрузчик на диск
Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Выбор диска для записи загрузчика

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

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Запись загрузчика
Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux
Сообщение об окончании установки системы

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

$ sudo apt-get install -y sudo htop screen net-tools dnsutils bind9utils sysstat telnet traceroute tcpdump wget curl gcc rsync 

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

$ sudo nano /etc/ssh/sshd_config $ sudo systemctl restart sshd; sudo systemctl status sshd 

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

$ sudo pvscan $ sudo lvs 

Устанавливаем компоненты виртуализации и утилиты для создания сетевого моста на интерфейсе гипервизора.

$ sudo apt-get update; apt-get upgrade -y $ sudo apt install qemu-kvm libvirt-bin libvirt-dev libvirt-daemon-system libvirt-clients virtinst bridge-utils 

После установки настраиваем сетевой мост на гипервизоре. Комментируем настройки сетевого интерфейса и задаем новые:

$ sudo nano /etc/network/interfaces 

Содержимое будет примерно таким:

auto br0 iface br0 inet static address 192.168.1.61 netmask 255.255.255.192 gateway 192.168.1.1 broadcast 192.168.0.61 dns-nameserver 127.0.0.1 dns-search xakep.ru bridge_ports enp2s0 bridge_stp off bridge_waitport 0 bridge_fd 0 

Добавляем нашего пользователя, под которым будем работать с гипервизором, в группы libvirt и kvm (для RHEL группа называется qemu).

$ sudo gpasswd -a iryzhevtsev kvm $ sudo gpasswd -a iryzhevtsev libvirt 

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

$ sudo virsh pool-list $ sudo virsh pool-define-as vg_sata logical --target /dev/vg_sata $ sudo virsh pool-start vg_sata; sudo virsh pool-autostart vg_sata $ sudo virsh pool-list 

Резиновый гипервизор. Используем логические группы для виртуализации QEMU-KVM Linux

INFO

Для нормальной работы группы LVM с QEMU-KVM требуется сначала активировать логическую группу через консоль virsh.

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

$ sudo wget https://mirror.yandex.ru/debian-cd/9.5.0/amd64/iso-cd/debian-9.5.0-amd64-netinst.iso $ sudo mv debian-9.5.0-amd64-netinst.iso /var/lib/libvirt/images/; ls -al /var/lib/libvirt/images/ 

Чтобы подключаться к виртуальным машинам по VNC, отредактируем файл /etc/libvirt/libvirtd.conf:

$ sudo grep "listen_addr = " /etc/libvirt/libvirtd.conf 

Раскомментируем и изменим строчку listen_addr = "0.0.0.0". Сохраняем файл, перезагружаем гипервизор и проверяем, все ли службы запустились и работают.

Продолжение доступно только подписчикам

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

Подпишись на «Хакер» по выгодной цене!

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

1 год

7190 р.

Экономия 1400 рублей!

1 месяц

720 р.

25-30 статей в месяц

Уже подписан?

Источник

Последние новости