「RaspberryPiでmobileNAS」の版間の差分

提供: ディーズガレージ wiki
移動先: 案内検索
(動作具合)
(動作具合)
69行目: 69行目:
 
* SanDisk Ultra FitがS.M.A.R.T.に対応していない mdadm monitorのメールで対応
 
* SanDisk Ultra FitがS.M.A.R.T.に対応していない mdadm monitorのメールで対応
 
* RAID管理画面でUSBメモリが選択できない コマンドの直接操作で回避
 
* RAID管理画面でUSBメモリが選択できない コマンドの直接操作で回避
* mdadmが毎週日曜日AM1時にraid-checkを走らせDiskReadが高負荷状態になってる<br />3時間くらいかかる<br />不良セクタが検索され、見つかった場合は他のドライブのデータを使用して修正し、<br />読み取りエラーを返すセクタは再構築
+
* mdadmが毎週日曜日AM1時にraid-checkを走らせDiskReadが高負荷状態になってる<br />3時間くらいかかる<br />不良セクタが検索され、見つかった場合は他のドライブのデータを使用して修正し、<br />読み取りエラーを返すセクタは再構築 をやってるらしい
 
* iTunesのホームシェアリングを使わずiPhoneから直接daap接続ができない 代案 配信のみmpd
 
* iTunesのホームシェアリングを使わずiPhoneから直接daap接続ができない 代案 配信のみmpd
 
* iTunesのホームシェアリングからWi-Fiでつなぐと初回接続に数秒間待たされる LANは快適
 
* iTunesのホームシェアリングからWi-Fiでつなぐと初回接続に数秒間待たされる LANは快適

2019年1月13日 (日) 00:50時点における版

手のひらサイズのコンパクトなNAS作ってみます。

Image mobileNAS.jpg

環境

ボード Raspberry Pi 3 Model B+
電源アダプタ 5V 3A
ストレージ SanDisk Ultra microSDHC 16GB OS用
SanDisk Ultra Fit 128GB × 4個 RAID用
LAN Wi-Fi 標準搭載のLAN Wi-Fi
作業補助PC Windows10 SSHクライアント ブラウザ
Ubuntu GParted

動作具合

理論値 測定値 SMB Pi→Windows
Pi3 ModelB LAN 100Mbps 88Mbps 11MB/s
Wi-Fi 2.4GHz - 36Mbps 4.5MB/s
Pi3 ModelB+ LAN 300Mbps 176Mbps 22MB/s
Wi-Fi 5GHz - 72Mbps 9MB/s
比較用 1000Base-T 1Gbps 880Mbps 110MB/s
  • とにかくLANが遅い
  • リソースの具合 nas netdata dashboard 別窓
  • リソースの具合 IoT MONITOR 別窓
  • sambaがramにcacheをため込むのでオーバーフローを試してみるが起きない
    free30MB used200MB cached700MB たくさん音楽入れても変わらず これが安定状態?
  • SanDisk Ultra FitがS.M.A.R.T.に対応していない mdadm monitorのメールで対応
  • RAID管理画面でUSBメモリが選択できない コマンドの直接操作で回避
  • mdadmが毎週日曜日AM1時にraid-checkを走らせDiskReadが高負荷状態になってる
    3時間くらいかかる
    不良セクタが検索され、見つかった場合は他のドライブのデータを使用して修正し、
    読み取りエラーを返すセクタは再構築 をやってるらしい
  • iTunesのホームシェアリングを使わずiPhoneから直接daap接続ができない 代案 配信のみmpd
  • iTunesのホームシェアリングからWi-Fiでつなぐと初回接続に数秒間待たされる LANは快適

下調べ

インストール

OS書き込み

Download Raspbian for Raspberry Pi

Raspbian Stretch Lite 使用
(省略)

MicroSD、モニター、マウス、キーボード、LANを取り付け電源ON

ファイルシステム

Piモニター

raspberrypi login: pi
Password: raspberry
$ sudo raspi-config
    7.Advanced Options → A1 Expand Filesystem
    tabでFinishでreboot

アップグレード

Piモニター

raspberrypi login: pi
Password: raspberry
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo reboot

キーボード

Piモニター

raspberrypi login: pi
Password: raspberry
$ sudo raspi-config
    4.Localisation Options
    I3 Change Keyboard Layout → Generic 105-key (Intl) PC → Other → Japanese → Japanese → The default for the keyboard layout → No compose key
    tabでFinish
$ sudo reboot

SSH有効化

Piモニター > ログイン

