Первый способ(его я использовал, когда не знал о втором)))
Не буду рассказывать на сколько и каких «граблей» пришлось наступить(с линуксом я знаком очень поверхностно), выложу содержимое файла /etc/network/interfaces. При этой конфигурации всё, вроде как, заработало.
Shell
# Создаем объединение физических сетевых интерфейсов
auto bond0
iface bond0 inet manual
slaves enp4s0f0 enp4s0f1
bond_miimon 100
bond_mode 802.3ad
bond_xmit_hash_policy layer2+3
# Добавляем VLAN100
auto bond0.100
iface bond0.100 inet manual
vlan-raw-device bond0
# Добавляем VLAN150
auto bond0.150
iface bond0.150 inet manual
vlan-raw-device bond0
# Создаем бридж VLAN150(его используем для подключения ВМ к VLAN150)
auto vmbr150
iface vmbr150 inet manual
address 0.0.0.0
netmask 0.0.0.0
bridge_ports bond0.150
bridge_stp off
bridge_fd 0
# Создаем бридж VLAN100(его используем для подключения ВМ к VLAN100. Также он служит для интерфейса управления ноды.)
auto vmbr100
iface vmbr100 inet static
address 192.168.102.63
netmask 255.255.252.0
gateway 192.168.102.251
bridge_stp off
bridge_ports bond0.100
bridge_fd 0
auto vmbr0
iface vmbr0 inet manual
bridge_ports bond0
bridge_stp off
bridge_fd 0
bridge_vlan_aware yes
1 |
# Создаем объединение физических сетевых интерфейсов auto bond0 iface bond0 inet manual slaves enp4s0f0 enp4s0f1 bond_miimon100 bond_mode802.3ad bond_xmit_hash_policy layer2+3 auto bond0.100 iface bond0.100inet manual vlan-raw-device bond0 auto bond0.150 iface bond0.150inet manual vlan-raw-device bond0 auto vmbr150 iface vmbr150 inet manual address0.0.0.0 netmask0.0.0.0 bridge_ports bond0.150 bridge_stp off bridge_fd auto vmbr100 iface vmbr100 inet static address192.168.102.63 netmask255.255.252.0 gateway192.168.102.251 bridge_stp off bridge_ports bond0.100 bridge_fd auto vmbr0 iface vmbr0 inet manual bridge_ports bond0 bridge_stp off bridge_fd bridge_vlan_aware yes |
В данном конфиге используются сети с VLAN ID 100 и 150. Если нужно добавить еще какие то, добавляем в файл:
Shell
auto bond0.<VLAN ID>
iface bond0.<VLAN ID> inet manual
vlan-raw-device bond0
1 |
auto bond0.<VLAN ID> iface bond0.<VLAN ID>inet manual vlan-raw-device bond0 |
и
Shell
auto vmbr<VLAN ID>
iface vmbr<VLAN ID> inet manual
address 0.0.0.0
netmask 0.0.0.0
bridge_ports bond0.<VLAN ID>
bridge_stp off
bridge_fd 0
1 |
auto vmbr<VLAN ID> iface vmbr<VLAN ID>inet manual address0.0.0.0 netmask0.0.0.0 bridge_ports bond0.<VLAN ID> bridge_stp off bridge_fd |
После редактирования файла /etc/network/interfaces не забудьте перезапустить службу /etc/init.d/networking restart(иногда нужно и перезагрузить хост).
В веб-интерфейсе это выглядит примерно так(добавлены еще несколько VLAN, которые не указаны в примере):
P.S. После экспериментов выяснилось, что bonde_mode 802.3ad не обеспечивает отказоустойчивость, в связи с чем она была заменена на bond_mode balance-xor
Работа с WEB-интерфейсом
Подключение к Proxmox выполняется с помощью браузера. Подключитесь по указанному адресу из любого браузера. Сертификаты сервера являются самоподписанными, поэтому браузер выдаст предупреждение безопасности. Нажмите Дополнительные и выбираем ссылку Перейти на сайт 192.168.0.166 (небезопасно). На скриншоте ниже показано выглядит WEB-интерфейс Proxmox VE:
Сначала выберите русский язык, затем введите пользователя root и пароль от суперпользователя:
Нас предупредили, что на Proxmox VE не оформлена подписка на наш сервер, ОК.
Настройте хранилище. Сейчас система автоматически создала хранилище в расположении /var/lib/vz с названием local. Кликните на ссылку:
В хранилище с помощью WEB-интерфейса Proxmox можно загрузить образ диска ISO, разместить там же образ диска виртуальной машины, контейнеры и шаблоны. Так же в хранилищах хранятся snapshot – архивные копии виртуальных машин. Хорошим решением будет добавить в систему ещё одно хранилище для бэкапов, шаблонов виртуальных машин.
Создайте дополнительное хранилище. Для этого перейдите в раздел Датацентр, найдите справа от дерева серверов пункт Хранилище, кликните по нему и выберете хранилище local. На приведённом ниже скриншоте видно, что, кликнув на local в основном окне, можно редактировать типы хранимой информации. Для дальнейшей демонстрации включаю тип Резервная копия и применяю изменения:
По кнопке Добавить можно посмотреть какие типы хранилища доступны в данной инсталляции Proxmox VE.
В моей тестовой машине все реализовано на томах LVM:
Самый большой размер 122 Гб на машине pve-test примонтирован к директории /home. Нажмите Добавить, выберите Каталог, укажите имя home и путь /home:
В результате создано собственное хранилище с именем home, где и будут храниться все данные:
Рекомендации и тюнинг
DRBD
Как я отметил выше, всегда желательно использовать отдельную сеть под репликацию. Крайне желательно использовать 10-гигабитные сетевые адаптеры, в противном случае у вас все упрется в скорость портов.
Если репликация вам кажется достаточно медленной попробуйте потюнить некоторые параметры для DRBD. Вот конфиг, который на мой взгляж является оптимальными для моей 10G-сети:
NFS-сервер
Для ускорения работы NFS-сервера возможно поможет увеличение общего числа запускаемых экземпляров NFS-сервера. По умолчанию — 8, лично мне помогло увеличение этого числа до 64.
Что бы этого добиться обновите параметр в .
И перезапустите демоны:
NFSv3 vs NFSv4
Знаете в чем отличие между NFSv3 и NFSv4?
- NFSv3 — это stateless протокол как правило он лучше переносит сбои и быстрее восстанавливается.
- NFSv4 — это stateful протокол, он работает быстрее и может быть привязан к определенным tcp-портам, но из-за наличия состояния он более чувствителен к сбоям. В нем так же есть возможность использование аутентификации с помощью Kerberos и куча других интересных функций.
Тем не менее когда вы выполняете используется протокол NFSv3. Proxmox тоже использует NFSv3. NFSv3 так же обычно используется для организации загрузки машин по сети.
В общем, если у вас нет особых причин использовать NFSv4, старайтесь использовать NFSv3 так как он менее болезненно переживает любые сбои из-за отсутствия состояния как такового.
Примонтировать шару используя NFSv3 можно указав параметр для команды mount:
При желании можно отключить NFSv4 для сервера вообще, для этого добавьте опцию в переменную и перезапустите сервер, пример:
Второй способ заключается в использовании openvswitch.
Для использования этого способа необходимо установить соответствующий пакет, ну и, конечно же, ваше физическое сетевое оборудование должно быть настроено соответствующим образом.
В моем примере на физическом коммутаторе порты настроены в режиме транка, и в качестве native vlan передается vlan, в котором должен находиться управляющий интерфейс самого проксмокса. Ну и, естественно, в транке должны присутствовать vlans, которые планируется использовать на виртуальных машинах.
Итак, после установки проксмокса, нужно установить пакет OVS. Для этого в консоли выполняем команды:
Shell
apt-get install openvswitch-switch
1 | apt-getinstall openvswitch-switch |
Перед этим можно закомментировать коммерческий репозиторий proxmox:
открываем файл в редакторе
Shell
nano /etc/apt/sources.list.d/pve-enterprise.list
1 | nanoetcaptsources.list.dpve-enterprise.list |
и закомментируем строку
После установки пакета удаляем стандартный Linux Bridge:
Все изменения, сделанные в настройках через графический интерфейс, применяются после перезагрузки, так что удаляйте смело.)
Затем создаем уже OVS Bridge:
После этого создаем OVS Bond с использованием только что созданного бриджа и указываем сетевые интерфейсы, которые хотим объединить в Bond.
Режим балансировки у меня указан LACP(требует настройки на физическом коммутаторе), вы можете выбрать другой.
После этого перезагружаете хост и просите сетевого инженера настроить LACP на портах физического коммутатора.
Возможно, вас заинтересуют статьи по VMware и Hyper-V.
Настройка сети Proxmox
Создайте бэкап файла сетевых настроек. Для этого в терминале напишите:
В системе реализованы несколько способов получения доступа по сети из виртуальных машин или к виртуальным машинам. Перейдите на группу pve-test в дереве серверов, выберите справа пункт Сеть и нажмите кнопку Создать:
Из предложенных вариантов выберите Linux Bridge, чтобы создать виртуальный свитч, через который гипервизор Proxmox VE и виртуальные машины подключатся к сети:
В портах сетевого моста указано имя сетевой карты enp2s0, которой тестовая машина подключена кабелем к роутеру. В Linux принято после указания IP-адреса указывать маску подсети через знак . Значение 192.168.0.166/24 означает, что маска подсети 255.255.255.0.
Уберите в WEB-интерфейсе Proxmox VE с сетевого интерфейса enp2s0 IP-адрес, выданный ему службой DHCP роутера и выполните перезагрузку хоста Proxmox VE для применения настроек. Нажмите кнопку reboot, которая находится на верхней панели и через некоторое время обновите страницу. Будьте очень аккуратны при работе с VDS или VPS, которые настраиваете удалённо, чтобы не потерять доступ к установленной системе. Если ситуация с потерей доступа к хосту произошла, то необходимо в режиме восстановления скопировать ранее нами созданный файл настроек interfaces.work из директории /etc/network, путём выполнения команды:
На скриншоте красным маркером обведён новый текст файла /etc/network/interfaces, который будет применён после перезагрузки. Если все прошло корректно, то через некоторое время можно снова входить в WEB-интерфейс хоста Proxmox VE.
Создание виртуальных машин в 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 у Вас не сосотавит труда. Если во время использования инструкции у Вас возникнут вопросы, наша техническая поддержка готова прийти на помощь в любое время.
Создаем виртуальную машину CHR
Все действия описанные ниже нужно проделать в консоли сервера Proxmox от имени root.
Первым делом посмотрим какие у нас есть виртуальные машины, чтобы выбрать незанятый вариант (номер).
# qm list VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID 100 VM-100 running 1024 8.00 1266 101 MikrotiK stopped 256 0.00 0
У меня уже есть две виртуальные машины, одна из которых ранее установленный виртуальный Микротик.
Скрипт создания виртуальной машины с Mikrotik OS
Этот скрипт создаст виртуальную машину с номером 102 на которую будет установлен Router OS CHR Mikrotik версии 6.46.2. Отредактируйте его под ваши задачи.
Выполнить следующие команды необходимо в консоли Proxmox:
cd /root wget https://download2.mikrotik.com/routeros/6.46.2/chr-6.46.2.img.zip unzip chr-6.46.2.img.zip qemu-img convert -f raw -O qcow2 chr-6.46.2.img vm-102-disk-1.qcow2 cd /var/lib/vz/images/102 cp /root/vm-102-disk-1.qcow2 vm-102-disk-1.qcow2 qm create 102 \ --name MikrotiK\ --net0 virtio,bridge=vmbr0 \ --bootdisk virtio0 \ --ostype l26 \ --memory 256 \ --onboot no \ --sockets 1 \ --cores 1 \ --virtio0 local:102/vm-102-disk-1.qcow2
После выполнения данных команд у вас появится новая виртуальная машина. Проверьте новый список в консоли Proxmox:
# qm list VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID 100 VM-100 running 1024 8.00 1266 101 MikrotiK stopped 256 0.00 0 102 MikrotiK stopped 256 0.00 0
или в веб-интерфейсе Proxmox:
Настройки сети виртуальной машины Mikrotik
Запустим необходимую нам виртуальную машину:
# qm start 101
И далее в консоли запущенно виртуальной машины (не сервера!) необходимо выполнить следующие команды:
/ip address add address=XXX.XXX.XXX.YYY/24 interface=ether1 /ip router add gateway=XXX.XXX.XXX.ZZZ
где вместо XXX, YYY и ZZZ используйте Ipv4 адреса для вашего виртуального маршрутизатора Микротик и шлюза по-умолчанию.
Для авторизации используйте логин admin и пустой пароль.
После этого можно запустить WinBox и приступить к настройке виртуального маршрутизатора. Скачать WinBox можно на официальном сайте Mikrotik в разделе загрузок — https://mikrotik.com/download
ВИДЫ СЕТЕВЫХ СОЕДИНЕНИЙ В PROXMOX VE
- Linux Bridge — способ соединения двух сегментов Ethernet на канальном уровне, то есть без использования протоколов более высокого уровня, таких как IP. Поскольку передача выполняется на канальном уровне (уровень 2 модели OSI), все протоколы более высокого уровня прозрачно проходят через мост.
- Linux Bond — метод агрегации нескольких сетевых интерфейсов в единый логический bonded интерфейс. Таким образом, bond обеспечивает балансировку нагрузки либо горячий резерв по определённому сценарию.
- Linux VLAN – реализация на ядре Linux виртуальной локальной компьютерной сети.
- OVS Bridge – реализация моста на базе Open vSwitch.
- OVS Bond – реализация балансировки на базе Open vSwitch. Отличается от реализованной в ядре Linux балансировки режимами.
- OVS IntPort — реализация VLAN на базе Open vSwitch.
Настройка сети в Proxmox VE
После установки всех необходимых пакетов и перезагрузки ОС в WTB-интерфейсе Proxmox VE перейдите в раздел Датацентр, выберите имя гипервизора (на скриншоте PVE). В меню Система найдите раздел Сеть и нажмите кнопку Создать:
1. Настройка bridge
Создание интерфейса bridge для Open vSwitch и для ядра Linux практически ничем не отличаются, за исключением выбора способа создания и возможности указания для OVS Bridge дополнительных ключей Open vSwitch. Если планируется использовать VLAN для сетевого интерфейса, не забудьте указать чек-бокс возле пункта VLAN при создании bridge. Включение чек-бокса Автозапуск позволяет запускать выбранный сетевой интерфейс при загрузке гипервизора:
В общем случае, если сетевой интерфейс bridge создаётся единственный для гипервизора, то нет необходимости перечислять в пункте Порты сетевого моста все имеющиеся сетевые карты. Однако, если существует необходимость на уровне интерфейса разделить подключения к различным каналам связи или сегментам сети, то можно использовать различные комбинации сетевых устройств. На представленном хосте гипервизора их четыре, поэтому можно ввести два из них (перечислением через пробел) в bridge OVS:
Адрес интерфейса можно не указывать, настроенные на подключение к интерфейсу виртуальные машины будут использовать его как обычный свитч. Если же указать адрес IPv4 и/или IPv6, то он будет доступен извне на всех сетевых интерфейсах или на интерфейсах, перечисленных в поле Порты сетевого моста:
2. Настройка bond
Для балансировки нагрузки и объединения нескольких сетевых интерфейсов в один виртуальный, создайте OVS Bond. Это связано с тем, что его возможности шире, чем Linux Bond, а процесс создания практически идентичен. Для создания балансировщика нагрузки нажмите в меню Сеть кнопку Создать и выберите пункт OVS Bond:
В отличие от создания OVS bridge, в параметрах vmbr1 OVS Bond указано в портах сетевого моста bond0 и в пункте OVS Options для тегирования VLAN можно использовать ключ tag=$VLAN, где $VLAN надо заменить на целое числовое значение, в примере это 50:
Режимы балансировки можно установить только при создании интерфейса bond, перечислим их основные характеристики.
Для OVS Bridge:
- Режим Active-Backup использует один из перечисленных сетевых интерфейсов для работы, а остальные находятся в резерве в статусе down, на случай выхода из строя основного интерфейса
- Режимы Balance-slb, LACP (balance-slb), LACP (balance-tcp) подходят для случая, когда вам необходимо расширить полосу пропускания и отказоустойчивость канала, объединив в единый бонд несколько сетевых интерфейсов.
Для Linux Bond:
- Режим balance-rr ядра Linux скорее переназначен для исходящего траффика, чем для входящего. Пакеты отправляются последовательно, начиная с первого доступного интерфейса и заканчивая последним. Применяется для балансировки нагрузки и отказоустойчивости.
- Режим active-backup ничем не отличается от аналогичного режима в OVS. Передача распределяется между сетевыми картами используя формулу: . Получается одна и та же сетевая карта передаёт пакеты одним и тем же получателям. Режим XOR применяется для балансировки нагрузки и отказоустойчивости.
- Режим агрегирования каналов по стандарту IEEE 802.3ad. Создаются агрегированные группы сетевых карт с одинаковой скоростью и дуплексом. При таком объединении передача задействует все каналы в активной агрегации, согласно стандарту IEEE 802.3ad. Необходимо оборудование гипервизора и активной сетевой части с поддержкой стандарта.
- Режим адаптивной балансировки нагрузки передачи balance-tlb. Исходящий трафик распределяется в зависимости от загруженности каждой сетевой карты (определяется скоростью загрузки). Не требует дополнительной настройки на коммутаторе. Входящий трафик приходит на текущую сетевую карту. Если она выходит из строя, то другая сетевая карта берёт себе MAC адрес вышедшей из строя карты.
- Режим адаптивной балансировки нагрузки Balance-alb. Включает в себя политику balance-tlb, а также осуществляет балансировку входящего трафика. Не требует дополнительной настройки на коммутаторе.
3. Настройка VLAN
В меню Система найдите раздел Сеть и нажмите кнопку Создать и выберите OVS InPort:
Задайте имя интерфейса vlan50 тег VLAN, равный 50, укажите OVS Bridge. VLAN 50 на указанном виртуальном интерфейсе OVS Bridge vmbr1 с тегом 50 создан и может быть использован, например для организации видеонаблюдения. Таким образом, предлагаю настроить дополнительно VLAN30 для IP телефонии и VLAN100 для локальной сети с виртуализированными рабочими местами. Для создания всех VLAN используйте интерфейс vmbr1.
Вывод
Один из важных моментов заключается в том что старайтесь управлять системой с панели управления так как попытка настроить параметры в консоли может вызвать проблемы в работе с системой!
Вы еще не захотели использовать систему виртуализации Proxmox? Попробуйте и вы не пожалеете. Мною используются далеко не все возможности и возможно для себя вы найдёте то, что давно хотели использовать в работе с виртуальными системами без проблем в настройках. Свобода использования, активное развитие, удобное использование и обслуживание системы однозначно ставит систему Proxmox для меня на первое место. Возможно в последующем я освою как делать репликацию между двумя отдельными системами Proxmox, но в работе это пока не требуется так как в малых и средних организациях вопрос об использовании двух серверов не стоит. Меня уже радует когда на приобретение одного хорошего сервера выделяют необходимый денежный ресурс.