Какие файловые системы предлагают функцию создания снимков для восстановления данных пользователями?

Вопрос или проблема

Я работаю над проектом, который будет обучать молодежь Linux. Зная, что у них будет склонность удалять или повреждать элементы в своих домашних директориях, мы ищем хороший вариант для создания моментальных снимков. У нас не будет доступа к сложным инструментам, доступным у крупных поставщиков хранилищ, и мы надеемся найти решение на уровне файловой системы.

Я много читал про btrfs, но у меня мало опыта. У меня есть некоторый опыт работы с LVM, но я не знаком с его функцией создания моментальных снимков. Поддерживает ли какая-либо из файловых систем или другая возможность создавать моментальные снимки по требованию или по расписанию? Затем сделать эти моментальные снимки всегда доступными без прав root, например, в папке .snapshot в каждой домашней папке?

В идеале это решение позволит пользователю самостоятельно восстанавливать резервные копии по требованию в течение, скажем, 24-48 часов. У нас будет другой процесс резервного копирования для системы и более глобальные бэкапы. Но мы не хотим, чтобы этот процесс использовался студентами, которые просто делают “ошибки”.

(Обновлено сентябрь 2023)

Файловые системы

На Linux btrfs является самым простым вариантом для создания моментальных снимков внутри файловой системы. Она достаточно стабильна и завершена, согласно этой статье 2021 года, если не использовать функции RAID. У нее есть некоторые инструменты проверки и восстановления файловой системы.

ZFS – еще один вариант с хорошей поддержкой моментальных снимков, и сейчас она кросс-платформенная для Linux, FreeBSD и др. Она активно развивается проектом OpenZFS и более завершена, чем btrfs.

LVM

Этот ответ про LVM содержит некоторые детали о плюсах и минусах использования LVM моментальных снимков и ссылки на btrfs/ZFS. С некоторыми файловыми системами (ext4 и XFS) LVM сам позаботится о замораживании FS перед созданием моментального снимка, но LVM моментальные снимки могут создавать проблемы с производительностью и все еще имеют некоторые ошибки.

Я не думаю, что LVM это хороший вариант для этого приложения ‘быстрых моментальных снимков пользовательских данных’ – он все еще слабее, чем btrfs или ZFS на 2022 год.

rsnapshot

Вы также можете ознакомиться с rsnapshot, который является инструментом пользовательского пространства, создающим моментальные снимки с использованием любой файловой системы, без использования LVM.

Поскольку rsnapshot использует rsync и сохраняет моментальные снимки в серии директорий, используя жесткие ссылки между различными моментальными снимками, если файл не изменился, он может работать удивительно быстро даже с достаточно большими наборами файлов.

Он часто используется для резервного копирования, но также может использоваться для этого типа требования к моментальным снимкам пользовательских данных, и с небольшой настройкой любой может восстановить свои зафиксированные файлы, используя только для чтения NFS или Samba – см. этот раздел HOWTO о восстановлении файлов. Файлы могут быть восстановлены с использованием стандартных инструментов Linux, так как rsnapshot зеркально отражает исходный каталог в каждом каталоге моментального снимка.

rsnapshot довольно гибок в использовании своих стандартных функций, и поскольку он написан на Perl, его довольно легко настроить, например, если вы хотите предоставлять моментальные снимки по требованию.

Основные недостатки по сравнению с моментальными снимками файловой системы: скорость, место на диске и отсутствие ‘момента во времени’

  • скорость – каждый файл должен быть проверен, даже если многие из них пропускаются
  • место на диске – каждый изменяющийся файл приводит к созданию новой копии в моментальном снимке, тогда как моментальные снимки файловой системы копируют только новые блоки в файле
  • момент во времени – rsnapshot не захватывает все файлы в один момент времени, в отличие от моментальных снимков файловой системы. Также известен как неатомарность.

