RAID子系统及其数据读写方法技术方案

技术编号:9519169 阅读:163 留言:0更新日期:2014-01-01 16:50
本发明专利技术实施例提供了一种独立磁盘冗余阵列RAID子系统,包括第一控制器和第二控制器和M个磁盘;M个磁盘的全部存储空间被划分为N个条带,每个条带进一步包括M个条带单元,分别属于不同的磁盘,每个磁盘的存储空间被划分为N个条带单元;第一控制器和第二控制器分别包含缓存空间,缓存空间被划分为与条带一一映射的条带空间;第一控制器为N个条带中的X个条带的主控制器,同时为N个条带中其余的N-X个条带的从控制器;第二控制器为N个条带中的X个条带的从控制器,同时为N个条带中其余的N-X个条带的主控制器。本发明专利技术实施例可实现在RAID子系统中,Active-Active模式下两个控制器在同时读写磁盘同一局域时不产生冲突。

【技术实现步骤摘要】
RAID子系统及其数据读写方法
本专利技术涉及计算机领域,具体涉及一种RAID子系统及其数据读写方法。
技术介绍
具有冗余特性的磁盘阵列(RedundantArraysofInexpensiveDisks,RAID)技术是将多个独立的磁盘连接到同一个主机或磁盘控制器下,形成一个磁盘阵列,由同一个磁盘控制器进行管理和读写调度,从而可实现并发读写和冗余容错。双控制器RAID系统拥有两个控制器,一个控制器出现故障时,另外一个控制器能够继续对外提供数据服务,避免服务中断,大幅提高了RAID子系统的可用性。双控制器磁盘阵列系统的架构如图1所示,主机通过两个硬件和软件均相同的控制器访问磁盘组,两个控制器互为镜像冗余。这种架构主要有两种运行模式,一种称为活跃-备份(Active-backup)模式,在Active-backup模式下,系统正常运行时只有一个主控制器能对磁盘阵列下发读写请求,另一个控制器始终处于备用状态,仅当主控制器发生故障时,备用控制器才会接管;另一种称为活跃-活跃(Active-Active)模式,在Active-Active模式下,系统正常运行时两个控制器均处于活动状态,来自主机的读写请求可以通过两个控制器并行下发到磁盘阵列。显然,在Active-Active模式下,存在两个控制器同时读写磁盘同一区域的可能,这样就会发生读写冲突,可能导致数据不一致。
技术实现思路
本专利技术的目的是提供一种独立磁盘冗余阵列RAID子系统,以实现在双控制器的RAID子系统中,Active-Active模式下两个控制器在同时读写磁盘同一局域时不产生冲突。第一方面,本专利技术实施例提供了一种独立磁盘冗余阵列RAID子系统,所述RAID子系统包括第一控制器和第二控制器和M个磁盘,所述第一控制器和所述第二控制器互为镜像;所述M个磁盘的全部存储空间被划分为N个条带,每个条带进一步包括M个条带单元,所述M个条带单元分别属于不同的磁盘,每个磁盘的存储空间被划分为N个条带单元;所述第一控制器和所述第二控制器分别包含缓存空间,所述缓存空间被划分为与所述条带一一映射的条带空间;所述第一控制器为所述N个条带中的X个条带的主控制器,同时为所述N个条带中其余的N-X个条带的从控制器;所述第二控制器为所述N个条带中的X个条带的从控制器,同时为所述N个条带中其余的N-X个条带的主控制器。基于第一方面,在第一种可能的实施方式中,所述M个磁盘通过一个串行连接小型计算机接口扩展卡组成一个磁盘阵列;所述第一控制器和第二控制器进一步包括:中央处理器;光纤卡,用于通过光纤在所述第一控制器和第二控制器之间传递数据;第一网卡,用于与外部交换机连接,所述交换机连接主机;第二网卡,用于在所述第一控制器和第二控制器之间传递同步信号;小型计算机接口扩展卡,用于和所述串行连接小型计算机接口扩展卡连接,在所述第一控制器、第二控制器与所述磁盘阵列之间进行数据传输。第二方面,本专利技术实施例提供了一种RAID子系统数据写入方法,所述方法包括:当前控制器接收主机发送的写数据请求,所述写数据请求中包含所述写入数据的地址,所述地址对应磁盘中的第一条带,所述RAID子系统包括第一控制器和第二控制器和M个磁盘,所述第一控制器和所述第二控制器互为镜像;所述M个磁盘的全部存储空间被划分为N个条带,每个条带进一步包括M个条带单元,所述M个条带单元分别属于不同的磁盘,每个磁盘的存储空间被划分为N个条带单元,所述第一条带为所述N个条带中的一个,所述第一控制器和所述第二控制器分别包含缓存,所述缓存被可以被动态映射到为与所述条带一一对应的条带空间;所述第一控制器为所述N个条带中的X个条带的主控制器,同时为所述N个条带中其余的N-X个条带的从控制器;所述第二控制器为所述N个条带中的X个条带的从控制器,同时为所述N个条带中其余的N-X个条带的主控制器;若当前控制器的缓存中是否存在空闲空间;则将所述空闲空间与所述第一条带建立映射关系,将所述空闲空间作为所述第一条带的条带空间;若在当前控制器的缓存中不存在空闲空间时,则获取空闲空间;将所述空闲空间与所述第一条带建立映射关系,将所述空闲空间作为所述第一条带的条带空间;将所述写入数据缓存在所述第一条带的条带空间中;判断当前控制器是否为所述第一条带的主控制器,若是,则将所述写数据请求转发给所述第一条带的从控制器,与所述从控制器进行数据同步;在接收到从控制器返回的数据同步完成的响应之后,将所述第一条带的条带空间中的写入数据写入所述第一条带。基于第二方面,在第一种可能的实施方式中,在判断当前控制器是否为所述第一条带的主控制器,之后,若当前控制器不是所述第一条带的主控制器,则将所述写数据请求转发给所述第一条带的主控制器;所述第一条带的主控制器将所述写数据请求中的所述写入数据写入所述第一条带。基于第二方面,在第二种可能的实施方式中,所述若在当前控制器的缓存中不存在空闲空间时,则获取空闲空间,进一步包括:判断所述缓存中是否存在第一条带空间,所述第一条带空间位干净的条带空间,该第一条带空间中的数据已经被存储到磁盘中;若存在第一条带空间,则释放第一条带空间为空闲空间,用于缓存所述写入数据;若不存在所述第一条带空间,则选择第二条带空间进行倒盘,所述第二条带空间为脏的条带空间,所述第二条带空间中的数据没有被存储到该第二条带空间对应的磁盘中的条带中,所述倒盘是指将所述第二条带空间中的数据存储到所述磁盘中与该第二条带空间对应的条带中;将所述第二条带空间释放,获取用于缓存搓成写入数据的空闲空间。基于第二方面的第二种可能的实施方式,在第三种可能的实施方式中,所述选择第二条带空间进行倒盘进一步包括:选取访问次数和访问时间都满足设定阈值的一个备选条带空间作为第二条带空间,当前控制器为该备选条带空间对应的条带的主控制器;向所述备选条带空间对应的磁盘中的条带发送写数据请求;所述磁盘中的条带将所述备选条带中的数据写入所述条带;当前控制器在接收到所述磁盘中的所述条带的写操作完成的响应之后,释放所述备选条带空间;向所述备选条带空间对应的条带的从控制器发送倒盘通知,所述倒盘通知中携带有当前控制器的计数器值。基于第二方面的第三种可能的实施方式,在第四种可能的实施方式中,所述备选条带空间对应的条带的从控制器接收到所述备选条带空间对应的条带的主控制器发送的倒盘通知后,将从控制器的计数值减去所述倒盘通知中的计数器值;在从控制器的计数值减去所述倒盘通知中的计数器值相等时,将所述从控制器中与所述备选条带空间对应的条带空间置为干净状态;在从控制器的计数值减去所述倒盘通知中的计数器值不相等时,将所述从控制器中与所述备选条带空间对应的条带空间置为脏状态。第三方面,本专利技术实施例提供了一种RAID子系统数据读取方法,所述方法包括:接收主机发送的读数据请求,所述读数据请求中包含所述目标数据的地址,所述地址对应磁盘中的第一条带,所述RAID子系统包括第一控制器和第二控制器和M个磁盘,所述第一控制器和所述第二控制器互为镜像;所述M个磁盘的全部存储空间被划分为N个条带,每个条带进一步包括M个条带单元,所述M个条带单元分别属于不同的磁盘,每个磁盘的存储空间被划分为N个条带单元,所述第一条带为所述N个条带中的一个,所述第一控制器和所述第二控制本文档来自技高网...
RAID子系统及其数据读写方法

