如何改变blob和Azure存储账户的访问层级

955 阅读12分钟

本文将解释Azure存储的访问层属性。我还将解释如何在本文中改变Azure存储账户和特定blob对象的访问层级。我们已经在下面的文章中探讨了Azure存储的基础知识,我建议你阅读这些文章来了解Azure blob存储。

  • 开始使用Azure存储
  • 了解Azure BLOB存储及其在SQL Server中的用途

Azure blob存储是Azure存储的一种类型,可用于存储大量的非结构化数据。我们还可以将这种存储类型用于Azure数据湖分析解决方案。创建blob存储的第一步是创建一个存储账户。以下是创建blob存储并将非结构化数据存储在该blob容器中必须遵循的高级步骤。

  • 登录到Azure门户
  • 创建一个存储账户
  • 创建一个容器
  • 上传blob数据

阅读上述文章,了解创建存储账户、容器的步骤,以及上传blob对象的步骤。

当我们创建一个存储账户时,它将使用默认的访问层,即热层。有时你不需要热层,因为你的需求是非常有限的数据访问,比如根据短期或长期保留策略保存的SQL Server备份文件等。如果你对这些将被保留的备份文件使用热层,那么它将花费你更多。在这种要求下,节省存储成本的一个更好的选择是改变其存储账户或你想长期保留的特定备份文件的访问层级。今天,我将在这篇文章中解释如何管理存储账户和blob对象的访问层级。

我们在Azure存储中存储的数据有多种类型和性质。所有类型的blob数据都有不同的可访问性要求。有时,数据的可访问性会随着时间的推移而降低,而某些类型的blob数据的可访问性却保持不变。为很少被访问或根本不被访问的数据支付同样的价格是没有意义的。Azure提供了访问层属性来解决这种情况,以优化可访问性较低的blob上的成本。

Azure存储提供了标准和高级两个选项,从性能的角度创建一个存储账户。如果你在创建存储账户时选择了标准选项(GPv2存储),那么这个选项将允许你利用3个访问层,即热、冷和归档的blob对象。高级存储选项不允许有这些选项,它默认创建的是预配置的访问层,比标准存储选项的热层提供更好的性能和访问性。我们可以根据数据访问的频率和性质来选择合适的访问层。

我们只能在Azure存储账户级别使用2个访问层选项,而在blob对象级别可以使用所有3个访问层选项。如果我们将任何blob对象上传到存储账户容器中,它就会从存储账户的默认访问层设置中继承访问层,以防你不为该blob指定访问层。你可以识别任何blob对象是否使用继承的默认访问层,或者它们的访问层已经被修改。如果一个blob对象的访问层设置有一个字 推断和其访问层选项,如Hot**(Inferred**)或cool**(Inferred**),这意味着该设置是继承自存储账户的默认访问层。如果我们改变Azure存储账户的访问层,那么新的访问层将适用于所有使用继承的访问层的blob,这些blob具有推断的选项。

让我们再来讨论一下Azure blob存储的所有3个访问层。

热层

如果你需要频繁的数据访问(读、写操作),且延迟较低,你应该使用热层。大多数事务性工作负载都使用该层以获得最佳性能。这一层将向你收取最高的存储成本和所有3层中最低的访问成本。

凉爽层

该层适用于不频繁的数据访问需求。它也提供良好的性能和耐久性。这一层的价格低于热层的存储成本,高于热层的访问成本。该层是备份、DR或任何不经常使用的非结构化数据的理想选择。在这个层级存储数据的最小保留时间是30天。

归档层

在所有3个访问层中,该层的存储成本最低,访问成本最高。这适用于您偶尔使用的blob数据,如长期的备份保留,任何您想保留的数据,并且在较长时间内不会使用。存储在这个层级的数据处于离线模式,不能被读取和修改。如果你想使用这些数据,你需要对其进行补水。补水过程可能需要很多时间来为你提供实际的数据,所以这一层的性能非常低。你可以从180天开始在实现层中存储数据。

归档层也有一些限制。它不支持所有类型的冗余选项,如热层和冷层。它不支持分区冗余存储(ZRS),地理分区冗余存储(GZRS),以及读取访问的地理分区冗余存储(RA-GZRS)。在将冗余选项从LRS迁移到GRS时也有一个限制,如果更新是在过去30天内完成的,并且在配置为LRS冗余后没有将任何blob移动到GRS,那么你可以移动到GRS。

我们可以在创建Azure存储账户时设置一个访问层,我们也可以在创建之后再进行更改。在账户级别,我们只有访问层和访问层两种选择,而归档访问层只能在blob或对象级别设置,我在本文倒数第二张图片中做了演示。如果你将任何blob上传到容器中,它就会从其各自的存储账户中继承访问层,如果你在上传时没有明确地改变它的话。之后我们可以根据我们的要求改变任何对象或blob的访问层。将访问层从热层改为冷层,以实现将对你的读写操作收费。

改变访问层的成本影响

