クラウドストレージに保管されたバックアップデータをAWS移行に利用しませんか?【CloudCatalyst編】


はじめに

以前、「NetBackup CloudCatalyst for AWS入門」で、CloudCatalystについて解説を行いました。
CloudCatalystの詳細については、こちらのまとめ記事をご参照下さい。

CloudCatalystでは、重複排除されたバックアップデータをAmazon S3などのクラウドストレージに保管することが可能です。

通常、クラウドストレージに保管されたバックアップデータは、オンプレミスに存在するNetBackupサーバーでバックアップ/リストアなどの操作を行うことになります。

オンプレミスではなく、クラウド上にNetBackupサーバーを構築することで、このクラウドストレージに保管されているバックアップデータを共有することが可能で、この機能を「Image sharing」と呼んでいます。
ちなみに、NetBackup 8.2でも同様の機能があり、その頃は「Automated disaster recovery」という名称でした。

このImage sharingを利用することで、オンプレミス側で取得したVMwareの仮想マシンバックアップ(VADPバックアップ)を、AWSのAMIに変換して、Amazon EC2インスタンスとして起動させるといった使い方が出来ます!

今回は、Image sharing用NetBackupサーバーの構築手順からEC2インスタンス作成までの手順についてお伝えしたいと思います。

【 備考:MSDP-Cloudについて 】
重複排除されたバックアップデータをクラウドストレージに複製するには、上述の通り、別途、CloudCatalystサーバーを準備して頂く必要がありました。

NetBackup 8.3からMSDP-Cloudという新機能が追加されたのですが、このMSDP-Cloudを利用することで、重複排除およびクラウドストレージへの複製が、1台のメディアサーバーで構成することが可能となりました。(CloudCatalystとは別機能)
MSDP-CloudのサポートOSは、現状、RHELとCentOSになりますが、細かなバージョンや制限事項などは、マニュアルやSCLをご確認下さい。

このMSDP-Cloudについては、別記事でご紹介させて頂きます。

Image sharing設定手順

注意事項

今回、ご紹介する手順はあくまで一例となります。
必ず、マニュアルやHardware and Cloud Storage Compatibility Listを参照し、Image sharingの詳細・制限事項について確認するようにして下さい。

環境について

今回は以下のCloudCatalyst環境を例に、オンプレミスにあるVMware仮想マシンの「Sales1」を、EC2インスタンスとして起動するまでの手順について説明を行います。

  • オンプレミス側
    • バックアップ対象(VMware仮想マシン)
      • ホスト名:Sales1
      • Windows 2016
      • 80GB HDD:Thin Provision(実使用量 12GB)
    • NetBackupサーバー(マスターサーバー 兼 メディアサーバー)
      • Windows 2016
      • NetBackup 8.3
    • NetBackup CloudCatalystサーバー
      • RHEL 7.8
      • NetBackup 8.3
  • AWS側
    • Image Sharing用NetBackupサーバー
      • Elastic IPアドレス付与
      • RHEL 8.0
      • NetBackup 8.3

手順の流れ

 ①オンプレミス側でVADPバックアップを取得
 ②AWS側でEC2インスタンスを構築
 ③NetBackup 8.3のインストール
 ④Image sharing用NetBackupサーバーの構成
 ⑤Amazon S3に保存されているバックアップデータの確認
 ⑥バックアップデータをAMIに変換
 ⑦AMIからAmazon EC2インスタンスを起動

詳細手順

①オンプレミス側でVADPバックアップを取得

オンプレミス側で「Sales1」のVADPバックアップを取得します。
CloudCatalystの構築やバックアップ手順などは、まとめ記事をご参照下さい。

なお、NetBackupの管理コンソールですが、現時点では、日本語化パッチが出ていないため、メニューが英語表記となっておりますが、後日、提供される日本語化パッチを適用することで、メニューの日本語化が可能です。

一点、注意事項として、移行元の仮想マシンのファームウェアタイプは「BIOS」にして下さい。
「UEFI」の場合、AMI変換時に失敗しますので、ご注意下さい。

②AWS側でEC2インスタンスを構築

