Выпуск WordPress 5.3 улучшает и расширяет представленный в WordPress 5.0 редактор блоков новым блоком, более интуитивным взаимодействием и улучшенной доступностью. Новые функции в редакторе […]
После девяти месяцев разработки доступен мультимедиа-пакет FFmpeg 4.2, включающий набор приложений и коллекцию библиотек для операций над различными мультимедиа-форматами (запись, преобразование и […]
Linux Mint 19.2 является выпуском с долгосрочной поддержкой, который будет поддерживаться до 2023 года. Он поставляется с обновленным программным обеспечением и содержит доработки и множество новых […]
Представлен релиз дистрибутива Linux Mint 19.2, второго обновления ветки Linux Mint 19.x, формируемой на пакетной базе Ubuntu 18.04 LTS и поддерживаемой до 2023 года. Дистрибутив полностью совместим […]
Доступны новые сервисные релизы BIND, которые содержат исправления ошибок и улучшения функций. Новые выпуски могут быть скачано со страницы загрузок на сайте разработчика: […]
Exim – агент передачи сообщений (MTA), разработанный в Кембриджском университете для использования в системах Unix, подключенных к Интернету. Он находится в свободном доступе в соответствии с […]
После почти двух лет разработки представлен релиз ZFS on Linux 0.8.0, реализации файловой системы ZFS, оформленной в виде модуля для ядра Linux. Работа модуля проверена с ядрами Linux c 2.6.32 по […]
Комитет IETF (Internet Engineering Task Force), занимающийся развитием протоколов и архитектуры интернета, завершил формирование RFC для протокола ACME (Automatic Certificate Management Environment) […]
Некоммерческий удостоверяющий центр Let’s Encrypt, контролируемый сообществом и предоставляющий сертификаты безвозмездно всем желающим, подвёл итоги прошедшего года и рассказал о планах на 2019 год. […]
KVM (виртуальная машина на основе ядра или Kernel-based Virtual) — бесплатное программное обеспечение для виртуализации с открытым исходным кодом. Вы можете создавать несколько виртуальных машин (VM), каждая виртуальная машина имеет свое собственное виртуальное оборудование, такое как диск, процессор, оперативная память и т. д. Он был включен в основную часть ядра Linux в версии 2.6.20 ядра.
Если вы ищете альтернативу VirtualBox , мы настоятельно рекомендуем использовать KVM. Мы также лично используем это удивительное программное обеспечение для виртуализации.
Установка KVM Ubuntu 17.04
Для установки KVM у вас должны быть следующие предварительные заготовки.
- Включите виртуализацию в системном BIOS.
- Проверьте системный CPU, если он поддерживает виртуализацию. Выполните приведенную ниже команду.
egrep — c ‘(vmx|svm)’ / proc / cpuinfo
Когда вы получаете вывод из вышеприведенной команды либо 1, либо более, это означает, что процессор поддерживает виртуализацию иначе 0 или менее означает, что она не поддерживает.
3. Проверьте архитектуру Ubuntu 16.04 LTS, выполнив одну команду i.e
X86_64 представляет собой 64-битное ядро.
I386, i486, i586 или i686 представляют собой 32-битное ядро.
32-разрядная ОС ограничена 2 ГБ ОЗУ максимально для данной виртуальной машины.
32-разрядное ядро будет размещать только 32-битное гостевое ядро, тогда как в 64-битном ядре могут быть как 32-битные, так и 64-разрядные гостевые O.S.
Выполните шаги для установки KVM на Ubuntu
В этом разделе мы запишем шаги для установки KVM. В нашем предыдущем посте мы научились . Возможно, это также вам будет интересно.
1. Установка KVM Ubuntu 17.04 и других зависимых пакетов
В Ubuntu 17.04 LTS вы можете использовать команду apt или apt-get both. Здесь не будет различий в пакетах, установленных с помощью команды apt или apt-get, поэтому вы здесь хороши.
sudo apt update
sudo apt install qemu — kvm libvirt — bin bridge — utils
2. Узнайте о новых пользователях и группе для программного обеспечения KVM
После установки пакетов некоторые добавления будут происходить в количестве пользователей и групп.
(A) Создаются два пользователя.
— libvirt-qemu
— libvirt-dnsmasq
sharad@linuxworld :~ $ tail — 2 / etc / passwd
libvirt — qemu : x : 64055 : 129 : Libvirt Qemu ,:/ var / lib / libvirt : /bin/ false
libvirt — dnsmasq : x : 121 : 130 : Libvirt Dnsmasq ,:/ var / lib / libvirt / dnsmasq : /bin/ false
s harad@linuxworld :~ $
B) будут созданы две группы.
— kvm
— libvirtd
sharad@linuxworld :~ $ tail — 2 / etc / group
kvm : x : 129 :
libvirtd : x : 130 : sharad
sharad@linuxworld :~ $
Возможно, вы заметили, что используемый так называемый «шарад» является членом группы «libvirtd». Это означает, что этот пользователь может использовать KVM.
3. Проверьте установку KVM
Это довольно просто проверить установку KVM. Запустите команду —
virsh - c qemu : ///system list
В первый раз он покажет ошибку.
error : failed to connect to the hypervisor
error : Failed to connect socket to ‘/var/run/libvirt/libvirt-sock’ : Permission denied
sharad@linuxworld :~ $
Чтобы решить эту проблему, вы должны выйти и войти в систему на своем рабочем столе. Указывает, что текущий пользователь должен повторно войти в систему.
После входа в систему повторно запустите команду. На этот раз вы должны получить результат, как указано ниже. Он пуст, потому что не создается виртуальная машина.
sharad@linuxworld :~ $ virsh — c qemu : ///system list
Id Name State
—————————————————-
sharad@linuxworld :~ $
4. Установите Диспетчер виртуальных машин
Здесь мы используем Virtual Machine Manager, который представляет собой настольное приложение для управления виртуальными машинами KVM через libvirt.
Запустите эту команду для установки Диспетчера виртуальных машин.
sudo apt install virt — manager
Вы можете открыть Диспетчер виртуальных машин, введя его в Dash Home.Щелкните значок, он откроет приложение.
Чтобы открыть диспетчер виртуальных машин через командную строку, введите —
virt — manager
Ранее, когда мы установили KVM в Ubuntu 14.04 LTS Desktop, мы столкнулись с проблемой при создании первой виртуальной машины, но мы ее очень легко решили. В Ubuntu 16.04 LTS Desktop мы не обнаружили такой проблемы.
Если у Вас есть вопросы по теме «Установка KVM Ubuntu 17.04» - пишите их нам в форме для комментариев. Мы поможем вам разобраться в вашем вопросе намного быстрее.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter .
Подготовка сервера
Проверяем наличие поддержки со стороны процессора:
cat /proc/cpuinfo | egrep "(vmx|svm)"
Если команда ничего не вернет, на сервере отсутствует поддержка виртуализации или она отключена в настройках БИОС. Сам KVM поставить на такой сервер можно, но при попытке ввести команду управления гипервизором мы получим ошибку «WARNING KVM acceleration not available, using "qemu"». В таком случае необходимо перезагрузить сервер, войти в БИОС, найти поддержку технологии виртуализации (Intel VT или AMD-V) и включить ее.
Создадим каталоги, в которых будем хранить все, что касается виртуализации (предлагаемые по умолчанию не удобные):
mkdir -p /kvm/{images,iso}
* каталог /kvm/images для виртуальных дисков; /kvm/iso — для iso-образов.
Установка и запуск
Установка выполняется из репозитория следующей командой:
yum install qemu-kvm libvirt virt-install
* где qemu-kvm — сам гипервизор; libvirt — библиотека управления виртуализацией; virt-install — утилита для управления виртуальными машинами.
Разрешаем автозапуск:
systemctl enable libvirtd
Запускаем KVM:
systemctl start libvirtd
Настройка сети
В данной инструкции рассмотрим использование сетевого моста.
Настраивая сетевой мост через удаленное подключение, внимательно проверяйте вводимые данные. В случае ошибки соединение будет прервано.
Устанавливаем пакет для работы с bridge:
yum install bridge-utils
Смотрим список сетевых интерфейсов и их настроек:
В моем примере были следующие данные:
1: lo:
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6::1/128 scope host
valid_lft forever preferred_lft forever
2: enp4s0f0:
inet 192.168.1.24/24 brd 192.168.1.255 scope global enp4s0f0
valid_lft forever preferred_lft forever
valid_lft forever preferred_lft forever
3: enp5s5:
4: virbr0:
valid_lft forever preferred_lft forever
5: virbr0-nic:
link/ether 52:54:00:cd:86:98 brd ff:ff:ff:ff:ff:ff
* из этого для нас важны enp4s0f0 — реальный сетевой интерфейс с настроенным IP-адресом 192.168.1.24 , через который идет подключение сервера к локальной сети (из него мы будем делать мост); 00:16:76:04:26:c6 — mac-адрес реального ethernet адаптера; virbr0 — виртуальный сетевой адаптер.
Редактируем настройки реального адаптера:
vi /etc/sysconfig/network-scripts/ifcfg-enp4s0f0
Приводим его к виду:
ONBOOT=yes
BRIDGE=br0
TYPE=Ethernet
DEVICE=enp4s0f0
BOOTPROTO=none
Создаем интерфейс для сетевого моста:
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.24
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=77.88.8.8
Перезапускаем сетевую службу:
systemctl restart network
Сетевые настройки должны измениться — в моем случае:
2: enp4s0f0:
link/ether 00:16:76:04:26:c6 brd ff:ff:ff:ff:ff:ff
3: enp5s5:
link/ether 00:16:76:04:26:c7 brd ff:ff:ff:ff:ff:ff
4: virbr0:
link/ether 52:54:00:cd:86:98 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: virbr0-nic:
link/ether 52:54:00:cd:86:98 brd ff:ff:ff:ff:ff:ff
6: br0:
link/ether 00:16:76:04:26:c6 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.24/24 brd 192.168.1.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::216:76ff:fe04:26c6/64 scope link
valid_lft forever preferred_lft forever
Настаиваем перенаправления сетевого трафика:
vi /etc/sysctl.d/99-sysctl.conf
net.ipv4.ip_forward=1
Применяем настройки:
sysctl -p /etc/sysctl.d/99-sysctl.conf
Перезапускаем libvirtd:
systemctl restart libvirtd
Создание виртуальной машины
Смотрим доступные варианты гостевых операционных систем:
Для создания первой виртуальной машины вводим следующую команду:
virt-install -n FirstTest \
--noautoconsole \
--network=bridge:br0 \
--ram 1024 --arch=x86_64 \
--vcpus=1 --cpu host --check-cpu \
--disk path=/kvm/images/FirstTest-disk1.img,size=16 \
--cdrom /kvm/iso/CentOS-7-x86_64-Minimal-1611.iso \
--graphics vnc,listen=0.0.0.0,password=my_password \
--os-type linux --os-variant=rhel7 --boot cdrom,hd,menu=on
- FirstTest — имя создаваемой машины;
- noautoconsole — после создания не подключается автоматически к консоли виртуальной машины;
- network — тип сети (в нашем примере сетевой мост);
- ram — объем оперативной памяти, который будет выделен;
- vcpus — количество виртуальных процессоров;
- disk — виртуальный диск: path — путь до диска; size — его объем;
- cdrom — виртуальный привод с образом системы;
- graphics — параметры подключения к виртуальной машины с помощью графической консоли (в данном примере используем vnc); listen — на какой адресе принимает запросы vnc (в нашем примере на всех); password — пароль для подключения при помощи vnc;
- os-variant — гостевая операционная система (весь список мы получали командой osinfo-query os , в данном примере устанавливаем Reв Hat 7 / CentOS 7).
Разрешаем автостарт для созданной ВМ:
virsh autostart FirstTest
Подключение к виртуальной машине
Для дальнейшей установки операционной системы скачиваем VNC-клиент на компьютер администратора, например, TightVNC и устанавливаем его.
На сервере смотрим, на каком порту слушает VNC созданной машины:
virsh vncdisplay FirstTest
в моем случае было:
Это значит, что нужно к 5900 прибавить 0. Если результат команды будет:1 — 5900 + 1 = 5901 и так далее.
Открываем порт на брандмауэре:
firewall-cmd --permanent --add-port=5900-5905/tcp
firewall-cmd --reload
* в данном примере добавлено сразу 6 tcp-портов от 5900 до 5905 .
Запускаем установленный TightVNC Viewer, в открывшемся окне вводим IP-адрес сервера KVM и порт, на котором слушает наша ВМ (в данном примере, 5900):
Нажимаем Connect . Программа запросит пароль — вводим тот, что указали при создании ВМ, (в данном примере, my_password ). Мы подключимся к виртуальной машине, как будто, к ней подключен монитор или удаленная консоль KVM.
Admin и пароль, который создали при выполнении команды engine-setup . После успешного входа можно управлять виртуальными машинами через веб-интерфейс.
В жизни сисадмина однажды настает момент, когда приходится с нуля разворачивать инфраструктуру предприятия либо переделывать уже имеющуюся, перешедшую по наследству. В этой статье я расскажу о том, как правильно развернуть гипервизор на основе 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 перед развертыванием гипервизора.
Среди других требований гипервизоров - поддержка аппаратного 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.
Теперь выбираем диск, на который будет установлена наша группа томов.
Система предложит варианты разметки носителя. Выбираем «Записать все файлы на один раздел» и идем дальше.
После сохранения изменений мы получим одну логическую группу и два тома в ней. Первый - это корневой раздел, а второй - это файл подкачки. Тут многие зададут вопрос: а почему не выбрать разметку вручную и не создать LVM самому?
Я отвечу просто: при создании логической группы VG загрузочный раздел boot не пишется в VG, а создается отдельным разделом с файловой системой ext2. Если этого не учесть, то загрузочный том окажется в логической группе. Это обречет тебя на мучения и страдания при восстановлении загрузочного тома. Именно поэтому загрузочный раздел отправляется на том без LVM.
Переходим к конфигурации логической группы для гипервизора. Выбираем пункт «Конфигурация менеджера логических томов».
Система оповестит о том, что все изменения будут записаны на диск. Соглашаемся.
Создадим новую группу - к примеру, назовем ее vg_sata .
INFO
В серверах используются носители SATA, SSD, SAS, SCSI, NVMe. Хорошим тоном при создании логической группы будет указывать не имя хоста, а тип носителей, которые используются в группе. Советую логическую группу назвать так: vg_sata , vg_ssd , vg_nvme и так далее. Это поможет понять, из каких носителей построена логическая группа.
Создаем наш первый логический том. Это будет том для корневого раздела операционной системы. Выбираем пункт «Создать логический том».
Выбираем группу для нового логического тома. У нас она всего одна.
Присваиваем имя логическому тому. Правильнее всего при назначении имени будет использовать префикс в виде названия логической группы - например, vg_sata_root , vg_ssd_root и так далее.
Указываем объем для нового логического тома. Советую выделить под корень 10 Гбайт, но можно и меньше, благо логический том всегда можно расширить.
По аналогии с примером выше создаем следующие логические тома:
- vg_sata_home - 20 Гбайт под каталоги пользователей;
- vg_sata_opt - 10 Гбайт для установки прикладного ПО;
- vg_sata_var - 10 Гбайт для часто меняющихся данных, к примеру логов системы и других программ;
- vg_sata_tmp - 5 Гбайт для временных данных, если объем временных данных велик, можно сделать и больше. В нашем примере этот раздел не создавался за ненадобностью;
- vg_sata_swap - равен объему оперативной памяти. Это раздел для свопа, и создаем мы его для подстраховки - на случай, если закончится оперативная память на гипервизоре.
После создания всех томов завершаем работу менеджера.
Теперь имеем несколько томов для создания разделов операционной системы. Нетрудно догадаться, что для каждого раздела есть свой логический том.
Создаем одноименный раздел под каждый логический том.
Сохраняем и записываем проделанные изменения.
После сохранения изменений разметки диска начнут ставиться базовые компоненты системы, а затем будет предложено выбрать и установить дополнительные компоненты системы. Из всех компонентов нам понадобится ssh-server и стандартные системные утилиты.
После установки будет сформирован и записан на диск загрузчик GRUB. Устанавливаем его на тот физический диск, где сохранен загрузочный раздел, то есть /dev/sda .
Теперь ждем, пока закончится запись загрузчика на диск, и после оповещения перезагружаем гипервизор.
После перезагрузки системы заходим на гипервизор по 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 сайт 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
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. Присоединись к сообществу «сайт», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score!