背景
メインPCで作業していたものを、ラズベリーパイ、ノートPC、スマホで閲覧したいけどファイル転送が面倒に感じてきました。
↓
常時稼働のファイルサーバーを作ります。
完成イメージ
各機器からAPへは無線接続でインターネットにつなぐ。
ラズパイファイルサーバーとメインPCはイーサネットケーブルでつなぐ。メインPCからファイルサーバーへデータを転送して、ファイルサーバーに入ったデータをノートPCやスマホで閲覧する構造です。
ファイルサーバーメインPC間をイーサネットで繋いでいるのは転送速度を最大1Gbpsにするためです。
手順
用意するものを買う
ラズパイセットアップ
ラズパイ&メインPCのIPアドレス設定
ラズパイファイルサーバーにSSDをマウントする
ラズパイファイルサーバーをRAID1構成にする。
ファイル転送速度のテスト
完了
用意するもの
ラズベリーパイ4B
ラズベリーパイ電源
ラズベリーパイ モニタ接続用HDMI
ラズベリーパイ OSインストール用マイクロSD
LANケーブル cat6
SSD1TB 2.5インチ 2個
SSDケース 2.5インチ 2個入るやつ
SATA3からUSBに変換するやつ。
※ファイル転送速度は最大1Gbpsになる予定です。
ラズパイセットアップ
セットアップ
https://qiita.com/arisaEN/items/476399577755da1fcd86
IP固定
https://qiita.com/arisaEN/items/78caa649b89a4eb9f92b
メインPCとラズパイ4Bをイーサネットで繋ぐ
LANケーブルで物理的につなぐ
ラズパイ4Bのイーサネットインターフェース(eh0)に対して固定IPアドレスを割り当てる
https://qiita.com/arisaEN/items/78caa649b89a4eb9f92b
これ参考にしてet0 イーサネットの方に固定IPアドレスを設定する。
IPアドレス 192.168.0.101
サブネット 255.255.255.0
GW 192.168.0.1
DNS 8.8.8.8
メインPCのほうにも割当
**「設定」**を開きます。
「ネットワークとインターネット」→ **「アダプターのオプションを変更する」**をクリックします。
イーサネットアダプターを右クリックし、**「プロパティ」**を選択します。
**「インターネット プロトコル バージョン4 (TCP/IPv4)」をクリックして、「プロパティ」**を選択します。
**「次のIPアドレスを使う」**を選択し、以下を入力します:
IPアドレス: 192.168.0.151
サブネットマスク: 255.255.255.0
デフォルトゲートウェイ: 設定なし ※インターネットと接続しないときはデフォルトゲートウェイ設定なし
優先DNSサーバー: 8.8.8.8
pingコマンド飛ばして応答ありなら接続できてる。
ping 192.168.1.101
ping 192.168.1.151
RAID 1の設定
RAID1では2台のディスクが同じデータを保持します。ディスクが壊れた場合でもデータの保護が可能です。
2TBのディスクを接続
RAIDを構成するためのmdadm、ファイル共有のためのSambaをインストールします。
sudo apt update
sudo apt install mdadm samba
★写真
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
Continue creating array? に対して、yesと答えればOK↓
RAIDの状態を確認
cat /proc/mdstat
arisa4@raspberrypi:~ $ cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb[1] sda[0]
976630464 blocks super 1.2 [2/2] [UU]
[>....................] resync = 1.5% (15134400/976630464) finish=81.1min speed=197508K/sec
bitmap: 8/8 pages [32KB], 65536KB chunk
unused devices: <none>
現在、RAID 1のアレイが正常に稼働しており、/dev/md0で再同期(resync)が進行中です。同期は1.5%完了しており、約81.1分で終了する見込みです。再同期中でもRAIDは利用可能ですが、同期が完全に終わるまでパフォーマンスが低下する可能性があります。
arisa4@raspberrypi:~ $ cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb[1] sda[0]
976630464 blocks super 1.2 [2/2] [UU]
bitmap: 0/8 pages [0KB], 65536KB chunk
unused devices: <none>
arisa4@raspberrypi:~ $
このメッセージでRAID完了
ファイルシステムの作成
sudo mkfs.ext4 /dev/md0
マウントポイントの設定
sudo mkdir /mnt/raid1
sudo mount /dev/md0 /mnt/raid1
自動マウントのために/etc/fstabファイルを編集します。
sudo nano /etc/fstab
以下の行を追加します。
/dev/md0 /mnt/raid1 ext4 defaults,nofail 0 2
読取 追加 削除 編集 可能なアカウントを作成
sambaを設定して他デバイスからraidを見れるようにする。
参考
sudo smbpasswd -a arisa4
pw:admin
読取のみ可能なアカウントの作成
sudo adduser readuser
pw: readonly
フルネーム:readuser
sambaユーザーに追加
sudo smbpasswd -a readuser
pw:readonly
色々聞かれるけど全部EnterでスキップでOK
sambaファイルの編集
sudo nano /etc/samba/smb.conf
[RAID1]
path = /mnt/raid1
browseable = yes
guest ok = no
# アクセスを許可するユーザーを指定
valid users = arisa4, readuser
# readuserは読み取り専用
write list = arisa4
read list = readuser
# arisa4はフルアクセス
force user = arisa4
create mask = 0777
directory mask = 0777
read only = no
valid users = arisa4, readuser: この共有フォルダーにアクセスできるユーザーを arisa4 と readuser に制限します。
write list = arisa4: arisa4 には書き込み権限(読み取り・書き込み・削除・追加)を与えます。
read list = readuser: readuser には読み取り専用のアクセスを許可します。
force user = arisa4: すべてのファイルの作成者がarisa4として扱われるため、arisa4にフルアクセスを確保します。
create mask = 0777, directory mask = 0777: ファイルとディレクトリのパーミッションを指定し、arisa4がフルアクセスできるように設定します。
samba再起動
sudo systemctl restart smbd
arisa4 が既存のファイルやディレクトリにもフルアクセスできるように、必要に応じて権限を設定します。
sudo chown -R arisa4:arisa4 /mnt/raid1
sudo chmod -R 0777 /mnt/raid1
windowsからアクセスしてみる
アクセス先
\192.168.0.101\RAID1