CN105373549A - 数据迁移方法、设备及数据节点服务器 - Google Patents
数据迁移方法、设备及数据节点服务器 Download PDFInfo
- Publication number
- CN105373549A CN105373549A CN201410422451.4A CN201410422451A CN105373549A CN 105373549 A CN105373549 A CN 105373549A CN 201410422451 A CN201410422451 A CN 201410422451A CN 105373549 A CN105373549 A CN 105373549A
- Authority
- CN
- China
- Prior art keywords
- disk
- event
- back end
- end server
- plug
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种应用于云存储系统中的数据迁移方法、设备及数据节点服务器,用以实现数据节点服务器的数据的迅速迁移,快速修复数据节点服务器,并快速使数据节点服务器的负载、容量均衡,并且保证元数据服务器与数据节点服务器之间关于数据块的元数据信息的同步。该方法包括:数据节点服务器实时检测是否发生磁盘插拔事件;当发生磁盘插拔事件时,所述数据节点服务器将该磁盘插拔事件发送到等待就绪队列,对所述等待就绪队列中的磁盘插拔事件进行处理,并根据处理结果判断对磁盘插拔事件所对应的磁盘是否向数据节点服务器同属于一个文件系统集群中的元数据服务器进行数据块的元数据信息的上报。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种应用于云存储系统中的数据迁移方法、设备及数据节点服务器。
背景技术
在云存储系统中,由于数据节点服务器和数据节点服务器上的磁盘都有使用寿命,而且数据节点服务器和磁盘也可能发生其他不可预估的故障,因此,当数据节点服务器或者磁盘发生故障时,云存储数据的完整性和获取云存储数据的及时性就无法得到有效的保障。在现有技术中,对上述情况的处理方式,如下所示:
当磁盘损坏后,需要等到数据节点服务器向元数据服务器周期汇报磁盘个数及状态等信息时,元数据服务器才能识别磁盘故障信息并下发数据块恢复,从而造成数据块恢复延迟;
当数据节点服务器故障或数据节点服务器压力过大后,将数据节点服务器上可用的磁盘拔出,再插入其它数据节点服务器。新的数据节点服务器必须重启,插入的磁盘才能在云存储系统中识别并生效,由于需要重启机器,而重启机器意味着该数据节点暂停服务,无法保障数据节点服务器持续运行;
当插入全新的磁盘时,需先对插入的新磁盘人工格式化,且重启插入新磁盘的数据节点服务器,插入的新磁盘才能在云存储系统中识别并生效。
综上所述,现有技术不能及时发现磁盘插拔事件的发生,从而无法快速修复相应的数据节点服务器,无法快速达到数据节点服务器之间的负载均衡,并且,数据节点服务器在发生磁盘插拔事件时不能及时将相应的数据块的元数据信息上报给元数据服务器,因此导致元数据服务器上数据块的元数据信息不完整,不能达到和数据节点服务器之间的及时同步。
发明内容
本发明实施例提供了一种应用于云存储系统中的数据迁移方法、设备及数据节点服务器,用以及时发现磁盘插拔事件的发生,从而实现数据节点服务器的数据的迅速迁移,快速修复数据节点服务器,使数据节点服务器达到负载均衡,并且保证元数据服务器与数据节点服务器之间关于数据块的元数据信息的同步;对插入的全新磁盘自动识别、格式化,并使该磁盘及时生效,从而简化了操作流程,提高了灵活性。
本发明实施例提供的一种应用于云存储系统中的数据迁移方法,包括:
数据节点服务器实时检测是否发生磁盘插拔事件,并对实时检测得到的磁盘插拔事件进行处理;
所述数据节点服务器根据处理结果判断对磁盘插拔事件所对应的磁盘是否向与该数据节点服务器同属于一个文件系统集群中的元数据服务器进行数据块的元数据信息的上报。
通过该方法,实现了及时发现磁盘插拔事件的发生,从而实现数据节点服务器的数据的迅速迁移,快速修复数据节点服务器,并快速使数据节点服务器的负载、容量均衡,并且保证元数据服务器与数据节点服务器之间关于数据块的元数据信息的同步。
较佳地,所述数据节点服务器对实时检测得到的磁盘插拔事件进行处理之前,还包括:
当发生磁盘插拔事件时,所述数据节点服务器将该磁盘插拔事件发送到等待就绪队列中。
较佳地,所述数据节点服务器对实时检测得到的磁盘插拔事件进行处理,包括:
对于所述等待就绪队列中的磁盘插入事件,所述数据节点服务器将该磁盘插入事件转移至预设的磁盘上线队列中,并对该磁盘上线队列中的磁盘插入事件对应的磁盘进行上线处理。
较佳地,所述数据节点服务器根据处理结果判断对磁盘插拔事件所对应的磁盘是否向与该数据节点服务器同属于一个文件系统集群中的元数据服务器进行数据块的元数据信息的上报,包括:
当所述磁盘插入事件对应的磁盘上线结果成功时,判断该磁盘是否属于该数据节点服务器所属的文件系统集群;
当该磁盘属于该数据节点服务器所属的文件系统集群时,所述数据节点服务器将该磁盘上存储的数据块的元数据信息上报给该文件系统集群中的元数据服务器。
较佳地,当该磁盘不属于该数据节点服务器所属的文件系统集群时,若该磁盘为全新磁盘,则所述数据节点服务器对该磁盘进行格式化,并将该磁盘加入所述文件系统集群。
较佳地,所述数据节点服务器对实时检测得到的磁盘插拔事件进行处理之前,还包括:
当在所述等待就绪队列中新加入一磁盘拔出事件时,所述数据节点服务器从所述等待就绪队列中删除该磁盘拔出事件之前的同一槽位的所有磁盘插拔事件。
较佳地,所述数据节点服务器根据处理结果判断对磁盘插拔事件所对应的磁盘是否向与该数据节点服务器同属于一个文件系统集群中的元数据服务器进行数据块的元数据信息的上报,包括:
对于所述等待就绪队列中的磁盘拔出事件,所述数据节点服务器判断该磁盘拔出事件发生在该数据节点服务器的运行过程中还是初始化过程中;
当该磁盘拔出事件发生在该数据节点服务器的运行过程中时,所述数据节点服务器将该磁盘拔出事件所对应的磁盘上存储的数据块的元数据信息上报给与该数据节点服务器同属于一个文件系统集群中的元数据服务器。
较佳地,当该磁盘拔出事件发生在该数据节点服务器的初始化过程中时,所述数据节点服务器将该磁盘拔出事件所对应的磁盘以外的所有本地磁盘上存储的数据块的元数据信息上报给与该数据节点服务器同属于一个文件系统集群中的元数据服务器。
本发明实施例提供的一种应用于云存储系统中的数据迁移设备,包括:
磁盘插拔处理模块,用于实时检测数据节点服务器是否发生磁盘插拔事件,并对检测得到的磁盘插拔事件进行处理;
数据块上报处理模块,用于根据磁盘插拔处理模块的处理结果,判断对磁盘插拔事件所对应的磁盘是否向与该数据节点服务器同属于一个文件系统集群中的元数据服务器进行数据块的元数据信息的上报。
通过该设备,实现了及时发现磁盘插拔事件的发生,从而实现数据节点服务器的数据的迅速迁移,快速修复数据节点服务器,并快速使数据节点服务器的负载、容量均衡,并且保证元数据服务器与数据节点服务器之间关于数据块的元数据信息的同步。
较佳地,所述磁盘插拔处理模块,还用于:
对实时检测得到的磁盘插拔事件进行处理之前,将该磁盘插拔事件发送到等待就绪队列中。
较佳地,所述磁盘插拔处理模块在对实时检测得到的磁盘插拔事件进行处理时,具体用于:
对于所述等待就绪队列中的磁盘插入事件,将该磁盘插入事件转移至预设的磁盘上线队列中,并所述磁盘插入事件对应的磁盘进行上线处理。
较佳地,所述数据块上报处理模块在根据磁盘插拔处理模块的处理结果,判断对磁盘插拔事件所对应的磁盘是否向与该数据节点服务器同属于一个文件系统集群中的元数据服务器进行数据块的元数据信息的上报时,具体用于:
当所述磁盘插入事件对应的磁盘上线结果成功时,判断该磁盘是否属于该数据节点服务器所属的文件系统集群;
当该磁盘属于该数据节点服务器所属的文件系统集群时,将该磁盘上存储的数据块的元数据信息上报给该文件系统集群中的元数据服务器。
较佳地,当该磁盘不属于该数据节点服务器所属的文件系统集群,且该磁盘为全新磁盘时,所述数据块上报处理模块触发所述磁盘插拔处理模块对该磁盘进行格式化,并将该磁盘加入所述文件系统集群。
较佳地,所述磁盘插拔处理模块,还用于:
当在所述等待就绪队列中新加入一磁盘拔出事件时,从所述等待就绪队列中删除该磁盘拔出事件之前的同一槽位的所有磁盘插拔事件。
较佳地,所述数据块上报处理模块在根据处理结果判断对磁盘插拔事件所对应的磁盘是否向与该数据节点服务器同属于一个文件系统集群中的元数据服务器进行数据块的元数据信息的上报时,具体用于:
对于所述等待就绪队列中的磁盘拔出事件,判断该磁盘拔出事件发生在该数据节点服务器的运行过程中还是初始化过程中;
当该磁盘拔出事件发生在该数据节点服务器的运行过程中时,将该磁盘拔出事件所对应的磁盘上存储的数据块的元数据信息上报给与该数据节点服务器同属于一个文件系统集群中的元数据服务器。
较佳地,当该磁盘拔出事件发生在该数据节点服务器的初始化过程中时,所述数据块上报处理模块将该磁盘拔出事件所对应的磁盘以外的所有本地磁盘上存储的数据块的元数据信息上报给与该数据节点服务器同属于一个文件系统集群中的元数据服务器。
本发明实施例提供的应用于云存储系统中的数据节点服务器,包括上述任一所述的数据节点服务器的数据迁移设备。
附图说明
图1为本发明实施例提供的一种应用于云存储系统中的数据迁移设备的结构示意图;
图2为本发明实施例提供的磁盘插拔处理模块的结构示意图;
图3为本发明实施例提供的磁盘插入事件具体实施方法的流程示意图;
图4为本发明实施例提供的磁盘拔出事件具体实施方法的流程示意图;
图5为本发明实施例提供的一种应用于云存储系统中的数据迁移方法的流程示意图。
具体实施方式
本发明实施例提供了应用于云存储系统中的数据迁移方法、设备及数据节点服务器,用以实现及时检测磁盘插拔事件,从而达到数据节点服务器的数据块的迅速迁移,快速修复数据节点服务器,并快速使数据节点服务器的负载、容量均衡,并且保证元数据服务器与数据节点服务器之间关于数据块的元数据信息的同步;对插入的全新磁盘自动识别、格式化,并使该磁盘及时生效,从而简化了操作流程,提高了灵活性。
本发明实施例提供的技术方案中,通过对磁盘插拔事件的检测,使得元数据服务器能及时下发数据块恢复指令到该数据节点服务器,从而完成磁盘的及时更换及数据节点服务器的数据恢复,从而可以实现磁盘的迅速迁移,并保证数据完整性;并且,本发明实施例可以自动识别插入磁盘是否为全新的磁盘,如果是则将该插入磁盘进行格式化,并及时生效,从而简化了新磁盘插入时的操作流程,提高了灵活性。
如果数据节点服务器损坏,可以将该数据节点服务器上的可用的磁盘重新插入同一个文件系统集群的其他数据节点服务器。通过检测插入磁盘是否属于该数据节点服务器所属的文件系统集群,将该插入磁盘上存储的数据块的元数据信息上报给该文件系统集群中的元数据服务器,从而确保损坏的数据节点服务器对应的磁盘中存储的数据块及数据块的元数据信息不会丢失。
参见图1,本发明实施例提供的应用于云存储系统中的数据迁移设备,包括:
磁盘插拔处理模块101,用于实时检测数据节点服务器是否发生磁盘插拔事件,并对检测得到的磁盘插拔事件进行处理;
数据块上报处理模块102,用于根据磁盘插拔处理模块的处理结果,判断对磁盘插拔事件所对应的磁盘是否向与该数据节点服务器同属于一个文件系统集群中的元数据服务器进行数据块的元数据信息的上报。
磁盘插拔处理模块101中预先配置有操作系统,通过该操作系统实时检测是否有磁盘插拔事件发生,并对检测得到的磁盘插拔事件进行处理。其中,所述核心驱动程序与热插拔脚本均是预先设置在磁盘插拔处理模块101中的应用程序。
对于磁盘插入事件,数据块上报处理模块102判断提取的磁盘插入事件中磁盘上线任务处理结果,如果此次磁盘插入事件的返回结果为失败,则不做处理,其中,磁盘上线任务失败的原因包括多种,例如,最终处理结果表示磁盘不可用,则认为磁盘上线任务失败;
如果此次磁盘插入事件的返回结果为成功,则开始扫描该插入磁盘,通过数据节点服务器记录的磁盘信息,判断该磁盘是否属于该数据节点服务器所属的文件系统集群:
当该磁盘属于该数据节点服务器所属的文件系统集群时,存储管理层向同属于一个文件系统集群中的元数据服务器进行增量上报,即将该磁盘上存储的数据块的元数据信息上报给同属于一个文件系统集群中的元数据服务器;
当该磁盘不属于该数据节点服务器所属的文件系统集群,且该磁盘为全新磁盘时,所述数据块上报处理模块102触发所述磁盘插拔处理模块101对该磁盘进行自动格式化,并将该磁盘加入所述文件系统集群;
当该磁盘不属于该数据节点服务器所属的文件系统集群,且该磁盘不是全新磁盘时,对该磁盘不进行处理。
其中,判断磁盘是否属于数据节点服务器所属的文件系统集群的磁盘信息和磁盘序列号记录在数据节点的全局文件。
较佳地,数据节点服务器初始化启动,当磁盘上线任务全部处理结束并得到处理结果或者等待超时时,数据块上报处理模块102会扫描磁盘插入事件的上线返回结果成功的磁盘,并将磁盘上的数据块的元数据信息增量上报给同属于一个文件系统集群中的元数据服务器,即将该磁盘上存储的数据块的元数据信息上报给同属于一个文件系统集群中的元数据服务器。
对于磁盘拔出事件,数据块上报处理模块102判断取出的磁盘拔出事件发生在数据节点服务器的运行过程中还是初始化过程中:
当该磁盘拔出事件发生在该数据节点服务器的运行过程中时,向该数据节点服务器同属于一个文件系统集群中的元数据服务器进行盘减少上报,即将该磁盘拔出事件所对应的磁盘上存储的数据块的元数据信息上报给与该数据节点服务器同属于一个文件系统集群中的元数据服务器;
当该磁盘拔出事件发生在该数据节点服务器的初始化过程中时,向该数据节点服务器同属于一个文件系统集群中的元数据服务器进行全量上报,即将该磁盘拔出事件所对应的磁盘以外的所有本地磁盘上存储的数据块的元数据信息上报给与该数据节点服务器同属于一个文件系统集群中的元数据服务器。
较佳地,在数据节点服务器运行过程中,数据节点服务器通过云存储EC纠删码算法,保证了数据节点服务器存储数据块的健壮性。
较佳地,元数据服务器接收到磁盘拔出事件所对应的磁盘上报的数据块的元数据信息后,立即更新自身记录的数据块的元数据信息。
较佳地,本发明实施例中所述磁盘插拔处理模块101存储磁盘插拔事件的等待就绪队列和磁盘上线队列均可以由存储器实现,所述磁盘插拔处理模块101检测数据节点服务器是否发生磁盘插拔事件,并对检测得到的磁盘插拔事件进行处理等功能由处理器实现;所述数据块上报处理模块102判断所述磁盘是否与数据节点服务器同属于一个文件系统集群,向元数据服务器上报等功能均可以由处理器实现。
较佳地,参见图2,所述磁盘插拔处理模块101,从功能上可以细化为以下组成单元:
检测磁盘插拔事件单元201,用于实时检测是否发生磁盘插拔事件;
事件通知客户端单元202,用于接收并转发检测磁盘插拔事件单元201检测到的磁盘插拔事件给事件监听服务端单元203;
事件监听服务端单元203,用于当接收到事件通知客户端单元202发送的磁盘插拔事件时,将磁盘插拔事件存储到预设的等待就绪队列中,具体可以放到该等待就绪队列中的末尾处,即按照时间顺序排在最后;
存储管理层单元204,用于不间断的从等待就绪队列中取出磁盘插拔事件,将取出的磁盘插拔事件缓存到磁盘上线队列,以及不间断的从磁盘上线队列中取出磁盘插入事件,并根据处理结果判断取出的磁盘插入事件所对应的磁盘是否进行数据块的元数据信息的上报;
磁盘助手单元205,用于以异步方式对该磁盘插入事件对应的磁盘进行上线处理,并将成功或失败的处理结果返回给存储管理层单元204;
磁盘任务管理器单元206,用于接收磁盘插入事件,并将接收到磁盘插入事件封装成磁盘上线任务,再将磁盘上线任务缓存到调度队列,其中,所述数据节点服务器中所有槽位上的磁盘上线任务都缓存在同一调度队列中;
磁盘任务调度器单元207,用于调度线程池单元208中的空闲线程与磁盘任务管理器单元206中的调度队列的磁盘上线任务;
线程池单元208,用于存储磁盘上下线任务的所有空闲线程;
任务执行模块单元209,用于接收并处理磁盘上线任务,并将磁盘上线任务处理结果反馈给磁盘助手单元205。
较佳地,等待就绪队列,位于存储管理层单元204,用于缓存包括磁盘所属槽位和磁盘类别的磁盘插拔事件;
磁盘上线队列,位于存储管理层单元204,用于缓存附加有上线处理的状态的磁盘插拔事件;
调度队列,位于磁盘任务管理器单元206,用于缓存磁盘上线任务。
综上,数据块上报处理模块102中各单元的处理流程,包括:
检测磁盘插拔事件单元201预先配置有操作系统,该操作系统可以实时检测数据节点服务器是否发生磁盘插拔事件,当发生磁盘插拔事件时,通过该操作系统内核的核心驱动程序调用热插拔脚本,将磁盘插拔事件发送给事件通知客户端单元202。
事件通知客户端单元202将磁盘插拔事件类型和磁盘槽位等磁盘插拔信息实时发送给事件监听服务端单元203。事件监听服务端单元203将获取的磁盘插拔事件信息缓存到等待就绪队列的末尾处,其中,所有槽位对应的磁盘插拔事件都缓存在同一等待就绪队列中。
对于磁盘插入事件,存储管理层单元204对等待就绪队列线程实时轮询检测,取出位于队列头部的磁盘插入事件,也就是,等待就绪队列中取出的磁盘插入事件将被删除。与此同时,将取出的磁盘插入事件缓存到磁盘上线队列,并将缓存到磁盘上线队列中的磁盘插入事件标记为未处理。存储管理层单元204通过线程实时轮询检测,并从磁盘上线队列中提取磁盘插入事件,将提取的磁盘插入事件通知磁盘助手单元205。其中,所述线程实时轮询检测,并取出磁盘插拔事件,是指在存储管理层单元204中有单独的线程专门处理磁盘插拔事件,并不断检查等待就绪队列。当发现等待就绪队列中有需要处理的事件时,则逐个取出进行处理。
磁盘助手单元205接收到磁盘插入事件通知后,将以异步方式对该磁盘插入事件对应的磁盘进行上线处理。其中,磁盘助手单元205采用的异步处理方式是为优化磁盘上线任务处理速度,即磁盘助手单元205可以发起多个磁盘任务,无需等待发起的磁盘上线任务处理结束,当磁盘上线任务处理结束后,会主动通知磁盘助手单元205。
磁盘插入事件对应的磁盘进行上线处理具体的流程为:磁盘助手单元205将接收到磁盘插入事件投递到磁盘任务管理器单元206,磁盘任务管理器单元206将接收到的磁盘插入事件封装成磁盘上线任务,并将磁盘上线任务缓存到磁盘任务管理器单元206的调度队列中。与此同时,磁盘任务调度器单元207的线程实时对调度队列中磁盘上线任务轮询检测,如果调度队列中有磁盘上线任务,则磁盘任务调度器单元207从线程池单元208中取出空闲线程,并从调度队列中取出未执行的槽位上的磁盘上线任务,将磁盘上线任务投递到任务执行模块单元209。任务执行模块单元209将对投递过来的磁盘上线任务进行处理。当磁盘上线任务处理完成后,任务执行模块单元209会将磁盘上线任务处理结果附加到磁盘插入事件中,并将磁盘插入事件发送给磁盘助手单元205。磁盘助手单元205将更新磁盘上线队列。存储管理层单元204实时从磁盘上线队列中轮询提取磁盘插入事件,与此同时,从上线队列中删除提取的磁盘插入事件。
其中,磁盘助手单元205返回的磁盘插拔事件包括,磁盘插拔事件的槽位以及磁盘上线任务处理结果(即成功还是失败)。
较佳地,磁盘助手单元205,主要用于磁盘上下线的处理,比如挂载、格式化、校验等底层操作。
对于磁盘拔出事件,存储管理层单元204在对等待就绪队列进行去重处理后,即先删除等待就绪队列中该槽位的磁盘插拔事件,包括磁盘插入事件和磁盘拔出事件,然后将本次磁盘拔出事件放入等待就绪队列的队尾,以消除所述等待就绪队列中磁盘拔出事件所属槽位之前没必要再执行的重复的磁盘插拔事件。
存储管理层单元204对去重后的等待就绪队列进行实时轮询检测,取出位于队列头部的磁盘拔出事件,也就是,等待就绪队列中取出的磁盘拔出事件将被删除。
具体地,磁盘拔出事件发生时,存储管理层单元204对等待就绪队列进行去重处理,而磁盘插入事件发生时,并没有对等待就绪队列进行去重处理。其主要原因是,在数据节点服务器启动时,数据节点服务器上的磁盘都是不可用的状态,首先,对每个磁盘做磁盘上线处理,因此在等待就绪队列中,每个槽位第一个磁盘插拔事件都是磁盘插入事件,然后才是磁盘拔出事件,而且磁盘插入事件和磁盘拔出事件都是间隔出现。在磁盘拔出事件时对等待就绪队列进行去重处理,即将等待就绪队列中该槽位的磁盘插拔事件(包括磁盘插入事件和磁盘拔出事件)都删除了,所以下一次的磁盘插入事件到来时,在等待就绪队列中肯定不会存在同槽位的磁盘插入事件。因此,磁盘插入事件发生时,不需要对等待就绪队列进行去重处理。
下面结合附图对本发明实施例中各个模块的处理流程进行介绍。
参见图3,本发明实施例对磁盘插入事件的具体实施步骤包括:
S301、磁盘插拔处理模块101中的事件通知客户端单元202将磁盘插拔事件类型和磁盘槽位等磁盘插拔信息实时发送给磁盘插拔处理模块101中的事件监听服务端单元203;
S302、事件监听服务端单元203将获取的磁盘插拔事件信息按时间先后顺序缓存到等待就绪队列的队尾;
S303、磁盘插拔处理模块101中的存储管理层单元204对等待就绪队列实时轮询检测,取出位于队列头部的磁盘插入事件,也就是,等待就绪队列中取出的磁盘插入事件将被删除,与此同时,将取出的磁盘插入事件缓存到磁盘上线队列,并将缓存到磁盘上线队列中的磁盘插入事件标记为未处理;
S304、存储管理层单元204通过线程实时轮询检测,并从磁盘上线队列中提取磁盘插入事件,将提取的磁盘插入事件通知磁盘插拔处理模块101中的磁盘助手单元205;
S305、磁盘助手单元205接收到磁盘插入事件通知后,将以异步方式将接收到磁盘插入事件投递到磁盘插拔处理模块101中的磁盘任务管理器单元206;
S306、磁盘任务管理器单元206将接收到的磁盘插入事件封装成磁盘上线任务,并将磁盘上线任务缓存到磁盘任务管理器单元206的调度队列中;
S307、磁盘插拔处理模块101中的磁盘任务调度器单元207的线程对磁盘任务管理器单元206的调度队列实时轮询检测,如果调度队列中有磁盘上线任务,则磁盘任务调度器单元207从磁盘插拔处理模块101中的线程池单元208中取出空闲线程,并从调度队列中取出未执行的槽位上的磁盘上线任务,通过每个线程将一个磁盘上线任务投递到磁盘插拔处理模块101中的任务执行模块单元209,任务执行模块单元209将对投递过来的磁盘上线任务进行处理;
S308、当磁盘上线任务处理完成后,任务执行模块单元209会将磁盘上线任务处理结果发送给磁盘助手单元205;
S309、磁盘助手单元205将磁盘上线任务处理结果更新到磁盘上线队列;
S310、存储管理层单元204实时从磁盘上线队列中轮询提取磁盘插入事件,与此同时,从上线队列中删除提取的磁盘插入事件;
S311、数据块上报处理模块102判断提取的磁盘插入事件中磁盘上线任务处理结果,如果此次磁盘插入事件的返回结果为失败,则不做处理;
如果此次磁盘插入事件的返回结果为成功,则数据块上报处理模块102开始扫描该插入磁盘,通过数据节点服务器记录的磁盘信息,判断该磁盘是否属于该数据节点服务器所属的文件系统集群:
当该磁盘属于该数据节点服务器所属的文件系统集群时,数据块上报处理模块102向同属于一个文件系统集群中的元数据服务器进行增量上报,即将该磁盘上存储的数据块的元数据信息上报给同属于一个文件系统集群中的元数据服务器;
当该磁盘不属于该数据节点服务器所属的文件系统集群,且该磁盘为全新磁盘时,所述数据块上报处理模块102触发所述磁盘插拔处理模块101对该磁盘进行自动格式化,并将该磁盘加入所述文件系统集群;
当该磁盘不属于该数据节点服务器所属的文件系统集群,且该磁盘不是全新磁盘时,对该磁盘不进行处理。
参见图4,本发明实施例对磁盘拔出事件的具体实施步骤为:
S401、磁盘插拔处理模块101中的事件通知客户端单元202将磁盘插拔事件类型和磁盘槽位等磁盘插拔信息实时发送给磁盘插拔处理模块101中的事件监听服务端单元203;
S402、事件监听服务端单元203将获取的磁盘插拔事件信息按时间的先后顺序缓存到等待就绪队列的队尾;
S403、磁盘插拔处理模块101中的存储管理层单元204对等待就绪队列中磁盘插拔事件进行去重处理,即先删除等待就绪队列中该槽位的插拔事件,包括磁盘插入事件和磁盘拔出事件;
S404、存储管理层单元204对去重处理后的等待就绪队列实时的轮询检测,取出位于队列头部的磁盘拔出事件,与此同时,将取出的磁盘拔出事件在等待就绪队列中删除;数据块上报处理模块102判断取出磁盘拔出事件发生在该数据节点服务器的运行过程中还是初始化过程中:
当该磁盘拔出事件发生在该数据节点服务器的运行过程中时,数据块上报处理模块102向该数据节点服务器同属于一个文件系统集群中的元数据服务器进行全量上报,即将该磁盘拔出事件所对应的磁盘上存储的数据块的元数据信息上报给与该数据节点服务器同属于一个文件系统集群中的元数据服务器;
当该磁盘拔出事件发生在该数据节点服务器的初始化过程中时,数据块上报处理模块102向该数据节点服务器同属于一个文件系统集群中的元数据服务器进行盘减少上报,即将该磁盘拔出事件所对应的磁盘以外的所有本地磁盘上存储的数据块的元数据信息上报给与该数据节点服务器同属于一个文件系统集群中的元数据服务器。
若从整个数据节点服务器的角度出发描述其处理流程,参见图5,本发明实施例提供的一种应用于云存储系统中的磁盘插拔事件的处理方法,包括:
S501、数据节点服务器实时检测是否发生磁盘插拔事件;
S502、所述数据节点服务器对实时检测得到的磁盘插拔事件进行处理,并根据处理结果判断对磁盘插拔事件所对应的磁盘是否向与该数据节点服务器同属于一个文件系统集群中的元数据服务器进行数据块的元数据信息的上报。
较佳地,所述数据节点服务器对实时检测得到的磁盘插拔事件进行处理之前,还包括:
当发生磁盘插拔事件时,所述数据节点服务器将该磁盘插拔事件发送到等待就绪队列中。
较佳地,所述数据节点服务器对实时检测得到的磁盘插拔事件进行处理,并根据处理结果判断对磁盘插拔事件所对应的磁盘是否向与该数据节点服务器同属于一个文件系统集群中的元数据服务器进行数据块的元数据信息的上报,包括:
对于所述等待就绪队列中的磁盘插入事件,所述数据节点服务器将该磁盘插入事件转移至预设的磁盘上线队列中;
所述数据节点服务器对该磁盘上线队列中的磁盘插入事件对应的磁盘进行上线处理,当上线成功时,判断该磁盘是否属于该数据节点服务器所属的文件系统集群;
当该磁盘属于该数据节点服务器所属的文件系统集群时,所述数据节点服务器将该磁盘上存储的数据块的元数据信息上报给该文件系统集群中的元数据服务器。
较佳地,当该磁盘不属于该数据节点服务器所属的文件系统集群时,若该磁盘为全新磁盘,则所述数据节点服务器对该磁盘进行格式化,并将该磁盘加入所述文件系统集群。
较佳地,所述数据节点服务器对实时检测得到的磁盘插拔事件进行处理之前,还包括:
当在所述等待就绪队列中新加入一磁盘拔出事件时,所述数据节点服务器从所述等待就绪队列中删除该磁盘拔出事件之前的同一槽位的所有磁盘插拔事件。
较佳地,所述数据节点服务器对实时检测得到的磁盘插拔事件进行处理,并根据处理结果判断对磁盘插拔事件所对应的磁盘是否向与该数据节点服务器同属于一个文件系统集群中的元数据服务器进行数据块的元数据信息的上报,包括:
对于所述等待就绪队列中的磁盘拔出事件,所述数据节点服务器判断该磁盘拔出事件发生在该数据节点服务器的运行过程中还是初始化过程中;
当该磁盘拔出事件发生在该数据节点服务器的运行过程中时,所述数据节点服务器将该磁盘拔出事件所对应的磁盘上存储的数据块的元数据信息上报给与该数据节点服务器同属于一个文件系统集群中的元数据服务器。
较佳地,当该磁盘拔出事件发生在该数据节点服务器的初始化过程中时,所述数据节点服务器将该磁盘拔出事件所对应的磁盘以外的所有本地磁盘上存储的数据块的元数据信息上报给与该数据节点服务器同属于一个文件系统集群中的元数据服务器。
综上所述,本发明实施例提供的技术方案中,在数据节点服务器不停止服务的情况下,通过检测并上报磁盘拔插事件,实现元数据服务器能及时下发数据块恢复指令到数据节点服务器,从而实现磁盘漂移,即数据节点服务器的数据的迅速迁移,快速修复相应的数据节点服务器,使数据节点服务器之间快速达到负载均衡,并保证元数据服务器与数据节点服务器之间关于数据块的元数据信息的同步;对插入的全新磁盘自动识别、格式化,并使该磁盘及时生效,从而简化了操作流程,提高了灵活性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (17)
1.一种应用于云存储系统中的数据迁移方法,其特征在于,该方法包括:
数据节点服务器实时检测是否发生磁盘插拔事件,并对实时检测得到的磁盘插拔事件进行处理;
所述数据节点服务器根据处理结果判断对磁盘插拔事件所对应的磁盘是否向与该数据节点服务器同属于一个文件系统集群中的元数据服务器进行数据块的元数据信息的上报。
2.根据权利要求1所述的方法,其特征在于,所述数据节点服务器对实时检测得到的磁盘插拔事件进行处理之前,还包括:
当发生磁盘插拔事件时,所述数据节点服务器将该磁盘插拔事件发送到等待就绪队列中。
3.根据权利要求2所述的方法,其特征在于,所述数据节点服务器对实时检测得到的磁盘插拔事件进行处理,包括:
对于所述等待就绪队列中的磁盘插入事件,所述数据节点服务器将该磁盘插入事件转移至预设的磁盘上线队列中,并对该磁盘上线队列中的磁盘插入事件对应的磁盘进行上线处理。
4.根据权利要求1所述的方法,其特征在于,所述数据节点服务器根据处理结果判断对磁盘插拔事件所对应的磁盘是否向与该数据节点服务器同属于一个文件系统集群中的元数据服务器进行数据块的元数据信息的上报,包括:
当所述磁盘插入事件对应的磁盘上线结果成功时,判断该磁盘是否属于该数据节点服务器所属的文件系统集群;
当该磁盘属于该数据节点服务器所属的文件系统集群时,所述数据节点服务器将该磁盘上存储的数据块的元数据信息上报给该文件系统集群中的元数据服务器。
5.根据权利要求3所述的方法,其特征在于,当该磁盘不属于该数据节点服务器所属的文件系统集群时,若该磁盘为全新磁盘,则所述数据节点服务器对该磁盘进行格式化,并将该磁盘加入所述文件系统集群。
6.根据权利要求2所述的方法,其特征在于,所述数据节点服务器对实时检测得到的磁盘插拔事件进行处理之前,还包括:
当在所述等待就绪队列中新加入一磁盘拔出事件时,所述数据节点服务器从所述等待就绪队列中删除该磁盘拔出事件之前的同一槽位的所有磁盘插拔事件。
7.根据权利要求6所述的方法,其特征在于,所述数据节点服务器根据处理结果判断对磁盘插拔事件所对应的磁盘是否向与该数据节点服务器同属于一个文件系统集群中的元数据服务器进行数据块的元数据信息的上报,包括:
对于所述等待就绪队列中的磁盘拔出事件,所述数据节点服务器判断该磁盘拔出事件发生在该数据节点服务器的运行过程中还是初始化过程中;
当该磁盘拔出事件发生在该数据节点服务器的运行过程中时,所述数据节点服务器将该磁盘拔出事件所对应的磁盘上存储的数据块的元数据信息上报给与该数据节点服务器同属于一个文件系统集群中的元数据服务器。
8.根据权利要求7所述的方法,其特征在于,当该磁盘拔出事件发生在该数据节点服务器的初始化过程中时,所述数据节点服务器将该磁盘拔出事件所对应的磁盘以外的所有本地磁盘上存储的数据块的元数据信息上报给与该数据节点服务器同属于一个文件系统集群中的元数据服务器。
9.一种应用于云存储系统中的数据迁移设备,其特征在于,该设备包括:
磁盘插拔处理模块,用于实时检测数据节点服务器是否发生磁盘插拔事件,并对检测得到的磁盘插拔事件进行处理;
数据块上报处理模块,用于根据磁盘插拔处理模块的处理结果,判断对磁盘插拔事件所对应的磁盘是否向与该数据节点服务器同属于一个文件系统集群中的元数据服务器进行数据块的元数据信息的上报。
10.根据权利要求9所述的设备,其特征在于,所述磁盘插拔处理模块,还用于:
对实时检测得到的磁盘插拔事件进行处理之前,将该磁盘插拔事件发送到等待就绪队列中。
11.根据权利要求10所述的设备,其特征在于,所述磁盘插拔处理模块在对实时检测得到的磁盘插拔事件进行处理时,具体用于:
对于所述等待就绪队列中的磁盘插入事件,将该磁盘插入事件转移至预设的磁盘上线队列中,并所述磁盘插入事件对应的磁盘进行上线处理。
12.根据权利要求9所述的设备,其特征在于,所述数据块上报处理模块在根据磁盘插拔处理模块的处理结果,判断对磁盘插拔事件所对应的磁盘是否向与该数据节点服务器同属于一个文件系统集群中的元数据服务器进行数据块的元数据信息的上报时,具体用于:
当所述磁盘插入事件对应的磁盘上线结果成功时,判断该磁盘是否属于该数据节点服务器所属的文件系统集群;
当该磁盘属于该数据节点服务器所属的文件系统集群时,将该磁盘上存储的数据块的元数据信息上报给该文件系统集群中的元数据服务器。
13.根据权利要求12所述的设备,其特征在于,当该磁盘不属于该数据节点服务器所属的文件系统集群,且该磁盘为全新磁盘时,所述数据块上报处理模块触发所述磁盘插拔处理模块对该磁盘进行格式化,并将该磁盘加入所述文件系统集群。
14.根据权利要求10所述的设备,其特征在于,所述磁盘插拔处理模块,还用于:
当在所述等待就绪队列中新加入一磁盘拔出事件时,从所述等待就绪队列中删除该磁盘拔出事件之前的同一槽位的所有磁盘插拔事件。
15.根据权利要求14所述的设备,其特征在于,所述数据块上报处理模块在根据处理结果判断对磁盘插拔事件所对应的磁盘是否向与该数据节点服务器同属于一个文件系统集群中的元数据服务器进行数据块的元数据信息的上报时,具体用于:
对于所述等待就绪队列中的磁盘拔出事件,判断该磁盘拔出事件发生在该数据节点服务器的运行过程中还是初始化过程中;
当该磁盘拔出事件发生在该数据节点服务器的运行过程中时,将该磁盘拔出事件所对应的磁盘上存储的数据块的元数据信息上报给与该数据节点服务器同属于一个文件系统集群中的元数据服务器。
16.根据权利要求15所述的设备,其特征在于,当该磁盘拔出事件发生在该数据节点服务器的初始化过程中时,所述数据块上报处理模块将该磁盘拔出事件所对应的磁盘以外的所有本地磁盘上存储的数据块的元数据信息上报给与该数据节点服务器同属于一个文件系统集群中的元数据服务器。
17.一种应用于云存储系统中的数据节点服务器,其特征在于,包括权利要求9-16任一权项所述的设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410422451.4A CN105373549B (zh) | 2014-08-25 | 2014-08-25 | 数据迁移方法、设备及数据节点服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410422451.4A CN105373549B (zh) | 2014-08-25 | 2014-08-25 | 数据迁移方法、设备及数据节点服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105373549A true CN105373549A (zh) | 2016-03-02 |
CN105373549B CN105373549B (zh) | 2019-02-12 |
Family
ID=55375756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410422451.4A Active CN105373549B (zh) | 2014-08-25 | 2014-08-25 | 数据迁移方法、设备及数据节点服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105373549B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105722187A (zh) * | 2016-03-28 | 2016-06-29 | 青岛大学 | 一种一对多的信息无线传输方法 |
CN105939387A (zh) * | 2016-06-23 | 2016-09-14 | 中国南方电网有限责任公司 | 基于网省地统一调度的多级负载均衡及服务器角色切换方法 |
CN108595119A (zh) * | 2018-03-30 | 2018-09-28 | 浙江大华技术股份有限公司 | 一种数据同步方法及分布式系统 |
CN110399098A (zh) * | 2019-06-25 | 2019-11-01 | 联想(北京)有限公司 | 一种数据处理方法及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050138289A1 (en) * | 2003-12-18 | 2005-06-23 | Royer Robert J.Jr. | Virtual cache for disk cache insertion and eviction policies and recovery from device errors |
CN101017472A (zh) * | 2007-03-01 | 2007-08-15 | 华为技术有限公司 | 多硬盘系统中硬盘热拔插系统及方法 |
CN102622315A (zh) * | 2012-02-24 | 2012-08-01 | 华为技术有限公司 | 一种磁盘访问控制方法、装置及系统 |
CN103019619A (zh) * | 2012-11-28 | 2013-04-03 | 浙江宇视科技有限公司 | 一种磁盘插拔控制方法及装置 |
CN103067485A (zh) * | 2012-12-25 | 2013-04-24 | 曙光信息产业(北京)有限公司 | 云存储系统的磁盘监控方法 |
-
2014
- 2014-08-25 CN CN201410422451.4A patent/CN105373549B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050138289A1 (en) * | 2003-12-18 | 2005-06-23 | Royer Robert J.Jr. | Virtual cache for disk cache insertion and eviction policies and recovery from device errors |
CN101017472A (zh) * | 2007-03-01 | 2007-08-15 | 华为技术有限公司 | 多硬盘系统中硬盘热拔插系统及方法 |
CN102622315A (zh) * | 2012-02-24 | 2012-08-01 | 华为技术有限公司 | 一种磁盘访问控制方法、装置及系统 |
CN103019619A (zh) * | 2012-11-28 | 2013-04-03 | 浙江宇视科技有限公司 | 一种磁盘插拔控制方法及装置 |
CN103067485A (zh) * | 2012-12-25 | 2013-04-24 | 曙光信息产业(北京)有限公司 | 云存储系统的磁盘监控方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105722187A (zh) * | 2016-03-28 | 2016-06-29 | 青岛大学 | 一种一对多的信息无线传输方法 |
CN105939387A (zh) * | 2016-06-23 | 2016-09-14 | 中国南方电网有限责任公司 | 基于网省地统一调度的多级负载均衡及服务器角色切换方法 |
CN108595119A (zh) * | 2018-03-30 | 2018-09-28 | 浙江大华技术股份有限公司 | 一种数据同步方法及分布式系统 |
CN108595119B (zh) * | 2018-03-30 | 2021-04-16 | 浙江大华技术股份有限公司 | 一种数据同步方法及分布式系统 |
CN110399098A (zh) * | 2019-06-25 | 2019-11-01 | 联想(北京)有限公司 | 一种数据处理方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105373549B (zh) | 2019-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103226502B (zh) | 一种数据灾备控制系统及数据恢复方法 | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
CN101706802B (zh) | 一种数据写入、修改及恢复的方法、装置及服务器 | |
CN103345470B (zh) | 一种数据库容灾方法、系统及服务器 | |
EP3142011B9 (en) | Anomaly recovery method for virtual machine in distributed environment | |
CN105790980B (zh) | 一种故障修复方法及装置 | |
CN104092719B (zh) | 文件传输方法、装置及分布式集群文件系统 | |
CN105468475A (zh) | 数据库的备份方法及备份装置 | |
CN105824846B (zh) | 数据迁移方法及装置 | |
CN105373549A (zh) | 数据迁移方法、设备及数据节点服务器 | |
CN105653345A (zh) | 用于支持对数据的非易失性随机访问的方法和设备 | |
CN102571850A (zh) | 事务提交系统、方法及设备 | |
CN105512171A (zh) | 数据库同步的方法及装置 | |
CN106815094B (zh) | 一种用于实现主备同步模式下事务提交的方法与设备 | |
CN103973727A (zh) | 数据同步方法及装置 | |
CN105323271B (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
CN107122263B (zh) | 在线恢复备份数据的方法及其实现系统和备份设备 | |
CN111880947B (zh) | 一种数据传输方法及装置 | |
CN109117317A (zh) | 一种集群故障恢复方法和相关装置 | |
CN108241616B (zh) | 消息推送方法和装置 | |
CN112948484A (zh) | 分布式数据库系统和数据灾备演练方法 | |
CN104298609A (zh) | 数据拷贝方法和装置 | |
CN103780433B (zh) | 自愈式虚拟资源配置管理数据架构 | |
US9229817B2 (en) | Control method of data storage system for restarting expander | |
CN112134734B (zh) | 一种网络设备的配置方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |