Pfsense установка на raid

Обновлено: 30.06.2024

Cluster

SR-IOV

P.s. Можно загрузиться в ILO с Live CD того же Linux Mint 19.x , запустить терминал, перейти в учетку root (sudo passwd root -> два раза пароль -> su - -> пароль root) и проделать рабочую процедуру, к-ая описана выше (заменить xenial на bionic в настройках репозитория, ес-но).

0_1549192679088_sr-iov_scheme.jpg

P.s. Напр., Asrock AB350 Pro4 при своей достачно скромной цене (в кач-ве мат. платы для сервера) умеет и amd_iommu и sr-iov - осталось только сетевую прикупить. Более того, совсем бюджетные Biostar A320MD PRO\A320MH PRO также умееют и amd_iommu и sr-iov.

Zettabyte File System (ZFS)

  1. Создать новую VM с размером hdd равным размеру клонируемой. Не запускать VM.
  2. Выполнить:

3_1527667444052_ZFS.jpg

0_1527667444051_Data integrity on ZFS.jpg

SCT Error Recovery Control

andy/blog/2015/11/09/linux-software-raid-and-drive-timeouts/
Т.е. если вы собираете zfs raid-z1*2**3* массив, то вкл. вышеописанного поможет сократить время для восстановления,
если же собираетесь использовать zfs raid-0*1**10*, то вкл. не нужно.

Open vSwitch (OVS)

Open vSwitch — программный многоуровневый коммутатор с открытым исходным текстом, предназначенный для работы в гипервизорах и на компьютерах с виртуальными машинами.

Основные возможности коммутатора:
Учёт трафика, в том числе проходящего между виртуальными машинами с использованием SPAN/RSPAN, sFlow[en] и Netflow.
Поддержка VLAN (IEEE 802.1q).
Привязка к конкретным физическим интерфейсам и балансировка нагрузки по исходящим MAC-адресам.
Работа на уровне ядра, поддержка существующих возможностей Linux по работе в качестве моста.
Поддерживает Openflow для управления логикой коммутации.
Помимо режима на уровне ядра, с меньшей производительностью open vSwitch может работать и с правами пользователя (вне ядра).

Основные области применения:
Замена обычных bridgetools.
Использование в составе Xen Server, Xen Cloud Platform, KVM, VirtualBox, QEMU, ProxMox (начиная с 2.3)
QoS, GRE-туннелирование, индивидуальные политики для виртуальных машин, а также возможность агрегации портов с распределением нагрузки.

--> Использование Open vSwitch в Proxmox:

Pfsense

Нюансы работы pfsense в Proxmox:

I've got a fresh install of 2.3.3-RELEASE-p1 (amd64), running on ovirt (kvm). My guests (only have linux guests) could ping out, but no udp or tcp.

Just selecting the "Disable hardware checksum offload" and rebooting (though I didn't check without rebooting) the pfsense instance did the trick.

I didn't need to change anything on the ovirt/kvm hypervisor - the default offload settings are in place. All guests (pfsense and the linux ones) are using virtio network drivers.

Microsoft Windows OS

->zswap

Вкратце, это технология, позволяющая оптимизировать работу ядра со swap - хранилищем избыточных страниц памяти.

Включение и использование ZSWAP в Proxmox VE и любом современном дистр-ве Linux с ядром >= 3.11

Обновляемся:
apt-get clean; apt-get update; apt-get full-upgrade -y; apt-get autoremove --purge -y; apt-get autoclean

Проверяем включено ли в ядре:
cat /boot/config-$(uname) | grep -i zswap

Если все ОК:
CONFIG_ZSWAP=y

Правим GRUB :
mkdir -vp /etc/default/grub.d

На выбор:
LZ4:
echo 'GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT zswap.enabled=1 zswap.compressor=lz4 zswap.zpool=z3fold zswap.max_pool_percent=25"' > /etc/default/grub.d/zswap.cfg
или
ZSTD:
echo 'GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT zswap.enabled=1 zswap.compressor=zstd zswap.zpool=z3fold zswap.max_pool_percent=25"' > /etc/default/grub.d/zswap.cfg
update-grub
Вкл. модули:
cp -fv /etc/initramfs-tools/modules
for module in lz4 lz4_compress zstd zstd_compress z3fold
do grep -qx "$" /etc/initramfs-tools/modules || echo "$" >> /etc/initramfs-tools/modules
done
update-initramfs -u -k all
Перезагрузка:
reboot
Проверяем:
dmesg | grep -i zswap
Должно быть:
Если выбран LZ4:
.
zswap: loaded using pool lz4/z3fold
.
Для ZSTD:
.
zswap: loaded using pool zstd/z3fold
.
Получаем статистику по ZSWAP:
Статистика:
watch -n1 grep -R . /sys/kernel/debug/zswap/
Сжатие:
cd /sys/kernel/debug/zswap
watch -n1 -x perl -E "say $(cat stored_pages) * 4096 / $(cat pool_total_size)"
Текущие настройки:
grep -R . /sys/module/zswap
Прим. Касаемо строки zswap.zpool=z3fold. По умолчанию на данный момент в linux испол-ся zbud в кач-ве memory allocator. Он обкатан и надежен и работает на любом "железе", но появился более эффективный z3fold:

The zpool parameter controls the management of the compressed memory pool, it is by default set to zbud. With the zbud data allocator, 2 compressed objects are stored into 1 page which limits the compression ratio to 2 or less. The superior z3fold allocator allows up to 3 compressed objects by page. The compression ratio with z3fold typically averages 2.7 while it is 1.7 for zbud.
Однако, следует помнить, что компрессия требует вычислительных мощностей. И чем сильнее сжатие, тем выше требования к "железу".

->FOG Project

FOG можно использовать:

Спасибо за популяризацию Proxmox.

Из мануала по вашим ссылкам:

Proxmox VE сам по себе свободен для применения. Не существует абсолютно никаких платежей включенных в загрузку простого образа ISO и установки полнофункционального кластера Proxmox без оплаты лицензий или подписок.

С официального сайта:

Starting out
€ 5,83/month (per CPU)

Отказ от подписки с точки зрения разработчиков допустим?

Отказ от подписки с точки зрения разработчиков допустим?

Все строго добровольно. Хотите платную поддержку и сверх быструю реакцию на баги - платите. Нет? Пользуйте просто так.

P.s. Вот "увидивили". Был на 146% уверен, что уж вы-то, ув. pigbrother, точно KVM "тискали" :'(

Первый тестовый виртуальный домен поднимал в далеком 2001 году на PIII (Vmware Workstation). ;),
Winows NT DC, рабочие станции Windows NT и 98, выход в интернет через RRAS с диалапом…

