CN108121510A - Osd选取方法、数据写入方法、装置和存储系统 - Google Patents

Osd选取方法、数据写入方法、装置和存储系统 Download PDF

Info

Publication number
CN108121510A
CN108121510A CN201711381076.3A CN201711381076A CN108121510A CN 108121510 A CN108121510 A CN 108121510A CN 201711381076 A CN201711381076 A CN 201711381076A CN 108121510 A CN108121510 A CN 108121510A
Authority
CN
China
Prior art keywords
osd
interim
data
write
main
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
Application number
CN201711381076.3A
Other languages
English (en)
Inventor
祝晓兴
顾雷雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Information Technologies Co Ltd
Original Assignee
Unis Huashan Information Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Unis Huashan Information Technologies Co Ltd filed Critical Unis Huashan Information Technologies Co Ltd
Priority to CN201711381076.3A priority Critical patent/CN108121510A/zh
Publication of CN108121510A publication Critical patent/CN108121510A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种OSD选取方法、数据写入方法、装置和存储系统,该OSD选取方法包括:在Ceph中的PG寻址映射阶段,根据CRUSH算法从第一可选OSD列表中确定当前PG对应的OSD组;将OSD组中读写速率最高的OSD设定为主OSD,将OSD组中除主OSD以外的其余OSD确定为从OSD;根据CRUSH算法从第二可选OSD列表中确定当前PG对应的临时OSD;其中,临时OSD是第二可选OSD列表中读写速率最高的OSD,且临时OSD与OSD组中的OSD不同;第一可选OSD列表是第二可选OSD列表的子集。通过本公开,可以提高数据读写速率。

Description

