Google Cloud 架构框架中的本文档提供了基于存储空间部署系统的最佳实践。您将了解如何选择存储策略以及如何管理存储空间、访问模式和工作负载。
为促进数据交换并以安全方式备份和存储数据,组织需要根据工作负载(即每秒输入/输出操作次数 (IOPS))、延迟时间、检索频率、位置、容量和格式(块、文件和对象)选择存储方案。
Cloud Storage 提供安全可靠的对象存储服务,具体包括:
- 内置冗余选项,可保护您的数据免受设备故障的影响,并确保在数据中心维护期间的数据可用性。
- 数据转移选项,具体包括:
- 存储类别,可支持您的工作负载。
- 针对所有可让 Google 验证读取和写入的 Cloud Storage 操作计算得出的校验和。
在 Google Cloud 中,IOPS 会根据您预配的存储空间进行扩缩。Persistent Disk 等存储类型需要手动进行复制和备份,因为它们是区域级或可用区级的存储类型。相比之下,对象存储具备高可用性,并且会自动跨单个区域或多个区域复制数据。
存储类型
本部分提供了选择存储类型以支持您的系统的最佳实践。
评估高性能存储需求的选项
评估永久性磁盘或本地固态硬盘 (SSD) 是否适用于需要高性能存储的计算应用。Cloud Storage 是启用了版本控制的不可变对象存储。将 Cloud Storage 与 Cloud CDN 搭配使用有助于针对费用进行优化,尤其是对于经常访问的静态对象而言。
Filestore 支持需要高性能共享空间的多写入应用。Filestore 还支持需要通过网络文件系统 (NFS) 装载执行类似 POSIX 的文件操作的旧版和现代化应用。
Cloud Storage 可为创建数据湖和满足归档要求等使用场景提供支持。由于存在访问费用和检索费用,请根据您选择的 Cloud Storage 类别来权衡并制定决策,尤其是在配置保留政策时。如需了解详情,请参阅为云工作负载设计最佳存储策略。
默认情况下,所有存储选项都使用 Google 拥有和 Google 管理的密钥进行静态加密和传输中加密。对于 Persistent Disk 和 Cloud Storage 等存储类型,您可以提供自己的密钥或通过 Cloud Key Management Service (Cloud KMS) 进行管理。请先制定处理此类密钥的策略,再将其运用于生产数据。
选择 Google Cloud 服务以支持存储设计
如需了解支持存储设计的 Google Cloud 服务,请参阅下表:
Google Cloud 服务 | 说明 |
---|---|
Cloud Storage | 可以在全球范围内随时存储和检索任意数量的数据。您可以在多个场景中使用 Cloud Storage,包括传送网站内容、存储数据以用于归档和灾难恢复,或者通过直接下载向用户分发大型数据对象。 如需了解详情,请参阅以下内容: |
Persistent Disk | 用于 Google Cloud 的高性能块存储。Persistent Disk 提供 SSD 和硬盘 (HDD) 存储设备,您可以将其挂接到 Compute Engine 或 Google Kubernetes Engine (GKE) 中运行的实例。 |
Filestore | 一项代管式文件存储服务,适合那些需要使用文件系统接口和共享文件系统来存储数据的应用。Filestore 为用户带来了无缝体验,让用户能够为其 Compute Engine 和 Kubernetes Engine 实例建立代管式网络附加存储 (NAS) 空间。 |
Cloud Storage for Firebase | 专为需要存储和提供用户生成的内容(如照片或视频)的应用开发者而打造的。您的所有文件都存储在 Cloud Storage 存储桶中,因此可从 Firebase 和 Google Cloud 进行访问。 |
选择存储策略
如需选择符合您的应用要求的存储策略,请参阅下表:
使用场景 | 建议 |
---|---|
您希望以最低费用大规模存储数据,而不考虑访问性能。 | Cloud Storage |
您正在运行需要短期存储的计算应用。 如需了解详情,请参阅优化 Persistent Disk 和本地 SSD 性能。 |
Persistent Disk 或本地 SSD |
您正在运行需要共享空间的读写权限的高性能工作负载。 | Filestore |
您拥有高性能计算 (HPC) 或高吞吐量计算 (HTC) 使用场景。 | 使用集群在云中进行大规模技术计算 |
根据存储访问需求选择活跃存储或归档存储
存储类别是每个对象使用的一段元数据。对于按照高速率和高可用性标准传送的数据,请使用 Standard Storage 存储类别。对于不经常访问且接受略低可用性的数据,请使用 Nearline Storage、Coldline Storage 或 Archive Storage 存储类别。如需详细了解选择存储类别的费用注意事项,请参阅 Cloud Storage 价格。
评估 Cloud Storage 的存储位置和数据保护需求
对于位于某个区域的 Cloud Storage 存储桶,其中包含的数据会自动在该区域内的各可用区中复制。跨可用区的数据复制功能可在区域内出现可用区性故障时保护数据。
Cloud Storage 还提供跨区域冗余的位置,这意味着数据会复制到分布在多个地理位置不同的数据中心。如需了解详情,请参阅存储桶位置。
使用 Cloud CDN 改进静态对象传送
如需优化检索对象的费用并将访问延迟时间缩至最短,请使用 Cloud CDN。Cloud CDN 使用 Cloud Load Balancing 外部应用负载均衡器来提供路由、健康检查和任播 IP 地址支持。如需了解详情,请参阅使用云存储桶设置 Cloud CDN。
存储访问模式和工作负载类型
本部分提供了选择存储访问模式和工作负载类型以支持您的系统的最佳实践。
使用 Persistent Disk 以支持高性能存储访问
数据访问模式取决于您设计系统性能的方式。Cloud Storage 提供可扩缩的存储空间,但是,当您运行需要以高吞吐量方式访问大量数据的繁重计算工作负载时,这并不是理想的选择。如需实现高性能存储访问,请使用 Persistent Disk。
在实现重试逻辑时使用指数退避算法
在实现重试逻辑时使用指数退避算法来处理 5XX、408 和 429 错误。每个 Cloud Storage 存储桶都预配了初始 I/O 容量。如需了解详情,请参阅请求率和访问权限分配准则。规划重试请求的渐增模式。
存储管理
本部分提供了用于存储管理以支持您的系统的最佳实践。
为每个存储桶分配唯一名称
使每个存储桶名称在整个 Cloud Storage 命名空间中保持唯一。请勿在存储桶名称中包含敏感信息。选择难以猜测的存储桶和对象名称。如需了解详情,请参阅存储桶命名准则和对象命名准则。
不公开 Cloud Storage 存储桶
除非存在与业务相关的理由,否则请确保您的 Cloud Storage 存储桶不能以匿名方式访问或公开访问。如需了解详情,请参阅访问权限控制概览。
分配随机对象名称以均匀分配负载
分配随机对象名称以提高性能并避免出现 hotspotting 问题。尽可能针对各对象使用随机前缀。如需了解详情,请参阅借助命名惯例将负载均匀分配到多个键范围中。
使用禁止公开访问功能
如需阻止在组织级层、文件夹级层、项目级层或存储桶级层访问,请使用禁止公开访问功能。如需了解详情,请参阅使用禁止公开访问功能。
后续步骤
了解 Google Cloud 数据库服务和最佳实践,包括:
探索架构框架中的其他类别,例如可靠性、卓越运营以及安全性、隐私权和合规性。