【非推奨】NETGEARのReadyNAS RN104にMinIOを入れてオブジェクトストレージとしても使う話

Posted by 雅楽斎 on Tuesday, October 19, 2021

TOC

クラウド運用と同じ環境でローカル環境を作りたい→宅内オブジェクトストレージがあった方が良い

現在、我が家では24時間稼働しているコンピューターとしてRaspberry Pi 4B(RAM8GB)がありますが、他にもNAS(ReadyNAS RN104)が24時間稼働しています。どちらも大絶賛稼働しています。

Raspberry Pi 4にインストールされているUbuntu 20.10をUbuntu 21.04にアップグレードする(APT::Default-Releaseはハマる)

SyncthingとReadyNASで無理矢理構築したオレオレBucketでScoopを使ったWindowsの開発環境整備

で、家庭内でやりたい大抵のサーバーはRaspberry Pi 4と1TB HDDを接続して実現できています1が、クラウド環境での外部ストレージとして使うことがよくあるAmazon AWS S3に代表されるオブジェクトストレージの利用はRaspberry Pi 4だけでは賄うことができず、宅内の運用でなんとかできないかなと考えて試した結果がこの記事になります。

一般的に、システムはこのようになっていることが多いのですが、

LAN内で開発する場合はS3をMinIOに置き換えるための手法を探る(かつ、NASでMinIOを使おう)というのがこの記事の目的です。

前々から知ってはいたのですが、複数HDDトレイの値段が相対的に安いNASとして購入したNETGEARのReadyNASはDebianで動作しており、保証が必要なければSSHでログインして好きなようにできるという自由度を提供しています。

いつの間にかシリーズ自体が終売しているKURO-BOX・KURO-NASシリーズなき今、偶然選んだNASが大容量常時稼働PCとして使えるのではないかと思って調査から試運転、実践の記録ですが、先に記載した通りこの記事の内容は無保証です。更に、RN104もすでにサポートが終了しており、後述しますが使っているDebianも8(Jessie)なので輪をかけて全てに於いて非推奨です。

諸々の諸元

ではここで今回MinIOをインストールしてオブジェクトストレージとして活躍してもらう機材のご紹介です。

項目名内容備考
ReadyNAS 104 RN10400サポート終了(最終ファームウェア6.10.5)
HDDベイの数3.5インチ/2.5インチ × 410TB HDDと6TB HDDを装着(RAIDなし)
CPUMarvell Armada 370/XP (Device Tree)
RAM512MB
LANGbE × 2ポート1ポートのみ使用
OSDebian GNU/Linux 8.11(Jessie)2020/06/30 EOL

組み込みとしては優秀な方(電源がそれなりにしっかりしていることが想定されることと最初から24時間稼働が前提、LANが2ポートあるのでどちらか壊れても簡単に復旧可能)な感じかと思います。

ReadyNASをDebianとして使う

SSHの有効化

これで保証が切れます。

諸々の確認

sshでログインできるようになったので、諸々を確認していきます。rootユーザーのパスワードはNASのadminユーザーのパスワードです。

$ ssh root@192.168.1.126
(snip)
root@192.168.1.126's password: 

Welcome to ReadyNASOS 6.10.5

ということで、ReadyNASとしてのOSのバージョンは6.10.5(ファームウェアのバージョンと同じ)です。

# cat /etc/debian_version 
8.11
# cat /etc/issue
ReadyNASOS 6.10.5 \n \l

パッケージは更新しませんが、aptが使えるはずなので試してみます。

# apt-get update
Err:1 http://security.debian.org jessie/updates InRelease                
  Could not resolve 'security.debian.org'
Err:2 http://mirrors.kernel.org/debian jessie InRelease                  
  Could not resolve 'mirrors.kernel.org'
Err:3 https://apt.readynas.com/packages/readynasos 6.10.5 InRelease
  Could not resolve host: apt.readynas.com
Reading package lists... Done
W: Failed to fetch https://apt.readynas.com/packages/readynasos/dists/6.10.5/InRelease  Could not resolve host: apt.readynas.com
W: Failed to fetch http://mirrors.kernel.org/debian/dists/jessie/InRelease  Could not resolve 'mirrors.kernel.org'
W: Failed to fetch http://security.debian.org/dists/jessie/updates/InRelease  Could not resolve 'security.debian.org'
W: Some index files failed to download. They have been ignored, or old ones used instead.

DNSの解決に失敗しているようで、そういえばIPアドレス固定でルーターに振るようにしていたことを思い出して/etc/resolv.confにDNSサーバー(ルーターのIPアドレス)を記載します。

# vi /etc/resolv.conf
nameserver 192.168.1.1

今度はaptも通るようになったので、screenfetchをインストールします。2

# apt-get update
# apt-get install screenfetch
# screenfetch
         _,met$$$$$gg.           root@nas-zz-zz-zz
      ,g$$$$$$$$$$$$$$$P.        OS: Debian 
    ,g$$P""       """Y$$.".      Kernel: armv7l Linux 4.4.218.armada.1
   ,$$P'              `$$$.      Uptime: 114d 2h 36m
  ',$$P       ,ggs.     `$$b:    Packages: 391
  `d$$'     ,$P"'   .    $$$     Shell: 19992
   $$P      d$'     ,    $$P     CPU: ARMv7 rev 1 (v7l)
   $$:      $$.   -    ,d$$'     RAM: 140MB / 496MB
   $$\;      Y$b._   _,d$P'     
   Y$$.    `.`"Y$$$$P"'         
   `$$b      "-.__              
    `Y$$                        
     `Y$$.                      
       `$$b.                    
         `Y$$b.                 
            `"Y$b._             
                `""""           

マウントポイントについては、ドライブ単位のマウントポイントがbtrfs(NAS上でbtrfsでフォーマットしたため)と、恐らくFTPを有効にしていることから/var/ftp/以下に定義されています。

# mount
(snip)
/dev/md126 on /TOSHIBA type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=5,subvol=/)
/dev/md127 on /RED10 type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=5,subvol=/)
/dev/md126 on /home type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=260,subvol=/home)
/dev/md126 on /apps type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=259,subvol=/.apps)
/dev/md126 on /var/ftp/CopyFromBackup type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=263,subvol=/CopyFromBackup)
/dev/md127 on /var/ftp/data_root type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=260,subvol=/data_root)
/dev/md126 on /var/ftp/databk type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=4128,subvol=/databk)
/dev/md127 on /var/ftp/Scoop type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=3631,subvol=/Scoop)
/dev/md126 on /run/nfs4/home type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=260,subvol=/home)

また、OS領域は4GB弱のストレージがあるようです。

# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev             10M  4.0K   10M   1% /dev
/dev/md0        3.7G  725M  2.8G  21% /
tmpfs           249M     0  249M   0% /dev/shm
tmpfs           249M  400K  248M   1% /run
tmpfs           125M  1.8M  123M   2% /run/lock
tmpfs           249M     0  249M   0% /sys/fs/cgroup
/dev/md126      5.5T  5.5T   64K 100% /TOSHIBA
/dev/md127      9.1T  6.6T  2.6T  72% /RED10
/dev/md126      5.5T  5.5T   64K 100% /home
/dev/md126      5.5T  5.5T   64K 100% /apps
/dev/md126      5.5T  5.5T   64K 100% /var/ftp/CopyFromBackup
/dev/md127      9.1T  6.6T  2.6T  72% /var/ftp/data_root
/dev/md126      5.5T  5.5T   64K 100% /var/ftp/databk
/dev/md127      9.1T  6.6T  2.6T  72% /var/ftp/Scoop

その他の仕様についてはこんな感じです。

# uname -a
Linux nas-E6-03-60 4.4.218.armada.1 #1 SMP Mon Jan 11 06:38:27 UTC 2021 armv7l GNU/Linux
# cat /proc/cpuinfo
processor	: 0
model name	: ARMv7 Processor rev 1 (v7l)
BogoMIPS	: 34.37
Features	: half thumb fastmult vfp edsp vfpv3 vfpv3d16 tls idivt 
CPU implementer	: 0x56
CPU architecture: 7
CPU variant	: 0x1
CPU part	: 0x581
CPU revision	: 1

