データ転送のトラブルシューティング

データ転送の使用中に発生する可能性がある一般的な問題の特定と対処には、トラブルシューティング情報を使用します。

この項では、次のカテゴリに関するトラブルシューティングのトピックが記載されています:

一般

この項のトラブルシューティング・エントリは、すべてのデータ転送方法に適用できます。

特定のCLIバージョンのインストール

特定の機能の問題に対処するために、Oracle Cloud Infrastructureコマンドライン・インタフェース(CLI)のバージョンを変更する必要がある場合があります。現在インストールされているバージョン以外のCLIバージョンをインストールするには、次のステップを順番に実行する必要があります:

必要なOracle Cloud Infrastructure CLIバージョンのダウンロード

  1. 次のサイトに移動します: https://github.com/oracle/oci-cli/releases.

  2. 必要なバージョンまでスクロールし、ローカル・マシンにダウンロードします。

CLIの既存のバージョンのアンインストール

pipを使用してCLIを手動でインストールした場合は、次のコマンドを実行します:

pip uninstall oci-cli

CLIを手動でvirtualenvにインストールした場合は、次のコマンドを実行します:

virtualenv_path/bin/pip uninstall oci-cli

ダウンロードしたCLIバージョンのインストール

ダウンロードしたCLIバージョンのインストール手順については、手動およびオフライン・インストールを参照してください。

アプライアンスベースのデータ転送

これらのトラブルシューティング・エントリは、アプライアンスベースのインポート・ジョブに関連付けられています。

アプライアンスのトラブルシューティング

アプライアンスの問題をトラブルシューティングするためのパフォーマンス情報は、ホスト・マシン上のターミナル・エミュレータを使用して生成できます。シリアル・コンソールの構成メニューから「アプライアンス診断情報の収集」を選択します。診断ツールによって、転送ジョブの実行中にシステム、ネットワーク、ストレージおよびパフォーマンスのデータが生成されます。次に、そのデータはアプライアンス・シリアル・コンソールに転送されます。ここで、ターミナルをスクロールして表示できます。

シリアル・ポート・エミュレータのログ取得機能を使用して出力を取得することもできます。シリアル・ポート・エミュレータは、多くの場合、セッションをファイルにコピーする機能をサポートしています。手順については、シリアル・ポート・エミュレーション・パッケージのドキュメントを参照してください。ログ・ファイルへのコピーは、Oracleのサポートが必要な場合や、エミュレーション・セッションでスクロールを前に戻してすべての出力を確認することができない場合に役立ちます。

各操作について、実行されたコマンドとすべてのオプションが正確に表示されます。

次に、診断出力の例を示します:

--------------------------------------------------------------------------------
- systemctl -l --type service --state=active                                   -
--------------------------------------------------------------------------------
UNIT LOAD ACTIVE SUB DESCRIPTION
auditd.service loaded active running Security Auditing Service
blk-availability.service loaded active exited Availability of block devices
chronyd.service loaded active running NTP client/server
console-diags@39-3147-1001.service loaded active running Diagnostic Collection Server for the XA (PID 3147/UID 1001)
crond.service loaded active running Command Scheduler
data-transfer-appliance.service loaded active running Data Transfer Appliance
data-transfer-console.service loaded active running Data Transfer Serial Console

診断データ収集で問題が発生すると、コンソール出力がサービスのログ・ファイルに書き込まれます。コマンドの失敗は、重大な問題が発生したことを示すため、場合によってはアプライアンスを返却する必要があります。次に、ログの例を示します:

Mar 6 17:55:33 localhost console-diags: {"Module": "main", "Type": "Info", "Message": "Received message {\"cmd\": \"collect\"}"}
Mar 6 17:55:33 localhost console-diags: {"Module": "main", "Type": "Info", "Message": "Setting up output file. First to remove all /tmp/xa-diags-results"}
Mar 6 17:55:33 localhost console-diags: {"Module": "main", "Type": "Info", "Message": "Removing /tmp/xa-diags-results.2019-03-06T17:54:56.000471"}

IPアドレスの問題のため、アプライアンスの初期化に失敗します

不正なIPアドレスを使用したため、アプライアンスの初期化に失敗する場合があります。initialize-authのIPアドレスは、pingまたはSSL接続の実行時に取得したIPアドレスとは異なることがあります。初期化に失敗した場合、アプライアンスに正しいIPアドレスを使用していることを確認し、初期化を再試行してください。

