Для почты небольшой команды, Nextcloud или хранилища паролей вполне хватит старого компьютера, который пылится в шкафу. Требования к процессору и памяти там скромные, подробно они разобраны в статье про уход с Яндекс.Почты на свой сервер. Подводит обычно не процессор, а всё, что вокруг него: диск, блок питания, пыль и электричество в розетке. Разберём, что проверить до запуска, как защитить машину и за чем следить, когда она заработает круглосуточно.

Подойдёт ли ваш компьютер

Нужен 64-битный двухъядерный процессор и от 4 ГБ памяти. Ноутбук тоже подходит: батарея работает как встроенный ИБП. Но батарея изнашивается, а вздувшаяся опасна, поэтому за её состоянием нужно следить, а изношенную лучше не оставлять в устройстве.

Перед установкой проверьте то, что чаще всего выходит из строя первым:

ЧтоКак проверитьЧем грозит
Памятьmemtest86+ с загрузочной флешки, несколько проходов, лучше всю ночьСлучайные сбои и тихая порча данных
Дискsmartctl -a: растут ли переназначенные и «нестабильные» секторыОтказ диска и потеря данных
Блок питанияОсмотр на вздутые конденсаторы, шум вентилятора. Если ему много лет, замена обходится недорогоПерезагрузки под нагрузкой, повреждение платы и дисков
ОхлаждениеЧистка от пыли, обороты и шум вентиляторов, у очень старых машин замена термопастыПерегрев и сброс частоты процессора

Питание: ИБП и автоматическое выключение

Резкое отключение электричества для сервера опаснее, чем для офисного компьютера: оно повреждает файловую систему и базы данных (почта, SQLite Vaultwarden, MariaDB Nextcloud). ИБП даёт время выключить машину корректно.

  • Мощность считайте в ваттах, а не только в ВА: сложите потребление компьютера и сетевого оборудования. Время работы от батареи берите из таблицы производителя для вашей нагрузки.
  • Роутер и оптический терминал провайдера подключайте к тому же ИБП, иначе сервер без интернета останется работающим, но бесполезным.
  • Форма выходного напряжения. Современные блоки питания с активной коррекцией мощности лучше работают от ИБП с чистой синусоидой.
  • Батарея стареет. Свинцовые аккумуляторы ИБП обычно служат 3–5 лет, затем их нужно менять.
  • USB-кабель к серверу обязателен. ИБП без связи с компьютером лишь отсрочивает жёсткое выключение.

Настройка NUT

Пакет NUT читает состояние ИБП и выключает сервер, когда заряд на исходе:

sudo apt install nut

/etc/nut/nut.conf:

MODE=standalone

/etc/nut/ups.conf:

[myups]
    driver = usbhid-ups
    port = auto
    desc = "Server UPS"

/etc/nut/upsd.users:

[upsmon]
    password = замените_на_свой_пароль
    upsmon primary

/etc/nut/upsmon.conf:

MONITOR myups@localhost 1 upsmon замените_на_свой_пароль primary

В старых инструкциях вместо primary встречается master: это прежнее название. После настройки перезапустите службы NUT (nut-server и nut-monitor) и проверьте связь:

upsc myups@localhost

Статус OL означает работу от сети, OB — от батареи, LB — низкий заряд. Затем проверьте всю цепочку на практике: предупредите пользователей, выдерните вилку ИБП из розетки и убедитесь, что статус сменился на OB, а сервер выключился сам до полной разрядки.

Настройки BIOS

  • Restore on AC Power Loss (название зависит от производителя): включить автозапуск после возвращения питания.
  • Halt On: разрешить загрузку без клавиатуры и монитора, иначе после перезагрузки компьютер встанет на сообщении об ошибке.

Диски: SSD, зеркало и SMART

  • Систему и почту держите на SSD. Обычный жёсткий диск подходит для архива и копий. Диски, которые уже много лет проработали, не стоит использовать как единственный носитель.
  • Зеркало (RAID 1) на двух дисках переживает отказ одного из них. Собирается программно (mdadm) прямо в установщике Debian. Следите за состоянием командой cat /proc/mdstat.
  • Зеркало не заменяет копию. Оно мгновенно повторяет и ошибочное удаление, и действие шифровальщика, и не спасает от пожара, кражи или отказа блока питания. Копии на другой площадке нужны всё равно: Borg Backup.

Загрузка при UEFI

При UEFI загрузочный раздел (ESP) автоматически не зеркалируется. Если первый диск откажет, компьютер может не загрузиться со второго. Решение: отдельный раздел ESP на каждом диске и загрузчик, установленный на оба. Установщик Debian ставит загрузчик только на первый диск, поэтому на второй его добавляют вручную (буквы дисков сверьте по lsblk, здесь второй ESP — /dev/sdb1):

sudo umount /boot/efi
sudo mount /dev/sdb1 /boot/efi
sudo grub-install --bootloader-id=debian-disk2 /dev/sdb
sudo umount /boot/efi
sudo mount /boot/efi
efibootmgr -v

