Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

Google Cloud Backup Guide

Red Hat OpenStack Platform 13

OpenStack Block Storage のバックアップを Google Cloud Storage を使用するように設定する

概要

本書では、OpenStack Block Storage Backup サービスをデプロイして、Google Cloud Storage をバックエンドとして使用する方法について説明します。ここで説明する手順は、オーバークラウドのデプロイメントに固有のものです。
Google Cloud Storage とのバックアップ統合は、本リリースではテクノロジープレビューとして提供されており、実稼働環境にデプロイすべきではありません。テクノロジープレビューについての詳細は、以下を参照してください。

はじめに

第1章 はじめに

Red Hat OpenStack Platform director は、完全な OpenStack 環境のインストールおよび管理を行うためのツールセットです。主に OpenStack プロジェクト TripleO (OpenStack-on-OpenStack)をベースにしています。director の主な目的は、最小限の手動設定で機能するエンタープライズレベルの OpenStack デプロイメントを完全にオーケストレーションすることです。これは、個別の OpenStack コンポーネントを手動で設定することに固有の問題の多くに対応するのに役立ちます。

director により提供される OpenStack のエンドツーエンドのデプロイメントは、オーバークラウド と呼ばれ ます。オーバークラウドには、Block Storage など、エンドユーザーにサービスを提供するすべてのコンポーネントが含まれます。本ガイドでは、カスタムのバックエンドをオーバークラウドの Block Storage サービスにデプロイする方法についてのガイダンスを提供します。

Red Hat OpenStack Platform は、ブロックストレージのバックエンドからデータ処理まで、さまざまなサードパーティーのサービス、デバイス、およびアプリケーションをサポートしています。本リリースでは、Google Cloud をバックアップストレージサービスとして使用するように Block Storage サービスを設定できるようになりました。この Google Cloud 統合は、本リリースでは テクノロジープレビュー として提供されています。

重要

テクノロジープレビュー 機能は、Red Hat では全面的にはサポートしていません。本書で説明されているデプロイメントシナリオは、テストにのみ使用してください。実稼働環境にはデプロイしないでください。

テクノロジープレビュー機能についての詳しい情報は、対象範囲の詳細 を参照してください。

本書では、オーバークラウドのデプロイメントの Block Storage サービスが、ボリュームを Google Cloud ストレージにバックアップするように設定されたテストシナリオを説明します。このテストシナリオでは、以下が必要です。

  • Director Installation and Usage に記載の手順に従って、director を使用してオーバークラウドがすでにデプロイされている。
  • 昇格した特権を持つアカウントのユーザー名およびパスワードを所有している。オーバークラウドのデプロイに使用したのと同じアカウントを使用することができます。director のインストールと 使用方法 で、この目的のために stack という名前のユーザーが作成されます。
  • Block Storage サービスは、コントローラーノードにインストールされます。または、全コントローラーノードに HA デプロイメントの場合と同様です。
  • Google Cloud Platform にアクセスできる Google アカウントがある。このアカウントは、バックアップの保存に Google Cloud にアクセスし、使用するために Block Storage サービスによって使用されます。

第2章 プロセスの説明

Google Cloud をバックアップサービスとして使用するように Block Storage サービスを設定するには、以下の手順が必要です。

  1. Google アカウントのサービスアカウント認証情報の作成およびダウンロード(3章GCS 認証情報ファイルの作成とダウンロード)
  2. 必要な Block Storage 設定をマッピングする環境ファイルの作成(4章環境ファイルの作成)この環境ファイルは、直前の手順で作成したサービスアカウントの認証情報も使用します。
  3. 作成した環境ファイル(5章オーバークラウドをデプロイします。)を使用してオーバークラウドを再デプロイします。

以下のセクションでは、各ステップについて詳しく説明します。

第3章 GCS 認証情報ファイルの作成とダウンロード

