Pull to refresh

Comments 36

Спасибо за статью. Пара вопросов:
— Почему Linux Bridge, а не OVS?
— Неотключение (ненастройка) IPv6 — подразумевает некий смысл или опущено ради упрощения?
— Что бы Вы посоветовали в плане storage если в качестве хранилки выступает обычный Linux-сервер (в принципе можно не-Linux, тут вопрос в бюджетности) с пачкой винтов? ZFS over ISCSI?
— Почему Linux Bridge, а не OVS?

Не нашел для себя каких то очевидных бенефитов.

— Неотключение (ненастройка) IPv6 — подразумевает некий смысл или опущено ради упрощения?

Есть проекты где живем с IPv6 но тут просто для упрощения материала.

— Что бы Вы посоветовали в плане storage если в качестве хранилки выступает обычный Linux-сервер (в принципе можно не-Linux, тут вопрос в бюджетности) с пачкой винтов? ZFS over ISCSI?

я за ZFS, но за локальный. Никакие сетевые решения рекомендовать не могу.
Приведите конфиг настройки ipv6 для proxmox и гостевых машин, в кластере и без
>Не нашел для себя каких то очевидных бенефитов.
А я себе нашёл!

Using Open vSwitch in Proxmox
Using Open vSwitch isn't that much different than using normal linux bridges. The main difference is instead of having a bridge per vlan, you have a single bridge containing all your vlans. Then when configuring the network interface for the VM, you would select the bridge (probably the only bridge you have), and you would also enter the VLAN Tag associated with the VLAN you want your VM to be a part of. Now there is zero effort when adding or removing VLANs!

pve.proxmox.com/wiki/Open_vSwitch#Using_Open_vSwitch_in_Proxmox

У меня 1 мост и влан указываю в виде цифры в свойствах сетевой карты.

Почему не используете ISO от Proxmox проекта? Имхо, из-за этого статья выглядит слишком сложной и пугающей.
У меня 1 мост и влан указываю в виде цифры в свойствах сетевой карты.

Так простой бридж без OVS именно так и работает.
PS использую proxmox кластер из 2-х нод (да-да) с общим хранилищем iSCSI multipath 10G. Можете задавать свои вопросы.
Задаю. Какая файловая система используется?
Эээ, где? Кластерной файловой системы в данном случае нет.
Хранилка отдаёт LUN, proxmox этот диск использует как LVM volume group. Образ каждого диска виртуалок это отдельный lvm volume.
Storage:_LVM
Ничего не мешает создать отдельный volume на общем хранилище, примонтировать его на одной ноде кластере, раздать на другие ноды через NFS, но это имеет смысл только для простых файлов типа iso или бэкапов, тк весь обмен с этим разделом будет через один узел.
Упал сервер, например. Вы руками переподключаете LUN к другому серверу, поднимаете виртуалки?
LUN и LVM раздел общий, подключены к узлам одновременно, структура раздела синхронизируется самим проксмоксом.
На одном луне может быть, например, 10 образов, пять запущены на одном узле, другие на другом, мигрировать можно как онлайн, так и офлайн.
Виртуалки в случае падения должны перезапускаться сами при включении отдельного HA, по умолчанию выключен.
Понятно, это тогда получается виртуалки лежат в сыром виде на CLVM (Clustered LVM) без файловой системы?

И получается, в таком случае нет возможности делать снепшоты?

А как делаете бекапы?

(спасибо за ответы :))
да, CLVM
Снапшотов нет, это печально. Но и про LVM-снапшоты на простом локальном разделе тоже говорят, что все плохо. В итоге остается или локальное хранилище с qcow-образами, или ceph, или NFS/SMB-хранилище.
Для винды бэкапы через гостевой veam agent. С ним правда есть свои косяки, вида влияния на установленными в системах SQL-сервера.
Для linux, как всегда зоопарк, от штатных full-бэкапов проксмокса до скриптов внутри системы, хотя можно тоже использовать veam для единообразия.
Спасибо за ответы.

