云存储对于一系列的存储需求是一种有效的选择。理解各种云存储系统的关键特性有助于识别合适的用例,并避免潜在且昂贵的错误。我们使用术语“云存储”,仿佛存在一个单一的数据存储服务。实际上有多种类型的云存储系统。通过确定合适用例的特性有助于将这些系统分类。
为了便于回顾,我们将存储系统根据四种通用的技术特性分类:可靠性、可访问性、文件vs.对象存储以及大小限制。
虽然这些都是主要的特性,但是在选择云存储系统时,这些并不是你可能必须考虑从的唯一因素。也有聚焦业务的特性,比如成本和延迟,这些都应该考虑在内。加密技术的有效性以及访问控制为例,可能是选择标准的关键考量。这些安全特性可以在存储系统中找到不同的类型,而且独立于我们分类存储系统的方式。
可靠性是跨越一段持续期的考量存储系统的可访问性和功能的方式。一个具备99.99%可靠性的存储系统预计每月大概4.5分钟宕机时间。一个具备99.999%可靠性的存储系统预计每月宕机时间少于30秒。一个相关的度量——耐久性——是度量数据可能丢失的程度的。使用多种数据备份来承诺99.999999999%的耐久性,这意味着你每年存储的对象丢失的概率为0.000000001%。
需要注意的是这些评估基于低估潜在的系统性失灵的假设。比如,如果存储在三个不同的数据中心的数据都有备份,如果失败随机发生,所有这个三个同时失败的概率相当小。然而,如果制造或者设计缺陷存在于磁盘驱动器中,而且所有的三个比分都存储在相同类型的驱动上,那么这三个同时丢失的概率要高很多。
可访问性确定了存储设备被如何使用。对象数据存储允许你将数据作为Web可访问对象存储。程序或者交互用户可以使用REST界面检索对象。文件在对象存储库中存储,但是这些系统并不具备文件系统的全方位的特性和选择。如果多种服务器可能需要同时访问数据,这种类型的存储尤其有用。
对象存储系统通常维护多种数据备份,从而改善可访问性和耐久性。改变对象要保持所有的备份都一直,尽管也可能两个用户会看到不同的结果,如果他们使用不同的对象备份服务查询。
块存储服务,比起对象存储更像直接或者网络连接存储系统。块设备更适合需要低层级磁盘访问的应用,比如原始格式化驱动、标准文件系统或者一致的I/O性能。正如物理存储设备一样,块存储设备有时候附属于一个服务器。这种情况下和数据库以及其他旨在共Linux或者Windows文件系统的应用能更好的工作。此外,EBS容量可以被复制,而且副本看以附属于其他的服务器,允许更高层级的读性能。读副本并不适用于哪些需要在延伸实践内容进行高容量读操作的应用。
最后,大小限制。存储限制是考虑块存储设备的另一个因素,提供了实质上不受限的存储,归档存储——可选云存储的第三种类型——提供了低成本存储,但是有极高的延迟,适用于数据必须保留的情况,即便是不怎么使用了。