PROXMOX 5
Устанавливаем на чистый минимальный Debian Stretch. Разбивка дисков примерно следующая:
/dev/sda1 /boot ext4 512M [lvm] vg0 / ext4 [lvm] vg0 swap swap [lvm] vg0 /var/lib/vz ext4
ОБЯЗАТЕЛЬНО УКАЗЫВАЕМ НУЖНЫЙ HOSTNAME, ПОТОМУ-КАК ЕСЛИ МЕНЯТЬ ЕГО В УСТАНОВЛЕННОМ PROXMOX-е БУДУТ ПРОБЛЕМЫ.
Перед началом установки редактируем /etc/hosts
Указываем рабочий ip сервера вместо 127.0.0.1, например
172.16.10.1 pm01.test.ru pm01
и удаляем записи IPv6.
Добавляем репозитории с софтом Proxmox
echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg
Синхронизируем репозитории и доводим ОС до актуального состояния. При этом из репозитория proxmox установится несколько системных библиотек
apt update apt dist-upgrade -y
Смотрим какое pve ядро есть на данный момент и ставим его вместе с pve-firmware(проприетарные дровишки для разного оборудования).
apt search pve-kernel apt -y install pve-kernel-4.13.13-5-pve pve-firmware
Далее избавляемся от стокового ядра, чтобы сразу грузиться в ядро от proxmox.
dpkg -l | grep linux-image | awk {"print $2"} apt -y remove --purge --auto-remove linux-image-4.9.0-5-amd64 linux-image-amd64
Обновляем конфиг загрузчика
update-grub
Перегружаемся и проверяем
uname -a Linux pm09 4.13.13-5-pve #1 SMP PVE 4.13.13-38 (Fri, 26 Jan 2018 10:47:09 +0100) x86_64 GNU/Linux
Ставим основной софт для proxmox
apt install proxmox-ve ssh postfix ksm-control-daemon systemd-sysv
Прописываем бриджи на интерфейсах, примерно так
auto enp0s31f6 iface enp0s31f6 inet static address 94.130.18.241 netmask 255.255.255.255 gateway 94.130.18.193 pointopoint 94.130.18.193 auto vmbr0 iface vmbr0 inet static address 94.130.18.241 netmask 255.255.255.255 bridge_ports none bridge_stp off bridge_fd 0 auto vmbr1 iface vmbr1 inet static address 172.16.10.1 netmask 255.255.255.0 bridge_ports eth1 bridge_stp off bridge_fd 0
Для выхода виртуалок во внешнюю сеть включаем форвардинг
sysctl -w net.ipv4.ip_forward=1
В файрволе проксмокса должно быть правило postrouting
$IPT -t nat -A POSTROUTING -s 172.16.10.0/24 ! -d 172.16.10.0/24 -j MASQUERADE
Ребутимся и пробуем заходить https://94.130.18.241:8006 с рутовыми данными
Заводим кластер(имя НЕЛЬЗЯ сменить позже)
pvecm create CLUSTER-NAME
Проверяем статус
pvecm status Quorum information ------------------ Date: Thu Jun 29 13:46:19 2017 Quorum provider: corosync_votequorum Nodes: 1 Node ID: 0x00000001 Ring ID: 1/4 Quorate: Yes Votequorum information ---------------------- Expected votes: 1 Highest expected: 1 Total votes: 1 Quorum: 1 Flags: Quorate Membership information ---------------------- Nodeid Votes Name 0x00000001 1 172.16.10.1 (local)
Добавляем ноду в кластер, для этого логинимся на ноду, которую добавляем. На ноде не должно быть виртуалок, чтобы не было конфликтов VM ID
pvecm add IP_ADDRESS_CLUSTER
Проверяем статус кластера
pvecm status Quorum information ------------------ Date: Thu Jun 29 13:57:38 2017 Quorum provider: corosync_votequorum Nodes: 3 Node ID: 0x00000001 Ring ID: 1/12 Quorate: Yes Votequorum information ---------------------- Expected votes: 3 Highest expected: 3 Total votes: 3 Quorum: 2 Flags: Quorate Membership information ---------------------- Nodeid Votes Name 0x00000001 1 172.16.10.1 (local) 0x00000002 1 172.16.10.2 0x00000003 1 172.16.10.3
Посмотреть только список нод
pvecm nodes Membership information ---------------------- Nodeid Votes Name 1 1 pm01 (local) 2 1 pm02 3 1 pm03
Удаляем ноду из кластера. Отключаем ноду перед удалением и больше НИКОГДА не включаем её в таком виде(в существующей сети кластера). Если включим ноду, кластеру хана. Логинимся на любую ноду отличную от удаляемой. После выключения удаляемой ноды делаем
pvecm delnode pm03
Если всё пройдёт хорошо, увидим что нода удалилась
pvecm nodes Membership information ---------------------- Nodeid Votes Name 1 1 pm01 (local) 2 1 pm02
Подробнее про кластер здесь https://pve.proxmox.com/wiki/Cluster_Manager
Подключение дополнительных ip-подсетей. Куплена подсеть 94.130.2.136/29 (min 94.130.2.137 max 94.130.2.142)
Конфиг на хосте
auto vmbr0 iface vmbr0 inet static address 94.130.18.241 netmask 255.255.255.192 gateway 94.130.18.193 pointopoint 94.130.18.193 bridge_ports eth0 bridge_stp off bridge_fd 0 # route 94.130.18.192/26 via 94.130.18.193 up route add -net 94.130.18.192 netmask 255.255.255.192 gw 94.130.18.193 dev vmbr0 # additional subnet networks up ip route add 94.130.2.136/29 dev vmbr0
Конфиг в LXC контейнере
auto eth0 iface eth0 inet static address 172.16.10.12 netmask 255.255.255.0 auto eth1 iface eth1 inet static address 94.130.2.137 netmask 255.255.255.248 pointopoint 94.130.18.241 up route add default gw 94.130.18.241
После этого заходим в web-интерфейс, добавляем ip и шлюз в контейнере (94.130.2.137/29 94.130.2.137)
Проверяем настройки сети
auto eth0 iface eth0 inet static address 172.16.10.12 netmask 255.255.255.0 auto eth1 iface eth1 inet static address 94.130.2.137 netmask 255.255.255.248 # --- BEGIN PVE --- post-up ip route add 94.130.18.241 dev eth1 post-up ip route add default via 94.130.18.241 dev eth1 pre-down ip route del default via 94.130.18.241 dev eth1 pre-down ip route del 94.130.18.241 dev eth1 # --- END PVE --- pointopoint 94.130.18.241 up route add default gw 94.130.18.241
Если требуется подключить внешний ip к KVM-виртуалке, делаем следующее:
В web-интерфейсе добавляем два сетевых адаптера для виртуалки(НЕ ПУТАЕМ ГДЕ КАКОЙ БРИДЖ)
В конфиге KVM прописываем
allow-hotplug eth0 iface eth0 inet static address 172.16.10.12 netmask 255.255.255.0 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 8.8.8.8 dns-search encry.ru auto eth1 iface eth1 inet static address 94.130.2.139 netmask 255.255.255.248 pointopoint 94.130.18.241 gateway 94.130.18.241