新闻中心

EEPW首页>嵌入式系统>设计应用> Linux 网络文件系统的数据备份及恢复机制实现

Linux 网络文件系统的数据备份及恢复机制实现

作者: 时间:2016-09-12 来源:网络 收藏

基于分布版本的快速恢复:当停顿时间太长而不存在一个相同的版本,或文件服务器数据出现损坏(如磁盘故障造成数据损毁)时,需要采用此种方法。具体办法如下:直接把正常服务器上的最新版本传送到退出服务器,然后按照上述的第 2 种情况进行同步数据文件的同步。

正如上面所述,全部服务器均出现问题的概率是很小的,但是,不能简单的排除这种情况的出现,特别是本方案采用数据同步机制,即多个站点的数据是保持快速同步的,这虽然能保证动态迁移的顺利完成,但是也带来较大的风险,就是会出现数据”污染”的自动传播,当主文件服务器中的文件数据因为某些原因(主要是对文件的非法访问)造成数据非法修改时,会立即传播到其他备份节点,这样的话,不管服务迁移到哪台机器均会出现错误。

针对这种情况,我们采取了以下措施:当发现非法修改造成数据污染时,系统可以自动命令各站点恢复到指定的版本,如前一版本(可以由管理员配置成前一、二、三个版本);管理员也可以干预这一过程,强制各站点恢复到同一指定的版本,从而保证全局文件系统使用同一正确版本。

NFS 文件细粒度恢复技术

在传统恢复技术中,一方面由于不是实时进行的,当出现事故需要恢复时,最新的备份数据与最新数据之间存在一个时间差,这样就造成了该时间段内数据的丢失(见图 5);同时,传统的是一定时间段后数据的增量备份,是一段时间内所有文

系统简介

系统(NFS)协议是由 Sun MicroSystem 公司在 20 世纪 80 年代为了提供对共享文件的远程访问而设计和实现的,它采用了经典的客户机/服务器模式提供服务。为了达到如同 NFS 协议通过使用 Sun 公司开发的远在本机上使用本地文件系统一样便捷的效果,NFS 通过使用远程过程调用协议(RPC Protocol)来实现运行在一台计算机上的程序来调用在另一台远程机器上运行的子程序。同时,为了解决不同平台上的数据交互问题,它提供了外部数据表示(XDR)来解决这个问题。为了灵活地提供文件共享服务,该协议可以在 TCP 协议或者是 UDP 协议上运行,典型的情况是在 UDP 协议上运行。在此基础上,NFS 在数据的传送过程中需要 RPC 命令得到确认,而且在需要的时候会要重传,这样既可以通过 UDP 协议获得较高的通信效率,也能通过 RPC 来获得较高的通信可靠性。

由于 NFS 基于 C/S 模式提供服务,所以它的核心组件主要包括客户机和服务器两部分。图 1 详细说明了 NFS 的主要组件以及主要的配置文件。在服务器端,portmap、mountd、nfsd 三个监控程序将在后台运行。portmap 监控程序用来注册基于 RPC 的服务。当一个 RPC 的监控程序启动的时候,它告诉 portmap 监控程序它在哪一个端口进行侦听,并且它在进行什么样的 RPC 服务。当一个客户机向服务器提出一个 RPC 请求,那么它就会和 portmap 监控程序取得联系以确定 RPC 消息应该发往的端口号。而 Mountd 监控程序的功能是来读取服务器端的/etc/exportfs 文件并且创建一个将服务器的本地文件系统导出的主机和网络列表,因而客户机的挂接(mount)请求都被定位到 mountd 监控程序(daemon)。当验证了服务器确实具有挂接所请求的文件系统的权限以后,mountd 为请求的挂接点返回一个文件句柄。而 nfsd 监控程序则被服务器用来处理客户机端发送过来的请求。由于服务器需要同时处理多个客户机的请求,所以在缺省情况下,操作系统将会自动启动八个 nfsd 线程。当然,如果 NFS 服务器特别忙的时候,系统有可能根据实际情况启动更多的线程。

图 1系统简图

图 1 网络文件系统简图

NFS 的客户机与服务器之间通过 RPC 进行通信,通信过程如下所示:

用户将 NFS 服务器的共享目录挂载到本地文件系统中。

客户访问 NFS 目录中的文件时,NFS 客户端向 NFS 服务器端发送 RPC 请求。

NFS 服务端接收客户端发来的 RPC 请求,并将这个请求传递给本地文件访问程序,然后访问服务器主机上的一个本地的磁盘文件。NFS 服务器可以同时接收多个 NFS 客户端的请求,并对其进行并发控制。

NFS 客户端向服务器主机发出一个 RPC 调用,然后等待服务器的应答。NFS 客户端收到服务器的应答后,把结果信息展现给用户或应用程序。

NFS 下的、恢复的主要功能

对数据进行备份与恢复是保证数据安全和业务连续性的非常成熟的做法。在下的本地文件系统(例如 Ext2、Ext3 等)中,数据备份和恢复一般采用常规的办法来进行操作,例如使用 Tar、Archive 等。而对于 NFS 来说,其数据备份需要采用量身定制的方法来进行。

为了保证数据在灾难环境中的可用性和业务连续性,针对它的数据备份、恢复方案应具备如下重要功能:

通过对系统重要数据的快速备份,切实保证系统数据的安全;

可以根据指令完成备份系统的实时切入,保证服务不被中断,保持系统持续运行的能力;

通过实时记录所有文件的操作日志,系统管理员能够在发生灾难的情况下对日志进行分析和取证,从而发现入侵者的蛛丝马迹。

NFS 多版本备份技术

为了保证服务器出现故障后能迅速恢复,要求系统数据能快速恢复到一个最近的正确状态,所有这些都需要多版本技术的支持,通过同步记录文件的在某些时刻的状态,在整个系统范围内建立起类似于数据库系统的”检查点”,以保证上述目标的实现。

对于多版本系统而言,需要较好地解决两个方面的问题:性能和空间利用率。对于前者,最主要的是保证在生成版本的时候能够快速完成,同时恢复时也具有较好的性能。此外,系统引入多版本造成的整体开销也应该比较理想。对于第二点,主要考虑是节约磁盘空间,虽然随着硬件技术的不断发展,磁盘空间越来越大,性价比也越来越高,但是当版本较多而且文件数量较多、较大时,引入多版本增加的开销也可能相当可观,同时,较大的空间也意味着版本生成时可能需要更多的写操作,这样也必将影响总体性能。



评论


相关推荐

技术专区

关闭