一种磁阵共享文件系统及其实现方法

文档序号:7648947阅读:382来源:国知局
专利名称:一种磁阵共享文件系统及其实现方法
技术领域
本发明涉及一种磁阵共享文件系统及其实现方法。
背景技术
IPTV(高清晰电视)点播中,会发生大量文件的读写问题,因而需要有一套高效的文件系统。在设备的应用中,国外有一种文件系统,但这种文件系统有个缺陷基于底层,只支持光纤,不支持以太网。此外,使用此文件系统,还涉及成本问题。而在国内,尚未发现可应用的类似的共享软件。

发明内容
本发明所要解决的技术问题是提供一种磁阵共享文件系统及其实现方法,使其同时支持光纤、以太网,降低成本,并支持磁阵容量的平滑升级。
为解决上述技术问题,本发明是通过以下技术方案实现的一种磁阵共享文件系统,包括服务器和客户端;服务器负责文件的创建、删除和文件块的分配回收,包括主用服务器和备用服务器;客户端负责文件块的读取和在所申请的文件块上存储。
其中,服务器所在的刀片有两对网卡;其中一对网卡用于服务器的主备通信,另一对网卡用于刀片的对外通信。
一种磁阵共享文件系统的实现方法,包括文件读取方法、文件存盘方法、服务器的主备方法;所述文件读取方法包括以下步骤a1、客户端发送文件打开命令;a2、服务器查找文件节点信息并返回文件大小和数据编号;a3、客户端收到响应后直接访问设备读取数据;a4、客户端读文件结束,向服务器发送结束请求,并接收其返回的响应信息;所述文件存盘方法包括以下步骤b1、客户端向服务器发送打开文件请求;b2、服务器查找文件节点信息,申请写锁,成功后返回文件大小和数据块编号;b3、客户端根据收到响应后开始写数据信息;b4、客户端写文件结束,向服务器发送结束请求,服务器回收数据块并返回响应消息;所述服务器的主备方法包括以下步骤c1、服务器A上电,向服务器B发送MASTER请求;c2、服务器B收到消息后,若其不是上电状态,则服务器B成为主机,返回FAIL消息;否则跟服务器A比较启动时间,启动时间小的为主机;若相同则比较MAC地址,MAC地址大的为主机;然后返回响应消息;c3、服务器A根据所回消息成为主机或备机;若超时则重发消息两次,均超时则服务器A成为主机。
其中,所述文件读取方法中,步骤a1还包括若文件没有在客户端打开,则重新发送请求到服务器,否则增加读引用计数;步骤a2还包括增加读引用计数并记录客户端。
其中,所述文件读取方法中,步骤a3还包括若已读到文件末尾并且文件信息已缓存一段时间,客户端可重新向服务器发出读取文件信息的请求,服务器收到后,返回相关文件信息。
其中,所述文件存盘方法中,步骤b2还包括服务器如果需要则创建文件,并向客户端返回响应消息。
其中,所述文件存盘方法中,步骤b3进一步包括(1)客户端开始写数据信息,若不需分配数据块,则直接处理;若需要分配新的数据块,则向服务器发出数据块分配请求;(2)服务器收到请求后,从FAT表中找到空闲的FAT表项,添加到文件原来的末尾表项,并将自己标上EOF标志,再向客户端返回响应消息。
其中,所述文件存盘方法的步骤b3中,客户端在写文件过程中,随时通知服务器当前文件的长度,在文件关闭时更新文件长度,并定时向服务器声明对锁的拥有。
其中,所述服务器的主备方法中,服务器在进入主备状态后,将自己的状态和状态切换时间写入磁盘,之后将通过网络检测对方的心跳,心跳带回对方的心跳信息,在判定网络不通时开始启动磁盘交换心跳信息确认对方崩溃还是纯粹网络问题。
其中,所述服务器的主备方法中还包括人工对主备机倒换的方法,具体包括A、人工命令主备机倒换,主机判断备机不在线则拒绝倒换;若备机在线,则向备机发送主备倒换通知消息;B、主机保存数据,降为备机,并记录主降备的时间,开始休眠;C、原备机检测到对方成为备机,则自己变成主机,并同步数据;D、已休眠的备机醒来后检测对方是否为主机,如是则成功,如不是,则自己重新切换为主机;若备机检测不到主机则自动切换为主机。
其中,服务器的主备方法中,所述心跳消息包括当前计算机状态和目前处理的业务数,以及最后一次处理业务的时间和服务器的启动时间。
本发明具有如下有益效果1)本发明使得磁阵空间由一主用的FLR(文件定位服务器)通过一个系统分区统一管理,存放设备信息,文件管理和数据块分配信息等,客户端并发在数据分区读写数据。数据块分配和文件读写两部分工作分开,保证了效率。
2)为防止FLR崩溃造成不可预料的后果,本发明采用主备FLR,这保证了系统的可靠性。
3)采用网卡通信及读对方磁盘心跳两种方式进行主备通信,通过竞争机制来确定主备FLR,保证了系统的健壮性。
4)本系统还提供了标准接口,使磁阵容量可平滑升级;系统对设备名操作,与中间接口无关,既支持光纤又支持以太网,保证了系统的兼容性。


