ヘッダーをスキップ
Oracle® Virtual Assembly Builderユーザーズ・ガイド
11g リリース1 (11.1.1.6)
B66713-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

D トラブルシューティング

次の各項では、Oracle Virtual Assembly Builderのトラブルシューティングに関するテクニックについて説明し、トラブルシューティング項目を特定します。

D.1 一般的な問題

この項では、一般的な問題のトラブルシューティングについて説明します。

D.1.1 別のクライアントが稼働していることを示すエラー

abctlまたはabstudio.shを起動しようとしてこのエラーが表示され、稼働しているOracle Virtual Assembly Builderクライアントが他にないことを確認した場合、マシンでファイル・ロックが不足している可能性があります。

Oracle Virtual Assembly Builder Studioまたはabctlを使用して同時操作を実行しているときにも、このようなエラーが表示されることがあります。この問題を解決するには、ロックの解放が遅くなる環境上の問題がないかどうかをチェックしてください。

D.1.2 phone homeのタイムアウト

phone homeのタイムアウトをトラブルシューティングする手順は、次のとおりです。

  1. Oracle Virtual Assembly Builderホストのファイアウォールがオフになっていることを確認します。

    rootとして、次のコマンドを実行します。

    $/sbin/service iptables status
    $/sbin/service iptables stop
    

    マシンの再起動時に自動的に起動するようにファイアウォールが構成されている場合があります。これを回避するには、次のコマンドを実行して完全にオフにします。

    $/sbin/chkconfig iptables off
    
  2. phone homeのデフォルトのタイムアウトは、15分です。タイムアウトは、<Deployer WLS domain root>/ovab/config/deployer/deployer.propertiesで増やすことができます。

    このファイルが存在しない場合は、作成してphoneHomeTimeout=<number of seconds>のような行を追加します。

D.1.3 既存のアセンブリ・アーカイブ(OVAファイル)によるアセンブリの変更の妨害

アセンブリ用にアセンブリ・アーカイブを作成すると、そのアセンブリはロックされます。つまり、アーカイブを削除しないかぎり、形状、プロパティ、パッケージまたはテンプレートを変更できません。アーカイブは、abctl delete -archiveOnly -name <assembly name>を使用して削除できます。

D.2 イントロスペクションおよびファイル・セット取得の失敗

この項では、イントロスペクションおよびファイル・セット取得の問題のトラブルシューティングについて説明します。

D.2.1 VMのイントロスペクション

デプロイされた仮想マシン(VM)のイントロスペクションは、イントロスペクションに使用される一時ディレクトリがマウントされたNFS共有で、NFSファイルがロックされている場合、完了に失敗することがあります。この問題を回避するには、ロックをオフにしてNFSファイル・システムを再マウントします。

mount -o nolock example:/scratch /net/example/scratch

D.2.2 リモート操作の失敗

リモート操作のログは、リモート操作の最後にローカル・ディレクトリ$AB_INSTANCE/logs/remote_<remote machine name>/にコピーされます。たとえば、リモート・マシンがabc12345の場合、ログは$AB_INSTANCE/logs/remote_abc12345.example.com/に格納されます。

デフォルトのリモート作業ディレクトリは/tmp/abRemote_<remote username>ですが、これは、-remoteWorkingDirフラグを使用してオーバーライドできます。

D.2.2.1 リモート・マシンでipv6を実行中に発生する接続不可エラー

リモート・イントロスペクション/パッケージングを実行できず、「接続できません」エラーが表示される場合、1つの可能性として、リモート・マシンでipv6を実行しているのにsshd_configファイルが正しくないことが考えられます。

リモート・システムがipv6およびipv4を使用するように構成されている場合、次の行がsshd_configファイルに指定されている必要があります。

AddressFamily any

(AddressFamily inetではありません)

D.2.2.2 パスワード入力後のリモート操作のハング

リモート・パスワードの入力後にリモート操作がハングする場合、強制終了された前のリモート操作から残された孤立したリモート・プロセスによる可能性があります。リモート作業ディレクトリがリモート・プロセス下から移されると、この事象が発生する場合があります。リモート・マシンに移動して孤立したリモート・プロセスをすべて強制終了し、リモート作業ディレクトリをクリーンアップして再度リモート操作を試行してください。

リモート・プロセスは、次のように表示されます。

aime1    11662     1  0 11:51 ?        00:00:01 /tmp/user/abRemote_aime1/ab_home/jre/jre/bin/java 
  -Doracle.core.ojdl.logging.config.file=/tmp/user/abRemote_aime1/ab_instance/config/logging.xml 
  -Djava.util.logging.config.class=oracle.core.ojdl.logging.LoggingConfiguration 
  -Djava.security.egd=file:/dev/./your -Dassemblybuilder.spif.app=apps/remotingapp 
  -jar /tmp/kaw/abRemote_aime1/ab_home/jlib/oracle.as.assemblybuilder.spif_0.1.0.jar

