Вопрос или проблема
Допустим, у меня есть сервер и 3 разных жестких диска.
Я хочу узнать, какие плюсы и минусы различных стратегий резервного копирования. Вот требования:
- Я хочу, чтобы новый файл автоматически копировался на каждый из 3-х жестких дисков.
- Я хочу, чтобы их можно было использовать отдельно, то есть если я удалю один (или все) из них с сервера, я хочу иметь возможность читать их прямо из коробки (без необходимости настраивать дополнительный программный уровень, такой как RAID).
- Если я хочу удалить один из 3-х жестких дисков (чтобы сохранить одну из резервных копий вне сайта), я хочу, чтобы система продолжала функционировать и зеркалила данные резервной копии на 2 оставшихся жестких дисках.
- Я хочу, чтобы решение не зависело от коммерческого программного обеспечения.
- Оно должно работать на Linux, а файловая система жестких дисков должна быть ext4.
Каковы лучшие стратегии на ваш взгляд:
- использовать rsync с одним основным жестким диском (например, HDD_A) и иметь скрипт, который копирует файлы на 2 оставшихся жестких диска (HDD_A -> HDD_B и HDD_A -> HDD_C)
- использовать что-то вроде mergerfs (что я до сих пор не использовал) и настроить уникальную файловую систему, которая зеркалирует данные на 3 разных жестких дисках одновременно (возможно ли вообще это решение)?
- что-то еще?
Ответ или решение
Лучшие стратегии для дублирования резервных копий на Linux с использованием трех различных жестких дисков
В условиях, когда необходимо поддерживать резервные копии данных на трех жестких дисках в Linux, эффективный подход к организации и дублированию данных может быть осуществлён с использованием различных инструментов и технологий. Основными требованиями вашей задачи являются автоматическое резервное копирование новых файлов на каждый из трех дисков, возможность использования дисков по отдельности, а также устойчивость к потере одного из дисков. Рассмотрим два основных подхода: использование rsync
и mergerfs
, а также альтернативные методы.
Стратегия 1: Использование rsync
Описание: rsync
— это мощный инструмент для синхронизации файлов и каталогов между различными местоположениями. В вашем сценарии можно использовать один из дисков как основной (например, HDD_A) и настроить скрипт, который будет регулярно копировать файлы на оставшиеся два жестких диска (HDD_B и HDD_C).
Преимущества:
- Простота и надежность: Высокая степень контроля над процессом создания резервных копий позволяет легко отслеживать и управлять состоянием данных.
- Индивидуальная доступность: Каждый жесткий диск можно использовать отдельно, без необходимости дополнительной настройки.
- Расширяемость: Легко добавить новые жесткие диски или изменить структуру резервирования.
Недостатки:
- Разграничение операций: В случае сбоя одного диска, необходимо будет вручную запустить процесс копирования для восстановления резервных копий.
- Ограниченная параллельность: Процесс копирования выполняется последовательно, что может увеличить время на резервное копирование больших объемов данных.
Пример команды rsync
:
rsync -av --delete /path/to/source/ /path/to/HDD_B/
rsync -av --delete /path/to/source/ /path/to/HDD_C/
Стратегия 2: Использование mergerfs
Описание: mergerfs
— это решением, которое объединяет несколько файловых систем в одну. Однако важно отметить, что mergerfs
не может непосредственно дублировать файлы между дисками. Его основная цель — предоставить единую точку доступа к данным, хранящимся на нескольких устройствах.
Преимущества:
- Удобство использования: Все файлы хранятся в одном виртуальном каталоге, что упрощает доступ к данным.
- Гибкость: Легко добавлять или удалять диски из системы без какого-либо влияния на доступность данных.
Недостатки:
- Отсутствие дублирования:
mergerfs
сам по себе не создает резервные копии, и в случае удаления файла с одного диска он пропадет и из объединенной системы. - Сложности при восстановлении: Если один из дисков будет повреждён, доступ к данным на других дисках может быть затруднен, особенно если используются режимы, при которых данные распределяются по нескольким устройствам.
Альтернативные подходы
-
Использование программного обеспечения для резервного копирования: Хотя ваш запрос предполагает использование решений с открытым кодом, такие как
BorgBackup
, могут быть полезными для управления резервными копиями и их шифрования. -
Создание кастомного скрипта на Bash: Скрипт, использующий
inotify
для наблюдения за каталогами на изменения, может запускатьrsync
или другие команды непосредственно при добавлении новых файлов. -
Создание файловой системы, поддерживающей дублирование: Использование таких инструментов, как
DRBD
(Distributed Replicated Block Device), может помочь для работы с файловыми системами, которые работают в режиме реального времени, но потребует больше настройки.
Заключение
Если вам требуется автоматическое резервное копирование и возможность дальнейшего использования дисков по отдельности, наиболее подходящей стратегией является использование rsync
в сочетании со скриптами для отслеживания изменений. mergerfs
может оказаться полезным для объединения пространства, но не подходит под требования резервного копирования.
С учетом всех преимуществ и недостатков, плюсowych к вам стоит выбрать стратегию, которая будет наиболее соответствовать вашим требованиям по доступности, надежности и простоте управления данными.