👌

s3fs-fuseを使用してLAN内のminioバケットをマウントする

2022/09/17に公開

前回の記事で自宅の環境のNASにMinIOサーバーを構築しバケットを作成した。
今回は同じネットワーク内のPC端末からMinIOバケットをファイルシステムにマウントしてみたので
その記録を残しておこうと思います。

▼環境

NAS:QNAP TS-932PX
Desktop PC:Ubuntu 20.04

▼ツール

s3fs-fuseを使用する
https://github.com/s3fs-fuse/s3fs-fuse

1 README.md記載の通りに今回はUbuntuがマウント元なのでDebian系のインストールを進める。

sudo apt install s3fs

2 s3fsのコマンドインストールの確認を兼ねてバージョンを確認しておく

$ s3fs --version
Amazon Simple Storage Service File System V1.86 (commit:unknown) with GnuTLS(gcrypt)
Copyright (C) 2010 Randy Rizun <rrizun@gmail.com>
License GPL2: GNU GPL version 2 <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

3 バケットアクセス用の認証情報をホームディレクトリに保存しパーミッションを指定しておく。

認証情報(ACCESS_KEY_ID:SECRET_ACCESS_KEY)はMinIO側で専用に作成したユーザーのIDとパスワードが良さそうです。

echo ACCESS_KEY_ID:SECRET_ACCESS_KEY > ${HOME}/.passwd-s3fs
chmod 600 ${HOME}/.passwd-s3fs

4 Ubuntu側にマウントさせるディレクトリを作成しておく。私の環境では下記のようにした。

$ mkdir ~/git/miniobucket

5 ローカルLAN内のQNAP NASのMinIOサーバーマウントします

testbucketはMinIOに作成したバケット名でIP_ADDRESSはNASのローカルIPアドレスで
 ポート9000はminioサーバーのAPIポートとなっている様です。

$ s3fs testbucket ~/git/miniobucket -o passwd_file=${HOME}/.passwd-s3fs -o url=http://IP_ADDRESS:9000/ -o use_path_request_style

6 マウントがうまく行くとminiobucket ディレクトリにUbuntu側で保存したファイルが

MinIOコンソール上でバケット側に保存されているのが確認出来ます。

$ ls -la miniobucket
total 749
drwx------  1 keigo keigo      0  11  1970  .
drwxrwxr-x 20 keigo keigo   4096  916 22:14  ..
-rw-rw-r--  1 keigo keigo 379540  915 23:02 'download (1).png'
-rw-rw-r--  1 keigo keigo 380809  915 23:01  download.png
drwxr-x---  1 keigo keigo      0  11  1970  img
drwxr-x---  1 keigo keigo      0  11  1970  input_data

補足 何の役に立つのでしょうか?

⇛ローカルで生成したAI画像の出力先をminiobucketディレクトリにしておけば
RAID構成のボリューム上に構築されたMinIOのバケットに自動的に画像を保存してくれます。
スクリプト等で多くの画像を生成する場合はデスクトップPCのローカルに保存するより
オブジェクトストレージに保存しておいた方が後々データを扱い安いと考えています。

WindowsやMacOS端末で画像生成した際もLAN内に保管場所があると複数デバイスでの
AI画像生成検証結果を共有しておけます。

WindowsノートPC、Macbook proからのマウントも今後検証予定

Discussion