CN114077578A - 分布式存储方法、服务器及存储介质 - Google Patents
分布式存储方法、服务器及存储介质 Download PDFInfo
- Publication number
- CN114077578A CN114077578A CN202010808801.6A CN202010808801A CN114077578A CN 114077578 A CN114077578 A CN 114077578A CN 202010808801 A CN202010808801 A CN 202010808801A CN 114077578 A CN114077578 A CN 114077578A
- Authority
- CN
- China
- Prior art keywords
- storage
- distributed
- file
- user
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], 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/13—File access structures, e.g. distributed indices
-
- 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
- G06F16/164—File meta data generation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种分布式存储方法,包括:获取用户待存储的文件;对待存储的所述文件进行分布处理;确定所述用户的存储需求,其中,所述存储需求至少包括文件存储及对象存储;当确定所述用户的存储需求为文件存储时,将经过分布处理的所述文件通过分布存储单元存储至多个存储区;及当确定所述用户的存储需求为对象存储时,将经过分布处理的所述文件通过对象存储单元及所述分布存储单元存储至所述多个存储区。本发明还提供一种服务器及存储介质。本发明可以兼容文件存储和对象存储,便于用户根据实际需求选择合适的存储方式。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种分布式存储方法、服务器及存储介质。
背景技术
随着数据存储技术的发展,目前有多种存储方式供用户选择,常见的包括文件存储和对象存储。文件存储一般体现形式是目录和文件,数据以文件的方式存储和访问,按照目录结构进行组织,例如NFS,CIFS,ftp等文件存储方式。对象存储一般体现形式是一个通用识别码,数据和元数据打包在一起作为一个整体对象存在一个大型的存储资源里,例如Amazon S3。然而,文件存储系统通常不易扩展,不便于存储大量文件或大容量的文件。对象存储系统在数据同步时可能存在一定时间的延迟或错误,且成本较高。
发明内容
有鉴于此,有必要提供一种分布式存储方法、服务器及存储介质,可以兼容文件存储和对象存储,便于用户根据实际需求选择合适的存储方式。
本发明的第一方面提供一种分布式存储方法,包括:
获取用户待存储的文件;
对待存储的所述文件进行分布处理;
确定所述用户的存储需求,其中,所述存储需求至少包括文件存储及对象存储;
当确定所述用户的存储需求为文件存储时,将经过分布处理的所述文件通过分布存储单元存储至多个存储区;及
当确定所述用户的存储需求为对象存储时,将经过分布处理的所述文件通过对象存储单元及所述分布存储单元存储至所述多个存储区。
优选地,所述对待存储的所述文件进行分布处理包括:
对所述文件的数据在高速存储器中进行缓存;
预读所述文件的目录项及元数据信息;
创建多个分布式复制卷;及
将缓存的所述文件的数据分布到所述多个分布式复制卷。
优选地,所述将经过分布处理的所述文件通过分布存储单元存储至多个存储区包括:
将所述多个分布式复制卷分别通过一客户端接口及所述分布存储单元存储至所述存储区的存储服务器中。
优选地,所述将经过分布处理的所述文件通过对象存储单元及所述分布存储单元存储至所述多个存储区包括:
通过所述对象存储单元生成与客户端接口传送的所述分布式复制卷对应的元数据;及
将所述分布式复制卷及对应的所述元数据通过所述分布存储单元存储至所述存储区的存储服务器中。
优选地,所述将经过分布处理的所述文件通过对象存储单元及所述分布存储单元存储至所述多个存储区还包括:
基于代理单元将所述客户端接口传送的所述多个分布式复制卷分别传送至所述对象存储单元,其中,所述代理单元用于提供反向代理及负载均衡。
优选地,所述确定所述用户的存储需求包括:
当用户登入分布式存储程序时,识别用户身份,并根据识别出的所述用户身份确定所述用户的存储需求。
优选地,所述确定所述用户的存储需求包括:
判断获取的所述文件的容量是否大于预设值;
当判定获取的所述文件的容量大于预设值时,确定所述用户的存储需求为对象存储;及
当判定获取的所述文件的容量小于或等于预设值时,确定所述用户的存储需求为文件存储。
优选地,所述方法还包括:
在一子服务器中设置反向代理而将所述子服务器部署为代理单元;
对至少两个子服务器进行磁区分割而部署形成所述多个存储区;及
在每一存储区中设置所述对象存储单元。
本发明的第二方面提供一种服务器,所述服务器包括:
处理器;以及
存储器,所述存储器中存储有多个程序模块,所述多个程序模块由所述处理器加载并执行上述的分布式存储方法。
本发明的第三方面提供一种计算机可读存储介质,其上存储有至少一条计算机指令,所述指令由处理器并加载执行上述的分布式存储方法。
上述分布式存储方法、服务器及存储介质可以兼容文件存储和对象存储,便于用户根据实际需求选择合适的存储方式,使得具有文件存储需求的用户或用户在有文件存储需求时进行文件存储以减少成本,使得具有对象存储需求的用户或用户在有对象存储需求时进行对象存储以提高数据存储的扩展性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明较佳实施方式提供的分布式存储方法的应用环境架构示意图。
图2是本发明较佳实施方式提供的服务器的结构示意图。
图3是本发明较佳实施方式提供的分布式存储系统的结构示意图。
图4是本发明较佳实施方式提供的分布式存储方法的流程图。
主要元件符号说明
服务器 1
处理器 10
分布式存储系统 100
部署模块 101
获取模块 102
处理模块 103
确定模块 104
存储模块 105
存储器 20
计算机程序 30
分布存储单元 40
对象存储单元 50
存储区 60
存储服务器 601
代理单元 70
客户端 2
步骤 S401~S405
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
请参阅图1所示,为本发明较佳实施方式提供的分布式存储方法的应用环境架构示意图。
本发明中的分布式存储方法应用在服务器1中,所述服务器1与至少一个客户端2通过网络建立通信连接。所述网络可以是有线网络,也可以是无线网络,例如无线电、无线保真(Wireless Fidelity,WIFI)、蜂窝、卫星、广播等。
所述服务器1安装有分布式存储程序。所述服务器1可以是单一的服务器、服务器集群或云端服务器等。
所述客户端2可以是智能手机或个人电脑等。所述客户端2安装有分布式存储系统对应的分布式存储程序,用于供用户访问而进行文件的存储。
请参阅图2所示,为本发明服务器较佳实施方式的结构示意图。
所述服务器1包括,但不仅限于,处理器10、存储器20、存储在所述存储器20中并可在所述处理器10上运行的计算机程序30、多个分布存储单元40、多个对象存储单元50、多个存储区60及代理单元70。所述计算机程序30为分布式存储程序。所述处理器10执行所述计算机程序30时实现分布式存储方法中的步骤,例如图4所示的步骤S401~S405。或者,所述处理器10执行所述计算机程序30时实现分布式存储系统中各模块/单元的功能,例如图3中的模块101-105。
示例性的,所述计算机程序30可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器10执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述计算机程序30在所述服务器1中的执行过程。例如,所述计算机程序30可以被分割成图3中的部署模块101、获取模块102、处理模块103、确定模块104及存储模块105。各模块具体功能参见分布式存储系统实施例中各模块的功能。
本领域技术人员可以理解,所述示意图仅仅是服务器1的示例,并不构成对服务器1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器1还可以包括输入输出设备、网络接入设备、总线等。
所称处理器10可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器10也可以是任何常规的处理器等,所述处理器10是所述服务器1的控制中心,利用各种接口和线路连接整个服务器1的各个部分。
所述存储器20可用于存储所述计算机程序30和/或模块/单元,所述处理器10通过运行或执行存储在所述存储器20内的计算机程序和/或模块/单元,以及调用存储在存储器20内的数据,实现所述服务器1的各种功能。所述存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器1的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器20可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在本实施方式中,所述分布存储单元40为分布式存储接口,用于通过分布式存储服务将文件存储至所述存储区60。
在本实施方式中,所述对象存储单元50为对象存储接口,用于通过对象存储服务将文件存储至所述存储区60。
在本实施方式中,所述存储区60包括至少一个存储服务器601,用于存储所述文件。在其他实施方式中,所述存储区60也可以包括所述存储服务器601的至少一个磁区。
在本实施方式中,所述代理单元70为代理服务器,用于在对所述文件执行对象存储时提供反向代理及负载均衡。
在本实施方式中,每一存储区60设置一分布存储单元40及一对象存储单元50。所述代理单元70通过局域网与所述多个存储器60通信连接。
请参阅图3所示,本发明分布式存储系统较佳实施方式的功能模块图。
在一些实施方式中,分布式存储系统100运行于所述服务器1中。所述分布式存储系统100可以包括多个由程序代码段所组成的功能模块。所述分布式存储系统100中的各个程序段的程序代码可以存储于服务器1的存储器20中,并由所述至少一个处理器10所执行,以实现分布式存储功能。
本实施方式中,分布式存储系统100根据其所执行的功能,可以被划分为多个功能模块。参阅图3所示,所述功能模块可以包括部署模块101、获取模块102、处理模块103、确定模块104及存储模块105。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器20中。可以理解的是,在其他实施例中,上述模块也可为固化于所述处理器10中的程序指令或固件(firmware)。
所述部署模块101用于在一子服务器中设置反向代理而将所述子服务器部署为所述代理单元70。
在本实施方式中,所述代理单元70可以接收来自所述客户端2的网络访问连接请求,然后将所述网络访问连接请求转发给所述存储区60的存储服务器601,并将所述存储服务器601处理的结果返回给所述客户端2,以避免所述存储区60中的所述对象存储单元50出现单点失效的问题。
在本实施方式中,所述代理单元70还安装有Linux distribution和DokcerEngine的运行环境,用于提供分布式文件处理及管理功能。
所述部署模块101还对至少两个子服务器进行磁区分割而部署形成所述多个存储区60。
在本实施方式中,所述存储区60的存储服务器601内分割有多个磁区,从而便于在所述存储服务器601内部实现分布式的数据存储。在其他实施方式中,所述存储区60也可以包括所述存储服务器601的部分磁区,从而在不同存储区60之间实现分布式的数据存储,以减少硬件成本。需要说明的是,所述存储服务器601中也安装有Linux distribution和Dokcer Engine的运行环境,作为所述分布存储单元40,用于提供分布式存储服务。
在本实施方式中,所述部署模块101设置所述存储服务器601的读取缓存容量(performance.cache-size)及I/O操作线程数量(performance.io-thread-count),以满足对象存储服务。其中,所述读取缓存容量为512MB,所述I/O操作线程数量为64。
所述部署模块101还用于在每一存储区60中设置所述对象存储单元50。
在本实施方式中,所述对象存储单元50为Minio服务接口。所述部署模块101将预先定制及打包完成的Minio Docker Images导入所述存储服务器601的设定文件中,以设置所述对象存储单元50。
需要说明的是,为正确存储和读取文件,所述部署模块101对每一对象存储单元50设置相同的认证令牌(Credential Token),并且保证每个存储服务器601的挂载点(MountPoint)的一致性。
所述获取模块102用于获取用户待存储的文件。
在本实施方式中,当所述用户可以在所述客户端2上通过账号及密码登入分布式存储程序,并将所述待存储的文件上传至所述分布式存储程序时,所述获取模块102获取所述待存储的文件。在其他实施方式中,所述用户也可以在所述客户端2上使用账号及密码并通过web网页的方式登入所述分布式存储程序,并通过所述web网页将所述待存储的文件上传至所述分布式存储程序。
在本实施方式中,所述客户端2包括多个客户端接口,用于与所述存储区60通信连接。其中,客户端接口的数量与所述存储区60的数量相同。
所述处理模块103用于对待存储的所述文件进行分布处理。
具体的,所述处理模块103对所述文件的数据在高速存储器中进行缓存,预读所述文件的目录项及元数据信息,并创建多个分布式复制卷,然后将缓存的所述文件的数据分布到所述多个分布式复制卷,从而完成所述文件的分布处理。
所述确定模块104用于确定所述用户的存储需求。
在本实施方式中,所述存储需求至少包括文件存储及对象存储。其中,基于文件存储的数据可以直接读取和写入,基于对象存储的数据读写操作和元数据分离,先读取元数据确定数据位置,再从确定的位置进行数据的读写操作。
在本实施方式中,当用户登入所述分布式存储程序时,所述确定模块104识别用户身份,并根据识别出的用户身份确定所述用户的存储需求。
具体的,所述分布式存储系统100中预先存储有用户身份与存储需求的对应关系,所述确定模块104通过用户登入所述分布式存储程序的账号识别所述用户身份,并根据识别出的用户身份与预先存储的用户身份与存储需求的对应关系确定所述用户的存储需求。例如,所述用户身份可以是工作岗位,用户身份与存储需求的对应关系具体包括:工作岗位为基础服务人员及系统管理人员对应的存储需求为文件存储,工作岗位为系统开发人员对应的存储需求为对象存储。如此,当所述确定模块104确定所述用户的身份为基础服务人员或系统管理人员时,确定所述用户的存储需求为文件存储。当所述确定模块104确定所述用户的身份为系统开发人员时,确定所述用户的存储需求为对象存储。
在其他实施方式中,所述确定模块104判断获取的所述文件的容量是否大于预设值。当判定获取的所述文件的容量大于预设值时,确定所述用户的存储需求为对象存储。当判定获取的所述文件的容量小于或等于预设值时,确定所述用户的存储需求为文件存储。其中,所述预设值为500GB。可以理解的是,所述预设值也可以根据需求设置为其他合适的数值。
所述存储模块105用于当确定用户的存储需求为文件存储时,将经过分布处理的所述文件通过所述分布存储单元40存储至所述多个存储区60。
在本实施方式中,所述存储模块105将存储有所述文件的数据的所述多个分布式复制卷分别通过一客户端接口及所述分布存储单元40分别存储至每一存储区60的存储服务器601中。
具体的,当所述文件的数据分布到所述分布式复制卷时,所述存储模块105将所述分布式复制卷通过所述客户端接口传送至与所述客户端2通信连接的存储服务器601中,并通过所述存储服务器601中的分布存储单元40所提供的分布存储服务而实现所述文件的分布式存储。
所述存储模块105用于还当确定所述用户的存储需求为对象存储时,将经过分布处理的所述文件通过对象存储单元50及所述分布存储单元40存储至所述多个存储区60。
在本实施方式中,所述存储模块105通过所述对象存储单元50创建与所述客户端接口传送的所述分布式复制卷对应的元数据,将所述分布式复制卷及对应的所述元数据通过所述分布存储单元40存储至所述存储区60的存储服务器601中。其中,所述元数据包括所述分布式复制卷中每个数据块所存储的位置。所述元数据和所述分布式复制卷中的数据块可以分开存储,通过读取元数据,可以找到所有的数据块,并可以同时对数据块进行读取。
在本实施方式中,所述存储模块105基于所述代理单元70提供的反向代理服务将所述分布式复制卷传送至所述存储服务器601中,并通过所述存储服务器601中的对象存储单元50所提供的对象存储服务及分布存储单元40所提供的分布存储服务而实现所述文件的对象存储。
在本实施方式中,所述代理单元70提供的反向代理使得在一对象存储单元50无法正常运行时,可以通过其他对象存储单元50进行文件数据的传输,从而提高数据传输的稳定性,有效解决单点失效的问题。
在本实施方式中,所述存储模块105还通过所述代理单元70对所述客户端2传送的所述多个分布式复制卷进行负载均衡。即,所述代理单元70可以根据每一存储区60的当前存储容量或剩余存储容量对所述多个分布式复制卷的存储位置进行调整,从而实现数据存储的负载均衡。
请参阅图4所示,是本发明提供的分布式存储方法的流程图。根据不同的需求,所述流程图中步骤的顺序可以改变,某些步骤可以省略。
步骤S401,获取用户待存储的文件。
在本实施方式中,当所述用户可以在所述客户端2上通过账号及密码登入分布式存储程序,并将所述待存储的文件上传至所述分布式存储程序时,获取所述待存储的文件。
在其他实施方式中,所述用户也可以在所述客户端2上使用账号及密码并通过web网页的方式登入所述分布式存储程序,并通过所述web网页将所述待存储的文件上传至所述分布式存储程序。
在本实施方式中,所述客户端2包括多个客户端接口,用于与所述存储区60通信连接。其中,客户端接口的数量与所述存储区60的数量相同。
步骤S402,对待存储的所述文件进行分布处理。
具体的,所述步骤S402包括对所述文件的数据在高速存储器中进行缓存,预读所述文件的目录项及元数据信息,并创建多个分布式复制卷,然后将缓存的所述文件的数据分布到所述多个分布式复制卷,从而完成所述文件的分布处理。
步骤S403,确定所述用户的存储需求。
在本实施方式中,所述存储需求至少包括文件存储及对象存储。其中,基于文件存储的数据可以直接读取和写入,基于对象存储的数据读写操作和元数据分离,先读取元数据确定数据位置,再从确定的位置进行数据的读写操作。
在本实施方式中,所述步骤S403具体包括当用户登入所述分布式存储程序时,识别用户身份,并根据识别出的用户身份确定所述用户的存储需求。
具体的,所述分布式存储系统100中预先存储有用户身份与存储需求的对应关系,通过用户登入所述分布式存储程序的账号识别所述用户身份,并根据识别出的用户身份与预先存储的用户身份与存储需求的对应关系确定所述用户的存储需求。例如,所述用户身份可以是工作岗位,用户身份与存储需求的对应关系具体包括:工作岗位为基础服务人员及系统管理人员对应的存储需求为文件存储,工作岗位为系统开发人员对应的存储需求为对象存储。如此,当确定所述用户的身份为基础服务人员或系统管理人员时,确定所述用户的存储需求为文件存储。当确定所述用户的身份为系统开发人员时,确定所述用户的存储需求为对象存储。
在其他实施方式中,所述步骤S403具体包括判断获取的所述文件的容量是否大于预设值。当判定获取的所述文件的容量大于预设值时,确定所述用户的存储需求为对象存储。当判定获取的所述文件的容量小于或等于预设值时,确定所述用户的存储需求为文件存储。其中,所述预设值为500GB。可以理解的是,所述预设值也可以根据需求设置为其他合适的数值。
步骤S404,确定所述用户的存储需求为文件存储时,将经过分布处理的所述文件通过所述分布存储单元40存储至多个存储区60。
在本实施方式中,所述步骤S404包括将存储有所述文件的数据的所述多个分布式复制卷分别通过一客户端接口及所述分布存储单元40分别存储至每一存储区60的存储服务器601中。
具体的,当所述文件的数据分布到所述分布式复制卷时,将所述分布式复制卷通过所述客户端接口传送至与所述客户端2通信连接的存储服务器601中,并通过所述存储服务器601中的分布存储单元40所提供的分布存储服务而实现所述文件的分布式存储。
步骤S405,当确定用户的存储需求为对象存储时,将经过分布处理的所述文件通过所述对象存储单元50及所述分布存储单元40存储至所述多个存储区60。
在本实施方式中,所述步骤S405具体包括通过所述对象存储单元50创建与客户端接口传送的所述分布式复制卷对应的元数据,将所述分布式复制卷及对应的所述元数据通过所述分布存储单元40存储至所述存储区60的存储服务器601中。其中,所述元数据包括所述分布式复制卷中每个数据块所存储的位置。所述元数据和所述分布式复制卷中的数据块可以分开存储,通过读取元数据,可以找到所有的数据块,并可以同时对数据块进行读取。
在本实施方式中,所述步骤S405还包括基于所述代理单元70提供的反向代理服务将所述分布式复制卷传送至与所述客户端2通信连接的存储服务器601中,并通过所述存储服务器601中的对象存储单元50所提供的对象存储服务及分布存储单元40所提供的分布存储服务而实现所述文件的对象存储。
在本实施方式中,所述代理单元70提供的反向代理使得在一对象存储单元50无法正常运行时,通过其他对象存储单元50进行文件数据的传输,从而提高数据传输的稳定性,有效解决单点失效的问题。
在本实施方式中,通过所述代理单元70对所述客户端2传送的所述多个分布式复制卷进行负载均衡。即,所述代理单元70可以根据每一存储区60的当前存储容量或剩余存储容量对所述多个分布式复制卷的存储位置进行调整,从而实现数据存储的负载均衡。
进一步地,所述方法还可包括以下步骤:在一子服务器中设置反向代理而将所述子服务器部署为所述代理单元70,对至少两个子服务器进行磁区分割而部署形成所述多个存储区60,及在每一存储区60中设置所述对象存储单元50。
在本实施方式中,所述代理单元70可以接收来自所述客户端2的网络访问连接请求,然后将所述网络访问连接请求转发给所述存储区60的存储服务器601,并将所述存储服务器601处理的结果返回给所述客户端2,以避免所述存储区60中的所述对象存储单元50出现单点失效的问题。
在本实施方式中,所述代理单元70还安装有Linux distribution和DokcerEngine的运行环境,用于提供分布式文件处理及管理功能。
在本实施方式中,所述存储区60的存储服务器601内分割有多个磁区,从而便于在所述存储服务器601内部实现分布式的数据存储。在其他实施方式中,所述存储区60也可以包括所述存储服务器601的部分磁区,从而在不同存储区60之间实现分布式的数据存储,以减少硬件成本。需要说明的是,所述存储服务器601中也安装有Linux distribution和Dokcer Engine的运行环境,作为所述分布存储单元40,用于提供分布式存储服务。
在本实施方式中,所述方法还包括设置所述存储服务器601的读取缓存容量(performance.cache-size)及I/O操作线程数量(performance.io-thread-count),以满足对象存储服务。其中,所述读取缓存容量为512MB,所述I/O操作线程数量为64。
在本实施方式中,所述对象存储单元50为Minio服务接口。所述方法包括将预先定制及打包完成的Minio Docker Images导入所述存储服务器601的设定文件中,以设置所述对象存储单元50。
需要说明的是,为正确存储和读取文件,每一对象存储单元50设置相同的认证令牌(Credential Token),并且保证每个存储服务器601的挂载点(Mount Point)的一致性。
所述服务器1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本发明提供的分布式存储方法、服务器及存储介质可以兼容文件存储和对象存储,便于用户根据实际需求选择合适的存储方式,使得具有文件存储需求的用户或用户在有文件存储需求时进行文件存储以减少成本,使得具有对象存储需求的用户或用户在有对象存储需求时进行对象存储以提高数据存储的扩展性。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由同一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种分布式存储方法,其特征在于,所述方法包括:
获取用户待存储的文件;
对待存储的所述文件进行分布处理;
确定所述用户的存储需求,其中,所述存储需求至少包括文件存储及对象存储;
当确定所述用户的存储需求为文件存储时,将经过分布处理的所述文件通过分布存储单元存储至多个存储区;及
当确定所述用户的存储需求为对象存储时,将经过分布处理的所述文件通过对象存储单元及所述分布存储单元存储至所述多个存储区。
2.如权利要求1所述的分布式存储方法,其特征在于,所述对待存储的所述文件进行分布处理包括:
对所述文件的数据在高速存储器中进行缓存;
预读所述文件的目录项及元数据信息;
创建多个分布式复制卷;及
将缓存的所述文件的数据分布到所述多个分布式复制卷。
3.如权利要求2所述的分布式存储方法,其特征在于,所述将经过分布处理的所述文件通过分布存储单元存储至多个存储区包括:
将所述多个分布式复制卷分别通过一客户端接口及所述分布存储单元存储至所述存储区的存储服务器中。
4.如权利要求2所述的分布式存储方法,其特征在于,所述将经过分布处理的所述文件通过对象存储单元及所述分布存储单元存储至所述多个存储区包括:
通过所述对象存储单元创建与客户端接口传送的所述分布式复制卷对应的元数据;及
将所述分布式复制卷及对应的所述元数据通过所述分布存储单元存储至所述存储区的存储服务器中。
5.如权利要求4所述的分布式存储方法,其特征在于,所述将经过分布处理的所述文件通过对象存储单元及所述分布存储单元存储至所述多个存储区还包括:
基于代理单元将所述客户端接口传送的所述多个分布式复制卷分别传送至所述对象存储单元,其中,所述代理单元用于提供反向代理及负载均衡。
6.如权利要求1所述的分布式存储方法,其特征在于,所述确定所述用户的存储需求包括:
当用户登入分布式存储程序时,识别用户身份,并根据识别出的所述用户身份确定所述用户的存储需求。
7.如权利要求1所述的分布式存储方法,其特征在于,所述确定所述用户的存储需求包括:
判断获取的所述文件的容量是否大于预设值;
当判定获取的所述文件的容量大于预设值时,确定所述用户的存储需求为对象存储;及
当判定获取的所述文件的容量小于或等于预设值时,确定所述用户的存储需求为文件存储。
8.如权利要求1所述的分布式存储方法,其特征在于,所述方法还包括:
在一子服务器中设置反向代理而将所述子服务器部署为代理单元;
对至少两个子服务器进行磁区分割而部署形成所述多个存储区;及
在每一存储区中设置所述对象存储单元。
9.一种服务器,其特征在于,所述服务器包括:
处理器;以及
存储器,所述存储器中存储有多个程序模块,所述多个程序模块由所述处理器加载并执行如权利要求1至8中任意一项所述的分布式存储方法。
10.一种计算机可读存储介质,其上存储有至少一条计算机指令,其特征在于,所述指令由处理器加载并执行如权利要求1至8中任意一项所述的分布式存储方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010808801.6A CN114077578A (zh) | 2020-08-12 | 2020-08-12 | 分布式存储方法、服务器及存储介质 |
US17/400,473 US11644998B2 (en) | 2020-08-12 | 2021-08-12 | Server and method for managing distributed storage |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010808801.6A CN114077578A (zh) | 2020-08-12 | 2020-08-12 | 分布式存储方法、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114077578A true CN114077578A (zh) | 2022-02-22 |
Family
ID=80222837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010808801.6A Pending CN114077578A (zh) | 2020-08-12 | 2020-08-12 | 分布式存储方法、服务器及存储介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11644998B2 (zh) |
CN (1) | CN114077578A (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5137409B2 (ja) * | 2007-02-05 | 2013-02-06 | 株式会社日立製作所 | ファイル格納方法及び計算機システム |
JP5181896B2 (ja) * | 2008-07-25 | 2013-04-10 | ブラザー工業株式会社 | 表示情報管理システム及びプログラム |
US9781206B2 (en) | 2014-05-09 | 2017-10-03 | Lyve Minds, Inc. | Blended storage allocation on a storage agent |
TWI695308B (zh) | 2017-09-15 | 2020-06-01 | 林勁璋 | 分散式互動介面系統及其操作方法 |
US11593020B2 (en) * | 2020-09-02 | 2023-02-28 | EMC IP Holding Company LLC | Consistent entity tags with multiple protocol data access |
US11579781B2 (en) * | 2020-10-23 | 2023-02-14 | Red Hat, Inc. | Pooling distributed storage nodes that have specialized hardware |
-
2020
- 2020-08-12 CN CN202010808801.6A patent/CN114077578A/zh active Pending
-
2021
- 2021-08-12 US US17/400,473 patent/US11644998B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20220050596A1 (en) | 2022-02-17 |
US11644998B2 (en) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170153909A1 (en) | Methods and Devices for Acquiring Data Using Virtual Machine and Host Machine | |
CN110196843B (zh) | 一种基于容器集群的文件分发方法及容器集群 | |
CN110764688B (zh) | 对数据进行处理的方法和装置 | |
CN111651424B (zh) | 一种数据处理方法、装置、数据节点及存储介质 | |
CN110781149A (zh) | 管理直播间信息的方法、装置、设备及存储介质 | |
CN110851474A (zh) | 数据查询方法、数据库中间件、数据查询设备及存储介质 | |
EP4310691A1 (en) | Blockchain-based data processing method, apparatus, and device, and storage medium | |
CN113051102B (zh) | 文件备份方法、装置、系统、存储介质和计算机设备 | |
CN112866406A (zh) | 一种数据存储方法、系统、装置、设备及存储介质 | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
CN115391356A (zh) | 数据处理方法、装置、设备、介质和计算机程序产品 | |
CN112597406A (zh) | 一种文件传输方法、装置、终端设备及存储介质 | |
US20180246657A1 (en) | Data compression with inline compression metadata | |
CN113726838B (zh) | 文件传输方法、装置、设备及存储介质 | |
CN114077578A (zh) | 分布式存储方法、服务器及存储介质 | |
CN111245949A (zh) | 文件归档传输方法、装置及设备 | |
CN112130747A (zh) | 分布式对象存储系统及数据读写方法 | |
TWI777219B (zh) | 分散式存儲方法、伺服器及存儲介質 | |
CN117056033A (zh) | 数据处理方法、装置、mec服务器及存储介质 | |
CN109446074B (zh) | 点播分发系统压力测试方法及装置、计算机装置及计算机存储介质 | |
CN113836331A (zh) | 图像查询方法、设备及存储介质 | |
CN113032820A (zh) | 文件存储方法、访问方法、装置、设备及存储介质 | |
CN112861188A (zh) | 用于多集群的数据汇集系统和方法 | |
CN111600943A (zh) | 一种用于获取目标数据的方法与设备 | |
CN110912953A (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 |