Избалованные VMware, ищем какие-нибудь другие варианты, и как-то пока… не густо.

GFS2 не смотрели?
Читал, но решил, что внедрять опасно, ибо обслуживать потом эту экзотику будет некому.
В принципе могу попробовать протестировать с разделом на пару терабайт. Только с методикой нужно определиться.
а если у вас несколько VLAN? Разве вы не вынуждены использовать отдельные мосты под каждый VLAN (bridge per vlan)?

Просто мне требовалось обеспечить создание ВМ в различных подсетях. Для этого нужно было принять транковое соединение от сетевого оборудования и создать мост с лёгкой поддержкой VLAN. Нужно было учесть что VM может переезжать с ноды на ноду в онлайн и такая сетевая конфигурация должна быть у всех нод кластера. Выбрал OVS из-за single bridge containing all your vlans
От свича к серверу идёт транк с тегированным трафиком. В гипервизоре настроен просто бридж. Виртуалки видят уже трафик своей сети.
Если у вас несколько серверов, соответственно настраиваются нужные порты на свиче.
Производилось ли нагрузочное тестирование zfs? Еще год-два назад при повышении нагрузки на диски, iowait повышался в разы сильнее, чем на обычном ext4
Такое делал habr.com/ru/post/344204
В целом, под нагрузкой zfs показывает себя прекрасно. Я очень доволен. Разумеется он существенно медленее чем ext4 но дает целый ряд других плюсов.
Зачем устанавливать Nginx, когда Proxmox умеет из коробки генерировать Lets Encrypt сертификат. Совет лишний и я бы даже сказал вредный.
Без настроек IPv6 с примером тех же Hetzner/OVH статья еще меньше имеет смысл. Так же нет примера с DHCP.
Про Vlan-ы датацентров для новичков — это в плюс.
Про ZFS ничего не скажу, так как с ним не работал.

Почему же вредный? Я бы сказал "не полный", потому что в данном случае порт 8006 торчит наружу. Лично я ставил nginx и закрывал внешний доступ для всех портов веб интерфейса proxmox. По итогу только только 80 и 443 открыты снаружи

А не подскажите что можно подкрутить, чтобы Proxmox сам обновлял сертификат, если на той же машине поднят Nginx (для своих целей, но на 80/443 порту). А то он пытается поднять свой вебсервер для проверки и естественно обламывается.
Установить acme.sh, генерировать сертификат через webroot или DNS API. После генерации сертификата, нужно его установить через команду:
acme.sh --install-cert --ecc -d example.com --key-file /etc/pve/local/pveproxy-ssl.key --fullchain-file /etc/pve/local/pveproxy-ssl.pem --reloadcmd "service pveproxy restart"
Это понятно, я спрашивал как этого достичь средствами Proxmox.
Нашел только здесь, пока не разобрался как сделать override systemd.
Имхо достаточно или указать не 80-ый порт для поднятия сервера Acme, или на время обновления уложить Ngnix. Хотелось бы, чтобы это делалось автоматически.
А какая разница, будет это прописано в кроне pve или в кроне юзера root?
Как видно по ссылке, acme update запускается не в кроне, а через systemd. Порт, как я понял, поменять нельзя «из соображений безопасности» (хоть и спорный вопрос). Он наглухо прошит в PVE::API2::ACME::StandAlone.pm
Как вариант костыля можно закомемнтировать поднятие сервера и использовать работающий Nginx. Меня лично бы устроил запуск «service nginx stop» -> acme update -> «service nginx start». Вот как бы обернуть этот update этой парой команд?
Вы меня наверное не поняли. Отключаете acme, который дает проксмокс и делаете как я отписал.