Сейчас в продакшн используется ESXi - выбор руководства. Мы посовещались и оно решило ;).
С KVM за довольно долгую карьеру столкнуться, как ни странно, так и не пришлось. Сейчас же хочу покрутить для собственного интереса.

Что порекомендуете - сразу 5.0 или начать с 4.4?

5-ку, ес-но. После установки - сразу обновить.

Если в будущем в продакшн соберетесь, то использовать ZFS raid от 2-ух (raid1), а лучше - 4 диска (raid10). Zfs raid идет из коробки и в самом начале установки конфигурируется.

Proxmox поддерживает nested virtualization? Хочу попробовать в ESXi. Нет под рукой свободного полноценного железа.

Все это исключительно для тестов, нормальной работы от такого мутанта никто не ждет.

Nested virtualization (вложенная виртуализация, т.е. возможность запускать гипервизор в гипервизоре) на Proxmox:

Миграция с других гипервизоров (локально).

Внимание! Формат raw - это т.н. "сырой" формат образов дисков. Перед дальнейшими операциями убедиться в наличие
свободного места.

Подключаемся по SFTP к Proxmox. В Win это можно сделать с пом. WinSCP или FAR.

Забрасываем образ(ы) диска(ов), к-ые мы хотим подкинуть к ВМ в предварительно созданную временную папку.

Прим. Если у вас ova-образ - сперва распаковываем
tar -xvf disk.ova

Конвертируем (на примере vmware .vmdk)
qemu-img convert -p -O raw disk.vmdk disk.raw

Смотрим размер получившегося
ls -ahl

Cоздаем через gui ВМ с диском(-ми) не меньшего размера. ВМ не запускать!

Смотрим что у нас получилось (у вас путь к образам дисков может быть другой)
ls -al /dev/zvol/rpool/data/

Разворачиваем образ диска в диск ВМ
dd if=/path/to/file/disk.raw of=/dev/zvol/ZFS-Pool-Name/vm-XYZ-disk-X
ZFS-Pool-Name и vm-XYZ-disk-X изменить на свои

После
qm rescan

Upd2.
Короткий вариант. Проверил - работает.
qemu-img convert -p -O raw disk.vmdk /dev/zvol/ZFS-Pool-Name/vm-XYZ-disk-X
ZFS-Pool-Name и vm-XYZ-disk-X изменить на свои
qm rescan

Запускаем ВМ. Проверяем.

Upd3.
Специально для тех, кто переходит с MS Hyper-V на Proxmox (KVM):

Подкидываем **vhdx-**образ по SFTP во временную папку на Proxmox.

Далее повторяем ранее описанное (т.е., создаем через gui ВМ с диском необх. размера, но не вкл. её! )

Команда для конвертации:
qemu-img convert -p -O raw disk.vhdx /dev/zvol/ZFS-Pool-Name/vm-XYZ-disk-X
ZFS-Pool-Name и vm-XYZ-disk-X изменить на свои
qm rescan

