Что делать для того, чтобы не терять данные в случае поломки жесткого диска между backup

«Что делать для того, чтобы не терять данные в случае поломки жесткого диска между backup» — вопрос из категории DevOps, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Используй репликацию данных в реальном времени и распределённое хранение.

  1. RAID (например, RAID 1 или RAID 10) для зеркалирования дисков.
  2. Распределённые файловые системы (Ceph, GlusterFS) или облачные хранилища (S3).
  3. Асинхронная репликация между серверами (PostgreSQL, MongoDB).

Пример репликации в PostgreSQL:

-- На основном сервере  
ALTER SYSTEM SET wal_level = 'replica';  
ALTER SYSTEM SET synchronous_commit = 'remote_write';  

-- На реплике  
pg_basebackup -h primary -D /var/lib/postgresql/standby -U replicator -P -R  

Дополнительно:

  • Регулярные snapshot’ы (ZFS, LVM).
  • Мониторинг дисков (SMART, Prometheus).

Комбинация этих методов минимизирует потери.