Я неоднократно рассказывал про бесплатную реализацию своего сервера для S3 хранилища на базе MinIO. Это наиболее популярный и чуть ли не единственный массовый сервер для этих задач. Я других таких же простых даже и не знаю. Если для каких-то больших многосерверных систем есть реализации кластера типа Ceph и его Object Gateway, или аналогов, то для одиночного сервера или небольшого кластера я ничего другого ни разу не видел и не слышал. Все ставили по умолчанию MinIO.
Разработчики решили эту популярность монетизировать и из бесплатной версии убрали веб интерфейс для управления сервером. Можно только объекты смотреть. Для управления остались только консольные команды. В целом, ничего особенного в этом нет. Стандартный подход для двух редакций: бесплатная и платная. Но так как изначально этот веб интерфейс был доступен, стало немного обидно и неудобно.
Последняя версия, где есть полнофункциональный веб интерфейс - от 22 апреля. Скачать и запустить можно так:
Дальше идём на порт сервера 9000 и всё настраиваем через веб интерфейс, используя учётку minioadmin / minioadmin. Всё максимально быстро и просто. MinIO используется во множестве сборок программных продуктов, где нужна функциональность S3.
В целом, ничего критичного не произошло. Если вы нечасто меняете настройки, то можно и через CLI это делать. Для этого нужно воспользоваться MinIO Console, которая запускается командой mc. Неудобно, так как пересекается с Midnight Commander. Консоль придётся поставить отдельно. По ссылкам есть инструкция для установки.
❓Какие есть альтернативы новой урезанной версии:
1️⃣ OpenMaxIO - форк урезанного официального веб интерфейса, который теперь называется object-browser. В него вернули все удалённые возможности официального UI. Этот форк сделан энтузиастами и к команде MinIO никакого отношения не имеет.
2️⃣ RustFS - новый альтернативный сервер, аналог MinIO, реализующий ту же функциональность. Проект стартовал в июле, вскоре после новостей MinIO. В настоящий момент доступна только альфа версия, но проект активно развивается. Уже было 48 промежуточных релизов. Пилят, судя по китайскому языку на сайте, китайцы. Я пока не пробовал его, не знаю, что у них получилось. Обещают такую же простоту настройки, но более производительный сервер. Посмотрим. Если кто-то уже пробовал, дайте, пожалуйста, боратную связь.
Дополнительно рекомендую посмотреть интересное выступление на тему кластера MinIO:
⇨ Свой распределённый S3 на базе MinIO — практический опыт наступания на грабли / Алексей Плетнёв
#S3
Разработчики решили эту популярность монетизировать и из бесплатной версии убрали веб интерфейс для управления сервером. Можно только объекты смотреть. Для управления остались только консольные команды. В целом, ничего особенного в этом нет. Стандартный подход для двух редакций: бесплатная и платная. Но так как изначально этот веб интерфейс был доступен, стало немного обидно и неудобно.
Последняя версия, где есть полнофункциональный веб интерфейс - от 22 апреля. Скачать и запустить можно так:
# wget -O minio https://dl.min.io/server/minio/release/linux-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z# chmod +x minio# mkdir /mnt/data# ./minio server /mnt/dataДальше идём на порт сервера 9000 и всё настраиваем через веб интерфейс, используя учётку minioadmin / minioadmin. Всё максимально быстро и просто. MinIO используется во множестве сборок программных продуктов, где нужна функциональность S3.
В целом, ничего критичного не произошло. Если вы нечасто меняете настройки, то можно и через CLI это делать. Для этого нужно воспользоваться MinIO Console, которая запускается командой mc. Неудобно, так как пересекается с Midnight Commander. Консоль придётся поставить отдельно. По ссылкам есть инструкция для установки.
❓Какие есть альтернативы новой урезанной версии:
Дополнительно рекомендую посмотреть интересное выступление на тему кластера MinIO:
⇨ Свой распределённый S3 на базе MinIO — практический опыт наступания на грабли / Алексей Плетнёв
#S3
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍94👎2
На канале в разное время было много упоминаний про консольную утилиту для бэкапа restic. Она популярна в последнее время, много статей и роликов видел с её участием. Не буду много про неё рассказывать, перечислю только основные плюсы. А далее покажу один практический пример.
▪️Есть под все популярные системы, состоит из одного бинарника на go, есть в базовых репозиториях.
▪️Все данные по умолчанию шифруются.
▪️Формат хранения данных в виде снепшотов с дедупликацией.
▪️Поддерживает хранилища: локальная директория, SFTP, S3, свой сервер rest с доступом по HTTP и некоторые другие.
▪️Встроенная проверка целостности данных.
▪️Все параметры можно передавать ключами и переменными.
Я покажу далее, как забэкапить данные с помощью restic в S3 бакет на примере хостера Selectel. Настройка будет плюс-минус идентичной для любого облачного провайдера. У меня S3 бэкапы лежат там, поэтому показываю на данном примере. У хостеров может быть немного запутанной схема предоставления доступа к бакетам, так что иногда приходится повозиться немного, если делаешь впервые.
1️⃣ Создаю бакет у провайдера. В данном случае иду в раздел Инфраструктура ⇨ S3 ⇨ Бакеты. Создаю новый:
◽️Тип бакета: Приватный
◽️Класс хранения: Холодное хранение
◽️Версионирование: отключено (restic сам будет заниматься версионированием)
◽️Тип адресации: vHosted
Далее в разделе Аккаунт ⇨ Сервисные пользователи добавляю нового пользователя, роль - Пользователь S3, Проект - выбранный проект, где создан бакет. Тут же перехожу во вкладку Доступ и создаю S3-ключи. Нужно записать Access key и Secret key. Они нам понадобятся при настройке Restic.
Возвращаюсь в настройки бакета, перехожу на вкладку Политика доступа, создаю политику, где выбираю полный доступ для только что созданного пользователя.
Бакет сделали, доступ настроили. Я получил следующие данные:
S3_HOST=https://s3.ru-1.storage.selcloud.ru
S3_BUCKET=restic55
ACCESS_KEY_ID=XXXXXXXXXX
SECRET_ACCESS_KEY=YYYYYYYYYY
2️⃣ Идём на сервер и устанавливаем Restic:
Параметры доступа к S3 и сам пароль от бэкапов задаются переменными окружения. Введём их, а перед этим отключим сохранение history, чтобы они там не осели:
Пароль
Теперь туда можно бэкапить:
Проверяем список бэкапов. В терминологии restic это snapshots:
У нас только один snapshot. Восстановим его:
В директории
Restic может автоматически ротировать снепшоты. Для этого у него есть набор ключей с гибкими настройками. Например:
🔹
🔹
🔹
И так далее для разных временных отрезков. Наглядный типовой пример политики хранения:
Храним 7 дневных бэкапов, 4 недельных, 12 месячных.
Вы можете написать свои bash костыли для Restic, а можете взять что-то готовое. Например, вот репозиторий, где есть скрипт для бэкапа в S3 с логированием, с некоторыми проверками, с хранением параметров и пароля доступа в отдельных файлах.
⇨ 🌐 Сайт / Исходники / Документация
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#backup #restic #s3
▪️Есть под все популярные системы, состоит из одного бинарника на go, есть в базовых репозиториях.
▪️Все данные по умолчанию шифруются.
▪️Формат хранения данных в виде снепшотов с дедупликацией.
▪️Поддерживает хранилища: локальная директория, SFTP, S3, свой сервер rest с доступом по HTTP и некоторые другие.
▪️Встроенная проверка целостности данных.
▪️Все параметры можно передавать ключами и переменными.
Я покажу далее, как забэкапить данные с помощью restic в S3 бакет на примере хостера Selectel. Настройка будет плюс-минус идентичной для любого облачного провайдера. У меня S3 бэкапы лежат там, поэтому показываю на данном примере. У хостеров может быть немного запутанной схема предоставления доступа к бакетам, так что иногда приходится повозиться немного, если делаешь впервые.
◽️Тип бакета: Приватный
◽️Класс хранения: Холодное хранение
◽️Версионирование: отключено (restic сам будет заниматься версионированием)
◽️Тип адресации: vHosted
Далее в разделе Аккаунт ⇨ Сервисные пользователи добавляю нового пользователя, роль - Пользователь S3, Проект - выбранный проект, где создан бакет. Тут же перехожу во вкладку Доступ и создаю S3-ключи. Нужно записать Access key и Secret key. Они нам понадобятся при настройке Restic.
Возвращаюсь в настройки бакета, перехожу на вкладку Политика доступа, создаю политику, где выбираю полный доступ для только что созданного пользователя.
Бакет сделали, доступ настроили. Я получил следующие данные:
S3_HOST=https://s3.ru-1.storage.selcloud.ru
S3_BUCKET=restic55
ACCESS_KEY_ID=XXXXXXXXXX
SECRET_ACCESS_KEY=YYYYYYYYYY
# apt install resticПараметры доступа к S3 и сам пароль от бэкапов задаются переменными окружения. Введём их, а перед этим отключим сохранение history, чтобы они там не осели:
# unset HISTFILE# export AWS_ACCESS_KEY_ID=XXXXXXXXXX# export AWS_SECRET_ACCESS_KEY=YYYYYYYYYY# export RESTIC_PASSWORD="ZZZZZZZZZZ"Пароль
RESTIC_PASSWORD нужно обязательно сохранить. Без него бэкапы не расшифровать, доступа к ним не будет. Инициализируем репозиторий:# restic init -r s3:https://s3.ru-1.storage.selcloud.ru/restic55Теперь туда можно бэкапить:
# restic backup -r s3:https://s3.ru-1.storage.selcloud.ru/restic55 /var/wwwПроверяем список бэкапов. В терминологии restic это snapshots:
# restic snapshots -r s3:https://s3.ru-1.storage.selcloud.ru/restic55....18eba378 2025-09-01 18:59:24 debian12-vm /var/www....У нас только один snapshot. Восстановим его:
# mkdir /tmp/restore# restic restore 18eba378 -r s3:https://s3.ru-1.storage.selcloud.ru/restic55 --target /tmp/restoreВ директории
/tmp/restore будут файлы этого снепшота. Restic может автоматически ротировать снепшоты. Для этого у него есть набор ключей с гибкими настройками. Например:
🔹
--keep-last N – последние N бэкапов🔹
--keep-daily N – для последних N дней, в которых есть один или несколько снимков, сохранять только самый последний снимок за каждый день🔹
--keep-within-daily duration – сохранять по одному последнему снимку, сделанному в течение указанного duration.И так далее для разных временных отрезков. Наглядный типовой пример политики хранения:
--keep-within-daily 7d --keep-within-weekly 1m --keep-within-monthly 1yХраним 7 дневных бэкапов, 4 недельных, 12 месячных.
Вы можете написать свои bash костыли для Restic, а можете взять что-то готовое. Например, вот репозиторий, где есть скрипт для бэкапа в S3 с логированием, с некоторыми проверками, с хранением параметров и пароля доступа в отдельных файлах.
⇨ 🌐 Сайт / Исходники / Документация
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#backup #restic #s3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍127👎4