「接続が拒否されました」または「接続がタイムアウトしました」によって認証の初期化に失敗します

アプライアンス・シリアル・コンソールを使用してネットワーキングを構成しようとしたが、「接続が拒否されました」または「接続がタイムアウトしました」というメッセージによって失敗した場合は、次のトラブルシューティング・ステップに従います。

ホストのコマンド・プロンプトで、次のコマンドを実行します:

ping appliance_ip

障害が発生した場合、次のコマンドを実行して、アプライアンスIPおよびアプライアンスへのパスを確認します。

ping -I local_interface appliance_ip

予期されるインタフェースを確認するには、ip routeまたは同等のコマンドを実行します。ルーティング表が正常であることを確認します。アプライアンスIPへのネットワーク・パスがわからない場合は、tracerouteの実行を試してください。

次のコマンドを実行します。

curl -k https://appliance_ip

「見つかりません」というレスポンスが返されます。この障害は、IPアドレスが間違っている可能性があることを示しています。たとえば、何もポート443をリスニングしていません。失敗メッセージを受信した場合、次のコマンドを実行します:

openssl s_client -showcerts -connect appliance_ip:443

Oracle Cloud Infrastructureとデータ転送アプライアンスに対して発行された証明書が表示されます。

このコマンドはcurlに似ていますが、HTTPSを使用しないため、プロキシの影響を受けません。このコマンドが動作し、curlが失敗した場合、プロキシ環境変数が存在しないことを確認します。

データセット・シール・プロセスが失敗します

データセット内に特殊なファイルがあるため、データセット・シール・プロセスに失敗する場合があります:

dts nfs-dataset seal-status --name nfs-ds-1

Seal Status :
 success           : false
 failureReason     :
Number of special files : 5
 startTime         : 2019/03/26 11:52:37 PDT
 endTime           : 2019/03/26 11:52:39 PDT
 numFilesToProcess : 0
 numFilesProcessed : 0
 bytesToProcess    : 0.00 KB
 bytesProcessed    : 0.00 KB
 bytesToProcess    : 0.00 KB

ホストのコマンド・プロンプトで、NFSデータセットを再アクティブ化します。

oci dts nfs-dataset activate --name dataset_name

次に、findを実行して、すべての特殊ファイルの完全なリストと各ファイルの特定のタイプを取得します。

find mountpoint \! -type f \! -type d | xargs file

例:

$ find /mnt/nfs-ds-1 \! -type f \! -type d | xargs file
/mnt/nfs-ds-1/myfile1: symbolic link to `/home/user1/myfile1'
/mnt/nfs-ds-1/myfile2: symbolic link to `/home/user1/myfile2'

次に、リストを確認し、NFSマウント・ポイントからすべての特殊ファイルを削除します。

find mountpoint \! -type f \! -type d | xargs rm

NFSデータセットを非アクティブ化します。

oci dts nfs-dataset deactivate --name dataset_name

最後に、データセットを再度シールします。

oci dts nfs-dataset seal --name dataset_name [--wait]

シールの進行状況をモニターします。正常に完了するまで待機し、後続のステップを続行します。

名前に特殊文字が含まれているとデータのシールに失敗する

転送されるファイルの名前にUTF-8以外の文字、改行、またはリターンが含まれている場合、データのシールは失敗します。返されるエラーは次のようになります:

failureReason": "\n無効な文字を含むファイル・パスの数: 1

このエラーが発生した場合は、データ・セットをアクティブにしてマウントし、ファイルシステムで次のfindコマンドを実行します:

find . -print0 | perl -n0e 'chomp; print $_, "\n" if /[[:^ascii:][:cntrl:]]/'

返されたリストに表示されるファイルを名前変更または削除します。

ディスクベースのデータ転送

これらのトラブルシューティング・エントリは、ディスクベースのインポート・ジョブに関連付けられています。

ディスクへの排他アクセスが存在しないため、データ転送ユーティリティが失敗します

データ転送ユーティリティでは、ディスクへの排他アクセスが必要です。すでにディスクへの排他アクセスを要求しているドライバがある場合、データ転送ユーティリティは失敗します。たとえば、すべてのディスク・デバイスに対してデバイス・マッパー・マルチパス・ドライバを使用する場合、最初に、マルチパスドライバによって管理されるデバイスのリストから、データ転送に使用されるディスクを削除する必要があります。

