SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

NetBackup MSDPクラウドによるAzure Blob Storageへの重複排除バックアップ

データマネジメント
2021.03.05

皆さま、こんにちは。SB C&Sの臼井です。

今回はベリタステクノロジーズ社のバックアップ製品であるNetBackupのMSDPクラウド機能を使用したAzure Blob Storageへの重複排除バックアップをご紹介します。


MSDPクラウドとは?

NetBackupは以前からクラウドストレージへのバックアップに対応しておりましたが、バックアップデータを重複排除された状態でクラウドストレージに保存するには、別途、Cloud Catalystというコンポーネントを配置する必要がありました。Cloud Catalystは物理ハードウェアアプライアンスや汎用Linuxサーバー、仮想アプライアンスで構成可能ですが、バックアップ処理を行うサーバーであるメディアサーバーとは別に構成するため、構成が複雑になりました。

cc-confg.PNG


NetBackup 8.3からの新機能のMSDPクラウドでは、メディアサーバーにLSU(Logical Storage Unit)と呼ばれる論理的な領域を構成し、キャッシュを保持することで、Cloud Catalystを構成せずにバックアップデータを重複排除したままクラウドへ転送し、保存することが可能になりました。

msdpc.PNG


MSDPクラウドの要件

MSDPクラウドはRed Hat Linux Enterprise(以下、RHEL) または CentOS で実行されているサーバーで構成できます。

最新のNetBackup 9.0における対応OSは下記Software Compatibility Listから確認できますが、NetBackup Serverとして、RHEL・CentOSともにバージョン7と8がサポート対象になっているため、MSDPクラウドを利用する場合もRHELもしくはCentOSのバージョン7か8で構成する必要があります。

NetBackup 9.0 Software Compatibility List
https://www.veritas.com/bin/support/docRepoServlet?bookId=NB_90_OSSCL&requestType=pdf

MSDPクラウドの必要サーバースペックはCloud Catalystに準拠するため、Cloud Catalyst ストレージサーバーの要件も満たす必要があります。

■Cloud Catalyst ストレージサーバーとしての Linux メディアサーバーの構成
https://www.veritas.com/content/support/ja_JP/doc/49573922-146247263-0/v125441428-146247263

また、MSDPクラウドは重複排除機能であるMSDPの機能を利用しているため、MSDPストレージサーバーのCPU/メモリ要件を下回らないようにします。

■MSDPストレージサーバー
https://www.veritas.com/content/support/ja_JP/doc/49573922-146247263-0/v95643743-146247263


Azure Blob Storage のMSDPクラウド設定手順

MSDPクラウドによる重複排除のデータ保存先としては、AWS S3やAzure Blob Storage、S3互換ストレージなどが利用できますが、Azure Blob Storageを利用した場合の設定手順をご紹介します。下の図が今回の検証の構成です。

eval-env2.PNG

下記の手順で進めていきます。NetBackupは最新バージョンの9.0を使用し、事前にバックアップサーバーとなるRHELサーバーにマスターサーバー兼メディアサーバーとしてNetBackup をインストール済みです。日本語ランゲージパックの適用とバックアップ対象となるvSphere環境のvCenterの登録まで行っています。

 ①バックアップデータ保存先のAzure Blob Storageの構成
 ②ストレージサーバーとMSDPストレージユニットの作成
 ③クラウドインスタンスエイリアスの作成
 ④構成ファイルの作成とストレージサーバーへの登録
 ⑤ディスクプールの作成
 ⑥ストレージユニットの作成
 ⑦バックアップの実行

NetBackupのインストール方法は下記のインストールガイドを参考にしてください。

Veritas NetBackup インストールガイド
https://www.veritas.com/content/support/ja_JP/doc/32197568-145859694-0/index

①バックアップデータ保存先のAzure Blob Storageの構成

バックアップデータの保存先として事前にAzure上でストレージアカウントを作成し、コンテナを作成しておきます。今回は vrtsmsdpc01 というストレージアカウントの中に msdpc01-cont というコンテナを作成しています。
※Azure上の操作の説明は省略させていただきます。

azure-blob.PNG

②ストレージサーバーとMSDPストレージユニットの作成

NetBackupの管理コンソールを起動し、「ディスクストレージサーバーの構成」をクリックします。

01.PNG


「Media Server Deduplication Pool」を選択し、「次へ」をクリックします。

02.PNG


「メディアサーバー」にNetBackupをインストールしたサーバーのホスト名を指定し、「クレデンシャルの定義」でNetBackup内で使われるアカウントのユーザー名とパスワードを設定し、「次へ」をクリックします。今回の検証ではメディアサーバーとして「nbusv.vrts.sbcs.local」を指定し、クレデンシャルとして「msdpuser」と対応するパスワードを設定しています。

