
サーバー上で可能な限り最速のストレージが必要になる場合があります。場合によっては、RAMディスクを活用するのが最適な方法です。RAMディスクは、システムメモリの一部をディスクドライブとして利用します。このストレージ方式は、標準的なハードディスクストレージよりもはるかに高速であるため、特定のアプリで超高速処理が必要な場合に最適です。
もちろん、RAMディスクには重大な注意点があります。電源が落ちたり(またはマシンをシャットダウンしたり)、作業中のデータが失われる可能性があります。そのため、RAMディスク用のディレクトリを定期的にバックアップすることが重要です(これについては後ほど詳しく説明します)。
ということで、RAMディスクを作成しましょう。Ubuntu 16.04で作業しますが、ほぼすべてのディストリビューションで動作します。
RAMディスクディレクトリの作成
まず最初に、RAMディスクをマウントするためのフォルダを作成します。ここでは/media/ramdisk というフォルダを作成します。そのためには、ターミナルウィンドウを開いて次のコマンドを実行します。
sudo mkdir -p /media/ramdisk
このフォルダには好きな名前を付けて、ディレクトリ構造上の任意の場所に配置できます。私は/mediaを好みます。これは、他のドライブがデフォルトでマウントされる場所と同じだからです。
RAMディスクのマウント
ここで、新しく作成したディレクトリを一時ストレージ領域(ハードドライブではなくRAMを使用する領域)にマウントします。これは以下のコマンドで実行できます。
sudo mount -t tmpfs -o size=2048M tmpfs /media/ramdisk
サイズとマウントポイントは、ニーズに合わせて調整できます。上記の例では、一時ファイルシステムとして使用するために2GBのRAMを/media/ramdiskにマウントしました。マウントされたディレクトリは、自由に使用できます。
RAM ディスクの使用が終わったら、次のコマンドでアンマウントできます。
sudo umount /media/ramdisk
RAMディスクの自動マウント
起動時にRAMディスクを自動的に作成したい場合はどうすればよいでしょうか?これは/etc/fstabファイルを使って実現できます。このファイルを開き、以下の行を追加してください(必要に応じて編集してください)。
none /media/ramdisk tmpfs nodev,nosuid,noexec,nodiratime,size=2048M 0 0
ファイルを保存して閉じます。新しく変更した/etc/fstabファイルは、mount -aコマンドでテストできます。警告が表示されなければ、問題なく実行できます。
RAMディスクのデータをバックアップする
非永続メモリを扱うため、定期的なバックアップを設定する必要があります。以下の内容を含む非常にシンプルなbashスクリプトを作成できます。
#!/bin/bash
âcp -ru /media/ramdisk /BACKUP/PATH
/BACKUP/PATH は/media/ramdiskのバックアップを保存する場所へのパスです。ファイルを保存して閉じます(ファイル名は/root/ramdisk_backup.shとします)。chmod u+x ramdisk_backup.shコマンドで、バックアップスクリプトに実行権限を付与します。次に、crontab エントリを作成します。sudo crontab -eコマンドを実行し、以下の行を追加します。
*/15 * * * * /root/ramdisk_backup.sh
上記のcrontabエントリは、RAMディスクのデータを15分ごとにバックアップします。これで、電源が落ちたりマシンを再起動したりしても、データが失われることはありません。
賢く使いましょう
RAMディスクの使い方はあなた次第です。この非永続的なストレージは賢く使いましょう。RAMディスクに依存しすぎて、停電で貴重なデータを失ってしまうのは避けたいものです。賢く使えば、RAMディスクはデータセンターのサーバーに大きなメリットをもたらします。しかし、もし間違った使い方をしたら、どうなるかはご存じの通りです。