🦩 Изучаем MinIO – автономное хранилище объектов с высокой производительностью, совместимое с S3 – Information Security Squad
🦩 Изучаем MinIO – автономное хранилище объектов с высокой производительностью, совместимое с S3
Вы ищете программное обеспечение для хранения объектов для размещения на своем сервере?
Существует множество облачных хранилищ объектов, таких как AWS S3 и т.д.

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

MiniIO – это популярное программное обеспечение с открытым исходным кодом для распределенного хранения объектов, совместимое с S3.

Он известен своей высокой производительностью.

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

Плюсы использования:
  • Стандартное хранилище плоских файлов
  • Распределение данных в нескольких облаках
  • Аварийное восстановление
  • Аналитика данных

Это громоздкое программное обеспечение?

Нет, оно весит 50 МБ и подходит для Kubernetes.

Minio записывает данные и метаданные как объект.

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

Архитектура с их официального сайта:

Давайте рассмотрим некоторые особенности, на которые стоит обратить внимание.
  • Высокая производительность! Minio способен читать/писать со скоростью ~ 170 ГБ /с. Это много!
  • Масштабируемость – используйте кластеризацию и масштабируйте по мере необходимости
  • Cloud-native
  • Защита данных с использованием метода Erasure code
  • Поддерживается множественное шифрование, включая AES-CBC, AES-256-GCM, ChaCha20
  • Совместим с обычным KMS
  • Уведомление о событии
  • Совместим с использованием etcd и CoreDNS
MinIO – хороший выбор программно распределенного хранилища.
Давайте посмотрим, как его настроить.

Установка сервера MinIO

Вы можете установить его на Linux, Windows, macOS и через Kubernetes.

Предпочитаете собирать из исходников?

Конечно, можно, если у вас установлен Golang.

Для этой статья я установлю его на CentOS!

  • Войти на сервер
  • Создайте папку в желаемой файловой системе. Например minio-server
  • Перейдите во вновь созданную папку и выполните приведенную ниже команду wget.
wget https://dl.min.io/server/minio/release/linux-amd64/minio
Система загрузит бинарник и этот файл должен выглядеть так:
-rw-r--r--  1 root root 48271360 Oct 18 21:57 minio

Сделайте файл исполняемым с помощью команды chmod

chmod 755 minio

Давайте запустим MinIO как сервер.

./minio server /data &

/data, упомянутая выше, – это файловая система, в которой MinIO будет хранить объекты.

Запуск происходит быстро, и вы должны увидеть информацию следующим образом:

Endpoint:  http://xx.71.141.xx:9000 http://127.0.0.1:9000
AccessKey: minioadmin
SecretKey: minioadmin

Browser Access:
   http://xx.71.141.xx:9000 http://127.0.0.1:9000

Command-line Access: https://docs.min.io/docs/minio-client-quickstart-guide
   $ mc alias set myminio http://xx.71.141.xx:9000 minioadmin minioadmin

Object API (Amazon S3 compatible):
   Go:         https://docs.min.io/docs/golang-client-quickstart-guide
   Java:       https://docs.min.io/docs/java-client-quickstart-guide
   Python:     https://docs.min.io/docs/python-client-quickstart-guide
   JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
   .NET:       https://docs.min.io/docs/dotnet-client-quickstart-guide
Detected default credentials 'minioadmin:minioadmin', please change the credentials immediately using 'MINIO_ACCESS_KEY' and 'MINIO_SECRET_KEY'
Давайте войдем в MinIO через браузер с учетными данными по умолчанию – minioadmin: minioadmin
Интерфейс очень аккуратный и простой, но прежде всего давайте изменим учетные данные по умолчанию, так как это подвергает риску НСД.

Чтобы изменить учетные данные MinIO по умолчанию, мы экспортируем ключ доступа и секретный ключ, как показано ниже, и запустим MinIO.
export MINIO_ACCESS_KEY=itsecforu
export MINIO_SECRET_KEY=itsecpassword
./minio server /data &

Теперь он не должен пожаловаться и выдать предупреждение об обнаружении учетных данных по умолчанию.

Попробуем загрузить файлы.

  • Щелкните значок + в правом нижнем углу и создайте bucket (корзину)
  • Я загрузил тестовый файл, и его сразу видно в браузере

и на сервере:

ls -ltr
total 4
-rw-r--r-- 1 root root 11 Oct 19 11:09 MinIO-Test.txt
Если вы нажмете кнопку  share  у файла в браузере, вы получите ссылку для общего доступа и возможность установить срок действия.

Клиент MinIO

Клиент MinIO – это больше, чем просто aws-cli, который позволяет вам управлять хранилищем.

Клиент доступен для Windows, macOS и Linux.

Для установки на Linux запустите следующее:

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod 755 mc

Запустите команду mc, чтобы увидеть справку по команде.

/mc
NAME:
  mc - MinIO Client for cloud storage and filesystems.

USAGE:
  mc [FLAGS] COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]

COMMANDS:
  alias      set, remove and list aliases in configuration file
  ls         list buckets and objects
  mb         make a bucket
  rb         remove a bucket
  cp         copy objects
  mirror     synchronize object(s) to a remote site
  cat        display object contents
  head       display first 'n' lines of an object
  pipe       stream STDIN to an object
  share      generate URL for temporary access to an object
  find       search for objects
  sql        run sql queries on objects
  stat       show object metadata
  mv         move objects
  tree       list buckets and objects in a tree format
  du         summarize disk usage recursively
  retention  set retention for object(s)
  legalhold  manage legal hold for object(s)
  diff       list differences in object name, size, and date between two buckets
  rm         remove objects
  version    manage bucket versioning
  ilm        manage bucket lifecycle
  encrypt    manage bucket encryption config
  event      manage object notifications
  watch      listen for object notification events
  undo       undo PUT/DELETE operations
  policy     manage anonymous access to buckets and objects
  tag        manage tags for bucket and object(s)
  replicate  configure server side bucket replication
  admin      manage MinIO servers
  update     update mc to latest release

GLOBAL FLAGS:
  --autocompletion              install auto-completion for your shell
  --config-dir value, -C value  path to configuration folder (default: "/root/.mc")
  --quiet, -q                   disable progress bar display
  --no-color                    disable color theme
  --json                        enable JSON lines formatted output
  --debug                       enable debug output
  --insecure                    disable SSL certificate verification
  --help, -h                    show help
  --version, -v                 print the version

TIP:
  Use 'mc --autocompletion' to enable shell autocompletion

VERSION:
  RELEASE.2020-10-03T02-54-56Z

Попробуем найти файл, который я загрузил с помощью команды mc.

Во-первых, нам нужно установить алиас хранилища, которым мы хотим управлять.

/mc alias set minio http://xx.71.141.xx:9000/ itsecforu itsecpassword
Added `minio` successfully.
  • minio – это алиас. Вы можете изменить его на любое значение.
  • Измените url HTTP на свой.
  • Измените ключ доступа и секретный ключ на свои.

Отлично, все работает!

Через клиента можно делать буквально все.

Вы можете управлять не только облачным хранилищем MinIO, но и GCS, AWS S3, Azure.

MinIO SDK

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

Он поддерживает Go, Python, Node.js, .NET, Haskell и Java.

MinIO Gateway

Добавьте шлюз MiniIO в S3, Azure, NAS, HDFS, чтобы воспользоваться преимуществами браузера MinIO и кэширования диска.

Заключение

Если вы ищете частное, гибридное или многооблачное объектное хранилище, MinIO выглядит многообещающим.

 

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *