首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用 IBM Spectrum Protect for Linux on Power 备份和还原 MongoDB 数据的方法-1

使用 IBM Spectrum Protect for Linux on Power 备份和还原 MongoDB 数据的方法-1

本文将重点介绍如何备份非常大的 MongoDB 实例。我们可以使用 IBM®Spectrum Protect™                完成此任务,该产品以前称为 IBM Tivoli® Storage Manager (TSM),可在所有 MongoDB                服务器上作为备份和管理代理运行。本文将展示如何将 MongoDB 与 IBM Spectrum Protect                等传统或现有备份工具相集成,甚至在生产级规模上进行集成。
此任务可使用为 IBM Power Systems™构建的 MongoDB 版本(例如 MongoDB Enterprise v3.4                for ppc64le)完成。MongoDB 中直接嵌入了许多工具和特性,它们有助于完成集成过程并为 MongoDB                的备份能力提供补充,以下各节将介绍这些工具和特性。
IBM Spectrum Protect 背景知识 IBM Spectrum Protect                为多供应商计算机环境提供存储管理解决方案。它为文件服务器、工作站、虚拟机和应用程序提供了自动化的、集中调度的、通过策略管理的备份、存档和空间管理功能。此外,IBM                Spectrum Protect 支持所有规模的系统[包括虚拟机、文件服务器、电子邮件、数据库、企业资源规划 (ERP)                系统、大型机和台式机]。IBM Spectrum Protect 在一个随数据增长而扩展的环境中完成所有这些工作。
本文将介绍 IBM Spectrum Protect 的备份和恢复功能,描述如何使用它来保护 MongoDB 数据。此外,选择 IBM                Spectrum Protect                还有一些特定的原因。首先,作为大型企业系统的可靠备份管理器,它取得了值得信赖的优秀成绩。许多大型客户多年来一直非常信任它,而且可能已将它集成到自己的企业系统中。即使尚未使用                IBM Spectrum Protect 的客户,也无需制定需要使用特定于每个计划的单独备份软件的单独备份计划。
使用 IBM Spectrum Protect 作为备份解决方案还有其他重要原因。IBM Spectrum Protect                有一个管理备份数据的稳固平台。一些应用程序将数据堆积在其他某个服务器的硬盘上,而且需要手动还原这些数据。或者,必须手动管理数据存储位置和不断对它执行的操作。可为                IBM Spectrum Protect 配置一些自动程序,比如将数据写入磁盘和磁带,而且 IBM Spectrum Protect                拥有大量存档特性。还原数据时,IBM Spectrum Protect                代理可以轻松地找到特定系统的最新备份,并执行将数据放回所属位置的过程。
MongoDB                背景知识MongoDB 是一个开源数据库,被视为最流行且增长最快的 NoSQL 数据库,这主要由于它能很好地处理传统 SQL                数据库无法处理的问题。它非常善于处理大型非结构化数据集,而且读取存储数据的速度非常快。再结合用 JavaScript 编写的强大查询,这些使得                MongoDB 成为了适合现代应用程序(比如需要频繁读取和使用数据的移动和分析应用程序)的强大工具。虽然 MongoDB                不会取代所有存储结构化数据的 SQL 应用程序,但它为大量非结构化数据和移动流量提供了一个现代解决方案。
此外,MongoDB 的设计目标是高度可扩展且高度可用。这些特性已内置于 MongoDB 环境的设计和结构中。生产环境中的 MongoDB                是一个运行不同任务的流程集群,这些任务通常在不同系统上运行。它包含 3 种不同类型的服务器:
  • 配置服务器 -这些服务器存储有关数据位置的元数据。在生产环境中,正好需要 3                    个配置服务器。这些服务器是元数据服务器,用于保存集群化数据库的所有重要信息。它们保存关于数据存储位置和存储量的所有信息。
  • 查询路由器 - 这些特殊的 MongoDB 实例是外部应用程序与 MongoDB                    中存储的数据之间的接口或网关。请求传入这些服务器中,所请求的数据通过查询路由器返回到应用程序。任何数据都不会永久存储在这些服务器中,这在连接外部世界时提供了一个额外的安全层。这些                    MongoDB                    实例通过查询配置服务器来查找数据应该存储的位置。然后,它们智能地抓取数据并将其返回给应用程序。它们还充当着执行集群级管理的管理接口。所有配置都存储在配置服务器上,查询路由器是管理控制台,您可以通过它们访问所有设置和首选项。可以有任意多个                    MongoDB 服务器,但要让数据库正常运行,至少需要一个功能服务器。
  • 分片 -这是数据在系统中的存储位置。分片的目的是水平扩展 NoSQL                    数据库。数据分解为片段(即分片)并存储在一组服务器中,以保持数据一致且可用,同时避免瓶颈。由于更多分片会增加复杂性和成本,所以应根据需要使用分片,而不要过量使用。IBM                    Power®服务器的优势在于,它们能扩展计算、内存和 I/O,从而减少对分片的需求,使每个分片能处理的工作负载比 x86                    服务器多。这些服务器也会自动进行负载平衡,以防止某个服务器被不均衡地填满或变大。使用这些服务器的目的是尽可能合理地分解数据集并将它分散在不同系统上。可以添加更多分片,而且数据库会平等地重新分布数据,使                    MongoDB 能处理更多流量。当然,每个分片不是一个单独的服务器。每个分片是一系列重复服务器,称为一个副本集。副本集                            - 这是大型数据库(尤其是 NoSQL                        种类的数据库)可能面临的数据冗余和可用性问题的解决方案。此系统的目标是以同步方式备份所有数据,能够在无需停机的情况下自动处理整个服务器完全失效的状况。各个副本集之间有一种选举机制,以挑选一个服务器作为主服务器。这个主服务器是负责与副本集的写入操作通信的服务器。所有写入操作都由主服务器首先处理,该服务器将它们写入一个操作日志中,再将操作日志分发给副本集的辅助成员。然后,辅助成员回放该日志,并对自己的数据应用所有操作。副本集的一个非常有趣的特性是,在主服务器处理所有写入操作的时候,可同时从所有副本服务器读取数据。这意味着,整个副本集可对同一数据片段同时执行读取操作。这样做可以获得更好的可用性。在故障转移方面,副本集旨在自动检测副本集中任何服务器(包括主服务器)故障并执行故障转移。主服务器发生故障时,这些服务器将自动选举一个新的主服务器并继续操作。                    