raspberrypi login: pi
Password: raspberry

Piモニター > SSH有効化

$ sudo raspi-config
    5 Interfacing Options > P2 SSH > <Yes> > <Ok>
    tabでFinish
$ sudo reboot

OpenMediaVault

Piモニター > IP確認

raspberrypi login: pi
Password: raspberry
$ ifconfig

WindowsPC > SSHクライアント

TeraTermの場合
ホスト: 192.168.1.*
TCPポート: 22
<OK>
ユーザ名: pi
パスフレーズ: raspberry

WindowsPC > SSHクライアント 入力

$ sudo nano /etc/apt/sources.list

WindowsPC > SSHクライアント 末尾に追記

deb http://packages.openmediavault.org/public arrakis main

保存: Ctrl + o リターン
終了: Ctrl + x

WindowsPC > SSHクライアント 入力

$ export LANG=C
$ export DEBIAN_FRONTEND=noninteractive
$ export APT_LISTCHANGES_FRONTEND=none
$ sudo apt-get update
$ sudo apt-get --allow-unauthenticated install openmediavault-keyring
$ sudo apt-get update
$ sudo apt-get --yes --auto-remove --show-upgraded --allow-downgrades --allow-change-held-packages --no-install-recommends --option Dpkg::Options::="--force-confdef" --option DPkg::Options::="--force-confold" install postfix openmediavault
Postfix Configuration > <Ok> > No configuration ⏎
Complete the installation > Tab > <Ok>
$ sudo apt-get install resolvconf
$ sudo omv-initsystem
$ sudo reboot

Piモニター > SSH再接続できないので、とりあえずモニターでログイン

raspberrypi login: pi
Password: raspberry

Piモニター > eth0のIP確認

$ ifconfig

WindowsPC > ブラウザ 接続

 http://<IPアドレス>
 ユーザー名: admin
 パスワード: openmediavault

WindowsPC > ブラウザ SSH再接続できないのを修正

アクセス権の管理 > ユーザー
piユーザーを選択 > 編集
パスワード: raspberry
パスワードの確認: raspberry
グループタブ内のsshにチェック
保存

WindowsPC > SSHクライアント 接続

ホスト: 192.168.1.*
TCPポート: 22
<OK>
ユーザ名: pi
パスフレーズ: raspberry

電源を落とし有線LAN以外全て取り外し電源ON

WindowsPC > ブラウザ 接続

 http://<IPアドレス>
 ユーザー名: admin
 パスワード: openmediavault

Wi-Fiの有効化

参考: Raspbian Stretch: Wifi not starting on boot - Raspberry Pi Forums

WindowsPC > SSHクライアント

$ sudo nano /etc/network/interfaces

末尾に追記

# wlan0 network interface
allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

保存: Ctrl + o リターン
終了: Ctrl + x

$ sudo systemctl enable wpa_supplicant.service
$ sudo reboot

有効化

$ sudo raspi-config
4 Localisation Options → I4 Change Wi-Fi Country → JP Japan
tabでFinish
$ sudo reboot

システム

一般設定

Nginxのwebサーバを80番ポートにしたいので管理画面は8080番
Web管理

ポート: 80 → 8080
セッションタイムアウト: 5分 → 無効
保存
# エラーが出るが気にしない
右上▼ > ログアウト

再接続

http://<IPアドレス>:8080
ユーザー名: admin
パスワード: openmediavault

一般設定 > Web管理者パスワード

パスワード: 0000
パスワードの確認: 0000
保存

日付&時刻

タイムゾーン: UTC → Japan または Asia/Tokyo
NTPサーバを使用する: ON
時刻サーバ: pool.ntp.org → ntp.nict.jp
保存

ネットワーク

一般

ホスト名: raspberrypi → nas
保存

インタフェース
LANの場合

追加 > イーサネット
一般設定
名前: eth0
IPv4 メソッド: DHCP
IPv6 メソッド: 無効
保存
右上▼ > 再起動

Wi-Fiの場合

追加 > イーサネット
一般設定
名前: wlan0
Wi-Fi SSID Wi-FiAPの名前
Wi-Fi パスワード Wi-FiAPのパスワード
IPv4 メソッド: DHCP
IPv6 メソッド: 無効
保存
右上▼ > 再起動

再接続

http://nas.local:8080
ユーザー名: admin
パスワード: 0000

通知

有効: OFF → ON

Gmailの場合

