Raspberry Pi 4でNextcloudサーバを構築してみました。
性能を最大限に引き出すため、最新の64ビットOSをインストールしました。
たっぷりとファイルを入れられるように、Raspberry Pi 4のUSB 3.0端子に5TBの大容量HDDを取り付けます。
ファイルの転送速度等の性能は、過去に構築したRaspberry Pi版で最高性能かと思います。
インストールの手間、性能、そして実用性はどのような感じでしょうか?記録しておこうと思います。
※20.9.21追記:
この記事では、microSDカードでOSを起動しています。microSDカードではなく、HDDから起動する場合の記事はこちらになります。
目次
インストールの全体的な流れ
次のような感じになります。
- Ubuntu 20.04 Focal Fossa 64ビットサーバ版インストール
- USB接続ストレージを/mediaにマウント
- snapでNextcloudインストール
- NextcloudのデータディレクトリをUSBストレージに移動
USBストレージの接続
コンセントを2つ使用して、3.5インチの外付けHDDを取り付ける方法が最も簡単ですが。コンパクトに重ねられるように、USB 3.0対応の2.5インチHDDを取り付けてみました。実験してみたのですがRaspberry Pi 4のUSB端子の電源供給能力が低い問題があるため、2.5インチHDDをそのまま接続してもうまく動作しません。ACアダプタ付きのUSBハブを接続するか、次の記事のようにY字ケーブルで電源を供給する必要があります。
Ubuntu 20.04インストール
microSDカードから起動
OSは4月23日頃に正式リリースが予定されている、Ubuntu 20.04 Focal Fossaプレビュー版を使用してみました。64ビットのサーバ版になります。
インストール手順はこちらの記事を御覧ください。X-Window Systemのインストールは不要です。Ubuntuを起動してパスワードを設定するところまで行えばOKです。
タイムゾーン、ホスト名設定、IPアドレスの固定化
タイムゾーンの設定は必須です。サーバとして使用するため、静的IPアドレスを使用したほうが良いかと思います。こちらの記事を御覧ください。
USBストレージのオートマウント設定
Nextcloudのremovable-mediaスロットを使う都合から、外付けストレージは/mediaにマウントする必要があります。←はいこれ重要です。
いつものautofsでオートマウントしようと思います。詳細はこちらの記事になります。設定がよくわからない場合は、こちらの記事を御覧ください。
外付けストレージを取り付けて、ファイルシステムを作成します。ext4にしてみました。
sudo fdisk /dev/sda
sudo mkfs.ext4 /dev/sda1
autofsインストール後、/etc/auto.master.d/usb.autofsファイルと、/etc/auto.usbファイルを作成します。
# autofsインストール
sudo apt install autofs
# USB接続ストレージは/mediaディレクトリにマウントしようと思います
# /etc/auto.master.d/usb.autofsファイル作成
echo "/media /etc/auto.usb" | sudo tee /etc/auto.master.d/usb.autofs
# /etc/auto.usbファイル作成
echo "hdd1 -fstype=ext4,rw :/dev/disk/by-uuid/"`sudo blkid /dev/sda1 | grep -o '\sUUID=\"[0-9a-f\-]*\"' | grep -o '[0-9a-f\-]*'` | sudo tee -a /etc/auto.usb
# autofsサービス有効化
sudo systemctl enable autofs --now
# 再起動して設定変更を反映
sudo reboot
再起動後、/media/hdd1にアクセスすると、ストレージが自動的にマウントされます。
ls /media/hdd1
df -h
総容量は4.6TBのようです。
Nextcloudのインストール
snapによるインストール
最後にNextcloudをインストールして、データの置き場所を外付けストレージに移動しようと思います。
snapでサラッとインストールしました。バージョンは17.0.3snap1のようです。
sudo snap install nextcloud
このような感じで、確かにRaspberry Pi 4の64ビット環境で、Nextcloudが動作しました。
他のPCからWebブラウザでNextcloudの管理画面へアクセスします。
http://<Raspberry PiのIPアドレス>
管理アカウントのユーザ名、パスワードを入力して、初期設定を済ませます。snapでさらっとNextcloudをインストールしましたが、データベースのmysqldやFast CGIのphp-fpm、そしてhttpd等がしっかりインストールされて動作しています。
外付けストレージのアクセス設定
snapのスロットを使用して、nextcloudが/mediaにアクセスできるように設定しましょう。
sudo snap connect nextcloud:removable-media
これで/mediaにアクセスできるようになったはずです。(昔試したとき、うまく動作しなかったことがあります。)
データディレクトリを、外付けストレージにコピーしました。
sudo cp -r /var/snap/nextcloud/common/nextcloud/data /media/hdd1/nextcloud_data
sudo ls -al /media/hdd1/nextcloud_data
config.phpを編集します。
sudo vi /var/snap/nextcloud/current/nextcloud/config/config.php
36行目のdatadirectoryを、/media/hdd1/nextcloud_dataに変更しました。
'datadirectory' => '/media/hdd1/nextcloud_data',
再起動して設定変更を反映しました。
sudo reboot
管理画面からNextcloudの空き容量を確認してみました。 外付けストレージの空き容量がしっかり反映されていました。
4GB以上のファイルの取り扱いに問題は?
以前、Raspberry PiでNextcloudサーバを構築した場合、32ビット環境では4GB以上のファイルを取り扱えない場合がありました。
今回構築したNextcloudサーバはどうでしょうか?確認してみました。
Windows版クライアントから、7GBのファイルをアップロードしてみました。
アップロード速度は32MB/s・・・私がメインで使っているNUCのNextcloudよりも高速なんですが・・・
アップロード中のRaspberry Pi 4の負荷は、3.00程度です。4コアのPi 4としては余裕がある感じでした。アップロードの結果は。 このような感じで、問題なくアップロードされました。素晴らしい!
私は現在、自宅のIntel NUCにNextcloudサーバをインストールして使用しています。
何度かRaspberry PiでNextcloudサーバを構築したのですが、性能が不足していたり、バックアップ用のHDDをどうするかという問題がありました。
今回、Raspberry Pi 4でNextcloudサーバを構築しましたが、2つのUSB 3.0端子・ギガビットEthernet端子・大容量(4GB)メモリーの搭載、そして64ビットOSにより、大きく性能が向上しています。
さらに、Raspberry Piは長期間の安定動作も期待できます。直射日光を当てても何ヶ月も普通に動いていました。
もしも今使っているNUCのNextcloudサーバが壊れた場合。次はRaspberry Pi 4で構築しても良いかな、という気になりました。
という個人的に大絶賛のRaspberry Pi 4版Nextcloudでした。宜しければお試し下さいませ。