it-git.ru
  • Windows
  • Linux
  • Виртуализация
  • Active Directory
  • Почта/Домены
  • Сеть и коммутация
  • Программное обеспечение
  • Безопасность

Обзор S3 и MinIO

Программное обеспечение

S3 (Simple Storage Service) — это облачное хранилище объектов, которое предоставляет возможность хранить и извлекать данные в любом объеме. MinIO — это высокопроизводительная альтернатива S3, совместимая с API Amazon S3, которая может быть развернута локально или в облаке.

1. Базисы работы с S3

Основные концепции

  • Bucket (Корзина/Бакет): Логический контейнер для хранения объектов. Bucket должен иметь уникальное имя в пределах всего пространства имен.
  • Object (Объект): Файл или данные, которые вы хотите хранить. Каждый объект состоит из:
    • Key (Ключ): Уникальный идентификатор объекта внутри бакета.
    • Value (Значение): Сам файл или данные.
    • Metadata (Метаданные): Дополнительная информация о файле (например, тип содержимого, дата создания).
  • Region (Регион): Географическое расположение, где хранятся данные.
  • Access Control: Управление доступом через IAM (Identity and Access Management) или политики ACL (Access Control List).

API S3

S3 предоставляет RESTful API для взаимодействия с хранилищем. Основные операции:

  • Создание/удаление бакета (PUT, DELETE).
  • Загрузка/скачивание объектов (PUT Object, GET Object).
  • Удаление объектов (DELETE Object).
  • Список объектов в бакете (LIST Objects).

Пример использования (Python + boto3):

import boto3

# Подключение к S3
s3 = boto3.client('s3', aws_access_key_id='YOUR_ACCESS_KEY',
                  aws_secret_access_key='YOUR_SECRET_KEY')

# Создание бакета
s3.create_bucket(Bucket='my-bucket')

# Загрузка файла
s3.upload_file('local_file.txt', 'my-bucket', 'remote_file.txt')

# Скачивание файла
s3.download_file('my-bucket', 'remote_file.txt', 'downloaded_file.txt')

2. MinIO

MinIO — это легковесное программное обеспечение для объектного хранения, полностью совместимое с API Amazon S3. Оно часто используется для локальных разработок, тестирования или как часть гибридных решений.

Базовые возможности

  • Хранение данных в виде объектов.
  • Поддержка API S3.
  • Высокая производительность и масштабируемость.
  • Поддержка шифрования данных.

Установка MinIO

MinIO можно запустить как отдельный сервер или в Docker-контейнере.

Пример установки через Docker:

docker run -p 9000:9000 \
  -e "MINIO_ROOT_USER=admin" \
  -e "MINIO_ROOT_PASSWORD=password" \
  minio/minio server /data --console-address ":9001"

Здесь:

  • /data — путь к директории, где будут храниться данные.
  • 9000 — порт для S3 API.
  • 9001 — порт для веб-интерфейса MinIO Console.

Веб-интерфейс

MinIO предоставляет удобный веб-интерфейс для управления бакетами и объектами. По умолчанию доступен по адресу http://localhost:9001.

3. Кластерный вариант MinIO

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

Как работает кластер MinIO?

  • Минимальное количество нод: 4.
  • Данные распределяются между нодами с использованием алгоритма erasure coding (кодирования с удалением).
  • Каждый объект разбивается на части (shards), которые хранятся на разных нодах.
  • При выходе из строя одной или нескольких нод данные остаются доступными благодаря избыточности.

Запуск кластера MinIO

Пример команды для запуска кластера из 4 нод:

export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=password
minio server http://node1/data http://node2/data http://node3/data http://node4/data

Здесь:

  • http://nodeX/data — пути к директориям на каждой ноде.

Преимущества кластера

  • Высокая доступность.
  • Масштабируемость.
  • Защита от потери данных.

4. Репликация

Репликация — это процесс копирования данных между разными хранилищами (например, между бакетами в разных регионах или между MinIO и S3).

Типы репликации

  • Same-cluster replication: Репликация внутри одного кластера MinIO.
  • Cross-cluster replication: Репликация между разными кластерами MinIO.
  • Site-to-Site replication: Репликация между MinIO и Amazon S3.

Настройка репликации

  1. Создайте целевой бакет в другом кластере или регионе.
  2. Настройте политику репликации через MinIO Console или CLI.

Пример команды для настройки репликации через CLI:

mc admin replicate add my-minio/source-bucket target-minio/target-bucket

Преимущества репликации

  • Географическая избыточность.
  • Защита от потери данных.
  • Возможность использовать данные в разных регионах.

5. Версионирование

Версионирование позволяет сохранять историю изменений объектов в бакете. Это полезно для защиты от случайного удаления или перезаписи данных.

Как работает версионирование?

  • Когда версионирование включено, каждый объект получает уникальную версию.
  • При загрузке нового объекта с тем же ключом создается новая версия.
  • Можно восстановить предыдущие версии объектов.

Включение версионирования

