CN113704191B - 一种集群文件系统访问方法、装置、设备及可读存储介质 - Google Patents
一种集群文件系统访问方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113704191B CN113704191B CN202110839489.1A CN202110839489A CN113704191B CN 113704191 B CN113704191 B CN 113704191B CN 202110839489 A CN202110839489 A CN 202110839489A CN 113704191 B CN113704191 B CN 113704191B
- Authority
- CN
- China
- Prior art keywords
- file system
- cluster file
- node
- access
- party
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000004891 communication Methods 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 230000007717 exclusion Effects 0.000 claims description 9
- 238000012795 verification Methods 0.000 claims description 7
- 230000008878 coupling Effects 0.000 abstract description 8
- 238000010168 coupling process Methods 0.000 abstract description 8
- 238000005859 coupling reaction Methods 0.000 abstract description 8
- 230000000694 effects Effects 0.000 abstract description 2
- 238000013461 design Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 210000001503 joint Anatomy 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/188—Virtual file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种集群文件系统访问方法、装置、设备及可读存储介质。本申请中的集群文件系统为第三方访问端提供了domain_join接口,因此第三方访问端可以通过domain_join接口以虚拟节点的身份加入集群文件系统,从而建立第三方访问端与集群文件系统之间的通信连接。之后第三方访问端就可以访问集群文件系统。若接收到第三方访问端发送的访问请求,则确定访问请求的类型,并基于类型和集群文件系统中的锁管理器处理访问请求。在该方案中,第三方访问端无需知道集群文件系统的底层访问逻辑,因此二者之间的代码耦合性较低,保障了集群文件系统的安全。相应地,本申请提供的一种集群文件系统访问装置、设备及可读存储介质,也同样具有上述技术效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种集群文件系统访问方法、装置、设备及可读存储介质。
背景技术
一般地,第三方访问端常以单独的主机或者进程形式存在,若第三方访问端想要通过除VFS接口之外的方式访问集群文件系统,就需要知道集群文件系统的底层访问逻辑,并以侵入式的方式进行对接。因此实现过程复杂,且访问流程涉及的代码与集群文件系统的底层访问逻辑高耦合,不够灵活。由于是侵入式对接,还可能影响集群文件系统的安全。VFS接口即虚拟文件系统(Virtual File System)的接口。
因此,第三方访问端如果通过除VFS接口之外的方式访问集群文件系统,那么如何降低代码耦合性,保障集群文件系统的安全,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种集群文件系统访问方法、装置、设备及可读存储介质,以在第三方访问端通过除VFS接口之外的方式访问集群文件系统时,降低代码耦合性,保障集群文件系统的安全。其具体方案如下:
第一方面,本申请提供了一种集群文件系统访问方法,应用于集群文件系统,包括:
接收第三方访问端调用所述集群文件系统的domain_join接口的请求;
根据所述请求将所述第三方访问端配置为虚拟节点,并将所述虚拟节点接入所述集群文件系统,以建立所述虚拟节点与所述集群文件系统之间的通信连接;
若接收到所述第三方访问端发送的访问请求,则确定所述访问请求的类型,并基于所述类型和所述集群文件系统中的锁管理器处理所述访问请求。
优选地,所述根据所述请求将所述第三方访问端配置为虚拟节点,并将所述虚拟节点接入所述集群文件系统,包括:
从所述请求中提取所述第三方访问端的设备信息;所述设备信息至少包括IP地址和端口号;
为所述第三方访问端配置节点编号,并将所述第三方访问端配置为虚拟节点;
将所述设备信息和所述节点编号传输至所述集群文件系统中的各个节点,以使各个节点分别校验所述设备信息和所述节点编号;
若各个节点均返回校验通过消息,则将所述虚拟节点接入所述集群文件系统。
优选地,还包括:
若至少一个节点返回校验未通过消息,则禁止所述虚拟节点接入所述集群文件系统。
优选地,还包括:
若所述第三方访问端调用所述集群文件系统的domain_leave接口,则断开所述虚拟节点与所述集群文件系统之间的通信连接,并从所述集群文件系统中删除所述虚拟节点。
优选地,所述基于所述类型和所述集群文件系统中的锁管理器处理所述访问请求,包括:
若所述类型为读操作,则利用所述锁管理器分配的共享锁对所述访问请求对应的数据执行读操作后,释放所述共享锁。
优选地,所述基于所述类型和所述集群文件系统中的锁管理器处理所述访问请求,包括:
若所述类型为写操作,则利用所述锁管理器分配的互斥锁对所述访问请求对应的数据执行写操作。
优选地,所述利用所述锁管理器分配的互斥锁对所述访问请求对应的数据执行写操作之后,还包括:
基于所述第三方访问端调用pull_inode接口的请求,将所述访问请求对应的数据同步至所述集群文件系统中的各个节点后,释放所述互斥锁。
第二方面,本申请提供了一种集群文件系统访问装置,应用于集群文件系统,包括:
接收模块,用于接收第三方访问端调用所述集群文件系统的domain_join接口的请求;
连接模块,用于根据所述请求将所述第三方访问端配置为虚拟节点,并将所述虚拟节点接入所述集群文件系统,以建立所述虚拟节点与所述集群文件系统之间的通信连接;
访问模块,用于若接收到所述第三方访问端发送的访问请求,则确定所述访问请求的类型,并基于所述类型和所述集群文件系统中的锁管理器处理所述访问请求。
第三方面,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的集群文件系统访问方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的集群文件系统访问方法。
通过以上方案可知,本申请提供了一种集群文件系统访问方法,应用于集群文件系统,包括:接收第三方访问端调用所述集群文件系统的domain_join接口的请求;根据所述请求将所述第三方访问端配置为虚拟节点,并将所述虚拟节点接入所述集群文件系统,以建立所述虚拟节点与所述集群文件系统之间的通信连接;若接收到所述第三方访问端发送的访问请求,则确定所述访问请求的类型,并基于所述类型和所述集群文件系统中的锁管理器处理所述访问请求。
可见,本申请中的集群文件系统为第三方访问端提供了domain_join接口,因此第三方访问端可以通过domain_join接口以虚拟节点的身份加入集群文件系统,从而建立第三方访问端与集群文件系统之间的通信连接。也即:将要访问集群文件系统的第三方访问端看作系统中的一个节点,但实质上第三方访问端并非系统中的节点,其只是被暂时看作一个虚拟节点,之后第三方访问端就可以访问集群文件系统。若接收到第三方访问端发送的访问请求,则确定访问请求的类型,并基于类型和集群文件系统中的锁管理器处理访问请求。在该方案中,第三方访问端无需知道集群文件系统的底层访问逻辑,也不以侵入式的方式进行对接,因此二者之间的代码耦合性较低,能够保障集群文件系统的安全,方案更具通用性和灵活性。
相应地,本申请提供的一种集群文件系统访问装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种集群文件系统访问方法流程图;
图2为本申请公开的另一种集群文件系统访问方法流程图;
图3为本申请公开的一种集群文件系统访问装置示意图;
图4为本申请公开的一种电子设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,第三方访问端常以单独的主机或者进程形式存在,若第三方访问端想要通过除VFS接口之外的方式访问集群文件系统,就需要知道集群文件系统的底层访问逻辑,并以侵入式的方式进行对接。因此实现过程复杂,且访问流程涉及的代码与集群文件系统的底层访问逻辑高耦合,不够灵活。由于是侵入式对接,还可能影响集群文件系统的安全。为此,本申请提供了一种集群文件系统访问方案,能够在第三方访问端如果通过除VFS接口之外的方式访问集群文件系统时,降低代码耦合性,保障集群文件系统的安全。
参见图1所示,本申请实施例公开了一种集群文件系统访问方法,应用于集群文件系统,包括:
S101、接收第三方访问端调用集群文件系统的domain_join接口的请求。
domain(也称为dlmdomain)是集群文件系统中的锁管理器构建的管理域,集群文件系统中的各个节点加入管理域,各个节点之间就能够进行消息传递来完成锁状态的同步,从而解决节点间数据访问的一致性问题。
锁管理器即分布式锁管理器,是实现集群文件系统并发访问控制的关键,是构成集群文件系统的关键组件。锁管理器主要解决了节点间数据访问的一致性问题,通过锁管理器提供的锁接口,能够实现文件的一致访问及数据读写的完整性。
在本实施例中,domain_join接口是集群文件系统对外提供的一个接口,第三方访问端可以调用该接口加入管理域,即加入集群文件系统。第三方访问端为物理设备或应用程序或进程等。
S102、根据请求将第三方访问端配置为虚拟节点,并将虚拟节点接入集群文件系统,以建立虚拟节点与集群文件系统之间的通信连接。
其中,第三方访问端以虚拟节点的身份加入集群文件系统。也即:将要访问集群文件系统的第三方访问端看作系统中的一个节点,但实质上第三方访问端并非系统中的节点,其只是被暂时看作一个虚拟节点。
为了使第三方访问端更像系统中的节点,可以为其分配节点编号,控制其周期性发送心跳包给集群文件系统中的其他节点,以使集群文件系统中的其他节点确认其存在。其中,集群文件系统可以按照相应策略给第三方访问端分配节点编号。分配节点编号的策略可以是:依次递增(按照1、2、3……每次递增一),也可以提前设置足够多的未被占用的节点编号,当需要分配节点编号时,从这些节点编号中随机选择一个进行分配。
在一种具体实施方式中,根据请求将第三方访问端配置为虚拟节点,并将虚拟节点接入集群文件系统,包括:从请求中提取第三方访问端的设备信息;设备信息至少包括IP地址(Internet Protocol Address)和端口号;为第三方访问端配置节点编号,并将第三方访问端配置为虚拟节点;将设备信息和节点编号传输至集群文件系统中的各个节点,以使各个节点分别校验设备信息和节点编号;若各个节点均返回校验通过消息,则将虚拟节点接入集群文件系统。若至少一个节点返回校验未通过消息,则禁止虚拟节点接入集群文件系统。
具体的,任一个节点校验设备信息和节点编号的过程可以是:任一个节点检测设备信息和节点编号是否符合集群文件系统的预设要求,若是,则确定校验通过;否则,确定校验未通过。其中,检测设备信息和节点编号是否符合集群文件系统的预设要求包括:检测设备信息是否在集群文件系统的访问黑名单中,若在,则设备信息不符合预设要求;否则,设备信息符合预设要求。检测节点编号是否重复,即:检测当前集群文件系统中的各个节点(包括真实节点和虚拟节点)的节点编号与新加入的虚拟节点的节点编号是否重复;若是,则节点编号不符合预设要求;否则,节点编号符合预设要求。
其中,若第三方访问端为应用程序或进程等软件程序,那么其IP地址和端口号即为相应软件程序所在物理机的IP地址和端口号。
S103、若接收到第三方访问端发送的访问请求,则确定访问请求的类型,并基于类型和集群文件系统中的锁管理器处理访问请求。
在本实施例中,集群文件系统还为第三方访问端提供了domain_leave接口,domain_leave接口也是集群文件系统对外提供的一个接口,第三方访问端可以调用该接口撤离管理域,即断开与集群文件系统的通信。在一种具体实施方式中,若第三方访问端调用集群文件系统的domain_leave接口,则断开虚拟节点与集群文件系统之间的通信连接,并从集群文件系统中删除虚拟节点。
在一种具体实施方式中,基于类型和集群文件系统中的锁管理器处理访问请求,包括:若类型为读操作,则利用锁管理器分配的共享锁对访问请求对应的数据执行读操作后,释放共享锁。
在一种具体实施方式中,基于类型和集群文件系统中的锁管理器处理访问请求,包括:若类型为写操作,则利用锁管理器分配的互斥锁对访问请求对应的数据执行写操作。其中,利用锁管理器分配的互斥锁对访问请求对应的数据执行写操作之后,还包括:基于第三方访问端调用pull_inode接口的请求,将访问请求对应的数据同步至集群文件系统中的各个节点后,释放互斥锁。pull_inode接口是系统底层的调用接口,为使第三方访问端能够调用pull_inode接口,pull_inode接口可以对外进行封装后供第三方访问端调用。
可见,本申请实施例中的集群文件系统为第三方访问端提供了domain_join接口,因此第三方访问端可以通过domain_join接口以虚拟节点的身份加入集群文件系统,从而建立第三方访问端与集群文件系统之间的通信连接。也即:将要访问集群文件系统的第三方访问端看作系统中的一个节点,但实质上第三方访问端并非系统中的节点,其只是被暂时看作一个虚拟节点,之后第三方访问端就可以访问集群文件系统。若接收到第三方访问端发送的访问请求,则确定访问请求的类型,并基于类型和集群文件系统中的锁管理器处理访问请求。在该方案中,第三方访问端无需知道集群文件系统的底层访问逻辑,也不以侵入式的方式进行对接,因此二者之间的代码耦合性较低,能够保障集群文件系统的安全,方案更具通用性和灵活性。
本申请实施例公开了一种访问实现方案,该方案支持第三方对集群文件系统的旁路访问(针对与VFS接口访问而言),且集群文件系统基于Linux超融合架构的服务器构建而得。
在超融合领域,Linux的虚拟文件系统(VFS)能够屏蔽内核和具体的文件系统实现,使其很好的支持多种文件系统,如ext3、ext4、xfs、btrfs等单机文件系统,也支持如GFS(Google File System)、GlusterFS(Gluster File System)、OCFS2(Oracle集群文件系统)等集群文件系统或者分布式文件系统。基于单机文件系统构建的存储池可充分利用文件系统的特性实现快照、数据备份、扩容等虚拟化系统服务;而基于集群文件系统所构建的共享存储池可实现高可用、虚拟机资源动态调度、容灾等高级特性,构成虚拟化及超融合系统的核心能力。
在Linux系统中,用户态的数据读写会通过系统调用进入内核层,经由VFS、文件系统、块层、设备驱动层,才会到达存储设备,IO经过的所有软件栈统称为IO栈。为了避免IO栈深度对性能的影响,Linux设计中充分利用了缓存机制来提高性能,在文件系统中主要有dcache、页缓存(page cache)等。在Linux VFS的设计方案中,数据访问必须通过操作系统提供的IO接口来进行,由kernel和VFS、缓存机制等配合,才能保证的完整性。而对于集群文件系统,需要在满足本地文件系统语义前提下,还要考虑节点间的数据一致性,这就需要引入锁管理器来对资源的并发访问进行管控。
为此,本方案为集群文件系统设计实现了第三方数据访问接口:domain_join接口和domain_leave接口。其中,domain_join接口用于使第三方加入dlm domain,而domain_leave接口用于使第三方撤离dlmdomain。
为了使第三方能够通过domain_join接口加入dlm domain,在dlmdomain中创造“虚拟节点”的概念。虚拟节点在逻辑上与dlmdomain中的普通节点对等,但实质上,其并没有具体的文件系统实例对应。第三方要访问集群文件系统,需要调用domain_join接口以虚拟节点的形式加入dlm domain,从而与dlm domain中所有的节点建立连接。当访问结束后,第三方调用domain_leave接口与dlm domain断开连接。
由于第三方以虚拟节点的形式加入了dlm domain,因此第三方受锁管理器的管控。因此第三方访问集群文件系统时,可以调用dlm锁接口对文件进行上锁访问,那么第三方的数据读写操作将受锁管理器的保护,可确保数据一致性,实现对资源的并发访问控制。
需要注意的是,由于虚拟节点缺乏节点管理器管控,因此虚拟节点需要周期性模拟发送心跳信息,使得其它节点确认其存在。一旦第三方因故障访问失败或未释放锁资源,就可以由集群正常节点感知并完成恢复。
其中,第三方调用domain_join接口时需要传入自身的IP信息、端口号等信息,以使集群文件系统按照其IP信息、端口号为其分配节点编号。此后,“虚拟节点”会向集群的所有节点发送消息(消息包括虚拟节点的IP信息、端口号、节点编号等),以申请加入domain,一旦所有节点校验消息通过,则“虚拟节点”就加入到dlm domain中。
当第三方调用domain_join接口成功后,就可以调用dlm锁接口对文件进行上锁访问,也就对集群文件系统中的虚拟磁盘文件进行了旁路读写。此时数据读写受锁保护。具体而言,如果是读操作,则可以调用dlm_lock(SH)获得共享锁;如果是写操作,这可调用dlm_lock(EX)获得互斥锁。写操作结束后,第三方调用pull_inode接口让所有节点完成所写数据的强制同步。
pull_inode接口可以在集群的所有节点上执行ioctl(PULL_INODE)命令,强制进行数据同步。最后,可调用dlm_unlock释放锁,完成访问流程。
请参见图2,第三方对集群文件系统进行旁路访问的流程如下:
(1)调用domain_join接口加入dlm domain,和集群其它节点建立连接。
(2)调用dlm_lock(file_path,EX/SH)对待访问文件上锁,进行数据读或写。
其中file_path为相对于挂载点的路径,EX/SH为锁模式。如果是写操作则需上EX锁;如果是读操作,则需要上SH锁。
其中,如果是数据新增或者修改操作(即写操作),则操作完毕后调用pull_inode接口向集群所有节点发送数据同步请求,完成数据同步。
(3)执行dlm_unlock释放集群锁。
(4)调用domain_leave接口,使得“虚拟节点”离开dlm domain,从而断开第三方与集群文件系统的连接。
可见,本实施例无需侵入集群文件系统,具有低耦合、数据安全的特性。该方案既能够使得超融合系统充分利用集群文件系统的特性,又为超融合系统增加了扩展性支持。可在保证数据一致性的情况下,方便对数据进行备份、安全检查、拷贝等。
下面对本申请实施例提供的一种集群文件系统访问装置进行介绍,下文描述的一种集群文件系统访问装置与上文描述的一种集群文件系统访问方法可以相互参照。
参见图3所示,本申请实施例公开了一种集群文件系统访问装置,应用于集群文件系统,包括:
接收模块301,用于接收第三方访问端调用集群文件系统的domain_join接口的请求;
连接模块302,用于根据请求将第三方访问端配置为虚拟节点,并将虚拟节点接入集群文件系统,以建立虚拟节点与集群文件系统之间的通信连接;
访问模块302,用于若接收到第三方访问端发送的访问请求,则确定访问请求的类型,并基于类型和集群文件系统中的锁管理器处理访问请求。
在一种具体实施方式中,连接模块包括:
提取单元,用于从请求中提取第三方访问端的设备信息;设备信息至少包括IP地址和端口号;
配置单元,用于为第三方访问端配置节点编号,并将第三方访问端配置为虚拟节点;
校验单元,用于将设备信息和节点编号传输至集群文件系统中的各个节点,以使各个节点分别校验设备信息和节点编号;
接入单元,用于若各个节点均返回校验通过消息,则将虚拟节点接入集群文件系统。
在一种具体实施方式中,连接模块还包括:
禁止单元,用于若至少一个节点返回校验未通过消息,则禁止虚拟节点接入集群文件系统。
在一种具体实施方式中,还包括:
断开连接单元,用于若第三方访问端调用集群文件系统的domain_leave接口,则断开虚拟节点与集群文件系统之间的通信连接,并从集群文件系统中删除虚拟节点。
在一种具体实施方式中,访问模块具体用于:
若类型为读操作,则利用锁管理器分配的共享锁对访问请求对应的数据执行读操作后,释放共享锁。
在一种具体实施方式中,访问模块具体用于:
若类型为写操作,则利用锁管理器分配的互斥锁对访问请求对应的数据执行写操作。
在一种具体实施方式中,访问模块还用于:
基于第三方访问端调用pull_inode接口的请求,将访问请求对应的数据同步至集群文件系统中的各个节点后,释放互斥锁。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种集群文件系统访问装置,该装置能够在第三方访问端通过除VFS接口之外的方式访问集群文件系统时,降低代码耦合性,保障集群文件系统的安全。
下面对本申请实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与上文描述的一种集群文件系统访问方法及装置可以相互参照。
参见图4所示,本申请实施例公开了一种电子设备,包括:
存储器401,用于保存计算机程序;
处理器402,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种集群文件系统访问方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的集群文件系统访问方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种集群文件系统访问方法,其特征在于,应用于集群文件系统,包括:
接收第三方访问端调用所述集群文件系统的domain_join接口的请求;所述domain_join接口用于使所述第三方加入所述集群文件系统中的锁管理器构建的管理域;
根据所述请求将所述第三方访问端配置为虚拟节点,并将所述虚拟节点接入所述集群文件系统,以建立所述虚拟节点与所述集群文件系统之间的通信连接;
若接收到所述第三方访问端发送的访问请求,则确定所述访问请求的类型,并基于所述类型和所述集群文件系统中的锁管理器处理所述访问请求;
其中,所述根据所述请求将所述第三方访问端配置为虚拟节点,并将所述虚拟节点接入所述集群文件系统,包括:
从所述请求中提取所述第三方访问端的设备信息;所述设备信息至少包括IP地址和端口号;
为所述第三方访问端配置节点编号,并将所述第三方访问端配置为虚拟节点;
将所述设备信息和所述节点编号传输至所述集群文件系统中的各个节点,以使各个节点分别校验所述设备信息和所述节点编号;
若各个节点均返回校验通过消息,则将所述虚拟节点接入所述集群文件系统。
2.根据权利要求1所述的方法,其特征在于,还包括:
若至少一个节点返回校验未通过消息,则禁止所述虚拟节点接入所述集群文件系统。
3.根据权利要求1所述的方法,其特征在于,还包括:
若所述第三方访问端调用所述集群文件系统的domain_leave接口,则断开所述虚拟节点与所述集群文件系统之间的通信连接,并从所述集群文件系统中删除所述虚拟节点;所述第三方访问端调用所述domain_leave接口撤离管理域。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述基于所述类型和所述集群文件系统中的锁管理器处理所述访问请求,包括:
若所述类型为读操作,则利用所述锁管理器分配的共享锁对所述访问请求对应的数据执行读操作后,释放所述共享锁。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述基于所述类型和所述集群文件系统中的锁管理器处理所述访问请求,包括:
若所述类型为写操作,则利用所述锁管理器分配的互斥锁对所述访问请求对应的数据执行写操作。
6.根据权利要求5所述的方法,其特征在于,所述利用所述锁管理器分配的互斥锁对所述访问请求对应的数据执行写操作之后,还包括:
基于所述第三方访问端调用所述集群文件系统的pull_inode接口的请求,将所述访问请求对应的数据同步至所述集群文件系统中的各个节点后,释放所述互斥锁;所述第三方访问端调用所述pull_inode接口使所有节点完成所写数据的强制同步。
7.一种集群文件系统访问装置,其特征在于,应用于集群文件系统,包括:
接收模块,用于接收第三方访问端调用所述集群文件系统的domain_join接口的请求;所述domain_join接口用于使所述第三方加入所述集群文件系统中的锁管理器构建的管理域;
连接模块,用于根据所述请求将所述第三方访问端配置为虚拟节点,并将所述虚拟节点接入所述集群文件系统,以建立所述虚拟节点与所述集群文件系统之间的通信连接;
访问模块,用于若接收到所述第三方访问端发送的访问请求,则确定所述访问请求的类型,并基于所述类型和所述集群文件系统中的锁管理器处理所述访问请求;
其中,所述连接模块包括:
提取单元,用于从所述请求中提取所述第三方访问端的设备信息;所述设备信息至少包括IP地址和端口号;
配置单元,用于为所述第三方访问端配置节点编号,并将所述第三方访问端配置为虚拟节点;
校验单元,用于将所述设备信息和所述节点编号传输至所述集群文件系统中的各个节点,以使各个节点分别校验所述设备信息和所述节点编号;
接入单元,用于若各个节点均返回校验通过消息,则将所述虚拟节点接入所述集群文件系统。
8.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至6任一项所述的方法。
9.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110839489.1A CN113704191B (zh) | 2021-07-23 | 2021-07-23 | 一种集群文件系统访问方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110839489.1A CN113704191B (zh) | 2021-07-23 | 2021-07-23 | 一种集群文件系统访问方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113704191A CN113704191A (zh) | 2021-11-26 |
CN113704191B true CN113704191B (zh) | 2023-11-03 |
Family
ID=78650438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110839489.1A Active CN113704191B (zh) | 2021-07-23 | 2021-07-23 | 一种集群文件系统访问方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704191B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101971147A (zh) * | 2007-09-30 | 2011-02-09 | 甲骨文美国公司 | 基于操作系统虚拟化的虚拟集群 |
CN103001995A (zh) * | 2011-09-15 | 2013-03-27 | 伊姆西公司 | 在集群文件系统中改进高速缓存一致性的方法和装置 |
CN106572181A (zh) * | 2016-11-08 | 2017-04-19 | 深圳市中博睿存科技有限公司 | 基于集群文件系统的对象存储接口负载均衡方法和系统 |
CN112148695A (zh) * | 2019-06-26 | 2020-12-29 | 华为技术有限公司 | 一种资源锁管理方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10061701B2 (en) * | 2010-04-26 | 2018-08-28 | International Business Machines Corporation | Sharing of class data among virtual machine applications running on guests in virtualized environment using memory management facility |
US8788474B2 (en) * | 2010-12-17 | 2014-07-22 | Red Hat, Inc. | Inode event notification for cluster file systems |
US9529821B2 (en) * | 2012-09-28 | 2016-12-27 | International Business Machines Corporation | Coordinated access to a clustered file system's shared storage using shared-lock architecture |
US11036683B2 (en) * | 2018-07-10 | 2021-06-15 | International Business Machines Corporation | Hot-pluggable file system interface |
-
2021
- 2021-07-23 CN CN202110839489.1A patent/CN113704191B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101971147A (zh) * | 2007-09-30 | 2011-02-09 | 甲骨文美国公司 | 基于操作系统虚拟化的虚拟集群 |
CN103001995A (zh) * | 2011-09-15 | 2013-03-27 | 伊姆西公司 | 在集群文件系统中改进高速缓存一致性的方法和装置 |
CN106572181A (zh) * | 2016-11-08 | 2017-04-19 | 深圳市中博睿存科技有限公司 | 基于集群文件系统的对象存储接口负载均衡方法和系统 |
CN112148695A (zh) * | 2019-06-26 | 2020-12-29 | 华为技术有限公司 | 一种资源锁管理方法及装置 |
Non-Patent Citations (2)
Title |
---|
HANDY:一种具有动态扩展性的集群文件系统;程斌;金海;李胜利;邵志远;;小型微型计算机系统(12);全文 * |
基于Linux的集群文件系统CSFS的实现;丁凯,高扬;计算机工程与设计(10);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113704191A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110750334B (zh) | 一种基于Ceph的网络靶场后端存储系统设计方法 | |
US8650302B2 (en) | Communication in multiprocessor using proxy sockets | |
CN106843749B (zh) | 写入请求处理方法、装置及设备 | |
CN109710317B (zh) | 系统启动方法、装置、电子设备及存储介质 | |
JPH10232810A (ja) | クライアント/サーバ計算機システムにおける切断状態ライトの許可装置及び方法 | |
JP2002229837A (ja) | 共有ディスク・パラレル・データ・ファイル内のデータに対するアクセスを制御する方法 | |
CN102355369A (zh) | 虚拟化集群系统及其处理方法和设备 | |
CN109213571B (zh) | 一种内存共享方法、容器管理平台及计算机可读存储介质 | |
CN107124469B (zh) | 一种集群节点通信方法及系统 | |
US20110282917A1 (en) | System and method for efficient resource management | |
EP3579501B1 (en) | Message transmission method and device in cluster file system | |
CN113297133B (zh) | 一种服务迁移质量保障方法及系统 | |
CN111858117A (zh) | Kubernetes集群中故障Pod诊断方法及装置 | |
CN108352995A (zh) | 一种smb业务故障处理方法和存储设备 | |
CN113704191B (zh) | 一种集群文件系统访问方法、装置、设备及可读存储介质 | |
CN105205160A (zh) | 一种数据写入方法及装置 | |
CN111488247B (zh) | 一种管控节点多次容错的高可用方法及设备 | |
CN112711469A (zh) | 云主机迁移方法、装置、计算机设备和存储介质 | |
CN115470041A (zh) | 一种数据灾备管理方法及装置 | |
CN109376135B (zh) | 一种集群文件系统管理方法和系统 | |
CN110704249A (zh) | 一种保证应用一致性的方法、装置及系统 | |
CN115698955A (zh) | 事务镜像的容错 | |
CN108614873B (zh) | 一种数据处理方法及装置 | |
CN108279850B (zh) | 一种数据资源的存储方法 | |
CN111026452A (zh) | 一种远程32位进程注入64位进程的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |