Это старая версия документа!
Различные советы и секреты по установке сервера виртуализации
Подготовка сервера
BIOS
- Для процессоров >=Sandy Bridge HT включаем, для более ранних выключаем
- Если хотим максимальной производительности, то- C1E Support > disabled (on Fujitsu servers is called «Enhanced Halt State (C1E)»)
- Intel C-State > disabled
- Enhanced Intel Speedstep Tech : off (dynamic frequency)
- Max performance > ON (Turbo mode)
 
- Включить поддержку IOMMU (SR-IOV)
Proxmox VE
- Заменим репозитарий на бесплатный (для версии 7):
#> cd /etc/apt/sources.list.d/ #> cat ./pve-enterprise.list #deb https://enterprise.proxmox.com/debian/pve bullseye pve-enterprise deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription
- Установим полезные пакеты:
apt install net-tools traceroute mc sudo iotop apt install lm-sensors && sensors-detect
проброс pci(e) устройств
Надо почитать тут (но в доке ошибка - нет упоминания что надо делать update-grub). Далее процесс коротко:
- в параметр GRUB_CMDLINE_LINUX_DEFAULT, файла /etc/default/grub, добавить intel_iommu=on (и, если нужно, iommu=pt)
- в /etc/modules добавить:
vfio vfio_iommu_type1 vfio_pci vfio_virqfd
- создать файл /etc/modprobe.d/vfio.conf, с содержимым:
options vfio_iommu_type1 allow_unsafe_interrupts=1
- сделать update-grub && update-initramfs -u -k all
- перезагрузить систему
- убедится что параметры ядра применились: cat /proc/cmdline
- убедится что IOMMU включен dmesg | grep -e DMAR -e IOMMU -e AMD-Vi
- увидеть группы IOMMU find /sys/kernel/iommu_groups/ -type l
Мониторинг при помощи zabbix
Установим агента и дополнительные утилиты:
apt install zabbix-agent jq
Если у Вас старый сервер zabbix то этот агент НЕ подойдет. Для исправления ситуации можно взять zabbix-agent от debian9:
root@debian9:/usr/sbin# lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 9.13 (stretch) Release: 9.13 Codename: stretch root@debian9:/# /usr/sbin/zabbix_agentd -V zabbix_agentd (daemon) (Zabbix) 3.0.32
Т.е. можно файл /usr/sbin/zabbix_agentd просто скопировать. Не по джедайски, но работает. Также отключим авто обновление zabbix-agent
apt-mark hold zabbix-agent
Отключение обновления ядра
Обновление ядра требует перезагрузки системы, если сервер работает в производственном режиме не всегда возможно осуществить это. Поэтому посмотрим какая версия ядра у нас (в примере, uname выдал 5.15) и заблокируем обновление:
uname -a apt-mark hold pve-firmware pve-kernel-5.15
Добавление LVM хранилища
Допустим, что у нас есть ПУСТОЙ диск /dev/sdb с таблицей разделов GPT (fdisk /dev/sdb и нажать g):
- Создадим LVM раздел:
# sgdisk -N 1 /dev/sdb
- Создадим Physical Volume (PV) без вопросов и размером метабазы 250K:
# pvcreate –metadatasize 250k -y -ff /dev/sdb1
- Создадим группу томов “vmdata” на /dev/sdb1
# vgcreate vmdata /dev/sdb1
Далее подключим vmdata в веб интерфейсе.
Если диск не пустой, то fdisk /dev/sdb, далее удаляем разделы и с помощью g создаем GPT раздел.
Удаляем LVM-Thin хранилище по умолчанию
Не знаю почему, но мне не нравится LVM-Thin разделы. Возможно мне не понятна тонкие материи продажи воздуха облачных сервисов, однако когда я выделяю место для VM я хочу быть УВЕРЕН, что место на диске в кол-ве указанного будет ДОСТУПНО VM в любом случае. LVM-Thin позволяет выделять место «по потребности»…
- Для начала проверим разделы:
# lsblk
NAME               MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                  8:0    0 111.8G  0 disk 
├─sda1               8:1    0     1M  0 part 
├─sda2               8:2    0   256M  0 part 
└─sda3               8:3    0 111.6G  0 part 
  ├─pve-swap       253:0    0     7G  0 lvm  [SWAP]
  ├─pve-root       253:1    0  27.8G  0 lvm  /
  ├─pve-data_tmeta 253:2    0     1G  0 lvm  
  │ └─pve-data     253:4    0  60.9G  0 lvm  
  └─pve-data_tdata 253:3    0  60.9G  0 lvm  
    └─pve-data     253:4    0  60.9G  0 lvm  
Или командой для списка доступных тонких пулов: # pvesm lvmthinscan pve
- Удалим из веб интерфейса (Датацентр\Хранилище), по умолчанию называется local-lvm
- Удаляем раздел /dev/pve/data
# lvremove /dev/pve/data # lsblk
- Добавим в веб интерфейс (Датацентр\Хранилище), local-lvm тип LVM, имя pve
Все теперь в корневом диске у нас есть хранилище local-lvm со свободным пространством. Имейте ввиду что тут теперь можно удалить и корневой раздел PVE, что делать крайне не рекомендуется :)
