

# PERF03-BP01 了解存储特征和要求
<a name="perf_right_storage_solution_understand_char"></a>

 确定和记录工作负载存储需求，并定义每个位置的存储特征。存储特征示例包括：可共享访问、文件大小、增长率、吞吐量、IOPS、延迟、访问模式和数据持久性。使用这些特征来评估数据块、文件、对象或实例存储服务是否是满足您的存储需求的最有效解决方案。 

 **期望结果：** 根据存储要求确定并记录存储要求，并评估可用的存储解决方案。基于关键存储特征，您的团队将了解所选存储服务将如何提高您的工作负载性能。关键标准包括数据访问模式、增长率、扩展需求和延迟要求。 

 **常见反模式：** 
+  对于所有工作负载，您都只使用一种存储类型，例如 Amazon Elastic Block Store（Amazon EBS）。 
+  您可以假设所有工作负载都具有相似的存储访问性能要求。 

 **建立此最佳实践的好处：** 根据已确定和所需的特征选择存储解决方案将有助于提高工作负载性能，降低成本并减少维护工作负载的运营工作量。您的工作负载性能将受益于存储服务的解决方案、配置和位置。 

 **未建立这种最佳实践的情况下暴露的风险等级：** 高 

## 实施指导
<a name="implementation-guidance"></a>

 确定您的工作负载最重要的存储性能指标，并使用基准测试或负载测试，将其作为数据驱动型方法的一部分来实施改进。使用这些数据确定存储解决方案受限的方面，并检查可以改进解决方案的配置选项。确定工作负载的预期增长率，然后选择满足这些增长率的存储解决方案。研究 AWS 存储产品以确定适合您的各种工作负载需求的正确存储解决方案。通过在 AWS 中预置存储解决方案，您有更多机会测试存储产品并确定它们是否适合您的工作负载需求。 


| AWS 服务 | 主要特征 | 常见使用场景 | 
| --- | --- | --- | 
| Amazon S3 |  持久性高达 99.999999999%，无限增长，可从任何地方访问，多种基于访问和弹性的成本模式  |  云原生应用程序数据、数据存档和备份、分析、数据湖、静态网站托管、IoT 数据   | 
| Amazon Glacier |  几秒钟到几小时的延迟，无限增长，极低成本，长期存储  |  数据存档，媒体存档，长期备份保留。  | 
| Amazon EBS | 存储大小需要管理和监控，低延迟，持久性存储，99.8% 至 99.9% 的持久性，大多数卷类型只能从一个 EC2 实例访问。 |  COTS 应用程序，I/O 密集型应用程序，关系型和 NoSQL 数据库，备份和恢复  | 
| EC2 Instance Store |  预先确定的存储大小，极低延迟，不持久，只能从一个 EC2 实例访问  |  COTS 应用程序，I/O 密集型应用程序，内存中数据存储  | 
| Amazon EFS |  持久性高达 99.999999999%，无限增长，可由多项计算服务访问  |  现代化应用程序跨多项计算服务共享文件，文件存储用于扩展内容管理系统  | 
| Amazon FSx |  支持四个文件系统（NetApp、OpenZFS、Windows File Server 和 Amazon FSx for Lustre），每个文件系统的可用存储空间不同，可由多项计算服务访问  |  云原生工作负载，私有云爆发，需要特定文件系统的迁移工作负载，VMC，ERP 系统，本地文件存储和备份   | 
| Snow Family |  便携式设备，256 位加密，NFS 端点，机载计算，TB 级存储  |  将数据迁移到云端，存储，以及在极端的本地条件下的计算，灾难恢复，远程数据收集  | 
| AWS Storage Gateway |  提供对云支持存储的低延迟本地访问，完全托管本地缓存   |  本地数据到云的迁移，从本地数据源填充云数据湖，现代化的文件共享。  | 

 **实施步骤：** 

1. 使用基准测试或负载测试来收集您的存储需求的主要特征。主要特征包括： 

   1. 可共享（什么组件可以访问这个存储） 

   1. 增长率 

   1. 吞吐量 

   1. 延迟 

   1. I/O 大小 

   1. 持久性 

   1. 访问模式（读写、频率、峰值或一致） 

