だいぶ前から Raspberry Pi に Nextcloud 環境を構築して運用しています。
常時起動サーバを目的として(シングルボードコンピュータで)構築したためパフォーマンスは高くありませんが、それでも有ると無いのとでは大違いです。
毎回 NAS を起動したり USB メモリを差し替えたりといった手間が無くなる分、楽です。
特に、一度座ると立ち上がりたくない(私みたいな横着者には)便利なツールでしょう。。。
目次
やること
Lubuntu(Ubuntu)に WebDAV クライアントを導入して、Nextcloud に接続します。
結論
先に結論ですが、Raspberry Pi 3 Model B など非力なシングルボードコンピュータを Nextcloud サーバにした場合は、WebDAV 接続を利用しないほうが良いです。
詳細は後述しますが、単純に(Raspberry Pi 3 Model B だと)マシンパワーが足りません。
Raspberry Pi 4 Model B などであれば、状況は変わるとは思いますが試せていません。
Amazon Prime Video 専用機として活躍中です。。。
経緯
所有している PC で最も古い VersaPro VY12M/C-3 は CPU が 32bit ネイティブなため、OS も 32bit 版しか導入できません。
自宅の VersaPro は一貫して Lubuntu で運用していますが(VY12M/C-3 は)32bit オンリーのため、先日しかたなく Lubuntu 18.04 LTS へアップデートしています。
で、ここで問題が。
Nextcloud のクライアントツール(同期クライアント)は、Linux 版は 64bit しか用意されていません。
※下記公式サイトによると、Windows 版は 32bit でも使えそうです。
base on Install – Nextcloud
- Windows 8.1+
- macOS 10.7+ (64-bit only)
- Linux
クライアントツールが使えないのでは仕方がありません。
とはいえ、毎回ブラウザを開くのも面倒なので、WebDAV で直に参照してしまおう、という魂胆です。
環境
サーバ
- 本体
Raspberry Pi 3 Model B - ストレージ
- OS
microSD 8GB(Class 10) - Nextcloud データ
USB メモリ(512MB)
- OS
Raspberry Pi は非力なため、以下パフォーマンス改善を実施しています。
クライアント(PC)
- PC
VersaPro VY12M/C-3 - OS
Lubuntu 18.04 LTS
設定の準備
クライアント側
WebDAV クライアント導入
WebDAV サーバに接続するために、パッケージ davfs2
を導入します。
base on Davfs2 - ArchWiki
このページの最終更新日時は 2018年12月23日 (日) 21:36 です。
davfs2 は WebDAV サーバーをディスクドライブとしてマウントできるようにする Linux ファイルシステムドライバーです。コマンドラインを使う
WebDAV をマウントするときは直接 mount.davfs を使わずに mount を使用します:# mount -t davfs http(s)://addres:
/path /mount/point
davfs2
インストール
$ dpkg -l | grep davfs2
$ apt-cache search davfs2
davfs2 - mount a WebDAV resource as a regular file system
$ sudo apt install davfs2
以下のパッケージが新たにインストールされます:
davfs2 libneon27
davfs2
設定
インストール中に設定画面が表示されます。
私は、root ユーザ以外でも WebDAV サーバをマウントしたかったため「はい」を選びました。
パッケージの設定
┌───────────────────────┤ davfs2 を設定しています |──────────────────────────────
│
│ 特権を持たない (root 以外の) ユーザによる WebDAV リソースのマウントを許
│ 可する場合は、ファイル /sbin/mount.davfs に SUID ビットを設定しなければ
│ なりません。
│
│ この選択肢を選ばない場合は、root だけが WebDAV リソースをマウントできま
│ す。この動作は後から 'dpkg-reconfigure davfs2' を実行することで変更でき
│ ます。
│
│ root 以外のユーザが WebDAV リソースをマウント可能にしますか?
│
│ <はい> <いいえ>
│
└─────────────────────────────────────────────────────────────────────────────
サーバ側
Nextcloud の Web 画面から、WebDAV 接続用のパスを取得します。
接続
接続方法
- 構文
mount -t davfs http(s)://addres:/path /mount/point
初回のみマウントするディレクトリを作成して、マウントします。
※上記、Nextcloud の Web 画面から取得した WebDAV 接続用のパスで設定します。
$ sudo mkdir /media/nextcloud
$ sudo mount -t davfs http://192.168.0.254/nextcloud/remote.php/dav/files/admin/ /media/nextcloud
Please enter the username to authenticate with server
http://192.168.0.254/nextcloud/remote.php/dav/files/admin/ or hit enter for none.
Username: xxx
Please enter the password to authenticate user admin with server
http://192.168.0.254/nextcloud/remote.php/dav/files/admin/ or hit enter for none.
Password:
/sbin/mount.davfs: warning: the server does not support locks
課題
サーバが Raspberry Pi 3 Model B
では荷が重かったようです。
接続後、ファイルマネージャ(PCManFM)での操作がやけに重たいなと思って、見てみると CPU パワーが足りていないようです。
下記だと %Cpu3
が 100% に張り付いています。
Raspberry Pi 3 Model B は Quad-Core(4コア)ですが davfs2
はマルチスレッドではないようで、1コアあたりの性能が上限になります。
※1コアあたりの性能が高いマシンを使用したほうが WebDAV は有利になります。
$ top
top - 18:38:51 up 4 days, 22:55, 1 user, load average: 1.11, 0.68, 0.32
Tasks: 114 total, 2 running, 112 sleeping, 0 stopped, 0 zombie
%Cpu0 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.7 us, 0.0 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 975.6 total, 490.8 free, 195.2 used, 289.6 buff/cache
MiB Swap: 100.0 total, 100.0 free, 0.0 used. 692.5 avail Mem