OpenShiftのバックアップ手法 ~IBM Spectrum Protect Plusのコンテナ・バックアップ

本稿では、OpenShift Container Platform(以下、OCP)環境のバックアップについて、前回掲載した「OpenShiftでの最適なバックアップ手法」ではあまり触れなかったクラスターリソースをメインに整理し、バックアップ・ソリューションとなる「IBM Spectrum Protect Plus」(以下、SPP)のコンテナ・バックアップの機能拡張内容とその使用に関する考慮点を解説する。

IBM Spectrum Protect Plusによる
コンテナ・バックアップの機能拡張

OCP環境のバックアップについて、前回の記事では、Masterノードが持つクラスターの管理情報(etcd)とコンテナのデータのバックアップが重要であることを説明し、コンテナのデータバックアップ方法について詳細に検討した。

検討内容を簡単にまとめると、バックアップが必要なコンテナのデータは、コンテナを停止しても失われない領域であるPersistent Volume(PV)に配置することが前提となり、PV上のデータをバックアップする方法はストレージやバックアップ・ソフトウェアによって異なっていた。

しかし、OCP 4.7でコンテナ環境のストレージ・インターフェースの標準規格であるContainer Storage Interface(CSI)のボリューム・スナップショット機能がTechnical PreviewからGenerally Available(一般利用可能)になり、CSIをサポートするバックアップ・ソフトウェアが増加していることから、今後はCSIボリューム・スナップショット機能を使用する事例が増えると予想される。

OCP環境のバックアップとして、コンテナのデータと同様に重要になるのがetcdのデータである。

etcdには、クラスターリソースと呼ばれるNodeやPod、StorageClassなどコンテナを実行・管理するために必要なメタデータが含まれる。

etcd全体のバックアップ機能はOCPが標準で提供している。そのため全体障害などでetcdが失われた場合に、リカバリーするためのバックアップとして別の方法を検討する必要はない。

しかし、たとえばオペレーションミスなどで特定のコンテナの状態だけをリカバリーしたい場合には、etcdに含まれる一部のデータだけをリカバリーする必要がある。標準のバックアップ機能でこれに対応するのは難しい。

OCP環境はImmutable Infrastructureという考え方で管理を実行し、アプリケーション(=コンテナ・イメージ)に対してバージョンアップやパッチ適用などは行わない。 

そのため特定のコンテナの状態をリカバリーしたい場合には、コンテナを再デプロイする方法も考えられるが、それにはOCP環境で稼働するすべてのコンテナについて、それぞれ再デプロイの運用手順を用意する必要があり、運用として煩雑化することが予想される。

よってOCP環境の実際の運用を考え、より細かいリストア要件に対応するには、標準のetcd全体のバックアップ機能だけでなく、要件に合わせたクラスターリソースをバックアップするための機能が必要となる。

SPPでは、V10.1.7からVeleroと連携したクラスターリソースのバックアップが可能になった。

VeleroはKubernetesの開発者が創業したHeptio社のバックアップツールで、現在はVMware社のオープンソース・プロジェクトになっている。SPPでクラスターリソースをバックアップする際には、Veleroとの連携部分はSPPが管理するため、ユーザーがVeleroを直接操作する必要はない(図表1)。

図表1  Veleroと連携したクラスターリソースのバックアップ

OCP環境では、OpenShift APIs for Data Protection(以下、OADP)として、VeleroにOpenShiftのリソースを扱うプラグインなどを追加したAPIを提供しているので、OADPのオペレーターを利用して比較的容易にVeleroをインストールできる。

SPPはVeleroと連携することで、ネームスペース(*1)やリソースについたアプリケーションごとのラベルを指定したリソースのバックアップが可能となり、アプリケーションごとに保管日数や頻度といったバックアップ要件が異なる場合にも、適切なバックアップを取得できる。

*1 ネームスペースとは、Kubernetesクラスター内で分離してユーザーが利用できる仮想空間。

また、リストアの際にもバックアップしたネームスペースとは別のネームスペースにリソースをリストアできるので、アプリケーションをテスト用に複製するといった使い方も可能である。

SPPの具体的な利用方法
インストールやバックアップ・リストア

ここからはSPPの具体的なインストール方法やバックアップ・リストアの方法、考慮点について説明する。

まず、SPPをOpenShift環境に導入する方法について解説しよう。

これまでSPPのコンテナ環境での構成パターンとしては、管理サーバーはVMアプライアンス、エージェントのContainer Backup Supportのみコンテナのクラスター環境にデプロイしていた。

それがSPP V10.1.7からは、管理サーバー自体もコンテナとして稼働させることが可能になった。以下に、SPPコンテナをOpenShiftクラスターへ導入する手順について説明する。

まず、システム要件について確認する。