Через MinIO Console:

  1. Откройте бакет.
  2. Перейдите в настройки.
  3. Включите версионирование.

Через CLI:

mc version enable my-minio/my-bucket

Управление версиями

  • Просмотр всех версий объекта:
    mc ls my-minio/my-bucket --versions
    
  • Восстановление предыдущей версии:
    mc cp my-minio/my-bucket/object@version-id my-minio/my-bucket/object
    

Преимущества версионирования

  • Защита от случайного удаления.
  • Возможность восстановления данных.
  • Аудит изменений.

Заключение

Amazon S3 и MinIO предоставляют мощные инструменты для работы с объектным хранилищем. MinIO особенно удобен для локальных разработок и гибридных решений благодаря своей совместимости с S3 API. Кластерный вариант MinIO обеспечивает высокую доступность и масштабируемость, а репликация и версионирование добавляют дополнительный уровень безопасности и отказоустойчивости.


  • 06.05.2025
  • 13
  • 0
Проблема с прерыванием копирования больших файлов через rsync на S3
Проблема с прерыванием копирования больших файлов через rsync на S3
29-01-2025, 14:09, Программное обеспечение
9+ Часто задаваемых вопросов о Linux на собеседованиях
9+ Часто задаваемых вопросов о Linux на собеседованиях
19-03-2025, 10:36, Linux
NVMe-CLI - меняем размер сектора вашего диска
NVMe-CLI - меняем размер сектора вашего диска
12-07-2023, 10:55, Linux
rdiff - простое инкрементальное резервное копирование в линукс
rdiff - простое инкрементальное резервное копирование в линукс
5-10-2023, 12:27, Linux / Программное обеспечение
S3, MinIO, объектное хранилище, репликация, версионирование, кластер MinIO
  • Windows
  • Linux
  • Виртуализация
  • Active Directory
  • Почта/Домены
  • Сеть и коммутация
  • Программное обеспечение
  • Безопасность
  • ▒ IT Новости
AD blocklist cmd eth Exchange Exchange 2010 firewall hp interface linux LXC Mail mikrotik network pmg ProxMox PVE raid rclone router RouterOS s3 vpn windows Россия база данных безопасность виртуализация данные диск защита интернет контейнер копирование массив надежность настройка программный райд скрипт файл
Показать все теги

Что такое IT-GIT?

«IT» — это не просто технологии, а целый мир инноваций и решений, направленных на преодоление сложностей. Мы представляем экспертность в области информационных технологий и широкой технологической экосистемы, стремясь к постоянному развитию и совершенствованию.

«Git» — это отсылка к одной из самых популярных систем контроля версий, которая обеспечивает эффективное сотрудничество, быструю итерацию и надежное управление сложными проектами. Мы стремимся объединить и поделиться опытом и идеями специалистов в сфере технологий, создавая пространство для обмена знаниями.

Инновационные технологии + совместный опыт экспертов в области технологий = путь к успеху!


  • ◆ Полезное
  • ▻ Заметки по докеру
  • ▻ Процесс расширения LVM на примере виртуальной машины
  • ▻ Расширение раздела на HDD/SSD
  • ▻ Ремонт файловой системы linux
  • ▻ Коды символов Юникода в UTF-8
  • ▻ Загрузка CHR RouterOS
  • ▻ #mikrotik
  • ▻ #zfs

  • ★ TOP 20
  • ☆ Шпаргалка по ZFS
  • ☆ Robocopy — описание и примеры использования
  • ☆ Настройка сети через командную строку и BAT файл
  • ☆ Для чего нужен протокол STP/RSTP на примере Mikrotik
  • ☆ Мигрируем на Exchange с почты для домена (yandex, mail, google и др.)
  • ☆ Как подключить сетевой диск всем пользователям с использованием AD
  • ☆ НP ProCurve. наиболее часто используемые команды консоли.
  • ☆ Сброс пароля Windows 10 с помощью встроенной учетной записи Администратора
  • ☆ Настройка условной пересылки DNS-запросов в Mikrotik RouterOS
  • ☆ Как создать программный RAID 1 массив (зеркало) средствами Windows 10, 8.1, 8, 7, Vista
  • ☆ Проверить, запущена ли программа
  • ☆ Не работает fetch в netwatch Mikrotik (ROS 7.13)
  • ☆ Как создать RAID 1 из уже заполненного диска на Windows 10, 8.1, 8, 7, Vista
  • ☆ Mikrotik (vpn server) + Windows server 2008r2 (ad, radius server)
  • ☆ Отечественная виртуализация - на чем построена, обзор, сравнение.
  • ☆ Ремонт файловой системы linux
  • ☆ Сравнение решений WireGuard
  • ☆ Увеличение zfs диска (ISCSI FreeNAS)
  • ☆ Mikrotik, 3 провайдера, переключение и разделение трафик
  • ☆ Полезности Mikrotik
Monitorus. Мониторинг сайтов и серверов.
 
  Top.Mail.Ru      © 2019-2025.    www.IT-GIT.ru    ✉ info@it-git.ru