Выделенный сервер под Proxmox: как распределить память, диски и сеть Print

  • 0

Планируете разместить на одном выделенном сервере сайты, базу данных и несколько служебных виртуальных машин? Сначала оставьте ресурсы самому Proxmox и хранилищу, затем распределите память между ВМ и предусмотрите запас. Диски выбирайте по полезной ёмкости и нагрузке, а схему сети — по условиям подключения у провайдера.

Ниже — подход для одного физического сервера с локальными дисками. Он подходит, если допустим перерыв на восстановление при отказе хоста. Дисковое зеркало помогает пережить отказ накопителя, но не обеспечивает работу виртуальных машин при поломке всего сервера.

Сколько памяти оставить Proxmox и виртуальным машинам

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

Память расходуют гостевые системы, службы Proxmox, процессы виртуализации QEMU и дисковый кэш. Поэтому сумма памяти ВМ не должна автоматически равняться всей RAM сервера.

Условный пример для сервера с 128 GiB RAM и ZFS:

Назначение Бюджет памяти
Proxmox, системные службы и накладные расходы QEMU 8 GiB
Кэш ZFS ARC До 16 GiB
ВМ с базой данных 32 GiB
Две ВМ приложений По 16 GiB, всего 32 GiB
ВМ фоновых задач 16 GiB
Служебная ВМ 8 GiB
Нераспределённый запас 16 GiB

В этом примере гостям выделено 88 GiB. Остальное — бюджет хоста, кэша и резерва. Это исходный расчёт, а не норматив Proxmox и не гарантия достаточной производительности. Бюджет хоста проверяют под нагрузкой; при другом составе ВМ он изменится. GiB — двоичные гигабайты; в поле памяти с единицей MiB значение 16 GiB соответствует 16384 MiB.

В настройках ВМ → Hardware → Memory проверьте максимальную и минимальную память; при необходимости откройте расширенные настройки. Если они равны, объём фиксирован. Если минимум меньше максимума и работает драйвер ballooning, Proxmox может возвращать часть памяти гостя хосту. Ballooning — механизм изменения доступной гостевой системе памяти; слишком низкий минимум способен вызвать подкачку или нехватку памяти внутри ВМ.

Для базы данных с предсказуемым потреблением разумно начать с одинаковых значений минимума и максимума. Для некритичных ВМ динамическое распределение можно включать после проверки под нагрузкой. Само наличие Ballooning Device не означает, что память обязательно меняется: устройство используется и для статистики.

Для первого рабочего сервера безопаснее укладывать максимумы ВМ вместе с бюджетом хоста в физическую RAM. Экономию от KSM, объединяющего одинаковые страницы памяти, не считайте гарантированным запасом: при изменении данных она уменьшается.

Как проверить кэш ZFS и настоящую нехватку RAM

ARC — кэш ZFS в оперативной памяти. Для новых установок Proxmox начиная с версии 8.1 установщик задаёт предел 10% RAM, но не более 16 GiB. На сервере, который обновлялся со старых версий, настройки могут отличаться. Поэтому совет «ZFS всегда занимает половину памяти» не подходит для расчёта нового узла.

Если на хосте используется ZFS, посмотрите текущий размер ARC и его предел:

awk '$1 == "size" || $1 == "c_max" { printf "%s: %.2f GiB\n", $1, $3 / 1073741824 }' /proc/spl/kstat/zfs/arcstats

size — текущий размер кэша, c_max — верхний предел. Если предел выше заложенного бюджета, сначала пересчитайте доступную для ВМ память и уменьшите их суммарное выделение либо выберите сервер с большей RAM. Заложенные в примере 16 GiB не означают, что лимит нужно обязательно повышать до этого значения. Слишком сильное уменьшение ARC может ухудшить работу дисков.

Для диагностики выполните на самом хосте от root:

free -h
vmstat -y 1 10
journalctl -k -b --no-pager | grep -Ei 'out of memory|oom-kill|killed process'
  • Мало free, но есть available. Часть памяти можно использовать после освобождения кэшей. Один показатель free не доказывает нехватку RAM.
  • Swap занят, но si и so в vmstat близки к нулю. Сейчас активной подкачки может не быть. Повторите наблюдение в рабочий пик, прежде чем менять настройки.
  • Под нагрузкой постоянно идёт подкачка и растут задержки приложений. Проверьте потребление внутри ВМ, распределение памяти и ARC. Возможно, нужно уменьшить одновременную нагрузку или добавить RAM.
  • Есть сообщения OOM или Killed process. В текущей загрузке системы процесс завершался из-за нехватки памяти либо ограничения памяти. Определите процесс по записи. Если проверка ничего не вывела, это означает лишь отсутствие совпадений в просмотренном журнале.

