一种硬盘芯片升级方法及系统与流程

文档序号:22757256发布日期:2020-10-31 09:54阅读:112来源:国知局
一种硬盘芯片升级方法及系统与流程

本发明属于计算机技术领域,尤其涉及一种硬盘芯片升级方法及系统。



背景技术:

随着计算机技术的飞速发展,很多技术都有了大幅度的提升,尤其是对后端存储系统分区的成功使用,满足了服务器主机与存储之间的数据传输的安全性和快速性的要求。然而出于适应系统更加复杂性能的要求,普通机械盘已满足不了前端设备更大的吞吐量,于是固态硬盘(solidstatedrives,ssd)盘应运而生,固态硬盘用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(flash芯片、dram芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致,比普通机械硬盘具有更高的读写速率。

然而,很多新型ssd硬盘在速率和安全性提高的同时,也有其不可避免的弊端,在进行硬盘芯片升级时,硬盘或硬盘转接卡会有重启操作才会生效,这样会造成数据的瞬间闪断,造成io中断,这种类型的硬盘在升级芯片时,无法进行在线升级,影响客户使用。



技术实现要素:

针对现有技术中的缺陷,本发明提供了一种硬盘芯片升级方法,旨在解决现有技术中在进行硬盘芯片升级时,硬盘或硬盘转接卡会有重启操作才会生效造成数据的瞬间闪断,造成io中断的问题。

本发明所提供的技术方案是:一种硬盘芯片升级方法,所述方法包括下述步骤:

接收硬盘芯片升级命令,并依据所述硬盘芯片升级命令以及预先配置的硬盘升级顺序,选取待升级硬盘;

当待升级硬盘选取完成时,对所述待升级硬盘执行io静默处理,并将所述待升级硬盘所对应的io写入缓存队列中;

控制生成封装第一tur测试命令,并将生成的所述第一tur测试命令发送给所述待升级硬盘;

接收所述待升级硬盘反馈的后端设备是否ready的命令,当反馈的命令包含ok信息时,控制开始对所述待升级硬盘进行镜像文件的写入;

当所述镜像文件写入完成,循环执行所述接收硬盘芯片升级命令,并依据所述硬盘芯片升级命令以及预先配置的硬盘升级顺序,选取待升级硬盘的步骤之前,在预设的硬盘升级时间间隔阈值范围内,调用线程对选取的且放入所述缓存队列中除磁盘阵列成员硬盘之外的硬盘io进行处理。

硬盘芯片升级方法作为一种改进的方案,所述接收硬盘芯片升级命令,并依据所述硬盘芯片升级命令以及预先配置的硬盘升级顺序,选取待升级的硬盘的步骤之前还包括下述步骤:

预先对硬盘升级顺序进行配置,其中,配置后的硬盘升级顺序依次为磁盘阵列成员硬盘、磁盘阵列冗余硬盘、未使用的硬盘以及未初始化的硬盘。

作为一种改进的方案硬盘芯片升级方法,所述预先对硬盘升级顺序进行配置的步骤之后还包括下述步骤:

预先配置硬盘之间的硬盘升级时间间隔阈值和命令延时时间,其中:

所述硬盘升级时间间隔阈值包括磁盘阵列中同号成员盘之间的第一硬盘升级时间间隔阈值和磁盘阵列中不同号成员盘之间的第一硬盘升级时间间隔阈值;

所述命令延时时间为tur测试命令的发送时间的延时时间。

作为一种改进的方案硬盘芯片升级方法,所述接收所述待升级硬盘反馈的后端设备是否ready的命令,当反馈的命令包含ok信息时,控制开始对所述待升级硬盘进行镜像文件的写入的步骤之后还包括下述步骤:

控制生成封装第二tur测试命令,并控制开始计时;

在开始计时的时间段内,调用线程对选取的且放入所述缓存队列中除磁盘阵列成员硬盘之外的硬盘io进行处理;

判断计时时间是否到达预先设置的命令延时时间;

当计时时间达到预先设置的命令延时时间时,将生成的所述第二tur测试命令发送给已经进行镜像文件写入的升级硬盘;

当接收到所述升级硬盘的反馈消息时,确定所述待升级硬盘的升级动作完成。

本发明的另一目的在于提供一种硬盘芯片升级系统,所述系统包括:

硬盘芯片升级命令接收模块,用于接收硬盘芯片升级命令;

待升级硬盘选取模块,用于依据所述硬盘芯片升级命令以及预先配置的硬盘升级顺序,选取待升级硬盘;

io静默处理模块,用于当待升级硬盘选取完成时,对所述待升级硬盘执行io静默处理;

缓存队列写入模块,用于将所述待升级硬盘所对应的io写入缓存队列中;

第一tur测试命令生成模块,用于控制生成封装第一tur测试命令;

第一tur测试命令发送模块,用于将生成的所述第一tur测试命令发送给所述待升级硬盘;

反馈命令接收模块,用于接收所述待升级硬盘反馈的后端设备是否ready的命令;

镜像文件写入模块,用于当反馈的命令包含ok信息时,控制开始对所述待升级硬盘进行镜像文件的写入;

第一调度执行模块,用于当所述镜像文件写入完成,循环执行所述接收硬盘芯片升级命令,并依据所述硬盘芯片升级命令以及预先配置的硬盘升级顺序,选取待升级硬盘的步骤之前,在预设的硬盘升级时间间隔阈值范围内,调用线程对选取的且放入所述缓存队列中除磁盘阵列成员硬盘之外的硬盘io进行处理。

作为一种改进的方案硬盘芯片升级系统,所述系统还包括:

硬盘升级顺序配置模块,用于预先对硬盘升级顺序进行配置,其中,配置后的硬盘升级顺序依次为磁盘阵列成员硬盘、磁盘阵列冗余硬盘、未使用的硬盘以及未初始化的硬盘。

作为一种改进的方案硬盘芯片升级系统,所述系统还包括:

时间配置模块,用于预先配置硬盘之间的硬盘升级时间间隔阈值和命令延时时间,其中:

所述硬盘升级时间间隔阈值包括磁盘阵列中同号成员盘之间的第一硬盘升级时间间隔阈值和磁盘阵列中不同号成员盘之间的第一硬盘升级时间间隔阈值;

所述命令延时时间为tur测试命令的发送时间的延时时间。

作为一种改进的方案硬盘芯片升级系统,所述系统还包括:

第二tur测试命令生成模块,用于控制生成封装第二tur测试命令;

计时模块,用于控制开始计时;

第二调度执行模块,用于在开始计时的时间段内,调用线程对选取的且放入所述缓存队列中除磁盘阵列成员硬盘之外的硬盘io进行处理;

时间判断模块,用于判断计时时间是否到达预先设置的命令延时时间;

第二tur测试命令发送模块,用于当计时时间达到预先设置的命令延时时间时,将生成的所述第二tur测试命令发送给已经进行镜像文件写入的升级硬盘;

升级动作完成确定模块,用于当接收到所述升级硬盘的反馈消息时,确定所述待升级硬盘的升级动作完成。

在本发明实施例中,接收硬盘芯片升级命令,并依据所述硬盘芯片升级命令以及预先配置的硬盘升级顺序,选取待升级硬盘;当待升级硬盘选取完成时,对所述待升级硬盘执行io静默处理,并将所述待升级硬盘所对应的io写入缓存队列中;控制生成封装第一tur测试命令,并将生成的所述第一tur测试命令发送给所述待升级硬盘;接收所述待升级硬盘反馈的后端设备是否ready的命令,当反馈的命令包含ok信息时,控制开始对所述待升级硬盘进行镜像文件的写入;当所述镜像文件写入完成,在预设的硬盘升级时间间隔阈值范围内,调用线程对选取的且放入所述缓存队列中除磁盘阵列成员硬盘之外的硬盘io进行处理,从而保证磁盘芯片升级时系统io的稳定性和快速性,确保数据的安全性和并且在最大程度上确保传输数据的时效性。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。

图1是本发明提供的硬盘芯片升级方法的实现流程图;

图2是本发明提供的硬盘芯片升级系统的结构框图。

具体实施方式

下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的、技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。

图1是本发明提供的硬盘芯片升级方法的实现流程图,其具体包括下述步骤:

在步骤s101中,接收硬盘芯片升级命令,并依据所述硬盘芯片升级命令以及预先配置的硬盘升级顺序,选取待升级硬盘;

在步骤s102中,当待升级硬盘选取完成时,对所述待升级硬盘执行io静默处理,并将所述待升级硬盘所对应的io写入缓存队列中;

在步骤s103中,控制生成封装第一tur测试命令,并将生成的所述第一tur测试命令发送给所述待升级硬盘;

在步骤s104中,接收所述待升级硬盘反馈的后端设备是否ready的命令,当反馈的命令包含ok信息时,控制开始对所述待升级硬盘进行镜像文件的写入;

在步骤s105中,当所述镜像文件写入完成,循环执行所述接收硬盘芯片升级命令,并依据所述硬盘芯片升级命令以及预先配置的硬盘升级顺序,选取待升级硬盘的步骤之前,在预设的硬盘升级时间间隔阈值范围内,调用线程对选取的且放入所述缓存队列中除磁盘阵列成员硬盘之外的硬盘io进行处理。

在该实施例中,在执行上述步骤s101之前还需要执行下述步骤:

预先对硬盘升级顺序进行配置,其中,配置后的硬盘升级顺序依次为磁盘阵列成员硬盘、磁盘阵列冗余硬盘、未使用的硬盘以及未初始化的硬盘;

其中,首先选择选磁盘阵列成员硬盘,并且选择顺序为raid1中1号成员,raid2的1号成员,raid1的1号成员……,raid1中2号成员,raid2的2号成员,raid3的2号成员……,raid1中3号成员,raid2的3号成员,raid3的3号成员……以此类推;

其次选择磁盘阵列冗余硬盘;

之后选择未使用的硬盘;

最后选择未初始化的硬盘;

其中,后三种硬盘不涉及io处理,升级时可以在成员盘升级时间间隙内进行升级。

在本发明实施例中,预先对硬盘升级顺序进行配置的步骤之后还包括下述步骤:

预先配置硬盘之间的硬盘升级时间间隔阈值和命令延时时间,其中:

所述硬盘升级时间间隔阈值包括磁盘阵列中同号成员盘之间的第一硬盘升级时间间隔阈值和磁盘阵列中不同号成员盘之间的第一硬盘升级时间间隔阈值;

所述命令延时时间为tur测试命令的发送时间的延时时间。

在该实施例中,在进行硬盘芯片升级时,升级raid1中1号成员,raid2的1号成员,raid3的1号成员……等硬盘芯片时,时间间隔可以设定为20-30s之间,升级完raidn的1号成员后升级下一raid的2号成员,升级时间间隔可以设定为200-300s之间,使用这种升级顺序,可以保障主机业务不受存储硬盘升级事件的影响;

并且对于raid的成员盘来说,升级时间间隔20-30s,可以预留时间处理因io静默缓存的io,避免io队列太深;每个raid之间中的磁盘交替升级,可以避免某个raid中的io等待时间过长;

此外,同一raid之间的下一等级号成员升级时间设置为200-300s,主要是避免升级同一raid成员时,时间间隔小导致io静默总时间过长,导致io有阻塞的现象。最后升级非io盘时,按照磁盘升级顺序的分值,分别在上述20-30s或者200-300s的升级间隔时间内进行芯片升级。

在本发明实施例中,接收所述待升级硬盘反馈的后端设备是否ready的命令,当反馈的命令包含ok信息时,控制开始对所述待升级硬盘进行镜像文件的写入的步骤之后还包括下述步骤:

(1)控制生成封装第二tur测试命令,并控制开始计时;

(2)在开始计时的时间段内,调用线程对选取的且放入所述缓存队列中除磁盘阵列成员硬盘之外的硬盘io进行处理;

(3)判断计时时间是否到达预先设置的命令延时时间;

(4)当计时时间达到预先设置的命令延时时间时,将生成的所述第二tur测试命令发送给已经进行镜像文件写入的升级硬盘;

(5)当接收到所述升级硬盘的反馈消息时,确定所述待升级硬盘的升级动作完成。

在该实施例中,当镜像文件写完时,需要发送相应的tur测试命令进行确认升级完成的硬盘是否在线,在发送之前需要等待一定的命令延时时间,以确保硬盘重启完成,在此期间,调度线程处理其他磁盘io,避免资源浪费。

在本发明实施例中,通过存储平台对硬盘芯片进行时,为了保证传输数据的传送速度不受影响,在遇到硬盘升级完成进行重启过程中保证数据不中断,创造出一种新型的硬盘芯片新型方法和技术,目的在于改进升级硬盘芯片时,保证io的稳定性与快速性不受影响,并且保障io不中断,实现硬件芯片的在线升级。实现硬件芯片在线升级的方法,由原来的利用服务器升级模式,改善为在存储平台加入一个磁盘在线升级模块,从而使得升级硬盘芯片时能够控制在线升级磁盘的io能够缓存到队列,磁盘重启不被主机感知。待升级镜像文件写入后,磁盘重启完成后,io能够继续下发,并且通过对磁盘阵列和被升级磁盘的顺序选择,保证io性能不受影响。对通过存储平台进行硬盘的在线升级方式,能够保证磁盘芯片升级时系统io的稳定性和快速性。

图2示出了本发明提供的硬盘芯片升级系统的结构框图,为了便于说明,图中仅给出了与本发明实施例相关的部分。

硬盘芯片升级系统包括:

硬盘芯片升级命令接收模块11,用于接收硬盘芯片升级命令;

待升级硬盘选取模块12,用于依据所述硬盘芯片升级命令以及预先配置的硬盘升级顺序,选取待升级硬盘;

io静默处理模块13,用于当待升级硬盘选取完成时,对所述待升级硬盘执行io静默处理;

缓存队列写入模块14,用于将所述待升级硬盘所对应的io写入缓存队列中;

第一tur测试命令生成模块15,用于控制生成封装第一tur测试命令;

第一tur测试命令发送模块16,用于将生成的所述第一tur测试命令发送给所述待升级硬盘;

反馈命令接收模块17,用于接收所述待升级硬盘反馈的后端设备是否ready的命令;

镜像文件写入模块18,用于当反馈的命令包含ok信息时,控制开始对所述待升级硬盘进行镜像文件的写入;

第一调度执行模块19,用于当所述镜像文件写入完成,循环执行所述接收硬盘芯片升级命令,并依据所述硬盘芯片升级命令以及预先配置的硬盘升级顺序,选取待升级硬盘的步骤之前,在预设的硬盘升级时间间隔阈值范围内,调用线程对选取的且放入所述缓存队列中除磁盘阵列成员硬盘之外的硬盘io进行处理。

结合图2所示,所述系统还包括:

硬盘升级顺序配置模块20,用于预先对硬盘升级顺序进行配置,其中,配置后的硬盘升级顺序依次为磁盘阵列成员硬盘、磁盘阵列冗余硬盘、未使用的硬盘以及未初始化的硬盘;

时间配置模块21,用于预先配置硬盘之间的硬盘升级时间间隔阈值和命令延时时间,其中:

所述硬盘升级时间间隔阈值包括磁盘阵列中同号成员盘之间的第一硬盘升级时间间隔阈值和磁盘阵列中不同号成员盘之间的第一硬盘升级时间间隔阈值;

所述命令延时时间为tur测试命令的发送时间的延时时间。

在本发明实施例中,所述系统还包括:

第二tur测试命令生成模块22,用于控制生成封装第二tur测试命令;

计时模块23,用于控制开始计时;

第二调度执行模块24,用于在开始计时的时间段内,调用线程对选取的且放入所述缓存队列中除磁盘阵列成员硬盘之外的硬盘io进行处理;

时间判断模块25,用于判断计时时间是否到达预先设置的命令延时时间;

第二tur测试命令发送模块26,用于当计时时间达到预先设置的命令延时时间时,将生成的所述第二tur测试命令发送给已经进行镜像文件写入的升级硬盘;

升级动作完成确定模块27,用于当接收到所述升级硬盘的反馈消息时,确定所述待升级硬盘的升级动作完成。

其中,上述各个模块的功能如上述方法实施例所记载,在此不再赘述。

在本发明实施例中,接收硬盘芯片升级命令,并依据所述硬盘芯片升级命令以及预先配置的硬盘升级顺序,选取待升级硬盘;当待升级硬盘选取完成时,对所述待升级硬盘执行io静默处理,并将所述待升级硬盘所对应的io写入缓存队列中;控制生成封装第一tur测试命令,并将生成的所述第一tur测试命令发送给所述待升级硬盘;接收所述待升级硬盘反馈的后端设备是否ready的命令,当反馈的命令包含ok信息时,控制开始对所述待升级硬盘进行镜像文件的写入;当所述镜像文件写入完成,在预设的硬盘升级时间间隔阈值范围内,调用线程对选取的且放入所述缓存队列中除磁盘阵列成员硬盘之外的硬盘io进行处理,从而保证磁盘芯片升级时系统io的稳定性和快速性,确保数据的安全性和并且在最大程度上确保传输数据的时效性。

以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1