图1所示本发明的读取文件的方法流程图;图2所示本发明的存储文件的方法流程图;图3所示本发明的FLR主备竞争和倒换流程图。
具体实施例方式
下面结合附图和具体实施例对本发明作进一步详细的描述本文件系统采用服务器一客户端结构。系统使用一个FLR来统一管理磁阵设备,一个文件被分片存放在各个磁阵设备上,其他刀片(计算机)在访问文件时将向FLR查询文件分片的位置,在得知分片位置后刀片可直接访问设备读写数据。这样,每个刀片都能对每个磁阵读写数据,刀片使用块设备方式直接读写磁盘设备时,一个刀片写的数据能被其他刀片读出。用参数控制每个文件第一个数据块的分配,每分配一个数据块就指向下一个设备,由此保证所有文件的第一个分片均匀分布在各个设备上。为防止服务器崩溃等因素造成严重的后果,服务器端采用主备方式,通过竞争机制确定哪个FLR为主用服务器,这样大大提高了系统的容错、容灾性能,提高了可靠性。
该系统的实现方法包括FLR及客户端的实现,主要包括文件读取、文件存盘、主备FLR等。FLR所在的刀片有两对网卡,FLR的主备通信通过其中的一对网卡进行,另一对网卡用于刀片的对外通信。为准确识别对端FLR的运行状态,在主备FLR的网络通道不通时,将利用磁盘来进一步确认,尽可能避免出现双主机的现象。FLR有各自的写空间,并读对方的写空间,写数据时将带上自己的心跳数,读方连续读两到三次如发现心跳数递增,则认为对方是活的,可以使用其它的数据。
如图1所示,文件读取包括以下步骤101、客户端发出打开文件的命令,若文件没有在客户端打开,则发送请求到FLR,否则增加读引用计数。
102、FLR查找文件节点信息,返回文件大小和数据块编号,并增加读引用计数和记录客户端。
103、调用READ来读取数据,如果已读到末尾并且文件信息已缓存一定时间,可重新向FLR发出读取文件信息的请求,否则将直接处理。
104、FLR若收到客户端文件信息的请求,则返回相关文件信息。
105、客户端读文件结束,CLOSE结束读流程,减少读引用计数。如果无进程打开此文件则发送CLOSE到FLR。
106、FLR收到CLOSE请求,回收数据块,同时给客户端回响应信息。
如图2所示,文件存盘包括以下步骤201、文件系统客户端在启动时将自己从系统分区读出系统块和设备信息块。要打开文件时向FLR发出打开文件请求。
202、FLR查找文件节点信息,申请写锁,成功则返回文件大小和数据块编号,如果需要则创建文件。然后向客户端回响应信息。
203、客户端收到响应,开始写数据信息,若不需分配数据块,就直接处理;若需分配新的数据块,就向FLR发出数据块分配请求。
204、FLR收到请求,从FAT表中找到空闲的FAT表项,添加到文件原来的末尾表项,并将自己标上EOF标志,然后向客户端回响应消息。
205、客户端在写文件过程中,将随时通知当前文件的长度,在文件关闭时也将更新文件长度。在这过程中,定时向FLR声明对锁的拥有。
206、写文件结束,向FLR发出请求。
207、FLR收到请求,回收数据块,向客户端回响应消息。
如图3所示,FLR的主备包括以下步骤301、FLR A上电后,向FLR B发出MASTER请求。
302、FLR B收到消息后,判断若自己不是上电状态,则自己成为主机,回FAIL消息。否则跟自己比较启动时间,启动时间小的为主机;如相同则再比较MAC地址,MAC地址大的为主机。然后给FLR A回响应消息。
303、FLR A根据所回消息成为主机或备机;如超时则重发消息两次,都超时则自己成为主机。
上电状态时FLR发送的消息将同时通过网络和磁盘进行,同时等待网络回应和读对方磁盘的信息。
在进入主备状态后,FLR将自己的状态和状态切换时间写入磁盘,之后将通过网络检测对方的心跳,心跳将带回对方的心跳信息,在判定网络不通时将开始启动磁盘交换心跳信息确认对方崩溃还是纯粹网络问题。
其中,心跳消息包括当前计算机状态和目前处理的业务数以及最后一次处理业务的时间和FLR的启动时间。
以下假设稳定后FLR A为主用、FLR B为备用,人工倒换主备机包括以下步骤304、人工对主备机进行倒换,主机判断备机不在线则拒绝倒换;若备机在线,则向备机发送主备倒换通知消息。
305、主用FLR A保存数据,降为备机,并记录主降备时间,开始休眠。
306、FLR B检测到对方成为备机,自己变成主机,并同步数据。
307、FLR A醒来后检测对方是否为主机,如是则成功,如不是,则自己重新切换为主机。
若检测出双主机,一方将按竞争条件自动降为备机。
在本实施例中,实现步骤包括1)客户端发出命令打开zxiptv.dat文件,因有写操作,最终将OPEN命令发到FLR。
2)FLR查找zxiptv.dat文件,若不存在,则创建新文件,记录相关信息。FLR申请此文件的写锁,若成功,则FLR向客户端返回此文件的fileid,以及所有的数据块编号和文件大小。
打开的文件将记录如下信息fileid,filename(文件名)、readcount(读取的次数)、writelock(写锁)、client_in_use[MAX_CLIENT](引用该文件的客户端IP地址)。
其中,fileid是FLR用作记录打开文件的标识,客户端用此标识来进行文件的后继操作,fileid由filehandle、time和cic组成,filehandle最多有65536个,由FLR统一分配,time是系统时间,cic是校验码,filehandle在分配和释放时cic值会加一,防止客户端用过时的标识操作到错误的文件。每个被打开的文件会分配一个fileid,后面的打开操作将增加文件的使用计数。
3)客户端调用WRITE写数据块。若需申请新的数据块,将此zxiptv.dat的fileid传给FLR,再次请求数据块。
4)FLR根据fileid为zxiptv.dat文件申请新数据块,向客户端返回响应消息。
5)客户端写数据过程中,定时向FLR声明zxiptv.dat处于激活状态,且告诉FLR文件的大小。
6)不重复步骤3至步骤5,直到客户端写zxiptv.dat文件完成。
7)客户端将文件写完后,CLOSE结束读写流程,将fileid传给FLR,发出CLOSE请求。
8)FLR更新zxiptv.dat文件长度,向客户端回响应消息。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种磁阵共享文件系统,其特征在于,包括服务器和客户端;服务器负责文件的创建、删除和文件块的分配回收,包括主用服务器和备用服务器;客户端负责文件块的读取和在所申请的文件块上存储。
2.如权利要求1所述的磁阵共享文件系统,其特征在于,服务器所在的刀片有两对网卡;其中一对网卡用于服务器的主备通信,另一对网卡用于刀片的对外通信。
3.一种磁阵共享文件系统的实现方法,其特征在于,包括文件读取方法、文件存盘方法、服务器的主备方法;所述文件读取方法包括以下步骤a1、客户端发送文件打开命令;a2、服务器查找文件节点信息并返回文件大小和数据编号;a3、客户端收到响应后直接访问设备读取数据;a4、客户端读文件结束,向服务器发送结束请求,并接收其返回的响应信息;所述文件存盘方法包括以下步骤b1、客户端向服务器发送打开文件请求;b2、服务器查找文件节点信息,申请写锁,成功后返回文件大小和数据块编号;b3、客户端根据收到响应后开始写数据信息;b4、客户端写文件结束,向服务器发送结束请求,服务器回收数据块并返回响应消息;所述服务器的主备方法包括以下步骤c1、服务器A上电,向服务器B发送MASTER请求;c2、服务器B收到消息后,若其不是上电状态,则服务器B成为主机,返回FAIL消息;否则跟服务器A比较启动时间,启动时间小的为主机;若相同则比较MAC地址,MAC地址大的为主机;然后返回响应消息;c3、服务器A根据所回消息成为主机或备机;若超时则重发消息两次,均超时则服务器A成为主机。
4.如权利要求3所述的磁阵共享文件系统的实现方法,其特征在于,所述文件读取方法中,步骤a1还包括若文件没有在客户端打开,则重新发送请求到服务器,否则增加读引用计数;步骤a2还包括增加读引用计数并记录客户端。
5.如权利要求3所述的磁阵共享文件系统的实现方法,其特征在于,所述文件读取方法中,步骤a3还包括若已读到文件末尾并且文件信息已缓存一段时间,客户端可重新向服务器发出读取文件信息的请求,服务器收到后,返回相关文件信息。
6.如权利要求3所述的磁阵共享文件系统的实现方法,其特征在于,所述文件存盘方法中,步骤b2还包括服务器如果需要则创建文件,并向客户端返回响应消息。
7.如权利要求3所述的磁阵共享文件系统的实现方法,其特征在于,所述文件存盘方法中,步骤b3进一步包括(1)客户端开始写数据信息,若不需分配数据块,则直接处理;若需要分配新的数据块,则向服务器发出数据块分配请求;(2)服务器收到请求后,从FAT表中找到空闲的FAT表项,添加到文件原来的末尾表项,并将自己标上EOF标志,再向客户端返回响应消息。
8.如权利要求3所述的磁阵共享文件系统的实现方法,其特征在于,所述文件存盘方法的步骤b3中,客户端在写文件过程中,随时通知服务器当前文件的长度,在文件关闭时更新文件长度,并定时向服务器声明对锁的拥有。
9.如权利要求3所述的磁阵共享文件系统的实现方法,其特征在于,所述服务器的主备方法中,服务器在进入主备状态后,将自己的状态和状态切换时间写入磁盘,之后将通过网络检测对方的心跳,心跳带回对方的心跳信息,在判定网络不通时开始启动磁盘交换心跳信息确认对方崩溃还是纯粹网络问题。
10.如权利要求3所述的磁阵共享文件系统的实现方法,其特征在于,所述服务器的主备方法中还包括人工对主备机倒换的方法,具体包括A、人工命令主备机倒换,主机判断备机不在线则拒绝倒换;若备机在线,则向备机发送主备倒换通知消息;B、主机保存数据,降为备机,并记录主降备的时间,开始休眠;C、原备机检测到对方成为备机,则自己变成主机,并同步数据;D、已休眠的备机醒来后检测对方是否为主机,如是则成功,如不是,则自己重新切换为主机;若备机检测不到主机则自动切换为主机。
11.如权利要求3所述的磁阵共享文件系统的实现方法,其特征在于,服务器的主备方法中,所述心跳消息包括当前计算机状态和目前处理的业务数,以及最后一次处理业务的时间和服务器的启动时间。
全文摘要
本发明公开了一种磁阵共享文件系统及其实现方法,该系统包括服务器和客户端;服务器负责文件的创建、删除和文件块的分配回收,包括主用服务器和备用服务器;客户端负责文件块的读取和在所申请的文件块上存储。系统的实现方法包括文件读取方法、文件存盘方法、服务器的主备方法。由于本系统的服务器端采用主备方式,可大大提高容错、容灾性能,提高可靠性;又由于系统基于顶层,对设备操作,这样既支持光纤又支持以太网。
文档编号H04N7/14GK101087237SQ20071007636
公开日2007年12月12日 申请日期2007年7月3日 优先权日2007年7月3日
发明者陈官海, 王日红 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1