一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种集群文件系统的访问方法、装置及介质与流程

2022-09-03 20:11:06 来源:中国专利 TAG:


1.本发明涉及虚拟化及超融合领域,特别是涉及一种群文件系统的访问方法、装置及介质。


背景技术:

2.在虚拟化及超融合领域,文件系统常备用作存储池抽象构建的底层技术,使得存储池可充分利用文件系统特性实现入快照、数据备份、扩容等虚拟化系统服务。基于集群稳健性通所构建的共享存储池可实现高可用性(high availability,ha)、虚拟机资源动态调度、容灾等高级特性,构成虚拟化及超融合系统的核心能力。集群文件系统的一个核心组件是分布式锁管理器(distribute lock manager,dlm),用于控制集群内节点对共享资源的并发访问。
3.现有的集群文件系统的dlm基于“消息传递”策略的锁方案(opendlm,如ocfs2)或者基于小型计算机系统接口(small computer system interface,scsi)提供的高级caw指令实现的磁盘锁,也就是高性能集群文件系统(vmware virtual machine file system,vmfs)。前者通过两两节点之间建立socket连接传递消息,基于已有网络建立节点间通信通道,其稳定性会受到网络波动影响,尤其是在没有专用通信网络的环境中,任何网络波动和压力可能会影响集群的稳定性。后者虽不受网络波动的影响,但是由于scsi的caw指令基于scsi协议提出,低端或者较为老旧的存储服务器并不支持该指令,导致应用范围容易受限。
4.因此,如何兼顾上述两者不依赖网络和不受特定存储,是本领域技术人员亟需要解决的。


技术实现要素:

5.本发明的目的是提供一种群文件系统的访问方法、装置及介质,实现兼顾不依赖网络和不受特定存储,提高集群文件的稳定性和使用范围。
6.为解决上述技术问题,本发明提供一种集群文件系统的访问方法,包括:
7.获取集群文件系统的元数据块和集群对应的预设节点,其中预设节点为多个;
8.将元数据块增加锁资源并根据锁资源划分服务器的磁盘区域;
9.将磁盘区域切分为多个子空间并根据预设节点分配对应的子空间;
10.当接收到io请求时,根据paxos算法对预设节点进行锁资源的竞争确定目标节点以实现锁请求的访问。
11.优选地,根据锁资源划分服务器的磁盘区域,包括:
12.获取集群对应的预设节点个数和集群支持的最大节点数;
13.根据预设节点个数和最大节点数对服务器的磁盘进行划分得到锁资源对应的磁盘区域。
14.优选地,根据预设节点分配对应的子空间,包括:
15.在多个子空间中,将首个子空间作为锁资源的状态空间;
16.在除状态空间之外的子空间中,根据预设节点分配对应的子空间,其中一个预设节点对应一个子空间。
17.优选地,子空间存储预设节点的投票信息。
18.优选地,根据paxos算法对预设节点进行锁资源的竞争确定目标节点,包括:
19.获取各预设节点的投票信息;
20.根据各投票信息与paxos算法对各预设节点进行投票处理确定目标节点;
21.根据目标节点进行锁资源的获取。
22.优选地,还包括:
23.对各预设节点设置对应的心跳数据;
24.根据心跳数据确定各预设节点的节点状态;
25.当目标节点的节点状态为工作状态,且超出预设时间时,则将目标节点进行清理并释放锁资源以便其余节点获取锁资源。
26.优选地,还包括:
27.当目标节点释放锁资源结束时,输出提示信息。
28.为解决上述技术问题,本发明还提供一种集群文件系统的访问装置,包括:
29.获取模块,用于获取集群文件系统的元数据块和集群对应的预设节点,其中预设节点为多个;
30.划分模块,用于将元数据块增加锁资源并根据锁资源划分服务器的磁盘区域;
31.分配模块,用于将磁盘区域切分为多个子空间并根据预设节点分配对应的子空间;
32.确定模块,用于当接收到io请求时,根据paxos算法对预设节点进行锁资源的竞争确定目标节点以实现锁请求的访问。
33.为解决上述技术问题,本发明还提供一种集群文件系统的访问装置,包括:
34.存储器,用于存储计算机程序;
35.处理器,用于执行计算机程序时实现如上述集群文件系统的访问方法的步骤。
36.为解决上述技术问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述集群文件系统的访问方法的步骤。
37.本发明提供的一种集群文件系统的访问方法,包括:获取集群文件系统的元数据块和集群对应的预设节点,其中预设节点为多个;将元数据块增加锁资源并根据锁资源划分服务器的磁盘区域;将磁盘区域切分为多个子空间并根据预设节点分配对应的子空间;当接收到io请求时,根据paxos算法对预设节点进行锁资源的竞争确定目标节点以实现锁请求的访问。该方法在块文件的数据io操作的基础上进行paxos算法以确定目标节点实现锁请求访问,整个过程中不依赖网络实现节点与节点之间的访问。io操作通过读写不受特定存储的限制,通过增加的锁区域用于节点间竞争锁资源,通过布局划分磁盘区域针对需要并发访问保护的元数据结构体,进而根据paxos算法基于内核块层接口直接下发io请求以便目标节点竞争锁资源。避免了现有的集群文件系统并发访问时无法同时兼顾不依赖网络和不受特定存储的问题,提高集群文件的稳定性和使用范围。
38.另外,本发明还提供了一种集群文件系统的访问装置及介质,具有如上述集群文
件系统的访问方法相同的有益效果。
附图说明
39.为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1为本发明实施例提供的一种集群文件系统的访问方法的流程图;
41.图2为本发明实施例提供的一种集群文件系统元文件的磁盘布局的示意图;
42.图3为本发明实施例提供的一种集群文件系统的访问装置的结构图;
43.图4为本发明实施例提供的另一种集群文件系统的访问装置的结构图。
具体实施方式
44.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
45.本发明的核心是提供一种群文件系统的访问方法、装置及介质,实现兼顾不依赖网络和不受特定存储,提高集群文件的稳定性和使用范围。
46.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
47.现有的基于“消息传递”策略的所方案依赖于集群内节点间消息互通,主要优势不依赖于特定存储,该方案的集权文件系统的稳定性取决于已有网络的稳定性,任何网络波动和压力都有可能会应影响集群的稳定性。基于scsi提供的高级指令caw实现的磁盘锁(vmfs)依赖存储设备提供的scsi caw锁语义,该方案优势是只依赖于存储链路且能够和数据通道共享存储链路,不受网络波动影响;一般来说存储链路均有专用通信链路,稳定性要优于通用网络。然而该方案也存在明显缺点,即依赖于特定的存储设备,scsi caw指令是scsi协议spc-3中提出的;而低端存储或较为老旧的存储服务器并不支持scsi caw指令,因此集群文件系统的应用范围会受到限制于特定硬件。需要说明的是,本发明提供的集群文件系统的访问方法,普遍适用于集群文件系统,常见的集群文件系统有gfs,vmfs,openvms files,ocfs2等,本发明均适用,不受专用通信网络环境的限制,也不依赖特定存储。
48.图1为本发明实施例提供的一种集群文件系统的访问方法的流程图,如图1所示,该方法包括:
49.s11:获取集群文件系统的元数据块和集群对应的预设节点,其中预设节点为多个;
50.任何文件系统中的数据分为数据和元数据。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode...)等等。在集群文件系统中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。
51.元数据管理有两种方式:集中式管理和分布式管理。集中式管理是指在系统中有一个节点专门司职元数据管理,所有元数据都存储在该节点的存储设备上。所有客户端对文件的请求前,都要先对该元数据管理器请求元数据。分布式管理是指将元数据存放在系统的任意节点并且能动态的迁移。对元数据管理的职责也分布到各个不同的节点上。大多数集群文件系统都采用集中式的元数据管理。因为集中式管理实现简单,一致性维护容易,在一定的操作频繁度内可以提供较满意的性能。缺点是单一失效点问题,若该服务器失效,整个系统将无法正常工作。而且,当对元数据的操作过于频繁时,集中的元数据管理成为整个系统的性能瓶颈。
52.分布式元数据管理相较于集中式管理,解决了单一失效点问题,而且性能不会随着操作频繁而出现瓶颈。本发明基于分布式元数据管理进行的访问方法。
53.一个集群中通常由多个节点组成,最初每个节点都是独立的,处于只包含自己的集权中,可以将独立的节点连接起来,组成一个集群。一个节点其实就是一个运行在集群模式下的服务器。
54.s12:将元数据块增加锁资源并根据锁资源划分服务器的磁盘区域;
55.需要说明的是,为了保证数据的最终一致性,需要很多的技术方案支持,例如分布式事务和分布式锁。为了保证一个方法或者属性在高并发情况下的同一时间只能被同一个线程执行,在传统单体应用单机部署的情况下,可以使用并发处理相关的功能进行互斥控制。但是,随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统后,由于分布式系统多线程、多进程并且分布在不同机器上,其需要跨机器的互斥机制来控制共享资源的访问。
56.不同服务的锁用不同的空间命名区分,不同元数据服务上锁空间命名的名字不同,元数据锁和数据锁的空间命名也不同,客户端理论上会用所有的服务发请求,其所客户端用空间命名来组织不同的锁链表。
57.分布式锁模块与元数据服务器中其他模块比较独立,保存了系统中所有已经向该元数据服务器申请的锁。当有新的锁请求到来时,会直接进入锁申请模块。锁模块会检查该资源上是否已经有锁,并检查锁是否存在冲突,以决定申请的锁是否会被授权。
58.锁资源,就是锁保护的对象。除了文件,还可以对象id等,一个锁资源对应于一个实际的实体,例如一个文件、一段数据、一个数据库等等,锁资源的对象也决定锁粒度,例如可以对整个元数据块加锁,也可以对元数据块中的一个属性加锁,前者的粒度显然会比后者粒度粗。
59.在一个应用第一次请求对资源进行加锁时,锁管理器会创建一个锁资源,锁资源与实际资源相关联,一个锁资源可能会与多个锁相关联,但是一个锁只能与一个锁资源关联。
60.对于每个锁资源会划分一个磁盘区域,由于基于内核块层接口,其重新设计集群文件系统元文件的磁盘布局,针对需要并发访问保护的元数据结构体,对于锁区域用于节点间竞争锁资源。
61.对于如何根据锁资源进行划分磁盘区域,可以根据锁资源的属性划分,也可以根据锁资源针对的集群节点的属性进行划分,本发明不做具体限定。
62.分布式锁的分类有多种,有互斥锁和共享锁,互斥锁包括非公平锁和公平锁。互斥
锁为同一时间只能有一个请求占有,无论该请求是读请求还是写请求。其中非公平锁是一个资源只能被一个线程所占有,当有另外的线程需要获取该资源时,必须监听等待,当占有该资源的线程释放该资源之后,其他线程才可以开始竞争该资源。公平锁利用有规则的进行获取锁资源,例如判断该节点是不是最小的节点,若是,则获取锁资源,若不是,则对前一个节点进行监听,获取锁的请求,处理完释放锁资源,然后通知下一个监听刚占有该资源的节点。共享锁,如果同时进来多个读请求,且是连续的,则该请求可以同时获取到锁。
63.s13:将磁盘区域切分为多个子空间并根据预设节点分配对应的子空间;
64.将磁盘区域切分为多个子空间,其空间的大小可以相同也可以不同,为了划分方便,优选地将多个子空间的大小划分邢童,根据预设节点的个数分配对应的子空间,也就是每个预设节点分配一个子空间。
65.s14:当接收到io请求时,根据paxos算法对预设节点进行锁资源的竞争确定目标节点以实现锁请求的访问。
66.在步骤s13中的每个预设节点分配一个子空间。当接收到io请求时,根据paxos算法对预设节点进行锁资源的竞争确定目标节点以实现锁请求的访问。在根据paxos算法对预设节点进行锁资源的竞争时,各自的预设节点会修改自己的子空间并读取其他预设节点的子空间。
67.paxos算法是一种基于消息传递且具有高容错性的一致性算法,其解决的问题是如何正确快速在一个分布式系统中对某个数据达成一致。在一个paxos算法系统中,所有节点分为3类,提议者、接受者和学习者。提议者是提出方案,提议信息包括提案编号和提议的值;接受者是参与决策,回应提议者的提案,收到提议者的请求可以接受提案,若提案获得接受者的接受,则称该提案被批准。学习者,不参与决策,从提议者或者接受者的学习中最新达成一致的提案。
68.通过paxos算法在多个预设节点中确定目标节点,进而获取锁资源实现锁请求的访问。提高超融合及虚拟化系统的稳定性,降低系统的成本,有效提高产品的竞争力。
69.本发明提供的一种集群文件系统的访问方法,包括:获取集群文件系统的元数据块和集群对应的预设节点,其中预设节点为多个;将元数据块增加锁资源并根据锁资源划分服务器的磁盘区域;将磁盘区域切分为多个子空间并根据预设节点分配对应的子空间;当接收到io请求时,根据paxos算法对预设节点进行锁资源的竞争确定目标节点以实现锁请求的访问。该方法在块文件的数据io操作的基础上进行paxos算法以确定目标节点实现锁请求访问,整个过程中不依赖网络实现节点与节点之间的访问。io操作通过读写不受特定存储的限制,通过增加的锁区域用于节点间竞争锁资源,通过布局划分磁盘区域针对需要并发访问保护的元数据结构体,进而根据paxos算法基于内核块层接口直接下发io请求以便目标节点竞争锁资源。避免了现有的集群文件系统并发访问时无法同时兼顾不依赖网络和不受特定存储的问题,提高集群文件的稳定性和使用范围。
70.在上述实施例的基础上,步骤s12中的根据锁资源划分服务器的磁盘区域,包括:
71.获取集群对应的预设节点个数和集群支持的最大节点数;
72.根据预设节点个数和最大节点数对服务器的磁盘进行划分得到锁资源对应的磁盘区域。
73.图2为本发明实施例提供的一种集群文件系统元文件的磁盘布局的示意图,如图2
所示,在元数据块处增加锁资源,以inode元数据为例,锁资源紧邻inode元数据块,占用1个或多个文件系统块(filesystem block)。
74.服务器的磁盘区域的大小根据锁资源对应的集群属性进行划分,集群的预设节点的具体个数和集群支持的最大节点数相关。元数据块可以是inode,或者dentry等,本发明不做具体限定。
75.本发明实施例提供的获取集群对应的预设节点个数和集群支持的最大节点数;根据预设节点个数和最大节点数对服务器的磁盘进行划分得到锁资源对应的磁盘区域。对锁资源进行磁盘区域的划分,便于节点间竞争锁资源。
76.在上述实施例的基础上,步骤s13中的根据预设节点分配对应的子空间,包括:
77.在多个子空间中,将首个子空间作为锁资源的状态空间;
78.在除状态空间之外的子空间中,根据预设节点分配对应的子空间,其中一个预设节点对应一个子空间。
79.如图2所示,将磁盘区域划分为多个子空间,其空间的大小可以为512k或者4k,不做具体限定,可根据实际情况进行空间大小的限定。需要说明的是,划分多个子空间,对应首个子空间(修改节点)作为锁资源的状态描述,不进行预设节点的分配,其余的子空间根据一个预设节点对应一个子空间进行分配。
80.锁资源的状态描述,总共有四种:无锁状态、偏向锁、轻量级锁和重量级锁。随着锁的竞争,锁可以从偏向锁升级到轻量级锁,再升级的重量级锁。每个对象一开始都是无锁的,随着线程间争夺锁,越激烈,锁的级别越高,并且锁只能升级不能降级。
81.锁的升级过程:对象在刚创建时为无锁状态;当有一个线程使用该对象的时候,此时升级为偏向锁,在对象头中标记为偏向锁,当下次该线程再次访问该对象时,直接使用;当有两个线程竞争该对象的时候,此时锁从偏向锁升级为轻量级锁;当有更多的线程竞争该对象的时候,此时轻量级锁升级为重量级锁。
82.本实施例提供的在多个子空间中,将首个子空间作为锁资源的状态空间;在除状态空间之外的子空间中,根据预设节点分配对应的子空间,其中一个预设节点对应一个子空间,便于并发访问保护的元数据结构体。
83.在上述实施例的基础上,子空间存储预设节点的投票信息。
84.基于后续采用paxos算法,其paxos算法中主要通过投票信息确定各预设节点的目标节点,故子空间存储投票信息,还可以存储其他数据信息,本发明不做具体限定,但至少包括投票信息。
85.本实施例提供的子空间存储预设节点的投票信息,便于后续确定目标节点以实现锁请求的访问。
86.在上述实施例的基础上,步骤s14中的根据paxos算法对预设节点进行锁资源的竞争确定目标节点,包括:
87.获取各预设节点的投票信息;
88.根据各投票信息与paxos算法对各预设节点进行投票处理确定目标节点;
89.根据目标节点进行锁资源的获取。
90.可以理解的是,提议者提议一个值,用于投票表决,绝大多数场景中,集群中收到客户端请求的节点,才是提议者.该角色代表的是接入和协调功能,收到客户端请求后,发
起二阶段提交,进行共识协商。接受者对每个提议的值进行投票,并存储接受的值,比如a、b、c三个节点。一般来说,集群中的所有节点都在扮演接受者的角色,参与共识协商,并接受和存储数据。接受者代表投票协商和存储数据,对提议的值进行投票,并接受达成共识的值,存储保存。学习者被告知投票的结果,接受达成共识的值,存储保存,不参与投票的过程。一般来说,学习者是数据备份节点,比如“master-slave”模型中的slave,被动地接受数据,容灾备份.学习者代表存储数据,不参与共识协商,只接受达成共识的值,存储保存。
91.例如,两个客户端作为倡议者,3个节点作为接受者,客户端1的想要对节点中的key为x的数据将value设置为3,客户端2的想要对节点中的key为x的数据将value设置为5。提议者发送给接受者的信息我们称为提案,结构为[n,v],n为提案编号(相当于事务id,后发起的提案编号越大),v为提议值(写入db的值)。在准备阶段,两个提议者分别向所三个接受者发送包含提案编号的准备请求,准备请求中只包含提案编号。各个接受者节点对于先收到的准备请求的响应。由于之前没有通过任何提案,a,b,c都会返回“尚无提案”的响应。但是有所不同的是,a,b会告诉提议者,不再响应提案编号小于或等于1的准备请求,c会告诉提议者,不再响应提案编号小于或等于5的准备请求,也就是说每个节点之后接受比当前提案编号大的请求。
[0092]
接下来是各个接受者第二次收到准备请求的响应。a,b收到的请求,编号为5大于或等于1,并且此时两个节点没有通过任何提案,所以返回“尚无提案”响应,并不再响应提案编号小于或等于5的准备请求,c收到的请求,编号为1《5,所以丢弃该准备请求,不做响应。
[0093]
在接受阶段,两个提议者节点在收到大多数节点的准备响应之后,会分别发送接受请求。对于客户端1来说,根据响应中提案编号最大的提案的值,设置接受请求中的值。(客户端1只有来自a,b的准备响应),因为响应均为“尚无提案”,所以客户端1会将自己的提议值:3,作为提案值,然后发送接受请求[n,v]:[1,3]。对于客户端2来说,根据响应中提案编号最大的提案的值,设置接受请求中的值。(客户端2来自a,b,c的准备响应),因为响应均为“尚无提案”,所以客户端1会将自己的提议值:7,作为提案值,然后发送接受请求[n,v]:[5,7]。
[0094]
三个接受者节点收到两个提议者的接受请求,会进行处理:对于a,b,c节点来说,它们对于请求[1,3],都不会接受,因为提案编号《5(最小提案编号)。它们对于请求[5,7]都会接受,因为提案编号大于或等于5,通过提案之后,将提案值:7作为x的value。
[0095]
根据提案编号的大小,接受者保证三个承诺,具体来说:如果准备请求的提案编号,小于等于接受者已经响应的准备请求的提案编号,那么接受者将承诺不响应这个准备请求;如果接受请求的提案编号,小于接受者已经响应的准备请求的提案编号,那么接受者将承诺不通过这个提案;如果接受者之前有通过提案,那么接受者将承诺,会在准备请求的响应中,包含已经通过的最大编号的提案信息,以上是针对basic paxos算法的内容进行了阐述。本发明实施例对于paxos算法可以为basic paxos,也可以为multi-paxos算法,不做具体限定,可以根据具体情况进行设定。
[0096]
multi-paxos算法,领导者节点作为唯一提议者,就不会存在多个提议者同时提交提案的情况,也不存在提案冲突。主节点是通过执行basic paxos算法,进行投票选举产生的,并且在运行过程中,主节点会通过不断续租的方式来延长租期(lease)。比如在实际场
景中,几天内都是同一个节点作为主节点。如果主节点故障了,那么其他的节点又会投票选举出新的主节点,也就是说主节点是一直存在的,而且是唯一的。所有的读请求和写请求都由主节点来处理。当主节点从客户端接收到写请求后,作为提议者,执行basic paxos实例,将数据发送给所有的节点,并且在大多数的服务器接受了这个写请求之后,再响应给客户端成功。当主节点接收到读请求后,处理较简单,只需要查询本地数据,然后返回给客户端即可。
[0097]
本发明实施例提供的获取各预设节点的投票信息,根据各投票信息与paxos算法对各预设节点进行投票处理确定目标节点,根据目标节点进行锁资源的获取。通过paxos算法的逻辑实现资源竞争获取。
[0098]
在上述实施例的基础上,该方法还包括:
[0099]
对各预设节点设置对应的心跳数据;
[0100]
根据心跳数据确定各预设节点的节点状态;
[0101]
当目标节点的节点状态为工作状态,且超出预设时间时,则将目标节点进行清理并释放锁资源以便其余节点获取锁资源。
[0102]
可以理解的是,在长连接下,可能很长一段时间都没有数据往来。理论上说,该连接是一直保持连接的,但是实际情况中,如果中间节点出现什么故障是难以知道的。更致命的是,有的节点(防火墙)会自动把一定时间之内没有数据交互的连接给断掉。此时可以使用心跳包,来维持长连接以及保活。
[0103]
心跳机制就是每隔几分钟发送一个固定信息给服务端,服务端收到后回复一个固定信息如果服务端几分钟内没有收到客户端信息则视客户端断开。发包方可以是客户也可以是服务端,具体看哪边实现更方便合理。
[0104]
心跳包的发送通常包括两种技术,一种是应用层自身实现的心跳包,一种是使用so_keepalive套接字选项。前者是由应用程序自己发送心跳包来检测连接是否正常,服务器每隔一定时间向客户端发送一个短小的数据包,然后启动一个线程,在线程中不断检测客户端的回应,如果在一定时间内没有收到客户端的回应,即认为客户端已经掉线;同样,如果客户端在一定时间内没有收到服务器的心跳包,则认为连接不可用。后者是在tcp的机制里面,本身是存在有心跳包的机制的,也就是tcp的选项.不论是服务端还是客户端,一方开启保持存活功能后,就会自动在规定时间内向对方发送心跳包,而另一方在收到心跳包后就会自动回复,以告诉对方仍然在线。
[0105]
每个预设节点设置心跳数据以在被其他预设节点读取过程中得知该预设节点的节点状态,当目标节点的节点状态为工作状态,且超出预设时间时,则说明目标节点可能处于离线场景,将目标节点进行清理并释放锁资源以便其余节点获取锁资源。
[0106]
具体地,离线场景下的目标节点可能出现该节点宕机或者io故障时正在恢复,通过心跳数据确定该节点状态。当目标节点处于离线场景时,为了提高锁请求的访问效率,可以根据paxos算法对剩余节点再次选取另一个目标节点以进行锁资源的竞争获取。
[0107]
本实施例提供的对各预设节点设置对应的心跳数据;根据心跳数据确定各预设节点的节点状态;当目标节点的节点状态为工作状态,且超出预设时间时,则将目标节点进行清理并释放锁资源以便其余节点获取锁资源,提高锁请求的访问效率,用于锁空间的分配释放,以便其他节点竞争获取锁资源。
[0108]
在上述实施例的基础上,该方法还包括:
[0109]
当目标节点释放锁资源结束时,输出提示信息。
[0110]
可以理解的是,为了让其他节点尽快获取竞争获取锁资源,当目标节点释放锁资源结束时,输出提示信息。提示信息的形式可以为语音信息,也可以是界面的页面显示框的弹出,或者程序运行过程中的结果形式输出,或者以组合的形式进行提示信息的输出。
[0111]
本发明实施例提供的当目标节点释放锁资源结束时,输出提示信息。及时提醒用户进行后续的其他节点的锁请求访问,提高访问效率。
[0112]
上述详细描述了集群文件系统的访问方法对应的各个实施例,在此基础上,本发明还公开与上述方法对应的集群文件系统的访问装置,图3为本发明实施例提供的一种集群文件系统的访问装置的结构图。如图3所示,集群文件系统的访问装置包括:
[0113]
获取模块11,用于获取集群文件系统的元数据块和集群对应的预设节点,其中预设节点为多个;
[0114]
划分模块12,用于将元数据块增加锁资源并根据锁资源划分服务器的磁盘区域;
[0115]
分配模块13,用于将磁盘区域切分为多个子空间并根据预设节点分配对应的子空间;
[0116]
确定模块14,用于当接收到io请求时,根据paxos算法对预设节点进行锁资源的竞争确定目标节点以实现锁请求的访问。
[0117]
由于装置部分的实施例与上述的实施例相互对应,因此装置部分的实施例请参照上述方法部分的实施例描述,在此不再赘述。
[0118]
本发明提供的一种集群文件系统的访问装置,包括:获取集群文件系统的元数据块和集群对应的预设节点,其中预设节点为多个;将元数据块增加锁资源并根据锁资源划分服务器的磁盘区域;将磁盘区域切分为多个子空间并根据预设节点分配对应的子空间;当接收到io请求时,根据paxos算法对预设节点进行锁资源的竞争确定目标节点以实现锁请求的访问。该装置在块文件的数据io操作的基础上进行paxos算法以确定目标节点实现锁请求访问,整个过程中不依赖网络实现节点与节点之间的访问。io操作通过读写不受特定存储的限制,通过读写根据增加的锁区域用于节点间竞争锁资源,通过布局划分磁盘区域针对需要并发访问保护的元数据结构体,进而根据paxos算法基于内核块层接口直接下发io请求以便目标节点竞争锁资源。避免了现有的集群文件系统并发访问时无法同时兼顾不依赖网络和不受特定存储的问题,提高集群文件的稳定性和使用范围。
[0119]
图4为本发明实施例提供的另一种集群文件系统的访问装置的结构图,如图4所示,该装置包括:
[0120]
存储器21,用于存储计算机程序;
[0121]
处理器22,用于执行计算机程序时实现集群文件系统的访问方法的步骤。
[0122]
本实施例提供的集群文件系统的访问装置可以包括但不限于智能手机、平板电脑、笔记本电脑或者台式电脑等。
[0123]
其中,处理器22可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器22可以采用数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器22也可以包括主处理器和协处理器,主
处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(central processing unit,cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器22可以集成有图像处理器(graphics processing unit,gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器22还可以包括人工智能(artificial intelligence,ai)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0124]
存储器21可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器21还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器21至少用于存储以下计算机程序211,其中,该计算机程序被处理器22加载并执行之后,能够实现前述任一实施例公开的集群文件系统的访问方法的相关步骤。另外,存储器21所存储的资源还可以包括操作系统212和数据213等,存储方式可以是短暂存储或者永久存储。其中,操作系统212可以包括windows、unix、linux等。数据213可以包括但不限于集群文件系统的访问方法所涉及到的数据等等。
[0125]
在一些实施例中,集群文件系统的访问装置还可包括有显示屏23、输入输出接口24、通信接口25、电源26以及通信总线27。
[0126]
领域技术人员可以理解,图4中示出的结构并不构成对集群文件系统的访问装置的限定,可以包括比图示更多或更少的组件。
[0127]
处理器22通过调用存储于存储器21中的指令以实现上述任一实施例所提供的集群文件系统的访问方法。
[0128]
本发明提供的一种集群文件系统的访问装置,包括:获取集群文件系统的元数据块和集群对应的预设节点,其中预设节点为多个;将元数据块增加锁资源并根据锁资源划分服务器的磁盘区域;将磁盘区域切分为多个子空间并根据预设节点分配对应的子空间;当接收到io请求时,根据paxos算法对预设节点进行锁资源的竞争确定目标节点以实现锁请求的访问。该装置在块文件的数据io操作的基础上进行paxos算法以确定目标节点实现锁请求访问,整个过程中不依赖网络实现节点与节点之间的访问。io操作通过读写不受特定存储的限制,通过读写根据增加的锁区域用于节点间竞争锁资源,通过布局划分磁盘区域针对需要并发访问保护的元数据结构体,进而根据paxos算法基于内核块层接口直接下发io请求以便目标节点竞争锁资源。避免了现有的集群文件系统并发访问时无法同时兼顾不依赖网络和不受特定存储的问题,提高集群文件的稳定性和使用范围。
[0129]
进一步的,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器22执行时实现如上述集群文件系统的访问方法的步骤。
[0130]
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0131]
对于本发明提供的一种计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述集群文件系统的访问方法相同的有益效果。
[0132]
以上对本发明所提供的一种集群文件系统的访问方法、集群文件系统的访问装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
[0133]
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献