Compute Engine インスタンスは、アプリケーションの実行に使用できる高性能なエンタープライズクラスのメモリを備えています。このメモリの一部を、レイテンシが極めて低くスループットが高い RAM ディスクを作成するために割り当てることができます。ファイル システム構造を必要とし、システムメモリに単純にデータを格納することができないアプリケーションの場合は、RAM ディスクが適しています。RAM ディスクだけではストレージの冗長性や柔軟性は提供されないので、RAM ディスクを他のインスタンス ストレージ オプションと組み合わせて使用するのが最善の方法です。
RAM ディスクはインスタンスのメモリをアプリケーションと共有します。インスタンスのメモリが RAM ディスクとアプリケーションを格納するのに十分でない場合は、highmem
マシンタイプ(N2 など)でインスタンスを作成するか、既存のインスタンスをアップグレードしてメモリを追加してください。
始める前に
- RAM ディスクと他の Compute Engine ストレージ オプションの違いを確認してください。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
RAM ディスクの作成
RAM ディスクは、tmpfs
ファイル システムで作成できます。このファイル システムは、ほとんどの Linux ディストリビューションにデフォルトで含まれています。
インスタンスに使用可能なメモリが十分にない場合は、必要に応じて、メモリ量の多いマシンタイプにインスタンスのマシンタイプを変更できます。
SSH 経由でインスタンスに接続します。この例では、[VM インスタンス] ページに移動し、RAM ディスクを追加するインスタンスの隣の [SSH] ボタンをクリックします。
RAM ディスクのマウント ポイントを作成します。
$ sudo mkdir /mnt/ram-disk
新しい
tmpfs
RAM ディスクを作成してマウントします。アプリケーションとシステムメモリの競合を回避し、使用可能なすべてのメモリが消費されないようにしつつ、ストレージ要件を満たす値をsize
プロパティに設定する必要があります。この例では、インスタンスのマシンタイプがn1-highmem-32
でメモリは 208 GB なので、RAM ディスクのサイズとしては50g
が適切です。$ sudo mount -t tmpfs -o size=50g tmpfs /mnt/ram-disk
RAM ディスクを
/etc/fstab
ファイルに追加し、インスタンスを再起動した場合にデバイスが自動的に再びマウントされるようにします。$ echo 'tmpfs /mnt/ram-disk tmpfs nodev,nosuid,noexec,nodiratime,size=50G 0 0' | sudo tee -a /etc/fstab
RAM ディスクの削除
tmpfs
RAM ディスクは他のボリュームと同じようにマウント解除できます。マウントを解除すると、RAM ディスクと、そこに格納されているすべてのデータが削除されます。この例では、/mnt/ram-disk
にマウントされている RAM ディスクを削除します。
$ sudo umount /mnt/ram-disk
インスタンスの再起動の間に RAM ディスクのデータを自動的にバックアップする
インスタンスが再起動する前に RAM ディスクをバックアップすることにより、インスタンスが再び起動するまで RAM ディスクのデータを保持できます。データを永続ディスクにバックアップして保持する方法は以下のとおりです。
RAM ディスクのバックアップ ディスクとして使用する永続ディスクを作成してマウントします。永続ディスクが RAM ディスクの情報を格納するのに十分な大きさであることを確認します。
rsync
コマンドを使用してインスタンスのシャットダウン スクリプトを作成します。このスクリプトは、RAM ディスクの内容をバックアップ ボリュームに書き込みます。この例では gcloud CLI を使用して、RAM ディスクが/mnt/ram-disk
にマウントされ、永続ディスクが/mnt/ram-disk-backup
にマウントされているインスタンスにshutdown-script
メタデータを追加します。gcloud compute instances add-metadata example-instance --metadata shutdown-script="#! /bin/bash rsync -a --delete --recursive --force /mnt/ram-disk/ /mnt/ram-disk-backup/ EOF"
必要に応じて、インスタンスが再開したときにファイルを RAM ディスクに復元するスタートアップ スクリプトを作成することもできます。gcloud CLI を使用して
startup-script
メタデータをインスタンスに追加します。gcloud compute instances add-metadata example-instance --metadata startup-script="#! /bin/bash rsync -a --recursive --force /mnt/ram-disk-backup/ /mnt/ram-disk/ EOF"