Hardware	: Marvell Armada 370/XP (Device Tree)
Revision	: 0000
Serial		: 0000000000000000

ユーザー管理のクセがすごい

SSHでログインできるようになったReadyNAS、使えるユーザーについてLinuxなので当然rootユーザーは使えますが、NAS上の管理ユーザーであるadminもいます。

#  cat /etc/passwd 
root:x:0:0:root:/root:/bin/bash
(snip)
admin:x:98:98::/home/admin:/bin/false
(snip)

他にもsshdユーザーやwww-dataユーザーといったそれぞれのdaemon単位でユーザーがいますが、(NAS管理と整合性を持たせようとした場合)SSH上の作業ユーザーをどうするかというのは結構面倒な問題を孕んでいます。

私の場合、NAS上のユーザーをadminで兼ねているため(管理を手抜きするため…)、NAS上のディレクトリも当然adminユーザーがowner/groupになっていますが、su - adminでadminになってもログインシェルが/bin/falseになっているのでadminユーザーには切り替わりません。

# id
uid=0(root) gid=0(root) groups=0(root)
# su - admin
# id
uid=0(root) gid=0(root) groups=0(root)

adminユーザーの所属グループはadmin sudo shadowになっています。

# groups admin
admin : admin sudo shadow
# getent group admin
admin:x:98:
# getent group sudo
sudo:x:27:admin
# getent group shadow
shadow:x:42:admin

かといってrootユーザーで操作したファイルがadminユーザーで操作できないのかといえばそうではなく、ACLで制御されているようです。

# # NASで管理しているディレクトリ上で実行
# getfacl .
# file: .
# owner: admin
# group: admin
user::rwx
user:admin:rwx
user:guest:rwx
group::rwx
group:admin:rwx
group:guest:rwx
mask::rwx
other::rwx
default:user::rwx
default:user:admin:rwx
default:user:guest:rwx
default:group::rwx
default:group:admin:rwx
default:group:guest:rwx
default:mask::rwx
default:other::rwx

なんとももやもやする状態ですが、ユーザーを切り替えずに他のユーザーとして作業するためにsudo -u 操作することにしたいユーザー名を実行コマンドの先頭に付与して作業するかファイル操作の後にchown/chgroupで書き換える必要があります。但し、ReadyNASは標準でsudoコマンドがインストールされていないので、別途aptでインストールする必要があります。

MinIOのセットアップ

S3互換のオブジェクトストレージのオープンソース実装であるMinIOですが、ARM用のバイナリはUbuntu/Debian用のパッケージによる配布がされていない(amd64用はdebパッケージが配布されています)ため、バイナリを任意のディレクトリに配置して実行する形を取ります。

MinIOのダウンロード

まず、バイナリを/opt/minioにダウンロードして実行してみます。念の為、ファイルが正しいものかどうかを簡易的に確認します。(sha1sumコマンドのハッシュ値は2021/10/13版のものが表示されます。リリース間隔がかなり短いので作業日で変わります)

# mkdir /opt/minio
# cd /opt/minio
# wget https://dl.min.io/server/minio/release/linux-arm/minio
# wget https://dl.min.io/server/minio/release/linux-arm/minio.shasum
# sha1sum minio
7f0fdda666c7447f692faceda18f2ff5d04977c0  minio
# cat minio.shasum 
7f0fdda666c7447f692faceda18f2ff5d04977c0 minio.RELEASE.2021-10-13T00-23-17Z
# rm minio.shasum

sha1ハッシュが一致したので、ファイル自体は改竄されていないと考えて良いと思います(HTTPSでダウンロードしたので)

慣れないarmバイナリなので本当に実行できそうか、ファイル自体を確かめますが…

# file minio
-bash: file: command not found

fileコマンドがないという初めての事象に遭遇w

# apt-get install file
# file minio
minio: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, stripped

ということで、スタティックリンクされてデバッグシンボルもstripされてなくなっているバイナリということが確認できます。

# chmod +x minio 
# ./minio --version
minio version RELEASE.2021-10-13T00-23-17Z

バイナリはそのまま実行できそうです。ほっと一安心。

試しに実行

~/miniobucketというバケットのディレクトリを作成して、とりあえず起動します。

