Точка восстановления — снимок состояния системы, базы данных или файлового хранилища в определённый момент. При аварии (случайное удаление, повреждение данных, взлом) система откатывается к этой точке. Понятие тесно связано с RPO: частота создания точек восстановления определяет максимальные потери данных.
Как работает
Технологии создания точек восстановления зависят от уровня стека:
Уровень файловой системы: LVM snapshot (Linux), ZFS snapshot, Btrfs subvolume snapshot. Создаются мгновенно через copy-on-write: новые данные пишутся в новое место, старые блоки остаются нетронутыми. Размер снапшота растёт по мере изменений.
Уровень блочного устройства: R1Soft CDP создаёт точку восстановления каждые 15-30 минут. Гипервизорные снапшоты (VMware vSphere, KVM/qemu-img) замораживают состояние всей VM.
Уровень базы данных: MySQL binlog позволяет восстановить БД до любого момента между двумя полными дампами. PostgreSQL WAL (Write-Ahead Log) — аналогичный механизм с PITR (Point-In-Time Recovery).
История
Концепция точек восстановления появилась в 1980-х с развитием СУБД и транзакционного логирования. Windows System Restore (Windows ME, 2000) популяризировал понятие для широкой аудитории. VSS (Volume Shadow Copy Service, Windows 2003) стандартизировал snapshot-механизм на уровне ОС.
Типы точек восстановления
- Снапшот ФС — мгновенный, COW, не требует отдельного хранилища.
- Бэкап-точка — полная копия данных на отдельном носителе.
- CDP-точка — блочный снапшот каждые N минут.
- DB PITR — восстановление базы данных до точного момента через WAL/binlog.
Связь с хостингом
Панели управления cPanel, Plesk, ISPmanager отображают доступные точки восстановления как набор дат. Хостинг-провайдер хранит 7-30 точек. Пользователь выбирает дату и восстанавливает: весь аккаунт, отдельный сайт или базу данных. Инкрементальные бэкапы создают каждую точку как «цепочку» от базового.
Типы точек восстановления
Snapshot файловой системы: ZFS-снапшот, LVM-снапшот, VM snapshot. Дифференциальный бэкап. Непрерывный бэкап (CDP). Репликация на вторичный сервер. Каждый тип отличается RPO и стоимостью.
LVM Snapshot на VPS
LVM snapshot: lvcreate -s -n snap_root -L 5G /dev/vg0/root. Атомарен: моментальный снапшот. Монтирование: mount /dev/vg0/snap_root /mnt/snap. Удаление после использования: lvremove /dev/vg0/snap_root. Для MySQL: FLUSH TABLES WITH READ LOCK перед снапшотом.
Проверка точек восстановления
Бэкап без проверки — не бэкап. Ежеквартальный drill: восстановить из точки. Проверить целостность: запустить приложение, проверить данные. Для хостинг-провайдеров: автоматическая проверка монтирования бэкапа и наличия ключевых файлов в cron-задаче.
Database Point-in-Time Recovery (PITR)
PostgreSQL PITR: непрерывный архив WAL + base backup. Восстановление до любой секунды. Конфиг: archive_mode=on, archive_command='cp %p /archive/%f'. Для MySQL: binlog + mysqldump. При RTO < 1 час: PITR обязателен. AWS RDS и Yandex Managed PostgreSQL поддерживают PITR из коробки.