【技术保护点】
一种独立磁盘冗余阵列RAID子系统,其特征在于,所述RAID子系统包括第一控制器和第二控制器和M个磁盘,所述第一控制器和所述第二控制器互为镜像;所述M个磁盘的全部存储空间被划分为N个条带,每个条带进一步包括M个条带单元,所述M个条带单元分别属于不同的磁盘,每个磁盘的存储空间被划分为N个条带单元;所述第一控制器和所述第二控制器分别包含缓存空间,所述缓存空间被划分为与所述条带一一映射的条带空间;所述第一控制器为所述N个条带中的X个条带的主控制器,同时为所述N个条带中其余的N?X个条带的从控制器;所述第二控制器为所述N个条带中的X个条带的从控制器,同时为所述N个条带中其余的N?X个条带的主控制器。

【技术特征摘要】
1.一种RAID子系统数据写入方法,其特征在于,所述方法包括:当前控制器接收主机发送的写数据请求,所述写数据请求中包含所述写入数据的地址,所述地址对应磁盘中的第一条带,所述RAID子系统包括第一控制器和第二控制器和M个磁盘,所述第一控制器和所述第二控制器互为镜像;所述M个磁盘的全部存储空间被划分为N个条带,每个条带进一步包括M个条带单元,所述M个条带单元分别属于不同的磁盘,每个磁盘的存储空间被划分为N个条带单元,所述第一条带为所述N个条带中的一个,所述第一控制器和所述第二控制器分别包含缓存,所述缓存被可以被动态映射到为与所述条带一一对应的条带空间;所述第一控制器为所述N个条带中的X个条带的主控制器,同时为所述N个条带中其余的N-X个条带的从控制器;所述第二控制器为所述N个条带中的X个条带的从控制器,同时为所述N个条带中其余的N-X个条带的主控制器;若当前控制器的缓存中是否存在空闲空间;则将所述空闲空间与所述第一条带建立映射关系,将所述空闲空间作为所述第一条带的条带空间;若在当前控制器的缓存中不存在空闲空间时,则获取空闲空间;将所述空闲空间与所述第一条带建立映射关系,将所述空闲空间作为所述第一条带的条带空间;将所述写入数据缓存在所述第一条带的条带空间中;判断当前控制器是否为所述第一条带的主控制器,若是,则将所述写数据请求转发给所述第一条带的从控制器,与所述从控制器进行数据同步;在接收到从控制器返回的数据同步完成的响应之后,将所述第一条带的条带空间中的写入数据写入所述第一条带;所述若在当前控制器的缓存中不存在空闲空间时,则获取空闲空间,进一步包括:判断所述缓存中是否存在第一条带空间,所述第一条带空间位干净的条带空间,该第一条带空间中的数据已经被存储到磁盘中;若存在第一条带空间,则释放第一条带空间为空闲空间,用于缓存所述写入数据;若不存在所述第一条带空间,则选择第二条带空间进行倒盘,所述第二条带空间为脏的条带空间,所述第二条带空间中的数据没有被存储到该第二条带空间对应的磁盘中的条带中,所述倒盘是指将所述第二条带空间中的数据存储到所述磁盘中与该第二条带空间对应的条带中;将所述第二条带空间释放,获取用于缓存搓成写入数据的空闲空间。2.如权利要求1所述的数据写入方法,在判断当前控制器是否为所述第一条带的主控制器,之后,若当前控制器不是所述第一条带的主控制器,则将所述写数据请求转发给所述第一条带的主控制器;所述第一条带的主控制器将所述写数据请求中的所述写入数据写入所述第一条带。3.如权利要求1所述的数据写入方法,其特征在于,所述选择第二条带空间进行倒盘进一步包括:选取访问次数和访问时间都满足设定阈值的一个备选条带空间作为第二条带空间,当前控制器为该备选条带空间对应的条带的主控制器;向所述备选条带空间对应的磁盘中的条带发送写数据请求;所述磁盘中的条带将所述备选条带中的数据写入所述条带;当前控制器在接收到所述磁盘中的所述条带的写操作完成的响应之后,释放所述备选条带空间;向所述备选条带空间对应的条带的从控制器发送倒盘通知,所述倒盘通知中携带有当前控制器的计数器值。4.如权利要求3所述的方法,其特征在于,所述备选条带空间对应的条带的从控制器接收到所述备选条带空间对应的条带的主控制器发送的倒盘通知后,将从控制器的计数值减去所述倒盘通知中的计数器值;在从控制器的计数值减去所述倒盘通知中的计数器值相等时,将所述从控制器中与所述备选条带空间对应的条带空间置为干净状态;在从控制器的计数值减去所述倒盘通知中的计数器值不相等时,将所述从控制器中与所述备选条带空间对应的条带空间置为脏状态。5.一种RAID子系统数据读取方法,其特征在于,所述方法包括:接收主机发送的读数据请求,所述读数据请求中包含目标数据的地址,所述地址对应磁盘中的第一条带,所述RAID子系统包括第一控制器和第二控制器和M个磁盘,所述第一控制器和所述第二控制器互为...

【专利技术属性】
技术研发人员:李佳瞵万继光姜涛
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1