同時実行の数が多いかボリュームが大きい場合、デフォルトの VMware Integrated OpenStack 構成は Cinder のバックアップ処理に対して不十分なことがあります。

問題

Cinder のバックアップ処理の同時実行数、または Cinder ボリュームのサイズを増やすと、操作が失敗してログに GetResourceFailure エラーが記録されることがあります。

解決方法

  1. 制御プレーンと Cinder バックアップ ポッド数をスケール アウトします。
    Cinder バックアップ ポッドは、各コントローラ ノードに 1 つのみ含めることができます。
    1. デプロイ内のコントローラ ノードの数を増やします。
      Add Controller Nodes to Your Deploymentを参照してください。
    2. デプロイ内の Cinder バックアップ ポッドの数を増やします。
      OpenStack サービスのスケーリングを参照してください。
  2. Integrated OpenStack Managerroot ユーザーとしてログインします。
    ssh root@mgmt-server-ip
  3. Cinder の RPC 応答タイムアウトとエクゼキュータ スレッド プールのサイズを更新します。
    1. Cinder の構成を変更します。
      viocli update cinder
    2. DEFAULT セクションで、rpc_response_timeout パラメータを追加し、値として 6000 を設定します。
    3. executor_thread_pool_size パラメータを追加し、値として 640 を設定します。
      構成ファイルは次のようになります。
      conf:
        backends:
          [...]
        cinder:
          DEFAULT:
            [...]
            rpc_response_timeout: 6000
            executor_thread_pool_size: 640
  4. データベースのタイムアウト パラメータと最大接続パラメータを更新します。
    1. MariaDB の構成を変更します。
      viocli update mariadb
    2. conf セクションで、connect_timeout パラメータを追加し、値として 5 を設定します。
    3. max_connections パラメータを追加し、値として 5000 を設定します。
    4. net_read_timeout パラメータを追加し、値として 1200 を設定します。
    5. net_write_timeout パラメータを追加し、値として 1200 を設定します。
    6. conf セクションに ingress セクションを追加します。
    7. ingress セクションで、proxy-read-timeout パラメータを追加し、値として 1200 を設定します。
    8. proxy-send-timeout パラメータを追加し、値として 1200 を設定します。
    9. proxy-stream-timeout パラメータを追加し、値として 3600s を設定します。
      構成ファイルは次のようになります。
      conf:
        connect_timeout: 5
        max_connections: 5000
        net_read_timeout: 1200
        net_write_timeout: 1200
        ingress:
          proxy-read-timeout: 1200
          proxy-send-timeout: 1200
          proxy-stream-timeout: 3600s
  5. Nova のプール サイズと割り当て率を更新します。
    1. Nova の構成を変更します。
      viocli update nova
    2. nova セクションに DEFAULT セクションを追加します。
    3. DEFAULT セクションで、cpu_allocation_ratio パラメータを追加し、値として 30 を設定します。
    4. executor_thread_pool_size パラメータを追加し、値として 640 を設定します。
    5. ram_allocation_ratio パラメータを追加し、値として 6 を設定します。
    6. nova セクションに database セクションを追加します。
    7. database セクションで、max_pool_size パラメータを追加し、値として 50 を設定します。
    構成ファイルは次のようになります。
    conf:
      nova:
        DEFAULT:
          cpu_allocation_ratio: 30
          executor_thread_pool_size: 640
          ram_allocation_ratio: 6
        database:
          max_pool_size: 50
  6. トークンの有効期限と、Keystone の Web Server Gateway Interface (WSGI) パラメータを更新します。
    1. Keystone の構成を変更します。
      viocli update keystone
    2. conf セクションに keystone セクションを追加します。
    3. keystone セクションで、wsgi_processes パラメータを追加し、値として 8 を設定します。
    4. wsgi_threads パラメータを追加し、値として 15 を設定します。
    5. keystone セクションに token セクションを追加します。
    6. token セクションで、expiration パラメータを追加し、値として 28800 を設定します。
      構成ファイルは次のようになります。
      conf:
        keystone:
          wsgi_processes: 8
          wsgi_threads: 15
            token:
              expiration: 28800