改变访问层的过程会在后台执行一些读写操作,在Azure存储的不同层之间复制数据。在你使用GPv2存储选项的情况下,这些读和写是要收费的,所以在决定改变这个访问层时要考虑到这一点。你将始终按较低的访问层,即较冷的访问层收费。让我再解释一下。

  • 如果你把访问层从热层改为冷层,从冷层改为档案层,或从热层改为档案层,那么你将只对目标访问层的写操作收费。这意味着收费将仅根据在冷却或归档层上进行的写操作来计算。你将不会被收取任何来自热层的读操作。写操作将根据写的数量和Blobs的大小来收费,即每10000次写操作和每GB数据写到目标层。
  • 如果你想转移到较热的层,如从存档到冷,存档到热,或从冷到热访问层,那么你将只对源访问层的读操作收费。这意味着收费将根据在冷或存档访问层上进行的阅读操作来衡量。在这里,你也不会对热层的任何写操作进行收费。同样,读取操作将根据源层的读取次数和数据大小来衡量,即每10000次读取操作和每GB数据在源层读取。

正如我们所知,酷访问层的最小保留时间是30天,而存档层是180天。如果你在不到最低保留天数的情况下删除任何blob数据,那么你将被收取到最低保留期限前的剩余天数的提前删除费。如果您将数据从热层转移到冷层,并在改变访问层后的10天内想要从冷层中删除该数据,那么您将被收取20天的提前删除费,这是为达到冷层的最低可接受保留期限而留下的。如果你在最低可接受保留期限之前再次将其访问层级从酷层改为其他访问层级,你也将被收取提前删除费。

改变存储账户的访问层级

如上所述,Azure存储账户只支持2个访问层,即热层和冷层。如果你不会为该blob指定,所有blob对象都使用从Azure存储账户继承的默认访问层。如果你改变了存储账户级别的访问层,那么所有使用从各自存储账户继承的访问层的blob对象的访问层也将改变为存储账户配置的新访问层。如果你想保持现有的访问层,你可以改变特定blob对象的访问层。让我们把Azure存储账户的访问层级从热层改为冷层。

  1. 登录到Azure门户。

  2. 从搜索控制台中键入 "存储账户",然后点击这个选项,一旦它出现在搜索下拉菜单中。

  3. 我已经在Azure存储账户mdsstorage1中创建了一个容器mdsblob来存储非结构化数据。我们可以看到它的访问层在下面的图片中被设置为check Azure storage account access tier

    我还向这个存储账户上传了一个blob对象。点击左侧窗格中的容器,然后我点击了我的容器,在这个容器下我上传了对象。我们可以看到它的访问层被设置为热****(推断),这意味着它是从Azure存储账户的访问层设置中继承的。

    Check access tier of a blob stored in Azure blob storage

  4. 现在,我将改变存储账户mdsstorage1的访问层,并验证其细节,我还将向你展示在Azure存储账户应用改变后,上述blob对象的访问层是否改变。

  5. 进入存储账户概览页面,点击默认访问层配置中的选项。你将跳转到其配置页面,如下图所示。你也可以点击左侧窗格中设置下的配置标签。

    Change default access tier of storage account

  6. 选择 ""的单选按钮,然后点击右上方窗格中的 "保存"按钮。

    Change default access tier of storage account

  7. 现在,回到你的存储账户的**"概览 "页面,验证这一变化。在下面的截图中,我们可以看到现在的访问层级被设置为Cool**。

    validate access tier of storage account

让我们来验证一下这一变化是否适用于存储在该存储账户中的blob对象。我们可以看到,该对象的访问层也已改为使用存储账户的默认访问层的酷(推断)

Validate blob tier

在本节中,我已经向你展示了如何改变存储账户的访问层。下一节将解释有关更改特定blob对象访问层级的步骤。

更改blob对象的访问层

我们看到,如果我们改变Azure blob存储账户的访问层级,那么存储在Azure blob存储中的blob的访问层级就会发生变化。现在,我将向你展示如何改变存储对象的访问层。在改变了存储账户的默认访问层后,上述blob的访问层已经变成了Cool(推断)。现在,我将把上述blob的访问轮胎改为Hot,保持其存储账户默认访问层与Cool相同。

  1. 登录到Azure门户

  2. 在搜索控制台中键入 "存储账户",并在搜索下拉菜单中出现后点击该选项

  3. 我已经在存储账户mdsstorage1中创建了一个容器mdsblob来存储非结构化数据。进入容器mdsblob, 你会得到一个类似的屏幕,如上面的图片所示

  4. 点击下图中显示为暗红色矩形的 "更改层级"选项。你需要选择确定的blob来启用这个按钮。如上图所示,它通常是禁用的。你也可以点击显示在该对象的近似最小状态栏中的3个小点

    Change blob access tier

  5. 下面的屏幕会出现,以改变该blob的访问层级

    Change blob access tier

    为这个blob选择你想要的访问层。我选择了回热,并点击了保存按钮。一旦你选择了你的选择,保存按钮将被启用。

  6. 一旦你点击上面屏幕上的保存按钮,该更改将适用。下面的图片显示,访问层级已经成功更改,现在blob的访问层级显示为。你还会注意到,在这个访问层配置中显示了推断文本,这意味着这个访问层设置不是从Azure存储账户的默认访问层继承的。

    Validate access tier change for a blob

你也可以通过再次访问 "改变层级"屏幕来获得访问层级的最后修改时间,如下图所示。你还可以注意到,在下拉菜单中没有推断文本的访问层级选项。

Validate when access tier was changed for a blob

总结

访问层是Azure存储中一个非常重要的存储属性。它定义了你的数据可访问性和所有存储数据的存储成本。你应该计划并改变那些不经常被访问的数据的访问层,以节省存储成本。我们可以在存储账户级别以及blob对象级别改变访问层。