升级具有 Azure Data Lake Storage Gen2 功能的 Azure Blob 存储

本文可帮助你启用分层命名空间,并解锁文件和目录级安全性和更快的操作等功能。 这些功能广泛用于大数据分析工作负荷,并统称为 Azure Data Lake Storage Gen2。

若要详细了解这些功能并评估此升级对工作负荷、应用程序、成本、服务集成、工具、功能和文档的影响,请参阅升级具有 Azure Data Lake Storage Gen2 功能的 Azure Blob 存储

重要

升级是单向的。 执行升级后,无法还原帐户。 建议在非生产环境中验证升级。

准备升级

若要准备将存储帐户升级到 Data Lake Storage Gen2:

查看功能支持

你的存储帐户可能配置为使用已启用 Data Lake Storage Gen2 的帐户中尚不支持的功能。 如果你的帐户正在使用此类功能,则升级将通不过验证步骤。 请查看 Azure 存储帐户中的 Blob 存储功能支持一文,以了解哪些功能不受支持。 如果当前在帐户中使用了任何此类功能,请在开始升级之前将其禁用。

Data Lake Storage Gen2 帐户支持以下功能,但升级过程不支持:

  • Blob 快照
  • 加密范围
  • 不可变存储
  • 用于生命周期管理的上次访问时间跟踪
  • blob 的软删除
  • 容器软删除

如果存储帐户启用了此类功能,则必须在执行升级之前将其禁用。 如果要在升级完成后继续使用这些功能,请将其重新启用。

在某些情况下,在升级之前禁用某个功能后,必须留出时间执行清理操作。 一个示例是 blob 软删除功能。 必须先禁用 blob 软删除,并允许所有软删除 blob 过期,然后才能升级帐户。

重要

无法将存储帐户升级到启用更改源功能的 Data Lake Storage Gen2。 仅禁用更改源将不允许执行升级。 而是必须创建启用了分层命名空间功能的帐户,然后将数据传输到该帐户。

确保为每个 blob 路径的段命名

迁移过程会为 Blob 的每个路径段创建一个目录。 Data Lake Storage Gen2 目录必须具有名称才能成功进行迁移,虚拟目录中的每个路径段必须具有名称。 同样的要求适用于仅使用空格字符命名的段。 如果任何路径段是未命名的 (//),或者是仅使用空格字符命名的 (_),则在继续迁移之前,必须将这些 blob 复制到与这些命名要求兼容的新路径。

阻止对存储帐户的写入活动

如果应用程序在升级期间写入存储帐户,则升级可能会失败。 若要防止此类写入活动,请执行以下操作:

  1. 停止任何可能执行写入操作的应用程序或服务。

  2. 释放或中断存储帐户中容器和 Blob 的现有租约。

升级完成后,请中断创建的租约以继续允许对容器和 Blob 进行写入访问。

警告

在不正常禁用当前正在访问这些资源的应用程序或虚拟机的情况下中断活动租约可能会产生意外的结果。 在中断任何当前租约之前,请务必停止任何当前写入活动。

执行升级

  1. 登录到 Azure 门户即可开始操作。

  2. 找到存储帐户并显示帐户概览。

  3. 选择“Data Lake Gen2 升级”。

    此时将出现“升级到具有 Azure Data Lake Gen2 功能的存储帐户”配置页。

    Configuration page

  4. 展开“步骤 1: 在升级之前查看帐户更改”部分,然后单击“查看并同意更改”。

  5. 在“查看帐户更改”页上,选中相应的复选框,然后单击“同意更改”。

  6. 展开“步骤 2: 升级之前验证帐户”部分,然后单击“开始验证”。

    如果验证失败,则页面中会出现错误。 在某些情况下,将显示“查看错误”链接。 如果出现该链接,请选中该链接。

    View errors link

    然后,从“error.json”文件的上下文菜单中选择“下载”。

    Error json page

    打开下载的文件,确定帐户未通过验证步骤的原因。 下面的 JSON 指示在该帐户上启用了不兼容的功能。 在这种情况下,您将禁用该功能,然后重新启动验证过程。

    {
     "startTime": "2021-08-04T18:40:31.8465320Z",
     "id": "45c84a6d-6746-4142-8130-5ae9cfe013a0",
     "incompatibleFeatures": [
         "Blob Delete Retention Enabled"
     ],
     "blobValidationErrors": [],
     "scannedBlobCount": 0,
     "invalidBlobCount": 0,
     "endTime": "2021-08-04T18:40:34.9371480Z"
    }
    
  7. 成功验证你的帐户后,展开“步骤 3: 升级帐户”部分,然后单击“开始升级”。

    重要

    帐户升级时,将禁用写入操作。 读取操作未被禁用,但我们强烈建议你挂起读取操作,因为这些操作可能会使升级过程不稳定。

    成功完成迁移后,将显示类似于以下内容的消息。

    Migration completed page

停止升级

可以在迁移完成之前停止迁移。

若要在升级完成之前停止升级,请在升级正在进行时选择“取消升级”。

Cancel upgrade

迁移数据、工作负载和应用程序

  1. 工作负荷中的服务配置为指向 Blob 服务终结点或 Data Lake storage 终结点。

    Account endpoints

  2. 对于使用 Windows Azure 存储 Blob 驱动程序或 WASB 驱动程序的 Hadoop 工作负荷,请确保修改它们以使用 Azure Blob 文件系统 (ABFS) 驱动程序。 不同于对 Blob 服务终结点发出请求的 WASB 驱动程序,ABFS 驱动程序将向帐户的 Data Lake Storage 终结点发出请求。

  3. 测试自定义应用程序,以确保在你的升级帐户中正常工作。

    Data Lake Storage 上的多协议访问允许大多数应用程序继续使用 Blob API,而无需修改。 如果遇到问题或想要使用 API 来处理目录操作和 ACL,请考虑移动一些代码以使用 Data Lake Storage Gen2 API。 请参阅适用于 .NETJavaPythonNode.jsREST 的指南。

  4. 测试任何自定义脚本,以确保在你的升级帐户中正常工作。

    与 Blob API 一样,许多脚本可能不需要修改即可工作。 但是,如果需要,可以升级脚本文件以使用 Data Lake Storage Gen2 PowerShell cmdletAzure CLI 命令

另请参阅

Azure Data Lake Storage Gen2 简介