Azure 存储平台是 Microsoft 提供的适用于现代数据存储方案的云存储解决方案。 核心存储服务为数据对象提供可大规模缩放的对象存储、为 Azure 虚拟机 (VM) 提供磁盘存储、为云提供文件系统服务,并且提供用于可靠消息传送的消息传送存储以及 NoSQL 存储。 这些服务包括:
- 持久且具有高可用性。冗余可确保数据在发生短暂的硬件故障时是安全的。 还可以选择在各个数据中心或地理区域之间复制数据,从而在发生本地灾难或自然灾害时提供额外的保护。 以此方式复制的数据在发生意外中断时将保持高可用性。
- 安全。该服务会对写入到 Azure 存储帐户的所有数据进行加密。 Azure 存储可以精细地控制谁可以访问你的数据。
- 可缩放。Azure 存储设计为可大规模缩放以满足当今的应用程序在数据存储和性能方面的需求。
- 已托管。Azure 为你处理硬件维护、更新和关键问题。
- 易访问。可以通过 HTTP 或 HTTPS 从世界上的任何位置访问 Azure 存储中的数据。 Microsoft 以各种语言(包括 NET、Java、Node.js、Python、PHP、Ruby、Go 和其他语言)提供了适用于 Azure 存储的客户端库以及成熟的 REST API。 Azure 存储支持通过 Azure PowerShell 或 Azure CLI 运行脚本。 而且,Azure 门户和 Azure 存储资源管理器提供了用于处理数据的简单可视化解决方案。
核心存储服务
Azure 存储平台包括以下数据服务:
- Azure Blob:适用于文本和二进制数据的可大规模缩放的对象存储。 还包括通过 Data Lake Storage Gen2 支持大数据分析。
- Azure 文件:适用于云或本地部署的托管文件共享。
- Azure 队列:用于在应用程序组件之间进行可靠的消息传送的消息存储。
- Azure 表:一种 NoSQL 存储,适合用作结构化数据的无架构存储。
- Azure 磁盘:Azure VM 的块级存储卷。
对每个服务的访问都通过存储帐户进行。要开始使用 Azure 存储,首先要创建 Azure 存储帐户以存储数据对象。 可以使用 Azure 门户、PowerShell 或 Azure CLI 创建 Azure 存储帐户。
存储帐户将包含所有 Azure 存储数据对象,例如 blob、文件和磁盘。
备注:Azure VM 使用 Azure 磁盘存储来存储虚拟磁盘。 但是,不能使用 Azure 磁盘存储在虚拟机外部存储磁盘。
存储帐户为 Azure 存储数据提供一个唯一的命名空间,可通过 HTTP 或 HTTPS 从世界上的任何位置访问该数据。 此帐户中的数据是安全、高度可用、持久且高度可缩放的。
磁盘存储
磁盘存储为 Azure 虚拟机提供磁盘。 应用程序和其他服务可根据需要访问和使用这些磁盘,就像在本地场景下一样。 磁盘存储允许通过附加的虚拟硬盘永久地存储和访问数据。
磁盘有许多不同的大小和性能级别,从固态硬盘 (SSD) 到传统的旋转硬盘驱动器 (HDD),各自具有不同的性能层。 可以将标准 SSD 和 HDD 磁盘用于关键性更低的工作负载、将高级 SSD 磁盘用于任务关键型生产应用程序,并将超级磁盘用于 SAP HANA、顶层数据库等数据密集型工作负载和事务密集型工作负载。 Azure 为基础结构即服务 (Iaas) 磁盘持续提供企业级持久性,年化故障率为 0%,达到行业领先水平。
下图显示使用单独磁盘来存储不同数据的 Azure 虚拟机。
Azure Blob 存储
Azure Blob 存储是适用于云的对象存储解决方案。 它可以存储海量数据,例如文本或二进制数据。 Azure Blob 存储是非结构化的,这意味着它可保存各种类型的数据。 Blob 存储可以管理数千个同步上传、大量视频数据以及不断增长的日志文件,并且你可以通过 Internet 连接从任意位置访问它。
Blob 并不限于常见的文件格式。 Blob 可能包含从科学仪器流式传输的千兆字节二进制数据、另一个应用程序的加密消息,或者正在开发的应用的自定义格式的数据。 磁盘存储上 blob 存储的一个优点是不需要开发人员考虑或管理磁盘;数据以 blob 的形式上传,Azure 负责解决物理存储需求。
Blob 存储最适合用于:
- 直接向浏览器提供图像或文档。
- 存储文件以供分布式访问。
- 对视频和音频进行流式处理。
- 存储用于备份和还原、灾难恢复及存档的数据。
- 存储数据以供本地或 Azure 托管服务执行分析。
- 为虚拟机存储多达 8 TB 的数据。
Blob 存储在容器中,可以帮助你根据业务需求来组织 blob。
下图演示了如何使用 Azure 帐户、容器和 blob。
Azure 文件存储
Azure 文件存储在云端提供完全托管的文件共享,这些共享可通过行业标准的服务器消息块和网络文件系统(预览)协议进行访问。 Azure 文件共享可由云或者 Windows、Linux 和 macOS 的本地部署同时装载。 在 Azure 虚拟机或云服务中运行的应用程序可以装载文件存储共享以访问文件数据,就像桌面应用程序可以装载典型 SMB 共享一样。 任意数量的 Azure 虚拟机或角色可以同时装载并访问文件存储共享。 其典型的使用场景包括在全球任意位置共享文件、诊断数据或应用程序数据共享。
在以下情况下使用 Azure 文件存储:
- 许多本地应用程序使用文件共享。 借助 Azure 文件存储可以更方便地迁移将数据共享到 Azure 的应用程序。 如果将 Azure 文件共享装载到本地应用程序使用的相同驱动器号,则访问该文件共享的应用程序部分应只需要进行最少的更改(如果有)。
- 将配置文件存储在文件共享上,并从多个 VM 进行访问。 可以将一个组中多个开发人员使用的工具和实用程序存储到文件共享中,确保每个人都能找到它们并使用同一版本。
- 将数据写入文件共享,稍后处理或分析数据。 例如,你可能希望对诊断日志、指标和故障转储执行此操作。
下图显示了用于在两个地理位置之间共享数据的 Azure 文件存储。 Azure 文件存储可确保数据在静止时处于加密状态,SMB 协议可确保数据在传输过程中处于加密状态。
Azure 文件存储与公司文件共享上的文件不同的一点是,你可以使用指向文件的 URL 从世界上的任何地方访问这些文件。 你还可以使用共享访问签名 (SAS) 令牌,允许特定时间段内对专用资产的访问。
下面是服务 SAS URI 的一个示例,其中显示了资源 URI 和 SAS 令牌:
Blob 访问层介绍
存储在云中的数据以指数速度增长。 要为扩展的存储需求管理成本,根据属性(如访问频率和计划保留期)整理数据将很有帮助。 存储在云中的数据可能根据其生成方式、处理方式以及在生存期内的访问方式而有所不同。 某些数据在其整个生存期中都会受到积极的访问和修改。 某些数据则在生存期早期会受到频繁访问,随着数据变旧,访问会极大地减少。 某些数据在云中保持空闲状态,并且在存储后很少(如果有)被访问。 为了满足这些不同的访问需求,Azure 提供了几个访问层,可以利用它们实现存储成本与访问需求的平衡。
Azure 存储为 blob 存储提供不同的访问层,有助于以最经济高效的方式存储对象数据。 可用的访问层包括:
- 热访问层:针对存储经常访问的数据(例如网站图像)进行了优化。
- 冷访问层:为不常访问且存储时间至少为 30 天的数据(例如客户发票)进行了优化。
- 存档访问层:适用于极少访问、存储时间至少为 180 天且延迟要求不严格的数据(例如长期备份)。
以下注意事项适用于不同的访问层:
- 在帐户级别只能设置热和冷访问层。 存档访问层在帐户级别不可用。
- 可以在上传期间或上传后在 Blob 级别设置热层、冷层和存档层。
- 冷访问层中的数据可容许略低的可用性,但仍需类似于热数据的高持久性、检索延迟和吞吐量特征。 对于冷数据,略低的可用性服务级别协议 (SLA) 和较高的访问成本(与热数据相比)对于更低的存储成本而言是可接受的折衷。
- 存档存储可脱机存储数据,其存储费用最低,但数据解除冻结和访问费用最高。