Minio
Установка
Сайт разработчика
Ссылки по теме:
- Minio распределенное S3 объектное хранилище, установка и решение проблем
- Настройка сервера хранения объектов с помощью Minio в Ubuntu 18.04
- Minio: как сделать папки и файлы уже в точке mount доступными при запуске minio server?
- MinIo для самых маленьких
Загрузка сервера (один бинарный файл minio)
cd /path/to/minio wget https://dl.min.io/server/minio/release/linux-amd64/minio
Скрипт запуска /path/to/minio/minio.sh
# данные для авторизации узлов кластера между собой (не использовать спецсимволы &@# и т.п.) export MINIO_ACCESS_KEY=********* export MINIO_SECRET_KEY=********* # запуск узла кластера из 3 узлов с подключением 2-х смонтированных разделов /usr/sbin/minio server http://node[1...3].local/mnt/vol[1...2]
Права
cd /path/to/minio chmod minio +x chmod minio.sh +x
Файрвол
# firewall может создать проблемы (no route to host) # найдите решение или выключите firewall systemctl stop firewalld systemctl disable firewalld
Время на всех узлах должно быть синхронизировано. Включите синхронизацию времени на всех узлах
systemctl status systemd-synchrod timedatectl
Создание сервиса /etc/systemd/system/miniod.service
[Unit] Description=Minio Distributed service After=network.target StartLimitIntervalSec=0 [Service] Type=simple Restart=allways RestartSec=1 User=minio Group=minio ExecStart=/bin/bash /path/to/mainio/minio.sh [Install] WantedBy=multi-user.target
Включение и запуск сервиса
systemctl enable miniod systemctl start miniod
Получаем кластер из 3 узлов, которые автоматически синхронизируют между собой хранилища.
Далее необходимо настроить один из методов распределения клиентов:
- round robin
- балансировка нагрузки nginx
- hiproxy
- и .т.п.
Minio поднимает свой Web API на порту 9000 (http://node1:9000)
Minio также поднимает веб-интерфейс администрирования (console) на динамическом порту. При подключении браузером на порт 9000 происходит автоматический редирект на порт интерфейса администрирования. Для фиксации порта административного интерфейса при старте minio необходимо задавать параметр --console-address ":9001"
Администрирование
веб интерфейс администратора
- http://<my_minio_host>:9001/login
Монтирование удаленного хранилища s3 в Linux
Ссылки по теме
Установка s3fs на Ubuntu 20.04
apt install s3fs
Установка s3fs в CentOS 8
dnf install s3fs-fuse
Монтирование в папку
s3fs <bucket_name> -o accessKeyId=******* -o secretAccessKey=******* /path/to/mount
Монтирование удаленного хранилища s3 в Windows
Ссылки по теме
Все что ниже не проверено и надергано из статьи выше, так что сначала читаем статью и пробуем.
Скачайте rclone
Настройка
rclone.exe config
Установка WinFSP (аналог fuse в Linux)
Set-ExecutionPolicy Bypass -Scope Process -Force;
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco install winfsp -y
Монтирование сетевого диска
.\rclone mount blog-bucket01:blog-bucket01/ S: --vfs-cache-mode full
Высокая доступность
Режимы работы кластера minio
- Single-Drive Mode
- один сервер
- формат хранения FS, один каталог файловой системы, смонтированный на один диск
- Single-Node Multi-Drive (SNMD)
- один сервер
- формат хранения XL (Erasure Coding), 4 и более каталогов файловой системы, смонтированные на разные диски
- Distributed Mode (Multi-Node Multi-Drive / MNMD)
- 2 и более сервера
- 4 и более каталога суммарно, смонитрованные на разные диски
- данные
Erasure Coding - используется кодирование Рида-Соломона (Reed-Solomon)
схема 2+2 (нет экономии 1/2) p1=a*d1+b*d2 p2=c*d1+d*d2 здесь a,b,c,d это целые положительные константы d1, d2 - числа (byte, dword или qword) из 1-го и 2-го блока данных проходя по 2 частям данных получаем 2 части parity того же объема схема 4+2 (экономия 4/6) p1=a1*d1+a2*d2+a3*d3+a4*d4 p1=b1*d1+b2*d2+b3*d3+b4*d4
Site-to-Site Replication - можно настроить репликацию между двумя кластерами
Непрерывность
Для онлайн бэкапа большого хранилища S3 можно использовать утилиту rclone