一种nfs挂载目录导出方法及装置与流程

文档序号:12063904阅读:936来源:国知局
一种nfs挂载目录导出方法及装置与流程

本发明涉及分布式文件系统领域,更具体地说,涉及一种nfs挂载目录导出方法及装置。



背景技术:

云计算时代来临,分布式文件系统是目前各大云计算厂商研发的重点之一。在与客户沟通中发现,通常客户已经有在生产环境使用的分布式系统,为了保证产品的稳定,在产品升级换代的周期内,他们希望同时运行两种以上的文件系统,以保证线上环境的稳定性和无缝切换。经分析,需要在Linux系统上把后端的不同文件系统通过标准nfs协议导出,在一台节点挂载后端多个文件系统,然后在该节点启动nfs server,导出本机的nfs挂载目录。通常,我们称该节点为网关节点。这样,用户可以在任意节点挂载使用文件系统了。但是,因为nfs挂载目录不是一个完备的文件系统,没有超级块等信息,所以目前的nfs server不支持将nfs挂载目录导出。

因此,如何解决网关节点nfs目录的二次导出,是本领域技术人员需要解决的问题。



技术实现要素:

本发明的目的在于提供一种nfs挂载目录导出方法及装置,以实现网关节点nfs目录的二次导出。

为实现上述目的,本发明实施例提供了如下技术方案:

一种nfs挂载目录导出方法,包括:

接收后端节点导出的分布式文件系统集群根目录;

将所述集群根目录挂载至本节点的第一目录;

利用hello程序将所述第一目录导出至lib-fuse库,生成第二目录;

通过本节点的nfs server,将所述第二目录导出。

其中,所述接收后端节点导出的分布式文件系统集群根目录,包括:

接收后端节点通过启动nfs server,导出的分布式文件系统的集群根目录导出。

其中,所述将所述集群根目录挂载至本节点的第一目录,包括:

将所述集群根目录挂载至本节点的/mnt/nfs目录。

其中,若所述lib-fuse库位于用户态,则所述利用hello程序将所述第一目录导出至lib-fuse库,生成第二目录,包括:

启动hello程序,通过所述hello程序调用lib-fuse库;

调用POSIX接口读取/mnt/nfs目录,导出至lib-fuse库,生成/tmp/fuse目录。

其中,若所述lib-fuse库位于内核态,则所述利用hello程序将所述第一目录导出至lib-fuse库,生成第二目录,包括:

启动hello程序,通过所述hello程序调用lib-fuse库;

调用VFS层的接口读取/mnt/nfs目录,导出至lib-fuse库,生成/tmp/fuse目录。

一种nfs挂载目录导出装置,包括:

接收模块,用于接收后端节点导出的分布式文件系统集群根目录;

挂载模块,用于将所述集群根目录挂载至本节点的第一目录;

第一导出模块,用于利用hello程序将所述第一目录导出至lib-fuse库,生成第二目录;

第二导出模块,用于通过本节点的nfs server,将所述第二目录导出。

其中,所述接收模块具体用于,接收后端节点通过启动nfs server,导出的分布式文件系统的集群根目录导出。

其中,所述挂载模块将所述集群根目录挂载至本节点的/mnt/nfs目录。

其中,所述第一导出模块,包括:

第一调用单元,用于通过hello程序调用lib-fuse库,并调用POSIX接口读取/mnt/nfs目录,导出至lib-fuse库,生成/tmp/fuse目录。

其中,所述第一导出模块,包括:

第二调用单元,用于通过hello程序调用lib-fuse库,并调用VFS层的接口读取/mnt/nfs目录,导出至lib-fuse库,生成/tmp/fuse目录。

通过以上方案可知,本发明实施例提供的一种nfs挂载目录导出方法,包括:接收后端节点导出的分布式文件系统集群根目录;将所述集群根目录挂载至本节点的第一目录;利用hello程序将所述第一目录导出至lib-fuse库,生成第二目录;通过本节点的nfs server,将所述第二目录导出;

可见,在本方案中,通过使用fuse用户态文件系统机制作中转,可将网关节点的nfs目录通过nfs server二次导出,客户端便可通过nfs协议挂载第二目录至本机,从而可以正常使用分布式文件系统,实现了节点的解耦合统一管理、多种分布式文件系统的共用,以及分布式文件系统的平稳升级;本发明还公开了一种nfs挂载目录导出装置,同样能实现上述技术效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例公开的一种nfs挂载目录导出方法流程示意图;

图2为本发明实施例公开的一种nfs挂载目录导出装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种nfs挂载目录导出方法及装置,以实现网关节点nfs目录的二次导出。