D.2.2.3 ファイル権限の問題

リモート操作用に指定するリモート・ユーザーまたはsudoユーザーが参照インストールのファイルに対する読取り権限を持っていることを確認してください。

D.2.2.4 リモート接続の失敗

リモート操作(イントロスペクションおよびファイル・セット作成)が正常に機能するように、参照システムのSSHポート転送を有効にする必要があります。次のようにして、ssh構成ファイルをチェックします。

~/.ssh/config
/etc/ssh/ssh_config

指定したremoteUserのシェルがログイン時にstdout/stderrに出力する場合、次のエラーが発生することがあります。

Error: Error initializing the remote connection.
Caused by: OAB-90061: Unable to create connection to remote server.
Cause: Timed out trying to connect to IPV4 and IPV6 sockets.

リモート・ユーザーのプロファイルおよびrcファイルをチェックし、これを実行するロジックを取り除きます。あるいは、別のリモート・ユーザーを指定し、sudoUserパラメータを使用して参照インストールを調査/取得する権限を持つユーザーを指定します。

D.2.2.5 リモート・ファイル・セット取得の失敗

リモート作業ディレクトリには、ローカル・マシンに戻される前に、ファイル・セットの格納に使用できる十分なディスク領域が必要です。

D.3 テンプレート作成の失敗

テンプレート作成操作が失敗した場合、次のことをチェックします。

D.3.1 不十分なループ・デバイス数

大量のファイル・セットがある一般製品のテンプレートを作成するにはOracle Virtual Assembly BuilderホストのLinuxループ・デバイス数が足りないという問題が発生する場合があります。

テンプレートの作成時、Oracle Virtual Assembly Builderおよびmodifyjeosでは、テンプレートのディスクごとに使用可能なLinuxループ・デバイスが1つ(つまり、System.imgおよびAB.imgのそれぞれに1つと、製品ディスクごとに1つ)必要です。一般的なOracle Linuxシステムには、ループ・デバイスが7つしかありません。つまり、最大5つのファイル・セットがあるテンプレートに対してテンプレートを作成できます。

ファイル・セットがそれより多いアプライアンスのテンプレートを作成するには、ループ・デバイスを追加作成する必要があります。これを実行する方法は、次のとおりです。

  1. /etc/modprobe.confを編集します。次のような行を追加します。

    options loop max_loop=<n> 
    

    <n>は、作成するループ・デバイスの数です。

  2. rootとして次のコマンドを実行し、Linuxカーネル・ループ・モジュールをアンロードおよびリロードします。

    # /sbin/modprobe -r loop 
    # /sbin/modprobe -v loop 
    
  3. 新しいループ・デバイスが作成されたことを確認します。

    $ ls -l /dev/loop* 
    

    <n>個のループ・デバイスが見つかります。

D.4 デプロイヤ通信の失敗

この項では、デプロイヤ通信の失敗のトラブルシューティングについて説明します。

D.4.1 無効なデプロイヤ・レスポンスが返される

次のエラーが発生することがあります。

Caused by: Invalid deployer response returned.
  Cause: OAB-113409 - An invalid response was returned by the deployer.
  Action: OAB-113409 - Please check the deployer log for additional details.

デプロイヤをホストするOracle WebLogic Serverのデプロイメントをチェックし、デプロイヤ・アプリケーションの状態が「アクティブ」であり、ステータスが「OK」であることを確認します。

D.4.2 デプロイヤからの401/403エラー

デプロイヤとやり取りしようとして401/403エラーが発生した場合、デプロイヤをホストするOracle WebLogic Serverのコンソールで次の項目をチェックします。

  1. 「デプロイメント」 > デプロイヤに移動し、セキュリティ・モデルが「CustomRoles」であることを確認します。

  2. 「デプロイメント」 > デプロイヤ > [セキュリティ] > [ロール] > 「Application Admin」に移動し、条件にCloud AdminsグループまたはApplication Adminsグループが含まれていることを確認します。

  3. 「デプロイメント」 > デプロイヤ > [セキュリティ] > [ロール] > 「Cloud Admin」に移動し、条件にCloud Adminsグループが含まれていることを確認します。

  4. 「セキュリティ・レルム」 > 「myrealm」 > [ユーザーとグループ] > [グループ]に移動し、「Application Admins」と「Cloud Admins」が存在し、DefaultAuthenticatorによって処理されることを確認します。

  5. 「セキュリティ・レルム」 > 「myrealm」 > [ユーザーとグループ] > [ユーザー]に移動し、「applicationAdmin」と「cloudAdmin」が存在し、DefaultAuthenticatorによって処理されることを確認します。

  6. 「デプロイメント」 > デプロイヤ > [セキュリティ] > [URLパターン]に移動し、root url-patternにロール定義がないことを確認します。

  7. クライアントで接続を作成するときに、ユーザー名が手順5で示した2つのうちのいずれかであり、そのユーザーのパスワードとともに指定されていることを確認します。

