Опитайте MinIO – самостоятелно хоствано S3-съвместимо хранилище на обекти с висока производителност

Търсите ли софтуер за съхранение на обекти, който да хоствате на вашия сървър?

Предполагам, да?

Има много облачно базирано съхранение на обекти като AWS S3 и други, които споменах тук. Въпреки това, ако трябва да хоствате вашите данни на вашия сървър, MinIO може да ви помогне във вашите центрове за данни.

MiniIO е популярен софтуер за съхранение на разпределени обекти с отворен код и е съвместим със S3. Той е готов за предприятия и е известен с високата си производителност.

Можете да използвате MinIO от просто уеб приложение до големи работни натоварвания за разпространение на данни за приложения за анализ и машинно обучение. Може да помогне в много случаи на употреба.

  • Стандартно съхранение на плоски файлове
  • Мултиоблачно разпространение на данни
  • Възстановяване след бедствие
  • Анализ на данни

Това обемен софтуер ли е?

Не, той е само около ~50MB и е подходящ за Kubernetes. Той записва данни и метаданни като обект. Това премахва зависимостта от наличието на допълнителна база данни или софтуер за съхраняване на метаданни и подобряване на производителността.

Архитектурата по-долу от официалния им сайт.

Нека разгледаме някои от функциите, които си струва да се отбележат.

  • Висока производителност – казва заглавието. Способен е да чете/записва със скорост ~170GB/s. Това е много!
  • Мащабируеми – изберете клъстериране и мащабирайте според нуждите си
  • Роден в облак
  • Защита на данните чрез метода на код за изтриване
  • Поддържа се множество криптирания, включително AES-CBC, AES-256-GCM, ChaCha20
  • Съвместим с обикновен KMS
  • Приложение и потребителска идентичност
  • Известие за събитие
  • Федерация с помощта на etcd и CoreDNS

MinIO е добър избор за софтуерно дефинирано съхранение. Нека проучим как да настроим нещата.

Инсталиране на MinIO сървър

Можеш Инсталирай на Linux, Windows, macOS и чрез Kubernetes. Предпочитате изграждане чрез източник? Разбира се, можете да го направите, ако имате инсталиран Golang.

  (ФИКСИРАНА) Микрофонът на Google Meet не работи, „Изключен поради размера на обаждането“

За тази демонстрация ще инсталирам на 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 &

/данни, споменати по-горе, е файловата система, където 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=pctechbg.net
export MINIO_SECRET_KEY=geekpassword
./minio server /data &

Сега не трябва да се оплаква от предупреждение за откриване на идентификационни данни по подразбиране.

  Поточно предаване на музика от Dropbox, Google Drive и Box с CloudAmpz

Нека се опитаме да качим няколко файла.

  • Щракнете върху иконата + вдясно долу и създайте кофа
  • Качих тестов файл и веднага се вижда в браузъра

и на сървъра

[[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.

  Как принудително да затворите приложения на iPhone или iPad

Първо, трябва да зададем псевдонима на хранилището, което искаме да администрираме.

[[email protected] ~]# ./mc alias set minio http://xx.71.141.xx:9000/ pctechbg.net geekpassword
Added `minio` successfully.
[[email protected] ~]#
  • minio е псевдонимът. Можете да промените това на каквото искате.
  • Променете HTTP крайната точка на вашата реална
  • Променете достъпа и секретния ключ с вашия

и за списък ще използва командата ls, както е показано по-долу.

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

Страхотен. работи!

Можете да правите буквално всичко чрез клиента. Не само можете да управлявате MinIO облачно хранилище, но и GCS, AWS S3, Azure.

Вижте това ръководство за бърз старт на клиента за повече информация.

MinIO SDK

В зависимост от стека на вашето приложение, можете да взаимодействате с обектно съхранение програмно с помощта на SDK. Поддържа Go, Python, Node.js, .NET, Haskell и Java.

MinIO Gateway

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

Заключение

Ако търсите частно, хибридно или мулти-облачно обектно съхранение, тогава MinIO изглежда обещаващо. Опитайте и ще се влюбите в него. За да тествате нещата, можете да получите MinIO VM на Kamatera или се инсталирайте на всеки облачен сървър.