SPPはV10.1.7以上が必要で、OpenShift Container Platform (OCP) V4.5以降の環境でサポートされている。

ストレージはOCS V4.6以降、IBM block storage CSI driver for virtualized storage 1.3以降、External Ceph RBD cluster V14.2.2以降、Rook.io Ceph Storage V1.4以降などがサポートされている。

その他のシステム要件詳細については、以下を参照されたい。

IBM Spectrum Protect Plus – All Requirements Doc
https://www.ibm.com/support/pages/node/304861

SPPインスタンス(管理サーバー)のインストールは、IBM Entitled Registry(オンライン・レジストリー)からコンテナ・イメージをプルするオンライン方式のほかに、PAからダウンロードしたパッケージでインストールを実行するエアギャップ方式も可能である。

いずれもOpenShift OperatorHubで提供されているSPPオペレーターをクラスターにデプロイして、プラグインとしてSPPインスタンスをインストールできる。

次に、クラスターのバックアップを行うエージェントの役割を担うContainer Backup Supportイメージのインストールとデプロイ手順について説明する。こちらもオンライン方式とエアギャップ方式の2通りの導入が可能である。

オンライン方式の場合、IBM Helm3 Entitled RepositoryからHelm Packageをfetchし解凍するので、事前にHelm3をシステムにインストールしておく必要がある。

ダウンロードしたHelmパッケージに含まれているbaas-options.shとbaas-values.yamlの2ファイルを環境に合わせたパラメータに編集し、baas-install-entitled.shを実行してインストールする。

なおOpenShift V4.6以降であれば、OCP Webコンソールを使ったHelm Chartからインストールすることも可能である。

続いて、SPP V10.1.7によるOpenShift環境のバックアップ方法について解説する。ここではPV(PVC)およびリソースのバックアップが可能である。

リソース・バックアップには、クラスター環境にVeleroの導入が別途必要になる。これには2つの方法がある。Githubからダウンロードしてインストールするか、OpenShiftで提供されているOADPオペレーターのプラグインとしてインストールするか、である。

またVelero Backup保管用に使うストレージとして、S3互換のオブジェクト・ストレージMinIOがクラスターに必要となる。これは前述したContainer Backup Supportのインストール・パッケージに含まれており、BaaSネームスペースに、エージェント導入時に自動的に10GBのPVをリクエストしたpodが作成される(図表2)。

図表2 リソース・バックアップのイメージ

SPPのコンテナ・バックアップには、以下のように4つのタイプがある。

図表3 SPPによるコンテナ・バックアップ・タイプ

PVC(PV)をCSI Snapshot機能と連携して保護するPVCスナップショット・バックアップ(図表3の❶)と、それをさらに外部のvSnapへコピーするPVCコピー・バックアップ(図表3の❷)がV10.1.6までのバックアップ・タイプであった。

V10.1.7からは、Veleroとの連携により実現したリソース・バックアップとして、PVCの場合と同様に、スナップショット・バックアップ(図表3の❸)とコピー・バックアップ(図表3の❹)の2種類が加わっている。

実際のバックアップ・ジョブの実行は、SPPのWeb GUIで操作できる(なおV10.1.6までは、Web GUIではコンテナのバックアップ・リストアをサポートしておらず、Kubectlによるコマンドラインでの実行のみをサポート)。

SPP Web GUIにログインし、ナビゲーション・ペインで、[保護の管理]> [Containers]>[OpenShift]をクリックし、名前欄に出力されているクラスター情報から保護対象のPVCもしくはリソースを選択する。

さらに[SLA ポリシーの選択]をクリックし、SLA ポリシー・テーブルからポリシーを選択する。定義済みのContainerポリシーを選択するか、定義したカスタムSLAポリシーを選択できる。

そして[保存] をクリックしてジョブ定義を保存して、ジョブ作成が完了する(図表4)。

図表4 OpenShiftクラスターのバックアップ・ジョブ作成方法

ジョブは、選択したSLAポリシーで定義されたスケジュール時刻に実行されるが、選択したSLAポリシーのジョブを手動で即時開始することも可能である。選択したSLAポリシーのジョブを実行すると、そのSLAポリシーに関連付けたすべてのオブジェクトがバックアップされる。

以上が、PVCバックアップおよびリソース・バックアップの手順になる。前述したようにPVCの場合はCSIの Snapshot、リソースの場合はVelero Backupと、内部的には異なる機能を使ってバックアップを実施しているが、SPPユーザーからは同じような操作で保護できる。

SPPによるOpenShift環境のリストア方法

最後に、SPPによるOpenShift環境のリストア方法について解説する。バックアップと同様に、リストアのタイプにも4種類の方法がある。

図表5 SPPによるコンテナ・リストア・タイプ