Если нехватка памяти возникает только внутри одной ВМ, увеличение RAM всего сервера само по себе её не исправит: пересмотрите лимит этой ВМ и настройки приложения. Отключать swap или произвольно уменьшать ARC без выяснения причины не стоит.

Как выбрать диски: зеркало, два зеркала или аппаратный RAID

Для ВМ с базами данных и активной записью важны задержки и IOPS — количество операций ввода-вывода в секунду. Большая ёмкость HDD не означает, что он справится с одновременными запросами нескольких систем. Для такой нагрузки рассматривайте серверные SSD или NVMe; уточняйте ресурс записи и наличие PLP — защиты от потери питания.

Схема Когда выбирать Что учитывать
Два диска в зеркале ZFS Небольшой узел, умеренная нагрузка, ограниченное число накопителей Полезная ёмкость примерно равна одному диску. Можно потерять один накопитель.
Четыре диска: два зеркала в одном пуле ZFS Несколько активно работающих ВМ, нужен больший запас по дисковым операциям Примерно половина суммарной ёмкости. Допустим отказ одного диска в каждой паре; потеря обоих дисков одной пары означает потерю пула.
Аппаратный RAID и LVM-thin Сервер уже предоставляется с подходящим RAID-контроллером и защищённым кэшем записи Контроллер отвечает за избыточность дисков, LVM-thin — за размещение виртуальных томов. Нужен отдельный контроль состояния массива.

ZFS должен видеть физические накопители напрямую: через штатный контроллер без RAID либо HBA — адаптер, который передаёт диски операционной системе без объединения в массив. Не накладывайте ZFS на аппаратный RAID с собственным управлением кэшем. При заказе уточняйте режим контроллера заранее.

RAIDZ имеет смысл рассматривать, когда приоритет — ёмкость и характер нагрузки это допускает. Для обычного набора ВМ зеркала часто удобнее по случайным операциям. Универсального обещания скорости нет: проверять нужно выбранные диски с вашей нагрузкой.

При двух дисках можно разместить Proxmox и ВМ на общем зеркале. Если накопителей больше, отдельная зеркальная пара под систему упростит обслуживание, но потребует дополнительных дисков. Разные разделы одного накопителя или разные наборы данных одного пула не устраняют конкуренцию за его производительность.

Схему выбирают до установки. Если на дисках уже есть данные, создание нового пула или массива рассматривайте как переустановку: сначала сделайте внешнюю копию и проверьте восстановление.

Куда положить ВМ, ISO и снимки — и сколько места оставить

Названия local, local-lvm и local-zfs обозначают хранилища Proxmox, а не обязательно разные физические диски. В Datacenter → Storage посмотрите тип, путь или пул и разрешённое содержимое.

Обычно local — каталог для ISO, шаблонов и файлов резервных копий. LVM-thin хранит виртуальные диски, поэтому его отсутствие в выборе ISO при создании ВМ нормально: нужное хранилище выбирают позже, на вкладке дисков. Убедитесь, что ISO и временные файлы не заполняют системный раздел.

Считайте ёмкость после избыточности. Например, четыре накопителя по 1,92 TB в двух зеркалах дают около 3,84 TB, или 3,49 TiB, до служебных расходов. Из этого объёма потребуются место для системы, данные ВМ, рост, снимки и свободный запас. На экономию от сжатия заранее лучше не рассчитывать.

Для первоначального плана можно оставить около 20% пула свободными и настроить предупреждение при заполнении до 80%. Это выбранный запас, а не обязательный порог Proxmox. Если за время вашей реакции сервис способен записать больше оставшегося места, предупреждать нужно раньше.

Тонкое выделение места, или thin provisioning, не создаёт дополнительную ёмкость. Оно позволяет выдать ВМ виртуальный диск большого размера, занимая физические блоки по мере записи. Свободное место внутри гостевой ОС при этом не гарантирует свободного места в общем пуле.

На хосте проверьте состояние хранилищ:

pvesm status
df -h / /var/lib/vz

Для LVM-thin дополнительно выполните:

lvs -a -o vg_name,lv_name,lv_size,data_percent,metadata_percent

В строке тонкого пула контролируйте Data% и Meta%: заполнение данными и метаданными. Оба показателя должны оставаться ниже 100% с запасом. Метаданные могут закончиться раньше места для данных.

Для ZFS используйте:

zpool status
zpool list
zfs list -o name,used,avail,refer,mountpoint

