AzCopy v10 の問題のトラブルシューティング
この記事では、AzCopy を使用するときに発生する可能性がある一般的な問題について説明します。 この記事では、問題の原因を特定し、それらを解決する方法についても説明します。
問題の特定
終了コードを調べることで、ジョブが成功したかどうかを判断できます。
終了コードが の場合、ジョブは 0-success
正常に完了しました。
終了コードが の場合は、 1-error
ログ ファイルを調べます。 正確なエラー メッセージを理解したら、適切なキーワードをより簡単に検索し、解決策を特定できます。 詳細については、「 AzCopy でログ ファイルとプラン ファイルを使用してエラーを検索し、ジョブを再開する」を参照してください。
終了コードが の場合は、2-panic
ログ ファイルが存在するかどうかをチェックします。 ファイルが存在しない場合は、バグを報告するか、サポートに連絡してください。
その他の 0 以外の終了コード (など OOMKilled
) は、システムによって生成される可能性があります。 オペレーティング システムのドキュメントで特別な終了コードを確認してください。
"403" エラー
"403" エラーは一般的です。 場合によっては、彼らは良性であり、失敗した転送を引き起こしません。 たとえば、AzCopy ログでは、要求が "403" エラーを HEAD
受け取ったことがわかります。 これらのエラーは、AzCopy がリソースがパブリックであるかどうかを確認するときに表示されます。 ほとんどの場合、これらのインスタンスは無視できます。
場合によっては、"403" エラーによって転送が失敗する可能性があります。 この問題が発生した場合、問題を解決するまで、ファイルを転送する他の試行が失敗する可能性があります。 "403" エラーは、認証と承認の問題によって発生する可能性があります。 また、ストレージ アカウントのファイアウォール構成によって要求がブロックされている場合にも発生する可能性があります。
認証と承認の問題
SAS トークン、ロールベースのアクセス制御 (Azure RBAC) ロール、およびアクセス制御リスト (ACL) 構成に関連する問題が原因で、データ転送を妨げる "403" エラーが発生します。
SAS トークン
共有アクセス署名 (SAS) トークンを使用する場合は、次のステートメントが true であることを確認します。
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" エラー コードを返します。
注:
この記事では、 ホスティング コンポーネント という用語は、物理コンピューター、仮想マシン (VM)、またはコンテナーを指します。
コピー操作で許可されるスコープ
ストレージ アカウントの プロパティは AllowedCopyScope
、コピー先アカウントにデータをコピーできる環境を指定するために使用されます。 このプロパティは、コピー操作の許可スコープ (プレビュー) 構成設定としてAzure portalに表示されます。 既定では、 プロパティには値が与えられません。 プロパティは、明示的に設定するまで値を返しません。
AllowedCopyScope
プロパティには、次の表に示すように、3 つの可能な値があります。
値 | 説明 |
---|---|
(null ) |
(既定値)任意のストレージ アカウントからコピー先アカウントへのコピーを許可します。 |
Microsoft Entra ID |
移行先アカウントと同じMicrosoft Entra テナント内にあるアカウントからのみコピーを許可します。 |
PrivateLink |
宛先アカウントと同じ仮想ネットワークへのプライベート リンクを持つストレージ アカウントからのコピーのみを許可します。 |
このプロパティとそれに関連する構成設定の詳細については、「 コピー操作のソースをストレージ アカウントに制限する」を参照してください。
ローカル ホスティング コンポーネントからまたは ローカル ホスティング コンポーネントにデータを転送する
ストレージ アカウントとオンプレミスのホスティング コンポーネントの間でデータをアップロードまたはダウンロードする場合は、AzCopy を実行するホスティング コンポーネントがソースストレージアカウントまたは移行先ストレージ アカウントにアクセスできることを確認してください。 ホスト コンポーネントのパブリック IP アドレスからのアクセスを許可するには、送信元アカウントまたは宛先アカウントのファイアウォール設定で IP ネットワーク規則を使用する必要がある場合があります。
ストレージ アカウント間でデータを転送する
"403" 承認エラーは、AzCopy が実行されているクライアント ホスティング コンポーネントを使用して、アカウント間でデータを転送できないようにすることができます。
ストレージ アカウント間でデータをコピーする場合は、AzCopy を実行するホスティング コンポーネントがソース アカウントと移行先アカウントの両方にアクセスできることを確認します。 ホスト コンポーネントのパブリック IP アドレスからのアクセスを許可するには、送信元アカウントと移行先アカウントの両方のファイアウォール設定で IP ネットワーク規則を使用する必要がある場合があります。 このサービスでは、AzCopy クライアント ホスティング コンポーネントの IP アドレスを使用して、送信元から宛先へのトラフィックを承認します。 ストレージ アカウントのファイアウォール設定にパブリック IP アドレスを追加する方法については、「 インターネット IP 範囲からのアクセスを許可する」を参照してください。
VM にパブリック IP アドレスがない場合や、パブリック IP アドレスを持つことができない場合は、プライベート エンドポイントの使用を検討してください。 「 Azure Storage にプライベート エンドポイントを使用する」を参照してください。
Private Linkを使用する
Private Linkは仮想ネットワーク/サブネット レベルです。 AzCopy 要求をPrivate Link経由する場合、AzCopy はその仮想ネットワーク/サブネットで実行されている 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 コマンド ガイドにある教育ツールが用意されています。 このツールは、最も一般的な 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 ツールを使用しているホスティング コンポーネントもサインイン元であることを保証できません。
デバイスがサポートされているプラットフォームの一覧に含まれている場合は、Storage Explorerを使用できる可能性があります。 Storage Explorerは、すべてのデータ転送に AzCopy を統合します (シークレット ストアを介して AzCopy にトークンを渡します) が、デバイス情報の受け渡しをサポートするサインイン ワークフローを提供します。 AzCopy 自体では、サインインの代替手段としてマネージド ID とサービス プリンシパルもサポートされています。
デバイスがサポートされているプラットフォームの一覧にない場合は、管理者に問い合わせてください。
サーバーのビジー状態、ネットワーク エラー、またはタイムアウト
"503 Server Busy" 状態の失敗した要求が多数表示された場合、ストレージ サービスによって要求が調整されます。 ネットワーク エラーやタイムアウトが発生した場合は、インフラストラクチャが処理するためにプッシュするデータが多すぎる可能性があります。 いずれの場合も、回避策は似ています。
特定のチャンクが毎回失敗するため、大きなファイルのコピーが繰り返し失敗する場合は、特定のケースに応じて同時ネットワーク接続またはスループットの制限を制限してみてください。 最初はパフォーマンスを大幅に低下させ、このアクションが最初の問題を解決したかどうかを確認してから、全体的なバランスが取れるまでパフォーマンスを再び向上することをお勧めします。
詳細については、「 Azure Storage を使用して AzCopy のパフォーマンスを最適化する」を参照してください。
AzCopy を使用してアカウント間でデータをコピーする場合、AzCopy を実行するネットワークの品質と信頼性が全体的なパフォーマンスに影響する可能性があります。 サーバーからサーバーにデータが転送される場合でも、AzCopy はサービス エンドポイント間でコピーする各ファイルの呼び出しを開始します。
AzCopy の既知の制約
政府機関向けクラウドから商用クラウドへのデータのコピーはサポートされていません。 ただし、商用クラウドから政府機関向けクラウドへのデータのコピーはサポートされています。
非同期サービス側コピーはサポートされていません。 AzCopy は同期コピーのみを実行します。 つまり、ジョブが完了するまでに、データが移動されました。
Azure File 共有にコピーするときに、フラグの指定
--preserve-smb-permissions
を忘れた場合にデータを再度転送したくない場合は、Robocopy を使用してアクセス許可を引き継ぐ方法を検討してください。Azure Functionsには、MSI 認証用の別のエンドポイントがあります。 AzCopy はまだ MSI 認証をサポートしていません。
関連項目
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。