OSD选取方法、数据写入方法、装置和存储系统
技术领域
本公开涉及计算机技术领域,尤其是涉及一种OSD选取方法、数据写入方法、装置和存储系统。
背景技术
Ceph是一个开源项目,为块存储、对象存储和文件存储提供软件定义的、统一的存储解决方案。其作为一种可大规模扩展、高性能、无单点故障的分布式存储系统(如果该存储系统运行Ceph协议,则该存储系统也可以称为Ceph集群),可以对外提供海量、无差别以及统一的分布式存储服务。
Ceph在读写时的寻址流程涉及三次映射:文件(file)到对象(object)的映射、对象到PG(Placement Group,归置组)的映射、PG到OSD(Object-based Storage Device,基于对象的存储设备)的映射。其中,文件到对象的映射是通过将文件切分为尺寸一致的一个或多个对象实现,对象到PG的映射是通过hash(哈希)算法实现,PG到OSD的映射通过CRUSH算法完成。为了数据存储的可靠性,PG到OSD的映射中通常会选取多个OSD作为副本OSD,可以将CRUSH算法计算出的第一个OSD作为主OSD,或者,将编号靠前的OSD作为主OSD,副本OSD中的其余OSD作为从OSD,与主OSD进行通信交互。
上述主OSD的性能可能较差,当客户端需要从主OSD中读取数据或向主OSD写入数据时,读写速率会因主OSD的性能较差而较慢。为便于理解,以写数据为例说明如下:
参见图1所示的一种的数据写入示意图,其中,客户端可以理解为Ceph集群内部的数据处理接口,该客户端与Ceph集群的用户接口连接,用于接收来自用户接口的读/写数据任务或向用户接口提供读/写数据任务的处理结果,如果客户端接收到写数据任务,可以通过上述三次映射的寻址流程确定该数据需要写入到哪几个OSD中,例如确定出3个OSD,分别为主OSD,从OSD1、从OSD2,也可以将主OSD称为第一OSD,将从OSD1称为第二OSD,将从OSD2称为第三OSD。在确定OSD后,客户端直接与主OSD通信,向主OSD下发写入请求(1),主OSD收到写入请求(1)后,向从OSD1和从OSD2分别下发写入请求(2)和写入请求(3),当从OSD1和从OSD2各自完成写入操作后,分别向主OSD发送确认消息(4)和确认消息(5),主OSD接收到确认消息(4)和确认消息(5)后,确定从OSD完成写入操作,且自己也完成写入操作时,向客户端发送确认消息(6),以告知客户端写入操作已完成。
由此可知,客户端得知写入操作完成与否,需要上述三个OSD均实际完成写入操作,如果某个OSD的读写速率较差,客户端将会在一个相对较长的时间后才能获知写入操作完成,才能执行后续的读/写数据任务,进而会影响整体的数据读/写速率。
发明内容
有鉴于此,本公开的目的在于提供一种OSD选取方法、数据写入方法、装置和存储系统,用以提高数据读写速率。
为了实现上述目的,本公开采用的技术方案如下:
第一方面,本公开提供了一种OSD选取方法,包括:在Ceph中的PG寻址映射阶段,根据CRUSH算法从第一可选OSD列表中确定当前PG对应的OSD组;将OSD组中读写速率最高的OSD设定为主OSD,将OSD组中除主OSD以外的其余OSD确定为从OSD;根据CRUSH算法从第二可选OSD列表中确定当前PG对应的临时OSD;其中,临时OSD是第二可选OSD列表中读写速率最高的OSD,用于临时替代所述从OSD以快速响应所述主OSD的数据写入操作;且临时OSD与OSD组中的OSD不同;第一可选OSD列表是第二可选OSD列表的子集。
第二方面,本公开提供了一种数据写入方法,包括:根据在Ceph中的PG寻址映射阶段选取的OSD,查找待写数据对应的OSD组和临时OSD,其中,OSD组中的主OSD和临时OSD是基于读写速率优先原则选取的;将待写数据下发至主OSD;通过主OSD将待写数据分别下发至临时OSD和OSD组中的从OSD;当主OSD和临时OSD完成待写数据的写入操作时,向待写数据的客户端反馈写操作完成通知。
第三方面,本公开提供了一种OSD选取装置,包括:OSD组确定模块,用于在Ceph中的PG寻址映射阶段,根据CRUSH算法从第一可选OSD列表中确定当前PG对应的OSD组;将OSD组中读写速率最高的OSD设定为主OSD,将OSD组中除主OSD以外的其余OSD确定为从OSD;临时OSD确定模块,用于根据CRUSH算法从第二可选OSD列表中确定当前PG对应的临时OSD;其中,临时OSD是第二可选OSD列表中读写速率最高的OSD,用于临时替代所述从OSD以快速响应所述主OSD的数据写入操作;且临时OSD与OSD组中的OSD不同;第一可选OSD列表是第二可选OSD列表的子集。
第四方面,本公开提供了一种数据写入装置,包括:查找模块,用于根据在Ceph中的PG寻址映射阶段选取的OSD,查找待写数据对应的OSD组和临时OSD,其中,OSD组中的主OSD和临时OSD是基于读写速率优先原则选取的;第一下发模块,用于将待写数据下发至主OSD;第二下发模块,用于通过主OSD将待写数据分别下发至临时OSD和OSD组中的从OSD;完成反馈模块,用于当主OSD和临时OSD完成待写数据的写入操作时,向待写数据的客户端反馈写操作完成通知。
第五方面,本公开提供了一种存储系统,该存储系统包括通过网络连接的服务器集群,该服务器集群中的服务器包括存储器和处理器;其中,存储器用于存储一条或多条计算机指令,一条或多条计算机指令被处理器执行,以实现上述第一方面或第二方面的方法。
上述OSD选取方法及装置,将确定的OSD组中读写速率最高的OSD设定为主OSD,该OSD组中除主OSD以外的其余OSD确定为从OSD;这种基于读写速率选取主OSD的方式,可以有效提升客户端与主OSD交互时的数据读取速率。此外,该OSD选取方法及装置还新增了临时OSD,且该临时OSD是也是基于读写速率选取的,借助该读写速率较快的临时OSD和主OSD,便于后续提升数据写入速率。
上述数据写入方法及装置,查找待写数据对应的OSD组和临时OSD,通过OSD组的主OSD将待写数据下发至临时OSD和OSD组的从OSD,在主OSD和临时OSD完成待写数据的写入操作时,便向待写数据的客户端反馈写操作完成通知。与现有技术相比,上述方式新增了临时OSD,且主OSD和临时OSD是基于读写速率优先原则选取的,相较于从OSD,主OSD和临时OSD的写入速率更高,在主OSD和临时OSD较快地完成写入操作后便向客户端反馈写操作完成通知,无需等待从OSD完成写入操作才反馈,改善了从OSD因性能较差而导致的整体延迟的问题,提高了数据写入速率。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术提供的一种数据写入示意图;
图2为本公开实施方式提供的一种基于Ceph的寻址流程示意图;
图3为本公开实施方式提供的一种OSD选取示意图;
图4为本公开实施方式提供的一种OSD选取方法流程图;
图5为本公开实施方式提供的一种确定临时OSD的方法流程图;
图6为本公开实施方式提供的一种数据写入方法流程图;
图7为本公开实施方式提供的一种数据写入示意图;
图8为本公开实施方式提供的另一种数据写入方法流程图;
图9为本公开实施方式提供的另一种数据写入示意图;
图10为本公开实施方式提供的一种OSD选取装置的结构框图;
图11为本公开实施方式提供的一种数据写入装置的结构框图;
图12为本公开实施方式提供的另一种数据写入装置的结构框图;
图13为本公开实施方式提供的另一种数据写入装置的结构框图。
具体实施方式
为使本公开实施方式的目的、技术方案和优点更加清楚,下面将结合附图对本公开的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本公开一部分实施方式,而不是全部的实施方式。基于本公开中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本公开保护的范围。
参见图2所示的一种基于Ceph的寻址流程示意图,示出了文件到对象的映射、对象到PG的映射,以及PG到OSD的映射。其中,对象是数据和数据属性集的综合体,可以自我管理。PG是若干个对象的逻辑集合,为保证数据的可靠性,对象会被复制到多个OSD上,OSD是由一个已经存在Linux文件系统的物理磁盘驱动器和OSD服务组成。一旦应用程序访问Ceph集群执行写操作,文件将会以对象的形式存储在OSD中,通常情况下,为了保证数据存储的安全性和可靠性,文件切分为多个对象后,会将对象存储于PG对应的多个OSD中。为便于理解,对寻址流程涉及的三次映射可以有如下的具体实现方式:
(1)文件到对象的映射:当要写入一个文件时,首先需要把文件进行切分,把大小不限的文件切分为大小一致、可被RADOS(Reliable Autonomic Distributed ObjectStorage,分布式对象存储系统)高效管理的一个或多个对象,以使对单一文件实施的串行处理转为对多个对象实施的并行处理。在将文件切分为多个对象后,以线性映射的方式,每个对象获得唯一标识,该唯一标识可以包括待写入的文件标识和对象序号。诸如,设定对象的唯一标识为oid,oid可以由ino和ono构成,其中,ino表征待操作文件的元数据,是该文件的唯一身份ID;ono是由文件切分产生的对象的序号。
(2)对象到PG的映射:对象到PG的映射通过hash(哈希)算法实现:hash(oid)&mask-->PG_ID。具体实施方式为:首先使用ceph系统指定的静态哈希函数计算oid的hash值,将oid映射成一个近似均匀分布的伪随机数,然后将该伪随机数和mask(掩码)按位相与,得到PG_ID。若给定PG总数为m(m可以为2的整数幂),则mask的值为m-1。其中,mask为计算对象到PG映射关系所使用的哈希算法的掩码值,表示通过哈希算法最后计算所得结果所落在的范围。在一种实施方式中,mask可以为PG总数减一。例如,PG总数为1024个,则PG编号为0~1023,因此映射最后计算的结果应当落在0~1023上,所以令mask=1023。哈希算法计算所得的伪随机数和mask转换成二进制数按位相与之后,能够较好地保证当对象数量较多时,可均匀分布在每个PG上。
(3)PG到OSD的映射:PG到OSD的映射通过CRUSH(Controlled Replication UnderScalable Hashing)算法完成,根据给定冗余策略,一个PG需要映射到N个OSD上。在PG标识(PG_ID)、OSD的标识(OSD_ID)、特定常量r已知时,代入公式CRUSH_HASH(PG_ID,OSD_ID,r),得到伪随机数draw;再用各个OSD自身的权重乘以draw,得到各个OSD对应的乘积值;选出最大乘积值对应的OSD作为该PG对应的一个副本OSD。如果N大于1,则令r=r+1,重复上述步骤,以选取PG的另一个副本OSD。如果确定的两个副本OSD相同,则令r=r+2再重复计算,直至得到PG对应的N个副本OSD的全部编号。
当数据写入请求到达Ceph集群,Ceph集群会将该数据写入请求分布到多个节点的OSD,各个OSD的速率都会影响到Ceph的整体写入性能。为了便于理解,以PG需要映射到3个OSD副本为例说明现有的数据写入流程。当一个客户端需要向Ceph集群写入一个文件时,在完成前述三个映射的寻址流程后,确定该文件需要被写入的三个OSD,分别为第一OSD、第二OSD和第三OSD。其中,第一OSD、第二OSD和第三OSD并非以性能区分,而是以计算得到OSD的先后顺序,或者以OSD编号的前后进行区分。诸如,将计算确认的第一个OSD作为第一OSD,或者,将编号靠前的OSD作为第一OSD。当确定该文件对应的OSD后,客户端直接与第一OSD通信,向第一OSD发起写入请求,第一OSD在接收到该写入请求后,分别向第二OSD和第三OSD下发该写入请求。当第二OSD和第三OSD各自完成写入操作后,会分别向第一OSD发送确认信息,以告知第一OSD写入完成。第一OSD在确认第一OSD、第二OSD和第三OSD均写入完成后,确定该文件写入完成,并向客户端反馈完成通知。此外,客户端在读取数据时,也是向直接与第一OSD通信,向第一OSD发起读取请求,从第一OSD读取数据。
上述需要确定全部OSD都完成写入操作后,第一OSD才向客户端反馈完成的方式,会因性能较差的OSD而导致整体延迟。假设第一OSD、第二OSD和第三OSD完成写入操作分别需要300毫秒、500毫秒和600毫秒,虽然第一OSD仅用300毫秒就完成了数据写入操作,但需要再等耗时最长的第三OSD完成写入操作后才能向客户端反馈完成通知。由此可见,待写数据映射的多个OSD中,只要有一个OSD的性能较低,就会影响到整体的写入速率。尤其当待写文件的容量较大时,会导致延时严重。此外,由于第一OSD的选取并未参考速率因素,很有可能选取的第一OSD性能较差,由于客户端的读取流程是直接向第一OSD发起,读取速率也会受到第一OSD性能较差的影响。考虑到性能较差的OSD会制约整体读写速率,本公开实施例提供了一种OSD选取方法、数据写入方法、装置和网络设备。该方法、装置和网络设备在现有技术的基础上,新增临时OSD作为数据写入的临时冗余盘,并将磁盘读写速率作为临时OSD以及和客户端通信的主OSD的选取条件,这种改进方式可以较好地提升读写速率。本公开技术可以普遍应用于Ceph集群中,具体采用相关的软件或硬件实现,以下通过实施方式进行详细描述。
由于本公开实施例与现有技术相比,新增了临时OSD,本实施例给出了可用于本公开实施例的PG寻址映射,首先参见图3所示的一种OSD选取示意图,示出了Ceph集群中的监控节点(Monitor,MON),以及节点1、节点2至节点n;各节点可以理解为主机,每个主机都包括一个或多个OSD。为例描述方便,本公开实施例中,将一个PG对应的多个OSD作为一个OSD组,每个OSD组中包括一个主OSD和至少一个从OSD;其中,主OSD用于与Ceph集群内部的数据处理接口(即背景技术中的客户端)交互信息,该数据处理接口与Ceph集群的用户接口连接,用于接收来自用户接口的读/写数据任务或向用户接口提供读/写数据任务的处理结果。OSD组内的多个OSD可以互相通信。监控节点负责监视整个集群的运行状况,与集群内的其它各节点相关联。
在本公开实施例中的PG寻址映射在选取OSD组时,通常设定在一个保护域内选取。具体的,保护域是Ceph集群分区的进一步划分,其中,分区是集群中的存储区域单元,不同分区中包含若干台集群内主机,为用户提供不同的存储业务服务。通过分区可以满足不同存储业务数据间的隔离,以及用户使用不同性能的块存储需求,而保护域是在分区的基础之上为了提高集群的可靠性而设置的一个逻辑概念,一个分区被划分为若干个保护域,一个数据(包括副本或者分片)只存在一个保护域内,OSD组中的各OSD之间的心跳检测也在保护域内部。默认情况下,一个分区就是一个大的保护域。
本公开实施例中的PG寻址映射在选取临时OSD时,可以不受上述保护域限制而在Ceph集群内的所有OSD中选取,也即该临时OSD的读写速率可以是Ceph集群内的所有OSD中较优的,这种全局选取临时OSD的方式,一方面可以保证临时OSD的读写速率最优,另一方面也可以提高读写可靠性,具体的,可以在一个保护域内选取的OSD组都出现故障时,还有临时OSD保证数据可靠性。诸如,某数据对应3个OSD副本;如果其中2个OSD副本出现故障,而故障PG又在较长时间内无法迁移至新的OSD(例如,开启保护域的情况下,该保护域内没有其它可迁移OSD),若剩下的最后一个副本损坏,则会彻底丢失该数据,导致该数据无法恢复。但是由于临时OSD是不受保护域限制,而在全局内选取的,通常情况下该临时OSD保持正常,可以将剩下副本中的数据暂时复制到该临时OSD,等PG恢复正常后,可将数据迁移至新OSD,临时OSD删除存储数据以释放空间。这种方式极大提升了数据存储的安全性和可靠性。
由于本公开实施例选取OSD需要将读写速率作为考虑因素,在具体实施时,可以将读写速率作为OSD的新增属性,也即,每个OSD都携带有各自的读写速率属性信息,该读写速率属性信息可以为硬盘转速等信息。现有的OSD的硬盘种类大致分为SSD(Solid StateDrive,固态驱动器)、HHD(Hybrid Hard Drive,混合驱动器)、HDD(Hard Disk Drive,硬盘驱动器)三大类。传统的机械硬盘HDD的转速不同,读写速率也各不相同。诸如,普通5400转的SATA盘的读写速率通常在100M/s以内;7200转的SATA盘的读写速率通常在150M/s左右;更高速的10k转的SAS盘的读写速率通常在200M/s附近;15k转的SAS的读写速率通常在230M/s上下;而固态硬盘SSD的读写速率能达到500M/s以上;混合型的HHD使用传统硬盘加闪存的模式,速率通常在HDD和SSD之间,具体由其自带的闪存模块决定。
在实际应用中,根据实际需求以及自身Ceph集群所使用的硬盘,自行设定速度阈值,以将OSD的速率划分成3个区间,诸如快速区间,中速区间和慢速区间,分别可以相应采用fast、medium和slow作为OSD的速率属性值。诸如,某OSD的类型为固态硬盘SSD,其读写速率较高,处于快速区间;所以为该OSD的速率属性标记为fast。可以根据OSD的速率属性,简单直观地判断其读写速率的快慢情况。可以理解的是,临时OSD的速率属性在本实施例中应当为fast。
在其中一种实施方式中,参见图4所示的一种OSD选取方法流程图,该方法可以由Ceph集群中的监控节点执行,图4所示的方法具体包括如下步骤:
步骤S402,在Ceph中的PG寻址映射阶段,根据CRUSH算法从第一可选OSD列表中确定当前PG对应的OSD组;将OSD组中读写速率最高的OSD设定为主OSD,将OSD组中除主OSD以外的其余OSD确定为从OSD。
步骤S404,根据CRUSH算法从第二可选OSD列表中确定当前PG对应的临时OSD;其中,临时OSD是第二可选OSD列表中读写速率最高的OSD,用于临时替代所述从OSD以快速响应主OSD的数据写入操作;且临时OSD与OSD组中的OSD不同;第一可选OSD列表是第二可选OSD列表的子集。
上述OSD选取方法,将确定的OSD组中读写速率最高的OSD设定为主OSD,该OSD组中除主OSD以外的其余OSD确定为从OSD;这种基于读写速率选取主OSD的方式,可以有效提升客户端与主OSD交互时的数据读取速率。此外,该OSD选取方法还新增了临时OSD,且该临时OSD是也是基于读写速率选取的,借助该读写速率较快的临时OSD和主OSD,便于后续提升数据写入速率。
与现有技术相比,本公开实施例在PG寻址映射过程中需要确定临时OSD,在一种实施例中,可以参见图5所示的一种确定临时OSD的方法流程图,包括如下步骤:
步骤S502,将当前PG的标识、第二可选OSD列表和预设常量输入至CRUSH算法,得到待选OSD。第二可选OSD列表可以为全局列表,包括有Ceph集群内的所有OSD。
步骤S504,当待选OSD的读写速率不在预先设定的快速区间内,或者待选OSD属于OSD组时,更改预设常量,通过CRUSH算法得到下一个待选OSD;直到待选OSD的读写速率在预先设定的快速区间内,且待选OSD不属于OSD组为止。
在一种实施方式中,将Ceph集群内的OSD的读写速率划分为多个区间,以简单划分为三个区间为例,分别是:快速区间,中速区间和慢速区间;位于快速区间的OSD的速率属性标记为fast,位于中速区间的OSD的速率属性标记为medium,位于慢速区间的OSD的速率属性标记为slow。假设第二可选OSD列表为全局列表,则临时OSD应当为Ceph集群内的所有OSD中读写速率最优的OSD,其对应的速率属性应当为fast。在利用CRUSH算法第一次计算得到待选OSD后,判断该待选OSD的速率属性是否为fast,且其是否不属于OSD组(也即,该待选OSD的编号与OSD组的各OSD的编号不同),如果是,将该待选OSD设定为临时OSD,如果否,则更改预设常量,重新利用CRUSH算法计算得到待选OSD,直至确定计算得到的待选OSD的速率属性为fast,且编号不同于OSD组中的各OSD编号。
步骤S506,将最后的待选OSD作为当前PG的临时OSD。
通过上述方式,可以在诸如全局等范围较大的第二可选OSD列表中选取最优速率的OSD作为临时OSD,以保证临时OSD的读写速率最优。由于临时OSD的选取可以不受保护域的限制,在受到保护域限制的OSD组均出现故障时,还有临时OSD保证数据可靠性,较好地提高了读写可靠性。
在其中一种实施方式中,参见图6所示的一种数据写入方法流程图,具体包括如下步骤:
步骤S602,根据在Ceph中的PG寻址映射阶段选取的OSD,查找待写数据对应的OSD组和临时OSD,其中,OSD组中的主OSD和临时OSD是基于读写速率优先原则选取的。
由于Ceph的寻址流程已建立有待写数据与OSD的映射关系(具体可以参照图3所示的OSD选取方法流程预先建立),因此在需要写入数据时,可以通过查找映射关系的方式,确定待写数据对应的OSD组和临时OSD。实际应用中,上述读写速率优先原则可以为:优先选取读写速率最高的OSD。由于主OSD和临时OSD是基于读写速率优先原则选取的,因此主OSD和临时OSD的读写速率较高,相较于其它OSD,主OSD和临时OSD能够较快地完成写入操作。
步骤S604,将待写数据下发至主OSD。
具体的,可以通过客户端向主OSD发起携带有待写数据的写入请求。
步骤S606,通过主OSD将待写数据分别下发至临时OSD和OSD组中的从OSD。主OSD可以分别向临时OSD和从OSD下发携带有待写数据的写入请求。其中,OSD组中的从OSD的数量可以有一个或多个。
步骤S608,当主OSD和临时OSD完成待写数据的写入操作时,向待写数据的客户端反馈写操作完成通知。
在一种实施例中,当监测到主OSD完成待写数据的写入操作,且主OSD接收到临时OSD反馈的确认完成消息时,确定主OSD和临时OSD完成待写数据的写入操作。实际应用中,可以通过主OSD向客户端反馈写操作完成通知。
上述步骤S602和步骤S604可以由客户端执行,上述步骤S606和步骤S608可以由与上述客户端交互的主OSD执行。
本公开实施例提供的上述数据写入方法,查找待写数据对应的OSD组和临时OSD,通过OSD组的主OSD将待写数据下发至临时OSD和OSD组的从OSD,在主OSD和临时OSD完成待写数据的写入操作时,便向待写数据的客户端反馈写操作完成通知。与现有技术相比,上述方式新增了临时OSD,且主OSD和临时OSD是基于读写速率优先原则选取的,相较于从OSD,主OSD和临时OSD的写入速率更高,在主OSD和临时OSD较快地完成写入操作后便向客户端反馈写操作完成通知,无需等待从OSD完成写入操作才反馈,改善了从OSD因性能较差而导致的整体延迟的问题,提高了数据写入速率。
由于临时OSD仅是暂时存储待写数据的临时冗余盘,并非存储该待写数据的副本OSD,而且该临时OSD还可以作为其它PG映射的临时OSD使用,用于暂时存储其它待写数据。考虑到临时OSD的存储空间有限,上述方法还可以包括:当从OSD完成待写数据的写入操作时,从临时OSD中删除待写数据。可以理解的是,在确定从OSD完成写入操作后,该客户端发起的写入请求已由OSD组全部执行完毕,不再需要临时OSD,因此可以及时清理临时OSD的存储数据,以避免临时OSD的存储空间被无用数据侵占,致使其它需要该临时OSD的写入操作没有空间可用的情况出现。此外,临时OSD还可以在OSD组中有OSD出现问题时,暂时复制数据,但是在故障恢复后,也应当删除临时OSD中的存储数据,以节约临时OSD的有限空间。
基于上述OSD选取方式,本公开实施方式提供了一种PG寻址映射的具体方法,可以按照如下步骤执行:
(1)在Ceph的中的PG寻址映射阶段,根据CRUSH算法从第一可选OSD列表中确定当前PG对应的OSD组;将OSD组中读写速率最高的OSD设定为主OSD,将OSD组中除主OSD以外的其余OSD确定为从OSD。
(2)根据CRUSH算法从第二可选OSD列表中确定当前PG对应的临时OSD;其中,临时OSD是第二可选OSD列表中读写速率最高的OSD,且临时OSD与OSD组中的OSD不同;第一可选OSD列表是第二可选OSD列表的子集。例如,第一可选OSD列表中的OSD均为某保护域内的OSD;而第二可选OSD列表中的OSD为Ceph集群中的所有OSD。具体的,OSD组的选取需要受到保护域的限制,而临时OSD的选取无需受保护域限制,可以在整个集群内选取。在可选OSD列表中的OSD,属性应当是正常的(没有故障),且可承载PG,即PG可以映射至该OSD。诸如,为正常OSD的属性标记为up,可承载PG的属性标记为in,在可用列表中该OSD的属性可以表示为[up,in]。再附加上本公开实施例为OSD新增的速率属性,诸如将读写速率最高的属性标记为fast,则OSD的属性可以表示为[up,in,fast]。
基于上述PG寻址映射方法,步骤S602的具体方式可以为:如果待写数据映射至当前PG,将当前PG的OSD组设定为待写数据的OSD组;将当前PG的临时OSD设定为待写数据的临时OSD。
通过上述PG寻址映射的方法,可以在客户端发起写入请求时,找到待写数据对应的OSD组和临时OSD,从而执行数据写入方法。
本公开实施例提供了一种数据写入方法的具体应用示例,参见图7所示的一种数据写入示意图,其中,图7中简单示出OSD组包括主OSD和两个从OSD,分别为从OSD1和从OSD2;数据写入的具体流程如下:
1,客户端与主OSD直接通信,向主OSD下发写入请求(1)。
2,主OSD在接收到写入请求(1)后,向临时OSD和从OSD1、从OSD2分别下发写入请求(2)、写入请求(5)和写入请求(6)。
3,临时OSD相较于从OSD1和从OSD2优先完成写入操作,向主OSD发送确认消息(3)。
4,主OSD接收到确认消息(3),且确认自己也完成写入操作后,向客户端发送确认消息(4),以告知客户端写入完成。
5,从OSD1和从OSD2分别完成写入操作后,分别向主OSD发送确认消息(7)和确认消息(8)。
6,主OSD接收到确认消息(7)和确认消息(8)后,确定从OSD完成写入操作,向临时OSD发送删除指令(9)。
7,临时OSD删除已写入数据后,向主OSD发送确认消息(10)。至此,整体写入流程结束。
由于主OSD和临时OSD均写完后,便告知客户端写入完成,无需再等待读写速率不佳的从OSD,因此改善了由从OSD引起的整体延迟问题,写入速率得以提升。但是,由于向客户端反馈写入完成通知时,从OSD的写入操作并没有执行完毕,如果此时主OSD故障,则需要重新选取新的OSD。具体的,与主OSD通信的从OSD监测到与主OSD的心跳丢失,则可以确定该主OSD故障,同样,当临时OSD检测到主OSD的心跳丢失,但未收到主OSD的删除指令,也可确定主OSD故障。从OSD和/或临时OSD向监控节点上报主OSD故障消息,监控节点触发PG通过CRUSH算法映射至新的主OSD。在选取新的主OSD后,临时OSD开始向新的主OSD和其它从OSD恢复数据。
基于上述主OSD可能出现故障的考虑因素,参见图8所示的另一种数据写入方法流程图,具体包括如下步骤:
步骤S802,查找待写数据对应的OSD组和临时OSD,其中,OSD组中的主OSD和临时OSD是基于读写速率优先原则选取的。
步骤S804,将待写数据下发至主OSD。
步骤S806,通过主OSD将待写数据分别下发至临时OSD和OSD组中的从OSD。
步骤S808,当主OSD和临时OSD完成待写数据的写入操作时,向待写数据的客户端反馈写操作完成通知。
步骤S810,如果临时OSD写入操作完成后,主OSD出现故障,基于读写速率优先原则选取新的主OSD。
由于从OSD和临时OSD分别与主OSD通信,可以实时监测主OSD的心跳,当监测到主OSD的心跳丢失,即可确定主OSD出现故障。
步骤S812,通过临时OSD对新的主OSD和从OSD进行写数据同步操作。
临时OSD已经将待写数据写入至磁盘中,而新选取的主OSD还未写入待写数据,同时,从OSD由于速率较慢,也未执行完毕待写数据。因此,上述步骤S712通过临时OSD对新的主OSD和从OSD进行写数据同步操作。在对从OSD进行写数据同步操作时,临时OSD可以校验从OSD当前已写入的数据是否完整,例如检查从OSD上的对象的编号,确定出后续需要同步的对象,进行写数据操作。而新选取的主OSD还未写入待写数据,主OSD故障后,由临时OSD向新的主OSD写入原主OSD的数据。
本公开实施例提供的上述方法,在主OSD故障后,可以由临时OSD向新的主OSD和从OSD恢复数据,较好地提升了数据写入的可靠性。
基于上述主OSD可能出现故障的考虑因素,本公开实施例提供了另一种基于Ceph的数据写入方法的具体应用示例,参见图9所示的另一种数据写入示意图,数据写入的具体流程如下:
1,临时OSD分别向新的主OSD、从OSD1和从OSD2发送写入请求(1)、写入请求(3)和写入请求(4)。
2,新的主OSD、从OSD1和从OSD2各自执行写入操作,在写入完成后分别向临时OSD发送确认消息(2)、确认消息(5)和确认消息(6)。
3,临时OSD在接收到确认消息(2)、确认消息(5)和确认消息(6)后,确认所有OSD均已完成写入操作,因此向新的主OSD发送确认消息(7)。
4,新的主OSD在接收到确认消息(7)后,向临时OSD发送删除指令(8)。
5,临时OSD删除已写入数据后,向主OSD发送确认消息(9)。至此,整体写入流程结束。
此外,图9中还示意出客户端与新的主OSD的交互,由于新的主OSD已写入待写数据,所以客户端在想读取该数据时,可以直接向新的主OSD发送读取请求,在新的主OSD执行读取操作后,向客户端发送确认消息。可以理解的是,由于新的主OSD也是基于读写速率优先原则选取的,所以相较于现有技术,应用本公开实施例的方法,也有助于提升读操作速率。
综上所述,通过本公开实施例提供的基于Ceph的数据写入方法,突破了从OSD因性能较差而导致的整体延迟的限制,在写入过程不必等待所有的OSD副本写入完成,只需读写速率最高的主OSD和临时OSD完成写入操作,就可向客户端确认写入完成。新增的临时OSD不但能在写入流程中作为临时副本,协助主OSD完成写操作,而且还可以在集群出现异常,诸如部分PG无法恢复,数据存在风险时,作为数据的临时冗余备份,提高了数据安全性。
此外,基于上述方式,对于读操作,由于主OSD读写速率最优,也可以较好地提升客户端与主OSD进行交互的读操作速率。
在其中一种实施方式中,参见图10提供的一种OSD选取装置,包括:
OSD组确定模块100,用于在Ceph中的PG寻址映射阶段,根据CRUSH算法从第一可选OSD列表中确定当前PG对应的OSD组;将OSD组中读写速率最高的OSD设定为主OSD,将OSD组中除主OSD以外的其余OSD确定为从OSD;
临时OSD确定模块102,用于根据CRUSH算法从第二可选OSD列表中确定当前PG对应的临时OSD;其中,临时OSD是第二可选OSD列表中读写速率最高的OSD,用于临时替代所述从OSD以快速响应主OSD的数据写入操作;且临时OSD与OSD组中的OSD不同;第一可选OSD列表是第二可选OSD列表的子集。
上述OSD选取装置,将确定的OSD组中读写速率最高的OSD设定为主OSD,该OSD组中除主OSD以外的其余OSD确定为从OSD;这种基于读写速率选取主OSD的方式,可以有效提升客户端与主OSD交互时的数据读取速率。此外,该OSD选取装置还新增了临时OSD,且该临时OSD是也是基于读写速率选取的,借助该读写速率较快的临时OSD和主OSD,便于后续提升数据写入速率。
在一种实施例中,上述临时OSD确定模块102用于:将当前PG的标识、第二可选OSD列表和预设常量输入至CRUSH算法,得到待选OSD;当待选OSD的读写速率不在预先设定的快速区间内,或者待选OSD属于OSD组时,更改预设常量,通过CRUSH算法得到下一个待选OSD;直到待选OSD的读写速率在预先设定的快速区间内,且待选OSD不属于OSD组为止;将最后的待选OSD作为当前PG的临时OSD。
在其中一种实施方式中,参见图11提供的一种数据写入装置的结构框图,该装置包括如下部分:
查找模块110,用于根据在Ceph中的PG寻址映射阶段选取的OSD,查找待写数据对应的OSD组和临时OSD,其中,OSD组中的主OSD和临时OSD是基于读写速率优先原则选取的;
第一下发模块112,用于将待写数据下发至主OSD;
第二下发模块114,用于通过主OSD将待写数据分别下发至临时OSD和OSD组中的从OSD;
完成反馈模块116,用于当主OSD和临时OSD完成待写数据的写入操作时,向待写数据的客户端反馈写操作完成通知。
本公开实施方式提供的上述装置,查找待写数据对应的OSD组和临时OSD,通过OSD组的主OSD将待写数据下发至临时OSD和OSD组的从OSD,在主OSD和临时OSD完成待写数据的写入操作时,便向待写数据的客户端反馈写操作完成通知。与现有技术相比,上述装置新增了临时OSD,且主OSD和临时OSD是基于读写速率优先原则选取的,相较于从OSD,主OSD和临时OSD的写入速率更高,在主OSD和临时OSD较快地完成写入操作后便向客户端反馈写操作完成通知,无需等待从OSD完成写入操作才反馈,改善了从OSD因性能较差而导致的整体延迟的问题,提高了数据写入速率。
在其中一种实施方式中,参见图12提供的另一种数据写入装置的结构框图,该装置在图11的基础上,还包括如下部分:
OSD组确定模块100,用于在Ceph的中的PG寻址映射阶段,根据CRUSH算法从第一可选OSD列表中确定当前PG对应的OSD组;将OSD组中读写速率最高的OSD设定为主OSD,将OSD组中除主OSD以外的其余OSD确定为从OSD;
临时OSD确定模块102,用于根据CRUSH算法从第二可选OSD列表中确定当前PG对应的临时OSD;其中,临时OSD是第二可选OSD列表中读写速率最高的OSD,用于临时替代所述从OSD以快速响应主OSD的数据写入操作;且临时OSD与OSD组中的OSD不同;第一可选OSD列表是第二可选OSD列表的子集;
基于OSD组确定模块100和临时OSD确定模块102,查找模块110用于:如果待写数据映射至当前PG,将当前PG的OSD组设定为待写数据的OSD组;将当前PG的临时OSD设定为待写数据的临时OSD。
具体实现时,上述临时OSD确定模块102用于:
将当前PG的标识、第二可选OSD列表和预设常量输入至CRUSH算法,得到待选OSD;
当待选OSD的读写速率不在预先设定的快速区间内,或者待选OSD属于OSD组时,更改预设常量,通过CRUSH算法得到下一个待选OSD;直到待选OSD的读写速率在预先设定的快速区间内,且待选OSD不属于OSD组为止;
将最后的待选OSD作为当前PG的临时OSD。
在其中一种实施方式中,参见图13提供的另一种数据写入装置的结构框图,在图11的基础上,该装置还包括完成确定模块130,用于当监测到主OSD完成待写数据的写入操作,且主OSD接收到临时OSD反馈的确认完成消息时,确定主OSD和临时OSD完成待写数据的写入操作。
图13中还示意出上述装置包括如下部分:新选模块132,用于如果临时OSD写入操作完成后,主OSD出现故障,基于读写速率优先原则选取新的主OSD;同步模块134,用于通过临时OSD对新的主OSD和从OSD进行写数据同步操作。
图13中还示意出装置还包括:删除模块136,用于当从OSD完成待写数据的写入操作时,从临时OSD中删除待写数据。
本公开实施方式所提供的数据写入装置,其实现原理及产生的技术效果和前述方法实施方式相同,为简要描述,装置实施方式部分未提及之处,可参考前述方法实施方式中相应内容。
在上述实施方式的基础上,本公开实施方式还提供了一种存储系统,包括通过网络连接的服务器集群,服务器集群中的服务器包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,所述一条或多条计算机指令被所述处理器执行,以实现上述实施方式中的方法。
具体实现时,本公开实施方式还包括一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述实施方式所述的方法。
另外,在本公开各个实施方式中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施方式,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施方式对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施方式所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施方式技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (15)