バックアップに Google Cloud にアクセスし、使用するには、Block Storage サービスには Google 認証情報が必要です。サービスアカウントキー を作成して、これらの認証情報を Block Storage に提供することができます。

  1. Google アカウントで Google デベロッパーコンソール (http://console.developers.google.com) にログインします。
  2. Credentials タブをクリックします。そこから、Create credentials ドロップダウンメニューから Service account key を選択します。

    creds create

  3. 次の画面(サービスアカウントキーの作成)で、Block Storage サービスが Service account ドロップダウンメニューから使用するサービスアカウントを選択します。

    creds json compengine

  4. 同じ画面で、Keyの種類のセクションから JSON を選択し、作成 をクリックします。

    次に、ブラウザーはキーをデフォルトのダウンロード場所にダウンロードします。

    creds key

  5. ファイルを開き、project_id パラメーターの値を書き留めておきます。

    {
      "type": "service_account",
      "project_id": "cloud-backup-1370",
    ...

    /etc/cinder/Cloud-Backup.json キーは、4章環境ファイルの作成 で後ほど使用されます(特に project_id の値とファイルへの絶対パス)。

  6. 鍵ファイルを任意のコントローラーノードの /etc/cinder/ にコピーします。そこから、/etc/cinder/cinder.conf のキーファイルのユーザー、グループ、およびパーミッションを変更します。これにより、Block Storage サービスがこれを使用できるようにします。

    # cp Cloud-Backup.json /etc/cinder/
    # chown cinder:cinder /etc/cinder/Cloud-Backup.json
    # chmod 0600 /etc/cinder/Cloud-Backup.json
  7. 各コントローラーノードの同じ場所にキーファイルをコピーします(つまり、/etc/cinder/Cloud-Backup.json)。rsync -a を使用して、パーミッションと所有権の設定が保持されるようにします。

    # rsync -a /etc/cinder/Cloud-Backup.json root@CONTROLLERHOST:/etc/cinder/

    CONTROLLERHOST をターゲットコントローラーのホスト名に置き換えます。

第4章 環境ファイルの作成

環境ファイルには、Block Storage サービスに適用する設定が含まれます。この場合、Block Storage サービスは、ボリュームのバックアップを Google Cloud に保管するように設定されます。環境ファイルの詳細は、Director のインストールと使用 ガイドを参照してください。

各設定は、以下のように環境ファイルで定義されます。

エントリーの形式

SECT/PARAM: # 1
    value: CONFIG # 2

1
Block Storage のすべての設定は、Block Storage サービスをホストするノードの /etc/cinder/cinder.conf ファイルで設定されます。このファイルは異なるセクションに分割されるため、異なる設定の管理が容易になります。PARAM は適用する設定で、SECT それが属するセクションです。
2
CONFIG は、PARAM に設定する値です。

本書では、すべてのパラメーターは DEFAULT セクションで宣言されています。以下の表は、Google Cloud Storage (GCS)をバックアップサービスとして設定するために必要な各設定について説明しています。

  1. Google Cloud のバックアップ設定

PARAM

デフォルト

CONFIGの内容

backup_driver

cinder.backup.drivers.swift

Block Storage サーバーが使用するバックアップドライバー。Google Cloud Storage の場合は、cinder.backup.drivers.google を使用します。

backup_gcs_credential_file

 

3章GCS 認証情報ファイルの作成とダウンロード で作成したサービスアカウントキーファイルへの絶対パス。

backup_gcs_bucket

 

使用する GCS バケット(またはオブジェクトストレージリポジトリー)。これは、存在する場合とない場合があります。存在しないバケットを指定すると、Google Cloud Storage バックアップドライバーは、ここで指定した名前を使用してこれを作成します。詳細は バケット および バケット名の要件 を参照してください。

backup_gcs_bucket_location

US

GCS バケットの場所。この値は、backup_gcs_bucket に存在しないバケットを指定する場合にのみ使用されます。この場合は、Google Cloud Storage バックアップドライバーが、これを GCS バケットの場所として指定します。

詳細は、バケットの場所 を参照してください。

backup_gcs_project_id

 

3章GCS 認証情報ファイルの作成とダウンロード のサービスアカウントキーの project_id に記載されているように、使用しているサービスアカウントのプロジェクト ID。

backup_gcs_object_size

52428800

GCS バックアップオブジェクトのサイズ (バイト単位)。

backup_gcs_block_size

32768

増分バックアップで変更が追跡されるサイズ (バイト単位)。この値は、backup_gcs_object_size 値の倍数にする必要があります。

backup_gcs_user_agent

gcscinder

GCS API の HTTP ユーザーエージェント文字列。

backup_gcs_reader_chunk_size

2097152

GCS オブジェクトは、このサイズのチャンク(バイト単位)でダウンロードされます。

backup_gcs_writer_chunk_size

2097152

GCS オブジェクトは、このサイズのチャンク(バイト単位)でアップロードされます。代わりにファイルを 1 つのチャンクとしてアップロードするには、値 -1 を使用します。

backup_gcs_num_retries

3

再試行の回数。

backup_gcs_storage_class

NEARLINE

GCS バケットのストレージクラス。この値は、backup_gcs_bucket に存在しないバケットを指定する場合にのみ使用されます。この場合、Google Cloud Storage バックアップドライバーは、これを GCS バケットストレージクラスとして指定します。詳細は 、ストレージクラス を参照してください。

backup_gcs_retry_error_codes

429

GCS エラーコードの一覧

backup_gcs_enable_progress_timer

True

ボリュームのバックアップ中に Telemetry サービス (ceilometer) に定期的な進捗通知を送信するタイマーを有効または無効にするブール値。これはデフォルトで有効になっています (True)。

警告

新規バケットの作成時に、選択したストレージクラス(backup_gcs_storage_class)に基づいて Google Cloud Storage 課金を行います。省略時の NEARLINE クラスは、バックアップサービスに適しています。

さらに、バケットの作成後にバケットの場所またはクラスを編集することはできません。詳細は バケットのストレージクラスまたは場所の管理 を参照してください。

以下の例は、GCS をバックアップサービスとして設定するための環境ファイルの一般的なコンテンツを示しています。

/home/stack/templates/gcs-backup.yaml

parameter_defaults:
  ControllerExtraConfig: # 1
    cinder::config::cinder_config:
        DEFAULT/backup_driver
            value: cinder.backup.drivers.google
        DEFAULT/backup_gcs_credential_file
            value: /etc/cinder/Cloud-Backup.json
        DEFAULT/backup_gcs_bucket
            value: mycinderbucket
        DEFAULT/backup_gcs_project_id
            value: cloud-backup-1370
        DEFAULT/backup_gcs_user_agent
            value: myuseragent

1
ControllerExtraConfig は、全コントローラーノードに適用されるカスタム設定を定義します。cinder::config::cinder_config クラスは、設定を Block Storage(cinder) サービスに適用する必要があることを意味します。これは、バックエンド設定が各コントローラーノードの /etc/cinder/cinder.conf ファイルで最終的に終了することを意味します。

環境ファイルを作成したら、オーバークラウドへの設定のデプロイ手順については、5章オーバークラウドをデプロイします。 を参照してください。

第5章 オーバークラウドをデプロイします。

/home/stack/templates/ に環境ファイルを作成したら、stack ユーザーとしてログインします。以下のコマンドを実行して設定をデプロイします。

$ openstack overcloud deploy --templates -e /home/stack/templates/gcs-backup.yaml
重要

オーバークラウドの作成時に追加の環境ファイルを渡した場合は、-e オプションを使用して再度渡します。これにより、オーバークラウドに望ましくない変更を防ぎます。

詳細については、以下の Director のインストールと使用方法 のガイドを参照してください。