스토리지 계정이 Data Lake Storage 사용 계정에서 아직 지원되지 않는 기능을 사용하도록 구성되었을 수 있습니다. 계정에서 그러한 기능을 사용하는 경우 업그레이드가 유효성 검사 단계를 통과하지 못합니다. Azure Storage 계정의 Blob Storage 기능 지원 문서를 검토하여 지원되지 않는 기능을 식별합니다. 계정에서 그러한 기능을 사용하는 경우 업그레이드를 시작하기 전에 해당 기능을 사용하지 않도록 설정합니다.
다음 기능은 Data Lake Storage 계정에 지원되지만 업그레이드 프로세스에서는 지원되지 않습니다.
Blob 스냅샷
암호화 범위
변경 불가능한 스토리지
수명 주기 관리를 위한 마지막 액세스 시간 추적
Blob에 대한 일시 삭제
컨테이너에 대한 일시 삭제
스토리지 계정에 그러한 기능을 사용하도록 설정된 경우 업그레이드를 수행하기 전에 사용하지 않도록 설정해야 합니다. 업그레이드가 완료된 후 기능을 다시 사용하려면 해당 기능을 다시 사용하도록 설정합니다.
경우에 따라 업그레이드하기 전에 기능을 사용하지 않도록 설정한 후 정리 작업 시간을 제공해야 합니다. 한 가지 예는 Blob 일시 삭제 기능입니다. 계정을 업그레이드하려면 Blob 일시 삭제를 사용하지 않도록 설정한 다음, 모든 일시 삭제 Blob이 만료되도록 해야 합니다.
Important
변경 피드 기능을 사용하도록 설정된 적이 있는 Data Lake Storage로 스토리지 계정을 업그레이드할 수 없습니다.
변경 피드를 사용하지 않도록 설정하는 것 만으로는 업그레이드를 수행할 수 없습니다. 대신 계층 구조 네임스페이스 기능을 사용하도록 설정된 계정을 만들고 이동한 다음, 해당 계정으로 데이터를 전송해야 합니다.
스토리지 계정에서 페이지 Blob 제거
페이지 Blob이 포함된 스토리지 계정은 업그레이드할 수 없습니다. 업그레이드를 수행하기 전에 스토리지 계정에서 페이지 Blob을 제거해야 합니다.
각 Blob 경로의 세그먼트에 이름이 지정되었는지 확인
마이그레이션 프로세스는 Blob의 각 경로 세그먼트에 대한 디렉터리를 만듭니다. Data Lake Storage 디렉터리에는 이름이 있어야 하므로 마이그레이션이 성공하려면 가상 디렉터리의 각 경로 세그먼트에 이름이 있어야 합니다. 공백 문자로만 명명된 세그먼트의 경우에도 동일한 요구 사항이 적용됩니다. 경로 세그먼트가 명명되지 않았거나(//) 공백 문자(_)로만 명명된 경우 마이그레이션을 진행하기 전에 이러한 명명 요구 사항과 호환되는 새 경로에 해당 Blob을 복사해야 합니다.
스토리지 계정에 대한 쓰기 작업 방지
업그레이드하는 동안 애플리케이션이 스토리지 계정에 쓰는 경우 업그레이드가 실패할 수 있습니다. 그러한 쓰기 작업을 방지하려면 다음을 수행합니다.
쓰기 작업을 수행할 수 있는 모든 애플리케이션 또는 서비스를 정지합니다.
스토리지 계정의 컨테이너 및 Blob에서 기존 임대를 해제하거나 중단합니다.
업그레이드가 완료되면 만든 임대를 중단하여 컨테이너 및 Blob에 대한 쓰기 권한을 다시 허용합니다.
Warning
현재 그러한 리소스에 액세스하는 애플리케이션 또는 가상 머신을 정상적으로 사용하지 않도록 설정하지 않고 활성 임대를 중단하면 예기치 않은 결과가 발생할 수 있습니다. 현재 임대를 중단하기 전에 현재 쓰기 작업을 중지해야 합니다.
<resource-group-name> 자리 표시자 값을 리소스 그룹의 이름으로 바꿉니다.
<storage-account-name> 자리 표시자 값을 스토리지 계정 이름으로 바꿉니다.
계정 크기에 따라 이 프로세스에는 약간의 시간이 걸릴 수 있습니다. 클라이언트가 차단되지 않도록 명령을 백그라운드 작업에서 실행하려면 asJob 스위치를 사용할 수 있습니다. 명령이 원격으로 실행되지만 작업은 명령을 실행하는 로컬 컴퓨터 또는 VM에 있습니다. 결과는 로컬 시스템 또는 VM으로 전송됩니다.
작업 상태를 확인하고 작업의 모든 속성을 목록에 표시하려면 반환 변수를 Format-List cmdlet에 파이프합니다.
$result | Format-List -Property *
유효성 검사가 성공하면 상태 속성이 완료됨으로 설정됩니다.
유효성 검사가 실패하면 상태 속성이 실패로 설정되고 오류 속성에 유효성 검사 오류가 표시됩니다.
다음 출력에서는 호환되지 않는 기능이 계정에서 사용하도록 설정되어 있음을 나타냅니다. 이 경우 기능을 사용하지 않도록 설정한 다음, 유효성 검사 프로세스를 다시 시작합니다.
경우에 따라 오류 속성에서 error.json이라는 파일의 경로를 제공합니다. 해당 파일을 열어 계정에서 유효성 검사 단계를 통과하지 못한 이유를 확인할 수 있습니다.
다음 JSON에서는 호환되지 않는 기능이 계정에서 사용하도록 설정되어 있음을 나타냅니다. 이 경우 기능을 사용하지 않도록 설정한 다음, 유효성 검사 프로세스를 다시 시작합니다.
위의 유효성 검사 예제와 마찬가지로 이 예제에서는 asJob 스위치를 사용하여 명령을 백그라운드 작업에서 실행합니다. Force 스위치는 업그레이드를 확인하라는 메시지를 재정의합니다. AsJob 스위치를 사용하지 않으면 프롬프트에 응답하기만 하면 되므로 Force 스위치를 사용할 필요가 없습니다.
Important
계정이 업그레이드되는 동안 쓰기 작업이 사용하지 않도록 설정됩니다. 읽기 작업은 사용하지 않도록 설정되지 않지만, 읽기 작업으로 인해 업그레이드 프로세스가 불안정해질 수 있으므로 이러한 작업을 일시 중단하는 것이 좋습니다.
작업 상태를 확인하려면 이전 단계에서 설명한 것과 동일한 기술을 사용합니다. 프로세스가 실행되면 상태 속성이 실행 중으로 설정됩니다.
마이그레이션이 성공적으로 완료되면 상태 속성이 완료됨으로 설정되고 오류 속성에 오류가 표시되지 않습니다.
Important
대략적인 업그레이드 시간은 2백만 BLOB당 약 5~10분입니다. 예를 들어 계정에 천만 개의 Blob이 있는 경우 업그레이드에는 약 25~50분이 소요됩니다. 2백만 개 미만의 Blob이 포함된 계정은 일반적으로 10분 이내에 업그레이드됩니다.
먼저 Azure Cloud Shell을 열거나 Azure CLI를 로컬로 설치한 경우 Windows PowerShell과 같은 명령 콘솔 애플리케이션을 엽니다.
다음 명령을 사용하여 설치된 Azure CLI 버전이 2.29.0 이상인지 확인합니다.
az --version
Azure CLI 버전이 2.29.0보다 낮으면 최신 버전을 설치합니다. 자세한 내용은 Azure CLI 설치를 참조하세요.
<resource-group-name> 자리 표시자 값을 리소스 그룹의 이름으로 바꿉니다.
<storage-account-name> 자리 표시자 값을 스토리지 계정 이름으로 바꿉니다.
유효성 검사가 성공하면 프로세스가 완료되고 오류가 표시되지 않습니다.
유효성 검사가 실패하면 콘솔에 유효성 검사 오류가 표시됩니다. 예를 들어 (IncompatibleValuesForAccountProperties) Values for account properties are incompatible: Versioning Enabled 오류는 호환되지 않는 기능(버전 관리)이 계정에서 사용하도록 설정되어 있음을 나타냅니다. 이 경우 기능을 사용하지 않도록 설정한 다음, 유효성 검사 프로세스를 다시 시작합니다.
경우에 따라 error.json이라는 파일의 경로가 콘솔에 표시됩니다. 해당 파일을 열어 계정에서 유효성 검사 단계를 통과하지 못한 이유를 확인할 수 있습니다.
다음 JSON에서는 호환되지 않는 기능이 계정에서 사용하도록 설정되어 있음을 나타냅니다. 이 경우 기능을 사용하지 않도록 설정한 다음, 유효성 검사 프로세스를 다시 시작합니다.
업그레이드가 완료되기 전에 중지하려면 az storage account hns-migration stop 명령을 사용합니다.
az storage account hns-migration stop -n <storage-account-name> -g <resource-group-name>
데이터, 워크로드 및 애플리케이션 마이그레이션
Blob service 엔드포인트 또는 Data Lake 스토리지 엔드포인트를 가리키도록 워크로드에서 서비스를 구성합니다.
Windows Azure Storage Blob 드라이버 또는 WASB 드라이버를 사용하는 Hadoop 워크로드의 경우 ABFS(Azure Blob File System) 드라이버를 사용하도록 수정해야 합니다. Blob service 엔드포인트에 요청하는 WASB 드라이버와 달리 ABFS 드라이버는 계정의 Data Lake Storage 엔드포인트에 요청합니다.
사용자 지정 애플리케이션을 테스트하여 업그레이드된 계정에서 예상대로 작동하는지 확인합니다.
Data Lake Storage의 다중 프로토콜 액세스를 사용하면 대부분의 애플리케이션에서 수정 없이 Blob API를 계속 사용할 수 있습니다. 문제가 발생하거나 API를 사용하여 디렉터리 작업 및 ACL을 사용하려는 경우 일부 코드를 이동하여 Data Lake Storage API를 사용하는 것이 좋습니다. .NET, Java, Python, Node.js 및 REST에 대한 가이드를 참조하세요.
사용자 지정 스크립트를 테스트하여 업그레이드된 계정에서 예상대로 작동하는지 확인합니다.
Blob API의 경우와 마찬가지로 대부분의 스크립트는 수정하지 않고도 작동할 수 있습니다. 그러나 필요한 경우 Data Lake Storage PowerShell cmdlet 및 Azure CLI 명령을 사용하도록 스크립트 파일을 업그레이드할 수 있습니다.