メモリ内 RAM ディスクの作成

Google Compute Engine インスタンスは、アプリケーションの実行に使用できる高性能なエンタープライズクラスのメモリを備えています。レイテンシが極めて低くスループットが高い RAM ディスクを作成するために、このメモリの一部を割り当てることができます。ファイル システム構造を必要とし、システムメモリに単純にデータを格納することができないアプリケーションの場合は、RAM ディスクが適しています。RAM ディスクだけではストレージの冗長性や柔軟性は提供されないので、RAM ディスクを他のインスタンス ストレージ オプションと組み合わせて使用するのが最善の方法です。

RAM ディスクはインスタンスのメモリをアプリケーションと共有します。RAM ディスクとアプリケーションに対応できる十分なメモリがインスタンスにない場合は、ハイメモリ マシンタイプでインスタンスを作成するか、既存のインスタンスをアップグレードしてメモリを追加してください。

始める前に

RAM ディスクの作成

RAM ディスクは、tmpfs ツールで作成できます。このツールは、多くの Linux オペレーティング システムにおいてデフォルトでインストールされています。

  1. インスタンスに使用可能なメモリが十分にない場合は、必要に応じて、メモリ量の多いマシンタイプにインスタンスのマシンタイプを変更できます。

  2. SSH を使用してインスタンスに接続します。この例の場合は、[VM インスタンス] ページに移動し、RAM ディスクを追加するインスタンスの隣の [SSH] ボタンをクリックします。

  3. RAM ディスクのマウント ポイントを作成します。

    $ sudo mkdir /mnt/ram-disk
    

  4. 新しい tmpfs RAM ディスクを作成してマウントします。アプリケーションとシステムメモリが競合したり、使用可能なすべてのメモリを消費したりすることなく、ストレージ要件を満たすように、size プロパティの値を決定する必要があります。この例では、インスタンスのマシンタイプは n1-highmem-32 でメモリは 208 GB なので、RAM ディスクのサイズとしては 50g が適切です。

    $ sudo mount -t tmpfs -o size=50g tmpfs /mnt/ram-disk
    

  5. 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 ディスクのデータを保持できます。データを永続ディスクにバックアップして保持します。

  1. RAM ディスクのバックアップ ディスクとして使用する永続ディスクを作成してマウントします。永続ディスクが RAM ディスクの情報を格納するのに十分な大きさであることを確認します。

  2. rsync コマンドでインスタンスのシャットダウン スクリプトを作成します。このスクリプトで、RAM ディスクの内容をバックアップ ボリュームに書き込みます。この例では、gcloud ツールを使用して、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"
    
  3. 必要に応じて、インスタンスが再び起動したときにファイルを RAM ディスクに復元するスタートアップ スクリプトを作成することもできます。gcloud ツールを使用して 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"
    
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Compute Engine ドキュメント