Edited at

Raspberry Piがうちの家に馴染むまで(購入~定常運用まで)

More than 1 year has passed since last update.


本日の内容


  • Raspberry Piのセットアップ~定常運用(馴染むまで)にやったことをご紹介します。

  • 既出の情報がほとんどだと思いますが、、

  • これから導入する人向けに 馴染むまでに何をやったか を一連の流れでまとめてみます。

  • 具体的には


    • SDカードに優しい運用とは

    • CPUに優しい運用とは

    • 人に優しい運用とは




  • すでに運用中の方には、退屈な内容 になると思います。



RaspberryPiとは


  • ARMプロセッサを搭載したシングルボードコンピュータ

  • CPUがぶん回っていなければ、消費電力1W程度(月の電気代で20円)
    68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3138333832362f63646531373261382d366536382d383662392d626261342d3531346361643530306665322e706e67.png



まずは、買い物とOSインストール


  • Amazonで買えます。

  • 売れ筋「Raspberry Pi 3 Model B」なら、USB電源は、5V / 3A電源を買いましょう。

  • OSはNOOBS(インストールツール)で簡単に入ります。

  • SDカードは、意外と相性問題があるので下記で確認して、買いましょう。



image.png



(インストールが終わったら、、)ハードに優しい運用を考えましょう


  • 具体的には、


    1. SDカードに優しい運用 (IO対策)

    2. CPUに優しい運用 (発熱対策)

    3. 人間に優しい運用 (状態の可視化)





SDカードに優しい運用


  • RaspberryPiはHDDの代わりに使うSDカードは、

  • IO上限回数(千回~10万回くらい)が決まっているので、
    書き込みがカード全体に分散するとは言え、、


    • 16GB SDカード → 16GB × 仮に1000回だと、 = 16TB でアウト





よって、SDカードに優しい運用のためには、、、


  1. ログをなるべく出さない。 (★)

  2. Swapを無効にする

  3. /var/logとか /tmp を tmpfs(メモリ上)でマウント(★)

  4. そもそも、SD大きめのSDカードを買う(分散するので)

  5. (その上で)いざというときのため、SD Card Copierでバックアップ


  • ★はちょっと説明します。



ログをなるべく出さない


  • インターネットに露出しないサーバであれば、、、


    • 程度はあるものの、OSのログ/ミドルウェアのアクセスログ等、利用しないログは抑止。

    • ログが出なければ、IOは減るので、SDカードへの負荷も減る。



  • ただ、雑に消しすぎると、、



ミドルが起動しなくなる。nginxは、/dev/nullのログ設定では起動しなかった。。。



/var/logとか /tmp を tmpfs(メモリ上)でマウント


  • ログを抑止せずとも、出力先をSDカードではなく、tmpfs(メモリファイルシステム)とすればSDに負荷はかからない。

  • ただ、、



ログdirは再起動で消える。必要なdir等はOS起動時にスクリプトで作成。



pip等がコンパイルで/tmpし、tmpfsでは領域不足も。必要なものを全部入れてから設定



SDカードに優しい運用のためのワンライナー


  • 直近12時間に更新のあったファイル一覧

$ find / -mmin -720 -print 2> /dev/null

| egrep –v "/(proc|dev|run|sys|var/log|var/tmp|var/lib/monitorix/www/imgs/)“
| sort


  • ファイルシステムの総書き込みバイト数(ext4なので記録されている)

$ sudo dumpe2fs /dev/mmcblk0p7|grep Life

dumpe2fs 1.42.12 (29-Aug-2014)
Lifetime writes: 14 GB



CPU温度に優しい運用


  • ファンレスなので結構熱くなります。

  • GPIOにPC用CPUファンを改造してつける人も居ますが、、、

  • USB扇風機で冷却しています。
    キャプチャ.PNG



こんな感じ

67F1B776-F956-4BA3-ABDE-AA39E040641A.jpeg



理由としては、USBファンの方が


  1. 接続が簡単

  2. 細いケーブルがごちゃごちゃしない

  3. ファンの取り付け位置を気にする必要がない

  4. 羽が大きいので、冷却効率が高い

  5. 4に関連し、回転数が低いので高周波が出にくい

  6. でいて、消費電力もそんなに大きくない。



CPU温度に優しい運用(のためのワンライナー)


  • CPU温度取得

$ vcgencmd measure_temp

temp=49.4'C


  • USBファンの電源ON (=USBポートに電源供給) このサイト を参考にコマンドをインストールしました。

$ hub-ctrl -b 1 -d 2 -P 2 -p 1


  • USBファンの電源OFF (=USBポートに電源カット)

$ hub-ctrl -b 1 -d 2 -P 2 -p 0



人に優しい運用(のためのツール)


楽に(CPU、IO、温度を)監視したい


  • Grafana使って、かっけぇダッシュボードを作ろうと思ったが。。

  • 設定が面倒そう。。


で、Monitorixが超便利!!(3行実行 + vi1回)

$ sudo apt-get install rrdtool perl libwww-perl libmailtools-perl libmime-lite-perl librrds-perl libdbi-perl

libxml-simple-perl libhttp-server-simple-perl libconfig-general-perl libio-socket-ssl-perl
$ sudo dpkg -i monitorix*.deb
$ sudo apt-get -f install

$ vi /etc/monitorix/monitorix.conf
raspberrypi = y ← Yにするだけ!!



こんな感じに監視できます


image.png



まとめ


  • Amazonで簡単に買えます。ACアダプタ、SDカードは気を付ける。

  • SDカードに優しい運用(IOを抑える)

  • CPUに優しい運用(USB扇風機のON・OFF運用がおすすめ)

  • 人に優しい運用(Monitorixが簡単)


最後に


  • 非常に薄い内容になりましたが、どなたかの役に立てば幸いです。



Enjoy Raspberry PI !!


image.png