阿里云设计:数据持久化12个9
随着信息通信技术的发展,数据持续增加,对存储的要求越来越高,可能是结构化的文档,也可能是非结构化的图片和视频。因此,海量数据的存储和访问是云服务领域研究的热点。传统的方式是人们使用更大容量的硬盘来存储大量数据,这样不仅会产生额外的硬件资源成本,而且会限制数据访问的移动性。然而,随着云存储技术的发展,用户可以将自己的数据上传到云上,并将数据的管理交付给云服务提供商,这样,用户无需携带庞大的存储设备就可以随时随地访问自己的数据。虽然云存储技术使用户更方便地管理数据,但是数据的持久性一直是用户关注的焦点,这也是云服务提供商评估服务水平的一个重要依据。
在云存储应用中,由于经济成本与系统性能的要求,分布式存储技术广泛采用多数据副本的策略。
这种冗余存储模式可以确保,只有部署在磁盘上数据的所有副本都损坏时,才会发生数据丢失。
SLA:服务等级协议(简称:SLA,全称:service level agreement)。
是在一定开销下为保障服务的性能和可用性,服务提供商与用户间定义的一种双方认可的协定。
大多数人对于数据持久性的概念是模糊的,通常包含了持久性(durability)和可用性(availability)两重含义。
可用性,即系统服务不中断运行时间占实际运行时间的比例。所以,可用性其实是一个百分比,如99.9%。
我们通常会听说一个词:高可用,其实指的就是高可用性。高可用指的就是系统服务不中断运行时间占实际运行时间的占比更大。
AWS S3给出的那个承诺,持久性99.999999999%的含义,就是每年100000000000个对象中,可能会有1个对象丢失
1年 = 365天 = 8760小时
99.9 = 8760 * 0.1% = 8760 * 0.001 = 8.76小时
99.99 = 8760 * 0.0001 = 0.876小时 = 0.876 * 60 = 52.6分钟
99.999 = 8760 * 0.00001 = 0.0876小时 = 0.0876 * 60 = 5.26分钟
实际上,我们把数据的可访问性称为可用性。数据暂时不可访问并且在一段时间后可以找到时,这种状态称为不可用,但数据仍然是持久的。只有数据完全丢失,永远也找不到,才会涉及数据的持久性。可见,持久性比可用性更基础,前者是后者的必要非充分条件,从数值描述上,持久性[公式]可用性。云存储服务中广泛的应用多副本的分布式存储技术,以提高数据的持久性,如果一个副本损坏,数据可以从其他的副本中恢复。这种冗余存储模式可以确保只有在部署在磁盘上数据的所有副本都损坏时才会发生数据丢失的情况。
要做到更多的9,就要不断的监控自己的服务,服务挂掉能及时恢复服务。就像开车出远门,首先得检查轮胎,同时还得准备一个备胎一样的道理。