D.5 登録の失敗

登録が応答なしになった場合、次のことをチェックします。

D.6 デプロイメントの失敗

この項では、デプロイメントの失敗のトラブルシューティングについて説明します。

Studioログまたはデプロイヤ・ログから失敗の原因を特定できない場合、調査を続行する必要があります。Oracle VM Managerコンソールにログインし、アセンブリのVMが作成および起動されているかどうかを確認します。

D.6.1 VMが作成されない

VMが作成されなかった理由を示すものがないか、デプロイヤと、Oracle VMおよびOracle VM Serverのログをチェックします。


注意:

特にOracle Virtual Assembly Builder以外でクリーンアップ・タイプのアクティビティがOracle VM環境で実行された場合、デプロイヤの状態キャッシュがOracle VM環境と同期しなくなる可能性があります。アセンブリがOracle VM環境から実際には削除されている場合に、デプロイヤでは登録またはデプロイされていると記録されていることがあります。この事象が発生した場合、Oracle Virtual Assembly Builderを使用してアーカイブを登録解除およびアンデプロイしてから、もう一度登録およびデプロイする必要があります。


D.6.2 VMが作成されたが実行されない

VMが作成されたのに実行されない場合、次の手順を実行します。

  1. VMが起動されなかった理由を示すものがないか、デプロイヤと、Oracle VMおよびOracle VM Serverのログをチェックします。

  2. 手動によるVMの起動を試み、有効な出力が得られるかどうかを確認します。

    1. 失敗したVMを作成したOracle VM Serverマシンにログインします(Oracle VM Managerコンソールから、プール内のどのマシンがVMを所有しているかを確認できます)。

    2. 問題のVMのvm.cfgを探します。このファイルは/OVS/Repositories下のどこかにあり、Oracle VMコンソールからのIDがパスに含まれています。

    3. xm create -f <vm.cfg file>コマンドを使用してVMを起動します。

  3. ディスク・イメージのマウントを試み、ログが作成されるかどうかを確認します。(これは、VMが起動した後、なんらかの理由で停止した場合が考えられます)。Oracle Enterprise Linuxイメージは複数のディスクで構成されます。AB.img、System.img、Product_001.imgなど、該当するディスクをマウントする必要があります。

    1. Oracle Virtual Assembly BuilderログはAB.imgディスクにあります。ただし、Oracle VM環境に登録されると、そのイメージの名前は変わります。新しい名前になったイメージの場所を探すには、vm.cfgを見つける必要があります。このファイルは/OVS/Repositories下のどこかにあり、Oracle VMコンソールからのVM IDがパスに含まれています。

    2. 見つかったイメージ・ファイルへのパスを使用して、ループ・デバイスを特定します。

      #kpartx -a <path to img file>
      #kpartx -l <path to img file>
      
    3. 前のコマンドのリスト出力から、どのループ・デバイスがディスクにマップされているかを特定できます。ディスクをマウントし、ループ・デバイスを指定します。

      #mount /dev/mapper/loop?p? /mnt
      

      上の最初の疑問符(?)はループ・デバイス数を表し、通常ゼロですが異なる数値でもかまいません。2番目の疑問符はパーティション番号で、通常ゼロですが異なる数値でもかまいません。

    4. /mntに移動し、ファイルを調べます。再構成がログの作成に十分である場合、AB.imgのにログは/mnt/logsにあります。

    5. 次のように入力します。

      #umount /dev/mapper/loop?p?
      #kpartx -d AB.img
      

D.6.3 VMが作成および実行されたがpingできない

マシンのネットワーク構成がなんらかの理由で正常に完了しませんでした。DHCPを使用している場合は、Oracle VM環境でDHCPをサポートしていることを確認します。静的IPアドレスを使用している場合は、対応するホスト名をデプロイメント・プランに指定していることも確認します。この指定は必須です。

次のネットワーク関連プロパティをすべてデプロイメント・プランに指定する必要があります。

  • アセンブリ・レベル

    • network_name (ターゲット(Oracle VM)環境のネットワーク名と一致する必要あり)

  • 各アプライアンスのネットワーク・プロパティ内

    • hostname (静的IPを使用する場合)

    • default-gateway

    • dns-domains (1つのみサポート)

    • dns-servers (1つのみサポート)

  • 各アプライアンスのネットワーク・インタフェース(NIC)ごと

    • ip_address (静的IPを使用する場合)

    • netmask

    • usedhcp (静的IPを使用する場合はfalse)

D.6.3.1 pingできない実行中のVMへのアクセス方法

