CN108287669A - 数据存储方法、装置及存储介质 - Google Patents
数据存储方法、装置及存储介质 Download PDFInfo
- Publication number
- CN108287669A CN108287669A CN201810079304.XA CN201810079304A CN108287669A CN 108287669 A CN108287669 A CN 108287669A CN 201810079304 A CN201810079304 A CN 201810079304A CN 108287669 A CN108287669 A CN 108287669A
- Authority
- CN
- China
- Prior art keywords
- osd
- data
- service groups
- storage
- group identification
- 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.)
- Granted
Links
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0667—Virtualisation aspects at data level, e.g. file, record or object virtualisation
-
- 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
-
- 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/0614—Improving the reliability of storage 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/064—Management of blocks
-
- 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/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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]
Abstract
本发明提供了一种数据存储方法、装置及计算机可读存储介质,该方法包括以下步骤:每隔预设周期按照预设规则确定各业务组使用的OSD的数量,并为同一个业务组的OSD分配一个唯一的子集群标识;接收用户向分布式存储系统存储数据文件的请求;根据用户的识别信息确定该用户所属的业务组及该业务组OSD的子集群标识;将所述数据文件均匀切分为多个数据块,利用CRUSH算法将每个数据块的多个副本存储在具有对应子集群标识的OSD中。本发明通过为各业务组分配OSD,实现资源的合理配置,通过在集群的拓扑结构中加入子集群的逻辑划分,将OSD故障对存储系统的影响控制在子集群的范围内。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种数据存储方法、装置及计算机可读存储介质。
背景技术
分布式存储系统是将数据分散地存储在多台独立的设备上的系统,Ceph是一种广泛应用的开源的分布式存储系统,它将数据视为对象(Object),通过在可扩展散列下的受控复制(Controlled Replication Under Scalable Hashing,CRUSH)算法将对象均匀分布到存储设备集群之中,并提供动态扩展、平衡和恢复。
目前,在分布式存储系统中,多采用三副本机制在三个不同的位置对数据进行存储以提高数据存储的可靠性,数据在以三副本的形式保存的时候,分别以数据中心、机房、机柜、主机、对象存储设备(Object Storage Device,OSD)的层次结构来进行故障域的规划。一旦其中一个OSD出现故障,则为了保证其三副本的可用性,将进行整个集群的数据迁移,该数据迁移的过程占用大量的系统资源,大大影响系统性能。
发明内容
为解决现有技术存在的不足,本发明提供一种存储方法、装置及计算机可读存储介质,可以为各业务组分配OSD,在集群的拓扑结构中主机的层次上面加入一个子集群的逻辑划分,实现资源的合理配置并将OSD故障对存储系统的影响控制在子集群的范围内。
为实现上述目的,本发明提供一种数据存储方法,应用于电子装置,该电子装置通过网络连接分布式存储系统,分布式存储系统提供一系列主机及OSD,其特征在于,该方法包括:
设备分配步骤:每隔预设周期按照预设规则确定各业务组使用的OSD的数量,并为同一个业务组的OSD分配一个唯一的子集群标识;
请求接收步骤:接收用户向分布式存储系统存储数据文件的请求;
业务组确定步骤:根据用户的识别信息确定该用户所属的业务组及该业务组OSD的子集群标识;及
文件存储步骤:将所述数据文件均匀切分为多个数据块,利用CRUSH算法将每个数据块的多个副本存储在具有对应子集群标识的OSD中。
优选地,所述设备分配步骤中的预设规则包括:
统计各业务组在一个预设周期内在分布式存储系统中存储数据的历史资料,包括总数据大小、涉及的OSD总数量和发生数据迁移的OSD数量;
根据各业务组的总数据大小、涉及的OSD总数量和发生数据迁移的OSD数量计算得到所有业务组在该预设周期内在该分布式存储系统中存储数据的平均数据大小、平均OSD数量和发生数据迁移的OSD平均数量;
当某个业务组的总数据大小与所有业务组的平均数据大小之差每大于第一预设阈值时,在所述涉及的OSD总数量的基础上,为该业务组增加第一预设数量的OSD;
当某个业务组发生数据迁移的OSD数量与所有业务组发生数据迁移的OSD平均数量之差每大于第二预设阈值时,在所述涉及的OSD总数量的基础上,为该业务组增加第二预设数量的OSD。
优选地,具有不同子集群标识的OSD位于不同的主机上。
优选地,所述文件存储步骤包括以下步骤:
将所述数据文件均匀切分为多个数据块;
将每个数据块映射到一个PG中;
利用CRUSH算法将每个PG的多个副本存储在具有对应子集群标识的OSD中。
优选地,该方法还包括:
当一个OSD发生故障时,利用该OSD所属子集群的其它OSD存储的副本数据恢复该OSD中存储的数据。
本发明还提供一种电子装置,该电子装置包括存储器和处理器,所述存储器中包括数据存储程序。该电子装置的处理器执行存储器中的数据存储程序时,实现以下步骤:
设备分配步骤:每隔预设周期按照预设规则确定各业务组使用的OSD的数量,并为同一个业务组的OSD分配一个唯一的子集群标识;
请求接收步骤:接收用户向分布式存储系统存储数据文件的请求;
业务组确定步骤:根据用户的识别信息确定该用户所属的业务组及该业务组OSD的子集群标识;及
文件存储步骤:将所述数据文件均匀切分为多个数据块,利用CRUSH算法将每个数据块的多个副本存储在具有对应子集群标识的OSD中。
优选地,所述设备分配步骤中的预设规则包括:
统计各业务组在一个预设周期内在分布式存储系统中存储数据的历史资料,包括总数据大小、涉及的OSD总数量和发生数据迁移的OSD数量;
根据各业务组的总数据大小、涉及的OSD总数量和发生数据迁移的OSD数量计算得到所有业务组在该预设周期内在该分布式存储系统中存储数据的平均数据大小、平均OSD数量和发生数据迁移的OSD平均数量;
当某个业务组的总数据大小与所有业务组的平均数据大小之差每大于第一预设阈值时,在所述涉及的OSD总数量的基础上,为该业务组增加第一预设数量的OSD;
当某个业务组发生数据迁移的OSD数量与所有业务组发生数据迁移的OSD平均数量之差每大于第二预设阈值时,在所述涉及的OSD总数量的基础上,为该业务组增加第二预设数量的OSD。
优选地,具有不同子集群标识的OSD位于不同的主机上。
优选地,所述文件存储步骤包括以下步骤:
将所述数据文件均匀切分为多个数据块;
将每个数据块映射到一个PG中;
利用CRUSH算法将每个PG的多个副本存储在具有对应子集群标识的OSD中。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中包括数据存储程序,所述数据存储程序被处理器执行时,实现如上所述的数据存储方法中的任意步骤。
本发明提供的数据存储方法、装置及计算机可读存储介质,根据预设规则确定各业务组使用的OSD的数量,并为同一个业务组的OSD分配一个唯一的子集群标识,以此在集群的拓扑结构中主机的层次上面加入一个子集群的逻辑划分,然后,将数据文件均匀切分成多个数据块,再将每个数据块映射到一个PG中,最后利用CRUSH算法将每个PG的多个副本分别存储在具有对应子集群标识的OSD中。利用本发明,实现了资源的合理配置,还可将OSD故障对存储系统的影响控制在子集群的范围内。
附图说明
图1为本发明电子装置较佳实施例的应用环境图。
图2为图1中数据存储程序的程序模块图。
图3为本发明的数据文件存储的示意图。
图4为本发明数据存储方法较佳实施例的流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
本领域的技术人员知道,本发明的实施方式可以实现为一种方法、装置、设备、系统或计算机程序产品。因此,本发明可以具体实现为完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
下面将参考若干具体实施例来描述本发明的原理和精神。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1所示,为本发明电子装置较佳实施例的应用环境图。在该实施例中,电子装置1通过网络2与分布式存储系统3连接,通过网络4与客户端5连接。分布式存储系统3包含若干间机房,每间机房中有若干台机柜,每台机柜中安装有若干台主机,每台主机中包含若干个OSD,主机之间通过光纤高速交换机进行连接,机柜之间通过带宽更高的光纤交换完成交互连接。电子装置1利用本发明提供的数据存储程序10将用户在客户端5发送的数据文件存储至分布式存储系统3的OSD中。
电子装置1可以是服务器、智能手机、平板电脑、便携计算机、桌上型计算机等具有存储和运算功能的终端设备。
该电子装置1包括存储器11、处理器12、网络接口13及通信总线14。
网络接口13可以包括标准的有线接口、无线接口(如WI-FI接口)。通信总线14用于实现这些组件之间的连接通信。
存储器11包括至少一种类型的可读存储介质。所述至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器等的非易失性存储介质。在一些实施例中,所述可读存储介质可以是所述电子装置1的内部存储单元,例如该电子装置1的硬盘。在另一些实施例中,所述可读存储介质也可以是所述电子装置1的外部存储器11,例如所述电子装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
在本实施例中,所述存储器11存储所述数据存储程序10的程序代码以及处理器12执行数据存储程序10的程序代码应用到的其他数据以及最后输出的数据等。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片。
图1仅示出了具有组件11-14的电子装置1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
可选地,该电子装置1还可以包括用户接口,用户接口可以包括输入单元比如键盘(Keyboard)、语音输入装置比如麦克风(microphone)等具有语音识别功能的设备、语音输出装置比如音响、耳机等,可选地用户接口还可以包括标准的有线接口、无线接口。
可选地,该电子装置1还可以包括显示器。显示器在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。显示器用于显示电子装置1处理的信息以及可视化的用户界面。
可选地,该电子装置1还包括触摸传感器。所述触摸传感器所提供的供用户进行触摸操作的区域称为触控区域。此外,这里所述的触摸传感器可以为电阻式触摸传感器、电容式触摸传感器等。而且,所述触摸传感器不仅包括接触式的触摸传感器,也可包括接近式的触摸传感器等。此外,所述触摸传感器可以为单个传感器,也可以为例如阵列布置的多个传感器。用户可以通过触摸启动数据存储程序10。
该电子装置1还可以包括射频(Radio Frequency,RF)电路、传感器和音频电路等等,在此不再赘述。
图1中的数据存储程序10,在被处理器12执行时,实现以下步骤:
设备分配步骤:每隔预设周期按照预设规则确定各业务组使用的OSD的数量,并为同一个业务组的OSD分配一个唯一的子集群标识;
请求接收步骤:接收用户向分布式存储系统存储数据文件的请求;
业务组确定步骤:根据用户的识别信息确定该用户所属的业务组及该业务组OSD的子集群标识;及
文件存储步骤:将所述数据文件均匀切分为多个数据块,利用CRUSH算法将每个数据块的多个副本存储在具有对应子集群标识的OSD中。
关于上述步骤的详细介绍,请参照下述图2关于数据存储程序10的程序模块图、图3关于数据文件存储的示意图及图4关于数据存储方法较佳实施例的流程图的说明。
参照图2所示,为图1中数据存储程序10的程序模块图。在本实施例中,数据存储程序10被分割为多个模块,该多个模块被存储于存储器11中,并由处理器12执行,以完成本发明。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段。
所述数据存储程序10可以被分割为:设备分配模块110、请求接收模块120、业务组确定模块130和文件存储模块140。
设备分配模块110,用于每隔预设周期按照预设规则确定各业务组使用的OSD的数量,并为同一个业务组的OSD分配一个唯一的子集群标识。在本实施例中,所述预设周期为一个季度,所述预设规则包括:
统计各业务组在一个预设周期(例如前三个月)内在分布式存储系统中存储数据的历史资料,包括总数据大小、涉及的OSD总数量、发生数据迁移的OSD数量;
根据各业务组的总数据大小、涉及的OSD总数量、发生数据迁移的OSD数量计算得到所有业务组在该预设时间范围内在该分布式存储系统中存储数据的平均数据大小、涉及的OSD平均数量和发生数据迁移的OSD平均数量;
当业务组的总数据大小与平均数据大小之差每大于第一预设阈值(例如500GB)时,在所述涉及的OSD总数量基础上,为该业务组增加第一预设数量(例如2个)的OSD,
当业务组发生数据迁移的OSD数量与所有业务组发生数据迁移的OSD平均数量之差每大于第二预设阈值(例如2个)时,在所述涉及的OSD总数量基础上,为该业务组增加第二预设数量(例如1个)的OSD。
该预设规则是为了根据实际业务需求,动态地,为业务数量大、数据迁移频繁的业务组分配充足的OSD。为业务组分配OSD时,具有不同子集群标识的OSD应该位于不同的主机上,目的是让在集群的拓扑结构中加入的子集群的逻辑划分在主机的层次上面。
请求接收模块120,用于接收用户向分布式存储系统存储数据文件的请求。当用户在客户端5发出向分布式存储系统存储数据文件的请求时,请求接收模块120接收该请求,并将该请求发送至分布式存储系统3。
业务组确定模块130,用于根据用户的识别信息确定该用户所属的业务组及该业务组OSD的子集群标识。因为设备分配模块110为每个业务组分配了确定的OSD,所以在存储数据文件时要先确定数据文件属于哪个业务组,以此确定该数据文件的存储范围,此时可以通过识别发出存储数据文件请求的用户得知数据文件所属的业务组。所述用户的识别信息可以包括用户IP地址、系统登录名、身份验证信息等等。
文件存储模块140,将所述数据文件均匀切分为多个数据块,利用CRUSH算法将每个数据块的多个副本存储在具有对应子集群标识的OSD中。本实施例中,在存储数据文件时,先将所述数据文件按照特定的大小均匀切分成多个数据块,再将每个数据块映射到一个PG中,获得每个PG的PG识别码(PlacementGroupid,PGid),最后利用CRUSH算法根据PGid将PG的多个副本存储在具有对应子集群标识的OSD中。一个PG有n个副本,就会被存储到n个OSD中,n的数值可以根据实际应用中对于可靠性的需求而配置,在通常情况下取值3。将数据文件均匀切分成数据块的过程类似于磁盘条带化的过程,这样做的目的是:其一,可以将大小不等的数据文件变成多个容量一致,便于高效管理的数据块;其二,将对数据文件的串行处理变成对多个数据块的并行化处理,提高处理速度。Ceph分布式存储系统将数据文件切分成数据块时默认的数据块大小是4MB,因此一个数据文件切分成数据块时数据块的数量通常非常多,如果在存储设备集群中对大量的对象进行遍历寻址,速度将会非常缓慢,为了解决这些问题,我们引入PG的概念。PG是抽象的存储节点,每个数据块都会固定映射到一个PG中,而一个PG中通常可包含多个对象。同一个PG内的所有数据块具有相同的存储策略,也就是说,同一个PG内的数据块会被存储在相同的OSD中,同一个PG的不同副本可以视为相似的PG,但它们会被存储在不同的OSD中。在本实施例中,无论在数据寻址还是在数据迁移时,都是以PG作为基本单位,不会直接操作数据块。数据文件所属的业务组由业务组确定模块130得知,各业务组使用的OSD的数量由设备分配模块110确定,故而可以设置PG的数量,因为PG数量的设置通常遵循以下规则:
当使用的OSD的数量少于5个时,PG的数量设置为128;
当使用的OSD的数量在5到10个时,PG的数量设置为512;
当使用的OSD的数量在10到50个时,PG的数量设置为4096;
当使用的OSD的数量大于50个时,可以使用PGCalculator等工具计算PG的数量。
PG的数量一旦确定,通常不再变更,因为它显著影响着集群的行为以及OSD等故障时的数据持久性,即灾难性事件导致数据丢失的概率。
所述CRUSH算法可以计算出数据的存储位置,即每个PG的每个副本将存储在哪个OSD上,它可以保证同一PG的不同副本存储在不同的OSD中。所述CRUSH算法在计算数据存储位置时需要一个集群拓扑结构的描述地图(CRUSH Map),在本实施例中,我们更改了CRUSHMap,在集群的拓扑结构中主机的层次上面加入了一个子集群的逻辑划分。参照图3所示,为本发明的文件存储的示意图,我们将包含有每个业务组使用的OSD的若干台主机分别作为一个子集群,每个子集群专门用于存储某个业务组的数据,这样CRUSH算法在计算数据存储位置时,可以保证每个PG的多个副本存储在同一子集群中且同一PG的不同副本存储在不同的主机上。
可以理解的是,将不同业务组的数据文件存储在不同的子集群中,例如,中国平安保险(集团)股份有限公司将寿险的数据文件和产险的数据文件分别存储在一个子集群中,这样做的好处是:当一个OSD发生故障时,可以利用该OSD所属子集群的其它OSD存储的副本数据恢复该OSD中存储的数据,数据不会丢失,数据恢复过程不占用其他业务组的系统资源,不会影响其他业务组的数据访问性能;当发生故障的OSD的数量大于或等于副本数时,可能会损失数据,但只会损失发生故障的OSD所在的子集群对应的业务组的数据,不会对其他业务组的数据产生影响,不会影响其他业务组的数据访问性能。
参照图4所示,为本发明数据存储方法较佳实施例的流程图。利用图1所示的架构,启动电子装置1,处理器12执行存储器11中存储的数据存储程序10,实现如下步骤:
步骤S10,利用设备分配模块110每隔预设周期按照预设规则确定各业务组使用的OSD的数量,并为同一个业务组的OSD分配一个唯一的子集群标识。在本实施例中,具有不同子集群标识的OSD应该位于不同的主机上,目的是让在集群的拓扑结构中加入的子集群的逻辑划分在主机的层次上面。所述预设周期及预设规则的请参照上述关于设备分配模块110的详细介绍。
步骤S20,利用请求接收模块120接收用户向分布式存储系统存储数据文件的请求。当用户在电子装置1上发出向分布式存储系统存储数据文件的请求时,请求接收模块120接收该用户存储数据文件的请求,并将该请求发送至分布式存储系统3。
步骤S30,利用业务组确定模块130根据用户的识别信息确定该用户所属的业务组及该业务组OSD的子集群标识。所述用户的识别信息可以包括IP地址、系统登录名、身份验证信息等。通过确定发出存储数据文件请求的用户所属的业务组,可以得知该数据文件的存储位范围。
步骤S40,利用文件存储模块140将所述数据文件均匀切分为多个数据块,并将每个数据块的多个副本存储在具有对应子集群标识的OSD中。数据文件存储的具体过程请参照上述关于文件存储模块140的详细介绍。需要进一步说明的是,用户存储数据文件,即客户端写入一个数据文件时,一个PG的多个副本包括一个主副本和多个从副本,CRUSH算法会为每个PG计算出与副本个数相等的OSD,例如,假设一个PG有一个主副本和两个从副本,则CRUSH算法会为该PG计算出三个OSD,并对该三个OSD进行编码,使这三个OSD具有不同的序号,序号设置最靠前的第一个OSD用于存储主副本,其余两个OSD用于存储从副本。存储数据文件时,所有的副本都必须存储在OSD中,而在读取数据时,所有的读取操作都从主副本读取。当主副本所在的OSD发生故障时,文件存储模块140会自动利用CRUSH算法重新计算出OSD,以供数据迁移和恢复,原本存储从副本的OSD中序号设置最靠前的OSD代替存储主副本的OSD,开始对外提供数据读取的操作。当从副本所在的OSD发生故障时,文件存储模块140自动利用CRUSH算法重新计算OSD的方式不变,但不影响主副本所在OSD的位置。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质可以是硬盘、多媒体卡、SD卡、闪存卡、SMC、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器等等中的任意一种或者几种的任意组合。所述计算机可读存储介质中包括待存储文件以及数据存储程序10,所述数据存储程序10被处理器执行时实现如下操作:
设备分配步骤:每隔预设周期按照预设规则确定各业务组使用的OSD的数量,并为同一个业务组的OSD分配一个唯一的子集群标识;
请求接收步骤:接收用户向分布式存储系统存储数据文件的请求;
业务组确定步骤:根据用户的识别信息确定该用户所属的业务组及该业务组OSD的子集群标识;及
文件存储步骤:将所述数据文件均匀切分为多个数据块,利用CRUSH算法将每个数据块的多个副本存储在具有对应子集群标识的OSD中。
本发明之计算机可读存储介质的具体实施方式与上述数据存储方法以及电子装置1的具体实施方式大致相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据存储方法,应用于电子装置,该电子装置通过网络连接分布式存储系统,分布式存储系统提供一系列主机及对象存储设备(Object Storage Device,OSD),其特征在于,该方法包括:
设备分配步骤:每隔预设周期按照预设规则确定各业务组使用的OSD的数量,并为同一个业务组的OSD分配一个唯一的子集群标识;
请求接收步骤:接收用户向分布式存储系统存储数据文件的请求;
业务组确定步骤:根据用户的识别信息确定该用户所属的业务组及该业务组OSD的子集群标识;及
文件存储步骤:将所述数据文件均匀切分为多个数据块,利用在可扩展散列下的受控复制(Controlled Replication Under Scalable Hashing,CRUSH)算法将每个数据块的多个副本存储在具有对应子集群标识的OSD中。
2.如权利要求1所述的数据存储方法,其特征在于,所述设备分配步骤中的预设规则包括:
统计各业务组在一个预设周期内在分布式存储系统中存储数据的历史资料,包括总数据大小、涉及的OSD总数量和发生数据迁移的OSD数量;
根据各业务组的总数据大小、涉及的OSD总数量和发生数据迁移的OSD数量计算得到所有业务组在该预设周期内在该分布式存储系统中存储数据的平均数据大小、平均OSD数量和发生数据迁移的OSD平均数量;
当某个业务组的总数据大小与所有业务组的平均数据大小之差每大于第一预设阈值时,在所述涉及的OSD总数量的基础上,为该业务组增加第一预设数量的OSD;
当某个业务组发生数据迁移的OSD数量与所有业务组发生数据迁移的OSD平均数量之差每大于第二预设阈值时,在所述涉及的OSD总数量的基础上,为该业务组增加第二预设数量的OSD。
3.如权利要求1或2所述的数据存储方法,其特征在于,具有不同子集群标识的OSD位于不同的主机上。
4.如权利要求1所述的数据存储方法,其特征在于,所述文件存储步骤包括以下步骤:
将所述数据文件均匀切分为多个数据块;
将每个数据块映射到一个归置组(placement group,PG)中;
利用CRUSH算法将每个PG的多个副本存储在具有对应子集群标识的OSD中。
5.如权利要求1或2所述的数据存储方法,其特征在于,该方法还包括:当一个OSD发生故障时,利用该OSD所属子集群的其它OSD存储的副本数据恢复该OSD中存储的数据。
6.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中包括数据存储程序,所述数据存储程序被所述处理器执行时实现如下步骤:
设备分配步骤:每隔预设周期按照预设规则确定各业务组使用的OSD的数量,并为同一个业务组的OSD分配一个唯一的子集群标识;
请求接收步骤:接收用户向分布式存储系统存储数据文件的请求;
业务组确定步骤:根据用户的识别信息确定该用户所属的业务组及该业务组OSD的子集群标识;及
文件存储步骤:将所述数据文件均匀切分为多个数据块,利用CRUSH算法将每个数据块的多个副本存储在具有对应子集群标识的OSD中。
7.如权利要求6所述的电子装置,其特征在于,所述设备分配步骤中的预设规则包括:
统计各业务组在一个预设周期内在分布式存储系统中存储数据的历史资料,包括总数据大小、涉及的OSD总数量和发生数据迁移的OSD数量;
根据各业务组的总数据大小、涉及的OSD总数量和发生数据迁移的OSD数量计算得到所有业务组在该预设周期内在该分布式存储系统中存储数据的平均数据大小、平均OSD数量和发生数据迁移的OSD平均数量;
当某个业务组的总数据大小与所有业务组的平均数据大小之差每大于第一预设阈值时,在所述涉及的OSD总数量的基础上,为该业务组增加第一预设数量的OSD;
当某个业务组发生数据迁移的OSD数量与所有业务组发生数据迁移的OSD平均数量之差每大于第二预设阈值时,在所述涉及的OSD总数量的基础上,为该业务组增加第二预设数量的OSD。
8.如权利要求6或7所述的电子装置,其特征在于,具有不同子集群标识的OSD位于不同的主机上。
9.如权利要求6所述的电子装置,其特征在于,所述文件存储步骤包括以下步骤:
将所述数据文件均匀切分为多个数据块;
将每个数据块映射到一个归置组(placement group,PG)中;
利用CRUSH算法将每个PG的多个副本存储在具有对应子集群标识的OSD中。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括数据存储程序,所述数据存储程序被处理器执行时,实现如权利要求1至5中任一项所述的数据储存方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810079304.XA CN108287669B (zh) | 2018-01-26 | 2018-01-26 | 数据存储方法、装置及存储介质 |
PCT/CN2018/089342 WO2019144553A1 (zh) | 2018-01-26 | 2018-05-31 | 数据存储方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810079304.XA CN108287669B (zh) | 2018-01-26 | 2018-01-26 | 数据存储方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108287669A true CN108287669A (zh) | 2018-07-17 |
CN108287669B CN108287669B (zh) | 2019-11-12 |
Family
ID=62835851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810079304.XA Active CN108287669B (zh) | 2018-01-26 | 2018-01-26 | 数据存储方法、装置及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108287669B (zh) |
WO (1) | WO2019144553A1 (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032526A (zh) * | 2018-07-26 | 2018-12-18 | 郑州云海信息技术有限公司 | 用于分布式文件系统的数据处理方法及装置 |
CN109213637A (zh) * | 2018-11-09 | 2019-01-15 | 浪潮电子信息产业股份有限公司 | 分布式文件系统集群节点的数据恢复方法、装置及介质 |
CN109284220A (zh) * | 2018-10-12 | 2019-01-29 | 深信服科技股份有限公司 | 集群故障恢复时长估算方法、装置、设备及存储介质 |
CN109388351A (zh) * | 2018-12-18 | 2019-02-26 | 平安科技(深圳)有限公司 | 一种分布式数据存储的方法及相关装置 |
CN109614276A (zh) * | 2018-11-28 | 2019-04-12 | 平安科技(深圳)有限公司 | 故障处理方法、装置、分布式存储系统和存储介质 |
CN109710456A (zh) * | 2018-12-10 | 2019-05-03 | 新华三技术有限公司 | 一种数据恢复方法及装置 |
CN109918229A (zh) * | 2019-02-18 | 2019-06-21 | 国家计算机网络与信息安全管理中心 | 非日志模式的数据库集群副本构建方法及装置 |
CN109992204A (zh) * | 2019-03-19 | 2019-07-09 | 新华三技术有限公司成都分公司 | 数据存储方法及装置 |
CN110297812A (zh) * | 2019-06-13 | 2019-10-01 | 深圳市比比赞科技有限公司 | 文件存储方法、文件同步的方法、计算机设备及存储介质 |
CN110515724A (zh) * | 2019-08-13 | 2019-11-29 | 新华三大数据技术有限公司 | 资源配置方法、装置、监视器及机器可读存储介质 |
CN111857577A (zh) * | 2020-06-29 | 2020-10-30 | 烽火通信科技股份有限公司 | 一种分布式存储系统下物理硬盘的管理方法与装置 |
WO2021057377A1 (zh) * | 2019-09-27 | 2021-04-01 | 华为技术有限公司 | 一种数据存储方法和数据存储装置 |
CN113031861A (zh) * | 2021-03-17 | 2021-06-25 | 联想凌拓科技有限公司 | 一种数据存储方法、装置、设备及计算机可读存储介质 |
CN113486040A (zh) * | 2021-07-29 | 2021-10-08 | 浙江大华技术股份有限公司 | 数据存储方法、装置、设备及介质 |
CN113568860A (zh) * | 2021-07-23 | 2021-10-29 | 北京百度网讯科技有限公司 | 基于深度学习的拓扑映射方法、装置、介质及程序产品 |
CN114253482A (zh) * | 2021-12-23 | 2022-03-29 | 深圳市名竹科技有限公司 | 数据储存方法、装置、计算机设备、存储介质 |
CN115712390A (zh) * | 2022-11-14 | 2023-02-24 | 安超云软件有限公司 | 可用数据条带分片数确定方法及系统 |
CN117081931A (zh) * | 2023-10-17 | 2023-11-17 | 之江实验室 | 一种异构分布式存储系统在线扩容方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8589362B1 (en) * | 2006-07-06 | 2013-11-19 | Oracle America, Inc. | Cluster metadata recovery |
CN104767778A (zh) * | 2014-01-07 | 2015-07-08 | 中兴通讯股份有限公司 | 任务处理方法及装置 |
CN105872029A (zh) * | 2016-03-28 | 2016-08-17 | 乐视控股(北京)有限公司 | 私有云对象存储的QoS的实现方法及系统 |
CN106383671A (zh) * | 2016-09-29 | 2017-02-08 | 乐视控股(北京)有限公司 | 一种块设备存储集群扩容系统及方法 |
CN107105050A (zh) * | 2017-05-11 | 2017-08-29 | 北京奇艺世纪科技有限公司 | 一种业务对象的存储、下载方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105867955A (zh) * | 2015-09-18 | 2016-08-17 | 乐视云计算有限公司 | 一种应用程序部署系统及部署方法 |
CN106339181B (zh) * | 2016-08-19 | 2019-05-24 | 华为技术有限公司 | 存储系统中数据处理方法和装置 |
CN107220005A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种数据操作方法及系统 |
CN107506437A (zh) * | 2017-08-23 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种基于crushmap结构的OSD选取方法及装置 |
-
2018
- 2018-01-26 CN CN201810079304.XA patent/CN108287669B/zh active Active
- 2018-05-31 WO PCT/CN2018/089342 patent/WO2019144553A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8589362B1 (en) * | 2006-07-06 | 2013-11-19 | Oracle America, Inc. | Cluster metadata recovery |
CN104767778A (zh) * | 2014-01-07 | 2015-07-08 | 中兴通讯股份有限公司 | 任务处理方法及装置 |
CN105872029A (zh) * | 2016-03-28 | 2016-08-17 | 乐视控股(北京)有限公司 | 私有云对象存储的QoS的实现方法及系统 |
CN106383671A (zh) * | 2016-09-29 | 2017-02-08 | 乐视控股(北京)有限公司 | 一种块设备存储集群扩容系统及方法 |
CN107105050A (zh) * | 2017-05-11 | 2017-08-29 | 北京奇艺世纪科技有限公司 | 一种业务对象的存储、下载方法及系统 |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032526A (zh) * | 2018-07-26 | 2018-12-18 | 郑州云海信息技术有限公司 | 用于分布式文件系统的数据处理方法及装置 |
CN109032526B (zh) * | 2018-07-26 | 2021-08-10 | 郑州云海信息技术有限公司 | 用于分布式文件系统的数据处理方法及装置 |
CN109284220A (zh) * | 2018-10-12 | 2019-01-29 | 深信服科技股份有限公司 | 集群故障恢复时长估算方法、装置、设备及存储介质 |
CN109284220B (zh) * | 2018-10-12 | 2022-06-21 | 深信服科技股份有限公司 | 集群故障恢复时长估算方法、装置、设备及存储介质 |
CN109213637A (zh) * | 2018-11-09 | 2019-01-15 | 浪潮电子信息产业股份有限公司 | 分布式文件系统集群节点的数据恢复方法、装置及介质 |
CN109614276A (zh) * | 2018-11-28 | 2019-04-12 | 平安科技(深圳)有限公司 | 故障处理方法、装置、分布式存储系统和存储介质 |
CN109614276B (zh) * | 2018-11-28 | 2021-09-21 | 平安科技(深圳)有限公司 | 故障处理方法、装置、分布式存储系统和存储介质 |
CN109710456A (zh) * | 2018-12-10 | 2019-05-03 | 新华三技术有限公司 | 一种数据恢复方法及装置 |
CN109710456B (zh) * | 2018-12-10 | 2021-03-23 | 新华三技术有限公司 | 一种数据恢复方法及装置 |
CN109388351A (zh) * | 2018-12-18 | 2019-02-26 | 平安科技(深圳)有限公司 | 一种分布式数据存储的方法及相关装置 |
CN109918229B (zh) * | 2019-02-18 | 2021-03-30 | 国家计算机网络与信息安全管理中心 | 非日志模式的数据库集群副本构建方法及装置 |
CN109918229A (zh) * | 2019-02-18 | 2019-06-21 | 国家计算机网络与信息安全管理中心 | 非日志模式的数据库集群副本构建方法及装置 |
CN109992204A (zh) * | 2019-03-19 | 2019-07-09 | 新华三技术有限公司成都分公司 | 数据存储方法及装置 |
CN110297812A (zh) * | 2019-06-13 | 2019-10-01 | 深圳市比比赞科技有限公司 | 文件存储方法、文件同步的方法、计算机设备及存储介质 |
CN110515724B (zh) * | 2019-08-13 | 2022-05-10 | 新华三大数据技术有限公司 | 资源配置方法、装置、监视器及机器可读存储介质 |
CN110515724A (zh) * | 2019-08-13 | 2019-11-29 | 新华三大数据技术有限公司 | 资源配置方法、装置、监视器及机器可读存储介质 |
WO2021057377A1 (zh) * | 2019-09-27 | 2021-04-01 | 华为技术有限公司 | 一种数据存储方法和数据存储装置 |
CN111857577A (zh) * | 2020-06-29 | 2020-10-30 | 烽火通信科技股份有限公司 | 一种分布式存储系统下物理硬盘的管理方法与装置 |
CN113031861A (zh) * | 2021-03-17 | 2021-06-25 | 联想凌拓科技有限公司 | 一种数据存储方法、装置、设备及计算机可读存储介质 |
CN113031861B (zh) * | 2021-03-17 | 2023-06-13 | 联想凌拓科技有限公司 | 一种数据存储方法、装置、设备及计算机可读存储介质 |
CN113568860B (zh) * | 2021-07-23 | 2022-08-19 | 北京百度网讯科技有限公司 | 基于深度学习的多机集群拓扑映射方法、装置及程序产品 |
CN113568860A (zh) * | 2021-07-23 | 2021-10-29 | 北京百度网讯科技有限公司 | 基于深度学习的拓扑映射方法、装置、介质及程序产品 |
CN113486040A (zh) * | 2021-07-29 | 2021-10-08 | 浙江大华技术股份有限公司 | 数据存储方法、装置、设备及介质 |
CN113486040B (zh) * | 2021-07-29 | 2024-04-12 | 浙江大华技术股份有限公司 | 数据存储方法、装置、设备及介质 |
CN114253482A (zh) * | 2021-12-23 | 2022-03-29 | 深圳市名竹科技有限公司 | 数据储存方法、装置、计算机设备、存储介质 |
CN115712390A (zh) * | 2022-11-14 | 2023-02-24 | 安超云软件有限公司 | 可用数据条带分片数确定方法及系统 |
CN117081931A (zh) * | 2023-10-17 | 2023-11-17 | 之江实验室 | 一种异构分布式存储系统在线扩容方法及装置 |
CN117081931B (zh) * | 2023-10-17 | 2024-01-09 | 之江实验室 | 一种异构分布式存储系统在线扩容方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2019144553A1 (zh) | 2019-08-01 |
CN108287669B (zh) | 2019-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108287669B (zh) | 数据存储方法、装置及存储介质 | |
US20220272242A1 (en) | Cluster resource management in distributed computing systems | |
US11586673B2 (en) | Data writing and reading method and apparatus, and cloud storage system | |
CN108780386B (zh) | 一种数据存储的方法、装置和系统 | |
CN110413201B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
EP3100184B1 (en) | Prioritizing data reconstruction in distributed storage systems | |
US8984085B2 (en) | Apparatus and method for controlling distributed memory cluster | |
US10387038B1 (en) | Storage space allocation for logical disk creation | |
US11296940B2 (en) | Centralized configuration data in a distributed file system | |
US20190163395A1 (en) | Storage system and control method thereof | |
CN108733311B (zh) | 用于管理存储系统的方法和设备 | |
US10616134B1 (en) | Prioritizing resource hosts for resource placement | |
US20130019087A1 (en) | System structure management device, system structure management method, and program | |
CN111949210A (zh) | 分布式存储系统中元数据存储方法、系统及存储介质 | |
CN110147203A (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
CN114746843A (zh) | 针对已分化数据恢复配置的存储器健康跟踪 | |
US8560698B2 (en) | Allocating unique identifiers using metadata | |
US9805109B2 (en) | Computer, control device for computer system, and recording medium | |
CN113687790A (zh) | 数据重构方法、装置、设备及存储介质 | |
CN106970830B (zh) | 一种分布式虚拟机的存储控制方法及虚拟机 | |
CN111158595B (zh) | 企业级异构存储资源调度方法及系统 | |
CN107967305A (zh) | 影像文件上传方法、服务器及可读存储介质 | |
CN105144073A (zh) | 可移除存储设备身份和配置信息 | |
CN109558082B (zh) | 分布式文件系统 | |
CN112748848A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |