AzCopy v10 문제 해결

이 문서에서는 AzCopy를 사용하는 동안 발생할 수 있는 일반적인 문제에 대해 설명하고, 이러한 문제의 원인을 파악하는 데 도움을 주고, 문제를 resolve 방법을 제안합니다.

문제 식별

종료 코드를 확인하여 작업이 성공하는지 여부를 확인할 수 있습니다.

종료 코드가 이 0-success면 작업이 성공적으로 완료되었습니다.

종료 코드가 이 1-error면 로그 파일을 검사합니다. 정확한 오류 메시지를 이해하면 올바른 키워드를 검색하고 솔루션을 파악하는 것이 훨씬 쉬워집니다. 자세한 내용은 AzCopy에서 로그 및 계획 파일을 사용하여 오류 찾기 및 작업 다시 시작을 참조하세요.

종료 코드가 인 2-panic경우 로그 파일이 있는지 검사. 파일이 없는 경우 버그를 제출하거나 지원하도록 연락하세요.

종료 코드가 0이 아닌 다른 종료 코드인 경우 시스템의 종료 코드일 수 있습니다. 예를 들면 OOMKilled와 같습니다. 운영 체제 설명서에서 특별한 종료 코드를 확인합니다.

403 오류

일반적으로 403 오류가 발생합니다. 때때로 그들은 양성이고 실패한 전송을 초래하지 않습니다. 예를 들어 AzCopy 로그에서 요청이 403 오류를 수신한 것을 HEAD 볼 수 있습니다. 이러한 오류는 AzCopy가 리소스가 공용인지 여부를 확인할 때 나타납니다. 대부분의 경우 해당 인스턴스를 무시할 수 있습니다.

경우에 따라 403 오류가 발생하여 전송에 실패할 수 있습니다. 이 경우 문제를 resolve 때까지 파일을 전송하려는 다른 시도가 실패할 수 있습니다. 인증 및 권한 부여 문제로 인해 403 오류가 발생할 수 있습니다. 스토리지 계정 방화벽 구성으로 인해 요청이 차단될 때도 발생할 수 있습니다.

인증/권한 부여 문제

SAS 토큰, Azure RBAC(역할 기반 액세스 제어) 역할 및 ACL(액세스 제어 목록) 구성과 관련된 문제로 인해 데이터 전송을 방지하는 403 오류가 발생합니다.

SAS 토큰

SAS(공유 액세스 서명) 토큰을 사용하는 경우 다음을 확인합니다.

  • SAS 토큰의 만료 및 시작 시간이 적절합니다.

  • 토큰에 필요한 모든 권한을 선택했습니다.

  • 공식 SDK 또는 도구를 사용하여 토큰을 생성했습니다. 아직 Storage Explorer 않은 경우 사용해 보세요.

Azure RBAC

명령을 통해 azcopy login Azure RBAC 역할을 사용하는 경우 ID에 할당된 적절한 Azure 역할(예: Storage Blob 데이터 기여자 역할)이 있는지 확인합니다.

Azure 역할에 대한 자세한 내용은 Blob 데이터에 액세스하기 위한 Azure 역할 할당을 참조하세요.

Acl

ACL(액세스 제어 목록)을 사용하는 경우 액세스하려는 각 파일 또는 디렉터리에 대한 ACL 항목에 ID가 표시되는지 확인합니다. 또한 각 ACL 항목이 적절한 사용 권한 수준을 반영하는지 확인합니다.

ACL 및 ACL 항목에 대한 자세한 내용은 Azure Data Lake Storage Gen2 ACL(액세스 제어 목록)을 참조하세요.

ACL과 Azure 역할을 통합하는 방법 및 시스템에서 권한 부여 결정을 내리는 방법을 자세히 알아보려면 Azure Data Lake Storage Gen2 액세스 제어 모델을 참조하세요.

방화벽 및 프라이빗 엔드포인트 문제

AzCopy가 실행 중인 컴퓨터에서 액세스를 허용하도록 스토리지 방화벽 구성이 구성되지 않은 경우 AzCopy 작업은 HTTP 403 오류를 반환합니다.

로컬 컴퓨터에서 또는 로컬 컴퓨터로 데이터 전송

스토리지 계정과 온-프레미스 컴퓨터 간에 데이터를 업로드하거나 다운로드하는 경우 AzCopy를 실행하는 컴퓨터가 원본 또는 대상 스토리지 계정에 액세스할 수 있는지 확인합니다. 컴퓨터의 공용 IP 주소에서 액세스를 허용하려면 원본 또는 대상 계정의 방화벽 설정에서 IP 네트워크 규칙을 사용해야 할 수 있습니다.

스토리지 계정 간에 데이터 전송

403 권한 부여 오류로 인해 AzCopy가 실행 중인 클라이언트 컴퓨터를 사용하여 계정 간에 데이터를 전송하지 못할 수 있습니다.

스토리지 계정 간에 데이터를 복사하는 경우 AzCopy를 실행하는 컴퓨터가 원본 계정과 대상 계정 모두에 액세스할 수 있는지 확인합니다. 컴퓨터의 공용 IP 주소에서 액세스를 허용하려면 원본 계정과 대상 계정 모두의 방화벽 설정에서 IP 네트워크 규칙을 사용해야 할 수 있습니다. 서비스는 AzCopy 클라이언트 컴퓨터의 IP 주소를 사용하여 대상 트래픽에 대한 원본에 권한을 부여합니다. 스토리지 계정의 방화벽 설정에 공용 IP 주소를 추가하는 방법을 알아보려면 인터넷 IP 범위에서 액세스 권한 부여를 참조하세요.

