存储集群OSD故障修复方法、存储介质、监视器及存储集群转让专利

申请号 : CN202110658010.4

文献号 : CN113254277B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴国勇邹理贤

申请人 : 云宏信息科技股份有限公司

摘要 :

本发明公开了一种存储集群OSD故障修复方法、存储介质、监视器及存储集群。该方法为:若监测到存储集群内有OSD发生故障,则将故障OSD销毁,释放其缓存盘和日志盘,然后取备用磁盘作为数据盘,连同所释放的缓存盘和日志盘组成新的OSD,用新的OSD替换故障OSD,让存储集群在新的OSD上进行数据修复。该存储集群OSD故障修复方法不需要预先配置好备用OSD,只需配置好备用磁盘即可,在OSD发生故障时,将故障OSD销毁,释放其缓存盘和日志盘,然后取备用磁盘连同所释放的缓存盘和日志盘组成新的OSD,用此OSD替换故障OSD,如此既实现了故障OSD的等效替换,又能保持为OSD配置日志盘和缓存盘的灵活性。

权利要求 :

1.存储集群OSD故障修复方法,其特征是:若监测到存储集群内有OSD发生故障,则将故障OSD销毁,释放其缓存盘和日志盘,然后取备用磁盘作为数据盘,连同所释放的缓存盘和日志盘组成新的OSD,用新的OSD替换故障OSD,让存储集群在新的OSD上进行数据修复;在用新的OSD替换故障OSD之前,先锁住存储集群的数据均衡功能从而禁止存储集群因故障OSD移出而触发数据均衡,在用新的OSD替换故障OSD之后,解锁存储集群的数据均衡功能从而让存储集群在新的OSD上进行数据修复。

2.如权利要求1所述的存储集群OSD故障修复方法,其特征是:若监测到存储集群内有OSD发生故障,则发出告警信息。

3.如权利要求2所述的存储集群OSD故障修复方法,其特征是:若监测到存储集群内有OSD发生故障,则点亮该OSD所在主机的定位灯以便运维人员确定故障OSD所在位置。

4.如权利要求1~3任一项所述的存储集群OSD故障修复方法,其特征是:该存储集群是Ceph存储集群。

5.一种计算机可读存储介质,其上存储有可执行的计算机程序,其特征是:所述计算机程序被执行时可实现如权利要求1至4任一项所述的存储集群OSD故障修复方法。

6.一种存储集群的监视器,包括处理器和计算机可读存储介质,该计算机可读存储介质上存储有可执行的计算机程序,其特征是:所述计算机程序被所述处理器执行时实现如权利要求1至4任一项所述的存储集群OSD故障修复方法。

7.一种存储集群,其特征是:包括多个OSD和备用磁盘,还包括如权利要求6所述的监视器,该监视器若监测到该存储集群内有OSD发生故障,则将故障OSD销毁,释放其缓存盘和日志盘,然后取备用磁盘作为数据盘,连同所释放的缓存盘和日志盘组成新的OSD,用新的OSD替换故障OSD。

8.如权利要求7所述的存储集群,其特征是:备用磁盘有多个,从中选择其中一个备用磁盘作为数据盘。

说明书 :

存储集群OSD故障修复方法、存储介质、监视器及存储集群

技术领域

[0001] 本发明涉及存储集群技术领域,尤其涉及一种存储集群OSD故障修复方法、存储介质、监视器及存储集群。

背景技术

[0002] Ceph 是一个开源的分布式存储系统,包括对象存储、块设备、文件系统。它可靠性高、管理方便、伸缩性强。Ceph存储集群由很多独立的OSD(Object‑basedStorage Device,
对象存储设备)构成,可以提供对象存储服务。Ceph通过多副本特性和自修复功能来保障数
据的可靠性和防丢失,当某个OSD出现故障时,该OSD会退出服务,属于该OSD的数据会产生
重构,重新分布到其他OSD上,待该OSD修复后,将其他OSD上的部分数据迁移到该OSD上以实
现数据恢复。这种故障处理方法虽然可以保障存储数据的完整性,但数据重构过程会造成
多个OSD之间发生大量的数据迁移,导致集群资源被占用。
[0003] 为了在OSD故障处理过程中减少OSD之间的数据迁移量,专利文献CN109656896A提供了一种故障修复方法,当检测到主用OSD发生故障时,确定故障的主用OSD所属的存储子
集群(存储子集群的各个主用OSD互为副本),从备用OSD组中选择一个备用OSD置换故障的
主用OSD,作为新的主用OSD,将新的主用OSD添加到故障主用OSD所在的存储子集群中,并利
用该存储子集群中其他未发生故障的主用OSD在新的OSD上进行数据恢复。
[0004] 众所周知,OSD至少包括一块独立的数据盘,OSD故障就是指该数据盘故障。在OSD的实际使用中,OSD除了固有的数据盘以外,还可配置有日志盘和缓存盘。各个OSD的日志盘
和缓存盘的大小可以根据实际需求灵活配置,不尽相同。但是,上述专利文献的故障修复方
法是预先配置好备用OSD,以备用OSD直接置换故障的主用OSD,若要保证等效恢复OSD,则需
要把所有主用OSD的和所有备用OSD的日志盘和缓存盘都配置成一样的,这样一来就无法灵
活配置各个OSD的日志盘和缓存盘了。

发明内容