04.PNG


警告が出ますが、今回は検証用にマスターサーバー兼メディアサーバーとして構成しているため、「はい」をクリックして進めます。

05.PNG


「ストレージパス」に重複排除バックアップデータの保存先のパスを指定し、「次へ」をクリックします。今回は「ストレージパス」に事前で手動で作成したディレクトリの「/backup/msdp/」を指定し、その他のオプションはデフォルトのままとしています。

07.PNG


任意で暗号化の設定を有効にし、「次へ」をクリックします。今回は暗号化せずに進めます。

08.PNG


「ストレージサーバーの構成の概略」を確認し、「次へ」をクリックします。

09.PNG


ストレージサーバーが正常に作成されたことを確認し、「次へ」をクリックします。

10.PNG


続けてMSDPのディスクプールを作成するため、そのまま「次へ」をクリックします。

11.PNG


「ディスクプール名」に任意のディスクプール名を設定し、「次へ」をクリックします。今回は「ディスクプール名」に「msdp-pool」と設定しています。その他のオプションはデフォルトのままとしています。

13.PNG


「ディスクプールの構成の概略」を確認し、「次へ」をクリックします。

14.PNG


ディスクプールが正常に作成されたことを確認し、「次へ」をクリックします。

15.PNG


「ストレージユニット名」に任意のストレージユニット名を設定し、「次へ」をクリックします。今回は「ストレージユニット名」に「msdp-pool-stu」と設定しています。その他のオプションはデフォルトのままとしています。

16.PNG


ストレージユニットが正常に作成されたことを確認し、「完了」をクリックします。

18.PNG


管理コンソールからMSDPのディスクプールとストレージユニットが作成されていることを確認します。

pool-stu.PNG

以上でストレージサーバーとMSDPストレージユニットの作成は完了です。

③クラウドインスタンスエイリアスの作成

下記コマンドで Azure Blob Storage用のクラウドインスタンスエイリアスを作成します。

# /usr/openv/netbackup/bin/admincmd/csconfig cldinstance -as -in my-azure -sts <ストレージサーバー名> -lsu_name <LSU名>

今回、実際に実行したコマンドは下記コマンドになり、<ストレージサーバー名>に nbusv.vrts.sbcs.local 、<LSU名>に Blob を指定しています。

31a.png

④構成ファイルの作成とストレージサーバーへの登録

Azure接続用の下記フォーマットの構成ファイルを作成します。

--------------------------------------------------------------------------------------------------
V7.5 "operation" "add-lsu-cloud" string
V7.5 "lsuName" "LSU名" string
V7.5 "lsuCloudUser" "ストレージアカウント名" string
V7.5 "lsuCloudPassword" "アクセスキー" string
V7.5 "lsuCloudBucketName" "コンテナ名" string
V7.5 "lsuCloudBucketSubName" "サブディレクトリ名" string
--------------------------------------------------------------------------------------------------

今回は、/tmp/nbu/msdp-cloud-config.Blob.txtというファイルに下記内容を記述しました。"lsuName" に Blob 、"lsuCloudUser"に vrtsmsdpc01 、"lsuCloudBucketName" に msdpc01-cont、"lsuCloudBucketSubName"に sub001 と設定しています。"lsuCloudPassword" は非表示にしています。

33a.png

次に、作成した構成ファイルを下記コマンドでNetBackupに登録します。

# /usr/openv/netbackup/bin/admincmd/nbdevconfig -setconfig -storage_server <ストレージサーバー名> -stype PureDisk -configlist <構成ファイルのパス>

今回、実際に実行したコマンドは下記コマンドになり、<ストレージサーバー名>に nbusv.vrts.sbcs.local 、<LSU名>に Blob を指定しています。

38a.png

※本コマンド実行時にディスクキャッシュサイズが不足している旨のエラーが出力され、構成に失敗する場合は、キャッシュ用のディスク容量が不足しています。MSDPクラウドはCloud Catalystと同様に最低1TBのキャッシュ用の領域が必要になります。検証環境で1TBの容量を確保できない場合、下記KBを参考にcontentrouter.cfgファイル内のCloudUploadCacheSize、CloudMetaCacheSize、CloudDataCacheSize、CloudMapCacheSizeのキャッシュサイズの値を小さく設定してください。

■NetBackup 8.3.0.1 web user interface (web ui) reports "disk is full" during attempt to configure MSDP cloud
https://www.veritas.com/content/support/en_US/article.100048914

⑤ディスクプールの作成

下記コマンドで登録したLSUのディスク情報をファイルに出力します。

# /usr/openv/netbackup/bin/admincmd/nbdevconfig -previewdv -storage_servers <ストレージサーバー名> -stype PureDisk | grep <LSU名> > <出力先ファイルのパス>