CSIスナップショットで取得したボリュームをPVC(PV)にリストアするPVCスナップショット・リストア(図表5の❶)と、vSnapに外部保管されたボリュームを元のPVCにリストアするPVCコピー・リストア(図表5の❷)は従来からあるリストア手法である。

これに加えて、Velero Backupで取得されたMinIOにあるボリュームからリストアするリソース・スナップショット・リストア(図表5の❸)と、vSnapに外部保管したボリュームからリストアを実行するリソース・コピー・リストア(図表5の❹)がサポートされている。

PVCの場合もリソースの場合も、Snapshotボリュームからリストアできるのは元のクラスターおよび元のネームスペースのみという制限のあることが、リストアの注意点となる。

別クラスターや別ネームスペースへのリストアを行うには、vSnapに保管されているコピー・バックアップが必要になる。

またリストアの実行についても、SPP Web GUIからの操作が可能である。ナビゲーション・ペインで、[保護の管理] >[Containers] >[OpenShift]をクリックし、[ジョブの作成]をクリックする。

「ジョブの作成」ページで、「スナップショットのリストア」の[選択]をクリックしてリストア・ウィザードを開く。

なおコピー・バックアップからリストアする場合も、これらをクリックすることになる(日本語表示の不具合と思われるので、リストア・ウィザードを始めると解釈する)。

「ソースの選択」ページで、リストア対象のオブジェクトを検索し、横にあるプラス・アイコンをクリックしてリストア対象を決定する。選択した対象が、右側のアイテム・リストに表示される(図表6)。

図表6 SPPによるOpenShiftのリストア・ジョブ作成画面

以後ウィザードに従って、リストア元の選択、リストアのタイプ、リストア先、リストアするPVC名(オリジナルも新規も可能)、リストア先のクラスター条件などを設定し、リストア・ジョブを保存する。

作成したジョブがオンデマンド・ジョブの場合は、即時にリストアが開始される。定期ジョブの場合は、スケジュール開始時刻になるとジョブが実行される。

最後にOpenShiftバックアップとSPPについてまとめる。

OpenShiftと従来のインフラの違いによるバックアップの考え方の違い
・変更しないので再作成で問題ない部分も多い

OpenShiftでバックアップが必要なコンポーネントの検討
・管理情報(etcd)とコンテナのデータなど

バックアップ・ソフトウェアのCSI対応の広がり
・ストレージ選択の要素として考慮する

SPPはVM、DB、ファイルシステムのバックアップを行う仮想アプライアンス
・V10.1.5よりコンテナ環境(Kubernetes)の保護もサポート、V10.1.7からはOpenShiftもサポート
・V10.1.7よりコンテナとしてのデプロイも可能になった

SPPコンテナはエアギャップかオンラインでの導入が可能
・OpenShiftの場合はWebコンソール(オペレーター)を使って導入できる

コンテナ・バックアップはPVCバックアップとリソース・バックアップ(V10.1.7より)が可能で、それぞれスナップショットと外部(vSnapなど)へのコピー・バックアップが可能
・PVCバックアップはCSIスナップショット機能と連携して保護を実施する
・リソース・バックアップはVeleroと連携して保護を実施する

別クラスター、別ネームスペースへのリストアがサポートされるのはコピー・バックアップからのリストアのみ(スナップショット・リストアでは不可)

SPPによるOpenShiftバックアップは、GUIによる直感的な操作が可能で、Veleroなどプラグインの操作を理解していなくても、一括でバックアップ・リストアを実施できる。ストレージ管理者、インフラ管理者以外の開発担当者などにも容易に使用できるアプリケーションとなっている。


著者|

能政 周平氏

日本アイ・ビー・エム システムズ・エンジニアリング株式会社
オープンテクノロジー
ITスペシャリスト

2003年、日本アイ・ビー・エム システムズ・エンジニアリング株式会社に入社。2011年までPower Systemsのテクニカルサポートを主に担当。2014年からIBM Spectrum Protect(TSM)、テープ装置のテクニカルサポートを担当。プロジェクトサポートにも並行して参画し、主にインフラの構築、運用、移行を担当する。

 

小林 規将氏

日本アイ・ビー・エム システムズ・エンジニアリング株式会社
オープンテクノロジー
ITスペシャリスト

1998年、日本IBMに入社。2017年より日本アイ・ビー・エム システムズ・エンジニアリング株式会社に出向。2010年頃まではSystem x、Power Systemsプリセールス活動に従事し、2010年からストレージのプリセールス活動やBP様支援などに従事。2017年から日本アイ・ビー・エム システムズ・エンジニアリングにて、SANスイッチやIBM Spectrum Protect(TSM)、Cisco UCSのSMEとして活動中。

 

[i Magazine・IS magazine]


関連記事

OpenShiftでの最適なバックアップ手法

More Posts