一种弱中心的共享式私有云存储系统的制作方法

文档序号:11287190阅读:268来源:国知局
一种弱中心的共享式私有云存储系统的制造方法与工艺

本发明涉及云存储技术,尤其涉及一种弱中心的共享式私有云存储系统。



背景技术:

云存储是一种新兴的网络存储技术,云存储系统是一个多存储设备、多应用、多服务协同工作的集合体,任何一个单点的存储系统都不是云存储。云存储系统由多个存储设备构成的,不同存储设备之间就通过集群技术、分布式文件系统和网格计算等技术,实现多个存储设备之间的协同工作,多个存储设备可以对外提供同一种服务,提供更大更强更好的数据访问性能。

通常情况下,云存储系统各存储设备之间通过高速网络连接,有着复杂的存储架构,其部署维护相对困难,构建一套私有云存储系统具有较高的门槛。

现有的私有云存储系统一般是对等网络或者是集中式网络,其中对等网络上的各节点不是相互信任的,集中式的网络数据存储在中心节点上。但是,面对大量的互相信任的网络节点集合,且节点间具有稳定的但是速度首先的网络连接的时候,现有的对等网络私有云或者集中式私有云就不适用了。



技术实现要素:

为克服现有技术的不足,面向大量的互相信任的网络节点,且节点间的具有稳定的但是速度受限的网络连接的集合,本发明提出一种弱中心的共享式私有云存储系统。

本发明的技术方案是这样实现的:

一种弱中心的共享式私有云存储系统,包括

一个服务器(server)节点和多个客户(client)节点,所述客户节点和服务器节点通过受限网络相连,所述客户节点以区域进行划分,每个区域包括至少一个客户节点,每个客户节点包括一个存储器,且通过高速网络连接至少一个用户计算机,其中所述服务器节点用于保存系统所有文件信息、用户计算机和客户节点的元数据,向所述客户节点下发调度指令;所述客户端用于文件存储,响应用户文件的上传和下载请求,执行服务器节点下发的调度任务,向服务器端上报本地数据及本地数据变动。

进一步地,所述服务器节点还用于根据备份策略生成相应的备份任务,并向所述客户节点下发调度指令,所述客户节点执行备份任务。

进一步地,所述服务器节点包括文件表和文件索引表,其中所述文件表用于记录所有客户节点上存储的文件信息,所述文件索引表用于记录所述文件正副本和客户节点的存储映射关系。

更进一步地,所述文件信息包括文件名、所属用户、文件创建时间、文件大小和文件md5码,文件的正副本被视为同一个文件。

本发明的有益效果在于,与现有技术相比,本发明中每个用户持有专属的密钥,中心节点掌握用户的专属密钥,用户向节点存储文件时,由系统对文件进行加密存储,保证用户数据安全;本发明中,除了服务器节点外,各客户节点功能相同,均可提供存储服务,是服务使用者的同时,也可以是服务提供者。

附图说明

图1是本发明一种弱中心的共享式私有云存储系统结构图;

图2是本发明中各模块协作示意图;

图3是本发明中文件存储结构示意图;

图4是本发明系统处理流程图;

图5是本发明中客户节点处理流程图;

图6是本发明中服务器节点处理流程图;

图7是本发明中一个典型的服务器节点处理流程图。

具体实施方式

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

本发明一种弱中心的共享式私有云存储系统结构类似与一个松散的c/s架构,如图1所示,包括一个服务器(server)节点和多个客户(client)节点,所述客户节点和服务器节点通过受限网络相连,所述客户节点以区域进行划分,每个区域包括至少一个客户节点,每个客户节点包括一个存储器,且通过高速网络连接至少一个用户计算机,其中所述服务器节点用于保存系统所有文件信息、用户计算机和客户节点的元数据,向所述客户节点下发调度指令;所述客户端用于文件存储,响应用户文件的上传和下载请求,执行服务器节点下发的调度任务,向服务器端上报本地数据及本地数据变动。

client节点按区域分组,一个区域中存在多个client节点,这些client节点之间通过网络带宽受限的低速网络连接,不同区域之间的client节点不能通信。一个client节点可以向多个用户提供服务,用户与client节点通过高速网络环境连接。

本发明中模块协作关系如图2所示,server节点保存了系统所有文件相关信息、用户和client节点的元数据,负责协调用户的存储请求,根据备份策略生成相应的备份任务,向client节点下发调度指令,协调各client节点执行备份任务,但不负责存储文件和文件的上传和下载。

client节点负责存储文件,响应用户的文件的上传和下载请求,执行server节点下发的各类调度任务,定时向server节点上报本地数据,client节点负责执行具体的备份任务。

本发明面向的用户是第三方系统或软件,而非自然人,第三方系统或软件通过http、sftp协议与server节点或client节点进行通信和文件传输。

系统文件存储结构如图3所示,系统中的所有文件都存储在client节点连接的存储设备上,server节点只持有所有client节点所存储的文件信息,而不真正的存储文件本身。

server节点存储的文件信息分为文件表和文件索引表两部分,文件表中记录了所有client节点上存储的所有的文件信息,包括文件名、所属用户、文件创建时间、文件大小、文件md5码等,文件的正副本被视为同一个文件。文件索引表记录了文件正副本与client节点的存储映射关系,以及该映射关系目前是否有效。通过文件索引表,可以查询出一个文件存储哪些client节点上,一共有几个副本,以及一个client节点上存储了哪些文件。

client节点在存储设备上基于一个存储根目录存储文件,在根目录下为不同的用户创建用户文件夹,用户的文件保存的自己的文件夹中。

文件索引表会在以下情况发生变化:

1)新增文件或副本时,添加文件索引。

2)删除文件或副本时,删除文件索引。

3)client节点离线时,该client节点存储的所有文件会被标记为无效。

4)client节点上线时,该client节点存储的所有文件会被标记为有效。

5)client节点定时上报本地文件列表时,以client节点为基准,添加或删除文件索引。

本发明处理流程如图4所示,用户向client节点提交上传文件或删除文件的请求,client节点受理执行相应的文件操作,并将文件的变化情况上报给server节点。系统在server节点保存有全系统所有文件信息以及文件与存储映射关系的索引库,对存储的文件实行自动备份。server节点配置了一套由备份数量、备份时间、备份目标选择模式等组成的备份策略。server节点在感知到文件数量有变化时,根据备份策略生成相应复制文件或删除文件的调度任务,存储入任务库中,根据配置立即或定时下发给client节点。client节点执行调度任务,将任务结果及任务导致的文件变化通知server节点处理。

client节点处理流程如图5所示,其职责有三部分。一是完成用户的上传、删除文件请求,二是向server节点上报文件变化,三是执行server节点下发的调度任务。client节点在完成用户的上传文件、删除文件操作后,立即上报文件变化。定时和在client节点上线时,将本地所有的文件信息,包括文件列表、文件md5上报给server节点。在执行完涉及文件增删的任务时,将文件变化连同任务执行结果一同上报给server节点。

server节点记录了各client节点存储的文件信息,以及client节点与文件的存储对应关系。server节点的处理流程如图6所示,server节点需要结合备份策略,生成相应的调度任务,下发给client节点去执行,来控制系统中文件的副本数量。

server节点的任务库结构如表1所示:

表1server节点任务库

用户存入一个文件,系统处理的典型流程如下:

1.用户上传文件:用户通过sftp协议向client上传文件。

2.client新增文件:client接收文件,保存到存储设备上。

3.client上报文件变化:文件上传完毕,client向server报告节点新增文件事件,包括新增时间、文件名称、文件大小、存储目录、文件所有者信息。

4.server更新文件索引库:server根据上报信息,将新文件信息加入全局的文件库,新在文件索引库中添加文件与client的映射关系。