ディスクへのアクセスは、デバイス・マッパーやボリューム・マネージャを介して実行しないでください。データ転送中、ファイル・システムはRAWデバイス上に作成されることが期待されます。中間ドライバまたは抽象化レイヤーを介してレイヤー化またはマッピングすると、転送サイトでディスクをアップロードできなくなります。これらの障害の原因としては、マルチパス、md、ストライプ化、論理ボリューム・マネージャなどのドライバに加え、その他の可能性も考えられます。

データ転送に使用するディスクを手動でフォーマットしようとすると、データ転送ユーティリティが排他アクセスになっていることを確認できます。データ転送ユーティリティでは、cryptsetupユーティリティを使用して暗号化デバイスを作成します。コマンドラインからcryptsetupを実行できます(root権限が必要です):

cryptsetup luksFormat -c aes-xts-plain64 -s 512 -h sha512 --iter-time 2000 --use-random /dev/sdXX

sdXXは、データ転送に使用されるディスクの名前です。

プロンプトが表示されたら、デバイスを暗号化するように応答します。パスフレーズを指定する必要があります。cryptsetupユーティリティは何度でも問題なくディスクで実行できるため、任意のパスフレーズを使用できます。

コマンドが正常に実行された場合、データ転送ユーティリティがディスクの排他的所有権を取得して、データ転送に必要な処理を実行できることがわかります。

Oracle Cloud Infrastructureとの通信中に「例外の処理中」によってデータ転送ユーティリティが失敗します

環境にインターネットのプロキシがあるかどうかを確認します。その場合、それらを最新バージョンに更新して、"https_proxy"を設定します。アプライアンスを使用している場合、"no_proxy"環境変数を設定します。プロキシの詳細は、データ転送ユーティリティのインストールを参照してください。

「無効な構成ファイル」によってデータ転送ユーティリティが失敗します

データ転送コマンドを実行しようとして、「無効な構成ファイル」というエラー・メッセージが表示された場合、次のファイルがホストに存在し、正しく設定されていることを確認してください:

  • ~/.oci/configおよび

  • ~/.oci/config_upload_user

どちらのファイルにも、最初の行に"[DEFAULT]"が必要です。パス内での"~"文字の使用は、ファイルの内容で有効ではありません。

シリアル番号エラーのため、転送ディスクの作成に失敗します

データ転送を使用した転送ディスクの作成は、シリアル番号エラーが原因で失敗する可能性があります:

dts disk create --job-id ocid1.datatransferjob.oc1..exampleuniqueID --block-device /dev/sdb
ERROR : Unable to determine serial number for device /dev/sdb

このエラーは、hdparm -Iコマンドの結果、シリアル番号が文字化けしたことが原因で発生する可能性があります。例:

/bin/sh -c "hdparm -I /dev/sdb"
/dev/sdb:
SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ATA device, with non-removable media
Standards:
Likely used: 1
Configuration:
Logical max current
cylinders 0 0
heads 0 0
sectors/track 0 0
–
Logical/Physical Sector size: 512 bytes
device size with M = 1024*1024: 0 MBytes
device size with M = 1000*1000: 0 MBytes
cache/buffer size = unknown
Capabilities:
IORDY not likely
Cannot perform double-word IO
R/W multiple sector transfer: not supported
DMA: not supported
PIO: pio0

このタイプのエラーが表示される場合は、次の回避策を使用します:

  1. プロンプトで、次のコマンドを実行します:

    lsblk --nodeps -no serial /dev/device
    serial_number
  2. 次のコマンドを使用して、ホーム・ディレクトリにhdparmスクリプトを作成します:

    vi $HOME/hdparm
    #!/usr/bin/bash
    while getopts ":Iht" opt;do
    case ${opt} in
    h) # process option h
    ;;
    t)
    ;;
    I)
    echo "Serial Number: serial_number"
    ;;
    esac
    done

    前のステップでlsblkコマンドを実行したときに返されたものと同じシリアル番号をスクリプトで使用します。

  3. 作成したスクリプトを実行可能にします。

  4. 次のコマンドを使用してパスを変更します:

    export PATH=/home_dir_path:$PATH
  5. 転送ディスクの作成を再試行します。