Raspberry Piをサーバーとして使っていますが、
予想される一番最初に壊れる箇所はSDカード/マイクロSDカードです。
サーバーみたいに24時間動かし続けるとSDカードへの読み書きが増えて寿命で壊れる。
1年くらいで壊れても不思議じゃない気がします。
ということで、できるだけSDカード/マイクロSDカードを延命させるための対策を取ります。
(サーバーみたく24時間使わなければ気にしなくていいと思います)
参考
How can I extend the life of my SD card?
Raspberry PiでRAMDiskを使う
Swapを無効にする
Raspberry Piから
free total used free shared buffers cached Mem: 382868 113852 269016 0 9932 48188 -/+ buffers/cache: 55732 327136 Swap: 102396 0 102396
スワップが100MBほどあります。
この利用を無効にします。
話によるとスワップは(マイクロ)SDカードへ負荷をかけるらしく、あってもあまり速くならない。デメリットのわりにメリットが少ないのがRaspberry Piのスワップです。とは言うものの、スワップしているところ見たことないんだけど。。
とにかくスワップを無効にします。
sudo swapoff --all free total used free shared buffers cached Mem: 382868 127168 255700 0 10600 60524 -/+ buffers/cache: 56044 326824 Swap: 0 0 0
スワップがゼロになった。
これだけだとリブートしたときに復活するので下記の呪文を唱える。
sudo apt-get remove dphys-swapfile
Raspbian以外の場合は下記のファイルから適切なものを削除するらしい。僕はRaspbianなので省略。
/etc/fstab
とりあえずリブートして確かめてみる。
起動しなくなった・・・・。
電源引っこ抜いて再度電源を入れた。
起動した。
free total used free shared buffers cached Mem: 382868 113636 269232 0 9928 48056 -/+ buffers/cache: 55652 327216 Swap: 0 0 0
スワップの無効に成功しました。
RAMディスクを使う
RAMディスクを使えばSDカードへの負担が減るらしい。
負担を減らす代わりにリブートまたは電源を切るとRAMディスクのデータが消えます。
消えてほしくないデータは電源を切る前に避難させる必要があります。または消えてほしくないデータに対してはRAMディスクを使わない。
tmpフォルダをRAMディスクに移す
sudo vim /etc/fstab tmpfs /tmp tmpfs defaults,size=32m,noatime,mode=1777 0 0 tmpfs /var/tmp tmpfs defaults,size=16m,noatime,mode=1777 0 0 sudo reboot df -h Filesystem Size Used Avail Use% Mounted on rootfs 15G 2.8G 12G 20% / /dev/root 15G 2.8G 12G 20% / devtmpfs 183M 0 183M 0% /dev tmpfs 38M 228K 38M 1% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 75M 0 75M 0% /run/shm /dev/mmcblk0p1 56M 9.6M 47M 18% /boot tmpfs 32M 0 32M 0% /tmp tmpfs 16M 0 16M 0% /var/tmp
※追記
Wordpressなんかを運用する場合で比較的大きな容量のファイルをアップロードする場合、tmpフォルダのサイズがアップロードできる最大容量になります。
WordPressで2MB超のファイルをアップロードする方法で100MBに設定しても、tmpが32MBの場合は、32MB超のファイルをアップロードすると、
『“何とかファイル” は、エラーのためアップロードに失敗しました
ディスクへのファイルの書き込みに失敗しました。』
というメッセージが出てきてアップロードできません。
tmpのsizeを32mから64mにすると、64MBまでアップロードできるようになります。
logフォルダをRAMディスクに移す
logの中で残しておきたいログがあれば保存する。apache2のログなんかはどこか違う場所に保存するようにしたほうがいいかもしれない。
sudo vim /etc/fstab tmpfs /var/log tmpfs defaults,size=32m,noatime,mode=0755 0 0 mount /var/log [mntent]: line 7 in /etc/fstab is bad mount: can't find /var/log in /etc/fstab or /etc/mtab
あれ?マウントできない・・。
コピペと編集繰り返しているうちにマウントできるようになった。
sudo vim /etc/fstab tmpfs /var/log tmpfs defaults,size=32m,noatime,mode=0755 0 0
何が違うんだろう?
まぁいいや。
df -h Filesystem Size Used Avail Use% Mounted on rootfs 15G 2.8G 12G 20% / /dev/root 15G 2.8G 12G 20% / devtmpfs 183M 0 183M 0% /dev tmpfs 38M 228K 38M 1% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 75M 0 75M 0% /run/shm /dev/mmcblk0p1 56M 9.6M 47M 18% /boot tmpfs 32M 0 32M 0% /tmp tmpfs 16M 0 16M 0% /var/tmp tmpfs 32M 0 32M 0% /var/log tmpfs 32M 0 32M 0% /var/log sudo vim /etc/rsyslog.conf #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</code> <code>sudo vim /etc/rc.local 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
ここで一度リブートして完了
sudo reboot
容量の大きなSDカード/マイクロSDカードを使う
容量が大きいとそれだけ書き込める箇所が増えて、連続して書き込む割合が少なくなるので、SDカード/マイクロSDカードは容量の大きなものを使う。少なくとも8GB、推奨16GB。無名なブランドではなく有名ブランドを使う。無名なブランドだと容量を増やすことで負担を減らす機能がないことも考えられる。
以上がRaspberry PiのSDカード/マイクロSDカードの寿命を延ばす主要なポイントでした。
他に有用なテクニックがある場合、随時ここに載せていきます。
コメントを残す