Amazon Neptune 存储、可靠性和可用性 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Neptune 存储、可靠性和可用性

Amazon Neptune 使用分布式和共享存储架构,该体系结构可随您的数据库存储需求的增长而自动

Neptune 数据存储在集群卷中,该集群卷是使用非易失性内存 Express (NVMe) SSD 驱动器的单个虚拟卷。集群卷中包含一组称为分段的逻辑块。这些区段中的每个区段都分配了 10 GB 的存储空间。每个区段中的数据都被复制到六个副本中,然后将这些副本分配到Amazon数据库集群所在的区域。

创建 Neptune 数据库集群后,它将被分配 10 GB 的单个区段。随着数据量的增加并超过当前分配的存储空间,Neptune 会通过添加新数据段自动扩展群集卷。在所有受支持的区域,Neptune 集群卷可增大到最大 128 tebibytes (TiB) 的最大大小,这些地区仅限 64 TiB。对于早于发动机版本发布: 1.0.2.2 (2020-03-09)但是,所有地区的群集卷的大小都限于 64 TiB。

数据库集群卷包含所有用户数据、索引和字典(在Neptune 图形数据模型部分,以及内部元数据,例如内部事务日志。所有这些图形数据(包括索引和内部日志)都不能超过集群卷的最大大小。

Neptune 存储空间分配

即使 Neptune 集群卷可增大到 64 TiB,您也只需为实际分配的空间付费。分配的总空间由存储空间决定高水位,这是群集卷存在期间随时分配给群集卷的最大金额。

这意味着,即使从群集卷中删除了用户数据,例如通过丢弃查询(如g.V().drop(),分配的总空间保持不变。Neptune 会自动优化未使用的分配空间,以便将 future 重复使用。

除了用户数据外,另外两种类型的内容消耗了内部存储空间,即字典数据和内部事务日志。尽管字典数据与图形数据一起存储,但即使它支持的图形数据已被删除,也就是说,如果重新引入数据,条目可以被重新使用。内部日志数据存储在单独的内部存储空间中,该存储空间具有自己的高水位线。当内部日志过期时,它占用的存储空间可以重新用于其他日志,但不能用于图表数据。已分配给日志的内部空间量包括在VolumeBytesUsed CloudWatch 指标.

Check存储最佳实践了解如何将分配的存储保持在最低限度并重复使用空间。

Neptune 存储计费

存储成本根据存储量计费高水位,如上所述。尽管您的数据被复制成六个副本,但只需为数据的一个副本付费。

您可以通过监控数据库集群的当前存储高水位标记来确定VolumeBytesUsed CloudWatch 指标(请参阅使用 Amazon CloudWatch 监控 Neptune)。

可能影响 Neptune 存储成本的其他因素包括数据库快照和备份,这些快照和备份单独作为备份存储计费,并根据 Neptune 存储成本计算(请参阅CloudWatch对于管理 Neptune 备份存储有用的指标.

如果你创建克隆但是,克隆指向数据库集群本身使用的同一群集卷,因此原始数据不需要额外的存储费用。对克隆进行的后续更改使用写入时复制协议而且确实会产生额外的存储成本。

有关 Neptune 定价的更多信息,请参阅Amazon Neptune 定价.

Neptune 存储最佳实践

由于某些类型的数据消耗了 Neptune 中的永久存储,因此请使用以下最佳做法来避免存储增长的大幅峰值:

  • 在设计图表数据模型时,尽可能避免使用属性键和临时性质上的面向用户的值。

  • 如果您计划更改数据模型,请不要使用新模型将数据加载到现有数据库集群中的数据,直到您使用快速重置 API. 最好的办法是通常将使用新模型的数据加载到新的数据库集群中。

  • 对大量数据进行操作的事务会产生相应的大量内部日志,这可以永久增加内部日志空间的高水位线。例如,删除数据库集群中所有数据的单个事务可能会生成一个庞大的内部日志,这将需要分配大量的内部存储空间,从而永久减少可用于图表数据的空间。

    为避免这种情况,请将大型事务拆分为较小的事务并留出时间之间的时间,以便关联的内部日志有机会过期并释放其内部存储以供后续日志重复使用。

  • 为了监控你的 Neptune 集群卷的增长,你可以设置 CloudWatch 上的警报VolumeBytesUsed CloudWatch 指标。如果您的数据达到集群卷的最大大小,则这特别有用。有关更多信息,请参阅 。使用 Amazon CloudWatch 警报.

当您有大量未使用的分配空间时,缩小数据库集群使用的存储空间的唯一方法是导出图表中的所有数据,然后将其重新加载到新的数据库集群中。请参阅Neptune 的数据导出服务和实用程序以便从数据库集群中导出数据的简单方法,以及海王星的批量装载机以便简单地将数据导入 Neptune。

注意

创建和恢复快照不会减少为数据库集群分配的存储量,因为快照会保留群集底层存储的原始映像。如果未使用分配的大量存储空间,则缩减分配存储空间的唯一方法是导出图表数据并将其重新加载到新的数据库集群中。

Neptune 存储可靠性和高可用性

Amazon Neptune 的设计具有可靠、持久和容错的特点。

Neptune 数据的六个副本在三个可用区 (AZ) 中维护,这确保了数据的存储具有高度持久性,而且数据丢失的可能性非常低。无论数据库实例中是否有数据库实例,均会跨可用区自动复制数据,并且复制的数量与集群中的数据库实例数量无关。

这意味着您可以快速添加只读副本,因为 Neptune 不会创建图形数据的新副本。相反,只读副本连接到已包含您的数据的集群卷。同样,删除只读副本不会删除任何基础数据。

只有在删除集群卷的所有数据库实例后,才能删除群集卷及其数据。

Neptune 还会自动检测集群卷包含的区段中的故障。当区段中的数据副本损坏时,Neptune 立即修复该区段,使用同一区段中的其他数据副本来确保修复的数据是最新的。因此,Neptune 避免数据丢失,并减少了对演出的需求。 point-in-time 恢复以从磁盘故障中恢复。