Для исправного пула ожидается ONLINE без необъяснённых ошибок чтения, записи и контрольных сумм. DEGRADED требует проверки дисков и восстановления избыточности. Доступное место смотрите также в AVAIL нужного набора данных: на него влияют ограничения и резервирование.

Снимки сохраняют прежние блоки и расходуют место по мере изменений. Задайте им срок хранения. Ненужный снимок удаляйте через ВМ → Snapshots, только когда он больше не нужен для отката и есть подходящая резервная копия. После удаления повторите проверку пула: освободятся лишь блоки, которые больше нигде не используются.

Если после удаления файлов в гостевой ОС место в пуле не возвращается, проверьте Discard в параметрах виртуального диска и поддержку TRIM в гостевой системе. Для поддерживаемой файловой системы Linux команда fstrim -av внутри ВМ передаст сведения о свободных блоках. Затем сравните показатели хранилища; блоки, удерживаемые снимками, останутся занятыми.

При приближении к пределу остановите создание новых дисков и снимков, сократите ненужное хранение либо заранее расширьте хранилище. Если ВМ уже получила io-error из-за полного пула, увеличение её виртуального диска не поможет. Сначала нужно восстановить свободное место в пуле, затем проверить файловую систему и приложение. Заполнение метаданных LVM-thin до 100% может потребовать отдельного восстановления.

Как распределить сеть и нужны ли отдельные IP всем ВМ

Сначала получите у провайдера адреса, префиксы, шлюз, условия маршрутизации и ограничения на MAC-адреса. Дополнительный IP сам по себе не определяет способ подключения ВМ.

Схема Когда подходит Ограничение
Частные адреса и NAT — выход через общий публичный IP Один публичный IPv4, внутренние ВМ, публикация сайтов через обратный прокси, направляющий запросы по доменному имени Входящие соединения требуют правил перенаправления; один внешний порт нельзя независимо отдать нескольким ВМ.
Bridge с публичными адресами ВМ Провайдер разрешает такую схему и нужные MAC-адреса Может потребоваться выданный или зарегистрированный виртуальный MAC.
Routed subnet Провайдер маршрутизирует выделенную подсеть через ваш сервер Нужно настроить маршрутизацию и фильтрацию пересылаемого трафика.

Bridge — виртуальный коммутатор. На одном сервере можно отделить внешнюю сеть от внутреннего моста без физического порта. Например, приложения и база данных общаются по частным адресам, а наружу опубликован только входной прокси. Само создание внутреннего моста не добавляет доступ в интернет: для него нужен шлюз.

Проверьте соответствие в Узел → System → Network и ВМ → Hardware → Network Device. Если хост доступен, а ВМ с дополнительным IP не выходит в сеть, сравните её мост, адрес, шлюз и MAC с условиями провайдера. В одном обсуждении Proxmox причиной оказался неверный виртуальный MAC в панели хостера; после его замены связь появилась.

Несколько виртуальных интерфейсов не увеличивают полосу физического порта. Внешние запросы и передача резервных копий могут конкурировать за одно соединение. Для большого объёма копий рассмотрите отдельный порт или приватную сеть; VLAN разделяет трафик логически, но сам по себе не добавляет пропускную способность.

Два порта по 1 Гбит/с также не гарантируют 2 Гбит/с для одного соединения. Для LACP нужна поддержка со стороны коммутатора, а распределение обычно идёт между потоками. Уточняйте и скорость порта, и разрешённую полосу, и лимит трафика.

Как менять сеть и сохранять доступ к серверу

До изменений откройте и проверьте удалённую консоль IPMI/KVM: она должна работать независимо от сети Proxmox. Сохраните текущий /etc/network/interfaces, подключаемые файлы из /etc/network/interfaces.d/, если они используются, и действующие правила межсетевого экрана.

При установленном ifupdown2 применяйте изменения через Apply Configuration. После ручного редактирования используется ifreload -a. Если связь пропала, через удалённую консоль восстановите сохранённую конфигурацию и примените её повторно. Не используйте удалённое выключение рабочего моста через ifdown как обычный способ обновить настройки.

Административный интерфейс Proxmox на TCP 8006 и SSH ограничьте адресами администраторов или VPN. Правила встроенного межсетевого экрана находятся в разделах Datacenter → Firewall и Узел → Firewall. До включения запретов добавьте разрешения для управления и необходимых служебных соединений; учитывайте IPv6, если он настроен.