1.一种OSD选取方法,其特征在于,包括:
在Ceph中的PG寻址映射阶段,根据CRUSH算法从第一可选OSD列表中确定当前PG对应的OSD组;将所述OSD组中读写速率最高的OSD设定为主OSD,将所述OSD组中除所述主OSD以外的其余OSD确定为从OSD;
根据CRUSH算法从第二可选OSD列表中确定所述当前PG对应的临时OSD;其中,所述临时OSD是所述第二可选OSD列表中读写速率最高的OSD,用于临时替代所述从OSD以快速响应所述主OSD的数据写入操作;且所述临时OSD与所述OSD组中的OSD不同;所述第一可选OSD列表是所述第二可选OSD列表的子集。
2.根据权利要求1所述的方法,其特征在于,所述根据CRUSH算法从第二可选OSD列表中确定所述当前PG对应的临时OSD的步骤,包括:
将当前PG的标识、第二可选OSD列表和预设常量输入至CRUSH算法,得到待选OSD;
当所述待选OSD的读写速率不在预先设定的快速区间内,或者所述待选OSD属于所述OSD组时,更改所述预设常量,通过CRUSH算法得到下一个待选OSD;直到所述待选OSD的读写速率在预先设定的快速区间内,且所述待选OSD不属于所述OSD组为止;
将最后的待选OSD作为所述当前PG的临时OSD。
3.一种数据写入方法,其特征在于,包括:
根据在Ceph中的PG寻址映射阶段选取的OSD,查找待写数据对应的OSD组和临时OSD,其中,所述OSD组中的主OSD和所述临时OSD是基于读写速率优先原则选取的;
将所述待写数据下发至所述主OSD;
通过所述主OSD将所述待写数据分别下发至所述临时OSD和所述OSD组中的从OSD;
当所述主OSD和所述临时OSD完成所述待写数据的写入操作时,向所述待写数据的客户端反馈写操作完成通知。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在Ceph中的PG寻址映射阶段,根据CRUSH算法从第一可选OSD列表中确定当前PG对应的OSD组;将所述OSD组中读写速率最高的OSD设定为主OSD,将所述OSD组中除所述主OSD以外的其余OSD确定为从OSD;
根据CRUSH算法从第二可选OSD列表中确定所述当前PG对应的临时OSD;其中,所述临时OSD是所述第二可选OSD列表中读写速率最高的OSD,且所述临时OSD与所述OSD组中的OSD不同;所述第一可选OSD列表是所述第二可选OSD列表的子集;
所述查找待写数据对应的OSD组和临时OSD的步骤,包括:如果待写数据映射至所述当前PG,将所述当前PG的OSD组设定为所述待写数据的OSD组;将所述当前PG的临时OSD设定为所述待写数据的临时OSD。
5.根据权利要求4所述的方法,其特征在于,所述根据CRUSH算法从第二可选OSD列表中确定所述当前PG对应的临时OSD的步骤,包括:
将当前PG的标识、第二可选OSD列表和预设常量输入至CRUSH算法,得到待选OSD;
当所述待选OSD的读写速率不在预先设定的快速区间内,或者所述待选OSD属于所述OSD组时,更改所述预设常量,通过CRUSH算法得到下一个待选OSD;直到所述待选OSD的读写速率在预先设定的快速区间内,且所述待选OSD不属于所述OSD组为止;
将最后的待选OSD作为所述当前PG的临时OSD。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当监测到所述主OSD完成所述待写数据的写入操作,且所述主OSD接收到所述临时OSD反馈的确认完成消息时,确定所述主OSD和所述临时OSD完成所述待写数据的写入操作。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果所述临时OSD写入操作完成后,所述主OSD出现故障,基于读写速率优先原则选取新的主OSD;
通过所述临时OSD对所述新的主OSD和所述从OSD进行写数据同步操作。
8.根据权利要求3至7任一项所述的方法,其特征在于,所述方法还包括:
当所述从OSD完成所述待写数据的写入操作时,从所述临时OSD中删除所述待写数据。
9.一种OSD选取装置,其特征在于,包括:
OSD组确定模块,用于在Ceph中的PG寻址映射阶段,根据CRUSH算法从第一可选OSD列表中确定当前PG对应的OSD组;将所述OSD组中读写速率最高的OSD设定为主OSD,将所述OSD组中除所述主OSD以外的其余OSD确定为从OSD;
临时OSD确定模块,用于根据CRUSH算法从第二可选OSD列表中确定所述当前PG对应的临时OSD;其中,所述临时OSD是所述第二可选OSD列表中读写速率最高的OSD,用于临时替代所述从OSD以快速响应所述主OSD的数据写入操作;且所述临时OSD与所述OSD组中的OSD不同;所述第一可选OSD列表是所述第二可选OSD列表的子集。
10.根据权利要求9所述的装置,其特征在于,所述临时OSD确定模块用于:
将当前PG的标识、第二可选OSD列表和预设常量输入至CRUSH算法,得到待选OSD;
当所述待选OSD的读写速率不在预先设定的快速区间内,或者所述待选OSD属于所述OSD组时,更改所述预设常量,通过CRUSH算法得到下一个待选OSD;直到所述待选OSD的读写速率在预先设定的快速区间内,且所述待选OSD不属于所述OSD组为止;
将最后的待选OSD作为所述当前PG的临时OSD。
11.一种数据写入装置,其特征在于,包括:
查找模块,用于根据在Ceph中的PG寻址映射阶段选取的OSD,查找待写数据对应的OSD组和临时OSD,其中,所述OSD组中的主OSD和所述临时OSD是基于读写速率优先原则选取的;
第一下发模块,用于将所述待写数据下发至所述主OSD;
第二下发模块,用于通过所述主OSD将所述待写数据分别下发至所述临时OSD和所述OSD组中的从OSD;
完成反馈模块,用于当所述主OSD和所述临时OSD完成所述待写数据的写入操作时,向所述待写数据的客户端反馈写操作完成通知。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
完成确定模块,用于当监测到所述主OSD完成所述待写数据的写入操作,且所述主OSD接收到所述临时OSD反馈的确认完成消息时,确定所述主OSD和所述临时OSD完成所述待写数据的写入操作。
13.根据权利要求11所述的装置,其特征在于,所述装置还包括:
新选模块,用于如果所述临时OSD写入操作完成后,所述主OSD出现故障,基于读写速率优先原则选取新的主OSD;
同步模块,用于通过所述临时OSD对所述新的主OSD和所述从OSD进行写数据同步操作。
14.根据权利要求11至13任一项所述的装置,其特征在于,所述装置还包括:
删除模块,用于当所述从OSD完成所述待写数据的写入操作时,从所述临时OSD中删除所述待写数据。
15.一种存储系统,其特征在于,所述存储系统包括通过网络连接的服务器集群,所述服务器集群中的服务器包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,所述一条或多条计算机指令被所述处理器执行,以实现权利要求1至8任一项所述的方法。
CN201711381076.3A 2017-12-19 2017-12-19 Osd选取方法、数据写入方法、装置和存储系统 Pending CN108121510A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711381076.3A CN108121510A (zh) 2017-12-19 2017-12-19 Osd选取方法、数据写入方法、装置和存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711381076.3A CN108121510A (zh) 2017-12-19 2017-12-19 Osd选取方法、数据写入方法、装置和存储系统

