Humanity

Edit the world by your favorite way

/var/*をtmpfsのファイルシステムに持っていくinitスクリプト

元は上記のArch Linuxのwikiにあったネタなのですが、そんなinitスクリプト書きました。
/var/*は頻繁に更新されるために、余計なI/O負荷を避けるのに便利とか、便利じゃないとか。*1


実はこれ、微妙に前の記事とも関連があります。
というのも、元々なぜこんなものを書いたかというと、MicroServerにDebianをインストールしたUSBメモリを差してNFSサーバを公開してるのですが、NFSへの書き込みがすごく遅かった。
多分USBメモリだから、USBメモリ上へのファイルシステムにアクセスするたびめっちゃ重いんだろうなーと思ってて、ずっと/var/*をtmpfsにしたいと思っていたところ、冒頭のページが見つかったので移植。
インストールして運用して、さぁこれで速くなるかなー?と思ってたけど、一向に速くならない。
しょんぼりして「NFS 遅い」とかでググってたら前の記事で紹介したページを見つけて設定変更したら見事に解消された、という流れでした。


というわけで自分の環境ではボトルネックは別にあったため、このスクリプトの効果はまったく未検証です。
あとこのスクリプトのデメリットとして、電源ぶち切りすると/var/*はtmpfs上にあるため、データが消失します。
ただ自分の環境ではsyslogはログサーバに飛ばしてるし、syslog経由しないログファイルに関しても/var/logまるごと毎日バックアップを取ってるので、/var/logがなくなってもまったく困らないため、このスクリプトを試す価値はありました。無駄骨だった訳ですが(白目)


遅かったり、ふと触った時にUSBメモリへし折りそうだったり、いい加減ファイルシステムは全部メモリ上に展開するようにしたい...
以前ネタでUSBメモリ 4GB x 2個でRAID1とかやってみたら、インストールすら何日経っても終わらなくて笑えましたが、どう考えても笑われるべきは僕でした。ごめんなさい。

*1:理由があって未検証なため自信がない。詳しくは後述