一种数据更新的方法、控制器及存储系统的制作方法

文档序号:6468776阅读:117来源:国知局
专利名称:一种数据更新的方法、控制器及存储系统的制作方法
技术领域
本发明实施例涉及信息技术领域,尤其是涉及一种数据更新的方法、控制器及存
储系统。
背景技术
独立冗余磁盘阵列(Redundant Array of Ind印endent Disks, Raid) 5算法以 极高的容错能力成为数据存储的常用手段,该算法对存储在不同磁盘上的数据块进行异或 运算生成校验数据,并将校验数据块和相对应的数据块分别存储于不同的磁盘上。当执行 Raid5算法的任意一个磁盘数据发生损坏后,利用其他磁盘上的数据和相应的校验数据可
以恢复被损坏的数据。 例如,将存储在磁盘1的数据块Dl和磁盘2的数据块D2进行异或运算生成校验 数据P1,将P1存储到磁盘3上,并保存D1、D2、P1的对应关系;将存储在磁盘2的数据块D3 和磁盘3的数据块D4进行异或运算生成的校验数据P2存储到磁盘1上,并保存D3、D4、P2 的对应关系,其余数据块以此类推;当磁盘1、磁盘2、磁盘3中的任意一个磁盘存储的某数 据块被损坏后,都可利用执行Raid5算法的其他磁盘上的数据块和相应的校验数据恢复数 据。 Raid5算法控制器在收到更新某磁盘的请求时,根据请求中包含的原数据逻辑地 址找到对应的物理块,读取出该磁盘上的原数据;根据保存的数据块与检验数据的对应关 系,读取出校验数据盘上相应的原校验数据,将原数据和原校验数据进行异或运算后再与 更新的数据进行异或运算,得到新的校验数据,再将更新后的数据存储在原数据对应的物 理块,将新的校验数据存储在校验盘。 在对现有技术的研究和实践过程中,本发明的发明人发现现有技术存在以下问 题 执行Raid5算法的磁盘更新数据时,将更新后的数据存储在原数据对应的物理 块,使得在该物理块写入新数据前必须先将旧数据读取出来,导致写性能下降,这种情况称 为写惩罚。

