ソフトウェアとハードウェアの境界

ホビー開発に関する誰得情報満載☆

Raspberry PiのRAM化(SDカード延命対策)

近況2016-03-06

新入社員として働き出して2ヶ月が経つ。 仕事の内容も興味のある分野を多く取り扱っているし、話が合うあるいは話が面白い上司や同僚がいて、非常に楽しい。 こんなに楽しいならもっと早くに転職しておけば良かったと本当に思った。 まぁトラブルが多く続くとコンニャロと思うこともあるのだが、それでも定時には帰れるし、しなければならない作業も前倒しでできるくらいの余裕もある。
文句なしです。
今後はもう少し技術的にも難しいことを任されることになるし、逆に面倒なだけの作業や、突発的な事に関しても動かなければならなくなると思うので、できる限り上司の足を引っ張らないように進めていきたい。

加えて、今までボクが働いてきた職場には全く女性がいなかった。
現在の職場ではほぼ半数が女性である。
素晴らしいのである。

眼前を 過ぎる女性の 美しさ 香る艶美と 春の訪れ

セクハラ逮捕だけは勘弁してください。

Raspberry PiのSDカード延命

前回まで書いていた記事の番外編的な位置付けで書こうと思う。
tokixy56.hatenablog.com
これの①〜③ね。

SDカードはフラッシュメモリの一種で、書き込み回数に上限がある。
おそらく同じ箇所に対して数万回くらいの書き込みは可能なのだと思うが、例えばRPiを何かのサーバ代わりに使用するとしたら、結構早い段階で寿命が来てしまう可能性がある。
特に、サーバとして使用する場合には、サーバデーモンがアクセスログデバッグログ、その他のシステムログをずっと書き込んでいる。 前回までに紹介した方法では、例えば8GBあるSDカードの領域のうち、前方の1GBしか利用しないわけだから、全体を使うのと比べて同じ領域にたくさん書き込みをしてしまうだろう。 そこで、できる限りSDカードへの書き込みを抑えるため、RAM上にファイルを配置するという方法をとって、不要な書き込みを防いでSDカードの寿命を伸ばしてみよう。

本記事では、下記のページを抜粋させて頂いてる。
www.pc-links.com
ほぼ丸写しサーセン

fstabでマウントする場所を指定

/etc/fstabファイルで、各ディレクトリをマウントする場所を決める。
tmpfsにマウントすることによってRAM化することができるようだ。
Linuxにおけるtmpfsの技術的な仕様についてはwikipediaを参照しよう。

/etc/fstabの修正
# tmpファイルはRAMディスク上に保管する(追記)
tmpfs /tmp     tmpfs defaults,size=32m,noatime,mode=1777  0       0
tmpfs /var/tmp tmpfs defaults,size=16m,noatime,mode=1777  0       0
# /var/logディレクトリはRAMディスク上に配置する
tmpfs /var/log tmpfs defaults,size=32m,noatime,mode=0755  0       0

rsyslogの不要なログを停止

上記のtmpfsに加え、不要なログを残さないようにすることで、SDカードへのアクセスを減らす。
www.atmarkit.co.jp

rsyslogってよくわかってなかったけど、次世代のログシステム、ログデーモンなんですって。 reliableシスログってことだな。

/etc/rsyslog.confの修正

[root@ms03 ~]# vi /etc/rsyslog.conf
...
###############
#### RULES ####
###############
...
#下記をコメントアウト
# daemon.*                          -/var/log/daemon.log
# kern.*                            -/var/log/kern.log
# lpr.*                             -/var/log/lpr.log
# mail.*                            -/var/log/mail.log
# user.*                            -/var/log/user.log
...
#下記をコメントアウト
# mail.info                         -/var/log/mail.info
# mail.warn                         -/var/log/mail.warn
# mail.err                          /var/log/mail.err
...
#下記をコメントアウト
# news.crit                         /var/log/news/news.crit
# news.err                          /var/log/news/news.err
# news.notice                       -/var/log/news/news.notice
...
#下記をコメントアウト
# *.=debug;\
#        auth,authpriv.none;\
#        news.none;mail.none        -/var/log/debug

ボクの環境ではこれで特に問題なく動作している。 あとは実際ずっと稼働させてどれくらい持つのかが問題だけど、そこまでRPiを酷使する予定は今のところない。

余談 新しくなるコマンドたち

先日CentOS7をインストールしてサーバを構築したのだが、その際ネットワーク設定でハマりかけた。
まずipconfigがない。
ここでいきなり躓いたもんだから、ヤッパヤメタしようかなと思ったけど、仕事で使う予定だったのでどっちみち逃げることができないと悟り、頑張って設定した。
ipconfigがレガシーなツールになるなんて夢にも思わなかったなぁ。 あとはSELinuxやfirewalldも設定することになったし、散々な目にあった。 しかし、こういう新しい技術もたくさん情報があることがわかったし、しっかり理解すればかなり確実にセキュアなシステムを構築できる。 仕事上Windowsを利用することが多く、セキュリティソフトもファイアウォールも多額の費用を費やして利用しているのだが、今後費用の面などでこういうOSも使うことになると思う。 すべてを置き換えることはできないとしても、使える使えないでSEとしての柔軟さが大きく変わってくると思うので、しっかり勉強していこうと思う。