# mkdir ~/miniobucket
# ./minio server ~/miniobucket
API: http://192.168.1.126:9000  http://127.0.0.1:9000     
RootUser: minioadmin 
RootPass: minioadmin 

Console: http://192.168.1.126:32865 http://127.0.0.1:32865   
RootUser: minioadmin 
RootPass: minioadmin 

Command-line: https://docs.min.io/docs/minio-client-quickstart-guide
   $ mc alias set myminio http://192.168.1.126:9000 minioadmin minioadmin

Documentation: https://docs.min.io

WARNING: Console endpoint is listening on a dynamic port (32865), please use --console-address ":PORT" to choose a static port.
WARNING: Detected default credentials 'minioadmin:minioadmin', we recommend that you change these values with 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' environment variables

WARNINGとして2つ出力されています。

  • bindするポートが動的取得で32865番ポートを使っているので、–console-addressを使って静的なポートを指定してくれ
  • デフォルト認証情報としてminioadmin:minioadminが使われるので、環境変数MINIO_ROOT_USERMINIO_ROOT_PASSWORDを指定して実行してくれ

まずはこのままブラウザからAPIになっている http://192.168.1.126:9000 につないでみます。

ユーザー名とパスワードにどちらもminioadminを入力してログインすると、管理画面が表示されます。

まだファイルを置いていないので管理対象も何もありません。

左のメニューからBucketsを選択し、右上のCreate Bucketをクリックして必要な情報を入力するとバケットを作成できるようです。

MinIOクライアントから接続

S3互換のオブジェクトストレージであるMinIOですが、オフィシャルクライアントが公開されています。

こちらもMinIOのサーバーと同様、ARMのDebian/Ubuntu用のパッケージでは公開されていませんが、amd64用はdebパッケージが公開されているので、これをダウンロードしてインストールすることにします。

ちなみに、バイナリとして公開されているMinIOクライアントはファイル名がmcでMidnight Commanderと名称が被るので管理が難しいですが、debパッケージはファイル名がmcliになっているので、コマンド名自体が異なります。

クライアントをARMにインストールする場合はコマンドが全てmcに変わります。

$ wget https://dl.minio.io/client/mc/release/linux-amd64/mcli_20211007041958.0.0_amd64.deb
$ sudo dpkg -i mcli_20211007041958.0.0_amd64.deb
$ which mcli
/usr/local/bin/mcli
mcli
$ mcli --version
mcli version RELEASE.2021-10-07T04-19-58Z

とりあえず対話式でクライアントから認証情報を設定してみます。

$ mcli alias set minio http://192.168.1.126:9000 --api S3v4
mcli: Configuration written to `/home/hogehoge/.mcli/config.json`. Please update your access credentials.
mcli: Successfully created `/home/hogehoge/.mcli/share`.
mcli: Initialized share uploads `/home/hogehoge/.mcli/share/uploads.json` file.
mcli: Initialized share downloads `/home/hogehoge/.mcli/share/downloads.json` file.
Enter Access Key: minioadmin
Enter Secret Key: 
Added `minio` successfully.

バケットを確認します。まだ作成していない状態です。

$ mcli ls minio

何も表示されません。作成してみます。ちなみに、iMinIOのサーバーとクライアントで時刻がずれすぎているとmcli: <ERROR> Unable to list folder. The difference between the request time and the server's time is too large.とエラーが表示されます。

$ mcli mb minio/firstbucket
Bucket created successfully `minio/firstbucket`.

作成された表示があるので、確認してみます。

$ mcli ls minio
[2021-10-18 20:39:38 JST]     0B firstbucket/

適当なファイルを作ってコピーしてみます。

$ echo test > testfile.txt
$ mcli cp testfile.txt minio/firstbucket
testfile.txt:  5 B / 5 B ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 13 B/s 0s 
$ mcli ls minio/firstbucket
[2021-10-18 20:41:35 JST]     5B testfile.txt

この状態になると、ブラウザ上でもバケットが作られて使われていることがわかります。

コマンド体系はサーバー設定以外はrcpと似たものになっています。ReadyNASで起動しっぱなしにしているMinIOコマンドはCtrl+cで終了します。

