CN101655774B - 一种磁盘控制方法及系统以及相关设备 - Google Patents

一种磁盘控制方法及系统以及相关设备 Download PDF

Info

Publication number
CN101655774B
CN101655774B CN200910161926A CN200910161926A CN101655774B CN 101655774 B CN101655774 B CN 101655774B CN 200910161926 A CN200910161926 A CN 200910161926A CN 200910161926 A CN200910161926 A CN 200910161926A CN 101655774 B CN101655774 B CN 101655774B
Authority
CN
China
Prior art keywords
raid group
request
writing
control unit
main frame
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
CN200910161926A
Other languages
English (en)
Other versions
CN101655774A (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.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Huawei Symantec 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 Huawei Symantec Technologies Co Ltd filed Critical Huawei Symantec Technologies Co Ltd
Priority to CN200910161926A priority Critical patent/CN101655774B/zh
Publication of CN101655774A publication Critical patent/CN101655774A/zh
Application granted granted Critical
Publication of CN101655774B publication Critical patent/CN101655774B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明实施例公开了一种磁盘控制方法及系统以及相关设备,能够在节约能源的同时提高数据写入的可靠性。本发明实施例方法包括:接收主机发送的写请求;当所述写请求对应的磁盘阵列RAID组处于休眠状态时,将所述写请求存储于保险箱盘,并唤醒所述RAID组;当所述RAID组被唤醒之后,将所述存储于保险箱盘的写请求发送至所述RAID组,使得所述RAID组执行与所述写请求相应的写操作。本发明实施例还提供一种磁盘控制系统以及相关设备。本发明实施例可以有效的提高数据写入的可靠性。

Description

一种磁盘控制方法及系统以及相关设备
技术领域
本发明涉及数据存储领域,尤其涉及一种磁盘控制方法及系统以及相关设备。
背景技术
随着信息产业的高速发展,其能源消耗也飞速增长。其中,数据中心的能源消耗又占整个信息产业能源消耗的大约40%,其中,存储相关设备的能源消耗又占数据中心能源消耗的大约37%,因此降低存储相关设备的能源消耗成为降低信息产业能源消耗的重点。
在存储阵列的一般应用中,阵列由阵列控制器和磁盘组成。阵列中的多个磁盘会组成磁盘阵列(RAID,Redundant Array of Inexpensive Disk)组,以提高性能和可靠性。
现有技术中的一种磁盘节能的方法为:
根据特定的应用需求(如归档等应用场景的特性,只需要在一天的某个时段将RAID组打开,其余时段可以关闭)直接在RAID组中设置软件实现定时开关,使得RAID组不会一直处于工作状态,从而节约能源。
现有技术中另一种磁盘节能的方法为:
在RAID组中设置一个静默时间门限,当在该静默时间门限内,若主机对RAID组均无操作,则RAID组自动进行相应的低功耗待机状态,使得RAID组不会一直处于工作状态,从而节约能源。
但是,上述两个现有技术中,当RAID组进行待机状态,或关闭后,如果主机需要对该RAID组进行写操作,则RAID组中的磁盘需要恢复到正常状态可能需要1到3分钟的时间,在恢复的过程中,由于主机的写操作无法得到RAID组的响应,所以主机会频繁的重发写操作,当重发次数超过某个门限时,则会导致写操作失败,从而影响正常的数据访问过程。
发明内容
本发明实施例提供了一种磁盘控制方法及系统以及相关设备,能够在节约能源的同时提高数据写入的可靠性。
本发明实施例提供的磁盘控制方法,包括:接收主机发送的写请求;当所述写请求对应的磁盘阵列RAID组处于休眠状态时,将所述写请求存储于保险箱盘,并唤醒所述RAID组;当所述RAID组被唤醒之后,将所述存储于保险箱盘的写请求发送至所述RAID组,使得所述RAID组执行与所述写请求相应的写操作。
本发明实施例提供的磁盘控制方法,包括:接收用户发送的读请求;当所述读请求对应的磁盘阵列RAID组处于休眠状态时,则通过磁盘控制装置唤醒所述RAID组;当所述RAID组被唤醒之后,向所述RAID组发送所述读请求,使得所述RAID组执行所述读请求相应的读操作。
本发明实施例提供的磁盘控制装置,包括:第一接收单元,用于接收主机发送的写请求;存储控制单元,用于当所述写请求对应的磁盘阵列RAID组处于休眠状态时,将所述写请求存储于保险箱盘;第一唤醒单元,用于唤醒所述RAID组;第一发送单元,用于当所述RAID组被唤醒之后,将所述存储于保险箱盘的写请求发送至所述RAID组,使得所述RAID组执行所述写请求相应的写操作。
本发明实施例提供的磁盘控制系统,包括磁盘控制装置;所述磁盘控制系统还包括:主机,用于向所述磁盘控制装置发送写请求;保险箱盘,用于存储所述写请求;磁盘控制装置,用于接收主机发送的写请求,当所述写请求对应的磁盘阵列RAID组处于休眠状态时,将所述写请求存储于保险箱盘,并唤醒所述RAID组,当所述RAID组被唤醒之后,将所述存储于保险箱盘的写请求发送至所述RAID组;RAID组,用于执行所述写请求相应的写操作。
本发明实施例提供的主机,包括:第二接收单元,用于接收用户发送的读请求;第二唤醒单元,用于当所述读请求对应的磁盘阵列RAID组处于休眠状态时,通过磁盘控制装置唤醒所述RAID组;第二发送单元,用于当所述RAID组被唤醒之后,向所述RAID组发送读请求,使得所述RAID组执行所述读请求相应的读操作。
本发明实施例提供的磁盘控制系统,包括主机;所述磁盘控制系统还包括:磁盘控制装置,用于根据所述主机的指示唤醒所述RAID组;RAID组,用于执行所述读请求相应的读操作。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,当磁盘控制装置接收到主机发送的写请求时,若该写请求对应的RAID组处于休眠状态,则会先将写请求存储于保险箱盘,并唤醒RAID组,所以当主机发送的写请求被存储于保险箱盘之后,主机即可获知该写请求已被接受,所以主机不会重复发送写请求,因此不会由于重发次数超过门限而导致写操作失败,从而能够在节约能源的同时提高数据写入的可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中磁盘控制方法一个实施例示意图;
图2为本发明实施例中磁盘控制方法另一实施例示意图;
图3为本发明实施例中磁盘控制方法再一实施例示意图;
图4为本发明实施例中磁盘控制装置一个实施例示意图;
图5为本发明实施例中磁盘控制装置另一实施例示意图;
图6为本发明实施例中主机实施例示意图;
图7为本发明实施例中磁盘控制系统一个实施例示意图;
图8为本发明实施例中磁盘控制系统另一实施例示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种磁盘控制方法及系统以及相关设备,用于在节约能源的同时提高数据写入的可靠性。
请参阅图1,本发明实施例中磁盘控制方法一个实施例包括:
101、接收主机发送的写请求;
本实施例中,当主机请求对某RAID组进行写入时,该主机会向磁盘控制装置发送写请求。
102、判断对应的RAID组是否处于休眠状态,若是,则执行步骤104,若否,则执行步骤103;
当磁盘控制装置接收到主机发送的写请求之后,即可首先确定与该写请求对应的RAID组,之后再判断该RAID组是否处于休眠状态,若是,则执行步骤104,若否,则执行步骤103。
103、将写请求发送至RAID组执行写操作;
若磁盘控制装置确定RAID组未处于休眠状态,即该RAID组当前处于正常状态(即唤醒状态),则可以直接将主机发送的写请求通过刷盘的方式发送至RAID组,并由该RAID组执行该写请求相应的写操作,具体的过程为本领域技术人员的公知常识,此处不作限定。
104、将写请求存储于保险箱盘,并唤醒RAID组;
若磁盘控制装置确定RAID组处于休眠状态,则将从主机接收到的写请求先缓存于保险箱盘中,同时向主机反馈相关信息以使主机获知当前的写请求已经被接受,此外,磁盘控制装置唤醒步骤102中确定的RAID组。
本实施例中的保险箱盘是指在RAID组机柜中用于存储启动信息或其他引导信息的磁盘,一般来说,一个机柜内若设置有12个磁盘,则其中的前4个磁盘为保险箱盘。
本实施例中,磁盘控制装置唤醒RAID组的过程为本领域技术人员的公知常识,此处不作限定。
105、将保险箱盘中的写请求发送至RAID组执行写操作。
当RAID组被唤醒之后,磁盘控制装置会将存储于保险箱盘中的写请求通过刷盘的方式发送至RAID组,使得RAID组可以根据该写请求执行该写请求相应的写操作。
本实施例中,当磁盘控制装置接收到主机发送的写请求时,若该写请求对应的RAID组处于休眠状态,则会先将写请求存储于保险箱盘,并唤醒RAID组,所以当主机发送的写请求被存储于保险箱盘之后,主机即可获知该写请求已被接受,所以主机不会重复发送写请求,因此不会由于重发次数超过门限而导致写操作失败,从而能够在节约能源的同时提高数据写入的可靠性。
为便于理解,下面以一具体实例对本发明实施例中的磁盘控制方法进行详细描述,请参阅图2,本发明实施例中的磁盘控制方法另一实施例包括:
201、接收主机发送的写请求;
本实施例中,为提高各磁盘间的冗余操作,可以将RAID组中每个成员磁盘的不同区块组成一个条带(LUN,Logic Unit Number),则用户与主机都只针对LUN进行写入操作,当主机请求对某LUN进行写入时,该主机会向磁盘控制装置发送写请求,该写请求中包含有该LUN的标识。
202、在预置的对应关系中确定LUN的标识对应的RAID组;
磁盘控制装置在将RAID组中每个成员磁盘的不同区块组成一个LUN时会保存不同的LUN与RAID组之间的对应关系,即组成该LUN的成员磁盘是属于哪一个RAID组的,从而当磁盘控制装置接收到主机发送的包含LUN的标识的写请求时,可以在该对应关系中查询到对应的RAID组。
203、判断对应的RAID组是否处于休眠状态,若是,则执行步骤205,若否,则执行步骤204;
本实施例中,磁盘控制装置可以通过调用底层的接口来确定该RAID组是否处于休眠状态,具体的确定过程为本领域技术人员的公知常识,需要说明的是,在实际应用中,同样还可以采用其他的方式判断RAID组是否处于休眠状态,具体方式此处不作限定。
204、将写请求发送至RAID组执行写操作;
若磁盘控制装置确定RAID组未处于休眠状态,即该RAID组当前处于正常状态(即唤醒状态),则可以直接将主机发送的写请求通过刷盘的方式发送至RAID组,并由该RAID组执行该写请求相应的写操作,具体的过程为本领域技术人员的公知常识,此处不作限定。
205、将写请求存储于保险箱盘,并唤醒RAID组;
若磁盘控制装置确定RAID组处于休眠状态,则将从主机接收到的写请求先缓存于保险箱盘中,同时向主机反馈相关信息以使主机获知当前的写请求已经被接受,此外,磁盘控制装置唤醒RAID组。
本实施例中保险箱盘的含义与图1所示的实施例中描述的保险箱盘的含义相同,此处不再赘述。
本实施例中,磁盘控制装置可以向LUN下发带内的唤醒命令,LUN接收到该唤醒命令之后,通过调度命令唤醒对应的RAID组中所有的成员磁盘,具体的唤醒的过程可以是:LUN首先确定对应的RAID组,之后解析其成员磁盘,再调用上电命令(具体可以为上电函数),使得RAID组中的所有成员磁盘正常通电,最后将该RAID组的标志设置为唤醒状态,从而使得RAID组从休眠状态恢复至正常状态(即唤醒状态),在实际应用中,同样还可以采用其他的方式唤醒RAID组中的所有成员磁盘,具体方式此处不作限定。
206、将保险箱盘中的写请求发送至RAID组执行写操作;
当RAID组被唤醒之后,磁盘控制装置会将存储于保险箱盘中的写请求通过刷盘的方式发送至RAID组,使得RAID组可以根据该写请求执行该写请求相应的写操作。
207、满足预置的休眠条件时,对RAID组进行休眠。
本实施例中,当RAID组完成了该写请求相应的写操作之后,为节约能源,磁盘控制装置可以检测当前的条件是否达到预置的休眠条件,若到达,则对RAID组中所有的成员磁盘进行休眠。
本实施例中的预置的休眠条件可以为:在用户预置的静默时间内未接收到主机对该RAID组的写请求,且该RAID组未被设置为禁止休眠,或者该预置的休眠条件还可以为其他的一些条件,例如到达能源消耗的高峰期(例如每天的下午8点至10点)等。
需要说明的是,本实施例中,为提高磁盘的使用寿命,防止频繁的休眠和唤醒,磁盘控制装置可以将某RAID组设置为禁止休眠,具体的:磁盘控制装置可以分析该RAID组近期的写操作频率,若确定写操作频率高于某一门限数值,例如在一小时内的写操作次数超过了10次,则磁盘控制装置可以将该RAID组设置为禁止休眠或在某一段时间之内禁止休眠,本实施例中的门限数值可以根据实际情况进行确定,此处不作限定。
除了上面描述的磁盘控制装置对RAID组进行设置的方式之外,在实际应用中,还可以由用户直接通过主机对RAID组进行设置,例如设置RAID组禁止休眠,或允许休眠等。
上述描述的是用户或磁盘控制装置对RAID组进行设置的情况,在实际应用中,用户或磁盘控制装置还可以对LUN进行设置,同样可以设置为禁止休眠或允许休眠等,但需要说明的是,LUN还可以被设置为释放权限,则此时LUN的状态(休眠状态或唤醒状态)以该LUN对应的RAID组的状态为准。
本实施例中,由于环境的复杂性,可能会导致RAID组在休眠或唤醒的过程中出现一些异常情况,此时,磁盘控制装置则需对这些异常情况进行处理,下面以几种异常情况为例进行说明:
(1)休眠某成员磁盘失败:
由于RAID组的状态需要与该RAID组内所有的成员磁盘的状态保持一致,只有当所有的成员磁盘均处于休眠状态之后,该RAID组才能被设置为休眠状态,因此当磁盘控制装置对某RAID组进行休眠时,若其中的一个或几个成员磁盘休眠失败,则磁盘控制装置可以唤醒该RAID组内的其他成员磁盘,之后重新进行休眠。
(2)唤醒成员磁盘失败:
当某RAID组需要进行写操作时,磁盘控制装置会唤醒该RAID组内的所有成员磁盘,若其中的一个或几个成员磁盘无法被唤醒,则为了保证写操作的正常运行,会将这些无法被唤醒的成员磁盘强制设置为唤醒状态,从而使得该RAID组的状态为唤醒状态,之后还可以对RAID组进行重构,以进行正常的写操作。
(3)休眠时成员磁盘掉电:
当某RAID组正处于休眠状态时,若该RAID组中某一个或几个成员磁盘掉电,则磁盘控制装置会唤醒该RAID组中其他的成员磁盘,需要说明的是,如果掉电的磁盘由重新上电,则可重新恢复休眠状态。
本实施例中,上述各种异常情况都可以通过底层接口被检测到,并且上报给磁盘控制装置。
上述描述的是异常情况中的几个例子,可以理解的是,在实际应用中可能还存在更多的异常情况,具体的处理方式此处不作限定。
下面以一具体应用场景对本发明实施例中的磁盘控制方法进行详细描述:
假设存在2个RAID组,分别为RAID1组以及RAID2组,RAID1组中每个成员磁盘的某块区域组成LUN1,RAID2组中每个成员磁盘的某块区域组成LUN2,即磁盘控制装置中保存的对应关系为“RAID1组对应LUN1,RAID2组对应LUN2”。
主机在操作过程中请求对LUN2进行写入操作,则主机会向磁盘控制装置发送写请求,该写请求中携带有标识“LUN2”以表示请求进行写入的LUN。
磁盘控制装置在接收到主机发送的写请求之后,解析该写请求,获取到其中包含的标识“LUN2”,即可获知主机请求对LUN2进行写入,则磁盘控制装置在上述的对应关系中确定LUN2对应的RAID组为RAID2组。
磁盘控制装置在确定RAID2组之后,通过调用底层接口确定RAID2组是否处于休眠状态,若未处于休眠状态,则磁盘控制装置直接将写请求通过刷盘的方式转发至RAID2组,并且由该RAID2组进行该写请求相应的写操作。
若磁盘控制装置确定RAID2组处于休眠状态,则磁盘控制装置将该写请求存储于保险箱盘中,同时向主机反馈相关信息,用于告知主机写请求已被接受,同时磁盘控制装置向LUN2发送带内的唤醒命令,LUN2在接收到该唤醒命令之后,通过调度命令唤醒RAID2组中的所有的成员磁盘。
当RAID2组中的所有的成员磁盘均被唤醒之后,则底层的接口检测到RAID2组的状态为正常状态(唤醒状态),从而向磁盘控制装置上报该状态,磁盘控制状态根据底层接口的上报可知RAID2组已经被唤醒,则会将保险箱盘中存储的写请求通过刷盘的方式发送至该RAID2组,使得该RAID2组可以进行该写请求相应的写操作。
当RAID2组完成了该写请求相应的写操作之后,会向磁盘控制装置反馈信息,磁盘控制装置再判断是否满足预置的休眠条件,若满足,则对RAID2组进行休眠,具体的休眠条件与前述图2所示的实施例中描述的休眠条件一致,此处不再赘述。
本实施例中,当磁盘控制装置接收到主机发送的写请求时,若该写请求对应的RAID组处于休眠状态,则会先将写请求存储于保险箱盘,并唤醒RAID组,所以当主机发送的写请求被存储于保险箱盘之后,主机即可获知该写请求已被接受,所以主机不会重复发送写请求,因此不会由于重发次数超过门限而导致写操作失败,从而能够提高数据写入的可靠性;
其次,本实施例中,RAID组完成了该写请求相应的写操作之后,当满足预置的休眠条件时,磁盘控制装置会对RAID组进行休眠,从而可以有效的节约能源;
再次,本实施例中提供了出现异常情况时的处理机制,因此能够更进一步提高数据写入的可靠性。
需要说明的是,上面描述了磁盘控制装置通过保险箱盘来缓存写请求的磁盘控制方法,上述的实施例中是以写请求为例进行说明的,而在实际应用中,若主机发送的是读请求,也可以按照上述的方式进行处理,同时,针对读请求,本实施例中还可以采用其他的方式进行处理,下面描述另外一种磁盘控制方法,该方法主要针对的是用户发送的读请求,请参阅图3,本发明实施例中的磁盘控制方法再一实施例包括:
301、主机接收用户发送的读请求;
本实施例中,当用户请求进行读取操作时,会生成读请求,并期望通过主机将该读请求发送至对应的RAID组,则主机会接收到用户发送的读请求。
302、判断对应的RAID组是否处于休眠状态,若是,则执行步骤304,若否,则执行步骤303;
本实施例中,主机接收到用户发送的读请求之后,会从该读请求中读取出LUN的标识,并且通过带内消息向磁盘控制装置发送该LUN的标识,磁盘控制装置可以根据该LUN的标识确定对应的RAID组,并且通过调用底层的接口来确定该RAID组是否处于休眠状态,并将确定的结果通过带内消息反馈至该主机,从而主机可以获知该读请求对应的RAID组是否处于休眠状态。
303、将读请求发送至RAID组执行读操作;
当主机确定读请求对应的RAID组未处于休眠状态,而处于正常状态(即唤醒状态),则会将该读请求通过磁盘控制装置发送至RAID组以使得该RAID组执行该读请求相应的读操作。
304、通过磁盘控制装置唤醒RAID组;
当主机确定读请求对应的RAID组处于休眠状态时,则会向磁盘控制装置发送唤醒命令,则磁盘控制装置会唤醒相应的RAID组,具体的唤醒过程与前述图2所示的实施例中描述的唤醒过程类似,此处不再赘述。
305、向RAID组发送读请求以使得RAID组执行相应的读操作。
当磁盘控制装置唤醒了RAID组之后,会向主机反馈响应,此时主机确定RAID组已经被唤醒,则可以通过磁盘控制装置向该RAID组发送读请求,以使得该RAID组执行该读请求相应的读操作。
本实施例中,主机在发送读请求之前,预先请求磁盘控制装置唤醒对应的RAID组,主机在确定对应的RAID组已经被唤醒之后才会通过磁盘控制装置向RAID组发送读请求,因此可以保证读请求能够被唤醒状态的RAID组接收并执行,所以主机不会重复发送读请求,因此不会由于重发次数超过门限而导致读操作失败,从而能够提高数据读取的可靠性;
其次,本实施例中,由于磁盘控制装置不需要对读请求进行缓存,因此能够节省保险箱盘的存储空间。
下面介绍本发明实施例中的磁盘控制装置实施例,请参阅图4,本发明实施例中的磁盘控制装置一个实施例包括:
第一接收单元401,用于接收主机发送的写请求;
存储控制单元402,用于当写请求对应的磁盘阵列RAID组处于休眠状态时,将写请求存储于保险箱盘;
第一唤醒单元403,用于唤醒RAID组;
第一发送单元404,用于当RAID组被唤醒之后,将存储于保险箱盘的写请求发送至RAID组,使得RAID组执行该写请求相应的写操作。
本实施例中,当第一接收单元401接收到主机发送的写请求时,若该写请求对应的RAID组处于休眠状态,则存储控制单元402会先将写请求存储于保险箱盘,并由第一唤醒单元403唤醒RAID组,所以当主机发送的写请求被存储于保险箱盘之后,主机即可获知该写请求已被接受,所以主机不会重复发送写请求,因此不会由于重发次数超过门限而导致写操作失败,从而能够提高数据写入的可靠性。
为便于理解,下面对上述的磁盘控制装置进行详细描述,请参阅图5,本发明实施例中磁盘控制装置另一实施例包括:
第一接收单元501,用于接收主机发送的写请求,该写请求中携带有请求进行写操作的条带的标识;
确定单元502,用于在预置的对应关系中确定该条带的标识对应的RAID组;
本实施例中具体的对应关系与前述方法实施例中描述的对应关系相同,此处不再赘述。
存储控制单元503,用于当确定单元502确定的RAID组处于休眠状态时,将写请求存储于保险箱盘;
第一唤醒单元504,用于唤醒确定单元502确定的RAID组;
本实施例中,第一唤醒单元504唤醒RAID组的过程与前述方法实施例中唤醒RAID组的过程相同,此处不再赘述。
第一发送单元505,用于当RAID组被唤醒之后,将存储于保险箱盘的写请求发送至RAID组,使得RAID组执行该写请求相应的写操作。
本实施例中的磁盘控制装置还可以进一步包括:
休眠控制单元506,用于当满足预置的休眠条件时,对RAID组中的所有成员磁盘进行休眠。
本实施例中的预置的休眠条件与前述方法实施例中描述的休眠条件相同,此处不再赘述。
本实施例中的磁盘控制装置还可以进一步包括:
异常处理单元507,用于当对RAID组中的所有成员磁盘中的任一成员磁盘休眠失败,则唤醒RAID组中的所有成员磁盘;当唤醒RAID组时对RAID组中任一成员磁盘唤醒失败时,强制设置唤醒失败的成员磁盘为唤醒状态;当处于休眠状态的RAID组中任一成员磁盘掉电时,则唤醒RAID组中的所有成员磁盘。
本实施例中,当第一接收单元501接收到主机发送的写请求时,若该写请求对应的RAID组处于休眠状态,则存储控制单元503会先将写请求存储于保险箱盘,并由第一唤醒单元504唤醒RAID组,所以当主机发送的写请求被存储于保险箱盘之后,主机即可获知该写请求已被接受,所以主机不会重复发送写请求,因此不会由于重发次数超过门限而导致写操作失败,从而能够提高数据写入的可靠性;
其次,本实施例中,RAID组完成了该写请求相应的写操作之后,当满足预置的休眠条件时,休眠控制单元506可以对RAID组进行休眠,从而可以有效的节约能源;
再次,本实施例中异常处理单元507可以在出现异常情况的时候进行相应的处理,因此能够更进一步提高数据写入的可靠性。
下面介绍本发明实施例中的主机实施例,请参阅图6,本发明实施例中的主机实施例包括:
第二接收单元601,用于接收用户发送的读请求;
本实施例中,当用户请求进行读取操作时,会生成读请求,并期望通过主机将该读请求发送至对应的RAID组,则主机中的第二接收单元601会接收到用户发送的读请求。
第二唤醒单元602,用于当读请求对应的磁盘阵列RAID组处于休眠状态时,通过磁盘控制装置唤醒RAID组;
第二接收单元601接收到用户发送的读请求之后,会从该读请求中读取出LUN的标识,并且通过带内消息向磁盘控制装置发送该LUN的标识,磁盘控制装置可以根据该LUN的标识确定对应的RAID组,并且通过调用底层的接口来确定该RAID组是否处于休眠状态,并将确定的结果通过带内消息反馈至该主机,从而主机可以获知该读请求对应的RAID组是否处于休眠状态,当该RAID组处于休眠状态时,第二唤醒单元602可以通过磁盘控制装置唤醒RAID组,具体的唤醒过程与前述方法实施例中唤醒RAID组的过程相同,此处不再赘述。
第二发送单元603,用于当RAID组被唤醒之后,向RAID组发送读请求,使得RAID组执行该读请求相应的读操作。
本实施例中,主机在发送读请求之前,第二唤醒单元602预先请求磁盘控制装置唤醒对应的RAID组,第二发送单元603在确定对应的RAID组已经被唤醒之后才会通过磁盘控制装置向RAID组发送读请求,因此可以保证读请求能够被唤醒状态的RAID组接收并执行,所以主机不会重复发送读请求,因此不会由于重发次数超过门限而导致读操作失败,从而能够提高数据读取的可靠性;
其次,本实施例中,由于磁盘控制装置不需要对读请求进行缓存,因此能够节省保险箱盘的存储空间。
下面介绍本发明实施例中的磁盘控制系统实施例,请参阅图7,本发明实施例中的磁盘控制系统一个实施例包括:
主机701,用于向磁盘控制装置发送写请求;
磁盘控制装置702,用于接收主机发送的写请求,当写请求对应的磁盘阵列RAID组处于休眠状态时,将写请求存储于保险箱盘704,并唤醒RAID组,当RAID组被唤醒之后,将存储于保险箱盘704的写请求发送至RAID组;
保险箱盘704,用于存储写请求;
RAID组703,用于执行该写请求相应的写操作。
本实施例中的磁盘控制装置702在实际应用中具体可以为前述图4或图5所示的磁盘控制装置,具体磁盘控制装置702的细分单元以及详细功能也可以与前述图4或图5所示的磁盘控制装置一致。
为便于理解,下面以一具体应用场景对上述磁盘控制系统中各装置之间的交互进行说明:
本实施例中,当主机701请求对某RAID组703进行写入时,该主机701会向磁盘控制装置702发送写请求。
当磁盘控制装置702接收到主机701发送的写请求之后,即可首先确定与该写请求对应的RAID组703,之后再判断该RAID组703是否处于休眠状态。
若磁盘控制装置702确定RAID组703未处于休眠状态,即该RAID组703当前处于正常状态(即唤醒状态),则可以直接将主机701发送的写请求通过刷盘的方式发送至RAID组703,并由该RAID组703执行该写请求相应的写操作。
若磁盘控制装置702确定RAID组703处于休眠状态,则将从主机701接收到的写请求先缓存于保险箱盘704中,同时向主机701反馈相关信息以使主机701获知当前的写请求已经被接受,此外,磁盘控制装置702唤醒RAID组703。
本实施例中的保险箱盘704与前述方法实施例中描述的保险箱盘的含义相同,此处不再赘述。
本实施例中,磁盘控制装置702唤醒RAID组703的过程与前述方法实施例中描述的唤醒过程相同,此处不再赘述。
当RAID组703被唤醒之后,磁盘控制装置702会将存储于保险箱盘704中的写请求通过刷盘的方式发送至RAID组703,使得RAID组703可以根据该写请求执行该写请求相应的写操作。
本实施例中,当磁盘控制装置702接收到主机701发送的写请求时,若该写请求对应的RAID组703处于休眠状态,则会先将写请求存储于保险箱盘704,并唤醒RAID组703,所以当主机701发送的写请求被存储于保险箱盘704之后,主机701即可获知该写请求已被接受,所以主机701不会重复发送写请求,因此不会由于重发次数超过门限而导致写操作失败,从而能够提高数据写入的可靠性。
下面介绍本发明实施例中磁盘控制系统另一实施例,同样请参阅图8,本发明实施例中磁盘控制系统另一实施例包括:
主机801,用于接收用户发送的读请求,当读请求对应的RAID组803处于休眠状态时,通过磁盘控制装置802唤醒RAID组,当RAID组803被唤醒之后,向RAID组803发送读请求;
磁盘控制装置802,用于根据主机的指示唤醒RAID组;
RAID组803,用于执行该读请求相应的读操作。
为便于理解,下面以一具体应用场景对上述磁盘控制系统中各装置之间的交互进行说明:
本实施例中,当用户请求进行读取操作时,会生成读请求,并期望通过主机801将该读请求发送至对应的RAID组803,则主机801会接收到用户发送的读请求。
主机801接收到用户发送的读请求之后,会从该读请求中读取出LUN的标识,并且通过带内消息向磁盘控制装置802发送该LUN的标识,磁盘控制装置802可以根据该LUN的标识确定对应的RAID组803,并且通过调用底层的接口来确定该RAID组803是否处于休眠状态,并将确定的结果通过带内消息反馈至该主机801,从而主机801可以获知该读请求对应的RAID组是否处于休眠状态。
当主机801确定读请求对应的RAID组803未处于休眠状态,而处于正常状态(即唤醒状态),则会将该读请求通过磁盘控制装置802发送至RAID组803以使得该RAID组803执行该读请求相应的读操作。
当主机801确定读请求对应的RAID组803处于休眠状态时,则会向磁盘控制装置802发送唤醒命令,则磁盘控制装置802会唤醒相应的RAID组803,具体的唤醒过程与前述方法实施例中描述的唤醒过程类似,此处不再赘述。
当磁盘控制装置802唤醒了RAID组803之后,会向主机801反馈响应,此时主机801确定RAID组已经被唤醒,则可以通过磁盘控制装置802向该RAID组803发送读请求,以使得该RAID组803执行该读请求相应的读操作。
本实施例中,主机801在发送读请求之前,预先请求磁盘控制装置802唤醒对应的RAID组803,主机801在确定对应的RAID组803已经被唤醒之后才会通过磁盘控制装置802向RAID组发送读请求,因此可以保证读请求能够被唤醒状态的RAID组803接收并执行,所以主机801不会重复发送读请求,因此不会由于重发次数超过门限而导致读操作失败,从而能够提高数据读取的可靠性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种磁盘控制方法及系统以及相关设备进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种磁盘控制方法,其特征在于,包括:
接收主机发送的写请求;
若所述写请求对应的磁盘阵列RAID组处于休眠状态,则将所述写请求存储于保险箱盘,并唤醒所述RAID组,所述保险箱盘是指在RAID组机柜中用于存储启动信息或其他引导信息的磁盘;
当所述RAID组被唤醒之后,将所述存储于保险箱盘的写请求发送至所述RAID组,使得所述RAID组执行与所述写请求相应的写操作;
若所述RAID组未处于休眠状态,则直接将主机发送的写请求通过刷盘的方式发送至RAID组,并由该RAID组执行该写请求相应的写操作。
2.根据权利要求1所述的方法,其特征在于,
所述主机发送的写请求中携带有请求进行写操作的条带的标识;
所述方法还包括:
在预置的对应关系中确定所述条带的标识对应的RAID组。
3.根据权利要求1或2中任一项所述的方法,其特征在于,所述RAID组执行完所述写请求相应的写操作之后还包括:
当在预置的静默时间内未接收到所述主机对所述RAID组的写请求,且所述RAID组未被设置为禁止休眠时,对所述RAID组中的成员磁盘进行休眠。
4.根据权利要求3所述的方法,其特征在于,
当对所述RAID组中的成员磁盘中的任一成员磁盘休眠失败,则唤醒所述RAID组中的其他成员磁盘;
或,
当唤醒所述RAID组时对所述RAID组中任一成员磁盘唤醒失败时,设置所述唤醒失败的成员磁盘为唤醒状态;
或,
当处于休眠状态的RAID组中任一成员磁盘掉电时,则唤醒所述RAID组中的其他成员磁盘。
5.一种磁盘控制装置,其特征在于,包括:
第一接收单元,用于接收主机发送的写请求;
存储控制单元,用于当所述写请求对应的磁盘阵列RAID组处于休眠状态时,将所述写请求存储于保险箱盘;
第一唤醒单元,用于唤醒所述RAID组;
第一发送单元,用于当所述RAID组被唤醒之后,将所述存储于保险箱盘的写请求发送至所述RAID组,使得所述RAID组执行所述写请求相应的写操作;
所述磁盘控制装置还用于当所述写请求对应的RAID组未处于休眠状态时,直接将主机发送的写请求通过刷盘的方式发送至RAID组,并由该RAID组执行该写请求相应的写操作。
6.根据权利要求5所述的磁盘控制装置,其特征在于,所述主机发送的写请求中携带有请求进行写操作的条带的标识;
所述磁盘控制装置还包括:
确定单元,用于在预置的对应关系中确定所述条带的标识对应的RAID组。
7.根据权利要求5所述的磁盘控制装置,其特征在于,所述磁盘控制装置还包括:
休眠控制单元,用于当在预置的静默时间内未接收到所述主机对所述RAID组的写请求,且所述RAID组未被设置为禁止休眠时,对所述RAID组中的成员磁盘进行休眠。
8.根据权利要求5至7中任一项所述的磁盘控制装置,其特征在于,所述磁盘控制装置还包括:
异常处理单元,用于当对所述RAID组中的成员磁盘中的任一成员磁盘休眠失败,则唤醒所述RAID组中的其他成员磁盘;当唤醒所述RAID组时对所述RAID组中任一成员磁盘唤醒失败时,设置所述唤醒失败的成员磁盘为唤醒状态;当处于休眠状态的RAID组中任一成员磁盘掉电时,则唤醒所述RAID组中的其他成员磁盘。
CN200910161926A 2009-09-01 2009-09-01 一种磁盘控制方法及系统以及相关设备 Active CN101655774B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910161926A CN101655774B (zh) 2009-09-01 2009-09-01 一种磁盘控制方法及系统以及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910161926A CN101655774B (zh) 2009-09-01 2009-09-01 一种磁盘控制方法及系统以及相关设备

Publications (2)

Publication Number Publication Date
CN101655774A CN101655774A (zh) 2010-02-24
CN101655774B true CN101655774B (zh) 2012-08-29

Family

ID=41710074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910161926A Active CN101655774B (zh) 2009-09-01 2009-09-01 一种磁盘控制方法及系统以及相关设备

Country Status (1)

Country Link
CN (1) CN101655774B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103576835B (zh) * 2013-10-30 2016-06-29 华为技术有限公司 一种休眠磁盘的数据操作方法和装置
CN105260146A (zh) * 2015-11-24 2016-01-20 浪潮(北京)电子信息产业有限公司 一种磁盘节能的设置方法及装置
CN110362273A (zh) * 2019-06-05 2019-10-22 黄疆 基于硬件智能降速的降噪方法和系统
CN110554841A (zh) * 2019-08-23 2019-12-10 中国科学院电子学研究所 子阵列工况可控的磁盘阵列及其控制方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1704910A (zh) * 2004-06-03 2005-12-07 华为技术有限公司 一种磁盘阵列结构中的写处理方法
CN101087210A (zh) * 2007-05-22 2007-12-12 网御神州科技(北京)有限公司 高性能的Syslog日志处理和存储方法
CN101246389A (zh) * 2006-09-29 2008-08-20 英特尔公司 提供从休眠状态瞬时接通恢复的计算系统节电方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1704910A (zh) * 2004-06-03 2005-12-07 华为技术有限公司 一种磁盘阵列结构中的写处理方法
CN101246389A (zh) * 2006-09-29 2008-08-20 英特尔公司 提供从休眠状态瞬时接通恢复的计算系统节电方法和装置
CN101087210A (zh) * 2007-05-22 2007-12-12 网御神州科技(北京)有限公司 高性能的Syslog日志处理和存储方法

Also Published As

Publication number Publication date
CN101655774A (zh) 2010-02-24

Similar Documents

Publication Publication Date Title
CN103576835B (zh) 一种休眠磁盘的数据操作方法和装置
CN101630232B (zh) 双存储控制器的管理方法和装置
CN101655774B (zh) 一种磁盘控制方法及系统以及相关设备
KR101410596B1 (ko) 정보 처리 장치, 카피 제어 프로그램 및 카피 제어 방법
US20090217067A1 (en) Systems and Methods for Reducing Power Consumption in a Redundant Storage Array
JP5214989B2 (ja) Sataインターフェースでのパワーセービング・モード制御方法
KR20060043873A (ko) 드라이브 복구 시스템 및 방법
GB2382215A (en) Critical event log for a disc drive
CN102591593A (zh) 一种混合存储模式的切换方法、装置及系统
CN101667140B (zh) 控制操作系统切换的方法、装置及系统
CN105574141B (zh) 一种对数据库进行数据迁移的方法和装置
US20110320712A1 (en) Method and apparatus for controlling state of storage device and storage device
JP2002297320A (ja) ディスクアレイ装置
CN114327651B (zh) 芯片唤醒方法、系统、电子设备及可读存储介质
CN105512579A (zh) 一种支持逻辑销毁和物理销毁的磁盘阵列
CN109240836A (zh) 一种用于配置消息队列的消息的方法和装置
US8862923B1 (en) Method and apparatus to determine an idle state of a device set based on availability requirements corresponding to the device set
CN101644994B (zh) 控制磁盘休眠方法与系统及启用磁盘的方法与服务器
US20130191833A1 (en) System and method for assuring performance of data scrubbing operations
CN113223566B (zh) 存储器的控制系统及其控制方法
CN106200860B (zh) 硬盘功耗、硬盘功耗管理服务控制方法及装置
US8694826B2 (en) SAS host cache control
CN103513931A (zh) 一种存储设备的监控方法及监控系统
CN102609224A (zh) 一种独立冗余磁盘阵列系统及其初始化方法
KR0149733B1 (ko) 스탠바이 모드에서 플로피 디스크 드라이버의 상태 변화를 검출할 수 있는 플로피 디스크 콘트롤러

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD.

Free format text: FORMER NAME: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee after: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee before: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20220829

Address after: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041

Patentee after: Chengdu Huawei Technologies Co.,Ltd.

Address before: 611731 Qingshui River District, Chengdu hi tech Zone, Sichuan, China

Patentee before: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

TR01 Transfer of patent right