Добрый день. Спасибо за статью! Вопросы:


  • почему установка не с помощью ISO-образа, а на готовый Debian?
  • На какую конфигурацию хранилища устанавливаете ОС-хост? Сам Proxmox рекомендует использовать hardware RAID (но только поддерживаемый). Есть статьи, в которых для подобных систем (FreeNAS на ZFS) вообще рекомендуют устанавливать на рейд из внешних SSD (или того хуже, USB-стики).
  • У меня сейчас Proxmox работает на одном диске в ext4, думаю на рейд перебраться — интересны лучшие практики по железу. Если для основного файлового хранилища уже есть hardware RAID (PREC H330 и MegaRAID SAS 9341-4i), стоит ли его выдергивать и использовать ZFS RAID 10? Оперативки хватает.
Давайте чуть улучшим статью:
— Собираетесь ставить Proxmox на ZFS? Тогда выносите /boot отдельно на ext2/ext4 (поэтому например ставить нужно не с помощью ISO образа) а причина вот в чём: иногда после обновления ядра, либо загрузчика система при загрузке не видит «root zfs pool» и не хочет загружатся. С использованием hardware RAID вероятность возрастает. Ошибка встречается очень редко, но выловить её до сих пор не могут. У меня за 2 года из 5 серверов 2 так легло после перезагрузки. Лечилось очень просто: загрузочная USB флешка с ядром.
— ZFS очень любит много память, не не так: он ЖРЁТ память. Планируйте что 1/3 доступной памяти скушает ZFS. Серверам с 32ГБ памяти и ZFS можно только сочувствовать. При нехватке памяти могут происходить весьма забавные вещи: фризы, перезагрузки, непонятные тормоза.
— Вот случился у вас факап: бэкап там замер или просто там kernel panic какой нибудь — виртуалку не влючить, не выключть, не забэкапить. Кто виноват и что делать? qm unlock [vm_id] если kvm и pct unlock [vm_id] если контейнер помогут разблокировать машину. Будте готовы к тому, что после таких чудес сервер может зависнуть при перезагрузке. В таком случае поможет помочь только резет
— любителям бесплатных обновлений без подписки (pve-no-subscription) не забываем, версия для тестирования, не для продакшена: может прилететь ядро без драйверов на сетевые карты (было уже один раз такое) или например с кривыми дровами не поддерживающими MTU более 1500 (тоже было) в обоих случаях сервер просто не видел сеть. Без KVM решать такие проблемы ещё то удовольствие.
— ZFS она такая хорошая: снапшоты там, быстрая миграция, но всё неспеша. Если у вас больше 2х серверов, то может имеет смысл посмотреть в сторону CEPH. Если собирать не требовательный кластер из барахла, например 3 сервака ( с 32 Гб памяти на борту, 2 сетевых 1 ГБ карты и разных дисков), то CEPH будет отличной альтернативой с бонусом в виде живой миграции и возможностью использовать полудохлые диски. По скорости примерно выйдет 100-150 Мб в сек чтение/записть. Хотя тут тоже есть нюансы…
— там всякие мелочи вроде размеров ZFS ARC, KSM sharing для серверов с малым количеством памяти, отправки уведомлений по элкетронке с использованием внешних серверов через postfix, установки pigz или прописывания путей для временных файлов для бэкапов или в конце концов установки кластера из двух серверов с тотемом тоже можно было бы рассказать
Подскажите для чего вы заказываете отдельную подсеть у hetzner?
Заметка: во время установки будет настраиваться Postfix и grub — одна из них может завершиться с ошибкой. Возможно, это будет вызвано тем, что хостнейм не резолвится по имени. Отредактируйте hosts записи и выполните apt-get update

По официальному руководству это даже требуется сделать.

Всем привет )

1. Proxmox VE умеет ZFS «из-коробки» уж пару лет как. Сразу. Без танцев. Прямо в установщике.
2. Только OVS. Попробуйте на linux bridge VLAN «на лету» без перезагрузки ВМ на интерфейсе поменять\добавить.
3. ZFS любит ОЗУ. Она же copy-on-write и ARC cache в ней хранит (l2arch cache нужно хранить на SSD\NVM).
Настраивать ZLOG, к-ый хранит лог транзакций, как я понял, настраивать рекомендуют только(?) для NAS. В случае с PVE я его не пользую (ups везде имеются).
ZFS единственная из ФС (BTRFS?), к-ая проверяет CRC записываемых данных. Но преувеличивать ее аппетиты по ОЗУ не стоит. У меня есть десяток PVE в филиалах c 8ГБ ОЗУ (бюджет-с) с 2-4 ВМ на каждом. Вполне приемлемо.
Мало кто еще и zswap пользует с lz4\zstd-сжатием. Оч хорошая штука. Настройте и будет немного счастья.
4. Везде, где пользуют ZFS КРАЙНЕ НЕ РЕКОМЕНДУЮТ HW RAID — только raid средствами самой ZFS. Напомню, что для спокойного сна требуется иметь ЗИП в виде такого же HW RAID или мат. платы с HW RAID. Иначе можно сильно погореть при выходе из строя ЕДИНСТВЕННОГО HW RAID (отдельного или распаянного на
мат. плате). Особенно, если вы живете вдали от столиц.

Все это и многое другое описано в моей небольшой вики по Proxmox, ZFS, pfsense etc — forum.netgate.com/topic/120102/proxmox-ceph-zfs-pfsense/
Периодически обновляю. Пользуйте )
Upd1.
5. Почитайте про VDO от RH. Крайне «приятно» для дедупликации\deduplication
forum.proxmox.com/threads/virtual-data-optimizer-vdo.42838/
www.marksei.com/vdo-linux-deduplication
blog.delouw.ch/2018/12/17/using-data-deduplication-and-compression-with-vdo-on-rhel-7-and-8/
www.linuxsysadmins.com/installing-and-configuring-virtual-data-optimizer-vdo-on-centos7
hobo.house/2018/09/13/using-vdo-on-centos-rhel7-for-storage-efficiency/
rhelblog.redhat.com/2018/04/12/how-to-set-up-a-new-virtual-data-optimizer-device-using-cockpit-web-admin-console/

ceph.com/geen-categorie/shrinking-your-storage-requirements-with-vdo/
www.slideshare.net/GlusterCommunity/data-reduction-for-gluster-with-vdo

Upd2.
— любителям бесплатных обновлений без подписки (pve-no-subscription) не забываем, версия для тестирования, не для продакшена: может прилететь ядро без драйверов на сетевые карты (было уже один раз такое) или например с кривыми дровами не поддерживающими MTU более 1500 (тоже было) в обоих случаях сервер просто не видел сеть. Без KVM решать такие проблемы ещё то удовольствие.

Для этого нужно иметь МИНИМУМ ДВЕ копии ядра в /boot. Скрипт к-ый, оставляет в /boot указанное кол-во PVE kernel — github.com/algodelinux/purge-old-kernels При наличие кого-то, кто имеет доступ к монитору и клав-е на том конце, можно попросить при перезагрузке PVE выбрать предыдущую версию PVE kernel. Работает. Лично сталкивался.

Upd3.
Кому нужен хороший корпус для «самосбора» — посмотрите на Cooler Master N400. Количество внутренних отсеков 3.5" из коробки — ВОСЕМЬ. Все провода заводятся ЗА крепежную панель мат. платы.
На БП, ес-но, не стоит экономить. Берите из приличных и обязательно (!) с отстегивающимися кабелями (cabel management). Реaльно экономит место в корпусе.
А есть хак, чтобы выставить русский язык по умолчанию при логине в веб интерфейс?

Я ковырял /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js ➜ return Proxmox.Utils.defaultText + ' (Russian)'; но оно долго не работает. Кажется до первой перезагрузки или обновления.

И второй вопрос. Как после обновления Proxmox вычищать старые ядра? Нужно ли этот процесс автоматизировать. Ведь раздел boot нерезиновый.
Sign up to leave a comment.

Articles