发明内容
本发明实施例提供一种数据更新的方法、控制器及存储系统,可以使得磁盘将更 新后的数据存储在新的物理块,避免写惩罚,提高写性能。 为解决上述技术问题,本发明所提供的实施例是通过以下技术方案实现的
—种数据更新的方法,包括 接收更新磁盘数据的请求和更新的数据,所述请求包括原数据起始逻辑地址和更 新数据的长度; 根据所述原数据起始逻辑地址和更新数据的长度确定需要更新的数据块; 向所述需要更新的数据块所在的磁盘发送写读请求和更新的数据,所述写读请求
5指示所述磁盘根据数据块与物理块的关联关系,在与更新的数据块关联的新的物理块中写
入更新的数据,从原数据所在的物理块读取原数据。 —种数据更新的方法,包括 接收更新磁盘数据的请求和更新的数据,所述请求包括原数据起始逻辑地址和更新数据的长度; 根据所述原数据起始逻辑地址和更新数据的长度确定需要更新的数据块; 向所述需要更新的数据块所在的磁盘发送写异或请求和更新的数据,所述写异或
请求指示所述磁盘根据数据块与物理块的关联关系,在与更新的数据块关联的新的物理块
中写入更新的数据,从原数据所在的物理块读取原数据。 —种控制器,包括 更新请求接收单元,用于接收更新磁盘数据的请求和更新的数据,所述请求包括原数据起始逻辑地址和更新数据的长度; 数据块确定单元,用于根据所述更新请求接收单元接收的请求包含的所述原数据起始逻辑地址和更新数据的长度确定需要更新的数据块; 写读请求发送单元,用于向所述数据块确定单元确定的需要更新的数据块所在的磁盘发送写读请求和更新的数据,所述写读请求指示所述磁盘根据数据块与物理块的关联关系,在与更新的数据块关联的新的物理块中写入更新的数据;从原数据所在的物理块读取原数据。 —种控制器,包括 更新请求接收单元,用于接收更新磁盘数据的请求和更新的数据,所述请求包括原数据起始逻辑地址和更新数据的长度; 数据块确定单元,用于根据所述接收更新请求单元接收的请求包含的所述原数据起始逻辑地址和更新数据的长度确定需要更新的数据块; 写异或请求发送单元,用于向所述确定数据块单元确定的需要更新的数据块所在
的磁盘发送写异或请求和更新的数据,所述写异或请求指示所述磁盘根据数据块与物理块
的关联关系,在与更新的数据块关联的新的物理块中写入更新的数据;并从原数据所在的
物理块读取原数据。 —种存储系统,包括 控制器,用于接收更新磁盘数据的请求和更新的数据,根据所述请求中包含的原数据起始逻辑地址和更新数据的长度确定需要更新的数据块,向所述需要更新的数据块所在的磁盘发送写读请求和更新的数据; 磁盘,用于根据来自所述控制器的写读请求,以及数据块与物理块的关联关系,在与更新的数据块关联的新的物理块中写入更新的数据;从原数据所在的物理块读取原数据。 —种存储系统,包括 控制器,用于接收更新磁盘数据的请求和更新的数据,根据所述请求中包含的原数据起始逻辑地址和更新数据的长度确定需要更新的数据块,向所述需要更新的数据块所在的磁盘发送写异或请求和更新的数据; 磁盘,用于根据来自所述控制器的写异或请求,以及数据块与物理块的关联关系,在与更新的数据块关联的新的物理块中写入更新的数据;从原数据所在的物理块读取原数据。 由上述技术方案可以看出,本发明实施例通过控制器下发写读请求或者写异或请求到需要更新数据的磁盘,指示磁盘将更新后的数据存储在新的物理块,而不需要在写入新数据之前将旧数据读出,避免了写惩罚,则提高了写性能。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一的方法流程示意图; 图2是磁盘数据块与检验盘上的检验数据的对应关系示意图; 图3是本发明实施例二的方法流程示意图; 图4是本发明实施例三的方法流程示意图; 图5是本发明实施例四的方法流程示意图; 图6是本发明实施例控制器的结构示意图; 图7是本发明实施例另一控制器的结构示意图; 图8是本发明实施例存储系统的结构示意图; 图9是本发明实施例另一存储系统的结构示意图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 以下本发明实施例通过控制器下发不同的命令,指示磁盘在新的物理块写入新数据,并读取旧数据或读取旧数据与旧检验数据的异或运算,使得读操作与写操作可以并行处理。
实施例一、参见图1详细说明,图1为本实施例的方法流程示意图,可以包括
步骤101 :接收更新磁盘数据的请求和更新的数据,所述请求包括原数据起始逻辑地址和更新数据的长度。 磁盘可以是固态磁盘(Solid-State Disk, SSD)等。 执行该方法的各磁盘数据块与检验盘上的检验数据的对应关系可如图2所示,其中,硬盘0上的数据块D4包含逻辑地址为40至49的数据,硬盘1上的数据块D5包含逻辑地址为50至59的数据,硬盘3上的数据块D3包含逻辑地址为30至39的数据,硬盘2上的检验数据P3-5与数据块D3、D4、D5对应。请求包括原数据起始逻辑地址为30,更新数据的长度为20。 步骤102 :根据所述原数据起始逻辑地址和更新数据的长度确定需要更新的数据块。 根据图2所示,原数据起始逻辑地址为30对应的数据块为D3,位于硬盘3 ;更新数 据的长度为20,即逻辑地址为30至50的原数据都需要更新,则硬盘0上的数据块D4也需 要更新。 步骤103 :向所述需要更新的数据块所在的磁盘发送写读请求和更新的数据,所 述写读请求指示所述磁盘根据数据块与物理块的关联关系,在与更新的数据块关联的新的
物理块中写入更新的数据块,并从原数据所在的物理块读取原数据。 步骤102确定出需要更新的数据块为硬盘3上的数据块D3和硬盘0上的数据块 D4,即向硬盘3和硬盘0下发写读请求和更新的数据。硬盘3和硬盘0根据数据块D3、 D4 与物理块的关联关系,从原数据所在的物理块读取原数据,在与更新的数据块关联的新的 物理块中写入更新的数据。 本发明实施例方法可以基于Raid5算法。本发明实施例方法可以根据实际需要对 各个步骤顺序进行调整。上述步骤的执行主体可以是控制器;控制器在接收到更新磁盘数 据的请求后,向相关磁盘下发写读请求和更新的数据,以指示相关磁盘在新的物理块中写 入更新的数据,从原数据所在的物理块读取原数据,提高写操作性能;从而避免采用现有技 术更新磁盘数据时,由于是在原数据所在的物理块写入新数据,则必须在物理块写入新数 据前先将旧数据读取出来的方案。 本发明实施例通过控制器下发写读请求到需要更新数据的磁盘,并指示磁盘将更 新后的数据存储在新的物理块,提高写性能。 以下实施例二对实施例一在实际应用过程中的处理流程进行详细说明,包括控制 器向磁盘下发写读请求和更新的数据,并获取磁盘原数据和相应的校验数据后,生成和下 发新的校验数据的全过程。 实施例二、参见图3详细说明,图3为本实施例的方法流程示意图,可以包括
步骤201 :接收到更新磁盘数据的请求和更新的数据,所述请求包括原数据起始 逻辑地址和更新数据的长度。
磁盘可以是固态磁盘等。 步骤202 :根据所述原数据起始逻辑地址和更新数据的长度确定需要更新的数据 块。 步骤203 :向所述需要更新的数据块所在的磁盘下发写读请求和更新的数据,所 述写读请求指示所述磁盘根据数据块与物理块的关联关系,在与更新的数据块关联的新的
物理块中写入更新的数据块,并从原数据所在的物理块读取原数据。 上述在新的物理块中写入更新的数据块与从原数据所在的物理块读取原数据可 以是同时进行,也可以是先写入更新的数据块再读取原数据,都不影响本发明实施例的实 现。
步骤204 :获取所述磁盘的原数据和校验盘上的相应原校验数据。
磁盘在读取原数据后,将原数据内容响应给控制器。 上述步骤的执行主体可以是控制器;控制器获取校验盘上的相应校验数据可以通 过向校验盘下发读请求,指示校验盘反馈与更新的所述磁盘数据相应的原校验数据。向校 验盘下发读请求可以与步骤203所述的写读请求同时下发或者在其后下发,都不影响本发
8明实施例的实现。 步骤205 :将所述磁盘的原数据、相应原校验数据和更新的数据进行异或运算,生 成新的校验数据。 控制器可以将所述磁盘的原数据、相应原校验数据进行异或运算得到去除了原数
据影响的相应原校验数据;再将所述去除了原数据影响的相应原校验数据与更新的数据进
行异或运算得到新的校验数据。 异或运算又称半加运算,其运算规则为 0同0异或,结果为0; 0同1异或,结果为1; 1同0异或,结果为1; 1同l异或,结果为0。 即当两个参与运算的数取值相异时,运算结果为l,否则为O。因此,原数据的相应 原校验数据与原数据再次进行异或运算后,可得到与原数据进行异或运算前的校验数据。
步骤206 :向校验盘下发写请求和新的校验数据,所述写请求指示所述校验盘写 入新的校验数据。 本发明实施例通过控制器下发写读请求到需要更新的数据磁盘,指示磁盘将更新 后的数据存储在新的物理块,使得写操作和读操作可以并行处理,提高写性能,从而避免采 用现有技术更新磁盘数据时,由于是在原数据所在的物理块写入新数据,则必须在物理块 写入新数据前先将旧数据读取出来的方案。 本发明实施例方法可以根据实际需要对各个步骤顺序进行调整。本发明实施例方
法可以基于Raid5算法。本发明实施例所述控制器可以是Raid5控制器。 以上实施例一和二以控制器下发写读请求为例进行说明,以下实施例三和四则以
控制器下发写异或请求为例进行说明。 实施例三、参见图4详细说明,图4为本实施例的方法流程示意图,可以包括
步骤301 :接收更新磁盘数据的请求和更新的数据,所述请求包括原数据起始逻 辑地址和更新数据的长度。
磁盘可以是固态磁盘。 步骤302 :根据所述原数据起始逻辑地址和更新数据的长度确定需要更新的数据 块。 步骤303 :向所述需要更新的数据块所在的磁盘发送写异或请求和更新的数据, 所述写异或请求指示所述磁盘根据数据块与物理块的关联关系,在与更新的数据块关联的 新的物理块中写入更新的数据块,从原数据所在的物理块读取原数据。 上述在新的物理块中写入更新的数据块与从原数据所在的物理块读取原数据可 以是同时进行,也可以是先写入更新的数据块再读取原数据,都不影响本发明实施例的实 现。 上述步骤的执行主体可以是控制器;控制器在接收到更新磁盘数据的请求后,向 所述磁盘下发写异或请求和更新的数据,以指示所述磁盘在新的物理块中写入更新的数 据,从原数据所在的物理块读取原数据,并反馈原数据块与更新的数据的异或运算结果,进 一步提高写操作性能;从而避免采用现有技术更新磁盘数据时,由于是在原数据所在的物理块写入新数据,则必须在物理块写入新数据前先将旧数据读取出来的方案。 本发明实施例通过控制器下发写异或请求到需要更新数据的磁盘,指示磁盘将更
新后的数据存储在新的物理块,使得写操作和读操作可以并行处理,提高写性能,从而避免
采用现有技术更新磁盘数据时,由于是在原数据所在的物理块写入新数据,则必须在物理
块写入新数据前先将旧数据读取出来的方案;并反馈新旧数据异或运算结果,节约控制器资源。 本实施例方案相较控制器下发写读请求的方案,是直接读取新旧数据的异或结 果,更为节约算法控制器的资源,算法的写性能进一步提高。 本发明实施例方法可以根据实际需要对各个步骤顺序进行调整。本发明实施例方
法可以基于Raid5算法。本发明实施例所述控制器可以是Raid5控制器。 以下实施例四对实施例三在实际应用过程中的处理流程进行详细说明,包括控制
器向磁盘下发写异或请求和更新的数据,并获取磁盘原数据与更新的数据的异或运算结果
及相应的校验数据后,生成和下发新的校验数据的全过程。 实施例四、参见图5详细说明,图5为本实施例的方法流程示意图,可以包括
步骤401 :接收到更新磁盘数据的请求和更新的数据,所述请求包括原数据起始 逻辑地址和更新数据的长度。
磁盘可以是固态磁盘等。 步骤402 :根据所述原数据起始逻辑地址和更新数据的长度确定需要更新的数据 块。 步骤403 :向所述需要更新的数据块所在的磁盘下发写异或请求和更新的数据, 所述写异或请求指示所述磁盘根据数据块与物理块的关联关系,在与更新的数据块关联的 新的物理块中写入更新的数据块,从原数据所在的物理块读取原数据,并指示磁盘反馈原 数据与更新的数据的异或运算结果。 上述在新的物理块中写入更新的数据块与从原数据所在的物理块读取原数据可 以是同时进行,也可以是先写入更新的数据块再读取原数据,都不影响本发明实施例的实 现。 步骤404 :获取所述异或运算结果和校验盘上的相应原校验数据。 磁盘在计算出原数据与更新的数据的异或运算结果后,将所述异或运算结果响应
给控制器。 控制器获取校验盘上的相应校验数据可以通过向校验盘下发读请求,指示校验盘 响应与更新的所述磁盘数据相应的原校验数据。向校验盘下发读请求可以与步骤403所述 的写读请求同时下发或者在其后下发,都不影响本发明实施例的实现。 步骤405 :将所述异或运算结果、相应原校验数据块进行异或运算,生成新的校验 数据。 控制器可以将所述新旧数据的异或运算结果与原校验数据块进行异或运算,依照 异或运算规则,则可直接从相应原校验数据中去除了原数据影响,得到新的校验数据。
步骤406 :向校验盘下发写请求和新的校验数据,所述写请求指示所述校验盘写 入新的校验数据。 本发明实施例方法可以根据实际需要对各个步骤顺序进行调整。本发明实施例方
10法可以基于Raid5算法。本发明实施例所述控制器可以是Raid5控制器。 控制器下发写异或请求,磁盘则计算出原数据与更新的数据的异或运算结果后响
应给控制器,使得写操作和读操作可以并行处理,从而避免采用现有技术更新磁盘数据时,
由于是在原数据所在的物理块写入新数据,则必须在物理块写入新数据前先将旧数据读取
出来的方案。 本实施例方案相较控制器下发写读请求的方案,是直接读取新旧数据的异或结 果,更为节约算法控制器的资源,算法的写性能进一步提高。 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列 的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为 依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知 悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明 所必须的。 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部 分,可以参见其他实施例的相关描述。 以上提供了一种数据更新的方法,本发明实施例还提供控制器、磁盘以及可更新 数据的存储系统。 —种控制器50,参见图6,图6为本发明实施例控制器的结构示意图,可以包括
更新请求接收单元51 ,用于接收更新磁盘数据的请求和更新的数据,所述请求包 括原数据起始逻辑地址和更新数据的长度; 数据块确定单元52,用于根据所述更新请求接收单元51接收的请求包含的所述 原数据起始逻辑地址和更新数据的长度确定需要更新的数据块; 写读请求发送单元53,用于向所述数据块确定单元52确定的需要更新的数据块 所在的磁盘下发写读请求和更新的数据,所述写读请求指示所述磁盘根据数据块与物理块 的关联关系,在与更新的数据块关联的新的物理块中写入更新的数据块,并从原数据所在 的物理块读取原数据。在新的物理块中写入更新的数据块与从原数据所在的物理块读取原 数据可以是同时进行,也可以是先写入更新的数据块再读取原数据,都不影响本发明实施 例的实现。 所述控制器50还可包括以下单元 原数据获取单元54,用于获取需要更新的数据块的原数据、校验盘上的相应原校 验数据,所述校验盘与所述需要更新的数据块所在的磁盘对应; 新检验数据生成单元55,用于将原数据获取单元54获取的原数据、相应原校验数 据进行异或运算,再与更新请求接收单元51接收的更新的数据进行异或运算,生成新的校 验数据; 写请求发送单元56,用于将写请求和新检验数据生成单元55生成的新的校验数 据向校验盘发送,所述写请求指示所述校验盘写入新的校验数据,所述校验盘与所述需要 更新的数据块所在的磁盘对应。 本发明实施例设备的各个模块可以集成于一体,也可以分离部署。上述模块可以 合并为一个模块,也可以进一步拆分成多个子模块。 本发明实施例通过控制器下发写读请求到需要更新数据的磁盘,并指示磁盘将更
11新后的数据存储在新的物理块,使得写操作和读操作可以并行处理,提高写性能。 —种控制器60,参见图7,图7为本发明实施例另一控制器的结构示意图,可以包
括 更新请求接收单元61 ,用于接收更新磁盘数据的请求和更新的数据,所述请求包 括原数据起始逻辑地址和更新数据的长度; 数据块确定单元62,用于根据所述更新请求接收单元61接收的请求包含的所述 原数据起始逻辑地址和更新数据的长度确定需要更新的数据块; 写异或请求发送单元63,用于向所述数据块确定单元62确定的需要更新的数据 块所在的磁盘发送写异或请求和更新的数据,所述写异或请求指示所述磁盘根据数据块与 物理块的关联关系,在与更新的数据块关联的新的物理块中写入更新的数据块,从原数据 所在的物理块读取原数据,并指示磁盘反馈原数据与更新的数据的异或运算结果。
所述控制器60还可包括以下子单元 异或运算结果获取单元64,用于获取来自磁盘的异或运算结果和校验盘上的相应 校验数据,所述校验盘与所述需要更新的数据块所在的磁盘对应; 新检验数据生成单元65,用于将异或运算结果获取单元64获取的异或运算结果、 相应原校验数据进行异或运算,生成新的校验数据; 写请求发送单元66,用于将写请求和新检验数据生成单元65生成的新的校验数 据向校验盘发送,所述写请求指示所述校验盘写入新的校验数据,所述校验盘与所述需要 更新的数据块所在的磁盘对应。 本发明实施例设备的各个模块可以集成于一体,也可以分离部署。上述模块可以
合并为一个模块,也可以进一步拆分成多个子模块。 控制器50和控制器60都可以是Raid5算法控制器。 本发明实施例通过控制器下发写异或请求到需要更新数据的磁盘,指示磁盘将更 新后的数据存储在新的物理块,使得写操作和读操作可以并行处理,提高写性能;并反馈新 旧数据异或运算结果,节约控制器资源。控制器60直接读取新旧数据的异或结果,相较控 制器50更为节约算法控制器的资源,算法的写性能进一步提高。 —种存储系统70,参见图8,图8为本发明实施例存储系统的结构示意图,可以包 括 控制器71,用于接收更新磁盘数据的请求和更新的数据,根据所述请求中包含的 原数据起始逻辑地址和更新数据的长度确定需要更新的数据块,向所述需要更新的数据块 所在的磁盘发送写读请求和更新的数据;并更新与所述需要更新的数据块所在的磁盘对应 的校验盘。 更新检验盘可获取需要更新的数据块的原数据、校验盘上的相应原校验数据,所 述校验盘与所述需要更新的数据块所在的磁盘对应;将原数据、相应原校验数据进行异或 运算,再与更新的数据进行异或运算,生成新的校验数据;将写请求和新的校验数据向校验 盘发送,所述写请求指示将新的校验数据写入所述校验盘。 磁盘72,用于根据来自所述控制器的写读请求,以及数据块与物理块的关联关系, 在与更新的数据块关联的新的物理块中写入更新的数据块,并从原数据所在的物理块读取 原数据。
本发明实施例的系统可以基于Raid5算法。本发明实施例通过控制器下发写读请 求到需要更新数据的磁盘,并指示磁盘将更新后的数据存储在新的物理块,使得写操作和 读操作可以并行处理,提高写性能。 —种存储系统80,参见图9,图9为本发明实施例另一存储系统的结构示意图,可 以包括 控制器81,用于接收更新磁盘数据的请求和更新的数据,根据所述请求中包含的 原数据起始逻辑地址和更新数据的长度确定需要更新的数据块,向所述需要更新的数据块 所在的磁盘发送写异或请求和更新的数据,所述写异或请求指示所述磁盘从原数据所在的 物理块读取原数据后,在计算原数据块与更新的数据的异或运算结果的同时,在新的物理 块中写入更新的数据。 磁盘82,用于根据来自所述控制器81的写异或请求以及数据块与物理块的关联 关系,在与更新的数据块关联的新的物理块中写入更新的数据块,从原数据所在的物理块 读取原数据,并将原数据与更新的数据的异或运算结果反馈给控制器。 本发明实施例系统的各个单元可以集成于一个装置,也可以分布于多个装置。上 述单元可以合并为一个单元,也可以进一步拆分成多个子单元。本发明实施例的系统可以 基于Raid5算法。 本发明实施例通过控制器下发写异或请求到需要更新数据的磁盘,指示磁盘将更 新后的数据存储在新的物理块,使得写操作和读操作可以并行处理,提高写性能;并反馈新 旧数据异或运算结果,节约控制器资源。 以上所述的本发明实施例控制器和存储系统通过控制器下发写读请求或者写异 或请求到需要更新数据的磁盘,指示磁盘将将更新后的数据存储在新的物理块,读操作和 写操作同时进行,提高写性能。 本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可 以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介 质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为 磁碟、光盘、只读存储记忆体(Read-OnlyMemory, ROM)或随机存储记忆体(Random Access Memory,廳)等。 以上对本发明实施例所提供的一种数据更新的方法、控制器及存储系统进行了详 细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说 明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据 本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不 应理解为对本发明的限制。
权利要求
一种数据更新的方法,其特征在于,包括接收更新磁盘数据的请求和更新的数据,所述请求包括原数据起始逻辑地址和更新数据的长度;根据所述原数据起始逻辑地址和更新数据的长度确定需要更新的数据块;向所述需要更新的数据块所在的磁盘发送写读请求和所述更新的数据,所述写读请求指示所述磁盘根据数据块与物理块的关联关系,在与所述需要更新的数据块关联的新的物理块中写入所述更新的数据,从所述需要更新的数据块的原数据所在的物理块读取原数据。
2. 根据权利要求1所述的方法,其特征在于,还包括获取需要更新的数据块的原数据、校验盘上的相应原校验数据,所述校验盘与所述需 要更新的数据块所在的磁盘对应;将原数据、相应原校验数据进行异或运算,再与更新的数据进行异或运算,生成新的校 验数据;将写请求和新的校验数据向校验盘发送,所述写请求指示将新的校验数据写入所述校 验盘,所述校验盘与所述需要更新的数据块所在的磁盘对应。
3. —种数据更新的方法,其特征在于,包括接收更新磁盘数据的请求和更新的数据,所述请求包括原数据起始逻辑地址和更新数 据的长度;根据所述原数据起始逻辑地址和更新数据的长度确定需要更新的数据块; 向所述需要更新的数据块所在的磁盘发送写异或请求和更新的数据,所述写异或请 求指示所述磁盘根据数据块与物理块的关联关系,在与所述需要更新的数据块关联的新的 物理块中写入所述更新的数据,从所述需要更新的数据块的原数据所在的物理块读取原数 据,指示磁盘反馈原数据与更新的数据的异或运算结果。
4. 根据权利要求3所述的数据更新的方法,其特征在于,所述向所述需要更新的数据 块所在的磁盘发送写异或请求和更新的数据之后还包括获取所述异或运算结果和校验盘上的相应校验数据,所述校验盘与所述需要更新的数据块所在的磁盘对应;将异或运算结果、相应原校验数据进行异或运算,生成新的校验数据; 将写请求和新的校验数据发送给校验盘,所述写请求指示将新的校验数据写入所述校验盘,所述校验盘与所述需要更新的数据块所在的磁盘对应。
5. —种控制器,其特征在于,包括更新请求接收单元,用于接收更新磁盘数据的请求和更新的数据,所述请求包括原数 据起始逻辑地址和更新数据的长度;数据块确定单元,用于根据所述更新请求接收单元接收的请求包含的所述原数据起始 逻辑地址和更新数据的长度确定需要更新的数据块;写读请求发送单元,用于向所述数据块确定单元确定的需要更新的数据块所在的磁 盘发送写读请求和更新的数据,所述写读请求指示所述磁盘根据数据块与物理块的关联关 系,在与更新的数据块关联的新的物理块中写入更新的数据;从原数据所在的物理块读取 原数据。
6. 根据权利要求5所述的控制器,其特征在于,还包括原数据获取单元,用于获取需要更新的数据块的原数据、校验盘上的相应原校验数据, 所述校验盘与所述需要更新的数据块所在的磁盘对应;新检验数据生成单元,用于将原数据获取单元获取的原数据、相应原校验数据进行异 或运算,再与更新的数据进行异或运算,生成新的校验数据;写请求发送单元,用于将写请求和新检验数据生成单元生成的新的校验数据向校验盘 发送,所述写请求指示所述校验盘写入新的校验数据,所述校验盘与所述需要更新的数据 块所在的磁盘对应。
7. —种控制器,其特征在于,包括更新请求接收单元,用于接收更新磁盘数据的请求和更新的数据,所述请求包括原数 据起始逻辑地址和更新数据的长度;数据块确定单元,用于根据所述接收更新请求单元接收的请求包含的所述原数据起始 逻辑地址和更新数据的长度确定需要更新的数据块;写异或请求发送单元,用于向所述确定数据块单元确定的需要更新的数据块所在的磁 盘发送写异或请求和更新的数据,所述写异或请求指示所述磁盘根据数据块与物理块的关 联关系,在与更新的数据块关联的新的物理块中写入更新的数据;从原数据所在的物理块 读取原数据,指示磁盘反馈原数据与更新的数据的异或运算结果。
8. 根据权利要求7所述的控制器,其特征在于,还包括异或运算结果获取单元,用于获取来自磁盘的异或运算结果和校验盘上的相应原校验 数据,所述校验盘与所述需要更新的数据块所在的磁盘对应;新检验数据生成单元,用于将异或运算结果获取单元获取的异或运算结果、相应原校 验数据进行异或运算,生成新的校验数据;写请求发送单元,用于将写请求和新检验数据生成单元生成的新的校验数据向校验盘 发送,所述写请求指示所述校验盘写入新的校验数据,所述校验盘与所述需要更新的数据 块所在的磁盘对应。
9. 一种存储系统,其特征在于,包括控制器,用于接收更新磁盘数据的请求和更新的数据,根据所述请求中包含的原数据 起始逻辑地址和更新数据的长度确定需要更新的数据块,向所述需要更新的数据块所在的 磁盘发送写读请求和更新的数据;磁盘,用于根据来自所述控制器的写读请求,以及数据块与物理块的关联关系,在与更 新的数据块关联的新的物理块中写入更新的数据;从原数据所在的物理块读取原数据。
10. 根据权利要求9所述的存储系统,其特征在于,控制器还用于更新与所述需要更 新的数据块所在的磁盘对应的校验盘。
11. 一种存储系统,其特征在于,包括控制器,用于接收更新磁盘数据的请求和更新的数据,根据所述请求中包含的原数据 起始逻辑地址和更新数据的长度确定需要更新的数据块,向所述需要更新的数据块所在的 磁盘发送写异或请求和更新的数据;磁盘,用于根据来自所述控制器的写异或请求,以及数据块与物理块的关联关系,在与 更新的数据块关联的新的物理块中写入更新的数据;从原数据所在的物理块读取原数据。
12.根据权利要求11所述的存储系统,其特征在于,所述磁盘还用于将原数据与更新 的数据的异或运算结果反馈给所述控制器。
全文摘要
本发明实施例公开了一种数据更新的方法、控制器及存储系统,所述方法包括接收到更新磁盘数据的请求和更新的数据,所述请求包括原数据在该磁盘上的起始逻辑地址和更新数据的长度;根据所述原数据在该磁盘上的起始逻辑地址和更新数据的长度确定需要更新的数据块;向所述需要更新的数据块所在的磁盘下发写读请求和更新的数据,所述写读请求指示所述磁盘根据数据块与物理块的关联关系,在与更新的数据块关联的新的物理块中写入更新的数据,并从原数据所在的物理块读取原数据。本发明实施例通过下发写读请求或者写异或请求,指示磁盘将更新后的数据存储在新的物理块,使得写操作与读操作并行处理,提高写性能。
文档编号G06F3/06GK101763220SQ20081018653
公开日2010年6月30日 申请日期2008年12月25日 优先权日2008年12月25日
发明者张巍 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1