4.9.3 InfiniBandネットワーク情報の変更

この手順は、InfiniBandネットワーク情報の変更方法を示しています。

この項に示される手順は、次の前提条件に基づいています。

  • すべての変更は、ilom-adminユーザーとしてIntegrated Lights Out Manager (ILOM)インタフェースを使用して実行する必要があります。

  • NET1およびNET2インタフェースを結合してBONDETH0を作成するため、クライアント・アクセス・ネットワークにチャネル・ボンディングが使用されます。チャネル・ボンディングを使用しない場合、手順のBONDETH0をNET1に置き換えてください。

  • Oracle Exadata X4-2以降のハードウェアでは、Oracle Exadata System Softwareリリース11.2.3.3.0の時点で、InfiniBandボンディングに使用される名前がBONDIB0からIB0およびIB1に変更されました。これらのインタフェースは、ifcfg-bondib0インタフェースと同じ方法で変更されます。

  • Oracle Exadata System Softwareリリース11.2.2.1.0の時点で、ボンディングに使用される名前が変更されました。InfiniBandボンディングにBONDIB0、イーサネット・ボンディングにBONDETH0という名前を使用します。以前のリリースでは、それぞれBOND0およびBOND1という名前でした。

  • 手順には、dcliユーティリティおよびrootユーザーを使用します。これにより、データベース・サーバーのコマンドをパラレルに実行して、手順を完了する全体の時間を大幅に短縮します。

  • dcliユーティリティには、SSHユーザー等価が必要になります。SSHユーザー等価が構成されない場合、一部のコマンドを各データベース・サーバーで明示的に実行する必要があります。

  • データベース・グループ・ファイルdbs_group/rootディレクトリに格納する必要があります。

  • InfiniBandネットワーク情報を変更する前に、Oracle Cluster Registry (OCR)の最新のバックアップが存在することを確認してください。OCRバックアップは、$Grid_home/cdata/cluster-nameディレクトリにあります。Grid_homeは、Oracle Grid Infrastructureソフトウェアをインストールした場所です。

  • Oracle Grid Infrastructure 11gリリース2 (11.2)以降では、プライベート・ネットワーク構成がグリッド・プラグ・アンド・プレイ(GPNP)プロファイルとOCRの両方に格納されます。GPNPの定義が正しくない場合、Oracle Clusterware CRSは起動しません。InfiniBandネットワーク情報を変更する前に、次のコマンドを使用して、すべてのノードのGPNPプロファイルのバックアップを作成してください。

    $ cd $Grid_home/gpnp/hostname/profiles/peer/
    $ cp -p profile.xml profile.xml.bk
    
  1. CLUSTER_INTERCONNECTパラメータがOracle DatabaseおよびOracle ASMインスタンスで使用されているか確認します。
    SQL> SELECT inst_id, name,value FROM gv$parameter WHERE name = \
    'cluster_interconnects';

    CLUSTER_INTERCONNECTパラメータがOCRに設定されている場合、値は返されません。CLUSTER_INTERCONNECTパラメータがサーバー・パラメータ・ファイル(SPFILE)に定義されている場合は、各インスタンスのIPアドレスが返されるため、新しいIPアドレスに変更する必要があります。

    次に、Oracle ASMインスタンスのIPアドレスを変更するコマンドの例を示します。この例では、IPアドレス192.168.10.1は+ASM1インスタンスを実行するサーバーのBONDIB0に割り当てられる新しいIPアドレスとなり、192.168.10.2は+ASM2インスタンスを実行するサーバーのBONDIB0のIPアドレスとなり、それ以降も同様です。

    ALTER SYSTEM SET CLUSTER_INTERCONNECTS='192.168.10.1' SCOPE=SPFILE SID='+ASM1';
    ALTER SYSTEM SET CLUSTER_INTERCONNECTS='192.168.10.2' SCOPE=SPFILE SID='+ASM2';
    ALTER SYSTEM SET CLUSTER_INTERCONNECTS='192.168.10.3' SCOPE=SPFILE SID='+ASM3';
    ...

    同様のコマンドを使用して、戻された各Oracle DatabaseインスタンスのIPアドレスを変更します。

  2. すべてのサーバーの新しいInfiniBandネットワーク情報の割当てを確認します。
    InfiniBand IPアドレス、ネットマスク、ブロードキャストおよびネットワークIP情報を確認する必要があります。
  3. oracleユーザーとして各データベース・サーバーのすべてのクラスタ管理サービスを停止します。
    $ srvctl stop home -o db_home -s state_filename -n node_name
    

    前述のコマンドのdb_homeOracle Databaseホーム・ディレクトリの完全なディレクトリ名、state_filenameは状態ファイルを書き込む場合のパス名、node_nameはデータベース名です。このコマンドの例を次に示します。

    $ srvctl stop home -o /u01/app/oracle/product/11.2.0.3/dbhome_1 -s \
    /tmp/dm02db01_dbhome -n dm02db01
    

    前述の例の/u01/app/oracle/product/11.2.0.3/dbhome_1Oracle Databaseホーム・ディレクトリ、/tmp/dm02db01_dbhomeは状態ファイル名、dm02db01はデータベース・サーバー名です。

  4. 最初のデータベース・サーバーのクラスタ相互接続インタフェースを変更して、BONDIB0インタフェースを使用します。

    ノート:

    この時点で、Oracle ClusterwareOracle Clusterware CRSおよびOracle ASMインスタンスのみ起動しています。
    1. oracleユーザーとしてログインします。
    2. $ORACLE_HOMEOracle Grid Infrastructureホームに設定します。
    3. ORACLE_SID環境変数のベースを設定します。
      ORACLE_HOME環境変数はOracle Grid Infrastructureのホームに設定する必要があります。
      $ ORACLE_SID=+ASM1
      
    4. 使用できるクラスタ・インタフェースをリストします。
      $ oifcfg iflist
      

      次に、出力の例を示します。

      bondeth0 10.128.174.160
      bondeth1 10.128.176.0
      eth0 10.128.174.128
      ib0 192.168.160.0
      ib0 169.254.0.0
      ib1 192.168.160.0
      ib1 169.254.128.0
      
    5. 現在割り当てられているクラスタ・インタフェースをリストします。
      $ oifcfg getif
      

      次に、出力の例を示します。

      bondeth0 10.204.76.0 global public
      ib0 192.168.16.0 global cluster_interconnect,asm
      ib1 192.168.16.0 global cluster_interconnect,asm
      
    6. グローバル・クラスタ相互接続インタフェースとしてib0とib1のインタフェースに新しいIPアドレスを割り当てます。
      oifcfg setif -global ib0/192.168.8.0:cluster_interconnect
      oifcfg setif -global ib1/192.168.8.0:cluster_interconnect
    7. 現在のインタフェースをリストします。
      $ oifcfg getif
      

      次に、出力の例を示します。

      bondeth0 10.128.174.160 global public
      ib0 192.168.8.0 global cluster_interconnect
      ib1 192.168.8.0 global cluster_interconnect
      

      古いプライベート・インタフェースは後で削除します。

  5. 各データベース・サーバーのOracle ClusterwareおよびOracle Clusterware CRSを停止します。
    1. rootユーザーとしてログインします。
    2. 次のコマンドを使用して、各データベース・サーバーのOracle Clusterware CRSを停止します。
      # Grid_home/grid/bin/crsctl stop crs -f
      
    3. 各データベース・サーバーのOracle Clusterware CRSの自動的な再起動を無効化します。
      # Grid_home/grid/bin/crsctl disable crs
      
  6. Oracle Exadata Storage ServerInfiniBand IPアドレスを変更します。
    1. rootユーザーとしてログインします。
    2. セルのサービスを停止します。
      # cellcli -e alter cell shutdown services all
        Stopping the RS, CELLSRV, and MS services...  The SHUTDOWN of services was successful.
    3. ipconfコマンドを実行します。

      次に、ipconfコマンドのプロンプトおよび応答の例を示します。変更内容は、基本的なIntegrated Lights Out Manager (ILOM)設定の入力要求後に適用されます。

      # ipconf
      
      Logging started to /var/log/cellos/ipconf.log
      Interface ib0 is Linked.  hca: mlx4_0
      Interface ib1 is Linked.  hca: mlx4_0
      Interface eth0 is Linked.  driver/mac: ixgbe/00:00:00:00:cd:01
      Interface eth1 is ... Unlinked.  driver/mac: ixgbe/00:00:00:00:cd:02
      Interface eth2 is ... Unlinked.  driver/mac: ixgbe/00:00:00:00:cd:03
      Interface eth3 is ... Unlinked.  driver/mac: ixgbe/00:00:00:00:cd:04
       
      Network interfaces
      Name     State      IP address      Netmask         Gateway         Net type     Hostname
      ib0      Linked
      ib1      Linked
      eth0     Linked
      eth1     Unlinked
      eth2     Unlinked
      eth3     Unlinked
      Warning. Some network interface(s) are disconnected. Check cables and switches and retry
      Do you want to retry (y/n) [y]: n
       
      The current nameserver(s): 192.0.2.10 192.0.2.12 192.0.2.13
      Do you want to change it (y/n) [n]:
      The current timezone: America/Los_Angeles
      Do you want to change it (y/n) [n]:
      The current NTP server(s): 192.0.2.06 192.0.2.12 192.0.2.13
      Do you want to change it (y/n) [n]:
       
      Network interfaces
      Name     State           IP address    Netmask        Gateway       Net type            Hostname
      eth0     Linked       192.0.2.151  255.255.252.0 192.0.2.15    Management   myg.example.com
      eth1     Unlinked
      eth2     Unlinked
      eth3     Unlinked
      bondib0  ib0,ib1      192.168.13.101 255.255.252.0  Private             myg-priv.example.com
      Select interface name to configure or press Enter to continue: bondib0
      Selected interface. bondib0
      IP address or none [192.168.13.101]: 192.168.10.3
      Netmask [255.255.252.0]:255.255.248.0
      Fully qualified hostname or none [myg-priv.example.com]:
      Continue configuring or re-configuring interfaces? (y/n) [y]: n
       
      Select canonical hostname from the list below
      1: myg.example.com
      2: myg-priv.example.com 
      Canonical fully qualified domain name [1]:
       
      Select default gateway interface from the list below
      1: eth0
      Default gateway interface [1]:
       
      Canonical hostname: myg.example.com
      Nameservers: 192.0.2.10 192.0.2.12 192.0.2.13
      Timezone: America/Los_Angeles
      NTP servers: 192.0.2.06 192.0.2.12 192.0.2.13
      Default gateway device: eth0
      Network interfaces
      Name     State      IP address      Netmask         Gateway         Net type     Hostname
      eth0     Linked     192.0.2.151   255.255.252.0 192.0.2.15     Management   myg.example.com
      eth1     Unlinked
      eth2     Unlinked
      eth3     Unlinked
      bondib0  ib0,ib1    192.168.10.3    255.255.248.0                   Private      myg-priv.example.com
      Is this correct (y/n) [y]:
       
      Do you want to configure basic ILOM settings (y/n) [y]: n
      
      Starting the RS services...
      Getting the state of RS services...  running
       
      Starting MS services...
      The STARTUP of MS services was successful.
      A restart of all services is required to put new network configuration into
      effect. MS-CELLSRV communication may be hampered until restart.
      Cell myg successfully altered
       
      Stopping the RS, CELLSRV, and MS services...
      The SHUTDOWN of services was successful.
      ipaddress1=192.168.10.3/21
      
    4. Oracle Exadata Storage Serverを再起動します。
      # shutdown -r now
  7. セル・サービスを再起動します。
    # cellcli -e alter cell restart services all
    
  8. Oracle Exadata Storage Serverに新しく割り当てられたInfiniBandアドレスを確認します。
    # cellcli -e list cell detail | grep ipaddress1
    

    次に、出力の例を示します。

    ipaddress1: 192.168.10.3/21
    
  9. 各データベース・サーバーのInfiniBand IPアドレスを変更します。
    1. rootユーザーとしてログインします。
    2. /etc/sysconfig/network-scriptsディレクトリに変更します。
    3. ifcfg-bondib0ファイルをコピーします。

      コピーしたファイル名の先頭にifcfgを使用しないでください。

      # cp ifcfg-bondib0 orig_ifcfg-bondib0
      
    4. ifcfg-bondib0ファイルを編集して、IPADDR、NETMASK、NETWORKおよびBROADCASTフィールドを更新します。

      元のifcfg-bondib0ファイルの例:

      #### DO NOT REMOVE THESE LINES ####
      #### %GENERATED BY CELL% ####
      DEVICE=bondib0
      USERCTL=no
      BOOTPROTO=none
      ONBOOT=yes
      IPADDR=192.168.20.8
      NETMASK=255.255.248.0
      NETWORK=192.168.16.0
      BROADCAST=192.168.23.255
      BONDING_OPTS="mode=active-backup miimon=100 downdelay=5000 updelay=5000"
      IPV6INIT=no
      MTU=65520
      

      更新後のifcfg-bondib0ファイルの例:

      #### DO NOT REMOVE THESE LINES ####
      #### %GENERATED BY CELL% ####
      DEVICE=bondib0
      USERCTL=no
      BOOTPROTO=none
      ONBOOT=yes
      IPADDR=192.168.10.8
      NETMASK=255.255.248.0
      NETWORK=192.168.8.0
      BROADCAST=192.168.15.255
      BONDING_OPTS="mode=active-backup miimon=100 downdelay=5000 updelay=5000"
      IPV6INIT=no
      MTU=65520
      

      ノート:

      データベース・サーバーのInfiniBandインタフェースのMTUサイズは、次のように設定する必要があります。

      • Oracle Exadata System Softwareリリース11.2.3.3以降の場合は、MTUサイズを7000に設定します。

      • Oracle Exadata System Softwareリリース11.2.3.3より前のリリースでは、MTUサイズを65520に設定し、メディア・サーバーまたはNFSサーバーなどのInfiniBand経由のTCP/IPを使用して外部デバイスへの高速転送を実現します。

    5. データベース・サーバーを再起動します。
      # shutdown -r now
      
    6. InfiniBand IPアドレス情報を確認します。
      # ifconfig -a
      

      次に、BONDIB0情報の例を示します。更新されたInfiniBandネットワーク情報が表示されます。

      inet addr:192.168.10.8 Bcast:192.168.15.255 Mask:255.255.248.0
      
  10. 各データベース・サーバーのcellinit.oraおよびcellip.oraファイルを更新します。

    ノート:

    データベースまたはOracle ASMインスタンスを実行中は、cellinit.oraまたはcellip.oraファイルは編集しないでください。ファイルを変更するには、次のような手順を実行します。

      1. ファイルのコピーを作成します。

        cp cellinit.ora cellinit.new
      2. テキスト・エディタでcellinit.newファイルを編集します。

      3. 古いcellinit.oraファイルを更新したcellinit.newファイルに置き換えます。

        mv cellinit.new cellinit.ora
    1. rootユーザーとしてログインします。
    2. /etc/oracle/cell/network-configディレクトリに変更します。
    3. cellip.oraファイルのバックアップ・コピーを作成します。
      # cp cellip.ora orig_cellip.ora
      

      ノート:

      SSHユーザー等価を使用する場合、dcliユーティリティを使用できます。次に、dcliコマンドの例を示します。

      # dcli -l root -g /root/dbs_group "cp cellip.ora orig_cellip.ora"
    4. cellinit.oraファイルのバックアップ・コピーを作成します。

      このコマンドの例を次に示します。

      # cp cellinit.ora orig_cellinit.ora
      

      ノート:

      SSHユーザー等価を使用する場合、dcliユーティリティを使用できます。次に、dcliコマンドの例を示します。

      # dcli -l root -g /root/dbs_group "cp cellinit.ora \
      orig_cellinit.ora"
    5. cellip.oraファイルのInfiniBand IPアドレスを変更します。

      元のファイルの例

      cell="192.168.20.1"
      cell="192.168.20.2"
      cell="192.168.20.3"
      cell="192.168.20.4"
      cell="192.168.20.5"
      cell="192.168.20.6"
      cell="192.168.20.7"
      

      更新されたファイルの例

      cell="192.168.10.1"
      cell="192.168.10.2"
      cell="192.168.10.3"
      cell="192.168.10.4"
      cell="192.168.10.5"
      cell="192.168.10.6"
      cell="192.168.10.7"
      

      ノート:

      SSHユーザー等価を使用する場合、dcliユーティリティを使用して、更新されたファイルを最初のデータベース・サーバーから他のデータベース・サーバーにコピーできます。次に、dcliコマンドの使用例を示します。

      # dcli -l root -g /root/dbs_group -f \
      /etc/oracle/cell/network-config/cellip.ora 
      
      # dcli -l root -g /root/dbs_group "mv /root/cellip.ora \
      /etc/oracle/cell/network-config/"
    6. cellinit.oraファイルのInfiniBand IPアドレスを変更します。

      ファイルは、サブネットIDとそのサブネット・マスクで更新されます。

      元のファイルの例

      ipaddress="192.168.20.8/21"
      

      更新されたファイルの例

      ipaddress="192.168.10.8/21"
      

      各データベース・サーバーのcellinit.oraファイルを更新します。ファイルの内容は、データベース・サーバーに固有です。このステップにdcliユーティリティは使用できません。

    7. 各データベース・サーバー上でALTER DBSERVERコマンドを実行して/etc/oracle/cell/network-config/cellinit.oraファイルを更新します。
      # dbmcli -e alter dbserver interconnect1 = "ib0"
      # dbmcli -e alter dbserver interconnect2 = "ib1"
      # dbmcli -e alter dbserver interconnect3 = "ib2"
      # dbmcli -e alter dbserver interconnect4 = "ib3"
      
  11. 各データベース・サーバーおよびOracle Exadata Storage Server/etc/hostsファイルを更新して、新しいInfiniBand IPアドレスを使用します。
    1. rootユーザーとしてログインします。
    2. /etc/hostsファイルのバックアップ・コピーを作成します。
      # cp /etc/hosts /etc/orig_hosts
      
    3. データベース・サーバーおよびOracle Exadata Storage ServerファイルのInfiniBand IPアドレスを変更します。
  12. 各サーバーでrootユーザーとしてOracle Clusterwareを起動します。
    # Grid_home/grid/bin/crsctl start crs
    
  13. Oracle ASMalert.logを確認して、各データベース・サーバーのクラスタ相互接続にRDSプロトコルが使用されていることを確認します。
    ログは/u01/app/oracle/diag/asm/+asm/+ASM1/traceディレクトリにあります。最新のOracle ASMの再起動に次のようなエントリが示されます。
    CELL interconnect IPC version: Oracle RDS/IP (generic)
    

    Oracle Exadata System Softwareリリース11.2.0.2以降の場合は、次のコマンドを使用してクラスタ相互接続を検証できます。コマンドは各データベース・サーバーのoracleユーザーとして実行します。

    $ORACLE_HOME/bin/skgxpinfo
    

    コマンド出力はrdsとなります。

    インスタンスがInfiniBandでRDSプロトコルを使用していない場合は、次のステップを使用してOracleソフトウェアを再リンクします。

    ノート:

    Oracleソフトウェアの再リンクにrelink allコマンドを使用しないでください。
    1. oracleユーザーとして、Oracleソフトウェアを使用するすべてのプロセスを停止します。
    2. Oracle Grid Infrastructureホームを再リンクする場合は、rootユーザーとして次のいずれかのコマンドを実行します。Oracle Grid Infrastructureホームを再リンクしない場合は、このステップは実行しないでください。
      • Oracle Grid Infrastructureリリース12.2.0.1以上の場合:

        # Grid_home/crs/install/rootcrs.sh -unlock
      • Oracle Grid Infrastructureリリース12.1.0.1または12.1.0.2の場合:

        # Grid_home/crs/install/rootcrs.pl -unlock
        
    3. oracleユーザーとして、$ORACLE_HOME/rdbms/libディレクトリに移動します。
    4. oracleユーザーとして、次のコマンドを実行します。
      $ make -f ins_rdbms.mk ipc_rds ioracle
      
    5. Oracle Grid Infrastructureホームを再リンクする場合は、rootユーザーとして次のいずれかのコマンドを実行します。Oracle Grid Infrastructureホームを再リンクしない場合は、このステップは実行しないでください。
      • Oracle Grid Infrastructureリリース12.2.0.1以上の場合:

        # Grid_home/crs/install/rootcrs.sh -unlock
        # Grid_home/bin/crsctl start crs
      • Oracle Grid Infrastructureリリース12.1.0.1または12.1.0.2の場合:

        # Grid_home/crs/install/rootcrs.pl -patch
        
  14. SRVCTLユーティリティを使用して、すべてのクラスタ管理サービスを起動します。
    1. oracleユーザーとしてログインします。
    2. 次のコマンドを使用してデータベースを起動します。Oracle_homeはOracleホーム・ディレクトリです。
      $ srvctl start home -o Oracle_home \
      -s /tmp/dm02db01_dbhome -n dm02db01
      
    3. データベース・インスタンスが実行中であることを確認します。
      $ srvctl status database -d dbm
      
  15. Oracle ASMおよびデータベース・インスタンスが新しいネットワーク設定を使用していることを確認します。
    1. SQL*Plusを使用してOracle ASMおよびデータベース・インスタンスにログインします。
    2. クラスタのインターコネクト情報を問い合せます。
      SQL> SELECT inst_id, name,value FROM gv$parameter WHERE name = \
      'cluster_interconnects';
  16. 古いプライベート・ネットワークを削除します。
    $ oifcfg delif -global bondib0/192.168.16.0
    
  17. 古いインタフェースが存在していないことを確認します。
    $ oifcfg getif
    bondeth0  10.204.76.0  global public
    bondib0   192.168.8.0  global cluster_interconnect
    
  18. 各データベース・サーバーでOracle Clusterware CRSの自動再起動を有効化します。
    1. rootユーザーとしてログインします。
    2. Oracle Clusterware CRSを有効にします。
      # Grid_home/grid/bin/crsctl enable crs
      

      ノート:

      dcliユーティリティを使用するために、Oracle Clusterware CRSを有効化します。

      # dcli -l root -g dbs_group "Grid_home/grid/bin/crsctl \
      enable crs"
  19. すべてのノードでOracle Clusterwareの完全再起動を実行します。
  20. My Oracle SupportのドキュメントID 1070954.1に記載のステップに従って、Oracle Exadataラックのヘルス・チェックを実行します。

    ノート:

    Exachkユーティリティは、Oracle Exadataラックの主要なソフトウェア、ハードウェア、ファームウェア・リリースおよび構成ベスト・プラクティスについてのデータを収集します。

    Oracle Exadataラックの主要なコンポーネントの現在のデータを定期的に確認して、サポートされているリリース・レベルおよび推奨されているベスト・プラクティスと比較することをお薦めします。

    Exachkは、データベース、ネットワークまたはSQLのパフォーマンス分析ツールではありません。連続監視ユーティリティではなく、ILOMOracle Enterprise Manager Cloud Controlなどのモニタリング・ツールまたはアラート・ツールと重複するものではありません。

  21. クラスタウェア検証ユーティリティcluvfyを使用してプライベート・ネットワーク構成を検証します。