摘要:
分布式文件系统的高可用性一直是研究人员关注的热点.SMDFS继承了HDFS的高可用框架,节点数量达到三个或以上时,通过NFS或QJM机制实现集群的高可用.但是,双节点集群通过已有双机热备机制实现服务冗余时,存在单点故障和服务中断等问题.在生产环境中,双节点集群具有较多应用需求,实现双节点集群的高可用性具有较高的研究价值.究其原因,双节点的SMDFS集群在不引入第三方设备时,没有很好的数据共享机制,导致数据不能实时共享.因此,本文提出基于写成功确认的寻址数据双写技术,通过节点正常运行时的写成功确认机制,单节点故障后的数据恢复技术,使关键的索引数据能够做到实时双副本.为提高写数据速度,SMDFS系统在客户端写数据时对元数据进行缓存.通过RESTful接口写数据时,现有缓存方案将文件的元数据缓存在SMDFS客户端,也是RESTful的服务端.如果写数据过程中RESTful服务器故障,由于缓存数据没有持久化,导致小文件丢失,而用户并不感知.为解决上述问题,本文提出了两种缓存高可用机制:基于本地磁盘日志记录的写缓存技术和基于元数据服务节点内存备份的写缓存技术.前者将缓存数据通过写本地日志的形式备份,待提交至服务端后删除日志;后者通过双机实现缓存数据的异地备份.若客户端节点故障,系统将通过本地磁盘日志或服务节点内存备份实现写缓存的恢复和持久化存储.论文还引入Keepalived机制,实现系统虚拟IP地址,满足任意情况下提供用户统一的访问入口地址;Keepalived还监测集群节点状态,在主节点故障时触发主备切换.基于本文研究成果,在海量小文件系统SMDFS的基础上,实现了双节点高可用系统.测试表明,系统可以满足双节点情况下的高可用需求,可以在分钟级别完成集群的故障切换,切换完成后读,写进程能自动恢复运行.同时,高可用机制的引入对系统的性能影响很小.
展开