Показ дописів із міткою proxmox. Показати всі дописи
Показ дописів із міткою proxmox. Показати всі дописи

1 жовт. 2022 р.

Встановлення Mikrotik CHR 7.5 в Proxmox з використанням ZFS

1. Створити віртуальну машину з кількістю ОЗУ 192 Мб. У випадку якщо потрібно щоб в CHR використовувалось 128 Мб. Для збільшення кількості ОЗУ необхідно до необхідної кількості додати ще 64 Мб. Система забирає їх під відео підсистему. Додати жорсткий диск об'ємом не менше 128 Мб (в Winbox - system - resources буде відображатись 96 Мб Для того щоб було, наприклад 128 Мб реальні - необхідно додати + 40 Мб (чому так не знаю) = 168 Мб. В інтерфейсі Proxmox це буде 0.164 Гб)

2. Скачати за допомогою wget на хост .img Mikrotik CHR з сайту наприклад версію 7.5

3. Розпакувати zip архів з Mikrotik CHR командою unzip chr-7.5.img.zip

4. Записати за допомогою команди dd розпакований .img в віртуальний диск створений на етапі 1

наприклад команда може виглядати так: dd if=chr-7.5.img of=/dev/zvol/rpool/data/vm-100-disk-0

13 трав. 2020 р.

Установка модуля мониторинга Host OS в iDrac в Proxmox

Для того чтобы iDrac отображал информацию о хосте необходимо доустановить в операционной системе два .deb пакета. Так как Dell в инсталляторе модуля не поддерживает ОС Debian, на базе которой построен Proxmox, пакеты можно установить вручную взяв их предварительно из инсталляционного образа iDRAC Service Module for Linux. Нужны пакеты:

dcism-3.5.1-1949.ubuntu18.deb и dcism-osc-5.0.0-41.ubuntu18.deb

Нужно положить их в один каталог после чего выполнить команды в последовательности описанной ниже:

apt-get install libcurl4
dpkg -i dcism-osc-5.0.0-41.ubuntu18.deb
dpkg -i dcism-3.5.1-1949.ubuntu18.deb
systemctl start dcismeng


12 трав. 2020 р.

Настройка изолированного сервера Proxmox после установки


--------------------------------------------------------------
Базовые настройки
--------------------------------------------------------------

При наличии достаточного количества ОЗУ, для уменьшения нагрузки на ЦП отключаем службу KSM

systemctl disable ksmtuned

Отключаем и удаляем раздел Swap, а также раздел Data

swapoff -a
lvremove /dev/pve/swap
lvremove /dev/pve/data

Создаем раздел Swap размером 2 Гб и подключаем его

lvcreate -n swap -L 2G pve
mkswap -L swap /dev/pve/swap
swapon -a

Увеличиваем файловую систему до максимального размера

lvresize -l +100%FREE /dev/pve/root
resize2fs /dev/mapper/pve-root

--------------------------------------------------------------
Ограничение использования Swap
--------------------------------------------------------------

Задаем порог помещения в Swap

sysctl -w vm.swappiness=0
sysctl -p

Переподключаем раздел Swap

swapoff -a
swapon -a

Автоматизируем параметры использования Swap раздела при перезагрузке

nano /etc/sysctl.conf
vm.swappiness = 0

Создаем файл rc.local с запретом неконтролированного помещения данных в Swap

nano /etc/rc.local

Помещаем содержимое скрипта в созданный файл rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# fix for proxmox kernel swappiness problem
for i in $(/usr/bin/find /sys /var/lib 2>/dev/null | /bin/grep slice | grep swappiness) ; do [ -f ${i} ] && /bin/echo 0 > ${i} ; done
exit 0

Делаем файл rc.local исполняемым

chmod +x /etc/rc.local

Создаем файл автозапуска файла rc.local

nano /etc/systemd/system/rc-local.service

Помещаем содержимое скрипта в созданный файл rc-local.service