[0005] 本发明所要解决的技术问题是提供一种存储集群OSD故障修复方法,用于存储实现该方法的计算机程序的存储介质,用于执行上述方法的监视器以及包括该监视器的存储
集群,该方法能够用新的OSD替换掉故障的OSD而且能保持OSD的日志盘和缓存盘的配置灵
活性。
[0006] 为了解决上述技术问题,本发明的存储集群OSD故障修复方法,若监测到存储集群内有OSD发生故障,则将故障OSD销毁,释放其缓存盘和日志盘,然后取备用磁盘作为数据
盘,连同所释放的缓存盘和日志盘组成新的OSD,用新的OSD替换故障OSD,让存储集群在新
的OSD上进行数据修复。
[0007] 可选地,若监测到存储集群内有OSD发生故障,则发出告警信息。
[0008] 可选地,若监测到存储集群内有OSD发生故障,则点亮该OSD所在主机的定位灯以便运维人员确定故障OSD所在位置。
[0009] 可选地,在用新的OSD替换故障OSD之前,先锁住存储集群的数据均衡功能,在用新的OSD替换故障OSD之后,解锁存储集群的数据均衡功能从而让存储集群在新的OSD上进行
数据修复。
[0010] 可选地,该存储集群是Ceph存储集群。
[0011] 一种计算机可读存储介质,其上存储有可执行的计算机程序,所述计算机程序被执行时可实现如上所述的存储集群OSD故障修复方法。
[0012] 一种存储集群的监视器,包括处理器和计算机可读存储介质,该计算机可读存储介质上存储有可执行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的
存储集群OSD故障修复方法。
[0013] 一种存储集群,其特征是:包括多个OSD和备用磁盘,还包括如上所述的监视器,该监视器若监测到该存储集群内有OSD发生故障,则将故障OSD销毁,释放其缓存盘和日志盘,
然后取备用磁盘作为数据盘,连同所释放的缓存盘和日志盘组成新的OSD,用新的OSD替换
故障OSD。
[0014] 可选地,备用磁盘有多个,从中选择其中一个备用磁盘作为数据盘。
[0015] 该存储集群OSD故障修复方法不需要预先配置好备用OSD,只需配置好可作为数据盘使用的备用磁盘即可,在OSD发生故障时,将故障OSD销毁,释放其缓存盘和日志盘,然后
取备用磁盘作为数据盘,连同所释放的缓存盘和日志盘组成新的OSD,用此OSD替换故障
OSD,如此既可以实现故障OSD的等效替换,又能保持为OSD配置日志盘和缓存盘的灵活性。

附图说明

[0016] 图1是一种Ceph存储集群的系统框图。

具体实施方式

[0017] 以下结合具体实施方式对本发明创造作进一步详细说明。
[0018] 如图1所示,Ceph存储集群包括多个OSD以及通信连接各个OSD的监视器MON。监视器MON包括处理器和计算机可读存储介质,该计算机可读存储介质上存储有可执行的计算
机程序,所述计算机程序被所述处理器执行时实现存储集群OSD故障修复方法。该存储集群
OSD故障修复方法的具体流程如下:
[0019] Ceph存储集群中的每个OSD会定期向其他OSD发送心跳包,声明自己处于在线状态。每个OSD也定期向监视器MON发送心跳包,同时还把其自身接收到的来自其他OSD的心跳
包情况发送给监视器MON。监视器MON若在预设时间段900s内没有接收到某个OSD发送的心
跳包,并且根据其他OSD接收的心跳包情况判断出其他OSD亦没有接收到该OSD发送的心跳
包,则通过硬盘检测命令和硬盘分区检测命令对该OSD的数据盘进行检测,从而诊断该OSD
的数据盘是否存在故障,若是则判定该OSD发生故障。
[0020] 在判定OSD发生故障之后,监视器MON先锁住Ceph存储集群的数据均衡功能,再把故障OSD从存储集群中移出。Ceph存储集群自身具有数据均衡功能,若有OSD从存储集群中
移出或者有新的OSD添加到存储集群中,则会自动触发数据均衡,进行副本数据修复。由于
把故障OSD从存储集群中移出之后,存储集群的存储空间会缩小,若在移出故障OSD时触发
数据均衡进行数据修复,可能会因不够存储空间进行数据修复而导致存储集群进入只读状
态,无法进行数据写入操作。本发明先锁住Ceph存储集群的数据均衡功能再把故障OSD移出
存储集群,可以防止在移出故障OSD时触发数据均衡进行数据修复,从而避免因不够存储空
间进行数据修复而导致存储集群进入只读状态。
[0021] 在本实施例中,OSD配置有数据盘、日志盘和缓存盘。Ceph存储集群包括多个备用磁盘,把故障OSD从存储集群中移出之后,监视器MON将故障OSD销毁(destory),释放其缓存
盘和日志盘,然后从多个备用磁盘中选择其中一个作为数据盘,连同所释放的缓存盘和日
志盘组成新的OSD,将新的OSD添加到存储集群中从而实现替换故障OSD。在把新的OSD添加
到存储集群中之后,监视器MON解锁存储集群的数据均衡功能,如此一来,存储集群在识别
到新的OSD之后,自动触发数据均衡,从而在新的OSD上进行数据修复。本发明在用新的OSD
替换了故障OSD之后才解锁存储集群的数据均衡功能,从而保证有足够的存储空间进行数
据修复,确保数据的可靠性,防止数据丢失。
[0022] 在判定OSD发生故障时,监视器MON会发出告警信息通知运维人员并点亮该OSD所在主机的定位灯。由于存储集群已经自动用新的OSD替换故障OSD了,运维人员无需第一时
间紧急到达现场对故障OSD进行维修处理,在接收到告警信息之后,可以合理安排时间去现
场,利用亮起的定位灯快速确定故障OSD所在主机的位置,然后对故障OSD进行维修处理。
[0023] 如上所述仅为本发明创造的实施方式,不以此限定专利保护范围。本领域技术人员在本发明创造的基础上作出非实质性的变化或替换,仍落入专利保护范围。