Запускаем ВМ. Проверяем.

Upd4.
И для догадливых (типа меня, ага 8))
Аналогично описанному выше (только наоборот ;)) можно конвертировать zfs-диски Proxmox-а во все самые распространненные форматы:

Сперва выкл. ВМ, конечно.

VHD\VHDX (Hyper-V)
qemu-img convert -p -O vhdx /dev/zvol/ZFS-Pool-Name/vm-XYZ-disk-X /path/to/file/disk.vhdx
ZFS-Pool-Name , vm-XYZ-disk-X и /path/to/file/ изменить на свои

Так что, добро пожаловать в мир открытого ПО. Для тех кто еще не решился )

Миграция Windows 2000 с динамическими дисками dynamic disc

Дано:
Старый сервер с Windows 2000 Server на программном raid1 из 2-ух дисков. На сервере живет оч. важное для клиента ПО.

Задача:
(Бережно) перенести в Proxmox VE (KVM)

  1. Linux ничего "не знает" о динамических дисках Windows, что не дает возможность использовать "в лоб" Clonezilla и Partclone для миграции локально или по сети.
  2. Windows 2000 не имеет в своем составе службу Volume Shadow Copy, что не позволяет использовать, напр., Disk2vhd для промежуточной миграции в vhd(x) и дальнейшего переноса на PVE.

Решение:
Нам понадобятся Clonezilla Live, Gparted Live, драйверы на сетевой адаптер Intel e1000.

Мигрируем удаленно.

Предупреждение. Все ниже описанное вы делаете на свой страх и риск. Внимательно проверяйте какие диски копируете и куда принимаете. Крайне желательно иметь резервные копии данных.

И так. Как сказал один оч. известный и достойный Человек: "Поехали!"

Принимающая сторона:
На Proxmox создаем ВМ с размером диска как у отдающей стороны.
Загружаемся с SystemRescueCD в эту ВМ.
Настраиваем сет. параметры (net-setup имя-интерфейса) или получаем их по dhcp. Проверить полученные\настроенные сет. параметры - ip a s

На отдающей стороне:
Загружаемся с SystemRescueCD.
Настраиваем сет. параметры (net-setup имя-интерфейса) или получаем их по dhcp. Проверить полученные\настроенные сет. параметры - ip a s

Запускаем на принимающей стороне:
nc -w10 -vvnlp 19000 | pigz -5 -dfc | cat > /dev/disk-name, где :

-w10 - время ожидания данных в сек. на приним. стороне (меняется на ваше усмотрение).
19000 - номер порта, к-ый слушает netcat и принимает на него данные от отдающей стороны (меняется на ваше усмотрение)
pigz -5 - степень сжатия (меняется на ваше усмотрение)
disk-name - имя диска внутри ВМ (меняете на свое)

Считаем до трех и запускаем на отдающей стороне:
pv /dev/disk-name | pigz -5 -fc | nc -vvn remote-server-ip 19000, где:

disk-name - имя диска, к-ый вы хотите передать (узнается по fdisk -l)
pigz -5 - степень сжатия (меняется на ваше усмотрение)
remote-server-ip - ip-адрес\имя удаленного сервера-приемника
19000 - номер порта удаленного сервера-приемника

Всё. Скрещиваем пальцы, чтобы линк между отдающей и принимающей сторонами не упал и ждем окончания процесса.
После удачного окончания выкл. ВМ на принимающей стороне. Извлекаем в gui из вирт. привода SystemRescueCD и пробуем загрузиться.

Пример с SSH (кому необходима секьюрность):

Принимающая сторона:
Создаем ВМ с размером диска как у отдающей стороны.
Загружаемся с SystemRescueCD в эту ВМ.
Настраиваем сет. параметры (net-setup имя-интерфейса) или получаем их по dhcp. Проверить полученные\настроенные сет. параметры - ip a s
Смотрим какие диски у нас есть - fdisk -l. Запоминаем\записываем имя нужного нам диска.
Более ничего на принимающей стороне делать\запускать не надо.

На отдающей стороне:
Загружаемся с SystemRescueCD.
Настраиваем сет. параметры (net-setup имя-интерфейса) или получаем их по dhcp. Проверить полученные\настроенные сет. параметры - ip a s
Запускаем команду:
pv /dev/disk-name | pigz -5 -fc | ssh remote-server-ip "cat > /dev/disk-name", где :

disk-name - имя диска на принимающей стороне, к-ое мы внимательно выбрали и запомнили ранее
remote-server-ip - ip\имя примающей стороны

Ожидаем удачного окончания процесса передачи. После выкл. ВМ на принимающей стороне. Извлекаем в gui из вирт. привода SystemRescueCD и пробуем загрузиться.

Читайте также: