Known issues with Azure Data Lake Storage Gen2

This article lists the features and tools that are not yet supported or only partially supported with storage accounts that have a hierarchical namespace (Azure Data Lake Storage Gen2).

Blob storage APIs

Blob storage APIs are disabled to prevent feature operability issues that could arise because Blob Storage APIs aren't yet interoperable with Azure Data Lake Gen2 APIs.

Note

If you enroll in the public preview of multi-protocol access on Data Lake Storage, then blob APIs and Data Lake Storage Gen2 APIs can operate on the same data. To learn more, see multi-protocol access on Data Lake Storage.

What to do with existing tools, applications, and services

If any of these use Blob APIs, and you want to use them to work with all of the content that you upload to your account, then you have two options.

  • Option 1: Don't enable a hierarchical namespace on your Blob storage account until Blob APIs become interoperable with Azure Data Lake Gen2 APIs. Using a storage account without a hierarchical namespace means you then don't have access to Data Lake Storage Gen2 specific features, such as directory and container access control lists.

  • Option 2: Enroll in the public preview of multi-protocol access on Data Lake Storage. Tools and applications that call Blob APIs, as well as Blob storage features, such as diagnostic logs, can work with accounts that have a hierarchical namespace.

What to do if you used Blob APIs to load data before Blob APIs were disabled

If you used these APIs to load data before they were disabled, and you have a production requirement to access that data, then please contact Microsoft Support with the following information:

  • Subscription ID (the GUID, not the name).
  • Storage account name(s).
  • Whether you are actively impacted in production, and if so, for which storage accounts?.
  • Even if you are not actively impacted in production, tell us whether you need this data to be copied to another storage account for some reason, and if so, why?

Under these circumstances, we can restore access to the Blob API for a limited period of time so that you can copy this data into a storage account that doesn't have the hierarchical namespace feature enabled.

Issues and limitations with using Blob APIs on accounts that have a hierarchical namespace

If you enroll in the public preview of multi-protocol access on Data Lake Storage, then blob APIs and Data Lake Storage Gen2 APIs can operate on the same data.

This section describes issues and limitations with using blob APIs and Data Lake Storage Gen2 APIs to operate on the same data.

  • You can't use both Blob APIs and Data Lake Storage APIs to write to the same instance of a file.

  • If you write to a file by using Data Lake Storage Gen2 APIs, then that file's blocks won't be visible to calls to the Get Block List blob API.

  • You can overwrite a file by using either Data Lake Storage Gen2 APIs or Blob APIs. This won't affect file properties.

  • When you use the List Blobs operation without specifying a delimiter, the results will include both directories and blobs.

    If you choose to use a delimiter, use only a forward slash (/). This is the only supported delimiter.

  • If you use the Delete Blob API to delete a directory, that directory will be deleted only if it's empty.

    This means that you can't use the Blob API delete directories recursively.

These Blob REST APIs aren't supported:

Issues with Unmanaged Virtual Machine (VM) disks

Unmanaged VM disks are not supported in accounts that have a hierarchical namespace. If you want to enable a hierarchical namespace on a storage account, place unmanaged VM disks into a storage account that doesn't have the hierarchical namespace feature enabled.

Support for other Blob storage features

The following table lists all other features and tools that are not yet supported or only partially supported with storage accounts that have a hierarchical namespace (Azure Data Lake Storage Gen2).

Feature / Tool More information
APIs for Data Lake Storage Gen2 storage accounts Partially supported

multi-protocol access on Data Lake Storage is currently in public preview. This preview enables you to use Blob APIs in the .NET, Java, Python SDKs with accounts that have a hierarchical namespace. The SDKs don't yet contain APIs that enable you to interact with directories or set access control lists (ACLs). To perform those functions, you can use Data Lake Storage Gen2 REST APIs.
AzCopy Version-specific support

Use only the latest version of AzCopy (AzCopy v10). Earlier versions of AzCopy such as AzCopy v8.1, are not supported.
Azure Blob storage lifecycle management policies Supported only if you enroll in the multi-protocol access on Data Lake Storage preview. Cool and archive access tiers are supported only by the preview. The deletion of blob snapshots is not yet supported.
Azure Content Delivery Network (CDN) Not yet supported
Azure search Supported only if you enroll in the multi-protocol access on Data Lake Storage preview.
Azure Storage Explorer Version-specific support

Use only version 1.6.0 or higher.
Version 1.6.0 is available as a free download.
Blob container ACLs Not yet supported
Blobfuse Not yet supported
Custom domains Not yet supported
File System Explorer Limited support
Diagnostic logging Diagnostic logs are supported only if you enroll in the multi-protocol access on Data Lake Storage preview.

Enabling logs in the Azure portal is not currently supported. Here's an example of how to enable the logs by using PowerShell.

$storageAccount = Get-AzStorageAccount -ResourceGroupName <resourceGroup> -Name <storageAccountName>

Set-AzStorageServiceLoggingProperty -Context $storageAccount.Context -ServiceType Blob -LoggingOperations read,write,delete -RetentionDays <days>.

Make sure to specify Blob as the value of the -ServiceType parameter as shown in this example.

Currently, Azure Storage Explorer can't be used for viewing diagnostic logs. To view logs, please use AzCopy or SDKs.
Immutable storage Not yet supported

Immutable storage gives the ability to store data in a WORM (Write Once, Read Many) state.
Object-level tiers Cool and archive tiers are supported only if you enroll in the multi-protocol access on Data Lake Storage preview.

All other access tiers are not yet supported.
Powershell and CLI support Limited functionality

Management operations such as creating an account is supported. Data plane operations such as uploading and downloading files is in public preview as part of multi-protocol access on Data Lake Storage. Working with directories and setting access control lists (ACLs) is not yet supported.
Static websites Not yet supported

Specifically, the ability to serve files to Static websites.
Third party applications Limited support

Third party applications that use REST APIs to work will continue to work if you use them with Data Lake Storage Gen2.
Applications that call Blob APIs will likely work if you enroll in the public preview of multi-protocol access on Data Lake Storage.
Versioning features Not yet supported

This includes snapshots and soft delete.