バケットの場所をNAS機能から参照できるようにする

前述のように、ReadyNASでNASとして使う場合と普通にDebianで使う場合は使い方が異なるので、NASでアップロードしたファイルをオブジェクトストレージとしても使えるようにした方が利便性は高いのかなという気がしています。

ということで、使用する設定値を以下のようにします。

項目名設定値
NAS上のユーザーadmin
MinIOのバケットを作るNAS上のHDDRED10
MinIOのバケットを作るNAS上のボリュームNASMINIO
MinIOのバケットを作成するディレクトリのフルパス/RED10/NASMINIO/minio1
MinIOの実行ファイルのパス(前述の通り)/opt/minio/minio
MinIOの作業ディレクトリ/opt/minio/
MinIOのユーザー名minio1
MinIOのパスワード(説明用)minpass1
MinIOのAPI待受ポート番号9199

これに沿ってReadyNASで新しい共有を作ります。共有はデフォルトでチェックが付いているSMBにFTPを追加した形。クオータは設定しませんが最大でも1TBを見込んでいます。

前述したように、NASのadminユーザー(NAS管理のボリュームにおいてはownerとgroupを行っているユーザーだが実質rootと同じような権限がありそう)で操作するのが最も不整合を回避できそうなので、ファイルのowner・groupはadminになるように寄せていきます。

既に実行ファイルを配置している/opt/minioのownerとgroupをadminに変更します。

# chown -R admin:admin /opt/minio/

また、バケットのディレクトリはWeb画面やFTPクライアントから作ってしまいます。(コマンドで作成する場合は上記と同様chownでownerとgroupをadminに変更します)

# ls -ld /RED10/NASMINIO/minio1
drwxrwxrwx+ 1 admin admin 0 Oct 18 23:07 /RED10/NASMINIO/minio1

Systemdでの管理

JessieはSystemdに対応していたという超絶ラッキーにより、OS起動時のdaemon管理をSystemdに任せます。

minio-service/linux-systemd at master · minio/minio-service

Collection of MinIO server scripts for upstart, systemd, sysvinit, launchd. - minio/minio-service

設定ファイルの作成

/etc/default/minioというファイルを以下の内容で作成します。

# Volume to be used for MinIO server.
MINIO_VOLUMES="/RED10/NASMINIO/minio1/"
# Use if you want to run MinIO on a custom port.
MINIO_OPTS="--address :9199"
# Root user for the server.
MINIO_ROOT_USER=minio1
# Root secret for the server.
MINIO_ROOT_PASSWORD=minpass1

/etc/systemd/system/minio.serviceというファイルを以下の内容で作成します。