[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
After=pve-cluster.service

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Делаем файл rc.local.service запускаемым при старте системы и и запускаем его вручную

systemctl enable rc-local
systemctl start rc-local.service

--------------------------------------------------------------
Обновление и установка дополнительного ПО
--------------------------------------------------------------

Создаем файл не стабильного репозитория

touch /etc/apt/sources.list.d/pve-no-subscription.list

Заполняем файл репозитория ссылкой

echo 'deb http://download.proxmox.com/debian/pve buster pve-no-subscription' >> /etc/apt/sources.list.d/pve-no-subscription.list

Для версии Proxmox 7 заполняем файл репозитрория ссылкой

echo 'deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription' >> /etc/apt/sources.list.d/pve-no-subscription.list

Комментируем использование коммерческого репозитория

sed -i 's/^/#/' /etc/apt/sources.list.d/pve-enterprise.list

Для версии Proxmox 8 заполняем файл репозитрория ссылкой

echo 'deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription' >> /etc/apt/sources.list.d/pve-no-subscription.list

echo 'deb http://download.proxmox.com/debian/ceph-quincy bookworm no-subscription' >> /etc/apt/sources.list.d/pve-no-subscription.list

Комментируем использование коммерческого репозитория ceph (только для версии PVE 8)

sed -i 's/^/#/' /etc/apt/sources.list.d/ceph.list

Обновляем систему

apt-get update
apt-get upgrade
apt-get dist-upgrade

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

apt install screen mc nmon iotop ioping iptraf iftop speedometer htop nload ncdu ntfs-3g fio ifupdown2 openvswitch-switch

Очищаем ненужное

apt-get autoremove
apt-get autoclean

--------------------------------------------------------------
Локализация консоли
--------------------------------------------------------------

dpkg-reconfigure locales

Выбираем ru_RU.UTF-8 UTF-8 и нажимаем Ок
В следующем окне выбираем ru_RU.UTF-8 и нажимаем Ок

dpkg-reconfigure console-setup

Выбираем UTF-8 и нажимаем Ок
Выбираем Cyrillic — non-Slavic languages и нажимаем Ок
Выбираем Fixed и нажимаем Ок
Выбираем 8х16 и нажимаем Ок

--------------------------------------------------------------
Отключаем окно предупреждения о отсутствии лицензии
--------------------------------------------------------------

Делаем резервную копию оригинального файла

cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak

Комментируем строку проверяющую лицензию

sed -i "s/getNoSubKeyHtml:/getNoSubKeyHtml_:/" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

--------------------------------------------------------------
Скачиваем драйвера Virtio
--------------------------------------------------------------

wget -P /var/lib/vz/template/iso https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso

--------------------------------------------------------------
Настройка NAT и DHCP на хосте
--------------------------------------------------------------

1. Создаем новый Bridge, например vmbr1 и назначаем ему IP адрес, например 192.168.158.1./24
В настройки созданного бриджа добавляем:

hwaddress ether ab:cd:12:34:56:78

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

В конец файла /etc/network/interfaces добавляем следующие правила

#Разрешаем маршрутизацию между интерфейсами
post-up echo 1 > /proc/sys/net/ipv4/ip_forward

#Разрешаем Source NAT из локальной сети 192.168.158.0/24 
post-up iptables -t nat -A POSTROUTING -s '192.168.158.0/24' -o vmbr0 -j MASQUERADE

#Если необходимо, например, пробросить RDP внутрь виртуальной машины с наружного порта 49389 на внутренний 3389. Создаем правила tcp и udp. В правиле указываем интерфейс - бридж на котором назначен внешний IP.
post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp -m tcp --dport 49389 -j DNAT --to-destination 192.168.158.10:3389
post-up iptables -t nat -A PREROUTING -i vmbr0 -p udp -m udp --dport 49389 -j DNAT --to-destination 192.168.158.10:3389

#Удаляем правила при остановке
post-down iptables -t nat -D POSTROUTING -s '192.168.158.0/24' -o vmbr0 (enp1s0, eth0 или другие варианты) -j MASQUERADE
post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp -m tcp --dport 49389 -j DNAT --to-destination 192.168.158.10:3389
post-down iptables -t nat -D PREROUTING -i vmbr0 -p udp -m udp --dport 49389 -j DNAT --to-destination 192.168.158.10:3389

Устанавливаем dhcp и dns сервер dnsmasq

apt install dnsmasq

Редактируем конфигурационный файл dnsmasq

nano /etc/dnsmasq.conf

Добавляем в конец файла

interface=vmbrl
listen-address=192.168.158.1
dhcp-range=interface:vmbr1,192.168.158.101,192.168.158.199,255.255.255.0,12h
dhcp-option=interface:vmbr1,3,192.168.158.1
dhcp-option=interface:vmbr1,6,192.168.158.1
dhcp-option=interface:vmbr1,15,pve.lan

Перезапускаем dnsmasq /etc/init.d/dnsmasq restart

--------------------------------------------------------------
Инициализация новых дисков в системе
--------------------------------------------------------------

Очистка информации, иницализация в GPT и создание одного раздела типа LVM

sgdisk /dev/sdX -Z -U -R -N 1 -t 1:8e00

Очистка информации, иницализация в GPT и создание одного раздела типа Linux Filesystem

sgdisk /dev/sdX -Z -U -R -N 1 -t 1:8300

--------------------------------------------------------------
Создание тома LVM Thin
--------------------------------------------------------------

Мне не нравится как Proxmox создает lvm thin через веб интерфейс, поэтому делаю это вручную. lvm thin нужен для работы снепшотов.

Создание физического тома (PV)

pvcreate /dev/sdX1

Создание группы томов (VG)

vgcreate volume_group_name /dev/sdX1

Создание раздела Meta (высчитывается как 1% от емкости дисковой группы)

lvcreate -L XG volume_group_name

Создание раздела свободного пространства для расширения раздела Meta в случае завершения в нем места. Минимум 1 Гб

lvcreate -L XG volume_group_name

Создание раздела Data (оставшееся свободное пространство)

lvcreate -l +100%FREE volume_group_name

Удаление раздела свободного места для расширения раздела Meta

lvremove volume_group_name/lvol1

Пример для диска объемом 6 Тб

pvcreate /dev/sdb1
vgcreate data /dev/sdb1
lvcreate -L 15G data
lvcerate -L 5G data
lvcreate -l +100%FREE data
lvremove data/lvol1

Конвертация раздела LVM в разреженный том (Thin Pool) без дублирующего раздела для Meta - pmspare (Данный раздел позволяет восстановить данные в случае повреждения раздела Meta)

lvconvert --type thin-pool --poolmetadataspare n --poolmetadata volume_group_name/lvol0 volume_group_name/lvol2

Переименование раздела lvm thin

lvrename /dev/volume_group_name/lvol2 /dev/volume_group_name/volume_new_name

Увеличение раздела Meta при отсутствии в нем свободного места

lvextend --poolmetadatasize +1G volume_group_name/volume_name