沼津高専 電子制御工学科
MIRSMG3D RAMディスクの実装
MIRSMG3D-OSIN-0004
改訂記録
版数 作成日 作成者 承認 改訂内容
A01 2009.03.18 中川 江上 初版


目次






1.はじめに

本ドキュメントは、MIRSMG3DのRAMディスクの実装手順をまとめたドキュメントである。

1.1 目的

MG3で副記憶装置としてCompact Flash(CF)の効果的効率的な利用方法の確立が目的である。
具代的には、OSの起動時間短縮、作業速度の高速化、 CFへの書込み回数の極力減少による寿命延長などが挙げられる。

1.2 RAMディスクの使い方

USBメモリやCFなどの記憶デバイスには書き込み回数上限が存在し、 その上限回数に達した記憶領域部分は使用不能になる。
一方、RAMディスクは一般的にアクセス速度が高速で、データを書き込むときに磨耗することがないため、 理論上は書き込み回数に制限はない。

そこでMG3では、以下のようにRAMディスクを使用する。

起動時
1. RAMディスクはMG3起動時、/mnt/ram/に自動でマウントされる。
2. コマンドloadで作業ファイルや データの自動更新が頻繁なディレクトリ/home, /var, /tmpをRAMディスク上にコピーする。(6節参照)
3. /home, /var, /tmpなどに貼ってあるシンボリックリンクを/mnt/ramに貼り直す。(6節参照)

これで、ディレクトリ/home, /var, /tmpの本来の場所にはシンボリックリンクの実体のファイルが置かれ、 RAMディスク上にコピーした実体とリンクで繋がる。
そしてディレクトリ/home, /var, /tmpの中のファイルはRAMディスク上でデータ更新を行い、 作業もRAMディスク上で行えるようになる。


終了時
1. 作業終了後、コマンドsaveでCFに作業で使ったデータのバックアップを取り、 次回起動時にloadできるようにする。(6節参照)
2. シンボリックリンクを/backupに貼り直す。(6節参照)

終了するとRAMディスク上のデータはすべて消えてしまうのでバックアップをしている。
シンボリックリンクも同じようにリンク先がなくなるので、元に貼り戻す。


このようにデータの書換えは極力RAMディスク上で行わせ、CFへの書込みを減らしている。


2.Compact Flashの準備

RAMディスク実装に当たって、OSをインストールしたCompact Flash(CF)を準備する。


3.RAMディスク作成

1.OSを起動させ、スーパーユーザでログインする。

2./mnt/ramディレクトリを作成する。
# mkdir /mnt/ram

3./etc/fstabの一部を次のように編集する。
(編集前)
/dev/shm/dev/shmtmpfsdefaults0 0
(編集後)
ram/mnt/ramtmpfsrw0 0

編集後、再起動させると次回から/mnt/ramにRAMディスクが作成されるようになる。


4.save,loadコマンド作成

1./etc/bashrcをviで編集する。
# vi /etc/bashrc

2.次の2行を追記する。
alias load=’rm -rf /backup/* ; cp -rf /backup/* /mnt/ram/’
alias save=’rm -rf /backup/* ; cp -rf /mnt/ram/* /backup’


操作性を考え、手動で実行するようにした。実行はコマンド名のみで実行できる。

5.シンボリックリンク作成の前に

1.バックアップ用のディレクトリ/backupを作成する。
# mkdir /backup

2./var、/home、/tmpを/backupにコピーする。
# cp -r -f /var /backup/xvar
# cp -r -f /home /backup/home
# cp -r -f /tmp /backup/tmp

3.保険として/var、/home、/tmpを/originalに移動させる。
# mv /var /original/xvar
# mv /home /original/home
# mv /tmp /original/tmp

4./varディレクトリを作成し、/original/xvar/runディレクトリをそこへ移動させる。
# mv /original/xvar/run /var/run


6.シンボリックリンクの作成と使用方法

1.OS起動後または5節の後に、loadコマンドでRAMディスクにデータをコピーし、プログラムlink.tarを解凍後、実行する。
プログラムのソースはlink.cである。
# tar xvf link.tar
# load
# ./link

2.次の画面が出るので、ramと入力し、シンボリックリンクを/backupから/mnt/ramに貼り替える。
You can choose from these address.'backup' or 'original' or 'ram'.
Please input the address you chose.



3.終了時に、saveコマンドでRAMディスクのデータを保存する。
そして、もう一度link.tarを実行する。
# save
# ./link

4.同じく次の画面が出るので、backupと入力し、シンボリックリンクを/mnt/ramから/backupに貼り替える。

You can choose from these address.'backup' or 'original' or 'ram'.
Please input the address you chose.




7.一部サービスの停止

プログラムservice.tarを解凍後、実行してMG3に不要なサービスを停止させる。
# tar xvf service.tar
# ./service

ソースはservice.cである。
以下に停止させるサービスの一覧を表示する。
acpid
anacron
apmd
atd
auditd
avahi-daemon
avahi-dnsconfd
bluetooth
cups
dund
firstboot
hidd
httpd
ibmasm
ip6tables
irda
irqbalance
lvm2-monitor
mcstrans
mdmonitor
mdmpd
microcode_ctl
multipathd
netconsole
netfs
nfs
nfslock
ntpd
oddjobd
pand
portmap
psacct
restorecond
rpcgssd
rpcidmapd
rpcsvcgssd
saslauthd
sendmail
setroubleshoot
syslog
vncserver
winbind
wpa_supplicant
ypbind


関連文書