Image Sharing用NetBackupサーバーを構築するため、AWS側でEC2インスタンスを構築します。
OSは、RHEL7.3 から RHEL8.0までがサポートされています。

また、以下の設定を実施するようにして下さい。

  • セキュリティグループでHTTPSポート:443を有効にします。
  • ホスト名を外部のFQDNに変更します。
# hostname
ec2-18-180-xxx-xxx.ap-northeast-1.compute.amazonaws.com
  • /etc/hostsファイルを編集します。外部IPアドレス/内部IPアドレス、どちらも外部ホスト名で登録します。
# cat /etc/hosts
18.180.xxx.xxx   ec2-18-180-xxx-xxx.ap-northeast-1.compute.amazonaws.com
192.168.20.238  ec2-18-180-xxx-xxx.ap-northeast-1.compute.amazonaws.com
  • /etc/resolv.confを編集します。内部ドメインの前に外部ドメインを検索するように変更します。
# cat /etc/resolv.conf
search ap-northeast-1.compute.amazonaws.com ap-northeast-1.compute.internal
nameserver 192.168.0.2
  • Python 2.x系がインストールされていることを確認します。もし、インストールされていない場合、Python 2.x系を導入して下さい。
# which python
/usr/bin/python

# python -V
Python 2.7.16

③NetBackup 8.3のインストール

NetBackup8.3のインストールガイドに従って、マスターサーバーとしてインストールを行います。
また、NetBackupのサーバー名は先ほど設定したホスト名にして下さい。

④Image sharing用NetBackupサーバーの構成

Image sharing用NetBackupサーバーの構成を行います。
ims_system_config.pyスクリプトを実行することで、Image sharingの構成が可能です。

今回は、アクセスキー、シークレットアクセスキーを用いて実行しています。
もし、リージョンが異なるといったエラーが発生する場合は、「-r」オプションを付与して、Amazon S3のリージョンを指定して実行してみて下さい。

構成完了までに10分ほど掛かります。

【実行コマンド】
# python /usr/openv/pdde/pdag/scripts/ims_system_config.py -k <AWS_access_key> -s <AWS_secret_access_key> -b <name_S3_bucket> -r <bucket_region>

【実行例】
# python /usr/openv/pdde/pdag/scripts/ims_system_config.py -k ***** -s ***** -b vrts-cloudcatalyst-test001 -r ap-northeast-1

