В данной статье мы рассмотрим установку Proxmox, одного из популярных систем виртуализации. Proxmox VE (Proxmox Virtual Environment) - система виртуализации с открытым исходным кодом, основанная на Debian GNU/Linux. Используя гипервизоры на уровне операционной системы KVM и LXC, она позволяет разворачивать внутри себя виртуальные сервера Linux без потери в производительности. Proxmox является идеальным инструментом, позволяющим на одном физическом сервере развернуть несколько полноценных виртуальных серверов под разные задачи.
В этом примере мы установим гипервизор на тестовый сервер со следующими характеристиками:
CPU: Intel Pentium G4400 3.3 GHz
ОЗУ: 16 Gb
240 Gb диск SSD x 2
500 Gb диск SSD x 2
А для тех кто читать не любит, мы подготовили видео:
Установка Proxmox VE
Установка не представляет особой сложности. Нам потребуется загрузочный флешь-накопитель с образом, который бесплатно можно скачать на сайте разработчика.
В этом примере, для отказоустойчивости, гипервизор мы будем ставить на Raid 1. На данном этапе нам необходимо установить систему, программный raid для хранилища мы соберем позже. Систему ставим на SSD емкостью 120 Gb, выбрав zfs (RAID1). Важно не перепутать и не выбрать raidz-1. На ZFS raidz-1 является аналогом RAID-5 и требует установку на три диска. Дальнейшие действия очень просты.
Важный момент. Продумайте заранее архитектуру, у вас будет один гипервизор, или кластер из нескольких гипервизоров. Когда на нем будут развернуты гостевые операционные системы, сменить hostname одной командой не выйдет.
По окончанию успешной установки вы увидите следующее окно приветствия. После аутентификации вы попадаете в привычную среду Debian.
Настройка гипервизора Proxmox VE
Первым делом обновим наш Debian
~# apt-get update
~#apt-get full-upgrade
Затем, утилитой fdisk посмотрим состояние наших дисков и разделов.
~# fdisk -L
/dev/vda и /dev/vdb — ssd 120 Gb, на который установлен Proxmox.
/dev/vdc и /dev/vdd — ssd 500 Gb, на которых мы будем собирать программный raid с помощью утилиты mdadm.
Они пусты, нам необходимо создать партиции разделов. Ниже приведен пример, как это сделать для /dev/vdc, такую же процедуру необходимо выполнить для /dev/vdd, создав партиции /dev/vdc1 и /dev/vdd1 соответственно.
~# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/vdc1 /dev/vdd1
Данная процедура может занять некоторое время, проверять состояние синхронизации вы можете командой:
~# cat /proc/mdstat
После успешной синхронизации программного raid массива, мы увидим следующую картину:
Следующим этапом, создадим файловую систему ext4 на программном рейде /dev/md127
~# mkfs.ext4 /dev/md127
Командой blkid проверим uuid собранного raid /dev/md127
В нашем случае, это:
/dev/md127: UUID="400de0bd-6de7-46e5-a6ca-d03b11fe1c6f" TYPE="ext4"
Создадим каталог data, который смонтируем к нашей новой fs
~# mkdir /mnt/data
~# mount /dev/md127 /mnt/data
Далее правим файл /cat/fstab, указывая новую точку монтирования, чтобы после перезагрузки гипервизора изменения остались в силе. У нас должен получиться следующий результат:
Как вы могли не заметить, установка программной части Proxmox VE у нас выполнена на файловой системе ZFS. Это масштабируемая FS, работа которой, и работа с которой в корне отличается от привычных нам ext4 и иже с ней. Эта файловая система разрабатывалась под UNIX, и для корректно работы с Linux потребуется некоторый тюннинг. Это обусловлено так же особенностью работы с оперативной памятью. Чтобы исключить неконтролируемое потребление ОЗУ, создадим следующий файл:
~# touch /etc/modprobe.d/zfs.conf
В который необходимо добавить следующие параметры:
options zfs zfs_arc_max=2147483648
options zfs zfs_arc_min=1073741824
options zfs zfs_prefetch_disable=1
Применим изменения:
~# update-initramfs -u
Настроим swappiness в Linux. Параметр vm.swappiness по умолчанию имеет значение 60, и контролирует процент свободной памяти. Он контролирует значение, после которого начнется активный сброс данных в swap. Значение «60» означает следующее: 100-60=40%. Другими словами, при загрузке ОЗУ более чем 40%, данные начнут кешироваться в swap. Не существует оптимального значения, он обусловлен только конфигурацией вашего сервера. Если ОЗУ достаточно, это значение можно уменьшить следующими командами:
~# echo 10 > /proc/sys/vm/swappiness
или
~# sysctl -w vm.swappiness=10
Чтобы после перезагрузки значения не сбросились до первоначальных, в файле /etc/sysctl.conf необходимо добавить: vm.swappiness=10
Применить настройку «на лету» можно следующей командой:
Чтобы после перезагрузки значения не сбросились до первоначальных, в файле /etc/sysctl.conf необходимо добавить: vm.swappiness=10
~# sysctl -p
Выше были рассмотрены базовые настройки для полноценного функционирования гипервизора. Оптимизация остальных параметров, таких как настройка программного обеспечения, настройка smart мониторинга ssd дисков и т. д., не отличается от работы с любым другим дистрибутивом Linux Debian.
WEB-интерфейс гипервизора Proxmox VE
Proxmox VE имеет очень удобный и функциональный web-интерфейс, в котором мы будем далее выполнять настройки. Если в предыдущих пунктах вы все сделали верно, он будет доступен по следующей ссылке:
https://xxx.xxx.xx.xx:8006/
Аутентифицировавших польхователем root вместо окна приветствия мы увидим следующее предупреждение:
Proxmox VE является программным обеспечением с открытым исходным кодом, он бесплатен и поставляется под лицензией GNU GPL\GNU AGPL. Однако поддержка Enterprise версии платная. Если вы не желаете покупать лицензию, необходимо изменить репозиторий обновлений:
~# mcedit /etc/apt/sources.list.d/pve-enterprise.list
В нем необходимо закомментировать репозиторий pve-enterprise и добавить репозиторий pve-no-subscription:
#deb https://enterprise.proxmox.com/debian/pve buster pve-enterprise
deb https://download.proxmox.com/debian/pve buster pve-no-subscription
Теперь приступим к настройке хранилища. Для этого нам необходимо перейти в пункт меню «Datacenter» - «Storage» и нажать «Add», выбрав тип хранилища «Directory». Сюда мы добавим наш примонтированый каталог data, который мы создали на нашем программном raid, и на котором у нас будут размещены гостевые виртуальные машины.
Настройка сети. Для функционирования обычно используют три режима: Bridge, Routed и NAT. Bridge - при этом режиме, гостевые VM находятся в одной подсети с гипервизором и используют ip адреса этой подсети. Routed - при этом режиме, одна из виртуальных машин настроена как шлюз, для выхода в сеть интернет. NAT - виртуальные машины имеют собственную подсеть, однако во внешнюю выходят через NAT, который настроен на гипервизоре.
В этом примере мы используем режим Brige. Для этого необходимо перейти в раздел «Datacenter» - «your_Node» - «System» - «Network» и нажать «Create», выбрав режим «Linux Brige»
Создание виртуальных машин в Proxmox VE
Перейдем в каталог для образов и скачаем необходимый дистрибутив, который будем инсталлировать. Для нашего пример а выберем CentOS8 и рандомный официальный репозиторий
~# cd mntdata/template/iso
~# wget https://centos2.hti.pl/8.0.1905/isos/x86_64/CentOS-8-x86_64-1905-boot.iso
Для создания новой виртуальной машины внутри гипервизора необходимо в правом верхнем углу web-интерфейса нажать «Create VM», после чего откроется окно настройки.
Перед вами откроется окно настроек с восемью вкладками и множеством параметров. Рассмотрим основные базовые, вы их можете изменить под свои нужды. Единственный момент, который необходимо учесть при создании виртуальных машин, их ресурсы не должны превышать физические характеристики гипервизора. Логично, что имея физически на боту 16 Gb оперативной памяти, создать виртуальных несколько машин потребляющих суммарно 32 Gb у вас получится, но при превышении ресурсов гипервизор просто «уйдет в себя». Это же касается и емкости жестких дисков. За этим важно следить.
Приведу листинг по пунктам:
Node: dedicated VM ID: 101 Name: CentOS-8 Use CD/DVD disc image file (iso) Storage: data ISO image: CentOS-8-x86_64-1905-boot.iso Type: Linux Version: 5.x - 2.6 Kernel Graphic card: Default SCSI controller: VirtIO SCSI Bus/Device: VirtIO Block : 0 Storage: data Disk size (GiB): 120 Format: QEMU image format (qcow2) Cache: Default (No cache) Sockets: 1 Cores: 2 Type: Default (kvm64) Memory (MiB): 4096 Brige: vmbr0 Model: VirtIO (paravirtualized) Start after created
Сверившись, что все настроено верно, нажимаем «Finish» и ждум загрузку виртуальной машины. Когда она будет запущена, выберем ее и перейдем во вкладку «Console», где увидим окно первоначальной настройки дистрибутива.
Настройка виртуальной машины ничем не отличается от обычной настройки дистрибутива CentOS. Настроив все параметры, сеть, вы сможете подключаться к ней по ssh и работать как с полноценным сервером.
У нас Вы можете арендовать сервер (dedicated server) c поддержкой аппаратной виртуализации, развернуть на котором гипервизор Proxmov VE у Вас не сосотавит труда. Если во время использования инструкции у Вас возникнут вопросы, наша техническая поддержка готова прийти на помощь в любое время.