Publications (1)

Publication Number Publication Date
CN108121510A true CN108121510A (zh) 2018-06-05

Family

ID=62230394

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711381076.3A Pending CN108121510A (zh) 2017-12-19 2017-12-19 Osd选取方法、数据写入方法、装置和存储系统

Country Status (1)

Country Link
CN (1) CN108121510A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109189738A (zh) * 2018-09-18 2019-01-11 郑州云海信息技术有限公司 一种分布式文件系统中主osd的选取方法、装置及系统
CN109614276A (zh) * 2018-11-28 2019-04-12 平安科技(深圳)有限公司 故障处理方法、装置、分布式存储系统和存储介质
CN109656895A (zh) * 2018-11-28 2019-04-19 平安科技(深圳)有限公司 分布式存储系统、数据写入方法、装置和存储介质
CN109710456A (zh) * 2018-12-10 2019-05-03 新华三技术有限公司 一种数据恢复方法及装置
CN109960470A (zh) * 2019-03-28 2019-07-02 新华三技术有限公司 数据处理方法、装置及领导节点
CN109992204A (zh) * 2019-03-19 2019-07-09 新华三技术有限公司成都分公司 数据存储方法及装置
CN110018800A (zh) * 2019-04-12 2019-07-16 苏州浪潮智能科技有限公司 分布式存储系统中归置组选主方法、装置、设备和介质
CN110059068A (zh) * 2019-04-11 2019-07-26 厦门网宿有限公司 一种分布式存储系统中的数据校验方法及数据校验系统
CN112346667A (zh) * 2021-01-07 2021-02-09 广东睿江云计算股份有限公司 一种ceph存储osd读均衡方法及其系统
CN113778341A (zh) * 2021-09-17 2021-12-10 北京航天泰坦科技股份有限公司 遥感数据分布式存储方法和装置及遥感数据读取方法
US20230198828A1 (en) * 2020-05-28 2023-06-22 Inspur Suzhou Intelligent Technology Co., Ltd. Cluster node fault processing method and apparatus, and device and readable medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201525A1 (en) * 2007-02-21 2008-08-21 Inventec Corporation RAID capacity expansion handling method and system with concurrent data access capability
CN106802774A (zh) * 2017-01-18 2017-06-06 广东睿江云计算股份有限公司 写请求处理方法和装置、读请求处理方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201525A1 (en) * 2007-02-21 2008-08-21 Inventec Corporation RAID capacity expansion handling method and system with concurrent data access capability
CN106802774A (zh) * 2017-01-18 2017-06-06 广东睿江云计算股份有限公司 写请求处理方法和装置、读请求处理方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
说明书第[0051]段: "ceph工作原理和安装", 《博客园》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109189738A (zh) * 2018-09-18 2019-01-11 郑州云海信息技术有限公司 一种分布式文件系统中主osd的选取方法、装置及系统
CN109614276A (zh) * 2018-11-28 2019-04-12 平安科技(深圳)有限公司 故障处理方法、装置、分布式存储系统和存储介质
CN109656895A (zh) * 2018-11-28 2019-04-19 平安科技(深圳)有限公司 分布式存储系统、数据写入方法、装置和存储介质
CN109656895B (zh) * 2018-11-28 2024-03-12 平安科技(深圳)有限公司 分布式存储系统、数据写入方法、装置和存储介质
CN109614276B (zh) * 2018-11-28 2021-09-21 平安科技(深圳)有限公司 故障处理方法、装置、分布式存储系统和存储介质
CN109710456B (zh) * 2018-12-10 2021-03-23 新华三技术有限公司 一种数据恢复方法及装置
CN109710456A (zh) * 2018-12-10 2019-05-03 新华三技术有限公司 一种数据恢复方法及装置
CN109992204A (zh) * 2019-03-19 2019-07-09 新华三技术有限公司成都分公司 数据存储方法及装置
CN109960470B (zh) * 2019-03-28 2022-07-29 新华三技术有限公司 数据处理方法、装置及领导节点
CN109960470A (zh) * 2019-03-28 2019-07-02 新华三技术有限公司 数据处理方法、装置及领导节点
CN110059068A (zh) * 2019-04-11 2019-07-26 厦门网宿有限公司 一种分布式存储系统中的数据校验方法及数据校验系统
CN110018800A (zh) * 2019-04-12 2019-07-16 苏州浪潮智能科技有限公司 分布式存储系统中归置组选主方法、装置、设备和介质
US20230198828A1 (en) * 2020-05-28 2023-06-22 Inspur Suzhou Intelligent Technology Co., Ltd. Cluster node fault processing method and apparatus, and device and readable medium
US11750437B2 (en) * 2020-05-28 2023-09-05 Inspur Suzhou Intelligent Technology Co., Ltd. Cluster node fault processing method and apparatus, and device and readable medium
CN112346667A (zh) * 2021-01-07 2021-02-09 广东睿江云计算股份有限公司 一种ceph存储osd读均衡方法及其系统
CN113778341A (zh) * 2021-09-17 2021-12-10 北京航天泰坦科技股份有限公司 遥感数据分布式存储方法和装置及遥感数据读取方法

