Установка хранилища MinIO на Rocky Linux 8, AlmaLinux 8, CentOS 8

baltun

Администратор
Сообщения
10.731
Реакции
2.542
Баллы
2.003
Высокопроизводительное объектное хранилище, выпущенное под GNU Affero General Public License v3.0. Оно совместимо по API с облачным сервисом хранения Amazon S3. Оно может обрабатывать неструктурированные данные, такие как фотографии, видео, файлы журналов, резервные копии и изображения контейнеров с максимальным поддерживаемым размером объекта 5 ТБ.

Сервер хранения данных MinIO предлагает следующие функции:
  • Высокая производительность – это самое быстрое объектное хранилище с пропускной способностью GET/PUT 325 и 165 ГиБ/с соответственно на 32 узлах NVMe.
  • Шифрование — поддерживает несколько сложных схем шифрования на стороне сервера для защиты данных, обеспечивая целостность, конфиденциальность и подлинность с незначительными накладными расходами на производительность
  • Управление идентификацией – поддерживает самые передовые стандарты в области управления идентификацией, с возможностью интеграции с OpenID-совместимыми поставщиками, а также с ключевыми внешними поставщиками IDP.
  • Непрерывная репликация — предназначена для крупномасштабных развертываний между центрами обработки данных, что позволяет преодолеть проблему с помощью традиционных подходов к репликации, которые не масштабируются эффективно за пределы нескольких сотен ТБ.
  • Мониторинг — предлагает подробный анализ производительности с метриками и ведением журнала по операциям.
  • Управление жизненным циклом данных и многоуровневое управление — защищает данные как в общедоступных, так и в частных облаках.
  • Архитектура — MinIO является облачным и легким, а также может работать как контейнеры, управляемые внешними службами оркестрации, такими как Kubernetes. Он эффективен для работы с низкими ресурсами ЦП и памяти и, следовательно, позволяет совместно размещать большое количество клиентов на общем оборудовании.
Процесс установки:
Код:
sudo dnf update
sudo dnf install wget nano

Загружаем последнею версию ПО:
Код:
##For amd64
wget https://dl.min.io/server/minio/release/linux-amd64/minio

##For arm64
wget https://dl.min.io/server/minio/release/linux-arm64/minio

##For ppc64le
wget https://dl.min.io/server/minio/release/linux-ppc64le/minio

##For s390x
wget https://dl.min.io/server/minio/release/linux-s390x/minio

Копируем в папку и даем разрешения файлу:
Код:
sudo cp minio /usr/local/bin/
sudo chmod +x /usr/local/bin/minio

Создаем файл настроек:
Код:
sudo nano /etc/default/minio

В файл добавьте следующие строки:
Код:
# Volume to be used for Minio server.
MINIO_VOLUMES="/tmp/minio/"

# Use if you want to run Minio on a custom port.
MINIO_OPTS="--address :9000 --console-address :9001"

# Root user for the server.
MINIO_ROOT_USER=admin
# Root secret for the server.
MINIO_ROOT_PASSWORD=Passw0rd

Чтобы иметь возможность управлять сервером хранения MinIO, как и любой другой системной службой, нам нужно создать системный файл службы.
Код:
sudo useradd -s /sbin/nologin -d /minio minio

Установим необходимые разрешения:
Код:
sudo chmod 755 /usr/local/bin/minio
sudo chown minio:minio /usr/local/bin/minio
sudo chown minio:minio /etc/default/minio

Создаем файл службы:
Код:
sudo nano /etc/systemd/system/minio.service

В файл добавим содержимое ниже:
Код:
[Unit]
Description=Minio
Documentation=https://docs.minio.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local/

User=minio
Group=minio

EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"

ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target
# Built for ${project.name}-${project.version} (${project.name})

Сохраняем файл и перезагружаем системные демоны и смотрим статус, что все прошло удачно.
Код:
sudo systemctl daemon-reload
sudo systemctl enable minio.service
sudo systemctl start minio.service
sudo systemctl status minio.service

Разрешаем порты в брандмауэре.
Код:
sudo firewall-cmd --zone=public --add-port=9000/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9001/tcp --permanent
sudo firewall-cmd --reload
После всего сервис будет доступен по адресу

Используем клиент MinIO (mc) для управления сервером MinIO.
Код:
##For amd64
wget https://dl.min.io/client/mc/release/linux-amd64/mc

##For ppc64
wget https://dl.min.io/client/mc/release/linux-ppc64le/mc

Скопируем файл по пути и сделаем его исполняемым.
Код:
sudo cp mc /usr/local/bin/
sudo chmod +x /usr/local/bin/mc

Проверим установку с помощью приведенной ниже команды.
Код:
$ mc --version
mc version RELEASE.2022-02-16T05-54-01Z

Теперь для подключения к серверу MinIO с помощью mc используется приведенный ниже синтаксис.
Код:
mc alias set <ALIAS> <YOUR-S3-ENDPOINT> [YOUR-ACCESS-KEY] [YOUR-SECRET-KEY] [--api API-SIGNATURE]

Например в этом случае мы подключимся к нашему серверу MinIO с помощью команды:
Код:
mc alias set minio http://192.168.205.2 admin Passw0rd --api S3v4

Вы также можете указать ключи, используя стандартный ввод, как показано ниже.
Код:
mc alias set minio http://192.168.205.2 --api S3v4
Enter Access Key:admin
Enter Secret Key:Passw0rd

После подключения вы можете протестировать настройку с помощью команды, чтобы вывести список.
Код:
mc ls play

Теперь вы можете продолжить и использовать больше команд mc. Если вам нужна помощь, найдите ее следующим образом:
Код:
$ mc --help
NAME:
  mc - MinIO Client for cloud storage and filesystems.

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

COMMANDS:
  alias      manage server credentials in configuration file
  ls         list buckets and objects
  mb         make a bucket
  rb         remove a bucket
  cp         copy objects
  mv         move objects
  rm         remove object(s)
  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
  find       search for objects
  sql        run sql queries on objects
  stat       show object metadata
  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)
  support    support related commands
  share      generate URL for temporary access to an object
  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
  anonymous  manage anonymous access to buckets and objects
  tag        manage tags for bucket and object(s)
  diff       list differences in object name, size, and date between two buckets
  replicate  configure server side bucket replication
  admin      manage MinIO servers
  update     update mc to latest release
Мы успешно развернули сервер хранения данных MinIO на Rocky Linux 8, AlmaLinux 8, CentOS 8.
 
Назад
Верх Низ