1. 确定支持您的存储特征的存储解决方案的类型。

   1. [Amazon S3](https://aws.amazon.com/s3/) 是一项对象存储服务，具有无限的可扩展性、高可用性和多种可访问性选项。在 Amazon S3 内外传输和访问对象可以使用诸如 [Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration/) 或 [Access Points](https://aws.amazon.com/s3/features/access-points/) 之类的服务，来支持您的位置、安全需求和访问模式。使用 [Amazon S3 的性能准则](https://docs.aws.amazon.com/AmazonS3/latest/userguide/optimizing-performance-guidelines.html) 来帮助您优化 Amazon S3 配置，以满足工作负载性能需求。

   1. [Amazon Glacier](https://aws.amazon.com/s3/storage-classes/glacier/) 是 Amazon S3 的一个存储类，用于数据存档。有三种存档解决方案可供您选择，访问时间从几毫秒到 5-12 小时不等，具有不同的成本和安全选项。Amazon Glacier 通过实施支持业务需求和数据特征的数据生命周期，可以帮助您满足性能需求。 

   1. [Amazon Elastic Block Store（Amazon EBS）](https://aws.amazon.com/ebs/) 是一项专用于 Amazon Elastic Compute Cloud（Amazon EC2）的高性能数据块存储服务。您可以选择 [基于 SSD 或 HDD](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html) 的解决方案，这些解决方案具有不同的特征，并对 [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/provisioned-iops.html) 或 [吞吐量](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hdd-vols.html)划分了优先级。EBS 卷非常适合高性能工作负载，是文件系统、数据库或只能访问附加阶段系统的应用程序的主存储。

   1. [Amazon EC2 实例存储](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) 与 Amazon EBS 类似，因为它附加到 Amazon EC2 实例，但是，该实例存储只是临时存储，最好是作为缓冲区、缓存或其他临时内容使用。如果实例关闭，则无法分离实例存储，并且所有数据都会丢失。实例存储可用于高 I/O 性能和低延迟使用场景，在这些使用场景中，数据不需要持续存在。 

   1. [Amazon Elastic File System（Amazon EFS）](https://aws.amazon.com/efs/) 是可由多种类型的计算解决方案访问的可挂载文件系统。Amazon EFS 会自动增大和缩小存储，并进行性能优化以提供一致的低延迟。EFS 有 [两种性能配置模式](https://docs.aws.amazon.com/efs/latest/ug/performance.html)：通用和最大 I/O。通用模式具有亚毫秒级读取延迟和几毫秒的写入延迟。最大 I/O 模式可以支持成千上万个需要共享文件系统的计算实例。Amazon EFS 支持 [两种吞吐量模式](https://docs.aws.amazon.com/efs/latest/ug/managing-throughput.html)：突增和预置。经历峰值访问模式的工作负载将受益于突增吞吐量模式，而一个持续较高的工作负载会在预置吞吐量模式下表现得很好。

   1. [Amazon FSx](https://aws.amazon.com/fsx/) 基于全新 AWS 计算解决方案而构建，支持四种常用文件系统：NetApp ONTAP、OpenZFS、Windows 文件服务器和 Lustre。Amazon FSx [延迟、吞吐量和 IOPS](https://aws.amazon.com/fsx/when-to-choose-fsx/) 因文件系统而不同，因此，在为您的工作负载需求选择合适的文件系统时应考虑这些因素。

   1. [AWS Snow Family](https://aws.amazon.com/snow/) 是存储和计算设备，支持在线和离线数据迁移到云端，以及本地数据存储和计算。AWS Snow 设备支持收集大量本地数据，对数据进行处理，并将数据迁移到云端。在文件数量、文件大小和压缩方面，有几种 [记录在案的性能最佳实践](https://docs.aws.amazon.com/snowball/latest/developer-guide/performance.html) 。

   1. [AWS Storage Gateway](https://aws.amazon.com/storagegateway/) 为本地应用程序提供对基于云的存储的访问。AWS Storage Gateway 支持多种云存储服务，包括 Amazon S3、Amazon Glacier、Amazon FSx 和 Amazon EBS。它支持多种协议，如 iSCSI、SMB 和 NFS。它通过在本地缓存频繁访问的数据来提供低延迟性能，并且只向 AWS 发送更改的数据和压缩数据。

1. 在试用新的存储解决方案并确定最佳配置后，规划迁移并验证性能指标。这是一个持续的过程，当主要特征更改或者可用服务或选项更改时，应重新对该过程进行评估。

 **实施计划的工作量级别： **如果工作负载从一种存储解决方案转移到另一种存储解决方案，则重构应用程序可能需要 *适中* 工作量。   

## 资源
<a name="resources"></a>

 **相关文档：** 
+  [Amazon EBS 卷类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) 
+  [Amazon EC2 存储](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Storage.html) 
+  [Amazon EFS：Amazon EFS 性能](https://docs.aws.amazon.com/efs/latest/ug/performance.html) 
+  [Amazon FSx for Lustre 性能](https://docs.aws.amazon.com/fsx/latest/LustreGuide/performance.html) 
+  [Amazon FSx for Windows File Server 性能](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/performance.html) 
+ [Amazon FSx for NetApp ONTAP 性能](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/performance.html)
+ [Amazon FSx for OpenZFS 性能](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html)
+  [Amazon Glacier：Amazon Glacier 文档](https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html) 
+  [Amazon S3：请求速率和性能注意事项](https://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html) 
+  [使用 AWS 进行云存储](https://aws.amazon.com/products/storage/) 
+ [AWS Snow Family](https://aws.amazon.com/snow/#Feature_comparison)
+  [EBS I/O 特征](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-io-characteristics.html) 

 **相关视频：** 
+  [深入讨论 Amazon EBS（STG303-R1）](https://www.youtube.com/watch?v=wsMWANWNoqQ) 
+  [利用 Amazon S3 优化存储性能（STG343）Amazon S3](https://www.youtube.com/watch?v=54AhwfME6wI) 

 **相关示例：** 
+  [Amazon EFS CSI 驱动程序](https://github.com/kubernetes-sigs/aws-efs-csi-driver) 
+  [Amazon EBS CSI 驱动程序](https://github.com/kubernetes-sigs/aws-ebs-csi-driver) 
+  [Amazon EFS 实用程序](https://github.com/aws/efs-utils) 
+  [Amazon EBS 自动扩展](https://github.com/awslabs/amazon-ebs-autoscale) 
+  [Amazon S3 示例](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-examples.html) 
+ [Amazon FSx for Lustre Container Storage Interface（CSI）驱动程序](https://github.com/kubernetes-sigs/aws-fsx-csi-driver)