После изменения откройте новое подключение SSH и новую сессию панели с разрешённого адреса. С постороннего адреса доступ к управлению должен блокироваться. Старая открытая SSH-сессия не подтверждает, что новые подключения разрешены. При ошибке верните прежние правила через консоль.

Отдельно проверьте из ВМ доступ к шлюзу, разрешение DNS и нужные соединения с внешними сервисами. При недоступном шлюзе проверяют адресацию и подключение к мосту; если адреса доступны, а имена не разрешаются — DNS. При рабочем исходящем доступе, но недоступном сайте снаружи — правила публикации и входящую фильтрацию.

Как убедиться, что распределение выдержит рабочую нагрузку

Перенесите сначала одну некритичную ВМ или тестовую копию сервиса. Затем запустите вместе те задачи, которые будут пересекаться в работе: запросы к приложению, операции базы данных, фоновые задания и резервное копирование. Проверка одной простаивающей ВМ почти ничего не говорит о возможностях узла.

Сравните время ответа приложения без копирования и во время него. Одновременно наблюдайте память, заполнение пулов, дисковую задержку и сетевой трафик. Если замедление появляется только при копировании, ограничьте его скорость в задании резервного копирования или перенесите расписание. Если проблема остаётся в обычной нагрузке, пересматривайте ресурсы узла и лимиты ВМ.

Для оценки дисков на хосте используйте iostat из пакета sysstat. Если пакет отсутствует, установите его командой apt install sysstat, затем выполните:

iostat -xz 1 10

Первый отчёт содержит средние значения с загрузки; оценивайте последующие. r_await и w_await показывают среднюю задержку чтения и записи в миллисекундах, aqu-sz — очередь запросов. Рост очереди и задержек вместе с замедлением приложения указывает на конкуренцию за диски. Одна цифра %util для NVMe или RAID не определяет предел производительности.

Процессор тоже проверяют под общей нагрузкой: наличие свободной RAM не компенсирует очередь задач на CPU. Не назначайте каждой ВМ все доступные потоки «на всякий случай» — начните с потребностей приложения и увеличивайте число vCPU по результатам замеров.

Резервную копию храните за пределами этого физического сервера: например, на отдельном Proxmox Backup Server или подходящем сетевом хранилище. Копия на соседнем диске того же хоста удобна для некоторых восстановлений, но недоступна вместе с ним при его отказе.

В Datacenter → Backup настройте задание, целевое хранилище и срок хранения. Проверьте состав копии, включая нужные диски ВМ. Для базы данных отдельно определите способ получения согласованной копии: он зависит от СУБД и приложения.

После первого успешного задания восстановите копию под новым идентификатором VMID. До запуска отключите её сетевые интерфейсы либо подключите к изолированному тестовому мосту, чтобы не получить дубликат IP и повторный запуск рабочих задач. Проверьте загрузку, наличие данных и работу приложения. Запишите время восстановления — именно оно показывает, подходит ли вам один сервер с резервными копиями.

Что уточнить перед заказом выделенного сервера

Передайте провайдеру список ВМ, пиковую потребность в RAM, полезную ёмкость после зеркалирования, требования к накопителям, сети и удалённой консоли. Отдельно заложите внешнее хранение резервных копий и место для роста.

На странице выделенных серверов HSTQ можно выбрать конфигурацию или запросить индивидуальный подбор. Для Proxmox заранее согласуйте число и модели дисков, режим контроллера, схему дополнительных IP, сетевые порты и доступность IPMI/KVM на выбранной площадке. Так требования к памяти, дискам и сети будут зафиксированы до переноса сервисов.


Was this answer helpful?

Related Articles

Какие есть боты/сервисы, которые стоит добавить в исключения? Практический гайд для защиты сайта и бизнеса В современных условиях кибербезопасности настройка блокировок и фильтров — обязательная мера для... Что делать, если сертификаты Let’s Encrypt не обновляются? Простое решение за 5 минут Сертификаты от Let’s Encrypt стали стандартом для бесплатной автоматической защиты сайтов по... Какие сервисы и решения реально помогают? Топ-10 инструментов Почему взламывают сайты и что самое опасное? Современный сайт на WordPress, Битрикс, Joomla,... Лучшие версии PHP и MySQL сейчас для WordPress: что выбрать для максимальной стабильности и скорости? WordPress — самая популярная CMS в мире, и именно поэтому вопрос о правильной версии PHP и... Где сейчас захостить видео, чтобы его просто вставлять на свой сайт без рекламы? Лучшие альтернативы YouTube В 2025 году все чаще сталкиваемся с ситуацией: YouTube работает с перебоями, вставки грузятся...
« Back

Knowledgebase