前回に引き続きRaspberryPi(ラズベリーパイ)という名刺サイズの小型コンピュータを使って、監視カメラなどからアクセス可能なPCやスマホでも共有できるデータ保存ストレージを制作してみます。
最近ではAIに学習させる大量の画像データ、車のドライブレコーダーの記録映像、オフィス等の監視カメラの記録映像など、長時間・機械的に撮影し続ける映像データを保存し続けると膨大な容量になってしまいます。
PCもスマホも外付けHDD等も本体の記憶は物理的なストレージ(HDDやSSDなどのデータ保存場所)への記録ですので、本当に消えてしまうと困る重要なデータはクラウドストレージに保存したほうがデータ消失については安全です。しかし、DropBoxやGoogleドライブなどのクラウドストレージも気軽に使える容量は限られています。
そこで、今回はもう少し簡易的で24時間動かし続けても省電力なデータの一時保管場所を制作します。システムに明るい人向けに端的に話すと簡易なNAS(ナス Network Attached Storage) の制作です。
NAS制作の背景
実は弊社の駐車場の監視カメラとして既に3年間(24時間)安定稼働してくれたラズベリーパイの監視カメラ&SDカード映像保管システムがあるのですが、今回OSのアップデートと容量アップ(と記事のネタ)の為に今回メンテすることにしました。
また、GoPro(アクションカメラ)で使用しいてたmicroSDカードを4K対応で高速なものに変更したことで、128GBのmicroSDカード(SDXC UHS-1)が余ったので、NASの容量を拡張しAIの学習データ保存用などにも活用しようと考えたのが制作の背景です。
ですので日常使いのストレージというよりは、監視カメラなどから機械的に送られてくる映像データをストックさせたり、一時的な仮置きスペースとしてPCやスマホからもアクセスできるストレージという観点でご覧頂ければと思います。
・低消費電力で24時間常時稼働でも1月30円
・オフィスや自宅などのネットワーク内であれば皆で共有可能
・ネットワーク内ならスマホ・PCからも接続可能
・ストレージ容量の設定はSDカードで変更可能
・読み書き速度は工夫次第だがやや難あり
・信頼性はSDカードの寿命と同等
制作に必要となる物
今回制作するNAS(ネットワーク内の共有ストレージ)で必要となるものは、上の写真にある通りで、RaspberryPi(ラズベリーパイ)という名刺サイズの小型コンピュータ、microSDカード・SDカードリーダーのみです。(+付属の電源ケーブル)
ラズベリーパイは一般的なコンピュータでも代用可能です。今回は24時間常時稼働を想定していますので、低消費電力なラズベリーパイを採用します。(最終的にはラズベリーパイの中でも旧式のモデルを採用しました)
ストレージにはSanDiskのmicroSDカード(SDXC UHS-1) 128GBを使用します。こちらは後述しますが、他のHDD(ハードディスク)やSSD(ソリッドステートドライブ)などでも代用可能です。
日常使いの為に高速化したいという事であれば、こちらを必要に応じてSSDなどに変えると高速化が可能ですが、24時間常時稼働ため、今回は省電力・省スペースなmicroSDカードを採用することとしました。
ストレージの信頼性
今回は保存用ストレージとしてmicroSDカードを採用しますので、ストレージの信頼性はmicroSDカードの寿命ということになります。一般的にHDD(ハードディスク)やフラッシュメモリの寿命はメーカーや機体によっても変わりますが、概ね3~5年といわれています。
そのため、市販のLANで接続するストレージ NAS(ナス Network Attached Storage) では、3.5インチHDDを複数台のディスクを冗長化させたRAID(レイド)という方法を用いて耐久性を上げ、さらには高速化を行っている場合が多いです。
信頼性が必要な場合はそれらの手法も有効ですが、今回の定期的なデータ取得や一時的な仮置きなどの用途に対しては無駄が多く完全にオーバースペックです。
余談ではありますが、弊社でもドライブレコーダーやアクションカメラ・一眼レフ・監視カメラ、ラズベリーパイ、NASなど様々な用途にSDカードを使用しています。ノーブランド品や東芝のSDカードでは壊れた経験がありますが、SanDisk製に統一してからは3年以内に壊れた経験は無いので、今のところ安心して使っています。
ストレージの状態チェック
簡易的な用途とはいえ、初期不良や故障しているストレージを使ってしまうのは本意ではありませんし、なるべく事前に把握していた方が良いでしょう。
HDDやSSDなど現在のストレージの状態は、CrystalDiskInfoという定番のソフトで事前に確認する事が出来ます。CrystalDiskInfoで調べた結果、特に問題ないストレージの場合は上のような表示となります。
CrystalDiskInfoで調べた結果、何らかの異常が検知された場合は上のようにエラーが表示されますのでストレージの問題点を把握することが出来ます。
SDカードについても中身が破損していないかについては、上記の方法で事前にチェックする事が可能です。具体的なSDカードのチェック方法については上記の記事をご覧下さい。
ストレージの容量
元々弊社で運用していたNASでは8GB→64GBのSDカードで運用していましたので、今後の用途を考えても容量は128GBあれば十分です。
ストレージの容量は用途次第ですが、microSDカードの容量は必要に応じて変更可能です。ラズベリーパイにはUSBのポートは4つありますのでmicroSDカード複数枚でも使用できます。
microSD以外のストレージでも活用できますので、参考までに主要なストレージの性能を以下で提示します。
ストレージ別のデータ読み書き速度比較
それでは、ストレージ毎にデータ読み書きの速度を見てみます。速度のチェックには定番のCrystalDiskMarkというソフトを使用しました。(計測はPCから行っています)
少し大雑把な表現ですが、一番上の項目(Seq Q32T1)が大きなファイルを読み書きした際の速度で、下3つ(4KiB Q8T8以下)は細々したファイルの読み書き速度のようなイメージです。
ですので、動画ファイルなどの大きなファイルのコピーには最上部の数値が効いてきますが、日常使いの体感的な速度は下の項目が効いてきます。Read(読み込み速度)、Write(書き込み速度)です。
USBメモリー
USBメモリーだとこんな感じです。USBメモリーは4GBの旧式(USB2.0)しかなかったので今回使用はしませんが、スペース的にはコンパクトには収まりますね。
読み書き速度は、残念ながら遅いです。特に書き込みがかなり遅いです。USB3.0以降に対応した機種を使えばもう少し高速になると思いますが、ストレージの特性上あまり期待は出来ません。
2.5インチHDD
2.5インチHDDは昔のノートパソコン等に入っていた、ハードディスクです。3.5インチHDDだと電力が掛かるので補助電源が無いと動きませんが、2.5インチHDDであれば省電力なので補助電源無しでUSBケーブル一本で使用する事が出来ます。
読み書き共に速度はかなり遅いです。一応使えることは使えますが。
3.5インチHDD
3.5インチHDDは昔のパソコンによく使用されていました。今も大量データを保存したりする際に使用されています。一般的なNASやハードディスクレコーダー等を購入すると中に3.5インチHDDが入っているものが多いです。2020年現在、市販品のハードディスクは7200rpmという回転数のものが最速です。
以下の計測データは7200rpmのHDDをRAID無し・SATA接続時の計測データです。
3.5インチHDDの結果としては大きなファイルの読み書きには速度がでるものの、細かいファイルの読み書きは極端に苦手という傾向にあります。こちらのデメリットとしては中で回転体が回っているので衝撃にも弱く物理的に大きく重いです。消費電力も大きくUSBケーブル1本では動作できず補助電源などを必要とします。
SDカード(microSD SDXC)
今回使用する、microSDカードですが、物理的なサイズは一番コンパクトに済みます。消費電力も一番少なく済みます。
大きなファイルの読み書きは少し苦手の傾向にあります。使用したmicroSDカードはあまりハイスピードな機種ではありませんが、細かなファイルの読み書きについては、なかなか検討する数値です。
SSD
外付けSSDを接続してみました。内臓SSDでも2.5インチHDD同様にUSBの変換ケーブルがあれば接続可能です。SSDもUSBケーブル一本で動作する事が出来ます。
SSDは大きなファイルも細かなファイルでも読み書きはかなり高速です。こちらも2.5インチHDD同様に補助電源無しで利用する事が出来ます。HDDやSDカードと比較するとデータ容量あたりの価格が少し上がります。
USBの規格は2.0だとSSDの速度が活かしきれませんが、3.0以降であれば画像同等以上の数値は出るかと思います。
今回はここまでの速度を必要としない用途での使用予定ですので、使用しませんが人間が実用的にしたいという用途であれば選択肢に入ると思います。
M.2 SSD
今回は使用しませんが、比較として最近のPCに搭載されているNVMe接続のM.2 SSDの数値です。3年ほど前の機種ですので、最新だと読み込み速度が5000MB/S以上の数値が出るものもあります。
M.2 SSDも専用の変換ケーブルを使用すればUSB接続で使用する事が出来ますが、あまり一般的ではありません。ラズベリーパイの規格はUSB3.0ですが、USB3.1 Gen2以降でないとパフォーマンスを発揮しきれない上に、価格も高額です。
使用用途的にもあまり速度は求めていませんので、今回は使用しません。
ラズベリーパイNASの制作
ラズベリーパイでのNAS制作方法(技術的な内容)は以下で紹介しておりますので、興味のある方は以下をご覧下さい。特に技術面に興味のない方は読み飛ばしていただいて結構です。
上の記事概要としては、市販の監視カメラで取得した映像データを、ラズベリーパイで制作したNASに直近1週間分だけ保持するといった内容です。
保存された映像データはWindowsのPCから閲覧できるようにしております。
PC・スマートフォンからのアクセス
オフィスではPCを使う人も多いと思いますが、最近はスマホのみで仕事をしている人も多いと思いますので、同じネットワーク内でスマホのアプリから接続できることも確認します。
iPhoneなどのスマホで撮った動画で容量がいっぱいになったからNASに移動させるといった事も可能です。もちろん、NASが外部からアクセス出来る(あるいは同じネットワークに居る)ような、スマホからNASに接続できる環境にある場合に限ります。
スマホのアプリは様々ありますので好みのアプリを使用すれば大丈夫ですが、ここでは「RemoteFileManagerBasic」というアプリを使って操作してみます。
RemoteFileManagerBasicをスマホにインストールすることでスマホからでも複数人でも使えるファイルの共有ストレージとなりました。
消費電力・読み書き速度の実測
旧式のラズベリーパイにmicroSDカードでNASを利用中の消費電力は、1.5Wほどでした。
1ヶ月(24時間*30日)間動かし続けた際の電気代は30円ほどとかなり経済的です。
ちなみに市販のNASの場合は、3.5インチHDDを複数組んでいる場合が多く消費電力も多少大きくなります。最近の機種はアイドル時は低電力に出来るものもありますが、均すと概ね20~40Wくらい消費するものが多いようです。
初期購入費+電気代(ざっくり500円/月)くらいかかる市販のNASを使うのであれば、クラウドの有料プランを利用すべきか悩みどころです。(このあたりの理由からNASを使うのであれば割り切り用途でラズベリーパイ+SDカードという選択肢に至っています。)
上が旧式・下が最新のラズベリーパイでの約4GBのファイルを書き込み時の速度の比較です。旧式モデルで2MB/s ほど、最新モデルで10MB/sくらいの速度でした。原因は弊社のLAN環境が脆弱なのでそちらが足を引っ張っていて速度は物足りない結果ですが、1000BASE-Tのギガビット・イーサネット(GbE)・USB3.0・SSDなどの環境であればファイル転送速度は60MB/sから110MB/s程度までは出るようです。
最新式のラズベリーパイ(黒箱)と今まで活用していた旧式のラズベリーパイ(スケルトン)を試してみました。旧式では人が日常使いするNASとして遅くて使いづらいですが監視カメラの映像保存ストレージとしては、十分ですので最終的には旧式を採用する事にしました。
監視カメラの映像データイメージ
Windowsの場合はファイルエクスプローラーのアドレスバーにIPアドレスを打ち込んでみます。ここでは192.168.0.80に設定したので「\\192.168.0.80」と打ち込んで確認してみます。
実際に監視カメラから送られてきた定期的な映像データが保存されている様子です。WindowsのPCからアクセスしてみてみると通常のフォルダと同じように閲覧する事が可能です。
1日分の映像データが時系列に並んでいるのが確認できます。映像データを保存していますので、ダブルクリックする事でそのまま再生(視聴)することも可能です。もちろん映像以外のファイル形式でも保存することは可能です。
まとめ
今回の目的はあくまで監視カメラなどから機械的に送られてくる映像データの保管・視聴、一時的な仮置きスペース的な使用を想定していたので、旧式のラズベリーパイでも特に問題ないレベルに仕上がりました。
ただし、最近はSSD搭載PCに慣れている方が多いと思いますので日常使いでお考えの場合は、LAN経由・ラズベリーパイ・SDカードのNASでは多少読み書き速度には不満があるかもしれません。
旧式ラズベリーパイは無線LANに対応していませんでしたが、新型ラズベリーパイは無線LANにも対応していますので、Wifi圏内で名刺入れサイズのスペースがあれば場所を選ばず設置できるのも利点です。
今後は、これらのNASに蓄積した映像や画像のデータを元にAIでの学習イメージ・AIの活用方法などを紹介できればと思います。