[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/opt/minio/minio

[Service]
WorkingDirectory=/opt/minio/

User=admin
Group=admin
ProtectProc=invisible

EnvironmentFile=/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"

ExecStart=/opt/minio/minio server $MINIO_OPTS $MINIO_VOLUMES

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

# Built for ${project.name}-${project.version} (${project.name})

実行・起動設定

systemdに反映します。

# systemctl daemon-reload 
# systemctl status minio 
● minio.service - MinIO
   Loaded: loaded (/etc/systemd/system/minio.service; disabled; vendor preset: enabled)
   Active: active (running) since Mon 2021-10-18 23:30:41 JST; 11s ago
     Docs: https://docs.min.io
  Process: 5400 ExecStartPre=/bin/bash -c if [ -z "${MINIO_VOLUMES}" ]; then echo "Variable MINIO_VOLUMES not 
set in /etc/default/minio"; exit 1; fi (code=exited, status=0/SUCCESS)
 Main PID: 5404 (minio)
   CGroup: /system.slice/minio.service
           └─5404 /opt/minio/minio server --address :9199 /RED10/NASMINIO/minio1/

Oct 18 23:30:41 nas-zz-zz-zz systemd[1]: Starting MinIO...
Oct 18 23:30:41 nas-zz-zz-zz systemd[1]: Started MinIO.
Oct 18 23:30:44 nas-zz-zz-zz minio[5404]: API: http://192.168.1.126:9199  http://127.0.0.1:9199
Oct 18 23:30:44 nas-zz-zz-zz minio[5404]: Console: http://192.168.1.126:40644 http://127.0.0.1:40644
Oct 18 23:30:44 nas-zz-zz-zz minio[5404]: Documentation: https://docs.min.io
Oct 18 23:30:44 nas-zz-zz-zz minio[5404]: WARNING: Console endpoint is listening on a dynamic port (40644), pl
ease use --console-address ":PORT" to choose a static port.

大丈夫そうなので、OS起動時に実行するようにします。

# systemctl enable minio.service
Created symlink /etc/systemd/system/multi-user.target.wants/minio.service → /etc/systemd/system/minio.service.

NASを再起動します。再起動後にstatusをもう一度確認します。

# systemctl status minio 
● minio.service - MinIO
   Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2021-10-18 23:44:39 JST; 2min 57s ago
     Docs: https://docs.min.io
 Main PID: 2242 (minio)
   CGroup: /system.slice/minio.service
           └─2242 /opt/minio/minio server --address :9199 /RED10/NASMINIO/minio1/

Oct 18 23:44:37 nas-zz-zz-zz systemd[1]: Starting MinIO...
Oct 18 23:44:39 nas-zz-zz-zz systemd[1]: Started MinIO.
Oct 18 23:44:50 nas-zz-zz-zz minio[2242]: API: http://192.168.1.126:9199  http://127.0.0.1:9199
Oct 18 23:44:50 nas-zz-zz-zz minio[2242]: Console: http://192.168.1.126:32958 http://127.0.0.1:32958
Oct 18 23:44:50 nas-zz-zz-zz minio[2242]: Documentation: https://docs.min.io
Oct 18 23:44:50 nas-zz-zz-zz minio[2242]: WARNING: Console endpoint is listening on a dynamic port (32958), pl
ease use --console-address ":PORT" to choose a static port.
Oct 18 23:45:28 nas-zz-zz-zz systemd[1]: [/etc/systemd/system/minio.service:13] Unknown lvalue 'Protec
tProc' in section 'Service'
Oct 18 23:45:30 nas-zz-zz-zz systemd[1]: [/etc/systemd/system/minio.service:13] Unknown lvalue 'Protec
tProc' in section 'Service'

最後の2行がどうにも気持ち悪いですが、手元で動かしてる限りは影響なさそうなので放置で…

Add new file generator for a systemd generator · Issue #427 · lxc/distrobuilder

The idea here is to replace both our current hardcoded systemd service.d override and all other unit overrides that we're currently doing in the various YAML files. Instead, there should just be on...

改めてクライアントから接続確認

$ mcli alias set nasminio http://192.168.1.126:9199 --api S3v4
mcli: Configuration written to `/home/hogehoge/.mcli/config.json`. Please update your access credentials.
mcli: Successfully created `/home/hogehoge/.mcli/share`.
mcli: Initialized share uploads `/home/hogehoge/.mcli/share/uploads.json` file.
mcli: Initialized share downloads `/home/hogehoge/.mcli/share/downloads.json` file.
Enter Access Key: minio1
Enter Secret Key: 
Added `nasminio` successfully.
$ mcli ls nasminio
$ mcli mb nasminio/firstbucket
Bucket created successfully `nasminio/firstbucket`.
$ mcli ls nasminio
[2021-10-19 00:03:02 JST]     0B firstbucket/
$ echo nastest > nastest.txt
$ mcli cp nastest.txt nasminio/firstbucket
nastest.txt:               8 B / 8 B ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 158 B/s 0s
$ mcli ls nasminio/firstbucket
[2021-10-19 00:04:32 JST]     8B nastest.txt

NASのブラウザからもアップロードしたファイルを確認できました。

また、FTP等のNAS機能でバケットへアップロードしたファイルもMinIOバケットとして管理されるようなので、好きな方法でファイルを入れることができます。

スポンサーリンク


  1. RPi4はRAM8GBのモデルを使うとRAMの制約で動かせないサーバーアプリケーションがほとんどなくなるので、ARM対応していれば基本的にはほとんど動かすことができて本当に助かっています [return]
  2. neofetchは残念ながらパッケージがありませんでした [return]

comments powered by Disqus