Файловое хранилище имеет локальное хранилище, объектное хранилище OSS (Али Клауд,Семь Ниуюн, Tencent Cloud и др.),fastDFS, mongodb, теперь поговорим о minio.
Введение
MinIO — это служба хранения объектов, основанная на протоколе с открытым исходным кодом Apache License v2.0. Он совместим с интерфейсом службы облачного хранилища Amazon S3 и очень подходит для хранения неструктурированных данных большой емкости, таких как изображения, видео, файлы журналов, данные резервного копирования и образы контейнеров/виртуальных машин и т. д. Объектный файл может иметь любой размер. размер, от нескольких килобайт до максимального диапазона 5T. MinIO — это очень легкий сервис, который можно легко интегрировать с другими приложениями, такими как NodeJS, Redis или MySQL.
Официальный адрес документа:docs.min.io/cn/
Получите адрес minio:логин.мин.ио/сервер/мини…
Функциональное воплощение
- защита данных
- Высокая доступность
- ограничение
- последовательность
- Лямбда-вычисления
- Зашифровано и защищено от взлома
- Может быть подключен к внутреннему хранилищу
- поддержка SDK
- Совместимость с Amazon S3
Кластерное планирование
один узел
рисунки, пока
многоузловой
рисунки, пока
распределенный
рисунки, пока
Создание распределенного кластера
Кластерное планирование
Для рабочей среды рекомендуется минимум 4 узла, а для среды разработки достаточно автономной версии.
Изменить имя хоста и хост (все узлы)
hostnamectl set-hostname minio1
hostnamectl set-hostname minio2
hostnamectl set-hostname minio3
hostnamectl set-hostname minio4
cat >> /etc/hosts <<EOF
192.168.180.128 minio1
192.168.180.129 minio2
192.168.180.130 minio3
192.168.180.131 minio4
EOF
Модификация максимального количества файлов в системе (все узлы)
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
Создание каталога (все узлы)
- Запустить скрипты и директорию бинарников
- Данные каталога хранения данных
- Каталог файла конфигурации /etc/minio
mkdir -p /data/minio/{run,data} && mkdir -p /etc/minio
Файл запуска кластера (все узлы)
vim /data/minio/run/run.sh
- MINIO_ACCESS_KEY: имя пользователя, минимальная длина 5 символов.
- MINIO_SECRET_KEY: пароль, минимальная длина 8 символов.
- --config-dir: указать каталог файла конфигурации кластера
#!/bin/bash
export MINIO_ACCESS_KEY=juejinzheshuo
export MINIO_SECRET_KEY=juejinzheshuo
/data/minio/run/minio server --config-dir /etc/minio \
http://192.168.180.128/data/minio/data \
http://192.168.180.129/data/minio/data \
http://192.168.180.130/data/minio/data \
http://192.168.180.131/data/minio/data \
minio.service (все узлы)
- Рабочий каталог: каталог двоичных файлов.
- ExecStart: указывает сценарий запуска кластера.
cat > /usr/lib/systemd/system/minio.service <<EOF
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
[Service]
WorkingDirectory=/data/minio/run/
ExecStart=/data/minio/run/run.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
Двоичные файлы (все узлы)
Загрузите бинарный файл minio в каталог /data/minio/run. бинарный файл minio, получите адрес minio:логин.мин.ио/сервер/мини…
Изменение разрешения (все узлы)
Добавить разрешения для всех задействованных файлов или каталогов
- служебный файл
- бинарный файл
- Скрипт запуска кластера
chmod +x /usr/lib/systemd/system/minio.service
&& chmod +x /data/minio/run/minio
&& chmod +x /data/minio/run/run.sh
Среди них «WorkingDirectory» — это каталог сценария запуска, а «ExecStart» — указанный сценарий запуска кластера. Обратитесь к официальному адресу:GitHub.com/мини-о/мини-о…
Запустите кластер (все узлы)
systemctl daemon-reload
systemctl enable minio && systemctl start minio
Соответствующие общие команды следующие: systemctl start | stop | enable | статус minio
прокси-кластер
В производственной среде необходимо использовать Nginx для проксирования адреса кластера и унификации внешнего входа.
upstream minio{
server 192.168.180.128:9000;
server 192.168.180.129:9000;
server 192.168.180.130:9000;
server 192.168.180.131:9000;
}
server {
listen 9000;
server_name minio;
location / {
proxy_pass http://minio;
proxy_set_header Host $http_host;
client_max_body_size 1000m;
}
}
проверка доступа
Браузер обращается к прокси-адресу кластера minio + порт 9000, имя пользователя и пароль — те, которые мы установили в файле запуска run.sh выше.
Вопросы и мысли: Каков его механизм или принцип работы? Как он расширяется с точки зрения распределенного расширения? Указанный выше файл работает в режиме реального времени или файл отсутствует? Хранилище файлов второго уровня?
демонстрационная среда
Следующая статья[Nuggets говорят] minio использует прокси-сервер nginx для настройки https
использованная литература
Краткое руководство по распределенному MinIO
Построение распределенного кластера Minio
Краткое руководство по запуску клиента MinIO
Распределенное развертывание MinIO
Построение распределенного кластера MinIO
Введение в общее распределенное хранилище файлов, сравнение выбора, проектирование архитектуры