VMにアクセスする手順は、次のとおりです。

  1. 失敗したVMを作成したOracle VM Serverマシンにログインします(Oracle VM Managerコンソールから、プール内のどのマシンがVMを所有しているかを確認できます)。

  2. xm listコマンドを実行します。

  3. 返されたリストでVMを探します。Oracle VM ManagerコンソールでVM IDを探します。

  4. xm console <VM ID>コマンドを実行し、[Enter]を押して資格証明(user: root、password: テンプレート作成時に指定したパスワード)を指定します。

D.6.3.2 ネットワーク構成の失敗のトリアージ

失敗をトリアージする手順は、次のとおりです。

  1. /assemblybuilder/logs下のログをチェックします。ログがない場合は、次の手順を続行します。

  2. abサービスがインストールされたかどうかを確認します。abサービスは、/etc/init.d/abにインストールされます。そこにない場合は、oraclevm-templateサービス・ログ/var/log/oraclevm-templateを調べます。oraclevm-templateサービスによって、abサービスはインストールされます。

    abサービスがない場合、ORACLE_HOMEのab_service.shおよびoraclevm-template.shに対する権限が正しいことを確認します。これらのファイルは、実行可能です。実行可能でない場合は、権限を修正し、アセンブリ・アーカイブを再作成してアップロードおよび登録し、デプロイを再試行します。

  3. 遅延バインドが正しくない、またはVMに送信されなかったと考えられる場合は、/assemblybuilder/etc/vmapi get +コマンドを実行できます。

    このコマンドにより、遅延バインドが出力されます。

D.6.3.3 VMが作成および起動されpingできる

VMが起動しpingできる場合、VMのネットワーク構成は正常に完了しました。

  1. 失敗したVMにログインして、/assemblybuilder/logs下のログをチェックします。ログ・セクションで、各種ログ・ファイルの内容に関する詳細を確認します。rootユーザーおよびテンプレートの作成時に指定したパスワードを使用して、マシンへのsshを実行できる必要があります。

  2. 遅延バインドが正しくない、またはVMに送信されなかったと考えられる場合は、/assemblybuilder/etc/vmapi get +コマンドを実行できます。

    このコマンドにより、遅延バインドが出力されます。

D.7 ログの場所と説明

この項には、ログの場所と説明が記載されています。複数の異なるログとログの場所がありますが、これらは失敗をトリアージする時期を知るのに役立ちます。

D.7.1 Studioログ

Studioログのログ・レベルは、$AB_INSTANCE/config/logging.xmlを編集して変更することができます。目的のレベルを指定して次の行を変更します。

<logger name="oracle.as.assemblybuilder" level="FINE">

ローカル・ログ

$AB_INSTANCE/logs/assemblybuilder.log

$AB_INSTANCE/logs/bottler/* - テンプレート作成時に使用されるmodifyjeosツールからの出力

リモート・ログ

リモート操作のログは、リモート操作の最後にローカル・ディレクトリ$AB_INSTANCE/logs/remote_<remote machine name>/にコピーされます。たとえば、リモート・マシンがabc12345の場合、ログは$AB_INSTANCE/logs/remote_abc12345.example.com/に格納されます。

デフォルトのリモート作業ディレクトリは/tmp/abRemote_<remote username>ですが、これは、-remoteWorkingDirフラグを使用してオーバーライドできます。

D.7.2 デプロイヤ・ログ

デプロイヤ・アプリケーション・ログ・メッセージは、デプロイヤ・アプリケーションがデプロイされたWLSのサーバー・ログまたはドメイン・ログ、あるいはその両方にあります。また、Oracle WebLogic Serverのstdout/stderrにも関連情報やスタック・トレースが含まれることがあります。

<Deployer WLS domain root>/servers/<server targeted by Deployer app>/logs/*

D.7.3 Oracle VMログ

Oracle VM

/u01/app/oracle/ovm-manager-3/machine1/base_adf domain/servers/AdminServer/logs/AdminServer.log

Oracle VM Server

/var/log/ovs-agent.log

D.7.4 VMインスタンスのログ

/assemblybuilder/logs/ab.out - Oracle Virtual Assembly Builderインフラストラクチャ・コードおよびプラグイン・コードからのstdout/stderrおよび進捗メッセージ

/assemblybuilder/logs/assemblybuilder.log - Oracle Virtual Assembly Builderインフラストラクチャ・コードおよびプラグイン・コードからのログ・メッセージ

/assemblybuilder/logs/command.out - RehydrateUtils.runCommand()メソッドまたはrunCommandAs()メソッドを使用して起動されたコマンドの環境およびコマンド詳細

/assemblybuilder/logs/proc.<unique>.log - 渡されたdaemonフラグがtrueだったRehydrateUtils.runCommand()またはrunCommandAs()を使用して起動されたプロセスからのstdout/stderr