高可用性是当今存储专业人士们最常使用的一大术语。但是,仅仅只是简单的将资金和最新的技术投入到贵公司数据中心的存储阵列上,并寄希望于能够有效避免发生停机中断显然是行不通的。故而企业数据中心亟待实施一套行之有效的计划。
在本文中,独立顾问Ben Maas将为我们广大读者朋友们概述关于如何有效的保护企业应用程序,避免导致发生数据丢失和停机的最常见原因的五大关键步骤,这五大步骤分别是:
- 了解您企业软件的功能;
- 了解您企业所有应用程序的运行时间要求;
- 适当地调整您企业数据中心的环境;
- 适当地调整贵公司数据存储库的规模大小和设置
- 实施更完善的实践方案
实践步骤一 了解您企业的数据保护软件
当前,许多企业其实是在不了解其全部功能或限制条件的情况下使用了某些数据保护软件。例如,备份软件可以使用几种不同的方法来创建安全的恢复集。其可以在文件、应用程序、存储卷、虚拟管理程序或操作系统级别进行复制。或者其也可以支持多种方法的组合以提供多种恢复选项。虚拟机(VM)的备份软件就是一个很好的例子。大多数企业使用快照技术来执行该任务,尽管每家企业可能采用的是不同的技术来完成这个任务。有些企业采用无代理的方法,称为VMware的本机虚拟机快照技术。其他某些企业采用的是部署在每台虚拟机上的软件代理。
如果您企业的备份软件依赖于代理执行虚拟机备份,则其将更直接地与虚拟机文件系统配合使用。在这种情况下,备份软件可能使用微软的卷影复制服务(Volume Shadow Copy Service,VSS)将数据合并到磁盘,然后再进行虚拟机的快照。
而如果您企业的备份软件采用的是无代理的方式进行快照,其可能仍然部分的依赖代理进行备份。一款备份软件在执行备份以调用微软VSS创建快照时,会暂时将一段软件放入虚拟机中。为此,其将使用VMware API启动快照,然后将该软件代码放置在虚拟机上以创建快照。一旦完成快照,其将删除安装的代码片段。
即使这种混合的虚拟机备份方法也可能是不够的。在某些情况下,备份软件可能需要与特定的应用程序(如微软Exchange或SQL Server)集成,以将数据同步到磁盘。这将创建一个在恢复后可用的应用程序一致性备份。
同样,许多备份软件产品也使用重复数据删除技术来最大限度地降低存储需求。一些备份软件产品能够针对客户端和其他服务器上的数据执行重复数据删除。一些则仅仅只是当数据到达存储设备时才执行重复数据删除。一些甚至提供了在这三个位置中的任何一个执行重复数据删除的选择,或者根本不删除重复数据。
您企业的软件所支持的选项将影响到您执行此操作所需的带宽量,以及在客户端、媒介服务器或磁盘目标上所需要的处理能力量,以对该数据进行重复数据删除。
了解备份软件的这些功能和局限性是非常重要的,因为它们会影响备份和恢复所花费的时间,并最终影响备份的可靠性。
1. 超越备份和恢复
关键任务应用程序应始终保持在线或尽可能保持始终在线状态。这种服务级别需要比备份软件所能够提供的更高级的工具。对停机中断容忍度为零的企业应考虑针对关键系统采用高可用性(HA)解决方案。HA通过将系统实时复制到远程站点来确保始终在线的服务。如果生产环境发生中断,HA可让您企业立即将故障转移到次要位置,并继续在那里保持运行,直到您在当地的问题被解决。HA的恢复以分钟或秒计量,故而使得数据丢失可以最小化到接近于零。
实践步骤二 了解应用程序的正常运行时间要求
在了解了贵公司所采用的备份软件的功能和使用限制条件后,您需要了解每款应用程序的恢复目标。一旦您确定了这些目标,您就需要将它们映射回到软件中可用的功能,甚至是映射回您企业内部的流程中,以确保它们的一致性,并且可以根据业务需求保持这些应用程序的可用性。
例如,MySQL对于其数据的实时快照并没有一种得到正式认可的方法。因此,您无法证明您的备份软件能够随时将数据同步到磁盘,以创建可恢复的快照。
备份MySQL的唯一经过验证的方法是关闭MySQL(这对于需要100%正常运行时间的应用程序来说是没有意义的),或者制作该数据的副本,然后针对副本进行快照。像MySQL这样的例子说明了企业为什么需要了解您的数据在哪里以及它是如何运行的,所以您企业不需要运行恢复来发现您正在丢失数据或者数据已经损坏了。
相反,诸如微软SQL等软件提供的API可以为您企业提供比MySQL更好的数据保护体验。使用VSS卷影副本,企业可以避免这些问题。再次强调,企业需要确保您的备份软件知道如何正确的调用API,以便验证您的数据是否已写入磁盘,从而最大限度地减少并最理想地避免数据丢失或损坏的可能性。
这一步是非常重要的,特别是如果您企业正在处理需要备份软件来加密存储在驱动器或内存中的数据的应用程序。加密会创建一个额外的保护级别,并且您需要确保备份软件在数据进入驱动器之前对其进行加密。许多提供商要求企业客户自行管理并保留自己的加密密钥。IT专业人员们有责任保护这些密钥。如果您企业丢失了加密密钥,则会丢失备份,二如果丢失了备份,则会造成数据丢失。
实践步骤三 适当地调整您企业的数据备份环境
企业需要针对两种类型的备份进行考虑,以便正确的调整贵公司数据备份环境的规模大小。
1. 数据中心备份
数据中心的备份可能是最容易量化和规模化的。企业往往拥有专用的网络来备份这些应用程序服务器,而这种备份流量甚至可能无法通过企业网络。生产应用程序数据可能受基于阵列的快照技术的保护,其中备份软件启动数据快照,这些快照短期存储在阵列上,并由备份软件管理。然后,备份软件可以将该快照备份到磁盘、磁带或甚至云中以进行长期保存。在企业数据中心中使用的更复杂的备份软件往往可以更轻松地对托管在数据中心中的应用程序进行备份。
当企业开始探讨应用程序的备份位置位于数据中心之外(无论其是您企业数据中心建筑的其他位置,园区还是远程位置)时,恰当的调整备份和恢复环境的规模将变得更加困难。
如果通过LAN连接进行本地备份,则需要验证在备份窗口期间是否有足够的计算机资源和网络带宽,以避免中断生产应用程序。由于备份是往往在下班时间运行的,所以这通常并不是一个不能克服的问题。
但是,如果您企业在核心数据中心之外运行24x7运行的应用程序,并且该应用程序没有需求低活跃的时间段,则可能需要升级这些服务器上的计算资源,或者需要为这些应用程序提供额外的网络带宽,以确保其备份和恢复可以在计划的备份窗口内发生。您可能还需要考虑更高级的备份工具,例如高可用性解决方案(HA)。 HA技术使用即时的故障转移功能来确保任务关键型应用程序和数据的正常运行时间要求。
2. 远程备份
如果您企业需要在远程位置通过WAN连接来备份或恢复应用程序的运行,其挑战将变得更加严峻。除了确保拥有可用的计算和网络资源来备份和恢复数据外,还需要验证是否可以及时恢复数据;否则就无法达到您企业的恢复目标。
唯一真正知道其是否可行的方法是在生产环境中进行测试。
当您企业这样做时,请务必考虑在执行备份或恢复时可能在您备份环境中遇到的某些变量。例如,如果要通过VPN渠道运行备份或恢复,则吞吐量将会下降。另外,在通过LAN或WAN链接发送数据之前,是否需要加密数据?如果是这样的话,请验证对数据进行加密的设备是否可以及时执行以满足您的备份或恢复服务级别协议。
还有需要注意的一点是,存储备份数据的磁盘必须足够快才能满足备份和恢复需求。我曾遇到过企业有众多机器同时写入或读取数据的情况,从而导致了处理速度变慢。
考虑您企业可能有24台机器需要在24小时内恢复的情况。您企业可能不会尝试逐一的对它们进行恢复。您将要并行恢复它们。同时还需要确保从中恢复数据的存储设备可以处理满足这些需求所需的I / O量。再次强调,有计算器可以帮助企业执行这些类型的评估,但我发现唯一的方法是肯定的是在您企业的环境中自行测试一下。
实践步骤四 适当地调整数据存储库的大小和设置
我曾遇到过这样的情况:软件提供商对可以存入某存储库的数据量有严格的限制。例如,备份软件提供商可能会强制规定2 TB的限制(或对单个备份存储库有其他限制),这可能会迫使企业客户需要将备份分散到多个存储库。
如果企业同时运行多个恢复流,这将起到作用。在这种情况下,您企业需要确保存储库可以快速读取数据,以满足您的恢复时间目标(RTO)。
有很多供应商能够提供规模化的文档,对于为您企业的环境适当地调整存储库的大小是非常有帮助的。您只需要确保您已经配置了足够的存储库,并同时使其可用。
在备份过程中,对数据进行重复数据删除时,使得这些存储库具备适当的规模大小尤为重要。
另外请注意,供应商使用备份代理来更接近虚拟主机上的存储。在这种情况下,您企业需要确保已经进行了恰当的调整,以确保您企业拥有足够的RAM、CPU和本地存储,进而避免在备份或恢复过程中的某个时刻出现瓶颈。
我也曾经用作数据库服务器的虚拟机,其承载了7到8TB的数据。有时候这些规模的虚拟机会试图从一个存储库中恢复这些数据。在这种情况下,由于吞吐量不足,便成了一个真正的问题。只有在将数据分发到多个存储库之后,才能够及时恢复数据,因为企业用户可以同时在多个驱动器上运行恢复。
实践步骤五 实施更完善的实践方案
实施更完善的实践方案。这意味着您企业应该运行多个测试。您企业绝不会完全意识到一个恢复过程具体会涉及到多少的迁移片断,直到您真正执行了一次恢复过程之后。也许最复杂的是那些涉及从地理上分散的备份中所执行的恢复。在这些情况下,您需要运行恢复测试来确保您所想要的一切都将发生。
大多数情况下,我在测试过程中会遇到一些我从来没有考虑过有发生可能性的问题。有一次,我遇到了一个软件许可的问题。在测试期间恢复应用程序之后,应用程序软件必须核实其许可授权。在远程预警(call-home)过程中,授权软件检测到自从我在测试服务器上运行应用程序以来,托管软件的服务器的IP地址发生了变化。然后其使软件许可无效。虽然这很不方便,但是这成为了一个生产问题,因为它使软件许可证在测试和生产中运行的软件的副本无效。这种疏忽破坏了生产环境。
从测试开始自信地恢复您企业的环境。
这导致了我如何进行灾难恢复测试方面的变化。现在,当我提出测试环境时,我会关闭出站的网络流量。在这段时间里,我会看看有什么流量是出站的,以确保没有软件试图远程报障预警,可能会在测试或生产环境中无意中造成中断。这可能代表了我在一定程度上的偏执,我不一定告诉其他人也要这么极端。然而,一朝被蛇咬十年怕井绳。我个人发现在恢复过程中软件许可是一个问题。
企业需要执行测试的另一个很好的例子是确保数据可以恢复。我曾经供职过的一家公司在其微软SQL服务器上创建了一款“X”驱动器或文件共享。然后每周执行一次将数据备份到该 “X”驱动器上。然而,我对此其实并不知道,而公司的另一位同事是知道这款“X”驱动器的,并清楚其用来干什么的,所以他决定用它来在两台SQL Server数据库服务器之间执行一些复制,其在那时的运行良好。
但过了一段时间后,公司更改了备份程序,并决定其SQL 服务器不再需要这些数据库服务器上的“X”驱动器。 我对系统进行了评估,并将“X”驱动器放在整个环境中。而我们结束时,那位在在两台SQL Server数据库服务器之间执行复制任务的同时开始冲着我们咆哮:“为什么复制被中断了?”
总之,这些情况说明了为什么测试如此重要。除了环境中经常发生的变化之外,总是存在一些细微的差别,例如“X”驱动器无法使用,这使得按照用户的期望执行恢复很难,除非您企业经常执行恢复测试。