
皆さんはスマホで撮った写真をどのようにしてますか?
私はスマホで撮った写真はGoogleフォトに保存していましたが、2021年5月から有料となったため保存するのをやめました。
そういえばGoogleフォトが有料化することが決まったが、イッチはどうするの?
このまま2021年6月以降に保存すると超過分はGoogleストレージに追加されるから、
お金かかるよ??
え、そうなの??
それじゃあスマホに貯めるしかないじゃん。。。
それならファイルサーバを構築すればいいんじゃない?
外付けHDDとか購入すればすぐに構築できるし、外付けHDD購入すれば月額費用は電気代だけだからかなりお得だよ!!
サバくんがファイルサーバを構築すれば費用を抑えることができると教えてくれたため、現在稼働しているサーバーのラズパイ(Raspberry Pi)上ににファイルサーバを構築します。
目次
1.背景
サバくんがファイルサーバを推していましたが、それには理由があります。
それはGoogleのストレージが高いことです。
実際のストレージ容量の価格は下記となっています。
※価格表は2021年1月1日付けのGoogle ONEを参照
容量 | 価格(年額) |
---|---|
100 GB | ¥2,500 |
200 GB | ¥3,800 |
2 TB | ¥13,000 |
一方、外付けHDDは4TBで¥10,000以下で購入可能なため、サバくんは外付けHDDの購入を推してきました。
そのため、今回は以前紹介したラズパイ(Raspberry Pi)に外付けHDDを認識させて、ファイルサーバを構築していきます。
2.スペック
スペックは下記となっています。
・Distributor ID: Raspbian
・Description: Raspbian GNU/Linux 9.13 (stretch) ・Release: 9.13
・Codename: stretch
・外付けHDD: BUFFALO HD-NRLD-A (scsi) 4TB
今回使用したラズパイと外付けHDDは下記になります。
3.ファイルサーバ構築
今回は「samba」というソフトウェアでファイルサーバを構築していきます。
sambaは「ファイル共有をするための設定ができるソフトウェア」と認識すれば問題ないです。
3.1 インストール
まずは必要なモジュールをインストールしていきます。
$sudo apt -y install samba
$ smbd -V
Version 4.5.16-Debian
3.2 sambaの設定
次にsambaの設定をします。
sudo vim /etc/samba/smb.conf
#======================= Global Settings =======================
[global]
#下記の2行を追記
unix charset = UTF-8
dos charset = CP932
sudo vim /etc/samba/smb.conf
[homes]
comment = Home Directories
browseable = no
# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
read only = no
# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
create mask = 0664
# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
directory mask = 0775
sudo vim /etc/samba/smb.conf
;最終行に追記してください
[NAS]
path = /mnt/NAS
read only = no
guest ok = Yes
force user = pi
3.3 外付けHDDの設定
次に外付けHDDの設定をします。
windowsやmacなどはPCにUSBケーブルを接続すればすぐに使用することは可能ですが、サーバー用途のOSでは簡単に認識することはできません。
そのため、PCの認識とフォーマットを行います。
3.3.1 外付けHDDの認識と設定
まずはPCからどのように認識しているかを確認します。
$sudo fdisk -lu
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 1B90BDF5-2A0B-410F-90C8-22F9703DD1B8
Device Start End Sectors Size Type
/dev/sda 1024 7814036479 7814035456 3.7T Microsoft basic data
上記のコマンドからPCに認識している容量は3.7TBであり、デバイス名が「/dev/sda1」であることがわかりました。
そのため、次に論理ディスクを作成していきます。
$sudo parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
(情報出力)
Model: BUFFALO HD-NRLD-A (scsi)
Disk /dev/sda: 4001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Warning: failed to translate partition name
Number Start End Size File system Name Flags
1 524kB 4001GB 4001GB ntfs msftdata
(parted) rm 1
(1の行を削除)
(parted) p
(1の行がなくなったことを確認)
Model: BUFFALO HD-NRLD-A (scsi)
Disk /dev/sda: 4001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
(parted) quit
3.3.2 ディスクのフォーマット
次にフォーマットしていきます。
今回はWindowsとmac、AndroidやiPhoneからも接続することからntfsでフォーマットします。
$sudo apt install -y ntfs-3g
$sudo parted -a optimal /dev/sda mkpart primary ntfs 0% 100%
$sudo mkfs -t ntfs -Q -L NAS-ntfs /dev/sda1
Cluster size has been automatically set to 4096 bytes.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.
3.4 マウントポイント作成とマウント
次にマウントポイントを作成します。
3.2のsambaで設定した「/mnt/NAS 」を作成します。
$sudo mkdir /mnt
$sudo mkdir /mnt/NAS
次に先程フォーマットしたHDDとマウントポイントを紐付けます。
今回の外付けHDDのデバイス名は「/dev/sda1」なので、このデバイス名と先程のマウントポイントを紐付けます。
$sudo mount /dev/sda1 /mnt/NAS
紐付けができたことを確認します。
$df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/root 28G 9.5G 17G 37% /
devtmpfs 457M 0 457M 0% /dev
tmpfs 462M 0 462M 0% /dev/shm
tmpfs 462M 47M 415M 11% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 462M 0 462M 0% /sys/fs/cgroup
/dev/mmcblk0p6 68M 23M 46M 33% /boot
tmpfs 93M 4.0K 93M 1% /run/user/1000
/dev/mmcblk0p5 30M 1.6M 27M 6% /media/pi/SETTINGS
/dev/sda1 3.7T 181M 3.7T 1% /mnt/NAS
最終行に紐付かれたことを確認しました。
これでひも付きは完了しましたが、ラズパイの電源を落としたりするとこの情報は消えて接続されなくなります。
そのため、ラズパイが再起動してもひも付きが継続するようにfstabに記入します。
まずは「/dev/sda1」の固有IDであるUUIDを確認します。
$sudo blkid
/dev/sda1: LABEL="NAS-ntfs" UUID="実際の値" TYPE="ntfs" PTTYPE="dos" PARTLABEL="primary" PARTUUID="2738dcbe-70e5-4ff4-bdf4-b2bc997bd0ea"
次にfstabの最終行に下記を記入します
$sudo vim /etc/fstab
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
UUID="bikidに記載されている値" /mnt/NAS ntfs-3g defaults,nofail 0 0
上記が完了すれば問題ありませんが,念の為ラズパイを再起動して認識しているかを確認します。
下記のようにNASのマウントポイントが出力されていれば完了です。
$sudo reboot
再起動後
$df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/root 28G 9.5G 17G 37% /
devtmpfs 457M 0 457M 0% /dev
tmpfs 462M 0 462M 0% /dev/shm
tmpfs 462M 47M 415M 11% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 462M 0 462M 0% /sys/fs/cgroup
/dev/mmcblk0p6 68M 23M 46M 33% /boot
tmpfs 93M 4.0K 93M 1% /run/user/1000
/dev/mmcblk0p5 30M 1.6M 27M 6% /media/pi/SETTINGS
/dev/sda1 3.7T 181M 3.7T 1% /mnt/NAS
最後にユーザとパスワードを作成して完了です。
$sudo smbpasswd -a pi(ユーザ名)
(パスワード入力)
4. スマホとファイルサーバを接続
スマホとファイルサーバを接続するとはアプリを使用します。
接続するアプリは様々ありますが、私は「FE File Exploer」を使用しています。
このアプリは、画像や動画をファイルサーバに送信することができます。
Android版とiPhone版がありますので、ぜひアプリ取得してみてください。
5. さいごに
今回はファイルサーバの構築を記載しましたがいかがでしょうか。
Googleのファイルサービスを提示した上で高額と感じましたら、是非実践してみてください。