Raspberry pi 4 でSambaを動かし家庭用NASへ

 背景

長らく自宅ではQNAPのNASを使っていたものの、その信頼性に不安が生じているのでRaspberry piで自前で用意することにした。

今使っているNASは過去3年間に2回故障、無償で修理はされたものの、送料は自己負担だし、配送先は間違えられるし、とても汚れた基板に付け替えられただけで返ってくるなど、不満点が多かった。一番大きかった問題点は、NAS自体が壊れた時のデータ救出の不透明さ。非公式には他のユーザが方法を公開しているものの、そんなリスクを冒してまで使い続けるメリットがこのNASにはない。

自宅サーバーの管理の手間を省くために家庭用NASを購入したのに、修理交換などで余計に時間を費やしていて本末転倒である。

セットアップ

使ったのはRaspberry pi 4 メモリ2GB。Ubuntu Server 20.04。ストレージにはUSB-C接続の2.5HDD。HDDの駆動電力が供給できるか心配だったが、今のところはRaspberry piからの電力供給で特に問題は起きていない。

通常通りMicro SDカードにUbuntu Serverを書き込み、ネットワークの設定をしてRaspberry piを起動。DHCPサーバーで固定IPアドレスの割り当て設定。作業用のユーザーアカウント作成。

ファイルシステムにはEXT4を使用した。他にはBtrfsも検討した。データの破損検出やスナップショットなど、魅力的な機能は多かったが、安定性を最優先にしたいのでシンプルにEXT4にすることにした。データの整合性管理はもっと上のレイヤーでバックアップを作成するときにすることにする。

ファイルシステム作成

HDDをUSB接続すると自動でデバイスが認識された。とても楽。まずはfdiskでパーティションの設定。既に作られていたものを削除し、最大の大きさでパーティションを1つ作成。

ファイルシステムを作るときに注意した点は二つ。inodeあたりのバイト数と、root用予約領域サイズ。

inodeあたりのバイト数は、デフォルトではとても小さく設定されていたと思う。今回は写真や動画の保存がメインのストレージなので4MBに設定した。デフォルトでも良いが、多少の効率化はできる。

予約領域はゼロへ。完全にデータ用のストレージなので必要がない。
sudo mkfs.ext4 -T largefile4 -m 0 /dev/sda1

fstabの設定も通常通り。データ用のストレージなので不必要なオプションはオフにした。

rw,async,noatime,nodev,nosuid,noexec,auto

Samba設定

  sudo apt update
  sudo apt install samba --no-install-recommends
  vi /etc/samba/smb.conf
  
  [share]
  path = /data
  browsable = yes
  writable = yes
  read only = no
  guest ok = no
  force user = sambashare
  
他にプリンタ等の設定がデフォルトで書かれていたのですべて無効化した。

ストレージ向けのユーザとしてsambashareを作成した。パスワードとログインとホームディレクトリ作成を無効にするのを忘れずに。/dataディレクトリのパーミッションも適切に設定。

smbpasswd -aでSambaログイン用のユーザ名パスワードを作成、Windowsから入力してアクセスできることを確認した。

Comments

Popular posts from this blog

LinuxでUSBカメラ映像をストリーミングかつ録画する

Raspberry pi 4とUbuntu Server 20.04 64bitでRaspberry pi cameraを使う

WSL2上でSSH経由のSOCKSプロキシを作りWindowsから使う