6.17 OEDACLIを使用したOracle Linux KVMでのOracle RACクラスタの拡張

Oracle Linux KVM上の既存のOracle RACクラスタは、Oracle Exadata Deployment Assistantコマンドライン・インタフェース(OEDACLI)を使用してゲストを追加することにより拡張できます。

OEDACLIは、目的のクラスタに適した既知のバージョンのOEDA XMLファイルがある場合に適した方法です。

ノート:

この手順の実行中、既存のOracle RACクラスタ・ノードとそのデータベース・インスタンスでは、停止時間は発生しません。

ノート:

デプロイメント時に、クローンのゲストは、クライアント・ネットワーク構成やバックアップ・ネットワーク構成(存在する場合)など、ソース・ゲストから様々な構成属性を継承します。

すべてのKVMホストに同じネットワーク構成がある場合、継承された属性は期待どおりに機能します。

ただし、新しいKVMホストで別の物理ネットワーク構成が使用されている場合、クローンのゲストのデプロイメントは失敗します。この状況は、Exadataシステムに異なるバージョンの計算ノード・ハードウェアが含まれている場合に最も発生しやすくなります。たとえば、X10MサーバーをX8M-2ラックに追加する場合です。

この場合、デプロイメントの前にALTER NETWORKコマンドを使用して、関連するネットワーク定義を手動で調整する必要があります。詳細はOracleサポートにお問い合せください。

この手順のユースケースは次のとおりです。

  • Oracle Exadataラックのデータベース・サーバーのサブセットのみを使用する既存のOracle RACクラスタがあり、現在クラスタによって使用されていないノードが使用候補になった場合。
  • データベース・サーバーを追加することで最近拡張したOracle Exadataに既存のOracle RACクラスタがある場合。
  • 完全なノード障害が発生たノードを削除して新しくイメージ化したノードに置き換えた、既存のOracle RACクラスタがある場合。

この項のステップを実行する前に、「クラスタへの新しいデータベース・サーバーの追加」の説明に従って新しいデータベース・サーバーを設定しておく必要があります。これには、次の項目も含まれます。

  • KVMホストが含まれるネットワークに、新しいデータベース・サーバーをインストールして構成します。
  • 最新のOracle Exadata Deployment Assistant (OEDA)をダウンロードします(ダウンロードするファイルのバージョンが2019年7月以降のリリースであることを確認します)。
  • 既存のクラスタ構成を正確に反映したOEDA構成XMLファイルを用意します。このXMLファイルを検証するには、そのファイルからインストール・テンプレートを生成して現在の構成と比較します。OEDACLIコマンドSAVE FILESを参照してください。
  • 現在のシステム構成についてのOEDAインストール・テンプレートのレポートを確認して、既存のノードのノード名とIPアドレスを取得します。新しく追加するノードのために新しいホスト名とIPアドレスが必要になります。次の新しいホスト名とIPアドレスが必要になります。
    • KVMホストおよびゲストの管理ホスト名とIPアドレス(ADMINNETと呼ばれます)。
    • KVMホストおよびゲストのプライベート・ホスト名とIPアドレス(PRIVNETと呼ばれます)。
    • KVMホストIntegrated Lights Out Manager (ILOM)ホスト名とIPアドレス。
    • ゲストのクライアント・ホスト名とIPアドレス(CLIENTNETと呼ばれます)。
    • ゲストの仮想IP (VIP)ホスト名とIPアドレス(VIPNETと呼ばれます)。
    • 新しいノードの物理ラック番号とラック内のでの場所(U番号単位)
  • KVMホストは、既存のデータベース・サーバーで使用されているイメージと同じになるようにイメージ化またはパッチ適用されています。現在のシステム・イメージは、新しいKVMホスト・ノードの/EXAVMIMAGES/ System.first.boot.*.imgファイルのバージョンと一致している必要があります。

    ノート:

    この後で参照される~/dom0_groupファイルは、既存のノードと新しく追加するノードのすべてのKVMホストのホスト名が含まれているテキスト・ファイルです。

    すべてのKVMホストのイメージ・バージョンが同じであることを確認します。

    dcli -g ~/dom0_group -l root "imageinfo -ver"
    
    exa01adm01: 19.2.0.0.0.190225
    exa01adm02: 19.2.0.0.0.190225
    exa01adm03: 19.2.0.0.0.190225

    イメージのバージョンに異なるものがある場合は、そのバージョンが一致するようにノードをアップグレードする必要があります。

    すべてのKVMホストSystem.first.bootのバージョンが、前のステップで取得したイメージのバージョンと一致していることを確認します。

    dcli -g ~/dom0_group -l root "ls  -1 /EXAVMIMAGES/System.first.boot*.img" 
    exa01adm01:  /EXAVMIMAGES/System.first.boot.19.2.0.0.0.190225.img
    exa01adm02:  /EXAVMIMAGES/System.first.boot.19.2.0.0.0.190225.img
    exa01adm03:  /EXAVMIMAGES/System.first.boot.19.2.0.0.0.190225.img

    いずれかのノードに、現在のイメージと一致するSystem.first.boot.imgファイルがない場合は、必要なファイルを取得します。My Oracle SupportのドキュメントID 888828.1で、対象のExadataリリース用の補足READMEノートを確認し、"DomU System.img OS image for V.V.0.0.0 VM creation on upgraded dom0s"という説明文に対応するパッチ・ファイルを見つけてください。

  • klone.zipファイル(gi-klone*.zipdb-klone*.zip)を、クラスタに追加する新しくイメージ化されたKVMホスト・ノードの/EXAVMIMAGESの場所に配置します。これらのファイルは、最初にシステムをデプロイしたKVMホスト・ノードの/EXAVMIMAGESディレクトリにあります。