Similar Documents

Publication Publication Date Title
CN108121510A (zh) Osd选取方法、数据写入方法、装置和存储系统
US10489210B2 (en) Layering a distributed storage system into storage groups and virtual chunk spaces for efficient data recovery
US9329957B2 (en) Method for managing storage system using flash memory, and computer
CN103929500A (zh) 一种分布式存储系统的数据分片方法
US20190220379A1 (en) Troubleshooting Method, Apparatus, and Device
JP2007156667A (ja) ストレージ装置及びその容量管理方法
US9003115B2 (en) Method and system for governing an enterprise level green storage system drive technique
CN105339929A (zh) 选择用于取消重复数据的存储
CN111031096A (zh) 一种基于拟态防御的分布式存储系统构建方法
CN109828868A (zh) 数据存储方法、装置、管理设备和双活数据存储系统
CN109582213B (zh) 数据重构方法及装置、数据存储系统
US10838825B2 (en) Implementing snapshot sets for consistency groups of storage volumes
WO2016029743A1 (zh) 一种生成虚拟机的逻辑磁盘的方法,及装置
WO2023065654A1 (zh) 一种数据写入方法以及相关设备
CN109582509A (zh) 分布式文件系统容灾配置方法、装置和可读存储介质
CN109189326A (zh) 分布式集群的管理方法和装置
US8775734B2 (en) Virtual disks constructed from unused distributed storage
US8356230B2 (en) Apparatus to manage data stability and methods of storing and recovering data
CN103502953B (zh) 提高分布式对象存储系统的并发性能的方法和装置
CN102112970B (zh) 用隐藏存储子系统详情的控制设备来将该存储子系统与电子设备连接
JP7261756B2 (ja) ストレージシステム、処理方法
CN111124746A (zh) 管理独立盘冗余阵列的方法、设备和计算机可读介质
JP2010277342A (ja) 管理プログラム、管理装置および管理方法
CN115065693A (zh) 一种基于异构指令集的虚拟化存储池及其方法
CN115037759A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 310000 11/F, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Xinhua Sanxin Information Technology Co., Ltd.

Address before: 310000 11/F, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: Huashan Information Technology Co., Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180605