图 1. MongoDB 结构图
如图 1 所示,在生产环境中,数据库的每个分片也是一个副本集。所以,始终存在内置的数据冗余性。MongoDB 集群中任何地方的数据都不只存在一次。
事实是,MongoDB                的构建目的是获得持久且可靠的数据,这也是它拥有原生的分片和副本集的原因。分片主要专注于数据的可扩展性,在数据超出一个分片的能力范围后,将数据库拆分到多个服务器中。正如上面提到的,与                x86 服务器相比,Power                服务器支持更大的分片。副本集中包含多组相同的分片,这些分片位于不同服务器上,用于实现冗余和提高速度。
还有一个称为日志记录的特性,在将数据写入磁盘之前,数据库会将待处理的写入操作存储在一个日志文件中。这些文件的大小可增长到 1                GB,仅在日志中的所有操作都已完成或正常关闭服务器时才会删除。在异常关闭时,只要服务器恢复运行,就会读取并回放日志文件,以确保所有操作都已落实,还会落实尚未落实的操作。同样,此过程可在服务器上的                MongoDB 实例恢复在线后自动完成。如果发生写入错误,MongoDB 将重新启动来修复问题。MongoDB                会重新启动,读取日志,删除旧日志文件,然后创建新的日志文件。
在日志、分片和副本集中,有大量针对细微问题(比如主要分片失去连接和离线)的自动故障转移功能。系统可以继续顺利运行,故障分片会在重新启动后自动恢复运行。但是,在存储需要保留的重要数据的更大文件系统上,备份至关重要。在本文中,我们使用                IBM Spectrum Protect 作为解决方案,不仅支持对 MongoDB                执行有计划的完全备份操作,还支持对整个企业生态系统执行该操作。
在企业系统中,需要拥有所有数据的完整备份,以实现记录维护、审计和灾难恢复等操作。MongoDB 通过其 Ops Manager                进程提供备份,该进程通常由数据库管理员管理。Ops Manager 的使用不在本文的讨论范围。通过使用 IBM Spectrum                Protect,可以将 MongoDB 与已有适当备份策略的现有企业基础架构合并。
在我们的备份过程中,IBM Spectrum Protect 使用一个称为Logical Volume Manager (LVM)                    快照的内置 Red Hat 操作系统特性(其他大多数主要 Linux®                发行版也提供了该特性),在一个复制的服务器上对我们的 MongoDB                文件执行文件系统复制。此过程包含一系列步骤,以下各节将全面介绍它们。此刻应该指出的是,所有日志和数据库文件都需要位于同一个逻辑卷中,以避免存储不必要数据的快照。最后,IBM                Spectrum Protect 会依据自己的存储过程对快照进行压缩和存储。
MongoDB                备份流程依靠一个专门的副本集成员来处理严格用于备份的每个分片。为了可用于生产环境,一个服务器应有多个副本。为了实现备份,我们想要一个预定义为备份实例的副本。这意味着它不能是主服务器,MongoDB                提供了实现此目标的配置选项。在备份期间,仍继续将其作为正常运行的副本集成员进行操作。但是,我们知道备份过程将占用备份服务器上的一些资源,而且我们不想减慢集群运行速度。在设计生产环境和备份计划时应考虑到这一点。
这个备份过程显示了 MongoDB 集群的一些最低要求。这与 MongoDB 文档中描述的生产环境最低要求一致。
优势作为一个备份和还原工具,IBM Spectrum Protect 提供了以下优势来增强 MongoDB 的功能:
  • 适用于所有应用程序的单一备份管理器
  • 稳固且可配置的存储介质和过程
  • 能使用 IBM System Storage®SAN Volume Controller (SVC)                    执行快速逻辑备份和管理数据移动
  • 备份编目
  • 仅备份更改的数据
  • 内置调度功能
  • 单一控制点
  • 存储日志、配置、统计数据、元数据的数据库
以下各节将介绍如何利用其中一些特性将 MongoDB 打造为更健壮的数据库。
返回列表