5.server生成复制副本任务:server根据备份策略,生成一定数量的存储任务,保存至任务库。存储任务主要包括文件名称、起始节点ip、文件存储路径地址、目标节点地址、目标节点存储路径、任务来源等信息。

6.任务调度器启动任务:任务调度器定时调度执行任务,根据存储任务信息,向存储任务的目标client下发存储指令。

7.client执行存储任务:client根据存储指令,从源地址下载指定文件,存入指定的存储目录。

8.client上报任务执行结果:存储任务执行完成后,向server上报任务执行结果。

9.server处理任务执行结果:根据执行结果更新任务状态,如果存储任务执行成功,则向文件索引库添加cilent与文件的映射信息。

系统在以下四种场景中触发备份判定:

1.用户上传、删除文件时,由client实时上报文件变化,触发server端的备份判定。

2.client定时上报本地文件列表,server端与文件索引库进行对比更新,如果文件数量有变化,则触发server端的备份判定。

3.client重新上线时,会立即上报本地文件列表,server端与文件索引库进行对比更新,如果文件数量有变化,则触发server端的备份判定。

4.server端定时执行副本数量校验程序,基于文件索引库进行文件是否满足备份策略的判定。

用户删除一个文件时,系统处理的典型流程如下:

1.用户删除文件:用户通过sftp协议请求删除client上的文件。

2.client删除文件:client删除文件。

3.client上报文件变化:文件删除完毕,client向server报告节点删除文件事件,包括删除时间、文件名称、存储目录、文件所有者信息。

4.server更新文件索引库:server根据上报信息,将该文件从全局的文件库删除,在文件索引库中删除文件与client的映射关系。

5.server生成删除副本任务:server根据文件索引库,为每个副本生成相应的删除任务,保存至任务库。删除任务主要包括文件名称、节点ip、文件存储路径、任务来源等信息。

6.任务调度器启动任务:任务调度器定时调度执行任务,根据任务信息,向删除副本任务的client下发存储指令。

7.client执行任务:client根据删除副本指令,将指定路径下的指定文件删除。

8.client上报任务执行结果:任务执行完成后,向server上报任务执行结果。

9.server处理任务执行结果:根据执行结果更新任务状态,如果删除副本任务执行成功,则在文件索引库删除该cilent与文件的映射信息。

用户向系统中存储一个文件的标准流程如图7所示,其主要处理流程如下:

1)用户向server请求一个可用的存储节点,server端根据用户与client的元数据信息,返回与用户同地点的client的访问地址和鉴权信息。

2)用户通过访问地址和鉴权信息连接client。

3)用户通过sftp协议向client上传文件。

4)client向存储中写入文件。

5)文件上传完毕时,client向server端上报新增的文件信息。

6)server端受理上报信息,保存文件信息并生成相应的备份任务。

7)上传完成。

本发明中,每个用户均持有专属的密钥,服务器节点掌握用户的专属密钥,用户向节点存储文件时,由系统对文件进行加密存储,保证用户数据安全。

本发明应用的典型场景有:

1)拥有2-50或更多台办公计算机中小型企事业单位

具有安全存储大量数据的需要,但是,又不准备采购复杂的设备构建私有云存储,也不情愿把数据外包到公共云存储上去。可以直接使用本系统,利用现有硬件设备,仅需为办公计算机提升存储容量就可以构建私有云服务,大幅度的提升存储容量,并提高数据的安全性。

2)大型小区

利用大量空闲公共计算机为有需要住户提供公共云存储服务。每住户以自愿方式加入系统,为别人提供数据存储,也在其他人的计算机上存储自己的数据。

3)办公园区

购置或利旧一定数量的设备,构建小规模的私有云服务。通过积分等运营手段,吸引园区企业加入,成为新的节点,扩大私有云的规模与效应,形成良性循环,提升园区的服务水平,并带来一定的经济效益。

值得注意的是,以上论述中,服务器节点有可能简称为server节点或server,客户节点可能简称为client节点或client,本领域技术人员应该能够理解它们具有相同的指代,均指代服务器节点或客户节点。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

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