Hot-plug RAM — функция добавления оперативной памяти к работающему серверу без остановки сервисов. В физических серверах enterprise-класса (Dell PowerEdge, HPE ProLiant) hot-plug RAM реализована через аппаратный hot-add DIMM при наличии свободных слотов DIMM. В виртуализации — через механизмы гипервизора.
Как работает
В KVM hot-plug памяти реализован через виртуальный DIMM: гипервизор добавляет новый «слот памяти» в ВМ, гостевая ОС обнаруживает его через ACPI hotplug notification. Linux поддерживает memory hot-add начиная с ядра 2.6.15 (2006). Windows Server поддерживает hot-add RAM с версии 2008 R2.
Другой подход — балунинг памяти (memory ballooning): гипервизор не добавляет физические DIMM, а динамически перераспределяет память между ВМ. balloon-драйвер внутри гостевой ОС «надувается» (занимает память для возврата гипервизору) или «сдувается» (освобождает для ВМ). Это быстрее, но менее надёжно при пиковой нагрузке.
В облачных платформах (AWS, Azure, Hetzner Cloud) добавление RAM обычно требует изменения типа инстанса с кратковременной перезагрузкой — честного hot-plug без остановки на публичных облаках нет.
История
Физический hot-plug RAM для серверов появился в начале 2000-х в серверах HP Superdome и IBM p-Series с поддержкой NUMA. В KVM поддержка virtual DIMM hotplug добавлена в QEMU 2.1 (2014). Windows Server 2008 R2 добавил поддержку hot-add RAM в виртуальных машинах.
На что обращать внимание
Hot-plug RAM в ВМ работает только если гостевая ОС поддерживает ACPI memory hot-add. В Linux проверяйте наличие /sys/devices/system/memory/memory*/online. Обязательна пересборка с CONFIG_MEMORY_HOTPLUG=y. В production надёжнее заранее выделять достаточный объём памяти, чем рассчитывать на hot-plug — он может не сработать при нехватке непрерывных физических страниц.
Как работает Hot-plug RAM
BIOS/UEFI распознаёт новый DIMM, сигнализирует ОС через ACPI. Ядро Linux инициализирует память через echo online > /sys/devices/system/memory/memoryXX/state. В виртуальных средах hot-plug реализован через memory ballooning.
Требования к оборудованию
Требования: Registered DIMM (RDIMM), серверная материнская плата с ACPI online add, ECC-память. Intel Xeon Scalable и AMD EPYC поддерживают hot-plug RAM начиная с 2017 года.
Memory Ballooning в виртуализации
Memory ballooning — динамическое перераспределение RAM между ВМ без перезагрузки. В KVM реализован через virtio-balloon. Используется для оверкоммита памяти — суммарный объём выделенной RAM может превышать физический.
Memory Hot-plug в облаке
В облачных средах (AWS, Yandex Cloud) горячее добавление RAM реализовано иначе: memory ballooning или изменение конфигурации ВМ через API с минимальным downtime. AWS позволяет изменить тип инстанса с перезагрузкой, не изменяя данные.
Практическое применение в хостинге
Большинство хостеров не предлагают online hot-plug RAM как сервис — обычно изменение конфигурации требует перезагрузки ВМ. В Proxmox VE: изменение RAM ВМ на ходу через qm set ID --memory 4096 работает при включённом ballooning. Без ballooning — только через shutdown/start.