5.20.3 シナリオ2: 管理ドメインの再イメージ化およびバックアップからのユーザー・ドメインのリストア

この手順では、管理ドメインを再イメージ化し、すべてのユーザー・ドメインを再構築します。

次の手順は、修復不可能な損傷が管理ドメインで発生したときに、管理ドメインのバックアップは存在しないが、すべてのユーザー・ドメインを収容しているストレージ・リポジトリ(/EXAVMIMAGESファイル・システム)のバックアップが利用可能な場合に使用できます。

  1. Oracle Exadata Database Serverの再イメージ化」の手順を使用して、ラック内のその他の管理ドメインで使用されているイメージで管理ドメインを再イメージ化します。
  2. 次のコマンドを実行します。
    # /opt/oracle.SupportTools/switch_to_ovm.sh
    
    # /opt/oracle.SupportTools/reclaimdisks.sh –free –reclaim
    
  3. Oracle Exadata Database Machineエイス・ラックでリカバリを実行する場合は、「Oracle Exadata Database Machineエイス・ラックのOracle Linuxデータベース・サーバーのリカバリ後の構成」の手順を実行します。
  4. OCFS2ファイル・システムを/dev/sda3パーティションに再構築します。
    # umount /EXAVMIMAGES
    
    # mkfs -t ocfs2 -L ocfs2 -T vmstore --fs-features=local /dev/sda3 --force
    
  5. OCFS2パーティション/dev/sda3/EXAVMIMAGESにマウントします。
    # mount -t ocfs2 /dev/sda3 /EXAVMIMAGES
    
  6. バックアップNFSサーバーをマウントして、ユーザー・ドメインのイメージを保持する/EXAVMIMAGESファイル・システムをリストアします。
    # mkdir -p /remote_FS
    
    # mount -t nfs -o ro,intr,soft,proto=tcp,nolock nfs_ip:/location_of_backup /remote_FS
    
  7. /EXAVMIMAGESファイル・システムをリストアします。
    # tar -Spxvf /remote_FS/backup-of-exavmimages.tar -C /EXAVMIMAGES
    

    ノート:

    記憶域リポジトリのリストア処理では、ユーザー・ドメイン固有のファイル(/EXAVMINAGES/GuestImages/user_domain/下のファイル)が通常のファイルとしてリストアされ、これらのファイルがユーザー・ドメインの作成時に最初に記憶域リポジトリに作成されたOCFS2 reflinkとしてはリストアされません。そのため、/EXAVMINAGES内の領域使用量は、リストア処理後に、バックアップ時の元の領域使用量よりも増加することがあります。
  8. ネットワーク・ブリッジを手動で構成します。
    1. ovmutils RPMのバージョンを確認します。
      # rpm -qa|grep ovmutils
      
    2. ovmutils RPMのバージョンが12.1.2.2.0より前の場合は、次のステップを実行します。
      1. /opt/exadata_ovm/exadata.img.domu_makerをバックアップします。このバックアップ・コピーは後ほど必要になります。

        # cp /opt/exadata_ovm/exadata.img.domu_maker /opt/exadata_ovm/exad
        ata.img.domu_maker-orig
        
      2. viなどのテキスト・エディタで/opt/exadata_ovm/exadata.img.domu_makerファイルを開いて、g_do_not_set_bridge=yesを検索します。この文字列は、CASE文オプションnetwork-discovery)の数行下にあります。

        この文字列をg_do_not_set_bridge=noに変更します。

        /opt/exadata_ovm/exadata.img.domu_makerを保存して終了します。

      3. /EXAVMIMAGES/confディレクトリ内のすべてのXMLファイルに、手動で/opt/exadata_ovm/exadata.img.domu_makerを実行します。

        # cd /EXAVMIMAGES/conf
        # ls -1|while read file; do /opt/exadata_ovm/exadata.img.domu_maker 
        network-discovery $file /tmp/netdisc-$file; done
        
      4. バックアップ・コピーから/opt/exadata_ovm/exadata.img.domu_makerをリストアします。

        # cp /opt/exadata_ovm/exadata.img.domu_maker-orig /opt/exad
        ata_ovm/exadata.img.domu_maker
        
    3. ovmutils RPMのバージョンが12.1.2.2.0以降の場合は、次のコマンドを実行します。
      # /opt/exadata_ovm/exadata.img.domu_maker add-bonded-bridge-
      dom0 vmbondeth0 eth4 eth5
      
  9. /EXAVMIMAGES/GuestImagesディレクトリ内のユーザー・ドメイン・ディレクトリごとに、次のステップを実行します。
    1. ユーザー・ドメインのUUIDを取得します。
      # grep ^uuid /EXAVMIMAGES/GuestImages/user_domain_hostname/vm.cfg
      |awk -F"=" '{print $2}'|sed s/"'"//g|sed s/" "//g
      

      コマンドを実行すると、uuid値が返され、これは次のコマンドで使用されます。

    2. UUID用のサブディレクトリを作成します。
      # mkdir -p /OVS/Repositories/uuid 
    3. 新しいUUIDディレクトリ内にuser_domain_hostnamevm.cfgファイルに対するシンボリック・リンクを作成します。
      # ln -s /EXAVMIMAGES/GuestImages/user_domain_hostname/vm.cfg /OVS/Repositories/uuid/vm.cfg
    4. user_domain_hostnameの自動起動を構成します。
      # ln -s /OVS/Repositories/uuid/vm.cfg /etc/xen/auto/user_domain_hostname.cfg
    5. VirtualDisksサブディレクトリを作成します。
      # mkdir VirtualDisks
    6. VirtualDisksディレクトリに移動します。
      # cd VirtualDisks
    7. vm.cfgファイル内の4つのディスク・イメージ名を使用して、このディレクトリに4つのシンボリック・リンクを作成します(/EXAVMIMAGES/GuestImages/user_domain_hostnameディレクトリ内にある4つの*.imgファイルを指します)。

      たとえば、/OVS/Repositories/uuidディレクトリ内のサンプルvm.cfgファイルのサンプル・ディスク・エントリを次に示します。

      disk =  ['file:/OVS/Repositories/6e7c7109c1bc4ebba279f8
      4e595e0b27/VirtualDisks/dfd641a1c6a84bd69643da704ff98594.img,xv
      da,w','file:/OVS/Repositories/6e7c7109c1bc4ebba279f84e595e0b27/
      VirtualDisks/d349fd420a1e49459118e6a6fcdbc2a4.img,xvdb,w','file
      :/OVS/Repositories/6e7c7109c1bc4ebba279f84e595e0b27/VirtualDisk
      s/8ac470eeb8704aab9a8b3adedf1c3b04.img,xvdc,w','file:/OVS/Repos
      itories/6e7c7109c1bc4ebba279f84e595e0b27/VirtualDisks/333e7ed28
      50a441ca4d2461044dd0f7c.img,xvdd,w']
      

      /EXAVMIMAGES/GuestImages/user_domain_hostnameディレクトリ内にある4つの*.imgファイルをリスト表示できます。

      # ls /EXAVMIMAGES/GuestImages/user_domain_name/*.img
      /EXAVMIMAGES/GuestImages/user_domain_name/System.img
      /EXAVMIMAGES/GuestImages/user_domain_name/grid12.1.0.2.2.img
      /EXAVMIMAGES/GuestImages/user_domain_name/db12.1.0.2.2-3.img
      /EXAVMIMAGES/GuestImages/user_domain_name/pv1_vgexadb.img
      

      この例では、次のコマンドを使用して4つのシンボリック・リンクを作成できます(dbm01db08vm01は、ユーザー・ドメインのホスト名です)。

      # ln -s /EXAVMIMAGES/GuestImages/dbm01db08vm01/System.img
       $(grep ^disk /EXAVMIMAGES/GuestImages/dbm01db08vm01/vm.cfg|awk 
      -F":" '{print $2}'|awk -F"," '{print $1}'|awk -F"/" '{print $6}')
      
      # ln -s /EXAVMIMAGES/GuestImages/dbm01db08vm01/grid12.1.0.2.2.img
       $(grep ^disk /EXAVMIMAGES/GuestImages/dbm01db08vm01/vm.cfg|awk 
      -F":" '{print $3}'|awk -F"," '{print $1}'|awk -F"/" '{print $6}')
      
      # ln -s /EXAVMIMAGES/GuestImages/dbm01db08vm01/db12.1.0.2.2-3.img
       $(grep ^disk /EXAVMIMAGES/GuestImages/dbm01db08vm01/vm.cfg|awk 
      -F":" '{print $4}'|awk -F"," '{print $1}'|awk -F"/" '{print $6}')
      
      # ln -s /EXAVMIMAGES/GuestImages/dbm01db08vm01/pv1_vgexadb.img 
      $(grep ^disk /EXAVMIMAGES/GuestImages/dbm01db08vm01/vm.cfg|awk 
      -F":" '{print $5}'|awk -F"," '{print $1}'|awk -F"/" '{print $6}')
      
  10. 各ユーザー・ドメインを再起動します。
    # xm create /EXAVMIMAGES/GuestImages/user_domain_hostname/vm.cfg
    

この時点で、すべてのユーザー・ドメインがOracle Grid Infrastructureとデータベース・インスタンスとともに起動します。