CN109558437B - 主osd调整方法及装置 - Google Patents

主osd调整方法及装置 Download PDF

Info

Publication number
CN109558437B
CN109558437B CN201811364986.5A CN201811364986A CN109558437B CN 109558437 B CN109558437 B CN 109558437B CN 201811364986 A CN201811364986 A CN 201811364986A CN 109558437 B CN109558437 B CN 109558437B
Authority
CN
China
Prior art keywords
osd
tuple
adjusted
main
tuples
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.)
Active
Application number
CN201811364986.5A
Other languages
English (en)
Other versions
CN109558437A (zh
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 Technologies Co Ltd Chengdu Branch
Original Assignee
New H3C Technologies Co Ltd Chengdu Branch
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 New H3C Technologies Co Ltd Chengdu Branch filed Critical New H3C Technologies Co Ltd Chengdu Branch
Priority to CN201811364986.5A priority Critical patent/CN109558437B/zh
Publication of CN109558437A publication Critical patent/CN109558437A/zh
Application granted granted Critical
Publication of CN109558437B publication Critical patent/CN109558437B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及分布式存储技术领域,提供一种主OSD调整方法及装置,所述方法包括:计算每个PG对应的OSD元组;遍历多个OSD元组,将满足预设调整条件的OSD元组确定为待调整OSD元组;从待调整OSD元组的至少一个从OSD中确定目标OSD;交换待调整OSD元组中的主OSD与目标OSD的主从角色,以使目标OSD调整为对应的待调整OSD元组的调整后的主OSD。与现有技术相比,本发明通过调整每个PG的OSD元组中的主OSD,使得所有主OSD上的PG个数保持近似均衡,实现用户数据访问请求近似均匀地分布在主OSD上。

Description

主OSD调整方法及装置
技术领域
本发明涉及分布式存储技术领域,具体而言,涉及一种主OSD调整方法及装置。
背景技术
Ceph分布式存储系统中,待存储的用户数据通常首先会被切成固定长度的对象,每个对象归属一个归置组(Placement Group,PG),Ceph分布式存储系统以PG为单位对存储的用户数据进行管理,每个PG中的用户数据最终以预设的副本策略存储至多个对象存储设备(Object Storage Device,OSD)上,为了使存储的用户数据均衡地分布在各OSD上,Ceph分布式存储系统根据各OSD的状态信息、采用CRUSH(Controlled Replication UnderScalable Hashing)算法得到与每个PG对应的OSD元组,该OSD元组包括按序排列的多个不同OSD,每个PG及其多个副本存储在对应的OSD元组中的多个不同OSD中,以此实现多个PG在多个OSD整体上近似均匀的分布,在每个OSD元组中,排在第一个OSD为主OSD,其余为从OSD,而主OSD是直接接收用户数据访问请求的,因此,主OSD需要处理的访问请求比其余从OSD要密集得多,CRUSH算法虽然保证了用户数据可以近似均匀地分布在不同的OSD上,但是无法保证每个主OSD上的PG个数也近似均衡,因而无法保证用户数据访问请求近似均匀地分布在主OSD上,最终无法使Ceph分布式存储系统的整体性能得以充分发挥。
发明内容
本发明实施例的目的在于提供一种主OSD调整方法及装置,通过调整每个PG的OSD元组中的主OSD,使得Ceph分布式存储系统中所有主OSD上的PG个数保持近似均衡,实现用户数据访问请求近似均匀地分布在主OSD上,从而使Ceph分布式存储系统的整体性能得以充分发挥。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种主OSD调整方法,应用于Ceph分布式存储系统中的客户端,所述Ceph分布式存储系统包括多个PG及多个OSD,所述方法包括:计算每个PG对应的OSD元组,其中,OSD元组包括从多个OSD中确定的主OSD和至少一个从OSD;遍历多个OSD元组,判断当前OSD元组是否满足预设调整条件;当当前OSD元组满足预设调整条件时,将当前OSD元组确定为待调整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调整方法及装置,首先,Ceph分布式存储系统的客户端接收其监控集群发送的更新后的cluster map;然后,依据更新后的cluster map采用CRUSH算法计算每个PG对应的OSD元组;接下来,遍历多个OSD元组,判断当前OSD元组是否满足预设调整条件,当当前OSD元组满足预设调整条件时,将当前OSD元组确定为待调整OSD元组;最后,从每个待调整OSD元组的至少一个从OSD中确定目标OSD后,交换每个待调整OSD元组中的主OSD与目标OSD的主从角色,以使目标OSD调整为待调整OSD元组的调整后的主OSD。与现有技术相比,本发明实施例通过调整每个PG的OSD元组中的主OSD,使得Ceph分布式存储系统中所有主OSD上的PG个数保持近似均衡,实现用户数据访问请求近似均匀地分布在主OSD上,从而使Ceph分布式存储系统的整体性能得以充分发挥。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的主OSD调整方法应用场景图示意图。
图2示出了本发明实施例提供的Ceph分布式存储系统中的客户端的方框示意图。
图3示出了本发明实施例提供的主OSD调整方法流程图。
图4为图3示出的步骤S101的子步骤流程图。
图5示出了本发明实施例提供的主OSD调整装置的方框示意图。
图标:100-客户端;101-存储器;102-通信接口;103-处理器;104-总线;200-主OSD调整装置;201-计算模块;202-统计模块;203-遍历模块;204-第一确定模块;205-第二确定模块;206-交换模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1示出了本发明实施例提供的主OSD调整方法应用场景图示意图。图1中,Ceph分布式存储系统包括客户端100、由N个存储节点组成的存储集群及3个相互通信的监控节点(监控节点1、监控节点2、监控节点3)组成的监控集群,客户端100、存储集群、监控集群相互通信,每个存储节点包括多块硬盘,每个硬盘或者多个硬盘对应一个OSD,OSD负责存储用户的数据,处理数据复制、数据恢复、数据再均衡以及通过心跳机制监测其它OSD运行状况并报告给监控集群,监控集群维护cluster map,cluster map为集群本身的逻辑状态和存储策略的数据表示,在存储集群的物理设备(如主机、硬盘)和存储策略发生变化时,相关cluster map才会更新,当然为了提高Ceph分布式存储系统的可靠性,监控集群中的监控节点可以根据需要设置为多个,图1中只示出了监控节点为3个的情况。用户通过客户端100下发数据读写请求,客户端100从监控集群处获取到cluster map,然后依据cluster map采用CRUSH算法进行计算,得到读写数据所属的OSD,读写该OSD上存储的数据。
请参照图2,图2示出了本发明实施例提供的客户端100的方框示意图。在本发明实施例中,客户端100可以为一个或者多个,客户端100可以是,但不限于个人电脑(personalcomputer,PC)、服务器等等。客户端100的操作系统可以是,但不限于,Windows系统、Linux系统等。所述客户端100包括存储器101、通信接口102、处理器103和总线104,所述存储器101、通信接口102和处理器103通过总线104连接,处理器103用于执行存储器101中存储的可执行模块,例如计算机程序。
其中,存储器101可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口102(可以是有线或者无线)实现该客户端100与外部存储设备之间的通信连接。
总线104可以是ISA总线、PCI总线或EISA总线等。图2中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器101用于存储程序,例如图5所示的主OSD调整装置200。该主OSD调整装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器101中或固化在所述客户端100的操作系统(operating system,OS)中的软件功能模块。所述处理器103在接收到执行指令后,执行所述程序以实现本发明上述实施例揭示的选举请求处理方法。
处理器103可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器103中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器103可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
第一实施例
请参照图3,图3示出了本发明实施例提供的主OSD调整方法流程图。处理方法包括以下步骤:
步骤S101,计算每个PG对应的OSD元组,其中,OSD元组包括从多个OSD中确定的主OSD和至少一个从OSD。
在本发明实施例中,用户需要存储的数据首先被切成固定长度的对象,每个对象通过散列函数归属到一个PG中,PG是Ceph分布式存储系统对存储的数据进行组织、迁移及维护的单位,是一个逻辑概念,一个PG负责组织若干个对象,但是一个对象只能被映射到一个PG中。客户端100从监控集群得知cluster map更新时,根据更新后的cluster map采用CRUSH算法计算每个PG对应的OSD元组,一个PG对应一个OSD元组,OSD元组包括多个按序排列的OSD,其中,OSD元组中的第一个OSD为主OSD,其余OSD为从OSD,为了提高存储的数据的可靠性,Ceph分布式存储系统通常支持多副本策略,即一个PG中的数据存储了多份,分别存储至主OSD和其余从OSD存储,也就是说,同一个元组中的主OSD和其余从OSD存储的数据完全一样。例如,PG1对应的OSD元组为(OSD1,OSD3,OSD4),则OSD1为主OSD,OSD3和OSD4为从OSD,PG1中的数据存储了3份,分别存储至OSD1,OSD3和OSD4。
请参照图4,步骤S101还包括以下子步骤:
子步骤S1011,接收监控集群发送的更新后的cluster map。
在本发明实施例中,只有在cluster map有更新的情况下,才需要依据更新后的cluster map采用CRUSH算法计算每个PG对应的OSD元组,对于Ceph分布式存储系统来说,通常是OSD的拓扑结构发生变化时,才需要更新cluster map,而引发OSD的拓扑结构发生变化的事件发生的概率通常不高,这些事件包括、但不限于新OSD加入、OSD对应的磁盘发生故障、OSD所属的存储节点掉电、OSD所属的存储节点发生网络故障、OSD删除等。
子步骤S1012,依据更新后的cluster map采用CRUSH算法计算每个PG对应的OSD元组。
在本发明实施例中,由于存储用户数据的OSD的状态可能发生变化,例如,原本可以存储数据的OSD变为不可用,或者有新的OSD加入存储集群中,此时需要重新计算每个PG对应的OSD元组,以除去原来的OSD元组中的不可用OSD,或者使新的OSD加入原来的OSD元组中,由此达到整体上用户数据在OSD上近似均衡的分布。例如,Ceph分布式存储系统中有4个OSD节点,分别为OSD1、OSD2、OSD3、OSD4,PG1对应的OSD元组为(OSD1、OSD2、OSD3),当OSD3出现故障时,监控集群会更新cluster map,客户端100在接收到监控集群发送的更新后的cluster map后,依据更新后的cluster map采用CRUSH算法重新计算PG1对应的OSD元组,则重新计算后的PG1对应的OSD元组可以为(OSD1、OSD2、OSD4)。
步骤S102,统计每个OSD在多个OSD元组中作为主OSD的总次数。
在本发明实施例中,例如,Ceph分布式存储系统中,有5个PG,分别为PG1、PG2、PG3、PG4和PG5,分别对应OSD元组1、OSD元组2、OSD元组3、OSD元组4和OSD元组5,有3个OSD,分别为OSD1、OSD2和OSD3,PG1对应的OSD元组1为(OSD1、OSD2、OSD3)、PG2对应的OSD元组2为(OSD1、OSD3、OSD2)、PG3对应的OSD元组3为(OSD1、OSD2、OSD3)、PG4对应的OSD元组4为(OSD2、OSD1、OSD3)、PG5对应的OSD元组5为(OSD3、OSD2、OSD1),则OSD1在OSD元组1、OSD元组2、OSD元组3中为主OSD,因此,OSD1在OSD元组1~OSD元组5中作为主OSD的总次数为3,类似地,OSD2在OSD元组1~OSD元组5中作为主OSD的总次数为1、OSD3在OSD元组1~OSD元组5中作为主OSD的总次数为1。
步骤S103,遍历多个OSD元组,判断当前OSD元组是否满足预设调整条件。
步骤S104,当当前OSD元组满足预设调整条件时,将满足预设调整条件的OSD元组确定为待调整OSD元组。
在本发明实施例中,首先,根据Ceph分布式存储系统中OSD的个数及PG的个数计算出每个OSD作为主OSD的平均次数;然后,根据该平均次数计算出预设偏差范围,其中,预设偏差范围包括下限值和上限值;最后,依次判断每个PG对应的OSD元组中主OSD对应的总次数是否在该偏差范围内,若不在该偏差范围内且总次数大于上限值,则将该OSD元组确定为待调整OSD元组。
作为一种实施方式,确定待调整OSD元组的方法可以是:
首先,判断当前OSD元组中主OSD对应的总次数是否在预设偏差范围内,其中,预设偏差范围包括下限值和上限值。
在本发明实施例中,预设偏差范围可以是Ceph分布式存储系统中每个OSD作为主OSD的平均次数上下浮动预设百分比,其中,Ceph分布式存储系统中每个OSD作为主OSD的平均次数可以通过公式:V=M/N计算得到,其中,V表示Ceph分布式存储系统中每个OSD作为主OSD的平均次数,M表示Ceph分布式存储系统中的PG个数,N表示Ceph分布式存储系统中OSD的个数,例如,Ceph分布式存储系统中PG的个数为4096个,OSD的个数为3个,预设百分比为5%,PG1对应的OSD元组1为(OSD1、OSD2、OSD3),OSD1作为主OSD的总次数为1460,PG2对应的OSD元组2为(OSD2、OSD1、OSD3),OSD2作为主OSD的总次数为1300,则:Ceph分布式存储系统中每个OSD作为主OSD的平均次数=4096/3=1365,预设偏差范围为:((1365*(-5%)+1365),(1365*5%+1365))即:(1297,1433),其中,1297为下限值,1433为上限值,由于PG1对应的OSD元组1中主OSD为OSD1,OSD1的总次数为1460,因此,OSD元组1中主OSD为OSD1,其总次数不在预设偏差范围内,同理,OSD元组2中主OSD为OSD2,其总次数在预设偏差范围内。
其次,当当前OSD元组中主OSD对应的总次数大于上限值时,判定当前OSD元组满足预设调整条件。
在本发明实施例中,预设调整条件指OSD元组中主OSD对应的总次数大于上限值,此时,该总次数正偏离于平均次数,当OSD元组中主OSD对应的总次数正偏离于平均次数时,认为该OSD元组满足预设调整条件,需要调整该OSD元组中的主OSD,例如,预设偏差范围为(1297,1433),PG1对应的OSD元组1为(OSD1、OSD2、OSD3),OSD1作为主OSD的总次数为1460,则,该OSD1的总次数大于上限值1433,则PG1对应的OSD元组1满足预设调整条件。
最后,当当前OSD元组中主OSD对应的总次数在预设偏差范围内时或者小于下限值时,判定当前OSD元组不满足预设调整条件。
在本发明实施例中,不满足预设调整条件有两种情况:(1)OSD元组中主OSD对应的总次数在预设偏差范围内;(2)OSD元组中主OSD对应的总次数小于下限值,当OSD元组中主OSD对应的总次数小于下限值时,此时,该总次数负偏离于平均次数。
步骤S105,从待调整OSD元组的至少一个从OSD中确定目标OSD。
在本发明实施例中,目标OSD为待调整OSD元组的至少一个从OSD中总次数最小且负偏离于平均次数的OSD。
作为一种实施方式,确定目标OSD的方法可以是:
首先,获取待调整OSD元组中每个从OSD对应的总次数。
在本发明实施例中,待调整OSD元组中每个从OSD对应的总次数已经在步骤S102中计算得到。
其次,当待调整OSD元组中所有从OSD对应的总次数的最小值小于下限值时,将与最小值对应的从OSD确定为目标OSD。
在本发明实施例中,例如,预设偏差范围为(1297,1433),待调整的OSD元组为(OSD1、OSD2、OSD3),其中,OSD2和OSD3为从OSD,OSD2在Ceph分布式存储系统中所有PG中作为主OSD的总次数为1290,OSD3在Ceph分布式存储系统中所有PG中作为主OSD的总次数为1200,则从OSD中总次数的最小值为1200,由于该最小值1200小于预设偏差范围的下限值,则OSD3为目标OSD。
步骤S106,交换待调整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为(OSD1、OSD2、OSD3),OSD1为该待调整的OSD元组1的主OSD,目标OSD为OSD3,则该待调整的OSD元组1调整后为(OSD3、OSD2、OSD1),此时,OSD3为该待调整的OSD元组1调整后的主OSD。
需要说明的是,执行完步骤S106后,由于待调整OSD元组中OSD的排列顺序在调整前后是不一样的,即直接按照CRUSH算法计算出的每个PG对应的OSD元组可能不是调整后的最终OSD元组,当PG对应的OSD元组不需要调整时,直接按照CRUSH算法计算出的OSD元组即为最终OSD元组,当PG对应的OSD元组需要调整时,则调整后的OSD元组才为最终OSD元组,作为一种实施方式,为了统一处理,将每个PG与其对应的最终OSD元组的映射关系记录在内存中,当对PG数据进行读写时,不再计算该PG对应的OSD元组,而是直接从内存中记录的PG与其对应的最终OSD元组的映射关系中找到该PG对应的最终OSD元组,每次访问PG数据时,可以直接通过查找内存中保存的映射关系,直接找到该PG对应的最终OSD,不必每次都进行CRUSH计算,提高了数据访问的效率。另外,每个PG与其对应的最终OSD元组的映射关系所占的内存空间是Ceph分布式存储系统可以承受的,例如,Ceph分布式存储系统配置为3幅本,即每个PG数据保存3份至不同的OSD,Ceph分布式存储系统中的存储集群包含1000块硬盘(每块硬盘对应一个OSD,即共1000个OSD),PG数量配置成131072(2的17次幂,且大约比OSD数量高2个数量级),每个PG占用3个字节,每个OSD占用2个字节,由此,每个PG连同其所对应的3个OSD总共占用9个字节,131072个PG共占用约1.2MB,这个开销对以GB度量的内存来说完全无压力。当然,作为另一种实施方式,也可以只记录需要调整的OSD元组与对应PG之间的映射关系,不需要调整的OSD元组还是依据CRUSH算法进行计算得到,当访问PG数据时,如果该PG对应的OSD元组为需要调整的OSD元组,就从内存中记录的需要调整的OSD元组与对应PG之间的映射关系中找到该PG对应的OSD元组,否则依据CRUSH算法进行计算得到该PG对应的OSD元组。
在本发明实施例中,通过对CRUSH算法计算出每个PG的OSD元组中的主OSD进行调整,使得Ceph分布式存储系统中所有主OSD上的PG个数保持近似均衡,与现有技术相比,具有以下有益效果:
第一,由于实现了Ceph分布式存储系统中所有主OSD上的PG个数保持近似均衡,使得用户数据访问请求近似均匀地分布在主OSD上,从而使Ceph分布式存储系统的整体性能得以充分发挥。
第二,不改变每个PG对应的OSD元组中OSD,只在预设条件下改变OSD元组中OSD的排列顺序,因此,最大程度上保留了CRUSH算法本身具有的使数据在所有OSD上均衡分布的优点。
第三,由于只在cluster map发生变化的时候才需要对满足预设调整条件的OSD元组的主OSD进行调整,而cluster map发生变化属于概率事件,因此,本发明实施例对Ceph分布式存储系统整体性能产生的影响是较小的。
第二实施例
请参照图5,图5示出了本发明实施例提供的主OSD调整装置200的方框示意图。主OSD调整装置200应用于Ceph分布式存储系统中的客户端100,其包括计算模块201;统计模块202;遍历模块203;第一确定模块204;第二确定模块205;交换模块206。
计算模块201,用于计算每个PG对应的OSD元组,其中,OSD元组包括从多个OSD中确定的主OSD和至少一个从OSD。
在本发明实施例中,计算模块201用于执行步骤S101。
统计模块202,用于统计每个OSD在多个OSD元组中作为主OSD的总次数。
在本发明实施例中,统计模块202用于执行步骤S102。
遍历模块203,用于遍历多个OSD元组,判断当前OSD元组是否满足预设调整条件。
在本发明实施例中,遍历模块203用于执行步骤S103。
第一确定模块204,用于当OSD元组满足预设调整条件时,将满足预设调整条件的OSD元组确定为待调整OSD元组。
在本发明实施例中,第一确定模块204用于执行步骤S104。
在本发明实施例中,第一确定模块204具体用于:
判断当前OSD元组中主OSD对应的总次数是否在预设偏差范围内,其中,预设偏差范围包括下限值和上限值;
当当前OSD元组中主OSD对应的总次数大于上限值时,判定当前OSD元组满足预设调整条件;
当当前OSD元组中主OSD对应的总次数在预设偏差范围内或者小于下限值时,判定当前OSD元组不满足预设调整条件。
第二确定模块205,用于从每个待调整OSD元组的至少一个从OSD中确定目标OSD。
在本发明实施例中,第二确定模块205用于执行步骤S105。
在本发明实施例中,第二确定模块205具体用于:
获取待调整OSD元组中每个从OSD对应的总次数;
当待调整OSD元组中所有从OSD对应的总次数的最小值小于下限值时,将与最小值对应的从OSD确定为目标OSD。
交换模块206,用于交换待调整OSD元组中的主OSD与目标OSD的主从角色,以使目标OSD调整为所述待调整OSD元组的调整后的主OSD。
在本发明实施例中,交换模块206用于执行步骤S106。
综上所述,本发明提供的一种主OSD调整方法及装置,应用于Ceph分布式存储系统中的客户端,所述Ceph分布式存储系统包括多个PG及多个OSD,所述方法包括:计算每个PG对应的OSD元组,其中,OSD元组包括从多个OSD中确定的主OSD和至少一个从OSD;遍历多个OSD元组,判断当前OSD元组是否满足预设调整条件;当当前OSD元组满足预设调整条件时,将当前OSD元组确定为待调整OSD元组;从待调整OSD元组的至少一个从OSD中确定目标OSD;交换待调整OSD元组中的主OSD与目标OSD的主从角色,以使目标OSD调整为待调整OSD元组的调整后的主OSD。与现有技术相比,本发明实施例通过调整每个PG的OSD元组中的主OSD,使得Ceph分布式存储系统中所有主OSD上的PG个数保持近似均衡,实现用户数据访问请求近似均匀地分布在主OSD上,从而使Ceph分布式存储系统的整体性能得以充分发挥。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

Claims (10)

1.一种主OSD调整方法,其特征在于,应用于Ceph分布式存储系统中的客户端,所述Ceph分布式存储系统包括多个归置组PG及多个对象存储设备OSD,所述方法包括:
计算每个PG对应的OSD元组,其中,所述OSD元组包括从多个OSD中确定的主OSD和至少一个从OSD;
根据所述Ceph分布式存储系统中OSD的个数及PG的个数,计算出每个所述OSD作为主OSD的平均次数;
根据所述平均次数计算出预设偏差范围,其中,所述预设偏差范围包括下限值和上限值;
遍历多个OSD元组,若当前OSD元组中主OSD对应的总次数不在所述预设偏差范围内且大于所述上限值时,则判定所述当前OSD元组满足预设调整条件;当所述当前OSD元组满足所述预设调整条件时,将所述当前OSD元组确定为待调整OSD元组;
从所述待调整OSD元组的所述至少一个从OSD中确定目标OSD;
交换所述待调整OSD元组中的所述主OSD与所述目标OSD的主从角色,以使所述目标OSD调整为所述待调整OSD元组的调整后的主OSD。
2.如权利要求1所述的主OSD调整方法,其特征在于,所述Ceph分布式存储系统还包括预先存储cluster map的监控集群,所述客户端与所述监控集群通信连接,所述计算每个PG对应的OSD元组的步骤,包括:
接收所述监控集群发送的更新后的cluster map;
依据所述更新后的cluster map采用CRUSH算法计算所述每个PG对应的OSD元组。
3.如权利要求1所述的主OSD调整方法,其特征在于,所述根据所述Ceph分布式存储系统中OSD的个数及PG的个数,计算出每个所述OSD作为主OSD的平均次数的步骤之前,所述方法还包括:
统计每个OSD在所述多个OSD元组中作为所述主OSD的总次数。
4.如权利要求1所述的主OSD调整方法,其特征在于,所述方法还包括:
当所述当前OSD元组中主OSD对应的所述总次数在所述预设偏差范围内或者小于所述下限值时,判定所述当前OSD元组不满足预设调整条件。
5.如权利要求4所述的主OSD调整方法,其特征在于,所述从所述待调整OSD元组的所述至少一个从OSD中确定目标OSD的步骤,包括:
获取所述待调整OSD元组中每个所述从OSD对应的所述总次数;
当所述待调整OSD元组中所有所述从OSD对应的所述总次数的最小值小于所述下限值时,将与所述最小值对应的所述从OSD确定为目标OSD。
6.一种主OSD调整装置,其特征在于,应用于Ceph分布式存储系统中的客户端,所述Ceph分布式存储系统包括多个归置组PG及多个对象存储设备OSD,所述装置包括:
计算模块,用于:计算每个PG对应的OSD元组,其中,所述OSD元组包括从多个OSD中确定的主OSD和至少一个从OSD;根据所述Ceph分布式存储系统中OSD的个数及PG的个数,计算出每个所述OSD作为主OSD的平均次数;根据所述平均次数计算出预设偏差范围,其中,所述预设偏差范围包括下限值和上限值;
遍历模块,用于遍历多个OSD元组,若当前OSD元组中主OSD对应的总次数不在所述预设偏差范围内且大于所述上限值时,则判定所述当前OSD元组满足预设调整条件;
第一确定模块,用于当所述当前OSD元组满足所述预设调整条件时,将所述当前OSD元组确定为待调整OSD元组;
第二确定模块,用于从所述待调整OSD元组的所述至少一个从OSD中确定目标OSD;
交换模块,用于交换所述待调整OSD元组中的所述主OSD与所述目标OSD的主从角色,以使所述目标OSD调整为所述待调整OSD元组的调整后的主OSD。
7.如权利要求6所述的主OSD调整装置,其特征在于,所述Ceph分布式存储系统还包括预先存储cluster map的监控集群,所述客户端与所述监控集群通信连接,所述计算每个PG对应的OSD元组的步骤,所述计算模块具体用于:
接收所述监控集群发送的更新后的cluster map;
依据所述更新后的cluster map采用CRUSH算法计算所述每个PG对应的OSD元组。
8.如权利要求6所述的主OSD调整装置,其特征在于,所述装置还包括:
统计模块,用于统计每个OSD在所述多个OSD元组中作为所述主OSD的总次数。
9.如权利要求8所述的主OSD调整装置,其特征在于,所述第一确定模块具体还用于:
当所述当前OSD元组中所述主OSD对应的所述总次数在所述预设偏差范围内或者小于所述下限值时,判定所述当前OSD元组不满足预设调整条件。
10.如权利要求9所述的主OSD调整装置,其特征在于,所述第二确定模块具体用于:
获取所述待调整OSD元组中每个所述从OSD对应的所述总次数;
当所述待调整OSD元组中所有所述从OSD对应的所述总次数的最小值小于所述下限值时,将与所述最小值对应的所述从OSD确定为目标OSD。
CN201811364986.5A 2018-11-16 2018-11-16 主osd调整方法及装置 Active CN109558437B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811364986.5A CN109558437B (zh) 2018-11-16 2018-11-16 主osd调整方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811364986.5A CN109558437B (zh) 2018-11-16 2018-11-16 主osd调整方法及装置

Publications (2)

Publication Number Publication Date
CN109558437A CN109558437A (zh) 2019-04-02
CN109558437B true CN109558437B (zh) 2021-01-01

Family

ID=65866640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811364986.5A Active CN109558437B (zh) 2018-11-16 2018-11-16 主osd调整方法及装置

Country Status (1)

Country Link
CN (1) CN109558437B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110018800A (zh) * 2019-04-12 2019-07-16 苏州浪潮智能科技有限公司 分布式存储系统中归置组选主方法、装置、设备和介质
CN110515771A (zh) * 2019-08-23 2019-11-29 北京浪潮数据技术有限公司 一种对象存储设备设置方法、系统、设备及计算机介质
CN111506263B (zh) * 2020-03-31 2022-07-12 新华三技术有限公司成都分公司 一种心跳连接的建立方法及装置
CN113311996A (zh) * 2021-05-25 2021-08-27 紫光华山科技有限公司 一种osd角色调整方法和装置
CN114237520B (zh) * 2022-02-28 2022-07-08 广东睿江云计算股份有限公司 一种ceph集群数据均衡方法以及系统
CN114461152A (zh) * 2022-04-12 2022-05-10 广东睿江云计算股份有限公司 ceph读写质量优化方法、装置、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016070375A1 (zh) * 2014-11-06 2016-05-12 华为技术有限公司 一种分布式存储复制系统和方法
CN106991170A (zh) * 2017-04-01 2017-07-28 广东浪潮大数据研究有限公司 一种分布式文件容量均衡的方法与装置
CN107317864A (zh) * 2017-06-29 2017-11-03 郑州云海信息技术有限公司 一种存储设备的数据均衡方法及装置
CN108509153A (zh) * 2018-03-23 2018-09-07 新华三技术有限公司 Osd选择方法、数据写入和读取方法、监控器和服务器集群
CN108509157A (zh) * 2018-04-13 2018-09-07 郑州云海信息技术有限公司 一种应用于分布式文件系统的数据均衡方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016070375A1 (zh) * 2014-11-06 2016-05-12 华为技术有限公司 一种分布式存储复制系统和方法
CN106991170A (zh) * 2017-04-01 2017-07-28 广东浪潮大数据研究有限公司 一种分布式文件容量均衡的方法与装置
CN107317864A (zh) * 2017-06-29 2017-11-03 郑州云海信息技术有限公司 一种存储设备的数据均衡方法及装置
CN108509153A (zh) * 2018-03-23 2018-09-07 新华三技术有限公司 Osd选择方法、数据写入和读取方法、监控器和服务器集群
CN108509157A (zh) * 2018-04-13 2018-09-07 郑州云海信息技术有限公司 一种应用于分布式文件系统的数据均衡方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"ceph存储中基于温度因子的crush算法改进";穆彦良等;《成都信息工程学院学报》;20151231;第30卷(第6期);557-562页 *
"基于Docker的云资源弹性调度策略";彭丽萍等;《计算机应用》;20180210;第38卷(第2期);563-567页 *

Also Published As

Publication number Publication date
CN109558437A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
CN109558437B (zh) 主osd调整方法及装置
US9792344B2 (en) Asynchronous namespace maintenance
US9213489B1 (en) Data storage architecture and system for high performance computing incorporating a distributed hash table and using a hash on metadata of data items to obtain storage locations
US10114574B1 (en) Optimizing storage allocation in a storage system
US9891858B1 (en) Deduplication of regions with a storage system
CN104679661B (zh) 混合存储的控制方法及混合存储系统
US20200012568A1 (en) Scalable log-based continuous data protection for distributed databases
US10430398B2 (en) Data storage system having mutable objects incorporating time
US10853182B1 (en) Scalable log-based secondary indexes for non-relational databases
US20170031671A1 (en) Automated firmware update with rollback in a data storage system
CN106406759B (zh) 一种数据存储方法及装置
US9313270B2 (en) Adaptive asynchronous data replication in a data storage system
CN110147203B (zh) 一种文件管理方法、装置、电子设备及存储介质
US10831371B2 (en) Quota controlled movement of data in a tiered storage system
US20160308965A1 (en) Storage node, storage node administration device, storage node logical capacity setting method, program, recording medium, and distributed data storage system
US20170270183A1 (en) Sensor data management apparatus, sensor data management method, and computer program product
JP2018106545A (ja) 情報処理装置、情報処理システム、情報処理方法及びプログラム
CN113946291A (zh) 数据访问方法、装置、存储节点及可读存储介质
JP2016500459A (ja) 監視レコード管理方法及びデバイス
US20200133491A1 (en) Efficient space accounting mechanisms for tracking unshared pages between a snapshot volume and its parent volume
CN111966845B (zh) 图片管理方法、装置、存储节点及存储介质
JP2012243039A (ja) スナップショットデータ保管方法
JP6197666B2 (ja) 記憶装置、複製方法及び複製プログラム
CN115904263B (zh) 一种数据迁移方法、系统、设备及计算机可读存储介质
WO2021189311A1 (en) Read operation in object storage system using enhanced meta structure

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