Linux 网络文件系统的数据备份及恢复机制实现
器退出时可以分别识别出来。由于退出系统无法继续保持同步,因此其状态会与工作的文件服务器不一致,具体表现在以下几个方面:
当退出时间很短时,数据不一致仅存在于缓冲区中,这时如果退出服务器能立即重新投入使用,则不需要进行额外的数据恢复,数据同步可以通过主服务器同步请求的重试来达到。
当主服务器确认退出服务器退出后,会把未同步的数据写入特定的同步数据文件中,这时的不一致性包括了缓冲区中的数据和同步数据文件中的数据,这时的数据恢复需要做两方面的工作:
把同步数据文件中的正确数据一次性发送给退出服务器,退出服务器把它写入本地的同步数据文件;
建立本地的缓冲区,建立起同步机制,接收同步数据,同时启动数据同步进程,先同步数据文件中的数据,当缓冲区数据因没有处理而达到一定程度时,会自动把部分数据追加到同步数据文件的后面,这时,退出服务器已经恢复了正常工作,实际上也不需要过多的数据恢复工作。
由于主文件服务器一般需要处理文件的读写请求,写请求仅占一部分,需要同步而执行的操作造成的负载要小于主服务器,因此可能在较短的时间内完成同步。当需要退出服务器(此时已经进入同步阶段)成为主服务器时,则必须等所有同步数据同步完成后才能开始服务。
如果退出服务器是因为较严重的故障或灾难而退出的,则可能需要较长时间的处理,如更换硬件、系统重启、甚至重装系统等,这时就可能出现一些困难的情况,一种是如上图所示的,工作正常的系统已经生成了新的版本,如服务器退出时的最新版本是 i,经过一段时间后,正常系统生成了新的版本,这时主系统会清空同步数据文件,重新从版本生成后进行记录。对于这种情况,可以有两种处理办法:
基于本地版本的快速恢复:当退出文件服务器本地至少存在一个版本与其他正常机器上的版本相同时,可以采用这种恢复策略。具体而言,先确定一个最新的正确版本,用本地版本恢复,这一过程非常简单快捷,仅涉及到两次 inode 的修改;然后选择一台正常服务器,请求它生成一个正常系统上最新版本与恢复版本的增量升级数据,这样的数据量不会很大,而且不需要象基于操作的同步那样逐步进行,同步效率非常高,因此可以大大提高恢复速度。同步到正常系统的最新版本后,然后就按照上述第 2 条的情况进行同步数据文件的同步。
基于分布版本的快速恢复:当停顿时间太长而不存在一个相同的版本,或文件服务器数据出现损坏(如磁盘故障造成数据损毁)时,需要采用此种方法。具体办法如下:直接把正常服务器上的最新版本传送到退出服务器,然后按照上述的第 2 种情况进行同步数据文件的同步。
正如上面所述,全部服务器均出现问题的概率是很小的,但是,不能简单的排除这种情况的出现,特别是本方案采用数据同步机制,即多个站点的数据是保持快速同步的,这虽然能保证动态迁移的顺利完成,但是也带来较大的风险,就是会出现数据”污染”的自动传播,当主文件服务器中的文件数据因为某些原因(主要是对文件的非法访问)造成数据非法修改时,会立即传播到其他备份节点,这样的话,不管服务迁移到哪台机器均会出现错误。
针对这种情况,我们采取了以下措施:当发现非法修改造成数据污染时,系统可以自动命令各站点恢复到指定的版本,如前一版本(可以由管理员配置成前一、二、三个版本);管理员也可以干预这一过程,强制各站点恢复到同一指定的版本,从而保证全局文件系统使用同一正确版本。
NFS 文件细粒度恢复技术
在传统恢复技术中,一方面由于数据备份不是实时进行的,当出现事故需要恢复时,最新的备份数据与最新数据之间存在一个时间差,这样就造成了该时间段内数据的丢失(见图 5);同时,传统的数据备份是一定时间段后数据的增量备份,是一段时间内所有文
Linux 网络文件系统简介
网络文件系统(NFS)协议是由 Sun MicroSystem 公司在 20 世纪 80 年代为了提供对共享文件的远程访问而设计和实现的,它采用了经典的客户机/服务器模式提供服务。为了达到如同 NFS 协议通过使用 Sun 公司开发的远在本机上使用本地文件系统一样便捷的效果,NFS 通过使用远程过程调用协议(RPC Protocol)来实现运行在一台计算机上的程序来调用在另一台远程机器上运行的子程序。同时,为了解决不同平台上的数据交互问题,它提供了外部数据表示(XDR)来解决这个问题。为了灵活地提供文件共享服务,该协议可以在 TCP 协议或者是 UDP 协议上运行,典型的情况是在 UDP 协议上运行。在
- REDIce-Linux--灵活的实时Linux内核(11-12)
- linux文件系统基础(02-09)
- Linux标准趋向统一(11-12)
- linux基础技术(02-09)
- LINUX的目录树(02-09)
- 在Windows下启动Linux(02-09)
