AzCopy v10 に関する問題のトラブルシューティング
この記事では、AzCopy の使用中に発生する可能性がある一般的な問題について説明し、それらの問題の原因を特定し、それらを解決する方法を提案します。
問題の特定
終了コードを調べることで、ジョブが成功したかどうかを判断できます。
終了コードが の場合、ジョブは 0-success
正常に完了しました。
終了コードが の場合は、 1-error
ログ ファイルを調べます。 正確なエラー メッセージを理解すると、適切なキーワードを検索して解決策を見つけやすくなります。 詳細については、「 AzCopy でログ ファイルとプラン ファイルを使用してエラーを検索し、ジョブを再開する」を参照してください。
終了コードが の場合は、2-panic
ログ ファイルが存在することをチェックします。 ファイルが存在しない場合は、バグを報告するか、サポートに連絡してください。
終了コードが他のゼロ以外の終了コードである場合は、システムからの終了コードである可能性があります。 たとえば、「 OOMKilled
」のように入力します。 オペレーティング システムのドキュメントで特別な終了コードを確認してください。
403 エラー
403 エラーが発生するのが一般的です。 場合によっては、彼らは良性であり、転送が失敗することはありません。 たとえば、AzCopy ログでは、要求が 403 エラーを HEAD
受け取ったことがわかります。 これらのエラーは、AzCopy がリソースがパブリックであるかどうかを確認するときに表示されます。 ほとんどの場合、これらのインスタンスは無視できます。
場合によっては、403 エラーによって転送が失敗する可能性があります。 この場合、問題を解決するまで、他のファイル転送の試行は失敗する可能性があります。 認証と承認の問題の結果、403 エラーが発生する可能性があります。 また、ストレージ アカウントのファイアウォール構成が原因で要求がブロックされた場合にも発生する可能性があります。
認証/承認に関する問題
SAS トークン、ロールベースのアクセス制御 (Azure RBAC) ロール、アクセス制御リスト (ACL) の構成に関する問題が原因で、データ転送を妨げる 403 エラーが発生します。
SAS トークン
共有アクセス署名 (SAS) トークンを使用している場合は、次のことを確認します。
SAS トークンの有効期限と開始時刻が適切です。
トークンに必要なすべてのアクセス許可を選択しました。
公式の SDK またはツールを使用してトークンを生成しました。 まだStorage Explorerしていない場合は、お試しください。
Azure RBAC
コマンドを使用して Azure RBAC ロールを azcopy login
使用している場合は、ID に適切な Azure ロールが割り当てられていることを確認します (ストレージ BLOB データ共同作成者ロールなど)。
Azure ロールの詳細については、「 BLOB データにアクセスするための Azure ロールの割り当て」を参照してください。
Acl
アクセス制御リスト (ACL) を使用している場合は、アクセスする各ファイルまたはディレクトリの ACL エントリに ID が表示されることを確認します。 また、各 ACL エントリに適切なアクセス許可レベルが反映されていることを確認します。
ACL と ACL エントリの詳細については、Azure Data Lake Storage Gen2のアクセス制御リスト (ACL) に関するページを参照してください。
AZURE ロールを ACL と組み合わせる方法と、承認の決定を行うためにシステムによって評価される方法の詳細については、Azure Data Lake Storage Gen2のアクセス制御モデルに関するページを参照してください。
ファイアウォールとプライベート エンドポイントの問題
AzCopy が実行されているマシンからのアクセスを許可するようにストレージ ファイアウォール構成が構成されていない場合、AzCopy 操作は HTTP 403 エラーを返します。
ローカル コンピューターからまたはローカル コンピューターにデータを転送する
ストレージ アカウントとオンプレミス コンピューターの間でデータをアップロードまたはダウンロードする場合は、AzCopy を実行するマシンがソースストレージアカウントまたは移行先ストレージ アカウントにアクセスできることを確認します。 コンピューターのパブリック IP アドレスからのアクセスを許可するには、送信元アカウントまたは宛先アカウントのファイアウォール設定で IP ネットワーク規則を使用する必要がある場合があります。
ストレージ アカウント間でデータを転送する
403 の承認エラーにより、AzCopy が実行されているクライアント コンピューターを使用して、アカウント間でデータを転送できなくなる可能性があります。
ストレージ アカウント間でデータをコピーする場合は、AzCopy を実行するマシンがソース アカウントと移行先アカウントの両方にアクセスできることを確認します。 ソース アカウントと宛先アカウントの両方のファイアウォール設定で IP ネットワーク規則を使用して、コンピューターのパブリック IP アドレスからのアクセスを許可する必要がある場合があります。 このサービスでは、AzCopy クライアント マシンの IP アドレスを使用して、送信元から宛先へのトラフィックを承認します。 ストレージ アカウントのファイアウォール設定にパブリック IP アドレスを追加する方法については、「 インターネット IP 範囲からのアクセスを許可する」を参照してください。
VM にパブリック IP アドレスがない場合や、パブリック IP アドレスを持つことができない場合は、プライベート エンドポイントの使用を検討してください。 「 Azure Storage にプライベート エンドポイントを使用する」を参照してください。
Private Linkを使用する
Private Linkは、仮想ネットワーク (VNet)/サブネット レベルにあります。 AzCopy 要求をPrivate Link経由する場合、AzCopy はその VNet/サブネットで実行されている VM からそれらの要求を行う必要があります。 たとえば、VNet1/Subnet1 でPrivate Linkを構成しても、AzCopy が実行される VM が VNet1/Subnet2 にある場合、AzCopy 要求ではPrivate Linkは使用されないため、失敗することが予想されます。
プロキシ関連のエラー
"dial tcp: lookup proxy.x.x: no such host" などの TCP エラーが発生した場合は、環境が正しいプロキシを使用するように構成されていないか、AzCopy が認識しない高度なプロキシを使用していることを意味します。
正しい構成を反映するようにプロキシ設定を更新する必要があります。 「 プロキシ設定を構成する」を参照してください。
また、環境変数 NO_PROXY="*"
を設定してプロキシをバイパスすることもできます。
AzCopy で使用する必要があるエンドポイントを次に示します。
エンドポイントにログインする | Azure Storage エンドポイント |
---|---|
login.microsoftonline.com (グローバル Azure) |
(blob | file | dfs).core.windows.net (グローバル Azure) |
login.chinacloudapi.cn (Azure China) |
(blob | file | dfs).core.chinacloudapi.cn (Azure China) |
login.microsoftonline.de (Azure Germany) |
(blob | file | dfs).core.cloudapi.de (Azure Germany) |
login.microsoftonline.us (Azure US Government) |
(blob | file | dfs).core.usgovcloudapi.net (Azure US Government) |
x509: 不明な機関によって署名された証明書
このエラーは、多くの場合、オペレーティング システムによって信頼されていない Secure Sockets Layer (SSL) 証明書を使用するプロキシの使用に関連します。 設定を確認し、証明書がオペレーティング システム レベルで信頼されていることを確認します。
信頼された機関が保持されるため、証明書をマシンのルート証明書ストアに追加することをお勧めします。
認識されないパラメーター
パラメーターが認識されていないことを示すエラー メッセージが表示される場合は、AzCopy の正しいバージョンを使用していることを確認してください。 AzCopy V8 以前のバージョンは非推奨です。 AzCopy V10 は現在のバージョンであり、以前のバージョンと構文を共有しない完全な書き換えです。 v8 から v10 の AzCopy 移行ガイドを参照してください。
また、任意のコマンド (例: azcopy copy -h
) でスイッチを-h
使用して、組み込みのヘルプ メッセージを使用してください。 「 Get command help」を参照してください。 同じ情報をオンラインで表示するには、 azcopy のコピーに関するページを参照してください。
コマンドの理解に役立つよう、 AZCOPY COMMAND GUIDE にある教育ツールを提供します。 このツールは、最も一般的な AzCopy コマンドと、最も一般的なコマンド フラグを示します。 ここでは例を 示します。 質問がある場合は、最初に既存の GitHub の問題 を検索して、既に回答されているかどうかを確認してください。
条件付きアクセス ポリシー エラー
コマンドを呼び出すと、次のエラーが azcopy login
表示される場合があります。
ログイン コマンドの実行に失敗しました:tenantID "common"、Azure ディレクトリ エンドポイント "https://login.microsoftonline.com"、autorest/adal/devicetoken: -REDACTED- AADSTS50005: ユーザーが条件付きアクセス ポリシーで現在サポートされていないプラットフォーム (不明) からデバイスにログインしようとしました。 サポートされているデバイス プラットフォームは、iOS、Android、Mac、Windows のフレーバーです。 トレース ID: -REDACTED- 相関 ID: -REDACTED- Timestamp: 2021-01-05 01:58:28Z
このエラーは、管理者が、ログインできるデバイスの種類を指定する条件付きアクセス ポリシーを構成したことを意味します。 AzCopy はデバイス コード フローを使用します。これは、AzCopy ツールを使用しているコンピューターがログインしている場所でもあることを保証できません。
デバイスがサポートされているプラットフォームの一覧に含まれている場合は、すべてのデータ転送に AzCopy を統合する (シークレット ストア経由で AzCopy にトークンを渡す) が、デバイス情報の受け渡しをサポートするログイン ワークフローを提供する Storage Explorer を使用できる場合があります。 AzCopy 自体では、マネージド ID とサービス プリンシパルもサポートされています。これは代替として使用できます。
デバイスがサポートされているプラットフォームの一覧にない場合は、管理者に問い合わせてください。
サーバーのビジー状態、ネットワーク エラー、またはタイムアウト
"503 サーバービジー" 状態の失敗した要求が多数表示された場合、要求はストレージ サービスによって調整されます。 ネットワーク エラーやタイムアウトが発生した場合は、インフラストラクチャ全体であまりにも多くのデータをプッシュしようとしている可能性があり、インフラストラクチャの処理が困難になっている可能性があります。 いずれの場合も、回避策は似ています。
毎回特定のチャンクが失敗したために大きなファイルが繰り返し失敗する場合は、特定のケースに応じて同時ネットワーク接続またはスループットの制限を制限してみてください。 最初はパフォーマンスを大幅に低下し、最初の問題が解決したかどうかを確認してから、全体的なバランスが達成されるまでパフォーマンスを再び上げることをお勧めします。
詳細については、「 Azure Storage を使用して AzCopy のパフォーマンスを最適化する」を参照してください。
AzCopy を使用してアカウント間でデータをコピーする場合、AzCopy を実行するネットワークの品質と信頼性が全体的なパフォーマンスに影響する可能性があります。 サーバーからサーバーにデータが転送される場合でも、AzCopy はサービス エンドポイント間でコピーする各ファイルの呼び出しを開始します。
AzCopy を使用した既知の制約
政府機関向けクラウドから商用クラウドへのデータのコピーはサポートされていません。 ただし、商用クラウドから政府機関向けクラウドへのデータのコピーはサポートされています。
非同期サービス側コピーはサポートされていません。 AzCopy は同期コピーのみを実行します。 つまり、ジョブが完了するまでに、データが移動されました。
Azure File 共有にコピーするときに、フラグ
--preserve-smb-permissions
の指定を忘れてデータを再度転送したくない場合は、Robocopy を使用してアクセス許可を引き継ぐ方法を検討してください。Azure Functionsには MSI 認証用の別のエンドポイントがあり、AzCopy はまだサポートされていません。
既知の一時的な問題
PutBlobFromURL API を使用して、指定されたブロック サイズ (既定のサイズは 8 メガバイト (MiB)) より小さい BLOB をコピーする AzCopy 10.11 以降のバージョンに影響するサービスの問題があります。 ユーザーがソース アカウントにファイアウォール (VNet/IP/PL/SE ポリシー) を持っている場合、 PutBlobFromURL
API から "409 コピー ソース BLOB が変更されました" というメッセージが誤って返される可能性があります。 回避策は、AzCopy 10.10 を使用する方法です。
- azcopy_darwin_amd64_10.10.0.zip
- azcopy_linux_amd64_10.10.0.tar.gz
- azcopy_windows_386_10.10.0.zip
- azcopy_windows_amd64_10.10.0.zip
関連項目
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure コミュニティ サポートに製品フィードバックを送信することもできます。