По состоянию на 2022 год btrfs считается стабильной для установок без RAID и предлагает прозрачные и стабильные моментальные снимки.

На первый взгляд, верхний ответ был дан в 2011 году и упоминает, что btrfs и ZFS считаются нестабильными. 11 лет спустя это уже не так для btrfs или ZFS на Linux.

Я только что заметил страницу “Сравнение файловых систем” на Википедии. Там есть колонка о возможностях создания моментальных снимков – просто хотел, чтобы люди знали об этом на будущее.

Вы не должны использовать LVM моментальные снимки для этой цели, потому что они накладывают большое ограничение на производительность (особенно, если у вас активны несколько “плавающих” снимков одновременно). К сожалению, Linux просто не имеет зрелых файловых систем с поддержкой моментальных снимков.

Поэтому я рекомендую использовать FreeBSD на вашем файловом сервере. Формат файловой системы по умолчанию UFS2 поддерживает моментальные снимки. FreeBSD также включает корректную реализацию ZFS (в отличие от некрасивой уловки, найденной в Linux) с моментальными снимками и многими другими очень продвинутыми особенностями. В сочетании с простым инструментом, таким как этот, это довольно похоже на то, что предлагают производители высококлассных хранилищ, такие как NetApp.

Если у вас есть один сервер, посвященный функции файлового сервера, вам может быть интересно ознакомиться с FreeNAS, который красиво упаковывает FreeBSD и ZFS в систему типа устройства.

.

Ответ или решение

Вопрос о поиске файловых систем с функционалом создания снапшотов для восстановления данных связан с проектом по обучению молодежи Linux, где существует вероятность случайного удаления или повреждения данных в домашних директориях. Проект нацелен на использование решений, доступных на уровне файловой системы, без привлечения сложных инструментов, предлагаемых крупными вендорами.

Теория

Снапшоты — это механизм, позволяющий фиксировать состояние файловой системы в определенный момент времени. Это позволяет восстанавливать данные в случае ошибок или случайных изменений. Наиболее популярные файловые системы, поддерживающие функцию снапшотов на Linux, — это Btrfs и ZFS.

  • Btrfs (B-Tree File System) предлагает относительно простую и прозрачную реализацию снапшотов, считается стабильным для использования в небуквально RAID-эникмсреде. Он поддерживает создание и управление снапшотами на уровне командной строки, что позволяет автоматизировать процессы создания и использования снапшотов.

  • ZFS известен своей надежностью и функциональностью и также поддерживает систему снапшотов. Он доступен на различных платформах, включая Linux и FreeBSD, через проект OpenZFS.

Другой вариант — использование LVM (Logical Volume Manager), который также поддерживает создание снапшотов, хотя и с некоторыми проблемами производительности и другими оговорками при использовании в многосложных сценариях.

Пример

Btrfs и ZFS позволяют создавать снапшоты, которые могут быть доступны пользователям для восстановления данных. Btrfs снапшоты могут быть интегрированы в домашние директории пользователей, например, через специальные подпапки. Также можно настроить регулярное создание снапшотов через cron для автоматизации процесса.

Пример:

  1. Создать снапшот в Btrfs:
    btrfs subvolume snapshot /home/user /home/user/.snapshot-$(date +%Y%m%d)
  2. Настроить регулярное создание снапшотов с помощью cron для обеспечения постоянной доступности точек восстановления.

Применение

В контексте проекта по обучению молодежи Linux, Btrfs является предпочтительным вариантом для реализации функционала снапшотов. Она обеспечивает достаточную стабильность и функциональность для реализации требуемого уровня защиты данных. Важно установить и настроить систему так, чтобы пользователи могли самостоятельно восстанавливать данные из снапшотов без административных привилегий, например, предоставив доступ к специальной директории .snapshot в их домашних папках. При этом стоит предусмотреть регулярную очистку старых снапшотов для оптимизации использования дискового пространства.

Оцените материал
Добавить комментарий

Капча загружается...