数据保护:工作负载的可恢复性
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.3 系统故障

无论你用的是仅依赖某一个存储阵列的单一服务器(由不同位置的多个数据中心所构成的大型服务器集群),还是由云端所提供的服务,都无法保证其完美无缺。程序员总是会犯错误,因此总是会有不好的事情发生。这正是我们必须把重要数据备份下来的原因。

这是一本讲数据保护的书,但本书第1章的初稿却恰好由于用户的操作失误与程序的逻辑错误相遇而彻底丢失,也就是说,它完全没有得到保护,这简直是一个绝妙的讽刺。笔者在本书的其他地方提到过,这本书是我于疫情期间,在跑步机上用Dragon听写软件说出来的。Dragon的默认设置,是在保存文档时把你说的这些话所对应的音频数据也保存起来,因此与那种仅保存文档而不保留音频的软件相比,要花很长时间。由于笔者不会用到这些音频数据,因此某天早晨,我决定修改设置,让Dragon在存储音频数据之前先询问用户。

在跑步机上说了大约两个小时之后,我才突然意识到自己竟然没有存档。于是我就说:“Click File...Save”(单击“文件”菜单下的“保存”菜单项)。我想要以此来触发保存流程。软件弹出了一个对话框,问我要不要保存文档,但当时不知怎么回事,我以为它问的是要不要保存音频,于是我说“No”(不),接下来,软件居然在没有保存文档的前提下,就把文档给关了。两个小时的话白说了。

在这个过程中,用户的操作固然有失误(我本来应该仔细看一下这个对话框问的到底是什么,然后再回答),然而软件编写得也有问题,用户没有让它把文档关闭,但它却把文档给关了。实际上,用户只是触发了Dragon的保存流程,并在Dragon提示用户是否执行保存操作时,告诉它不要保存,用户并没有命令Dragon把文档关掉。这个故事是想说,软件与硬件未必总是按照预想的方式运作,因此我们必须做备份。当然,这个例子举得不好,因为在本例中,文档其实保存在计算机的RAM(内存)里面,因此就算启用了备份机制,哪怕是采用了带有持续数据保护(Continuous Data Protection, CDP;又称实时数据保护)功能的备份产品,也没什么用。

本书所给的大多数建议,都应该适用于采用计算机来存储其运营数据的各种商业实体、政府实体或非营利实体。因此,笔者尽可能采用组织(organization)这个词来指代这些需要保护其数据的实体。这个组织可以指某个政府机构、某个NGO(Non-Governmental Organization,非政府组织)、某个营利的非上市公司或上市公司,以及非营利的公司等。

目前的系统与数据库已经能够应对许多数据问题,因此由物理故障及系统故障所造成的数据损失,应该不会很常见。然而,接下来我们要讲一种很难由组织本身来应付的数据威胁,也就是自然灾害。你最好对这样的威胁有所准备。