Azure 存储平台是针对新式数据存储方案Microsoft云存储解决方案。 Azure 存储为云中各种数据对象提供高可用性、大规模可缩放、持久和安全存储。 可以通过 REST API 通过 HTTP 或 HTTPS 从世界上任何地方访问Azure 存储数据对象。 Azure 存储还为使用 .NET、Java、Python、JavaScript、C++ 和 Go 构建应用程序或服务的开发人员提供了客户端库。 开发人员和 IT 专业人员可以使用Azure PowerShell和Azure CLI为数据管理或配置任务编写脚本。 Azure门户和Azure 存储资源管理器提供了用于与Azure 存储交互的用户界面工具。
Azure 存储的优点
Azure 存储服务为应用程序开发人员和 IT 专业人员提供以下优势:
- 持久且具有高可用性。 冗余可确保数据在发生短暂的硬件故障时是安全的。 还可以选择在各个数据中心或地理区域之间复制数据,从而在发生本地灾难或自然灾害时提供额外的保护。 以此方式复制的数据在发生意外中断时将保持高可用性。
- 安全。 写入Azure存储帐户的所有数据均由服务加密。 Azure 存储提供对谁有权访问数据进行精细的控制。
- 可缩放。 Azure 存储设计为可大规模缩放,以满足当今应用程序的数据存储和性能需求。
- 已托管。 Azure为你处理硬件维护、更新和关键问题。
- 易访问。 可通过 HTTP 或 HTTPS 从世界上任何地方访问Azure 存储中的数据。 Microsoft为各种语言(包括.NET、Java、Node.js、Python、Go 等)以及成熟的 REST API 等语言的Azure 存储提供客户端库。 Azure 存储支持在Azure PowerShell或Azure CLI中编写脚本。 Azure门户和Azure 存储资源管理器提供了简单的视觉解决方案,用于处理数据。
Azure 存储 数据服务
Azure 存储平台包括以下数据服务:
- Azure Blob:文本和二进制数据的可大规模缩放对象存储。 还包括通过Data Lake Storage对大数据分析的支持。
- Azure 文件存储:云或本地部署的托管文件共享。
- Azure队列:应用程序组件之间可靠消息传送的消息存储。
- Azure 表:用于无架构存储结构化数据的NoSQL存储。
- Azure托管磁盘:Azure VM 的块级存储卷。
每个服务都通过具有唯一地址的存储帐户进行访问。 若要开始使用,请参阅创建存储帐户。
Azure 存储服务的示例方案
下表比较了Azure 存储服务,并显示了每个服务的示例方案。
| 功能 | 说明 | 使用时机 |
|---|---|---|
| Azure 文件存储 | 提供完全托管的云文件共享,可通过行业标准 Server Message Block (SMB) 协议、Network 文件系统(NFS)协议和Azure 文件存储 REST API 进行访问。 可以在云端或本地部署的 Windows、Linux 和 macOS 系统上装载 Azure 文件共享。 |
你希望将应用程序“迁移至云端”,该应用程序已使用本机文件系统 API 与在 Azure 中运行的其他应用程序共享数据。 希望替换或补充本地文件服务器或 NAS 设备。 您希望存储需要从多个虚拟机访问的开发和调试工具。 |
| Azure Blobs | 允许在块 blob 中大规模存储和访问非结构化数据。 还支持用于企业大数据分析解决方案的Azure Data Lake Storage。 |
您希望您的应用程序支持流媒体和随机访问场景。 你希望可以从任何地方访问应用程序数据。 你想要在Azure上构建企业数据湖并执行大数据分析。 |
| Azure 磁盘 | 允许数据永久存储在附加虚拟硬盘中并从中进行访问。 | 希望直接迁移使用本机文件系统 API 将数据读写到永久磁盘中的应用程序。 希望存储不要求从附加磁盘的虚拟机外进行访问的数据时。 |
| Azure队列 | 允许应用程序组件之间存在异步消息队列。 | 希望分离应用程序组件,并传递异步消息以实现这些组件间的通信。 有关何时使用队列存储与服务总线队列的指南,请参阅 Storage 队列和服务总线队列 - 比较和对比。 |
| Azure 表 | 允许在云中存储结构化NoSQL数据,从而提供无架构设计的关键/属性存储。 | 希望存储灵活的数据集,例如 Web 应用程序的用户数据、通讯簿、设备信息,或者服务需要的其他类型的元数据。 有关何时使用表存储与 Azure Cosmos DB 表的指南,请参阅使用 Azure Cosmos DB 表和 Azure Table 存储进行开发。 |
Blob 存储
Azure Blob 存储是云的Microsoft对象存储解决方案。 Blob 存储针对存储大量非结构化数据(如文本或二进制数据)进行了优化。
Blob 存储非常适合:
- 直接向浏览器提供图像或文档。
- 存储文件以供分布式访问。
- 视频和音频流式传输。
- 存储用于备份和还原、灾难恢复及存档的数据。
- 存储数据以供本地或Azure托管服务进行分析。
可以通过 HTTP 或 HTTPS 从世界上任何地方访问Blob 存储中的对象。 用户或客户端应用程序可以通过 URL、Azure 存储 REST API、Azure PowerShell、Azure CLI 或Azure 存储客户端库访问 blob。 存储客户端库适用于多种语言,包括 .NET、Java、Node.js 和 Python。
客户端还可以使用 SSH 文件传输协议(SFTP)安全地连接到Blob 存储,并使用网络文件系统 3.0 协议装载Blob 存储容器。
有关 Blob 存储的详细信息,请参阅 Blob 存储简介。
Azure 文件存储
Azure 文件存储使你能够设置可以使用行业标准 Server Message Block (SMB) 协议访问的高可用性网络文件共享Network 文件系统(NFS)协议和Azure 文件存储 REST API。 这意味着,多个 VM 可以共享启用了读取和写入访问权限的相同文件。 也可使用 REST 接口或存储客户端库来读取文件。
将Azure 文件存储与公司文件共享上的文件区分开来的一点是,可以使用指向文件的 URL 从世界上任何地方访问文件,并包括共享访问签名 (SAS) 令牌。 可以生成 SAS 令牌,用于在指定时间内对私有资产进行特定访问。
文件共享适用于许多常用方案:
许多本地应用程序使用文件共享。 使用此功能可以更轻松地将共享数据的那些应用程序迁移到Azure。 如果将文件共享装载到与本地应用程序使用的相同的驱动器号上,则应用程序中访问文件共享的部分应尽可能不需要更改(如果必须更改的话)。
配置文件可以在一个文件共享上存储,从多个 VM 进行访问。 可以将一个组中多个开发人员使用的工具和实用程序存储到文件共享中,确保每个人都能找到它们并使用同一版本。
例如,资源日志、指标和故障转储是三种可以写入到文件共享供以后处理或分析的数据。
有关Azure 文件存储的详细信息,请参阅 引入到 Azure 文件存储。
某些 SMB 功能不适用于云。 有关详细信息,请参阅 Azure 文件服务不支持的 Features。
队列存储
Azure队列服务用于存储和检索消息。 队列消息最大可以为 64 KB,一个队列可以包含数百万条消息。 队列通常用于存储需要异步处理的消息的列表。
例如,假设你需要客户能够上传图片,并且你需要创建每个图片的缩略图。 可以让客户在上传图片时等待你创建缩略图, 也可以使用队列。 当客户完成上传操作后,向队列写入一条消息。 然后,Azure函数从队列中检索消息并创建缩略图。 此处理过程的每一部分都可以单独进行缩放,让你可以根据使用情况进行调整,加强控制。
有关Azure队列的详细信息,请参阅队列简介。
表存储
Azure 表存储现在是Azure Cosmos DB的一部分。 若要查看Azure 表存储文档,请参阅 Azure 表存储 概述。 除了现有的Azure 表存储服务之外,还有一个名为Azure Cosmos DB for Table的新产品,它提供了吞吐量优化的表、全球分布和自动辅助索引。 若要了解详细信息并试用新的高级体验,请参阅 Azure Cosmos DB for Table。
有关表存储的详细信息,请参阅 Azure 表存储概述。
磁盘存储
Azure托管磁盘是虚拟硬盘(VHD)。 可以将其视为本地服务器中的物理磁盘,但它是虚拟化的。 Azure 托管磁盘存储为页 Blob,它是 Azure 中的随机 IO 存储单元。 我们称托管磁盘为“托管”,因为它是在页 blob、blob 容器和 Azure 存储帐户之上的抽象。 使用托管磁盘时,只需预配磁盘,Azure负责其余操作。
有关托管磁盘的详细信息,请参阅Azure 托管磁盘简介。
存储帐户的类型
Azure 存储提供多种类型的存储帐户。 每种类型支持不同的功能,并且具有自己的定价模型。 有关存储帐户类型的详细信息,请参阅 Azure 存储帐户概述。
保护对存储帐户的访问
必须授权对Azure 存储的每个请求。 Azure 存储支持以下授权方法:
- Microsoft Entra 对 blob、文件、队列和表数据的集成。 Azure 存储支持使用Microsoft Entra ID进行Blob、文件、表和队列服务的身份验证和授权,并通过Azure基于角色的访问控制(Azure RBAC)实现。 建议使用 Microsoft Entra ID 授权请求,以提高安全性和易用性。 有关详细信息,请参阅 授权访问 Azure 存储中的数据。 请参阅 在 Azure 门户中授权访问文件数据,以使用 Microsoft Entra 帐户授权访问文件数据。
- 基于标识的 SMB 身份验证,用于 Azure 文件存储。 Azure 文件存储支持通过SMB(服务器消息块)进行基于标识的授权,可以使用本地Active Directory 域服务 (AD DS)、Microsoft Entra 域服务或仅限混合用户帐户的Microsoft Entra Kerberos。 有关详细信息,请参阅针对 SMB 访问的基于标识的身份验证支持的 Azure 文件存储概述和规划Azure 文件存储部署。
- 通过共享密钥进行授权。 Azure 存储 Blob、文件、队列和表服务支持使用共享密钥进行授权。 使用共享密钥授权的客户端会随使用存储帐户访问密钥签名的每个请求传递一个标头。 有关详细信息,请参阅通过共享密钥进行授权。
- 使用共享访问签名 (SAS) 进行授权。 共享访问签名 (SAS) 是一个字符串,包含的安全令牌可追加到存储资源的 URI 中。 安全令牌封装了各种约束,例如权限、访问时间间隔。 有关详细信息,请参阅使用共享访问签名 (SAS)。
加密
有两种基本类型的加密可用于Azure 存储。 有关安全和加密的详细信息,请参阅 Azure 存储 安全指南。
静态加密
Azure 存储加密可保护数据,以满足组织安全性和合规性承诺。 Azure 存储在保存到存储帐户之前自动加密所有数据,并在检索之前对其进行解密。 加密、解密和密钥管理过程对用户透明。 客户还可以选择使用Azure 密钥保管库管理自己的密钥。 有关详细信息,请参阅Azure 存储静态数据的加密。
客户端加密
Azure 存储客户端库提供了在通过网络发送数据并解密响应之前加密客户端库数据的方法。 通过客户端加密的数据在静态存储时也会由 Azure 存储进行加密。 有关客户端加密的详细信息,请参阅
冗余
为了确保数据持久化,Azure 存储存储数据的多个副本。 设置存储帐户时,可选择冗余选项。 有关详细信息,请参阅 Azure 存储 冗余。
向/从Azure 存储传输数据
可以使用多个选项将数据移入或移出Azure 存储。 选择哪个选项取决于数据集的大小和网络带宽。 有关详细信息,请参阅 选择适用于数据传输的 Azure 解决方案。
定价
决定如何存储和访问数据时,还应考虑涉及的成本。 有关详细信息,请参阅 Azure 存储 定价。
存储 API、库和工具
可以通过发出 HTTP/HTTPS 请求时采用的任何语言来访问存储帐户中的资源。 此外,Azure 存储为多种常用语言提供编程库。 这些库通过处理同步和异步调用、操作批处理、异常管理、自动重试、操作行为等详细信息来简化Azure 存储的许多方面。 这些库当前可供下列语言和平台以及正在筹备的其他语言和平台使用:
Azure 存储 数据 API 和库引用
- Azure 存储 REST API
- 用于 .NET 的 Azure 存储 客户端库
- Azure 存储 Java 客户端库
- 适用于 JavaScript 的 Azure 存储 客户端库
- 适用于 Python 的 Azure 存储 客户端库
- 适用于 Go 的 Azure 存储 客户端库
- 适用于 C++ 的 Azure 存储 客户端库
Azure 存储 管理 API 和库参考
- 存储资源提供程序 REST API
- .NET 存储资源提供程序客户端库
- 存储服务管理 REST API (Classic)
- Azure 文件存储 REST API
Azure 存储数据移动 API
工具和实用程序
- Azure PowerShell Cmdlets 用于存储的命令行工具
- Azure CLI Cmdlets 用于存储
- AzCopy Command-Line 实用工具
- Azure 存储资源管理器是Microsoft的免费独立应用,可用于直观处理 Windows、macOS 和 Linux 上的Azure 存储数据。
- 用于 Azure 存储 的 Azure 资源管理器 模板
后续步骤
若要启动并运行 Azure 存储,请参阅 创建存储帐户。