Raspberry Pi、RAMディスクで micro SDを長寿命化

0 0
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

このページの目標

Raspberry Pi のメモリ上に RAMディスク を作り、ログファイルやキャッシュ等をそこへ書き込みます。
また、swap機能を切って、メインメモリと補助記憶装置のやりとりを減らします。

RAMディスク
  • コンピュータのメインメモリ上に確保して、補助記憶装置と同じように利用できる領域のこと。
    電源を切ったり再起動すると、内容は失われます。

swap
  • メインメモリであまり使われないデータを補助記憶装置に移して空き領域を作ったり、
    そのデータを使う時はメインメモリに書き戻して、使える状態にする仕組み。

Raspberry Pi 2 は補助記憶装置に micro SD を使っています。
しかし、SDカードやUSBメモリ等のフラッシュメモリは、データを保存するメディアとして寿命がかなり短いです。
そのため micro SD がなるべく長持ちするように、書き込みを減らします。


swap を無効にする

(1) swapの確認。
次のコマンドで、現在のswapの状態を確認できます。
free


(2) swapを無効化。
sudo swapoff --all


(3) 再起動すると復活するので、swapが自動起動しないようにパッケージを削除。
sudo apt-get remove dphys-swapfile


(4) Raspberry Pi を再起動。
sudo reboot


(5) 再起動したら、swapを確認。
swapの使用量が0になっていればOKです。
free


一時フォルダとログファイルをRAMディスクにマウント

(1) /etc ディレクトリに移動。
cd /etc


(2) fstab のバックアップをとる。
sudo cp fstab fstab_original


(3) fstab を編集する。
sudo nano /etc/fstab

[ファイルの末尾に追加]
# 一時フォルダを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

Ctrl + O で上書き、Ctrl + Xnano を終了する。


ログファイルの設定を変更

(1) /etc ディレクトリに移動。
cd /etc


(2) rsyslog.conf のバックアップをとる。
sudo cp rsyslog.conf rsyslog.conf_original


(3) rsyslog.conf を編集する。
sudo nano rsyslog.conf

以下のログファイルだけ残すように変更。
/var/log/auth.log
/var/log/syslog
/var/log/daemon.log

[変更前]
###############
#### RULES ####
###############

#
# First some standard log files.  Log by facility.
#
auth,authpriv.*			/var/log/auth.log
*.*;auth,authpriv.none		-/var/log/syslog
#cron.*				/var/log/cron.log
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

#
# Logging for the mail system.  Split it up so that
# it is easy to write scripts to parse these files.
#
mail.info			-/var/log/mail.info
mail.warn			-/var/log/mail.warn
mail.err			/var/log/mail.err

[変更後]
###############
#### RULES ####
###############

#
# First some standard log files.  Log by facility.
#
auth,authpriv.*			/var/log/auth.log
*.*;auth,authpriv.none		-/var/log/syslog
#cron.*				/var/log/cron.log
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

#
# Logging for the mail system.  Split it up so that
# it is easy to write scripts to parse these files.
#
#mail.info			-/var/log/mail.info
#mail.warn			-/var/log/mail.warn
#mail.err			/var/log/mail.err

Ctrl + O で上書き、Ctrl + Xnano を終了する。


rc.local を編集

(1) /etc ディレクトリに移動する。
cd /etc


(2) rc.local のバックアップをとる。
sudo cp rc.local rc.local_original


(3) rc.local を編集する。
sudo nano rc.local

ログを記録するプログラムでは、ディレクトリが無いとエラーになる場合があります。
その対策として起動時に、RAMディスクにディレクトリを作成します。
下記を参考に、コマンドを追加して下さい。

[変更前]
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

exit 0

[変更後]
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

# 
# RAMディスクに自動的にフォルダを追加
# 
mkdir -p /var/log/ConsoleKit
mkdir -p /var/log/samba
mkdir -p /var/log/fsck
mkdir -p /var/log/apt
mkdir -p /var/log/ntpstats
chown root.ntp /var/log/ntpstats
chown root.adm /var/log/samba
touch /var/log/lastlog
touch /var/log/wtmp
touch /var/log/btmp
chown root.utmp /var/log/lastlog
chown root.utmp /var/log/wtmp
chown root.utmp /var/log/btmp

exit 0

Ctrl + O で上書き、Ctrl + Xnano を終了する。


Raspberry Pi を再起動

sudo reboot


以上で、RAMディスクの設定は終了です。


各種・設定方法

【準備】 Raspberry Pi 2 を用意してみよう
(1) Raspberry Pi 2 の OS をインストールする
(2) IPアドレスを設定
(3) システム時刻を日本に設定
(4) RAMディスクを使って、micro SDを長寿命化
(5) Raspberry Pi にUSBメモリをマウント
(6) ファイアウォールを設定
(7) samba を導入して、共有フォルダを作る


ページトップ