Ведение своего блога-шпаргалки хочу начать с установки и использования своего любимого гипервизора KVM.
Небольшой пролог ИМХО
Proxmox для эникейщиков.
Vmware - для крупного бизнеса.
Hyper-v - вообще зашквар.
Virtualbox я тут рассматривать не стану, это можно отнести к детскому саду.
Сперва необходимо убедиться, что наш процессор поддерживает аппаратную виртуализацию. Думаю, что на сегодняшний день этот шаг лишний, так как уже в каждом утюге поддержка сего есть, но тем не менее давайте проверим.
egrep -c '(vmx|svm)' /proc/cpuinfoесли выхлоп показывает больше нуля, двигаемся дальше.
Либо командой
lscpu | grep Virtualization
Для примера ответ должен быть таким
Virtualization: VT-x
Virtualization type: full
Опционально: ещё один способ проверить совместимость можно командой:
kvm-ok
выхлоп должен показать
INFO: /dev/kvm exists
KVM acceleration can be used
Если команда kvm-ok возвращает
-bash: kvm-ok: команда не найдена
либо
-bash: kvm-ok: command not found
необходимо сперва установить
apt install cpu-checker
Так как у нас абсолютно голый, ванильный дистрибутив Debian, на котором ничего нет, установим необходимое:
Предварительная подготовка:- Обновим кэш пакетов - apt update
- Ставим SSH, [настраиваем] и убираем сервачок куда-нибудь на антресоль, чтоб не мешался. Далее подключаемся к нему и продолжаем настройку.
- apt install chrony для того, чтоб иметь самое точное время
- apt install htop - будем поглядывать на нагрузку
- apt install vim - для редактирования конфигов
- timedatectl set-timezone Asia/Vladivostok - станвим часовой пояс. В моём случае это Владивосток
- Обязательно добавить к переменной PATH путь /sbin в .bashrc рута export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ну и для применения всего сделанного отправим сервер (чтоб наверняка) в ребут.
Предлагаю придерживаться правила хранения дистрибутивов и виртуальных образов в одном месте, а не там, куда тулит их гипервизор. Поэтому создаём в корне следующие папки:
mkdir -p /kvm/{images,iso}
Ну и сопсна ставим всё необходимое
apt install qemu-kvm libvirt-daemon libvirt-daemon-system virtinst libosinfo-bin osinfo-db-tools bridge-utils
- qemu-kvm - основной пакет виртуализации на базе ядра KVM, который позволяет использовать технологию аппаратной виртуализации
- libvirt-daemon - это демон виртуализации
- libvirt-daemon-system — файлы конфигурации демона libvirt
- virtinst — утилита управления виртуальными машинами
- libosinfo-bin — для просмотра семейств возможных для установки ОС (osinfo-query os)
- osinfo-db-tools — Для обновления семейства ОС
- bridge-utils — Для организации сетевого моста виртуальных машин
Вышеупомянутая команда вытянет ещё кучу зависимостей, не переживайте — это необходимо
Как правило список семейств ОС утилиты libosinfo-bin устаревший, поэтому мы актуализируем его ручками.
Переходим на сайт releases.pagure.org и сливаем wget’ом актуальный файл osinfo-db-годмесяцчисло.tar.xz
В моём примере wget https://releases.pagure.org/libosinfo/osinfo-db-20240701.tar.xz
Обновляем БД семейства ОС
osinfo-db-import --system osinfo-db-20240701.tar.xz
Запускаем демон виртуализации
systemctl enable --now libvirtd
Для безопасности ограничим запуск от обычного пользователя
usermod -aG libvirt,kvm <имя пользователя, кому предоставляем доступ>
Настраиваем сеть
Приводим главный сетевой конфиг к следующему виду
vim /etc/network/interfaces
auto eno1
iface eno1 inet manual
Далее создаём конфиг бриджа
vim /etc/network/interfaces.d/brkvm0
auto brkvm0
iface brkvm0 inet dhcp
bridge_ports eno1
bridge_stp off
bridge_waitport 0
bridge_fd 0
Далее переходим в папку images
cd /kvm/images
Скачиваем дистрибутив, который будем устанавливать. Для примера возьмём мой любимый Debian. Идём на сайт debian, жмём правой кнопкой на ссылке скачивания, копируем ссылку, в консоли нашего сервера пишем wget и жмём сочетание клавиш shift + insert
Если будет ответ
bash: wget: команда не найдена
или
bash: wget: command not found
То ставим необходимый пакет
apt install wget
жмём два раза вверх на курсоре, что повторить предыдущую команду для скачивания дистрибутива и жмём enter
Ну и разворачиваем виртуальную машину с debian
Сперва создадим диск для неё
qemu-img create -f qcow2 -o size=50G /images/test.qcow2
Далее запускаем установку самого debian
virt-install -n test \
--autostart \
--noautoconsole \
--network=bridge:brkvm0 \
--ram=4096 --arch=x86_64 \
--vcpus=2 --cpu host-passthrough --check-cpu \
--disk path=/kvm/images/test1.qcow2 \
--cdrom /kvm/iso/debian-12.6.0-amd64-netinst.iso \
--graphics vnc,listen=0.0.0.0,password=123 \
--os-variant=debian12 --boot cdrom,hd,menu=on
Для подключения к виртуальной машине рекомендую использовать TightVNC
Узнаём порт
virsh vncdisplay test
:1
Отсчёт идёт с 5900, то есть к 5900 прибавляем 1 = 5901
Узнаём IP адрес нашего гипервизора
ip a | grep inet
Открываем tightvnc вводим ip адрес гипервизора с портом
172.16.14.6:5901