hostprofi.ru
Подобрать хостинг
Термин·буква С

Софт-ребут

краткое определение

Мягкая перезагрузка (soft reboot) — управляемая перезагрузка сервера через ОС с корректным завершением всех процессов и размонтированием файловых систем. Противоположность жёсткой перезагрузке (hard reboot), которая выполняется аппаратным сбросом питания.

Soft reboot (мягкая перезагрузка) — перезагрузка сервера через операционную систему: ядро корректно завершает все процессы, сбрасывает дисковые буферы, размонтирует файловые системы и инициирует перезапуск через аппаратный ACPI. Выполняется командами reboot, shutdown -r now или systemctl reboot в Linux. Противопоставляется hard reboot — принудительному отключению питания.

Что происходит при soft reboot

  1. Системный вызов reboot(2) — ядро получает сигнал на перезагрузку.
  2. systemd запускает shutdown target — отправляет SIGTERM всем работающим сервисам.
  3. Ожидание завершения — systemd ждёт штатного завершения каждого сервиса (по умолчанию DefaultTimeoutStopSec=90s). Сервисы сохраняют данные и закрывают соединения.
  4. SIGKILL для зависших процессов — процессы, не завершившиеся за timeout, принудительно уничтожаются.
  5. sync() — принудительный сброс буферов страничного кэша на диск.
  6. Размонтирование ФС — все смонтированные файловые системы корректно размонтируются.
  7. ACPI reboot — ядро инициирует аппаратную перезагрузку через ACPI или через порт 0xCF9.

Soft reboot vs Hard reboot

ПараметрSoft RebootHard Reboot
МетодКоманда ОС (reboot, systemctl reboot)Аппаратный сброс питания (IPMI/панель)
Корректное завершениеДа (SIGTERM → SIGKILL → sync)Нет (мгновенное отключение)
Риск повреждения ФСМинимальный (данные сброшены)Высокий (незафиксированные буферы)
Применяется приПлановое обновление ядра, конфигаОС зависла, kernel panic, SSH недоступен
Время простоя60–180 с (зависит от сервисов)30–90 с (только POST + загрузка ОС)

История

Концепция «мягкого» и «жёсткого» сброса возникла с появлением многопользовательских ОС в 1970-х: несинхронизированные данные при отключении питания ведут к повреждению файловых систем. В ранних UNIX-системах команда sync выполнялась вручную перед выключением. Команда shutdown(8) (UNIX V7, 1979) стандартизировала корректное завершение. systemd унифицировал управление перезагрузкой через target units с 2010 года.

Особые сценарии перезагрузки в Linux

kexec — загрузка нового ядра без полного сброса BIOS/UEFI. Время перезагрузки сокращается с 60–120 с до 5–15 с. Используется в облачной инфраструктуре для минимизации downtime при обновлении ядра. Команда: kexec -l /boot/vmlinuz-new --initrd=/boot/initrd-new --reuse-cmdline, затем systemctl kexec.

Warm reboot — перезагрузка без потери содержимого RAM (экспериментально в Linux 6.9+). Данные виртуальных машин и контейнеров переживают перезагрузку.

Soft reboot на VPS и выделенных серверах

На VPS и выделенных серверах soft reboot инициируется из панели управления (Hetzner Robot, ISPmanager, Plesk) или через SSH. Hard reboot доступен через IPMI/BMC-консоль для физических серверов или через кнопку «Reset» в панели VPS-провайдера. После hard reboot обязательно проверить файловую систему: journalctl -b | grep -i 'fsck\|error\|warning'. XFS журнализирует метаданные и обычно восстанавливается автоматически при следующей монтировании; EXT4 с journal=writeback требует fsck при незакрытых транзакциях.

Практика: сокращение downtime при перезагрузке

На production-серверах с Nginx и PHP-FPM можно сократить downtime до нуля через rolling restart: если за балансировщиком несколько backend-серверов, перезагрузка выполняется поочерёдно. Один сервер выводится из rotation (HAProxy: set server web/web01 state maint), перезагружается, возвращается в rotation — трафик на него не поступает во время reboot. Для одиночного сервера soft reboot с kexec минимизирует простой с 2–3 минут до 15–30 секунд.

Другие термины