*****************************IMPORTANT TIPS!*********************************
Ensure that the hostname "ec2-18-180-xxx-xxx.ap-northeast-1.compute.amazonaws.com" is in the FQDN format.
If the hostname is not in the FQDN format, the webservice might fail.
Enter Y to continue or any other key to reset:Y
INFO - Confirm hostname same to FQDN
INFO - Begin checking the KMS encryption status in the cloud storage...
WARNING - KMS encryption is disabled in the cloud storage. Disaster recovery will not use the KMS mode.
INFO - Completed checking the KMS encryption status in the cloud storage.
INFO - Begin syncing up sys inodes...
INFO - Completed syncing up sys inodes.
INFO - Begin configuring web service...
INFO - Completed configuring web service.
INFO - Begin creating storage server...
INFO - [CMD]:/usr/openv/netbackup/bin/admincmd/csconfig cldinstance -as -in amazon.com -sts ec2-18-180-xxx-xxx.ap-northeast-1.compute.amazonaws.com -ssl 2
INFO - [CMD]:/usr/openv/netbackup/bin/admincmd/nbdevconfig -creatests -storage_server ec2-18-180-xxx-xxx.ap-northeast-1.compute.amazonaws.com -stype PureDisk_amazon_rawd -media_server ec2-18-180-xxx-xxx.ap-northeast-1.compute.amazonaws.com -st 9
INFO - [CMD]:/usr/openv/volmgr/bin/tpconfig -dsh -stype PureDisk_amazon_rawd
INFO - [CMD]:/usr/openv/volmgr/bin/tpconfig -add -storage_server ec2-18-180-xxx-xxx.ap-northeast-1.compute.amazonaws.com -stype PureDisk_amazon_rawd -sts_user_id xxx
INFO - [CMD]:/usr/openv/netbackup/bin/admincmd/nbdevconfig -getconfig -stype PureDisk_amazon_rawd -storage_server ec2-18-180-xxx-xxx.ap-northeast-1.compute.amazonaws.com
INFO - [CMD]:/usr/openv/netbackup/bin/admincmd/nbdevconfig -setconfig -stype PureDisk_amazon_rawd -storage_server ec2-18-180-xxx-xxx.ap-northeast-1.compute.amazonaws.com -configlist /tmp/imagesharing_sts_config.txt
INFO - [CMD]:/usr/openv/netbackup/bin/admincmd/nbdevconfig -previewdv -storage_server ec2-18-180-xxx-xxx.ap-northeast-1.compute.amazonaws.com -stype PureDisk_amazon_rawd -media_server ec2-18-180-xxx-xxx.ap-northeast-1.compute.amazonaws.com -dv vrts-cloudcatalyst-test001 -dvlist /tmp/imagesharing_dvlist.txt
INFO - [CMD]:/usr/openv/netbackup/bin/admincmd/nbdevconfig -createdv -storage_server ec2-18-180-xxx-xxx.ap-northeast-1.compute.amazonaws.com -stype PureDisk_amazon_rawd -dv vrts-cloudcatalyst-test001 -config 'region:ap-northeast-1'
INFO - [CMD]:/usr/openv/netbackup/bin/admincmd/nbdevconfig -createdp -storage_servers ec2-18-180-xxx-xxx.ap-northeast-1.compute.amazonaws.com -stype PureDisk_amazon_rawd -dp amazon_dp -dvlist /tmp/imagesharing_dvlist.txt
INFO - [CMD]:/usr/openv/netbackup/bin/admincmd/bpstuadd -label amazon_dp_stu -odo 0 -dt 6 -dp amazon_dp -nodevhost -cj 20 -mfs 51200
INFO - Completed creating storage server.
INFO - Begin verifying web service...
INFO - [CMD]:/usr/openv/pdde/vpfs/bin/vpfs_config.sh --create_spws_self_signed_certs --storagepath /storage/storage --hostname ec2-18-180-xxx-xxx.ap-northeast-1.compute.amazonaws.com --upgrade
INFO - [CMD]:/usr/openv/pdde/vpfs/bin/nb_admin_tasks --get_self_cert
INFO - Completed verifying web service.

⑤Amazon S3に保存されているバックアップデータの確認

④のスクリプトが正常完了すれば、Amazon S3に保管されているバックアップデータを確認することが出来ます!
では、実際にSales1が表示されるかを確認してみましょう。

まず、NetBackupにログインします。
もし、パスワードに特殊文字を用いている場合、シングルクォーテーション「'」で囲んで下さい。

【実行コマンド】
# /usr/openv/netbackup/bin/admincmd/nbimageshare --login <username> <password>

【実行例】
# /usr/openv/netbackup/bin/admincmd/nbimageshare -login root 'PASSWORD'
Login successful.

Amazon S3に保管されているバックアップデータを確認してみます。

【実行コマンド】
# /usr/openv/netbackup/bin/admincmd/nbimageshare -listimage

【実行例】
# /usr/openv/netbackup/bin/admincmd/nbimageshare -listimage
{
  "meta": {
    "pagination": {
      "count": 1,
      "last": 0,
      "next": 0,
      "limit": 0,
      "offset": 0,
      "prev": 0,
      "first": 0
    }
  },
  "data": [
    {
      "attributes": {
        "backupTime": 1597137328,
        "resumeNumber": 1,
        "importStatus": "NotImported",
        "copyNumber": 2,
        "client": "Sales1",
        "policyType": "VMware",
        "policy": "CC-Backup-Sales1",
        "backupID": "Sales1_1597137328",
        "scheduleType": "Full"
      },
      "type": "cloudImages",
      "id": "0"
    }
  ]
}

無事、オンプレミスでバックアップしたSales1が、AWS側にあるNetBackupから確認出来ました!!!