VM에 공용 IP 주소가 없거나 없는 경우 프라이빗 엔드포인트를 사용하는 것이 좋습니다. Azure Storage에 프라이빗 엔드포인트 사용을 참조하세요.

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 중국) (blob | file | dfs).core.chinacloudapi.cn (Azure 중국)
login.microsoftonline.de (Azure 독일) (blob | file | dfs).core.cloudapi.de (Azure 독일)
login.microsoftonline.us (Azure 미국 정부) (blob | file | dfs).core.usgovcloudapi.net (Azure 미국 정부)

x509: 알 수 없는 기관에서 서명한 인증서

이 오류는 종종 운영 체제에서 신뢰할 수 없는 SSL(Secure Sockets Layer) 인증서를 사용하는 프록시 사용과 관련이 있습니다. 설정을 확인하고 인증서가 운영 체제 수준에서 신뢰할 수 있는지 확인합니다.

신뢰할 수 있는 기관이 유지되는 위치이므로 컴퓨터의 루트 인증서 저장소에 인증서를 추가하는 것이 좋습니다.

인식할 수 없는 매개 변수

매개 변수가 인식되지 않는다는 오류 메시지가 표시되면 올바른 버전의 AzCopy를 사용하고 있는지 확인합니다. AzCopy V8 및 이전 버전은 더 이상 사용되지 않습니다. AzCopy V10 은 현재 버전이며 이전 버전과 구문을 공유하지 않는 완전한 재작성입니다. v8에서 v10으로의 AzCopy 마이그레이션 가이드를 참조하세요.

또한 명령과 함께 스위치를 사용하여 기본 제공 도움말 메시지를 활용 -h 해야 합니다(예: azcopy copy -h). 명령 도움말 가져오기를 참조하세요. 동일한 정보를 온라인으로 보려면 azcopy copy를 참조하세요.

명령을 이해하는 데 도움이 되도록 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- 타임스탬프: 2021-01-05 01:58:28Z

이 오류는 관리자가 로그인할 수 있는 디바이스 유형을 지정하는 조건부 액세스 정책을 구성했음을 의미합니다. AzCopy는 디바이스 코드 흐름을 사용하며, 이는 AzCopy 도구를 사용하는 컴퓨터가 로그인하는 위치이기도 하다는 것을 보장할 수 없습니다.

디바이스가 지원되는 플랫폼 목록 중 하나이면 모든 데이터 전송에 AzCopy를 통합하는 Storage Explorer 사용할 수 있지만(비밀 저장소를 통해 AzCopy에 토큰을 전달) 디바이스 정보 전달을 지원하는 로그인 워크플로를 제공합니다. AzCopy 자체는 대신 사용할 수 있는 관리 ID 및 서비스 주체도 지원합니다.

디바이스가 지원되는 플랫폼 목록에 없는 경우 관리자에게 문의하여 도움을 요청하세요.

서버 사용 중, 네트워크 오류 또는 시간 제한

"503 서버 사용 중" 상태 실패한 요청이 많은 경우 스토리지 서비스에서 요청을 제한합니다. 네트워크 오류 또는 시간 제한이 표시되면 인프라 전체에서 너무 많은 데이터를 푸시하려고 할 수 있으며 해당 인프라에서 처리하는 데 어려움을 겪고 있습니다. 모든 경우에 해결 방법은 비슷합니다.

매번 특정 청크가 실패하여 큰 파일이 반복적으로 실패하는 경우 특정 사례에 따라 동시 네트워크 연결 또는 처리량 제한을 제한해 보세요. 처음에는 성능을 크게 낮추고, 초기 문제를 해결했는지 관찰한 다음, 전반적인 균형이 달성될 때까지 성능을 다시 높이는 것이 좋습니다.

자세한 내용은 Azure Storage를 사용하여 AzCopy의 성능 최적화를 참조하세요.

AzCopy를 사용하여 계정 간에 데이터를 복사하는 경우 AzCopy를 실행하는 네트워크의 품질 및 안정성이 전체 성능에 영향을 미칠 수 있습니다. 데이터가 서버에서 서버로 전송되더라도 AzCopy는 서비스 엔드포인트 간에 복사할 각 파일에 대한 호출을 시작합니다.

AzCopy를 사용하는 알려진 제약 조건

  • 정부 클라우드에서 상용 클라우드로 데이터를 복사하는 것은 지원되지 않습니다. 그러나 상용 클라우드에서 정부 클라우드로 데이터 복사가 지원됩니다.

  • 비동기 서비스 쪽 복사는 지원되지 않습니다. AzCopy는 동기 복사만 수행합니다. 즉, 작업이 완료되는 시점까지 데이터가 이동되었습니다.

  • Azure 파일 공유로 복사할 때 플래그 --preserve-smb-permissions 를 지정하는 것을 잊고 데이터를 다시 전송하지 않으려면 Robocopy를 사용하여 권한을 가져오는 것이 좋습니다.

  • Azure Functions MSI 인증을 위한 다른 엔드포인트가 있으며, AzCopy는 아직 지원하지 않습니다.

참고 항목

도움을 요청하십시오.

질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.