Raspberry Piがうちの家に馴染むまで（購入～定常運用まで）

# 本日の内容
* Raspberry Piのセットアップ～定常運用（馴染むまで）にやったことをご紹介します。
* 既出の情報がほとんどだと思いますが、、
* これから導入する人向けに **馴染むまでに何をやったか** を一連の流れでまとめてみます。
* 具体的には
 * SDカードに優しい運用とは
 * CPUに優しい運用とは
 * 人に優しい運用とは
* *すでに運用中の方には、退屈な内容* になると思います。

---

# RaspberryPiとは
* ARMプロセッサを搭載したシングルボードコンピュータ
* CPUがぶん回っていなければ、消費電力１W程度（月の電気代で２０円）
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3138333832362f63646531373261382d366536382d383662392d626261342d3531346361643530306665322e706e67.png](https://qiita-image-store.s3.amazonaws.com/0/183826/c5b37266-74cd-6857-439a-3d8b397b6ed7.png)

---

# まずは、買い物とOSインストール
* Amazonで買えます。
* 売れ筋「Raspberry Pi 3 Model B」なら、USB電源は、5V / 3A電源を買いましょう。
* OSはNOOBS（インストールツール）で簡単に入ります。
* SDカードは、意外と相性問題があるので下記で確認して、買いましょう。
    * https://elinux.org/RPi_SD_cards

![image.png](https://qiita-image-store.s3.amazonaws.com/0/183826/31a60fd3-3861-9c5e-7947-2f38ee0eb150.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時間に更新のあったファイル一覧

```console
$ find / -mmin -720 -print 2> /dev/null
| egrep –v "/(proc|dev|run|sys|var/log|var/tmp|var/lib/monitorix/www/imgs/)“
| sort
```

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

```console
$ sudo dumpe2fs /dev/mmcblk0p7|grep Life
dumpe2fs 1.42.12 (29-Aug-2014)
Lifetime writes: 14 GB
```

---

# CPU温度に優しい運用
* ファンレスなので結構熱くなります。
* GPIOにPC用CPUファンを改造してつける人も居ますが、、、
* USB扇風機で冷却しています。
![キャプチャ.PNG](https://qiita-image-store.s3.amazonaws.com/0/183826/8219746f-c0d9-c3e9-a28b-f038ddec5f72.png)

---

#こんな感じ
<img width="533" alt="67F1B776-F956-4BA3-ABDE-AA39E040641A.jpeg" src="https://qiita-image-store.s3.amazonaws.com/0/183826/c6c8a2e7-3cc2-50c7-cfff-c7ba7954c654.jpeg">

---

# 理由としては、USBファンの方が
1. 接続が簡単
2. 細いケーブルがごちゃごちゃしない
3. ファンの取り付け位置を気にする必要がない
4. 羽が大きいので、冷却効率が高い
5. 4に関連し、回転数が低いので高周波が出にくい
6. でいて、消費電力もそんなに大きくない。

---

# CPU温度に優しい運用（のためのワンライナー）
* CPU温度取得

```console
$ vcgencmd measure_temp
temp=49.4'C
```

* USBファンの電源ON （＝USBポートに電源供給） [このサイト](http://atotto.hatenadiary.jp/entry/linux-sugoi-usb-hub-power-ctrl) を参考にコマンドをインストールしました。

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

* USBファンの電源OFF （＝USBポートに電源カット）

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

---

# 人に優しい運用（のためのツール）
## 楽に（CPU、IO、温度を）監視したい
* Grafana使って、かっけぇダッシュボードを作ろうと思ったが。。
* 設定が面倒そう。。

## で、Monitorixが超便利！！（3行実行 ＋ vi１回）

```bash
$ 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](https://qiita-image-store.s3.amazonaws.com/0/183826/a62c6c8a-27eb-6a27-90ec-51dd0eae822c.png)

---

# まとめ
* Amazonで簡単に買えます。ACアダプタ、SDカードは気を付ける。
* SDカードに優しい運用（IOを抑える）
* CPUに優しい運用（USB扇風機のON・OFF運用がおすすめ）
* 人に優しい運用（Monitorixが簡単）

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

---

# Enjoy Raspberry PI !!

---

![image.png](https://qiita-image-store.s3.amazonaws.com/0/183826/f9e02d69-8043-9f97-478a-0801624d56f0.png)

---