次の例は、exa01adm03vm01という名前の新しいゲストを持つexa01adm03という名前の新しいKVMホスト・ノードを追加する方法を示しています。このステップでは、OEDACLIコマンドを使用して、既存のOracle RACクラスタをゲストに拡張する方法を示します。既存のクラスタには、exa01adm01およびexa01adm02という名前のKVMホスト・ノードと、exa01adm01vm01およびexa01adm02vm01という名前のゲスト・ノードがあります。

  1. CLONE COMPUTEコマンドを使用して、KVMホストの情報をOEDA XMLファイルに追加します。

    次の各例では、OEDA XMLファイルがunzipped_OEDA_location/ExadataConfigurationsにあると仮定しています。

    OEDACLI> LOAD FILE NAME=exa01_original_deployment.xml 
    
    OEDACLI> CLONE COMPUTE SRCNAME=exa01adm01 TGTNAME=exa01adm03
    OEDACLI> SET ADMINNET NAME=exa01adm03,IP=xx.xx.xx.xx
    OEDACLI> SET PRIVNET NAME1=exa01adm03-priv1,IP1=xx.xx.xx.xx,NAME2=exa01adm03-priv2,IP2=xx.xx.xx.xx
    OEDACLI> SET ILOMNET NAME=exa01adm03-c,IP=xx.xx.xx.xx
    OEDACLI> SET RACK NUM=NN,ULOC=XX 
    
    OEDACLI> SAVE ACTION
    OEDACLI> MERGE ACTIONS FORCE
    OEDACLI> SAVE FILE NAME=exa01_plus_adm03_node.xml

    この時点で、構成内に新しい計算ノードのKVMホストが含まれた新しいXMLファイル(exa01_plus_adm03_node.xml)が存在します。このファイルは、次のステップで使用します。

  2. CLONE GUESTコマンドを使用して、新しいゲストの情報をOEDA XMLファイルに追加し、そのゲストをデプロイします。
    • 最初の例は、CLONE GUESTコマンドでWHERE句を使用して各ステップの名前を指定して、新しいゲストのデプロイメントを制御する方法を示しています。この方法でデプロイメントを実行することを選択した場合は、次のように、他のすべてのデプロイメント・ステップを実行する必要があります:

      OEDACLI> LOAD FILE NAME=exa01_plus_adm03_node.xml 
      
      OEDACLI> CLONE GUEST SRCNAME=exa01adm01vm01 TGTNAME=exa01adm03vm01 WHERE STEPNAME=CREATE_GUEST
      OEDACLI> SET PARENT NAME=exa01adm03
      OEDACLI> SET ADMINNET NAME=exa01adm03vm01,IP=xx.xx.xx.xx
      OEDACLI> SET PRIVNET NAME1=exa01db03vm01-priv1,IP1=xx.xx.xx.xx,NAME2=exa01db03vm01-priv2,IP2=xx.xx.xx.xx
      OEDACLI> SET CLIENTNET NAME=exa01client03vm01,IP=xx.xx.xx.xx
      OEDACLI> SET VIPNET NAME=exa01client03vm01-vip,IP=xx.xx.xx.xx
      
      OEDACLI> SAVE ACTION
      OEDACLI> MERGE ACTIONS
      OEDACLI> DEPLOY ACTIONS
      
      OEDACLI> CLONE GUEST SRCNAME=exa01adm01vm01 TGTNAME=exa01adm03vm01 WHERE STEPNAME=CREATE_USERS

      OEDACLI> SAVE ACTION
      OEDACLI> MERGE ACTIONS
      OEDACLI> DEPLOY ACTIONS
      
      OEDACLI> CLONE GUEST SRCNAME=exa01adm01vm01 TGTNAME=exa01adm03vm01 WHERE STEPNAME=CELL_CONNECTIVITY

      OEDACLI> SAVE ACTION
      OEDACLI> MERGE ACTIONS
      OEDACLI> DEPLOY ACTIONS
      
      OEDACLI> CLONE GUEST SRCNAME=exa01adm01vm01 TGTNAME=exa01adm03vm01 WHERE STEPNAME=ADD_NODE

      OEDACLI> SAVE ACTION
      OEDACLI> MERGE ACTIONS
      OEDACLI> DEPLOY ACTIONS
      
      OEDACLI> CLONE GUEST SRCNAME=exa01adm01vm01 TGTNAME=exa01adm03vm01 WHERE STEPNAME=EXTEND_DBHOME

      OEDACLI> SAVE ACTION
      OEDACLI> MERGE ACTIONS
      OEDACLI> DEPLOY ACTIONS
      
      OEDACLI> CLONE GUEST SRCNAME=exa01adm01vm01 TGTNAME=exa01adm03vm01 WHERE STEPNAME=ADD_INSTANCE

      OEDACLI> SAVE ACTION
      OEDACLI> MERGE ACTIONS
      OEDACLI> DEPLOY ACTIONS
    • または、WHERE句を省略して、1つのCLONE GUESTコマンドを使用してすべてのデプロイメント・ステップを実行できます。次に例を示します:

      OEDACLI> LOAD FILE NAME=exa01_plus_adm03_node.xml 
      
      OEDACLI> CLONE GUEST SRCNAME=exa01adm01vm01 TGTNAME=exa01adm03vm01
      OEDACLI> SET PARENT NAME=exa01adm03
      OEDACLI> SET ADMINNET NAME=exa01adm03vm01,IP=xx.xx.xx.xx
      OEDACLI> SET PRIVNET NAME1=exa01db03vm01-priv1,IP1=xx.xx.xx.xx,NAME2=exa01db03vm01-priv2,IP2=xx.xx.xx.xx
      OEDACLI> SET CLIENTNET NAME=exa01client03vm01,IP=xx.xx.xx.xx
      OEDACLI> SET VIPNET NAME=exa01client03vm01-vip,IP=xx.xx.xx.xx
      
      OEDACLI> SAVE ACTION
      OEDACLI> MERGE ACTIONS
      OEDACLI> DEPLOY ACTIONS

    デプロイメント方法に関係なく、ステップOEDACLIごとに、次のような進捗情報が表示されます:

    Deploying Action ID : 39 CLONE GUEST SRCNAME=exa01adm01vm01 TGTNAME=exa01adm03vm01 where STEPNAME=ADD_INSTANCE 
    Deploying CLONE GUEST 
    Cloning Guest 
    Cloning Guest  :  exa01adm03vm01.example.com_id 
    Adding new instance for database [dbm] on exa01adm03vm01.example.com 
    Setting up Huge Pages for Database..[dbm] 
    Adding instance dbm3 on host exa01adm03vm01.example.com 
    Successfully completed adding database instance on the new node [elapsed Time [Elapsed = 
    249561 mS [4.0  minutes] Fri Jun 28 13:35:52 PDT 2019]] 
    Done...
    Done
  3. 構成の現在の状態を保存して、構成情報を生成します。
    OEDACLI> SAVE FILES LOCATION=/tmp/exa01_plus_adm03_config

    前述のコマンドにより、すべての構成ファイルがディレクトリ/tmp/exa01_plus_adm03_configに書き込まれます。これらのファイルのコピーはクラスタへの変更を反映するようになっているため安全な場所に保存してください。

  4. Exachkレポートを収集して、クラスタの正常性に問題がないことを確認します。