SnapRAID — это программное обеспечение для создания паритетных снимков и защиты данных на наборах дисков, ориентированное на статичные большие наборы файлов, такие как медиа-библиотеки. Оно реализует концепцию «snapshot RAID»: паритет и контрольные суммы хранятся отдельно от данных и пересчитываются периодически при создании снимков (snapshots), что позволяет восстанавливать потерянные файлы при выходе из строя одного или нескольких дисков и обнаруживать битрота. SnapRAID не является блочным RAID и не требует постоянного синхронного зеркалирования; вместо этого изменения фиксируются при выполнении команды синхронизации, что снижает накладные расходы для редко изменяющихся коллекций.
Проект разрабатывался как решение для домашних и малых серверных установок, где важны отказоустойчивость и экономичное использование большого объёма хранения без постоянного дублирования всех данных. Архитектура предполагает хранение таблицы паритета и метаданных, включающей контрольные суммы файлов и информацию о расположении данных на дисках. При необходимости восстановления SnapRAID использует паритеты для восстановления целых файлов и контрольные суммы для проверки целостности, при этом поддерживается восстановление отдельных файлов без перестроения всего массива.
- Паритетное хранение: вычисление и сохранение паритетов для обеспечения восстановления данных при выходе из строя дисков.
- Снимки и периодическая синхронизация: обновление паритета и метаданных по расписанию или вручную, подходящее для редко меняющихся наборов файлов.
- Контрольные суммы: хранение контрольных сумм для обнаружения и локализации битрота в файлах.
- Восстановление по файлам: возможность восстановить отдельные файлы из паритета без необходимости перестраивать весь массив.
- Гибкая топология дисков: поддержка наборов дисков разных ёмкостей и конфигураций без требования одинаковых носителей.
- Поддержка множественных дисковых слоёв: возможность совмещать несколько дисков как пул для данных и отдельные диски для паритета.
- Совместимость с файловыми системами: работа на уровне файлов независимо от файловой системы, используемой на носителях.
- Командная строка и автоматизация: управление через утилиту командной строки с возможностью интеграции в сценарии резервного копирования и планировщики задач.
- Оптимизация для больших файлов: эффективное использование при хранении медиаконтента и других крупных статичных объектов.
- Не является онлайн-RAID: дизайн ориентирован на оффлайн- или периодическую синхронизацию, что снижает требования к постоянной синхронизации и повышает экономичность.