minIOを使ってデータを一元管理する

ファイルサーバーはこれまでSambaを用いていたが、最近不安定だったことから、S3互換のあるminIOに置き換え、いろいろな使い方を考案しようと思う

今回すること

minIOをdockerで建てる

Nextcloudのストレージとして活用する。

FessでminIOに入れた書類を検索できるようにする

なお、それぞれtailscaleで接続することを目標としている。

なぜminIOなのか

SambaよりS3のほうが、コマンドによってファイルを操作しやすく、また、多くのOSSのバックエンドとしてS3が利用できるようになっていることからminIOを利用する。

特に今回の場合、ファイル操作に対して課金されないことから、より柔軟な活用ができると考えられる。

minIOをdockerで建てる

1
docker run    -p 9000:9000    -p 9090:9090    --user $(id -u):$(id -g)    --name minio1    -e "MINIO_ROOT_USER=admin123"    -e "MINIO_ROOT_PASSWORD=admin123"    -v ${HOME}/hddgreen:/data    quay.io/minio/minio server /data --console-address ":9090"

今回は筆者のhddgreen(ただ単に緑色のシールが貼ってあるだけのHDD)をminIOに使用する。

コマンドはこれだけで立ち上がる。root のユーザーもパスワードも、指定しなければadmin123らしい。

minioのdockerには公式のものとquayから配信されているものがあるが、なぜだかWebUIが少し異なり、quayのほうがわかりやすかったので今回はQuayのものを利用する。

Nextcloudのストレージにしてみる

Access Keysから

Access keysSecret Keysを取得する。ReadとWriteを両方許可しておくこと

NextcloudはSnapから簡単にインストールできる

1
sudo snap install nextcloud

Nextcloudのデフォルトportは8080なので、そこにアクセス。

初期設定をいろいろ済ませて

上からBucketの名前、Ipアドレス(今回は諸事情によりtailscale上のIp、localhostでも可)、Port(先程のminIOの場合、9000)、下の2つにAccess keyとsecret keyを入れて完成

今回はTailscale上からのみアクセスする前提なのでSSLは無効化した。またパス形式を有効にしておく必要がある。

これでマウントできた。

Fessも接続する

Fessもdockerでインストールする。

公式Gitにある通りにインストール。

1
2
3
git clone https://github.com/codelibs/docker-fess.git
cd docker-fess/compose
docker compose -f compose.yaml -f compose-opensearch2.yaml up -d

http://(ホストip):8080/adminにアクセス。

初期ユーザー名、パスワードはともにadmin

minIOをストレージとして使えるようにするために、ログインして管理画面からシステム→全般→ストレージとする。

ここもエンドポイントをhttp://(ホストip):9000にしてバケットを指定。

クローラー→ファイルシステムとする。

1
2
3
4
5
6
パス
storage://バケット名/
設定パラメーター
client.endpoint=http://(ホストip):9000
client.accessKey=あなたのアクセスキー
client.secretKey=あなたのシークレットキー

これで定期的にクロールされる。

終わりに

sambaよりコマンドで操作しやすく、また、S3コマンドもそのまま活用できるため扱いやすい。

おまけ

Tailscaleで大容量のファイルの送受信を行うとcpuをめちゃめちゃ食うということが言われており、たしかに結構食べる。想定よりも少しCpuを強めにサーバーを構築したほうが良さそうだ。

研究室の一角 - にほんブログ村
Please enable / Bitte aktiviere JavaScript!
Veuillez activer / Por favor activa el Javascript![ ? ]
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Hugo で構築されています。
テーマ StackJimmy によって設計されています。
Please enable / Bitte aktiviere JavaScript!
Veuillez activer / Por favor activa el Javascript![ ? ]