今回、実際に実行したコマンドは下記コマンドになり、<ストレージサーバー名>に nbusv.vrts.sbcs.local 、<LSU名>に Blob,、<出力先ファイルのパス>に /tmp/nbu/dvlist-Blob を指定しています。
※出力先の/tmp/nbu ディレクトリはAzure接続用の構成ファイル作成時に作成しており、/tmp/nbu/dvlist-Blobファイルがコマンド実行により作成されます。

39a.png

次に、出力したファイルを元に下記コマンドでディスクプールを作成します。

# /usr/openv/netbackup/bin/admincmd/nbdevconfig -createdp -dp <ディスクプール名> -stype PureDisk -dvlist <出力したファイルのパス> -storage_servers <ストレージサーバー名>


今回、実際に実行したコマンドは下記コマンドになり、<ディスクプール名>に blob-pool 、<出力先ファイルのパス>に /tmp/nbu/dvlist-Blob 、<ストレージサーバー名>に nbusv.vrts.sbcs.local を指定しています。

41a.png


管理コンソールからAzure Blob Storageのディスクプールの blob-pool が作成されていることを確認します。

42a.png

⑥ストレージユニットの作成

作成したAzure Blob Storageのディスクプールを元にストレージユニットを作成します。管理コンソールから「ストレージユニット」を選択して右クリックメニューから「新しいストレージユニット(S)...」をクリックします。

43a.png


「ストレージユニット名」に任意のストレージユニット名を設定し、「ディスク形式」で「PureDisk」を指定します。今回の検証では、「ストレージユニット名」に blob-pool-stu と設定しています。

45a.png


「ディスクプールの選択」で作成したAzure Blob Storageのディスクプールの blob-pool を指定し、「OK」をクリックします。

46a.png


Azure Blob Storage用のストレージユニットが作成されていることを確認します。

47a.png

以上で Azure Blob Storageに重複排除した状態でバックアップするための設定は完了です。

⑦バックアップの実行

実際にAzure Blob Storageへの重複排除バックアップを実行してみます。今回はストレージライフサイクルポリシーを使用し、オンプレミスの重複排除プールの msdp-pool にバックアップした後に自動でAzure Blob Storageのプールの blob-pool に複製を行います。

「ストレージライフサイクルポリシー」を選択し、右クリックメッセージから「新しいライフサイクルポリシー(E)...」をクリックします。

51a.png


「ストレージライフサイクルポリシー名」に任意のストレージライフサイクルポリシー名を設定し、バックアップと複製の操作を設定します。今回は「ストレージライフサイクルポリシー名」に Azure-SLP を設定し、バックアップ先として msdp-pool-stu を指定し、複製先として blob-pool-stu を指定しています。

50a.png


作成した Azure-SLP ストレージライフサイクルポリシーが作成されていることを確認します。

52a.png


新規ポリシーを作成し、「ポリシー形式」で VMware を指定し、「ポリシーストレージ」に作成したストレージライフサイクルポリシーの Azure-SLP を指定します。

54a.png


フルバックアップのスケジュールを作成し、バックアップ対象としてvSphere上のWindows 2016の仮想マシン1台をVMディスプレイ名で指定しました。その他のオプションはデフォルトのままとしています。

policy.PNG


下の図はフルバックアップ+複製を2回実行した結果ですが、Azure Blob Storageへの重複排除機能により、1回目のフルバックアップの複製では2分4秒かかっていたのが、2回目のフルバックアップの転送では1分4秒に短縮されています。

policy2.PNG


下の図はAzure Storage ExplorerでBlob Storageのコンテナの使用量を調べたものですが、1回目のフルバックアップの複製後に 6,311,181,409byte 、2回目のフルバックアップの複製後に 6,324,513,424 byteとなっており、13,332,015 byte(約13MB)しか増えていないため、重複排除が効いていることが確認できました。

blob-capacity.PNG

※今回の検証結果は弊社検証環境のものです。転送時間やストレージ容量(重複排除率)は環境により異なります。


以上のようにMSDPクラウドを使うことにより、クラウドへの転送時間の短縮やクラウドストレージの使用量の削減(=ストレージコストの削減)が期待できます。同様の効果はCloud Catalystでも可能でしたが、MSDPクラウドでは、より簡単に導入しやすくなっています。

今回はAzure Blob Storageでの設定手順でしたが、MSDPクラウドは Amazon S3 や S3 互換ストレージなど他のクラウドストレージでもご利用いただけます。是非、評価版などでその効果をお試しいただけますと幸いです。

Veritas関連の記事はこちらから

著者紹介

SB C&S株式会社
ICT事業本部 ICT事業戦略・技術本部 技術統括部 第3技術部 1課
臼井 守