Вы ищете программное обеспечение для хранения объектов для размещения на своем сервере?
Я полагаю, что?
Существует множество облачных хранилищ объектов, таких как AWS S3 и другие, о которых я упоминал здесь. Однако, если вам необходимо разместить данные на собственном сервере, MinIO может помочь в ваших центрах обработки данных.
MiniIO — это популярное программное обеспечение для хранения распределенных объектов с открытым исходным кодом, совместимое с S3. Он подходит для предприятий и известен своей высокой производительностью.
Вы можете использовать MinIO от простого веб-приложения до больших рабочих нагрузок по распределению данных для приложений аналитики и машинного обучения. Это может помочь во многих случаях использования.
- Стандартное хранилище плоских файлов
- Распределение данных по нескольким облакам
- Аварийное восстановление
- Аналитика данных
Это громоздкое программное обеспечение?
Нет, он весит всего около 50 МБ и удобен для Kubernetes. Записывает данные и метаданные в виде объекта. Это устраняет зависимость от наличия дополнительной базы данных или программного обеспечения для хранения метаданных и повышения производительности.
Архитектура ниже с их официального сайта.
Давайте рассмотрим некоторые из примечательных особенностей.
- Высокая производительность – говорит название. Он может читать / писать со скоростью ~ 170 ГБ / с. Это много!
- Масштабируемость — кластеризуйтесь и масштабируйтесь по мере необходимости
- Облако
- Защита данных методом Erasure code
- Поддерживается множественное шифрование, включая AES-CBC, AES-256-GCM, ChaCha20
- Совместимость с обычным KMS
- Приложение и личность пользователя
- Уведомление о событии
- Федерация с помощью etcd и CoreDNS
MinIO — хороший выбор для программно-определяемого хранилища. Давайте рассмотрим, как настроить вещи.
Установка сервера MinIO
Вы можете установить на Linux, Windows, macOS и через Kubernetes. Хотите собрать из исходников? Конечно, вы можете, если у вас установлен Golang.
Для этой демонстрации я буду устанавливать CentOS, размещенную на Kamatera.
- Войти на сервер
- Создайте папку в нужной файловой системе. Может быть, мини-сервер
- Перейдите во вновь созданную папку и выполните приведенную ниже команду vget.
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=techblog.co.rs export MINIO_SECRET_KEY=geekpassword ./minio server /data &
Теперь он не должен жаловаться на предупреждение об обнаружении учетных данных по умолчанию.
Попробуем загрузить несколько файлов.
- Нажмите значок + в правом нижнем углу и создайте корзину.
- Я загрузил тестовый файл и он сразу же был виден в браузере
и на сервере
[[email protected] geekflare]# ls -ltr total 4 -rw-r--r-- 1 root root 11 Oct 19 11:09 MinIO-Test.txt [[email protected] geekflare]#
Если вы нажмете кнопку общего доступа к файлам в браузере, вы получите ссылку для общего доступа и возможность установить срок действия.
Клиент MinIO
Клиент MinIO — это больше, чем avs-cli, который позволяет вам управлять хранилищем. Клиент доступен для Windows, macOS и Linux.
Чтобы установить в Linux, выполните следующее.
wget https://dl.min.io/client/mc/release/linux-amd64/mc chmod 755 mc
Запустите команду mc, чтобы просмотреть справку по команде.
[[email protected] ~]# ./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 [[email protected] ~]#
Давайте попробуем перечислить файл, который я загрузил с помощью команды mc.
Во-первых, нам нужно настроить псевдоним для репозитория, которым мы хотим управлять.
[[email protected] ~]# ./mc alias set minio http://xx.71.141.xx:9000/ techblog.co.rs geekpassword Added `minio` successfully. [[email protected] ~]#
- псевдоним прошел. Вы можете изменить это на все, что захотите.
- Измените конечную точку HTTP на свою
- Измените ключ доступа и секретный ключ на свой
и для просмотра он будет использовать команду ls, как показано ниже.
[[email protected] ~]# ./mc ls --recursive minio [2020-10-19 11:09:06 UTC] 11B techblog.co.rs/MinIO-Test.txt [[email protected] ~]#
Большой. оно работает!
Через клиент можно делать буквально все. Вы можете управлять не только облачным хранилищем MinIO, но и GCS, AWS S3, Azure.
См. это краткое руководство клиента для получения более подробной информации.
МинИО SDK
В зависимости от вашего стека приложений вы можете программно взаимодействовать с хранилищем объектов с помощью SDK. Он поддерживает Go, Python, Node.js, .NET, Haskell и Java.
Шлюз MinIO
Добавьте шлюз MiniIO в S3, Azure, NAS, HDFS, чтобы воспользоваться преимуществами браузера MiniIO и кэширования диска.
Заключение
Если вы ищете частное, гибридное или многооблачное объектное хранилище, то MinIO выглядит многообещающе. Попробуйте, и вы влюбитесь в него. Чтобы протестировать ситуацию, вы можете получить виртуальную машину Kamatera MiniIO или установить ее на любой облачный сервер.