SMTPサーバ: smtp.gmail.com
SMTPポート: 25 → 587
SSL/TSLセキュアコネクションを利用する: ON
送信者のメールアドレス: 自分のGmailアドレス
認証の要求: ON
ユーザ名: 自分のGmailアドレス
パスワード: 自分のGmailのパスワード(二段階認証の場合はアプリパスワードを使用)
プライマリメール: 自分のGmailアドレス
保存

確認

テストメールの送信

電源管理

モニタリング: ON

モニタリング

有効: OFF

アップデート管理

設定

プレリリースされたアップデート: ON
コミュニティーによるメンテナンスアップデート: ON
保存

プラグイン

参考: OMVExtras Installation From OMV web interface

3.Raspbian Stretch Liteを使用しているのでFor OMV 4.x (arrakis) openmediavault-omvextrasorg_latest_all4.deb をダウンロード
4.OMV管理画面 > プラグイン項目
5.アップロードボタンでopenmediavault-omvextrasorg_latest_all4.deb をアップロード
6.プラグイン一覧の下の方openmediavault-omvextrasorg 4.1.13を☑チェックしインストールボタン
7.OMV-Extras項目ができるので選択

アップデートボタン
    update
    omv-update
    upgrade
    dist-upgrade

8.プラグイン項目から欲しいものをインストール

ストレージ

方向性

  • USBメモリ4個 RAID5
  • RAID管理画面でRAID構築できないのでmdadmで直接操作
  • USBメモリのRAID向けフォーマットもfdiskで直接操作

ディスク

USBメモリ4個 UbuntuのGPartedでext4フォーマット
RaspberryPiに取り付け
/dev/sda /dev/sdb /dev/sdc /dev/sdd が表示されればOK

S.M.A.R.T.

SSHで確認

$ smartctl --info -d scsi /dev/sda
    SMART support is:     Available - device has SMART capability.
    SMART support is:     Enabled
    Temperature Warning:  Disabled or Not Supported
$ smartctl -l selftest -d scsi /dev/sda
    Device does not support Self Test logging
$ smartctl -H -d scsi /dev/sda
    SMART Health Status: OK
$ smartctl -t short -d scsi /dev/sda

$ smartctl -d scsi /dev/sda -X
    Self Test returned without error
$ smartctl -l selftest -d scsi /dev/sda
    Device does not support Self Test logging

対応していないので設定しない

RAID管理

作成

Devices connected via USB will not be listed (too unreliable).
USB経由で接続されているデバイスは表示されません(信頼性が低すぎます)。

管理画面では作成できないのでmdadmから直接操作

SSH接続 > SSHクライアント

TeraTermの場合
ホスト: nas.local
TCPポート: 22
<OK>
ユーザ名: pi
パスフレーズ: raspberry

USBメモリの確認

$ ls -l /dev/sd*
brw-rw---- 1 root disk 8, /dev/sda
brw-rw---- 1 root disk 8, /dev/sdb
brw-rw---- 1 root disk 8, /dev/sdc
brw-rw---- 1 root disk 8, /dev/sdd

RAID用にフォーマット
sda sdb sdc sdd 4回繰り返し

$ sudo fdisk /dev/sda

Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

Command (m for help):  n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): リターン

Using default response p.
Partition number (1-4, default 1): リターン
First sector (2048-240254975, default 2048): リターン
Last sector, +sectors or +size{K,M,G,T,P} (2048-240254975, default 240254975): リターン

Created a new partition 1 of type 'Linux' and of size 114.6 GiB.
Partition #1 contains a ext4 signature.

Do you want to remove the signature? [Y]es/[N]o: y

The signature will be removed by a write command.

Command (m for help): t
Selected partition 1
Partition type (type L to list all types): fd
Changed type of partition 'Linux' to 'Linux raid autodetect'.

Command (m for help): p
Disk /dev/sda: 114.6 GiB, 123010547712 bytes, 240254976 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000ef5fb

Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1        2048 240254975 240252928 114.6G fd Linux raid autodetect

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

確認

$ ls -l /dev/sd*
brw-rw---- 1 root disk 8,  0 /dev/sda
brw-rw---- 1 root disk 8,  1 /dev/sda1
brw-rw---- 1 root disk 8, 16 /dev/sdb
brw-rw---- 1 root disk 8, 17 /dev/sdb1
brw-rw---- 1 root disk 8, 32 /dev/sdc
brw-rw---- 1 root disk 8, 33 /dev/sdc1
brw-rw---- 1 root disk 8, 48 /dev/sdd
brw-rw---- 1 root disk 8, 49 /dev/sdd1

RAID構築

$ sudo mdadm -C /dev/md0 -l 5 -n 4 /dev/sd[abcd]1

確認

http://nas.local:8080
ユーザー名: admin
パスワード: 0000

RAID管理項目
clean,resycingが100%になったら完了

ファイルシステム

作成
デバイス: Software RAID nas:0 [/dev/md0, raid5, 343.49 GiB]
ラベル: data
ファイルシステム: EXT4

ステータスがオンラインになったら完了

RAIDデバイスを選択
マウント

マウント済みが「はい」になったら完了

RAIDの監視

mdadm --monitorでRAIDディスクに障害が発生した場合にメール通知できる

テストコマンドを送れる様子

調査中

フラッシュメモリ

Armbian版OpenMediaVaultではflashmemoryプラグインを入れている
同じにする

プラグイン項目
openmediavault-flashmemory 4.2.1 をチェック
インストールボタン
フラッシュメモリ項目
SSH
$ nano /etc/fstab

SWAPも無い よくわからない

アクセス権の管理

共有フォルダ

追加

名前: data
デバイス: data [68.02 MiB (1%) used, 337.02 GiB available]
パス: data/
パーミッション: みんな:読み/書き
保存

サービス

FTP

設定

有効: ON
タイムアウト: 1200 → 0
rootアカウントでのログインの許可 OFF → ON
パッシブFTP: ON 49152 65534
保存

共有 > 追加

有効: ON
共有フォルダ: data [on data, data/]
保存

確認 FFFTPの場合

ホストの設定名: mobileNAS
ホスト名(アドレス): nas.local
ユーザー名: pi
パスワード: raspberry

SMB/CIFS

設定

一般設定
有効化: OFF → ON
ローカルマスタブラウザ: ON → OFF
保存

共有 > 追加

有効化: ON
共有フォルダ: data [on data, data/]
パブリック: ゲストのみ
読み込み専用: OFF
参照可能: ON
ACLを継承: ON
パーミッションを継承: OFF
ごみ箱: OFF
ドットファイルを非表示: ON
拡張属性: OFF
DOS属性を書き込む: OFF
監査: OFF
保存

確認

エクスプローラで\\nas

SSH

変更なし

プラグイン

Shell in a box

プラグイン > openmediavault-shellinabox 3.4
設定

有効化: OFF → ON
保存

確認

https://nas.local:4200
https接続なのでブラウザの例外で許可
nas login: pi
pi@nas's password: raspberry

DLNA

プラグイン > openmediavault-minidlna 3.3.11
設定

有効: ON
名前: MiniDLNA Server on OpenMediaVault → mobileNAS
保存

共有 > 追加

共有フォルダ: data [on data, data/]
コンテンツタイプ: すべてのメディア
保存

確認

http://nas.local:8200

iTunes/DAAP

プラグイン > openmediavault-forkeddaapd 4.0.7-1
設定

有効: ON
ライブラリ名: %h - iTunes/DAAP → mobileNAS
共有フォルダ: なし → data [on data, data/]
保存

確認(iTunesの場合)

ホームシャエリングをON
ライブラリをmobileNAS

Apple Filing

プラグイン > openmediavault-netatalk 4.0.7-1
設定

有効化: OFF → ON
保存

共有 > 追加

有効化: ON
共有フォルダ: data [on data, data/]
ゲストログイン: OFF → ON
ゲストのパーミッション: OFF → ON
TimeMachineサポート: OFF → ON
保存

Nginx

プラグイン > openmediavault-nginx 4.0.3
設定

有効: OFF → ON
保存

プール > 追加

名前: www-data
ユーザー: www-data
グループ: www-data
保存

サーバ > 追加

有効: ON
ディレクトリ: data [on data, data/]
PHPを有効にする: OFF → ON
PHP-FPMプール: www-data
デフォルトの設定: ON
インデックスの使用 index.php OFF → ON
ログを有効化: ON → OFF
保存

確認

エクスプローラで\\nas
新規作成 index.php
ソース <?php phpinfo(); ?>
http://nas.local

確認

IP ユーザ名 パスワード
OpenMediaVault http://nas.local:8080 admin 0000
DLNA http://nas.local:8200 - -
Nginx http://nas.local - -
Shell in a box https://nas.local:4200 pi raspberry
SSH nas.local pi raspberry
FTP nas.local pi raspberry
SMB \\nas - -

更新履歴

  • 2018.12.31 書き直し
  • 2018.12.17 公開