Если раздел на втором диске новый и пустой, перед этим его нужно отформатировать: sudo mkfs.vfat -F32 /dev/sdb1. В выводе efibootmgr должны быть обе записи. Главная проверка: отключите первый диск и убедитесь, что система стартует со второго. В режиме BIOS (CSM) загрузчик тоже ставится на оба диска.

SMART

Пакет smartmontools опрашивает диски и запускает самопроверки. В /etc/smartd.conf:

/dev/sda -a -s (S/../.././02|L/../../6/03) -m admin@внешний-домен.ру -M test

Короткая проверка идёт ежедневно в 02:00, полная — по субботам в 03:00. Параметр -M test присылает тестовое письмо при запуске: убедитесь, что оно дошло, и после этого уберите параметр. Адрес замените на свой и используйте внешний: если сервер сам почтовый и упал, письмо о проблеме с него не уйдёт.

Что смотреть в smartctl -a:

  • у жёстких дисков: рост переназначенных секторов (Reallocated_Sector_Ct), секторов в ожидании переназначения (Current_Pending_Sector) и неисправимых (Offline_Uncorrectable). Рост этих значений означает, что диск пора менять;
  • у SSD и NVMe: износ (Percentage Used) и ошибки целостности (Media and Data Integrity Errors).

Замена диска в зеркале

mdadm присылает уведомления на адрес из MAILADDR в /etc/mdadm/mdadm.conf. Замена выглядит так:

sudo mdadm --manage /dev/md0 --fail /dev/sdb2 --remove /dev/sdb2
# физически заменяем диск, затем копируем разметку с sda на sdb (не наоборот!)
sudo sgdisk -R /dev/sdb /dev/sda && sudo sgdisk -G /dev/sdb
sudo mdadm --manage /dev/md0 --add /dev/sdb2
cat /proc/mdstat

Заранее запишите серийные номера дисков и в каком положении они стоят: иначе в спешке можно вынуть исправный. Запасной диск того же размера хранить полезно.

Охлаждение, шум и электричество

  • Температуры смотрите через sensors (пакет lm-sensors) и smartctl -A. Ориентир: диски лучше держать не выше 45 °C, а если температура постоянно за 50 °C, пора заняться охлаждением.
  • Пыль чистите раз в полгода-год. Подшипник вентилятора сначала шумит, потом отказывает. Замена на тихий 120-мм вентилятор с регулировкой оборотов обычно решает вопрос шума.
  • Размещение. Не в закрытом шкафу без вентиляции и не на полу в пыли. Помещение лучше запираемое: на диске ваша переписка.
  • Электричество. Расход в киловатт-часах за год считается так: мощность в ваттах × 8,76. Например, старый ПК в 40 Вт потребляет около 350 кВт·ч, а мини-ПК в 10 Вт — около 88. Умножьте на свой тариф и сравните с арендой VPS.

Зависания и удалённое управление

У обычного компьютера нет удалённой консоли, как у серверной платы, поэтому зависшую машину нечем перезагрузить дистанционно. Снизить риск помогает следующее:

  • параметр kernel.panic=10 в sysctl перезагружает компьютер через 10 секунд после аварии ядра;
  • если в машине есть аппаратный сторожевой таймер, RuntimeWatchdogSec в /etc/systemd/system.conf перезагрузит зависшую систему;
  • администрирование через VPN (WireGuard) вместо открытого наружу SSH;
  • внешний мониторинг доступности и человек, который может подойти к машине.

Типичные ошибки

  • ИБП без NUT. Батарея разряжается, и сервер всё равно падает жёстко, только позже.
  • RAID вместо бэкапа. Зеркало защищает от отказа диска, а не от ошибок и атак.
  • Зеркало, с которого не загрузиться. Не проверили загрузку со второго диска.
  • Уведомления SMART и mdadm уходят в никуда. Всегда проверяйте тестовым письмом, что они доходят до внешнего адреса.
  • Игнорирование растущих секторов. Предупреждение за недели до отказа — это шанс заменить диск спокойно.
  • Сервер в закрытом шкафу. Через пару месяцев перегрев и частые зависания.
  • Wi-Fi вместо кабеля. Серверу нужен проводной гигабитный порт.
  • Ни разу не отключали питание. Работоспособность ИБП и NUT проверяется только отключением.

Сколько это стоит

Если компьютер уже есть, основные затраты — два SSD, ИБП, вентилятор с термопастой и электричество. Это несравнимо с покупкой нового сервера, но и бесплатным вариантом не назовёшь: дополнительно вы платите временем на сопровождение. Если у вас нет статического IP или провайдер закрывает нужные порты, подойдёт VPS: условия описаны в статье про почту.

Итог

Старый компьютер способен надёжно работать сервером небольшой команды, если закрыты четыре риска: питание (ИБП с NUT), диски (SSD, зеркало и SMART), перегрев и зависания. Проверенные копии на другой площадке остаются обязательными в любом случае: никакое железо, новое или старое, не заменяет резервную копию.

Похожие материалы

Если нужно подготовить ваше оборудование под сервер или подобрать надёжную конфигурацию, напишите: проверю железо, настрою ИБП, зеркало и мониторинг.