MinIO – セルフホスト型 S3 準拠の高性能オブジェクト ストレージをお試しください

MinIO - セルフホスト型 S3 準拠の高性能オブジェクト ストレージをお試しください

サーバー上でホストするオブジェクト ストレージ ソフトウェアをお探しですか?

そうでしょう?

AWS S3 やここで述べたその他のクラウドベースのオブジェクト ストレージは数多くあります。ただし、サーバー上でデータをホストする必要がある場合は、MinIO がデータセンター内で役立ちます。

MiniIOは、オープンソースの人気のある分散オブジェクト ストレージ ソフトウェアであり、S3 と互換性があります。エンタープライズ対応であり、その高いパフォーマンスで知られています。

MinIO は、単純な Web アプリケーションから、分析や機械学習アプリケーションのための大規模なデータ分散ワークロードまで使用できます。多くの使用例に役立ちます。

  • 標準的なフラットファイルストレージ
  • マルチクラウドのデータ分散
  • 災害からの回復
  • データ分析

容量の大きいソフトウェアですか?

いいえ、約 50MB 程度で、Kubernetes に適しています。データとメタデータをオブジェクトとして書き込みます。これにより、メタデータを保存してパフォーマンスを向上させるための追加のデータベースやソフトウェアへの依存がなくなりました。

以下のアーキテクチャは公式サイトからのものです。

注目に値する機能のいくつかを見てみましょう。

  • 高性能 – タイトルの通りです。最大170GB/秒の速度で読み取り/書き込みが可能です。それは多いです!
  • スケーラブル – 必要に応じてクラスタリングとスケールを選択します
  • クラウドネイティブ
  • イレイコード方式によるデータ保護
  • AES-CBC、AES-256-GCM、ChaCha20を含む複数の暗号化をサポート
  • 一般的なKMSに対応
  • アプリケーションとユーザー ID
  • イベント通知
  • etcd と CoreDNS を使用したフェデレーション

MinIO はソフトウェア デファインド ストレージに適しています。設定方法を見てみましょう。

MinIO サーバーのインストール

Linux、Windows、macOS、および Kubernetes 経由でインストールできます。ソース経由でビルドしたいですか?もちろん、Golang がインストールされていれば実行できます。

このデモでは、 Kamateraでホストされている CentOS にインストールします。

  • サーバーにログインする
  • 目的のファイル システムの下にフォルダーを作成します。たぶんminio-server
  • 新しく作成したフォルダーに移動し、以下の 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=
export MINIO_SECRET_KEY=geekpassword
./minio server /data &

これで、デフォルトの資格情報の検出に関する警告が表示されなくなります。

いくつかのファイルをアップロードしてみましょう。

  • 右下の+アイコンをクリックしてバケットを作成します
  • テストファイルをアップロードしたところ、ブラウザ上ですぐに表示されました

そして、サーバー上で

[root@gf-lab ]# ls -ltr
total 4
-rw-r--r-- 1 root root 11 Oct 19 11:09 MinIO-Test.txt
[root@gf-lab ]#

ブラウザ上のファイル共有ボタンをクリックすると、共有可能なリンクと有効期限を設定するオプションが表示されます。

MinIOクライアント

MinIO クライアントは、ストレージを管理できる aws-cli 以上のものです。クライアントは Windows、macOS、Linux で利用できます。

Linux にインストールするには、次を実行します。

 wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod 755 mc

mcコマンドを実行すると、コマンドのヘルプが表示されます。

 [root@gf-lab ~]# ./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
[root@gf-lab ~]#

mcコマンドでアップロードしたファイルを一覧表示してみましょう。

まず、管理したいストレージにエイリアスを設定する必要があります。

 [root@gf-lab ~]# ./mc alias set minio http://xx.71.141.xx:9000/  geekpassword
Added `minio` successfully.
[root@gf-lab ~]#
  • minioは別名です。これは好きなものに変更できます。
  • HTTP エンドポイントを実際のエンドポイントに変更します
  • アクセス権と秘密鍵を自分のものに変更します

リストするには、以下のように ls コマンドを使用します。

 [root@gf-lab ~]# ./mc ls --recursive minio 
[2020-10-19 11:09:06 UTC]    11B /MinIO-Test.txt
[root@gf-lab ~]#

素晴らしい。それは動作します!

クライアントを通じて文字通りあらゆることを行うことができます。 MinIO クラウド ストレージだけでなく、GCS、AWS S3、Azure も管理できます。

詳細については、このクライアント クイック スタート ガイドをご覧ください。

MinIO SDK

アプリケーション スタックに応じて、SDK を使用してプログラムでオブジェクト ストレージと対話できます。 Go、Python、Node.js、.NET、Haskell、Java をサポートしています。

MinIOゲートウェイ

MiniIO ゲートウェイを S3、Azure、NAS、HDFS に追加して、MinIO ブラウザーとディスク キャッシュを利用します。

結論

プライベート、ハイブリッド、またはマルチクラウドのオブジェクト ストレージを探している場合は、MinIO が有望です。ぜひ試してみてください。きっと気に入るはずです。テストするには、 Kamatera の MinIO VM を入手するか、任意のクラウド サーバーに自分でインストールします。

「 MinIO – セルフホスト型 S3 準拠の高性能オブジェクト ストレージをお試しください」についてわかりやすく解説!絶対に観るべきベスト2動画

DJI RS 3 Mini にカメラ取り付け!縦位置ネイティブのやり方はこれだ!【セキド公式】
DAO(自律分散型組織)構築してみた 〜構築編〜 #devio2022