16.2. データベースのクリーニング

Compute サービスには管理ツール nova-manage が含まれています。このツールを使用して、データベーススキーマの適用、アップグレード中のオンラインデータ移行の実行、データベースの管理およびクリーンアップ等の、デプロイメント、アップグレード、クリーンアップ、およびメンテナンス関連のタスクを実行することができます。

director は、cron を使用してオーバークラウドでの以下のデータベース管理タスクを自動化します。

  • 削除された行を実稼働テーブルからシャドウテーブルに移動して、削除されたインスタンスレコードをアーカイブする。
  • アーカイブ処理が完了した後に、シャドウテーブルから削除された行をパージする。

16.2.1. データベース管理の設定

cron ジョブは、デフォルト設定を使用してデータベース管理タスクを実行します。デフォルトでは、データベースをアーカイブする cron ジョブは毎日 00:01 に実行され、データベースをパージする cron ジョブは 毎日 05:00 に実行されます。共にジッターは 0 秒から 3600 秒の間です。必要に応じて、これらの設定は heat パラメーターを使用して変更することができます。

手順

  1. Compute 環境ファイルを開きます。
  2. 追加または変更する cron ジョブを制御する heat パラメーターを追加します。たとえば、シャドウテーブルをアーカイブ直後にパージするには、次のパラメーターを True に設定します。

    parameter_defaults:
      ...
      NovaCronArchiveDeleteRowsPurge: True

    データベースの cron ジョブを管理する heat パラメーターの完全リストは、Configuration options for the Compute service automated database management を参照してください。

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

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

16.2.2. Compute サービスのデータベース自動管理用設定オプション

以下の heat パラメーターを使用して、データベースを管理する自動 cron ジョブを有効化および変更します。

表16.1 Compute (nova) サービスの cron パラメーター

パラメーター説明

NovaCronArchiveDeleteAllCells

すべてのセルから削除されたインスタンスレコードをアーカイブするには、このパラメーターを True に設定します。

デフォルト: True

NovaCronArchiveDeleteRowsAge

このパラメーターを使用して、削除されたインスタンスレコードを経過時間 (日数単位) に基づいてアーカイブします。

シャドウテーブル内の本日以前のデータをアーカイブするには、0 に設定します。

デフォルト: 90

NovaCronArchiveDeleteRowsDestination

このパラメーターを使用して、削除されたインスタンスレコードを記録するファイルを設定します。

デフォルト: /var/log/nova/nova-rowsflush.log

NovaCronArchiveDeleteRowsHour

このパラメーターを使用して、削除されたインスタンスレコードを別のテーブルに移動する cron コマンドを実行する時刻の時間部分を設定します。

デフォルト: 0

NovaCronArchiveDeleteRowsMaxDelay

このパラメーターを使用して、削除されたインスタンスレコードを別のテーブルに移動するまでの最大遅延時間 (秒単位) を設定します。

デフォルト: 3600

NovaCronArchiveDeleteRowsMaxRows

このパラメーターを使用して、別のテーブルに移動することのできる削除インスタンスレコード数の最大値を設定します。

デフォルト: 1000

NovaCronArchiveDeleteRowsMinute

このパラメーターを使用して、削除されたインスタンスレコードを別のテーブルに移動する cron コマンドを実行する時刻の分部分を設定します。

デフォルト: 1

NovaCronArchiveDeleteRowsMonthday

このパラメーターを使用して、削除されたインスタンスレコードを別のテーブルに移動する cron コマンドを実行する日にちを設定します。

デフォルト: * (毎日)

NovaCronArchiveDeleteRowsMonth

このパラメーターを使用して、削除されたインスタンスレコードを別のテーブルに移動する cron コマンドを実行する月を設定します。

デフォルト: * (毎月)

NovaCronArchiveDeleteRowsPurge

スケジュールされたアーカイブ処理の直後にシャドウテーブルをパージするには、このパラメーターを True に設定します。

デフォルト: False

NovaCronArchiveDeleteRowsUntilComplete

すべてのレコードを移動するまで削除されたインスタンスレコードを別のテーブルに移動し続けるには、このパラメーターを True に設定します。

デフォルト: True

NovaCronArchiveDeleteRowsUser

このパラメーターを使用して、削除されたインスタンスレコードをアーカイブする crontab の所有権を持ち、crontab が使用するログファイルにアクセスできるユーザーを設定します。

デフォルト: nova

NovaCronArchiveDeleteRowsWeekday

このパラメーターを使用して、削除されたインスタンスレコードを別のテーブルに移動する cron コマンドを実行する曜日を設定します。

デフォルト: * (毎日)

NovaCronPurgeShadowTablesAge

このパラメーターを使用して、シャドウテーブルを経過時間 (日数単位) に基づいてパージします。

本日以前のシャドウテーブルをパージするには、0 に設定します。

デフォルト: 14

NovaCronPurgeShadowTablesAllCells

すべてのセルからシャドウテーブルをパージするには、このパラメーターを True に設定します。

デフォルト: True

NovaCronPurgeShadowTablesDestination

このパラメーターを使用して、パージされたシャドウテーブルを記録するファイルを設定します。

デフォルト: /var/log/nova/nova-rowspurge.log

NovaCronPurgeShadowTablesHour

このパラメーターを使用して、シャドウテーブルをパージする cron コマンドを実行する時刻の時間部分を設定します。

デフォルト: 5

NovaCronPurgeShadowTablesMaxDelay

このパラメーターを使用して、シャドウテーブルをパージするまでの最大遅延時間 (秒単位) を設定します。

デフォルト: 3600

NovaCronPurgeShadowTablesMinute

このパラメーターを使用して、シャドウテーブルをパージする cron コマンドを実行する時刻の分部分を設定します。

デフォルト: 0

NovaCronPurgeShadowTablesMonth

このパラメーターを使用して、シャドウテーブルをパージする cron コマンドを実行する月を設定します。

デフォルト: * (毎月)

NovaCronPurgeShadowTablesMonthday

このパラメーターを使用して、シャドウテーブルをパージする cron コマンドを実行する日にちを設定します。

デフォルト: * (毎日)

NovaCronPurgeShadowTablesUser

このパラメーターを使用して、シャドウテーブルをパージする crontab の所有権を持ち、crontab が使用するログファイルにアクセスできるユーザーを設定します。

デフォルト: nova

NovaCronPurgeShadowTablesVerbose

このパラメーターを使用して、パージされたシャドウテーブルに関するログファイルの詳細ロギングを有効にします。

デフォルト: False

NovaCronPurgeShadowTablesWeekday

このパラメーターを使用して、シャドウテーブルをパージする cron コマンドを実行する曜日を設定します。

デフォルト: * (毎日)