Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
Google Cloud Backup Guide
OpenStack Block 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 サービスを設定するには、以下の手順が必要です。
- Google アカウントのサービスアカウント認証情報の作成およびダウンロード(3章GCS 認証情報ファイルの作成とダウンロード)
- 必要な Block Storage 設定をマッピングする環境ファイルの作成(4章環境ファイルの作成)この環境ファイルは、直前の手順で作成したサービスアカウントの認証情報も使用します。
- 作成した環境ファイル(5章オーバークラウドをデプロイします。)を使用してオーバークラウドを再デプロイします。
以下のセクションでは、各ステップについて詳しく説明します。
第3章 GCS 認証情報ファイルの作成とダウンロード
バックアップに Google Cloud にアクセスし、使用するには、Block Storage サービスには Google 認証情報が必要です。サービスアカウントキー を作成して、これらの認証情報を Block Storage に提供することができます。
- Google アカウントで Google デベロッパーコンソール (http://console.developers.google.com) にログインします。
Credentials
タブをクリックします。そこから、Create credentials
ドロップダウンメニューからService account key
を選択します。次の画面(
サービスアカウントキーの作成
)で、Block Storage サービスがService account
ドロップダウンメニューから使用するサービスアカウントを選択します。同じ画面で、
Key
の種類のセクションからJSON
を選択し、作成
をクリックします。次に、ブラウザーはキーをデフォルトのダウンロード場所にダウンロードします。
ファイルを開き、
project_id
パラメーターの値を書き留めておきます。{ "type": "service_account", "project_id": "cloud-backup-1370", ...
/etc/cinder/Cloud-Backup.json キーは、4章環境ファイルの作成 で後ほど使用されます(特に
project_id
の値とファイルへの絶対パス)。鍵ファイルを任意のコントローラーノードの /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
各コントローラーノードの同じ場所にキーファイルをコピーします(つまり、/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
本書では、すべてのパラメーターは DEFAULT
セクションで宣言されています。以下の表は、Google Cloud Storage (GCS)をバックアップサービスとして設定するために必要な各設定について説明しています。
- Google Cloud のバックアップ設定
PARAM | デフォルト | CONFIGの内容 |
backup_driver | cinder.backup.drivers.swift |
Block Storage サーバーが使用するバックアップドライバー。Google Cloud Storage の場合は、 |
backup_gcs_credential_file | 3章GCS 認証情報ファイルの作成とダウンロード で作成したサービスアカウントキーファイルへの絶対パス。 | |
backup_gcs_bucket | 使用する GCS バケット(またはオブジェクトストレージリポジトリー)。これは、存在する場合とない場合があります。存在しないバケットを指定すると、Google Cloud Storage バックアップドライバーは、ここで指定した名前を使用してこれを作成します。詳細は バケット および バケット名の要件 を参照してください。 | |
backup_gcs_bucket_location | US |
GCS バケットの場所。この値は、 詳細は、バケットの場所 を参照してください。 |
backup_gcs_project_id |
3章GCS 認証情報ファイルの作成とダウンロード のサービスアカウントキーの | |
backup_gcs_object_size | 52428800 | GCS バックアップオブジェクトのサイズ (バイト単位)。 |
backup_gcs_block_size | 32768 |
増分バックアップで変更が追跡されるサイズ (バイト単位)。この値は、 |
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_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 のインストールと使用方法 のガイドを参照してください。