Версионирование корзин и объектов
RustFS Object Storage обеспечивает совместимость версионирования AWS S3
Версионирование на уровне объектов является значительным улучшением по сравнению с методами версионирования SAN и NAS. Версионирование не только обеспечивает защиту данных, но и служит основой для мощных функций, таких как блокировка объектов, неизменяемость, многоуровневое хранение и управление жизненным циклом.
С RustFS объекты версионируются независимо в соответствии со структурой/реализацией Amazon S3. RustFS присваивает уникальный идентификатор каждой версии данного объекта - приложения могут указать идентификатор версии в любое время для доступа к снимку состояния этого объекта на определенный момент времени.
Версионирование позволяет пользователям сохранять несколько вариантов объекта в одной корзине и предоставляет механизм для сохранения, извлечения и восстановления каждой версии каждого объекта, хранящегося в корзине, исключая необходимость в снимках состояния. Версионирование обеспечивает доступность объектов при серии сбоев, включая те, которые вызваны ошибками приложений и человека.
Версионирование включается на уровне корзины. После включения RustFS автоматически создает уникальный идентификатор версии для объектов. Один и тот же объект может иметь несколько версий.
Одним из основных преимуществ версионирования является предотвращение случайной перезаписи или удаления. Это реализуется с использованием концепции маркеров удаления. Когда версионированный объект удаляется, он не удаляется навсегда. Вместо этого создается маркер удаления, который становится текущей версией объекта. Когда этот объект запрашивается, RustFS возвращает сообщение 404 Not Found. Объект может быть восстановлен путем удаления маркера удаления.
Аналогично, если версионированный объект перезаписывается, RustFS создает новую версию, и она становится текущей версией. Точно так же старые версии могут быть восстановлены по мере необходимости.
RustFS поддерживает версионирование объектов в трех различных состояниях корзины
Обратите внимание, что после включения версионирования для корзины операция не может быть отменена - она может быть только приостановлена. Версионирование - это глобальная настройка в корзине, что означает, что все объекты теперь версионированы.
Пользователи с соответствующими разрешениями могут приостановить версионирование, чтобы прекратить накопление версий объектов. Как и при включении версионирования, эта операция выполняется на уровне корзины.
Как и все функции RustFS, версионирование может применяться с использованием консоли RustFS, клиента (mc), SDK или через приложения командной строки.
Версионирование - самый простой способ защитить данные от случайных операций. Однако, поскольку объекты версионируются, это приводит к увеличению размеров корзин и может привести к большей взаимозависимости между объектами и рискам скрытых зависимостей объектов. Эти факторы можно смягчить через управление жизненным циклом.
Основные преимущества функции
Помимо преимуществ защиты данных, версионирование объектного хранилища RustFS служит основой для других ключевых функций
Основные характеристики функции
- ✅ Репликация корзин (Активный-Активный, Активный-Пассивный)
- ✅ Mc undo - Откат операций PUT/DELETE объектов одной командой
- ✅ Блокировка объектов
- ✅ Защита непрерывных данных без накладных расходов на снимки или полную репликацию системы
- ✅ Mc rewind - Просмотр корзин или объектов в любой момент времени после включения версионирования
Архитектура
Системные требования
Версионирование требует: Кодирование стирания и как минимум четыре диска.
Состояния версионирования
RustFS поддерживает три различных состояния версионирования корзин:
- 🔴 Неверсионированная - Состояние по умолчанию, версионирование не выполняется
- 🟢 Включена - Полная функциональность версионирования, присваивает уникальный ID каждой версии объекта
- 🟡 Приостановлена - Прекращает накопление новых версий, но сохраняет существующие версии
Ключевые особенности
- 🆔 Уникальный ID версии - Каждая версия объекта имеет уникальный идентификатор
- 🔄 Восстановление на момент времени - Может получить доступ к любой исторической версии объекта
- 🛡️ Защита от удаления - Использует маркеры удаления для предотвращения случайного удаления
- 📊 Управление жизненным циклом - Автоматически управляет количеством версий и затратами на хранение
- 🔐 Контроль разрешений - Детальное управление разрешениями доступа