3.4. インスタンスにファイルベースのメモリーを使用するコンピュートノードの設定

ファイルベースのメモリーを使用して、コンピュートノードのメモリー容量を拡張することができます。この場合、libvirt メモリーバッキングディレクトリー内のファイルをインスタンスのメモリーとして割り当てます。インスタンスのメモリーとして使用できるホストディスクの容量、およびインスタンスメモリーファイルのディスク上の場所を設定することができます。

Compute サービスは、ファイルベースのメモリーに設定された容量をシステムメモリーの合計容量として Placement サービスに報告します。これにより、コンピュートノードは通常システムメモリー内で対応できるよりも多くのインスタンスをホストすることができます。

インスタンスにファイルベースのメモリーを使用するには、コンピュートノードでファイルベースのメモリーを有効にする必要があります。

制限

  • ファイルベースのメモリーが有効なコンピュートノードとファイルベースのメモリーが有効ではないコンピュートノード間で、インスタンスのライブマイグレーションを行うことはできません。
  • ファイルベースのメモリーとヒュージページとの間に互換性はありません。ファイルベースのメモリーが有効なコンピュートノード上で、ヒュージページを使用するインスタンスを起動することはできません。ホストアグリゲートを使用して、ヒュージページを使用するインスタンスがファイルベースのメモリーが有効なコンピュートノードに配置されないようにします。
  • ファイルベースのメモリーとメモリーのオーバーコミットとの間に互換性はありません。
  • NovaReservedHostMemory を使用してホストのプロセス用にメモリーを確保することはできません。ファイルベースのメモリーが使用されている場合、確保されるメモリーはファイルベースのメモリー用に用意されないディスク領域を表します。ファイルベースのメモリーは、キャッシュメモリーとして使用される RAM と共に、システムメモリーの合計として Placement サービスに報告されます。

前提条件

  • ノードおよびノードが追加されたすべてのホストアグリゲートで、NovaRAMAllocationRatio を 1.0 に設定する必要があります。
  • NovaReservedHostMemory を 0 に設定する必要があります。

手順

  1. Compute 環境ファイルを開きます。
  2. Compute 環境ファイルに以下のパラメーターを追加して、インスタンスの RAM 用に利用可能なホストディスク容量を MiB 単位で設定します。

    parameter_defaults:
      NovaLibvirtFileBackedMemory: 102400
  3. オプション: メモリーバッキングファイルを保存するディレクトリーを設定するには、Compute 環境ファイルに QemuMemoryBackingDir パラメーターを設定します。設定しなければ、メモリーバッキングディレクトリーはデフォルトの /var/lib/libvirt/qemu/ram/ に設定されます。

    注記

    デフォルトのディレクトリー (/var/lib/libvirt/qemu/ram/) またはそれより上の階層のディレクトリーに、バッキングストアを配置する必要があります。

    バッキングストアのホストディスクを変更することもできます。詳細は、Changing the memory backing directory host disk を参照してください。

  4. 更新内容を Compute 環境ファイルに保存します。
  5. その他の環境ファイルと共に Compute 環境ファイルをスタックに追加して、オーバークラウドをデプロイします。

    (undercloud)$ openstack overcloud deploy --templates \
      -e [your environment files] \
      -e /home/stack/templates/<compute_environment_file>.yaml

3.4.1. メモリーバッキングディレクトリーのホストディスクの変更

デフォルトのプライマリーディスクから別のディスクに、メモリーバッキングディレクトリーを変更することができます。

手順

  1. 代替のバッキングデバイスにファイルシステムを作成します。たとえば、/dev/sdbext4 ファイルシステムを作成するには、以下のコマンドを入力します。

    # mkfs.ext4 /dev/sdb
  2. バッキングデバイスをマウントします。たとえば、/dev/sdb をデフォルトの libvirt メモリーバッキングディレクトリーにマウントするには、以下のコマンドを入力します。

    # mount /dev/sdb /var/lib/libvirt/qemu/ram
    注記

    マウントポイントは、QemuMemoryBackingDir パラメーターの値と一致する必要があります。