CN114598716A - 一种分布式文件存储系统、方法及电子设备 - Google Patents
一种分布式文件存储系统、方法及电子设备 Download PDFInfo
- Publication number
- CN114598716A CN114598716A CN202210351486.8A CN202210351486A CN114598716A CN 114598716 A CN114598716 A CN 114598716A CN 202210351486 A CN202210351486 A CN 202210351486A CN 114598716 A CN114598716 A CN 114598716A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- storage node
- target
- database server
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000001360 synchronised effect Effects 0.000 claims abstract description 63
- 238000013506 data mapping Methods 0.000 claims description 29
- 238000013500 data storage Methods 0.000 claims description 16
- 238000012986 modification Methods 0.000 claims description 10
- 230000004048 modification Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 239000000126 substance Substances 0.000 claims description 2
- 238000004806 packaging method and process Methods 0.000 claims 1
- 238000012360 testing method Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000006854 communication Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 239000012634 fragment Substances 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- 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/182—Distributed file systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例提供一种分布式文件存储系统、方法及电子设备。其系统至少包括:客户端用于通过网络服务器向数据库服务器发送待同步的数据的属性信息;数据库服务器用于管理多个存储节点,并且根据属性信息和多个存储节点的存储情况,在多个存储节点中确定一个符合第一预设条件的存储节点作为目标存储节点,并将目标存储节点的配置信息通过网络服务器发送至客户端;客户端还用于基于配置信息,将待同步的数据同步至目标存储节点。通过将数据保存在同一个存储节点中,能够保证数据上传之后,方便用户一次性获取该数据,而且在单个存储节点倘若因为故障而下线,只会影响该存储节点所存储的数据,其他存储节点的同步更新及下载均不受影响。
Description
技术领域
本公开实施例涉及计算机技术领域,尤其涉及一种分布式文件存储系统、方法及电子设备。
背景技术
随着计算机科技的发展,分布式存储依旧是计算机技术领域的长久论题,分布式存储,是指将数据分散存储在多台独立的设备上,利用多台存储服务器分担存储负荷。而分布式存储系统随着计算机技术的高速发展而快速变化,更是应用在各行各业中,但现有的分布式存储系统的不足显而易见。例如,当运维人员需要在服务器底层直接观察或拷贝指定某一个目录下的数据时,不能拿到指定数据,而是分散的文件或块或碎片,对运维造成一定的影响;倘若数据库发生破坏或丢失,在没有及时恢复备份的情况下,将会出现数据碎片无法正常组装,无法获取到完整文件的情况,很难进行系统的快速部署和模块化运作,不能满足用户的快速存储文件的需求。
发明内容
有鉴于现有技术中存在的上述问题,本公开实施例提供了一种分布式文件存储系统、方法及电子设备,用以解决系统上数据存储路径分散,各功能模块之间部署和运作困难,以及不能满足用户的快速存储文件的需求的问题。
为解决上述问题,本公开实施例提供的技术方案是:一种分布式文件存储系统,系统至少包括:客户端、网络服务器以及数据库服务器;其中,
客户端,用于通过网络服务器向数据库服务器发送待同步的数据的属性信息;
数据库服务器,用于管理多个存储节点,并且根据属性信息和多个存储节点的存储情况,在多个存储节点中确定一个符合第一预设条件的存储节点作为目标存储节点,并将目标存储节点的配置信息通过网络服务器发送至客户端;
客户端,还用于基于配置信息,将待同步的数据同步至目标存储节点。
进一步地,待同步的数据的属性信息至少包括数据大小、数据修改时间、数据名称、数据ID中的一个或多个;
存储节点的存储情况至少包括存储节点的当前可用存储量和总存储量。
进一步地,数据库服务器,还用于管理数据映射表;其中,数据映射表用于记录数据的数据ID以及数据所在的存储节点的配置信息之间的对应关系。
数据库服务器,还用于在接收到待同步的数据的属性信息之后,判断数据映射表中是否存在待同步的数据的数据ID,并基于判断结果,在多个存储节点中确定一个符合第一预设条件的存储节点作为目标存储节点。
进一步地,在数据映射表不存在待同步的数据的数据ID的情况下,数据库服务器还用于基于存储节点的当前可用存储量和总存储量,计算多个存储节点的存储占用比,并将存储占用比最低、当前可用存储量大于待同步的数据的数据大小的存储节点作为目标存储节点。
进一步地,在数据映射表存在待同步的数据的数据ID的情况下,数据库服务器,用于获取待同步的数据存在于数据库服务器中的数据存储量,并判断待同步的数据的数据大小和数据存储量的差值是否超过数据ID对应的存储节点的当前可用存储量;
在待同步的数据的数据大小和数据存储量的差值没有超过数据ID对应的存储节点的当前可用存储量的情况下,将该存储节点作为目标存储节点。
进一步地,数据库服务器还用于将待同步的数据的数据ID与目标存储节点的配置信息添加至数据映射表中,并将配置信息反馈至客户端。
进一步地,数据库服务器还用于基于多个存储节点的当前可用存储量和总存储量,周期性地将存储占用比大于第一阈值的存储节点中的数据随机发送至存储占用比小于第二阈值的存储节点中,以使得任意两个存储节点的存储占用比的差值均小于第三阈值。
进一步地,客户端用于通过网络服务器确定数据库服务器中目标数据的文件列表;
数据库服务器用于基于该文件列表,确定目标数据的数据大小和目标数据所在存储节点对应的配置信息;
数据库服务器还用于基于目标数据的数据大小和目标数据所在存储节点对应的配置信息,打包目标数据并建立目标数据下载链接,以及将下载链接反馈至客户端;
客户端还用于基于下载链接,从数据库服务器中下载目标数据。
本公开的实施例还提供了一种分布式文件存储方法,方法包括:
接收客户端通过网络服务器发送的待同步的数据的属性信息;
根据属性信息和多个存储节点的存储情况,在多个存储节点中确定一个符合第一预设条件的存储节点作为目标存储节点,并将目标存储节点的配置信息通过网络服务器发送至客户端,以使得客户端基于配置信息,将待同步的数据同步至目标存储节点。
本公开的实施例还提供了一种电子设备,至少包括存储器、处理器,存储器上存储计算机程序,处理器在执行存储器上的计算机程序时实现上述的系统的分布式文件存储方法的步骤。
本公开实施例的有益效果在于,通过根据数据库服务器中各存储节点的存储情况,将数据保存在同一个存储节点中,能够保证数据上传之后,方便用户一次性获取该数据,而且在单个存储节点倘若因为故障而下线,只会影响该存储节点所存储的数据,其他存储节点的同步更新及下载均不受影响。
附图说明
图1为本公开的第一个实施例的分布式文件存储系统的结构框图;
图2为本公开实施例的一种系统的分布式文件存储方法流程图;
图3为本公开实施例的一种电子设备的硬件结构示意图。
具体实施方式
此处参考附图描述本申请的各种方案以及特征。
应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式。
当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本申请的具体实施例;然而,应当理解,所申请的实施例仅仅是本申请的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本申请的相同或不同实施例中的一个或多个。
目前市面上大多采用的是碎片式存储系统,大部分的碎片式存储方案都需要维护数据库,倘若数据库发生破坏或丢失,在没有及时恢复备份的情况下,将会出现数据碎片无法正常组装,无法获取到完整文件,如果数据库完全损坏,对整个系统的所有文件将会造成灾难性损坏,无法正常复原。而本公开主要应用在数据存储方面,例如高校普遍的大型公共仪器实验设备的数据存储,对于大型公共仪器设备本身而言,需要将大量的实验数据进行存储,因为设备本地的存储能力有限并且对于实验小组来说可能需要不同组员之间的实验数据共用。
本公开第一方面的实施例提供了一种分布式文件存储系统。
图1给出了本公开的第一个实施例的分布式文件存储系统的结构框图。
如图1所示,系统10包括:客户端101、网络服务器102以及数据库服务器103;客户端101,用于通过网络服务器102向数据库服务器103发送待同步的数据的属性信息;数据库服务器103,用于管理多个存储节点(例如,第一存储节点1031、第二存储节点1032、第三存储节点1033等),并且根据属性信息和多个存储节点的存储情况,在多个存储节点中确定一个符合第一预设条件的存储节点作为目标存储节点,并将目标存储节点的配置信息通过网络服务器102发送至客户端101,客户端101还用于基于配置信息,将待同步的数据同步至目标存储节点。
本实施例中,用户想要存储数据,只需操作客户端101进行存储操作,数据库服务器103就会响应客户端101的存储操作,进而通过网络服务器102接收客户端101发送的所要存储的数据的属性信息,数据库服务器103根据所要存储的数据的属性信息与管理的多个存储节点的存储情况,确定一个满足第一预设条件的目标存储节点,然后数据库服务器103将该存储节点的配置信息通过网络服务器102发送到客户端101中,最后用户可操作客户端101根据配置信息,将用户所要存储的数据同步到该存储节点中。
本实施例通过将数据保存在满足第一预设条件的一个目标存储节点中,能够保证数据存储时的完整,避免用户从多个不同的存储节点中碎片式的获取数据,达到提升用户数据获取效率的目的;与此同时,在单个存储节点倘若因为故障而下线的情况下,本实施例所提供的分布式文件存储系统只会影响该存储节点所存储的数据,其他存储节点的同步更新及下载均不受影响。
具体实现时,客户端101可以为智能终端。例如,客户端101可以是手机、电脑、掌上电脑等。客户端主101优选为公共试验仪器,例如在各大高校中普遍存在的用于进行各类实验的实验设备以及与实验设备关联的计算机设备等。网络服务器102主要用于进行客户端101和数据库服务器103之间的通信,其具体可以使用任意一种能够实现网络功能的设备进行,在该通信过程中优先使用HTTP接口协议。
待同步的数据主要指的是任意类型的文件或者包含至少一个文件的目录。目录可以是单个目录,也可包含多个子目录;文件可以为视频、压缩包、文本等格式的文件。以客户端101为公共试验仪器为例,数据可以为公共试验仪器的实验数据,该实验数据包含图文、数字以及实验视频等一切能记录实验的数据,并且实验数据之间关联性强,所以在保存实验数据的过程中,实验数据的数据量庞大,优选地将所有实验数据作为一个整体进行存储。
待同步的数据的属性信息至少包括数据大小、数据修改时间、数据名称、数据ID中的一个或多个;以公共试验仪器为例,待同步的数据可以为实验数据,其属性信息可以包括实验数据的数据量(例如,1G或者3G等)、实验数据的修改时间(例如,实验数据A的修改时间为2022.3.28.下午15:03)、实验数据的命名(例如,实验数据A、实验数据B)、实验数据的ID(例如数据A的数据ID为132.45)。其中,数据ID表征数据的唯一性,其通常为数据建立时自动生成的,以公共试验仪器为例,通过操作公共实验仪器,生成实验数据A的同时,会自动生成实验数据A的数据ID为132.45。
数据库服务器103可以是任意具有处理功能的计算机设备、服务器等电子设备,其可以同时管理多个存储节点,并且实时监控各存储节点的存储情况。存储节点可以为分布在网络中的各类存储介质或具有存储介质的电子设备中,存储节点与数据库服务器103之间可以进行数据通信,用以实现存储节点的存储情况的互通。存储节点的存储情况至少包括存储节点的当前可用存储量和总存储量,也可以包括存储节点当前已用存储量,甚至是存储占比等。以存第一储节点为例,第一储节点的总存储量为10G,当前可用存储量为5G,当前已用存储量为5G,存储占比为50%。上述的存储情况可以由存储节点主动向数据库服务器进行上报,也可由数据库服务器主动向存储节点获取,本实施例不进行限制。
具体实现时,系统10也可以包括多个网络服务器102,以实现不同的客户端101通过不同的网络服务器102来连接数据库服务器103。通过采用多个网络服务器102可以缓网络过载的情况,进而提高用户的工作效率。
本公开实施中,系统10也可以包括多个数据库服务器103,以实现管理不同的存储节点。
例如,第一种方案:存在两个数据库服务器103(第一数据库服务器和第二数据库服务器),第一数据库服务器管理三个存储节点(第一存储节点、第二存储节点、第三存储节点),第二数据库服务器管理三个存储节点(第四存储节点、第五存储节点、第六存储节点)。通过不同的数据库服务器管理各自的存储节点,无需将所有存储节点统一给一个数据库服务器管理,可以避免数据库服务器出现过载现象,引发网络堵塞,进而提高数据的处理的能力。
第二种方案:存在两个数据库服务器(第三数据库服务器和第四数据库服务器),第三数据库服务器管理三个存储节点(第一存储节点、第二存储节点、第三存储节点),第四数据库服务器管理三个存储节点(第一存储节点、第四存储节点、第五存储节点)。第三数据库服务器和第四数据库服务器存在交叉管理第一存储节点,即共同管理第一存储节点。通过不同数据库服务器交叉管理存储节点,可以使得不同数据库服务器分担对该存储节点的处理工作量,大大节省数据处理的时间,进而提高用户的工作效率。
在实际进行目标存储节点的确定过程中,数据库服务器103会根据管理的所有存储节点的当前可用存储量和总存储量,计算三个存储节点当前的存储占用比,并将存储占用比最低、当前可用存储量大于待同步的数据的数据大小的存储节点作为目标存储节点,以保证待同步数据可以完整地被保存至目标存储节点中。
以三个存储节点为例,第一存储节点1031的存储占用比为70%、当前可用存储量为10G,第二存储节点1032的存储占用比为50%、当前可用存储量为20G,第三存储节点1033的存储占用比为20%,当前可用存储量为30G,数据A的数据大小为25G。因为第三存储节点1033的存储占用比最低,且第三存储节点1033的当前可用存储量30G大于数据A的数据大小25G,所以确定第三存储节点1033为目标存储节点。
具体实现时,数据库服务器103管理有数据映射表,该数据映射表用于记录数据的数据ID与数据当前所在的存储节点之间的对应关系,还可以进一步记录有数据在其所归属的存储节点内的存储位置,或者数据的属性信息等内容。在数据库服务器103接收到待同步的数据的属性信息之后,会优先判断数据映射表中是否存在待同步的数据的数据ID,并基于判断结果,在多个存储节点中确定一个符合第一预设条件的存储节点作为目标存储节点。
上述配置信息主要指的是数据库服务器103管理的多个存储节点自身的配置情况,具体包括存储节点的存储节点IP地址、存储节点数据传输端口信息和存储节点ID,其中,存储节点ID主要用于表征待同步的数据在存储节点中的存储位置,其可以通过作为存储节点的存储介质中最小存储单元的编号表示,例如硬盘中扇区的编号。客户端101在接收到数据库服务器103下发的配置信息之后,基于存储节点IP地址和存储节点数据传输端口信息与目标存储节点进行通信连接,并将待同步的数据上传至目标存储节点中存储节点ID所指示的位置进行存储。
本公开实施例中,数据库服务器103在接收到待同步的数据的属性信息之后,判断数据映射表中是否存在待同步的数据的数据ID,如图1所示,以数据库服务器103管理三个存储节点为例,在数据库服务器103收到客户端101传送的数据A的属性信息之后,根据该数据A的数据ID为132.45,在数据映射表中核查是否存在132.45这个ID数据,若在数据映射表中核查存在132.45这个ID数据,代表在某个存储节点中存储过132.45这个ID数据对应的数据;若在数据映射表中核查不存在132.45这个ID数据,代表在各个存储节点中没有存储过132.45这个ID数据对应的数据。最后,基于判断结果,在多个存储节点中确定一个符合第一预设条件的存储节点作为目标存储节点。
在数据映射表不存在待同步的数据的数据ID的情况下,数据库服务器103根据管理的所有存储节点的当前可用存储量和总存储量,计算管理的所有存储节点的存储占用比,并将存储占用比最低、当前可用存储量大于待同步的数据的数据大小的存储节点作为目标存储节点。
例如,如图1所示,以数据库服务器103管理三个存储节点为例,在数据映射表中不存在ID为132.45数据A的情况下,所以数据库服务器103会根据三个存储节点(第一存储节点1031、第二存储节点1032、第三存储节点1033)当前可用存储量和每个存储节点的总存储量,计算三个存储节点各自的存储占用比,其中,第一存储节点1031的存储占用比为70%、当前可用存储量为10G,第二存储节点1032的存储占用比为50%、当前可用存储量为20G,第三存储节点1033的存储占用比为20%,当前可用存储量为30G,数据A的数据大小为25G。因为第三存储节点1033的存储占用比最低,且第三存储节点1033的当前可用存储量30G大于数据A的数据大小25G,所以确定第三存储节点1033为目标存储节点。
本实施例中,选择占用比最低且当前可用存储量合适的存储节点作为目标存储节点,能够使得各存储节点的容量均衡,并且能够快速地满足待同步数据的存储需求。
在数据映射表存在待同步的数据的数据ID的情况下,数据库服务器103获取待同步的数据存在于数据库服务器103中的数据存储量,并判断待同步的数据的数据大小和数据存储量的差值是否超过数据ID对应的存储节点的当前可用存储量;若待同步的数据的数据大小和数据存储量的差值没有超过数据ID对应的存储节点的当前可用存储量,将该存储节点作为目标存储节点。
例如,如图1所示,以数据库服务器103管理三个存储节点为例,第一存储节点1031的存储占用比为70%、当前可用存储量为10G,第二存储节点1032的存储占用比为50%、当前可用存储量为20G,第三存储节点1033的存储占用比为20%,当前可用存储量为30G,在数据映射表中存在数据A的ID为132.45,数据A中包括a、b、c三个文件(数据A的数据大小为25G、其中a文件5G、b文件10G、c文件10G),并且在数据库服务器103中的第三存储节点1033中存在相同的a文件(与数据A中包含的a文件的属性信息相同),在数据映射表中存在ID为132.45数据A的情况下,所以数据库服务器103需要计算数据A与a文件的大小差值(即b文件和c文件大小的总和)为20G,差值20G并没有超过第三存储节点1033当前可用存储量30G,所以将第三存储节点1033作为目标存储节点
具体实现时,例如,数据B的数据大小为40G(d文件5G、e文件15G、f文件20G),在数据映射表中存在数据B的ID(133.45),且在数据库服务器103中的第三存储节点1033中存在相同的d文件(与数据B中包含的d文件的属性信息相同),数据库服务器103计算数据B与d文件大小的差值为35G,但是该差值35G超过了第三存储节点1033的当前可用存储量30G,所以第三存储节点无法成为目标存储节点,只能选择其他合适的存储节点。
在本实施例中,通过判断数据映射表中是否存在待同步的数据的数据ID,进而节省数据库服务器103的判断步骤,保证数据存储的统一完整,避免用户从多个不同的存储节点中碎片式的获取数据,达到提升用户数据获取效率的目的,同时可以提高数据存储的效率。
本实施例中,若是在数据库服务器103中的某一存储节点存在与数据A或B完全相同的文件,即对于已存在过的数据(数据的大小、修改时间、名称等信息都没发生改变),则用户在第二次上传的时候,无需重新上传该文件,可以避免重复上传,大大节省用户的时间。
在本实施例中,数据库服务器103确定目标存储节点后,会将目标存储节点的配置信息与待同步数据的数据ID进行关联后添加到数据映射表中,并将该配置信息反馈至客户端101中。例如,数据库服务器103已经确定数据B对应的存储节点后,将该存储节点的存储节点IP地址、存储节点传输端口信息、存储节点ID等信息与数据B的数据ID(133.45)形成对应关系或关联关系,添加在数据映射表中,并且数据库服务器103将该存储节点的存储节点IP地址、存储节点传输端口信息、存储节点ID等信息发送回客户端101。
进一步地,客户端101收到数据库服务器103反馈的配置信息后,根据配置信息将待同步的数据同步到配置信息对应的存储节点中。具体实现时,客户端101直接与存储节点进行通信,该过程优选使用TCP通信协议。
在一些实施例中,网络服务器102还可以收集客户端101上的HTTP接口的数据信息,并根据数据库服务器103提供的安全认证方案,完成客户端101与数据库服务器103的安全认证,在测试网络连接正常后,客户端101的ID与数据库服务器103的ID完成申请与注册,并将集客户端101上的HTTP接口的数据信息更新到数据库服务器103中。本实施例通过采用这种认证方式,只有通过安全认证的客户端才能访问数据库服务器,充分保证数据库服务器中的数据安全。
在本实施例所提供的分布式存储系统的实际运行过程中中,数据库服务器103根据管理的多个存储节点的当前可用存储量和总存储量,周期性地将存储占用比大于第一阈值的存储节点中的数据随机发送至存储占用比小于第二阈值的存储节点中,以使得任意两个存储节点的存储占用比的差值均小于第三阈值,以实现各个存储节点中所保存的数据量均衡,避免数据过于集中。在进行第一阈值、第二阈值以及第三阈值的设定时,可以根据存储节点的存储容量以及实际需求进行设定,本实施例不进行具体数值的限制。另外需要注意的是,在进行随机的数据发送时,应当保证数据的完整性;与此同时,对于转移的数据,其在数据映射表中记录的存储节点内容也应当相应进行更新。
例如,以数据库服务器103管理三个存储节点为例,第一存储节点1031的存储占用比为70%、当前可用存储量为10G,第二存储节点1032的存储占用比为50%、当前可用存储量为20G,第三存储节点1033的存储占用比为20%,当前可用存储量为30G,第一存储节点1031的存储占用比70%大于50%,第三存储节点1033的存储占用比20%小于50%,所以数据库服务器103将第一存储节点1031中的部分数据发送至第三存储节点1033中,使得第一存储节点1031的的存储占用比变为50%,第三存储节点1033的存储占用比变为40%,使得第一存储节点1031、第二存储节点1032和第三存储节点1033中的任意两个存储节点的存储占用比的差值均小于11%。
本实施例中,系统10可以配置指定的备份存储节点,对指定的存储节点进行备份,以免存储节点中的数据丢失,保证了存储节点中数据的安全。
本实施例中,系统10也可配置备用数据库服务器,数据库服务器103中的存储节点可采用主从同步的方式部署,主服务器(数据库服务器103)如果因故下线,备用数据库服务器可直接接管所有对应的存储节点,保证客户端101正常与存储节点之间的交互。
本实施例中,系统10也可配置备用网络服务器,网络服务器102如果因故下线,备用网络服务器可直接与数据库服务器103进行通信,保证客户端101正常与存储节点之间的交互。
用户在希望获取系统中存储的数据时,可以操作客户端101通过网络服务器102获取数据库服务器中所有数据文件列表,然后从文件列表中选择需要进行下载到客户端本地的目标数据,获取目标数据的数据大小和目标数据所在存储节点对应的配置信息,数据库服务器103根据目标数据的数据大小和目标数据所在存储节点对应的配置信息,打包目标数据并建立目标数据下载链接,然后将下载链接反馈至客户端101,最后用户可通过客户端101点击该下载链接,实现目标数据的下载。上述目标数据在打包过程中,若是目标数据所在的存储节点并非同一个,则需要数据库服务器103从各个存储节点中分别获取各个目标数据,并将所有目标数据库打包起来。
上述系统10中的数据库服务器103可进行在线扩容。具体实现时,配置好新服务器的docker镜像后,web服务器通过新服务器注册接口完成对新服务器的校验,包括标定存储大小是否合理、网络通信是否正常、数据库查重、新服务器模块通信是否完整,校验后将新服务器信息添加到数据库服务器中,完成注册扩展。
进一步地,存储节点可以反向生成,通过当前所有存储节点存储的目录结构,可以拿到存储节点所需信息,通过指定接口可直接反向生成一个新的存储节点,以避免存储节点损坏或丢失造成的问题。为避免重复,具体过程在此不再赘述。
在本公开实施例中,通过根据数据库服务器中各存储节点的存储情况,系统功能实现了公共仪器设备能够在指定存储节点存储数据,同时降低了各服务器之间的耦合性,实现了系统的快速部署和模块化运作。
本公开第二方面的实施例提供了一种系统的分布式文件存储方法流程图。
图2给出了本公开实施例的一种系统的分布式文件存储方法流程图。如图2所示,该系统的分布式文件存储方法包括:
S201,接收客户端通过网络服务器发送的待同步的数据的属性信息。
S202,根据属性信息和多个存储节点的存储情况,在多个存储节点中确定一个符合第一预设条件的存储节点作为目标存储节点。
S203,将目标存储节点的配置信息通过网络服务器发送至客户端,以使得客户端基于配置信息,将待同步的数据同步至目标存储节点。
本实施例通过将数据保存在满足第一预设条件的一个目标存储节点中,能够保证数据存储时的完整,避免用户从多个不同的存储节点中碎片式的获取数据,达到提升用户数据获取效率的目的;与此同时,在单个存储节点倘若因为故障而下线的情况下,本实施例所提供的分布式文件存储系统只会影响该存储节点所存储的数据,其他存储节点的同步更新及下载均不受影响
本公开第三方面的实施例提供了一种电子设备,还电子设备可以作为分布式文件存储系统中的数据库服务器进行使用。
图3出了本公开实施例的一种电子设备的硬件结构示意图,如图3所示,该电子设备至少包括存储器302和处理器301,存储器302上存储有计算机程序,处理器301在执行存储器302上的计算机程序时实现本公开任意实施例提供的分布式文件存储方法。示例性的,电子设备计算机程序步骤如下S11至S12:
S11,接收客户端通过网络服务器发送的待同步的数据的属性信息。
S12,根据属性信息和多个存储节点的存储情况,在多个存储节点中确定一个符合第一预设条件的存储节点作为目标存储节点。
S13,将目标存储节点的配置信息通过网络服务器发送至客户端,以使得客户端基于配置信息,将待同步的数据同步至目标存储节点。
在一些实施例中,电子设备还包括:输入装置303和输出装置304;
电子设备中的处理器301、存储器302、输入装置303和输出装置304可以通过总线或者其他方式连接。
存储器302作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序。处理器301通过运行存储在存储器302中的软件程序、指令,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的分布式文件存储方法。
存储器302可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。
在一些实施例中,存储器302可选包括相对于处理器301远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置303可包括接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的健信号输入。
输出装置304可包括显示屏等显示设备。
本公开第四方面的实施例提供了一种存储介质,该存储介质可被安装在分布式文件存储系统中的任意一个具有处理功能的电子设备中,使该电子设备可以实现数据库服务器的功能,其具体为计算机可读介质,存储有计算机程序,该计算机程序被处理器执行时实现本公开任意实施例提供的分布式文件存储方法,包括如下步骤S21至S22:
S21,接收客户端通过网络服务器发送的待同步的数据的属性信息。
S22,根据属性信息和多个存储节点的存储情况,在多个存储节点中确定一个符合第一预设条件的存储节点作为目标存储节点。
S23,将目标存储节点的配置信息通过网络服务器发送至客户端,以使得客户端基于配置信息,将待同步的数据同步至目标存储节点。
可选的,该计算机可执行指令在由计算机处理器执行时还可以用于执行本公开实任意实施例所提供的分布式文件存储方法的技术方案。
本公开实施例中,通过根据数据库服务器中各存储节点的存储情况,系统功能实现了公共仪器设备能够在指定存储节点存储数据,同时降低了各服务器之间的耦合性,实现了系统的快速部署和模块化运作。
本公开实施提供的装置能够执行上述方法实施例的流程和步骤,且还具有与上述方法实施例对应的功能模块,能够执行相应的操作,并具有相应的技术效果,为避免重复,在此不再赘述。
以上实施例仅为本公开的示例性实施例,不用于限制本公开,本公开的保护范围由权利要求书限定。本领域技术人员可以在本公开的实质和保护范围内,对本公开做出各种修改或等同替换,这种修改或等同替换也应视为落在本公开的保护范围内。
Claims (10)
1.一种分布式文件存储系统,其特征在于,系统至少包括:客户端、网络服务器以及数据库服务器;其中,
所述客户端,用于通过所述网络服务器向所述数据库服务器发送待同步的数据的属性信息;
所述数据库服务器,用于管理多个存储节点,并且根据属性信息和多个所述存储节点的存储情况,在多个所述存储节点中确定一个符合第一预设条件的所述存储节点作为目标存储节点,并将所述目标存储节点的配置信息通过所述网络服务器发送至所述客户端;
所述客户端,还用于基于所述配置信息,将待同步的所述数据同步至所述目标存储节点。
2.如权利要求1的分布式文件存储系统,其特征在于,待同步的所述数据的属性信息至少包括数据大小、数据修改时间、数据名称、数据ID中的一个或多个;
所述存储节点的存储情况至少包括所述存储节点的当前可用存储量和总存储量。
3.如权利要求2的分布式文件存储系统,其特征在于,所述数据库服务器,还用于管理数据映射表;其中,所述数据映射表用于记录所述数据的数据ID以及所述数据所在的所述存储节点的配置信息之间的对应关系;
所述数据库服务器,还用于在接收到待同步的所述数据的属性信息之后,判断所述数据映射表中是否存在待同步的所述数据的数据ID,并基于判断结果,在多个所述存储节点中确定一个符合第一预设条件的所述存储节点作为目标存储节点。
4.如权利要求3的分布式文件存储系统,其特征在于,在所述数据映射表不存在待同步的所述数据的数据ID的情况下,所述数据库服务器还用于基于所述存储节点的当前可用存储量和总存储量,计算多个所述存储节点的存储占用比,并将存储占用比最低、当前可用存储量大于待同步的所述数据的数据大小的所述存储节点作为目标存储节点。
5.如权利要求3的分布式文件存储系统,其特征在于,在所述数据映射表存在待同步的所述数据的数据ID的情况下,所述数据库服务器,还用于获取待同步的所述数据存在于所述数据库服务器中的数据存储量,并判断待同步的所述数据的数据大小和数据存储量的差值是否超过数据ID对应的存储节点的当前可用存储量;
在待同步的所述数据的数据大小和数据存储量的差值没有超过数据ID对应的所述存储节点的当前可用存储量的情况下,将该存储节点作为目标存储节点。
6.如权利要求4或5分布式文件存储系统,其特征在于,所述数据库服务器还用于将待同步的所述数据的数据ID与所述目标存储节点的配置信息添加至所述数据映射表中,并将所述配置信息反馈至客户端。
7.如权利要求2的分布式文件存储系统,其特征在于,所述数据库服务器还用于基于多个所述存储节点的当前可用存储量和总存储量,周期性地将存储占用比大于第一阈值的所述存储节点中的数据随机发送至存储占用比小于第二阈值的存储节点中,以使得任意两个所述存储节点的存储占用比之间的差值均小于第三阈值。
8.如权利要求2的分布式文件存储系统,其特征在于,客户端用于通过所述网络服务器确定所述数据库服务器中目标数据的文件列表;
所述数据库服务器用于基于该文件列表,确定所述目标数据的数据大小和目标数据所在存储节点对应的配置信息;
所述数据库服务器还用于基于目标数据的数据大小和目标数据所在存储节点对应的配置信息,打包所述目标数据并建立目标数据下载链接,以及将所述下载链接反馈至所述客户端;
客户端还用于基于下载链接,从数据库服务器中下载目标数据。
9.一种分布式文件存储方法,其特征在于,方法包括:
接收客户端通过网络服务器发送的待同步的数据的属性信息;
根据属性信息和多个存储节点的存储情况,在多个存储节点中确定一个符合第一预设条件的存储节点作为目标存储节点,并将目标存储节点的配置信息通过所述网络服务器发送至所述客户端,以使得所述客户端基于所述配置信息,将待同步的数据同步至所述目标存储节点。
10.一种电子设备,至少包括存储器、处理器,存储器上存储计算机程序,其特征在于,处理器在执行存储器上的计算机程序时实现权利要求9的分布式文件存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210351486.8A CN114598716A (zh) | 2022-04-02 | 2022-04-02 | 一种分布式文件存储系统、方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210351486.8A CN114598716A (zh) | 2022-04-02 | 2022-04-02 | 一种分布式文件存储系统、方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114598716A true CN114598716A (zh) | 2022-06-07 |
Family
ID=81812824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210351486.8A Pending CN114598716A (zh) | 2022-04-02 | 2022-04-02 | 一种分布式文件存储系统、方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114598716A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104731516A (zh) * | 2013-12-18 | 2015-06-24 | 腾讯科技(深圳)有限公司 | 一种存取文件的方法、装置及分布式存储系统 |
CN107104992A (zh) * | 2016-02-19 | 2017-08-29 | 杭州海康威视数字技术股份有限公司 | 一种视频云存储的存储资源分配方法和装置 |
CN107180102A (zh) * | 2017-05-25 | 2017-09-19 | 北京环境特性研究所 | 一种目标特性数据的存储方法和系统 |
CN111049884A (zh) * | 2019-11-18 | 2020-04-21 | 武汉方始科技有限公司 | 一种分布式大文件存储系统及文件上传和下载方法 |
WO2022002209A1 (zh) * | 2020-07-01 | 2022-01-06 | 中兴通讯股份有限公司 | 数据传输方法和代理服务器、存储介质及电子装置 |
-
2022
- 2022-04-02 CN CN202210351486.8A patent/CN114598716A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104731516A (zh) * | 2013-12-18 | 2015-06-24 | 腾讯科技(深圳)有限公司 | 一种存取文件的方法、装置及分布式存储系统 |
CN107104992A (zh) * | 2016-02-19 | 2017-08-29 | 杭州海康威视数字技术股份有限公司 | 一种视频云存储的存储资源分配方法和装置 |
CN107180102A (zh) * | 2017-05-25 | 2017-09-19 | 北京环境特性研究所 | 一种目标特性数据的存储方法和系统 |
CN111049884A (zh) * | 2019-11-18 | 2020-04-21 | 武汉方始科技有限公司 | 一种分布式大文件存储系统及文件上传和下载方法 |
WO2022002209A1 (zh) * | 2020-07-01 | 2022-01-06 | 中兴通讯股份有限公司 | 数据传输方法和代理服务器、存储介质及电子装置 |
CN113965560A (zh) * | 2020-07-01 | 2022-01-21 | 中兴通讯股份有限公司 | 数据传输方法和代理服务器、存储介质及电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109842651B (zh) | 一种业务不间断的负载均衡方法和系统 | |
CN106331098B (zh) | 一种服务器集群系统 | |
CN111182067B (zh) | 一种基于星际文件系统ipfs的数据写入方法及设备 | |
JP5548829B2 (ja) | 計算機システム、データ管理方法及びデータ管理プログラム | |
CN103812823A (zh) | 虚拟机热迁移时配置信息迁移的方法、设备及系统 | |
CN103581276A (zh) | 集群管理装置、系统、业务客户端及相应方法 | |
CN105005521A (zh) | 测试方法及装置 | |
CN106411629B (zh) | 一种用于监控cdn节点的状态的方法和设备 | |
CN102088490A (zh) | 数据存储方法、设备和系统 | |
KR101211207B1 (ko) | 캐시 클라우드 구조를 이용한 캐시 시스템 및 캐싱 서비스 제공 방법 | |
CN101771548A (zh) | 文件同步方法及系统 | |
CN106959820A (zh) | 一种数据提取方法和系统 | |
CN107370809A (zh) | 数据同步方法及数据搜索系统 | |
CN112202853A (zh) | 数据同步方法、系统、计算机设备和存储介质 | |
CN108063832B (zh) | 一种云存储系统及其存储方法 | |
US8489727B2 (en) | Active storage area network discovery system and method | |
CN111225003B (zh) | 一种nfs节点配置方法和装置 | |
CN113190620B (zh) | Redis集群之间数据的同步方法、装置、设备及存储介质 | |
CN105323271B (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
CN106790610B (zh) | 一种云系统消息分发方法,装置和系统 | |
CN105490847A (zh) | 一种私有云存储系统中节点故障实时检测及处理方法 | |
US20230171312A1 (en) | Highly redundant and scalable storage area network architecture | |
CN114598716A (zh) | 一种分布式文件存储系统、方法及电子设备 | |
CN115378962A (zh) | 一种基于iSCSI协议的存储集群的高可用性连通方法和系统 | |
CN110636090B (zh) | 窄带宽条件下的数据同步方法和装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220607 |