⑥バックアップデータをAMIに変換

無事にバックアップデータが確認出来ましたので、Sales1をAMIに変換したいと思います。

まず、NetBackupにバックアップイメージのインポートを行います。
⑤で出力された値を、引数として渡します。

★注意事項★
マニュアルでは、オプションが「--singleimport」となっていますが、正しくは「--single-import」(singleとimportの間にハイフンが入る)となりますので、ご注意下さい。

【実行コマンド】
# /usr/openv/netbackup/bin/admincmd/nbimageshare --single-import  <client> <policy> <backupID>

【実行例】
# /usr/openv/netbackup/bin/admincmd/nbimageshare --single-import Sales1 CC-Backup-Sales1 Sales1_1597137328
{
  "type": "importResponse",
  "id": "6",
  "attributes": {
    "images": [
      {
        "status": "0",
        "policy": "CC-Backup-Sales1",
        "backupID": "Sales1_1597137328"
      }
    ]
  }
}

bpdbjobsコマンドで、ジョブの実行状態が分かります。
StateがDoneで、Status 0で終了することを確認します。

# /usr/openv/netbackup/bin/admincmd/bpdbjobs
JobID Type State Status Policy Schedule Client Dest Media Svr Active PID FATPipe
    6 Import  Done      0 CC-Backup-Sales1          Sales1 ec2-18-180-xxx-xxx.ap-northeast-1.compute.amazonaws.com      22437

ちなみに、リモート管理コンソールなどで、NetBackupサーバーに接続し、カタログ検索を行うと、バックアップ情報が表示されることを確認することが出来ます。(こちらのリモート管理コンソールも、①での説明と同様、後日、提供される日本語化パッチを適用することで、メニューの日本語化が可能です)

これで、準備万端です!
以下のコマンドを実行して、Sales1のAMI変換を行います。

★注意事項★
マニュアルでは、オプションが「--recovervm」となっていますが、正しくは「--recover-vm」(recoverとvmの間にハイフンが入る)となりますので、ご注意下さい。

【実行コマンド】
# /usr/openv/netbackup/bin/admincmd/nbimageshare --recover-vm <client> <policy> <backupID>

【実行例】
# /usr/openv/netbackup/bin/admincmd/nbimageshare --recover-vm Sales1 CC-Backup-Sales1 Sales1_1597137328
{
  "type": "recoverEc2Response",
  "id": "7",
  "attributes": {
    "status": "0",
    "policy": "CC-Backup-Sales1",
    "backupId": "Sales1_1597137328"
  }
}

上記コマンド実行後、バックアップデータがAMIに変換され、AWS管理コンソールから確認することが可能です。
なお、AMI変換までに少し時間が掛かります。
今回の環境の場合、上記ジョブが完了するのに27分25秒の時間が掛かりました。

⑦AMIからAmazon EC2インスタンスを起動

AWS管理コンソールにログインし、Sales1のAMIが登録されていることを確認します。

無事に登録されてますね!

ここまで来れば、バックアップデータのAMI変換は無事に終わっていますので、EC2インスタンスとして正常に起動するかを確認します。
【EC2インスタンスの作成画面】

【Sales1のデスクトップ画面】

AWS上で無事にSales1インスタンスが起動していますね!
この後は環境に合わせて、アプリの動作確認などを実施して下さい。

おわりに

いかがでしたでしょうか?
思いのほか、簡単にAWSへ移行することが実感頂けたのではないでしょうか。

AWSへの移行は様々な方法がありますが、今回ご紹介した方法であれば、既存環境に手を加える必要はありません。
そのため、既存環境への影響を与えることなく、安全にAWSへの移行が可能です。

有事の際のバックアップだけではなく、AWS移行にもバックアップを是非ご活用下さい!

商談のご相談はこちら

本稿からのお問合せをご記入の際には「コメント/通信欄」に#GWCのタグを必ずご記入ください。
ご記入いただきました内容はベリタスのプライバシーポリシーに従って管理されます。

その他のリンク

【まとめ記事】ベリタステクノロジーズ 全記事へのリンク集もよろしくお願い致します!