上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
PC/RaspberryPi/RAMディスクの利用
のソース
資料室
PC
/
RaspberryPi
/
RAMディスクの利用
のソース
[
差分
|
バックアップ
|
リロード
]
[ ]
差分
を表示
PC/RaspberryPi/RAMディスクの利用
へ行く。
* Raspberry PiでMicroSDカード寿命を延ばすためにRAMディスクを使う [#k42589ac] MicroSDカードやSDカードは,NANDフラッシュが使われていて,このNANDフラッシュには書き換え寿命が存在する。 Raspberry PiはOSをSDカードに書き込んで利用しているため,数ヶ月から1年程度でMicroSDカードやSDカードが寿命で使えなくなってしまう。 対策で考えられるのは,~ + swapを使わないようにする~ + 頻繁に書き換えられる場所を,RAMディスクにする~ + ルートファイルシステムをRAM上で運用する~ + 別のメディア等に定期的にバックアップを取る~ 壊れたらバックアップしたSDカードに入れ替える。~ + Networkブートにし,ストレージとしてSD/MicroSDカードは使わない~ + SDカードのファイルシステムをRead-Onlyな読み込み専用にする~ などが考えられます。 そこで,SD/MicroSDカードの寿命を伸ばすため,とりあえずswapを使わないようにし,ログファイルをRAM Disk化して,出来るだけSD/MicroSDカードへの書き込み回数を減らすようにしてみる。 以下は,Raspbian Jessie/Stretchを使用している場合。 ** SWAPを使わないようにする [#b23577ee] freeコマンドでswapサイズを確認してみる。 $ free total used free shared buffers cached Mem: 750632 523468 227164 5460 53252 361196 -/+ buffers/cache: 109020 641612 Swap: 102396 0 102396 と,スワップファイルとして100MBが確保されている。usedは0なんで,スワップは発生していないが・・・ まず,swapを無効化してみる。 # dphys-swapfile swapoff 確認してみると, # free total used free shared buffers cached Mem: 750632 527064 223568 5460 53652 361688 -/+ buffers/cache: 111724 638908 Swap: 0 0 0 使用されなくなった。 再度swapを有効化するには, # dphys-swapfile swapon でOK。 swapは使用しなくなったが,電源ONでswapが自動起動しないようにsystemctlで設定します。 # systemctl stop dphys-swapfile # systemctl disable dphys-swapfile Raspberry Piを再起動してswapが使用されていないか確認しておく。 ** RAMディスクの設定 [#obcfb496] メインRAMの一部をRAM Diskとして使用し,そこをテンポラリファイル保存場所に利用するようにする。~ RAMディスクは,電源OFF-ONやブートしたりした場合消えてしまうが,テンポラリのログ等では消えてしまってもまあ問題ない。 /etc/fstabを編集して,/tmpと/var/tmpと/var/logを移動するようにしてみる。 proc /proc proc defaults 0 0 /dev/mmcblk0p1 /boot vfat defaults 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 # a swapfile is not a swap partition, no line here # use dphys-swapfile swap[on|off] for that これを, proc /proc proc defaults 0 0 /dev/mmcblk0p1 /boot vfat defaults 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 # a swapfile is not a swap partition, no line here # use dphys-swapfile swap[on|off] for that tmpfs /tmp tmpfs defaults,size=32m,noatime,mode=1777 0 0 tmpfs /var/tmp tmpfs defaults,size=16m,noatime,mode=1777 0 0 tmpfs /var/log tmpfs defaults,size=32m,noatime,mode=0755 0 0 とtmpfsとして3個追加する。 再起動して,マウント確認をする。 # df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/root 15G 4.6G 8.9G 34% / devtmpfs 363M 0 363M 0% /dev tmpfs 367M 0 367M 0% /dev/shm tmpfs 367M 5.1M 362M 2% /run tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 367M 0 367M 0% /sys/fs/cgroup tmpfs 32M 88K 32M 1% /var/log tmpfs 16M 0 16M 0% /var/tmp tmpfs 32M 0 32M 0% /tmp /dev/mmcblk0p1 63M 21M 42M 34% /boot tmpfs 74M 0 74M 0% /run/user/1001 ** 不要なログは作成しないようにする [#zacbd2e1] rsyslog.confを変更して,不要なログを作成しないようにする。~ /etc/rsyslog.confファイルで,不要な行の頭をコメントアウトする。 ############### #### 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 # # Logging for INN news system. # #news.crit /var/log/news/news.crit #news.err /var/log/news/news.err #news.notice -/var/log/news/news.notice # # Some "catch-all" log files. # #*.=debug;\ # auth,authpriv.none;\ # news.none;mail.none -/var/log/debug *.=info;*.=notice;*.=warn;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none -/var/log/messages # # Emergencies are sent to everybody logged in. # *.emerg :omusrmsg:* テンポラリ用のディレクトリが無いと困るプログラム用に,起動時にディレクトリを作っておく。 /etc/rc.localで,これを行う。 #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi 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.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
PC/RaspberryPi/RAMディスクの利用 のバックアップソース(No. All)
現: 2020-12-26 (土) 16:07:35
yuji
Counter: 2895, today: 1, yesterday: 4
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
» 関連ページ
» Wikiソース
» 編集履歴
» バックアップ一覧
» 添付ファイル一覧
フォーラム
お問い合わせ