Спробуйте MinIO – високоефективне сховище об’єктів, сумісне з S3

Ви шукаєте програмне забезпечення для зберігання об’єктів для розміщення на своєму сервері?

Я думаю, так?

Існує багато хмарних сховищ об’єктів, таких як 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, яка розміщена на Каматера.

  • Увійти на сервер
  • Створіть папку під потрібною файловою системою. Можливо, міні-сервер
  • Перейдіть до новоствореної папки та виконайте наведену нижче команду 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=techukraine.net
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 — це більше, ніж aws-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.

  Як налаштувати форми Google за допомогою тем, зображень і шрифтів

По-перше, нам потрібно встановити псевдонім для сховища, яким ми хочемо керувати.

[[email protected] ~]# ./mc alias set minio http://xx.71.141.xx:9000/ techukraine.net geekpassword
Added `minio` successfully.
[[email protected] ~]#
  • minio — псевдонім. Ви можете змінити це на будь-що.
  • Змініть кінцеву точку HTTP на справжню
  • Змініть доступ і секретний ключ на свій

і, щоб отримати список, використовуватиме команду ls, як показано нижче.

[[email protected] ~]# ./mc ls --recursive minio 
[2020-10-19 11:09:06 UTC]    11B techukraine.net/MinIO-Test.txt
[[email protected] ~]#

чудово це працює!

Через клієнта можна робити буквально все. Ви можете керувати не лише хмарним сховищем MinIO, але й GCS, AWS S3, Azure.

Подивіться це швидкий посібник для клієнта для більш детальної інформації.

MinIO SDK

Залежно від стека програми ви можете програмно взаємодіяти зі сховищем об’єктів за допомогою SDK. Він підтримує Go, Python, Node.js, .NET, Haskell і Java.

Шлюз MinIO

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

Висновок

Якщо ви шукаєте приватне, гібридне або багатохмарне сховище об’єктів, тоді MinIO виглядає багатообіцяючим. Спробуйте, і ви закохаєтесь у нього. Щоб перевірити речі, ви можете отримати MinIO VM Kamatera або встановіть себе на будь-якому хмарному сервері.