参见图1,本发明实施例提供的一种nfs挂载目录导出方法,包括:

S101、接收后端节点导出的分布式文件系统集群根目录;

其中,所述接收后端节点导出的分布式文件系统集群根目录,包括:

接收后端节点通过启动nfs server,导出的分布式文件系统的集群根目录导出。

具体的,在本方案中,需要一部署分布式文件系统的节点作为文件存储的后端节点,通过在该节点上启动nfs server,导出集群根目录,并发送至网关节点,也就是网关节点接收后端节点导出的分布式文件系统集群根节点。

S102、将所述集群根目录挂载至本节点的第一目录;

其中,所述将所述集群根目录挂载至本节点的第一目录,包括:将所述集群根目录挂载至本节点的/mnt/nfs目录。

S103、利用hello程序将所述第一目录导出至lib-fuse库,生成第二目录;

S104、通过本节点的nfs server,将所述第二目录导出。

具体的,在本实施例中,网关节点通过nfs协议挂载后端节点发送的分布式文件系统的根目录到本机的/mnt/nfs目录。同时,启动程序hello,该程序调用lib-fuse库,并调用标准Linux POSIX接口读取/mnt/nfs目录,然后导出到/tmp/fuse。最后,在该节点启动nfs server,便可将/tmp/fuse目录通过nfs协议导出。客户端节点通过nfs协议挂载/tmp/fuse目录到本机的任意目录,便可正常使用分布式文件系统了。

其中,若所述lib-fuse库位于用户态,则所述利用hello程序将所述第一目录导出至lib-fuse库,生成第二目录,包括:

启动hello程序,通过所述hello程序调用lib-fuse库;调用POSIX接口读取/mnt/nfs目录,导出至lib-fuse库,生成/tmp/fuse目录。

相应的,若所述lib-fuse库位于内核态,调用VFS层的接口读取/mnt/nfs目录,导出至lib-fuse库,生成/tmp/fuse目录。

具体的,在本方案中,采用fuse机制时,需要把数据从内核态和用户态来回拷贝,这样导致采用本方案进行读写性能很低。因此,可将fsue机制集成到nfs server中,并且,若lib-fuse库位于内核态,则将POSIX接口换为VFS层的接口,可提升性能。可见,在本方案中提供的一种基于nfs协议和fuse实现文件服务器的方案,通过使用fuse用户态文件系统机制作中转,这样中转后就成了完备的文件系统,就可以通过nfs server导出了。

下面对本发明实施例提供的nfs挂载目录导出装置进行介绍,下文描述的nfs挂载目录导出装置与上文描述的nfs挂载目录导出方法可以相互参照。

参见图2,本发明实施例提供的一种nfs挂载目录导出装置,包括:

接收模块100,用于接收后端节点导出的分布式文件系统集群根目录;

挂载模块200,用于将所述集群根目录挂载至本节点的第一目录;

第一导出模块300,用于利用hello程序将所述第一目录导出至lib-fuse库,生成第二目录;

第二导出模块400,用于通过本节点的nfs server,将所述第二目录导出。

基于上述实施例,所述接收模块具体用于,接收后端节点通过启动nfs server,导出的分布式文件系统的集群根目录导出。

其中,所述挂载模块将所述集群根目录挂载至本节点的/mnt/nfs目录。

基于上述实施例,所述第一导出模块,包括:

第一调用单元,用于通过hello程序调用lib-fuse库,并调用POSIX接口读取/mnt/nfs目录,导出至lib-fuse库,生成/tmp/fuse目录。

基于上述实施例,所述第一导出模块,包括:

第二调用单元,用于通过hello程序调用lib-fuse库,并调用VFS层的接口读取/mnt/nfs目录,导出至lib-fuse库,生成/tmp/fuse目录。

本发明实施例提供的一种nfs挂载目录导出方法,包括:接收后端节点导出的分布式文件系统集群根目录;将所述集群根目录挂载至本节点的第一目录;利用hello程序将所述第一目录导出至lib-fuse库,生成第二目录;通过本节点的nfs server,将所述第二目录导出;

可见,在本方案中,通过使用fuse用户态文件系统机制作中转,可将网关节点的nfs目录通过nfs server二次导出,客户端便可通过nfs协议挂载第二目录至本机,从而可以正常使用分布式文件系统,实现了节点的解耦合统一管理、多种分布式文件系统的共用,以及分布式文件系统的平稳升级;本发明还公开了一种nfs挂载目录导出装置,同样能实现上述技术效果。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易 见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1