nextcloudでNASを束ねられるか試す

前回初期設定が(なぜか)できたので、とりあえず先に進める。
疑問点は実際の本構築時までには対応しよう。

まずは大目的のNASを束ねることをやってみる。
マニュアルサイト見て、まずは”External Storage Support”を有効化する。

すると、外部ストレージの設定が左ペインビューに追加されるので、そこから設定…
おや?

マジか、smbclientを入れろと。
コレ、Dockerのコンテナで構築している、ということはもしかしてコンテナの中にsmbclientを導入しないといけないのでは?

ダメもとでローカルでインストールしてみる。

root@hostname:~# apt install smbclient
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done


No user sessions are running outdated binaries.

No VM guests are running outdated hypervisor (qemu) binaries on this host.

コンテナを再起動してから、再度設定を試みる。

root@hostname:~# su – dockerhome
dockerhome@hostname:~$ cd /docker/docker-nextcloud
dockerhome@hostname:/docker/docker-nextcloud$ docker-compose stop
Stopping docker-nextcloud_app_1 … done
Stopping docker-nextcloud_db_1 … done
dockerhome@hostname:/docker/docker-nextcloud$ docker-compose start
Starting db … done
Starting app … done

結果…やはりだめでした。
やはりnextcloudのコンテナの中に、smbclientを入れてやる必要がありそう。

そうなると、構築としては、一気にdocker-composeでやってしまうのではなく、個別にコンテナ構築して、最後にdocker-compose.ymlでまとめて起動する。という形、もしくはdockerではなく、平で構築する事になりそう。多分このあたりの難易度的には、平で構築したほうが楽と想定される。

悪あがきとして、ローカルのディレクトリをコンテナ側からも見える様に設定してみて、外部ストレージ設定を”ローカル”で設定できないかもやってみる。

まずはNASをマウントするために、”cifs-utils”を導入。

root@hostname:~# apt install cifs-utils
Reading package lists... Done
Building dependency tree... Done


Do you want to continue? [Y/n] Y


No user sessions are running outdated binaries.

No VM guests are running outdated hypervisor (qemu) binaries on this host.
root@malphas:~#

そしてNASをマウントしてみる。マウントするのは/nas/nashost1

root@hostname:~# mount -t cifs -o username=<smbユーザー>,password=<smb userのパスワード>,vers=1.0 //nashost1/Share /nas/nashost1
root@hostname:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 201108 1648 199460 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 102626232 9770952 87596016 11% /
tmpfs 1005528 0 1005528 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
/dev/sda2 1992552 128916 1742396 7% /boot
tmpfs 201104 4 201100 1% /run/user/1000
overlay 102626232 9770952 87596016 11% /var/lib/docker/overlay2/8badca1b40decce5feac34a8be04fadac48c6c45d4ccb0f1f71355822d258550/merged
overlay 102626232 9770952 87596016 11% /var/lib/docker/overlay2/f88d919baf056b3fdc2e345a5965616ef7d1902d42c86b5931b61f0f77199047/merged
//nashost1/Share 8560570768 4060401840 4500168928 48% /nas/nashost1

マウントができたので、次にコンテナに紐づけをさせてみる。
あとはnextcroudのコンテナ内で、マウントしたディスクを見せるために、ディレクトリパス”/nas”を切る。

root@hostname:~# su - dockerhome
dockerhome@hostname:~$ cd /docker/docker-nextcloud/
dockerhome@hostname:/docker/docker-nextcloud$ docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS          PORTS                                   NAMES
eea1807fbd20   nextcloud   "/entrypoint.sh apac…"   52 minutes ago   Up 17 minutes   0.0.0.0:8080->80/tcp, :::8080->80/tcp   docker-nextcloud_app_1
10ee13408f19   mariadb     "docker-entrypoint.s…"   53 minutes ago   Up 17 minutes   3306/tcp                                docker-nextcloud_db_1
dockerhome@hostname:/docker/docker-nextcloud$ docker exec -i -t eea1807fbd20 /bin/sh
# mkdir /nas
# ls -l / | grep nas
drwxr-xr-x   2 root root  4096 Mar 11 09:22 nas
# exit
dockerhome@hostname:/docker/docker-nextcloud$ docker-compose stop
Stopping docker-nextcloud_app_1 ... done
Stopping docker-nextcloud_db_1  ... done
dockerhome@hostname:/docker/docker-nextcloud$ vi ./docker-compose.yml
dockerhome@hostname:/docker/docker-nextcloud$ diff ./docker-compose.yml{.20250311,}
22a23
>       - /nas:/nas
dockerhome@malphas:/docker/docker-nextcloud$ docker-compose start
Starting db  ... done
Starting app ... done

外部ストレージの種類をローカルにして、”/nas”を指定してみたものの、nextcloudからは見えてくれない。
やはりsmbclientをちゃんと組み込まないとだめそうである。

尚、WebDAVに対応しているNASは、ちゃんとWebDAVとして認識、接続できることを確認。
ただし、500MByteの動画ファイルや、500KByteのMP3で開いてみたものの、待てど暮らせど開かれない。
WebDAV経由であるというのも原因かもしれないが、今回束ねようとしているのが、SMBv1の対応しかしていない古いやつなので、NWの速度的にも利用はイケてないと思われる。

nextcloudをdockerじゃない形で構築してやれば、smbclientも入れやすいし、SMB/CIFSで外部ストレージを見せられたら、パフォーマンス改善も見られるかもしれない。

今度試してみますか。