双控磁盘阵列中双控制器配置信息同步的方法和装置的制作方法

文档序号:7746418阅读:233来源:国知局
专利名称:双控磁盘阵列中双控制器配置信息同步的方法和装置的制作方法
技术领域
本发明涉及存储技术领域,特别是涉及一种双控磁盘阵列中双控制器配置信息同 步的方法和装置。
背景技术
磁盘阵列是由阵列控制器来控制多个硬盘的相互连接,把多块独立的硬 盘按不同 的方式组合起来形成一个硬盘组,从而提供比单个硬盘更高的存储性能和提供数据备份技 术。由两个控制器来控制多个磁盘的磁盘阵列,称为双控磁盘阵列。双控制器热插拔,是指允许用户在不关闭系统,不切断电源的情况下拔除或者更 换损坏的一个控制器的过程。支持热拔除是磁盘阵列的基本功能之一,提高了系统对灾难 的及时恢复能力、扩展性和灵活性。双控制器之间的配置信息同步和控制器中的配置信息与物理设备上记录的配置 信息的同步,是双控制器磁盘阵列的一个重要处理过程。特别是当一端控制器将配置信息 写入虚拟设备对应的物理磁盘上后,在向对端控制器发送数据前,控制器被拔出或者故障 后,导致对端控制器上内存中的配置信息与虚拟设备对应的物理磁盘上的配置信息不一致 的处理。目前,关于在这种情况下的处理有以下两种第一种使用重启的方式来解决配置信 息不一致问题,当外部系统配置信息不一致时,重启控制器和外部系统。在双控制器的环境 下,也可通过重启的方式解决配置信息不一致问题,但会使整个系统中断业务,这在应用中 是不允许的。第二种就是在拔出控制器或者控制器失效后,虚拟设备处理模块读取物理磁 盘上对应的配置信息,同步控制器中已记录的配置信息。因为发生这种情况是比较少出现, 如果每次都这样处理,将浪费大量时间,降低了控制器切换处理效率。

发明内容
本发明要解决的问题是提供一种双控磁盘阵列中双控制器配置信息同步的方法 和装置,以克服现有技术中控制器切换处理效率低的缺陷。为达到上述目的,本发明的技术方案提供一种双控磁盘阵列中双控制器配置信息 同步的方法,所述方法包括以下步骤A、当主控制器失效或被拔出后,读取与物理磁盘对应 的虚拟设备上记录的虚拟设备配置信息;B、比较所述虚拟设备上记录的虚拟设备配置信息 与从控制器上记录的虚拟设备配置信息,判断配置信息是否需要同步;C、如果需要同步,则 将虚拟设备上记录的虚拟设备配置信息同步到从控制器上。进一步,所述步骤A包括A1、判断当前控制器是否为从控制器,如果是,则转步骤 A2 ;否则结束;A2、读取虚拟设备上记录的虚拟设备配置信息,分析配置信息,建立临时虚 拟设备链表。进一步,所述步骤B包括Bi、判断临时虚拟设备链表中的节点是否存在于当前控 制器中的虚拟设备链表,如果不存在,则转步骤C。进一步,所述步骤C包括Cl、在当前控制器中的虚拟设备链表中增加与所述节点对应的虚拟设备的配置信息。进一步,所述步骤B包括B2、当临时虚拟设备链表中的节点存在于当前控制器中 的虚拟设备链表时,判断虚拟设备的配置信息中控制同步标志位是否为0,如果是,则转步 马聚Co进一步,所述步骤C包括C2、将临时虚拟设备链表中所述节点的配置信息同步到 当前控制器中的虚拟设备链表中。进一步,在步骤A之前,还包括当主控制器和从控制器初始化虚拟设备配置信息 时,设置所述控制同步标志位为1 ;当主控制器更新虚拟设备配置信息后,设置所述控制同 步标志位为0,并向从控制器发送更新的配置信息;当从控制器根据主控制器发送的消息 更新虚拟设备配置信息后,设置所述控制同步标志位为1。进一步,在步骤C之后还包括删除临时虚拟设备链表中所述节点的配置信息。本发明的技术方案还提供一种双控磁盘阵列中双控制器配置信息同步的装置,所 述装置包括信息读取单元,用于当主控制器失效或被拔出后,读取与物理磁盘对应的虚拟 设备上记录的虚拟设备配置信息,建立临时虚拟设备链表;同步判断单元,用于比较所述虚 拟设备上记录的虚拟设备配置信息与从控制器上记录的虚拟设备配置信息,判断配置信息 是否需要同步;同步单元,用于当配置信息需要同步时,将虚拟设备上记录的虚拟设备配置 信息同步到从控制器上。进一步,所述同步判断单元包括节点判断子单元,用于判断临时虚拟设备链表中 的节点是否存在于当前控制器中的虚拟设备链表;标志位判断子单元,用于判断虚拟设备 的配置信息中控制同步标志位是否为0。进一步,所述装置还包括标志位设置单元,用于当主控制器和从控制器初始化虚 拟设备配置信息时,设置控制同步标志位为1 ;当主控制器更新虚拟设备配置信息后,设置 控制同步标志位为0 ;当从控制器更新虚拟设备配置信息后,设置控制同步标志位为1。与现有技术相比,本发明有益效果如下本发明在主控制器失效或被拔出后,通过比较虚拟设备上记录的虚拟设备配置信 息与从控制器上记录的虚拟设备配置信息,判断配置信息是否需要同步,并在需要同步时 将虚拟设备上记录的虚拟设备配置信息同步到从控制器上的方法,保持控制器与磁盘阵列 的配置信息一致,提高了磁盘阵列的可靠性和安全性,并大大降低了控制器切换所需要的 时间。


图1是本发明的磁盘阵列控制器组成示意图;图2是本发明实施例的主控制器配置信息处理流程图;图3是本发明实施例的从控制器配置信息处理流程图;图4是本发明实施例的一种双控磁盘阵列中双控制器配置信息同步方法的流程 图;图5是本发明的一种双控磁盘阵列中双控制器配置信息同步的装置的结构示意 图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施 例用于说明本发明,但不用来限制本发明的范围。本发明的磁盘阵列控制器组成示意图如图1所示,磁盘阵列控制器主要包括硬件 和软件两部分,硬件支持的环境有I0P342处理器,X86、PPC (PowerPC处理器)等多核多路 系统或多处理节点系统,支持DMA (Direct Memory Access,直接存储器访问)、XOR (异或) 等硬件加速器;软件主要包括硬件相关驱动,双控相关驱动,逻辑设备驱动和cache相关处理等。本发明中的主控制器和从控制器的配置信息处理流程如图2和图3所示,本发明 中在主控制器和从控制器都正常时的双控处理过程包括以下步骤步骤11,为虚拟设备的配置信息描述结构申请内存空间,读取虚拟设备上的配置 信息,并初始化虚拟设备的配置信息描述,设置虚拟设备的配置信息中控制同步标志位为
Io步骤12,根据更新,修改虚拟设备配置信息描述,如果是双控,设置主控制器的控 制同步标志位为0,并将虚拟设备配置信息写入虚拟设备。步骤13,由主控制器将更新的配置信息发送到从控制器。步骤14,从控制器接收到消息,更新虚拟设备配置信息描述,并设置控制同步标志 位为1,将更新后的配置信息写入虚拟设备,表示两端控制器数据已同步完成。本发明的一种双控磁盘阵列中双控制器配置信息同步方法的流程如图4所示,包 括以下步骤步骤21,判断失效或被拔出的控制器是否为主控制器,即判断当前控制器是否为 从控制器,如果是,则转步骤22 ;否则结束。步骤22,读取虚拟设备上记录的虚拟设备配置信息,分析配置信息,建立临时虚拟 设备链表。步骤23,将临时虚拟设备链表与当前控制器中的虚拟设备链表比较,如果临时虚 拟设备链表中的节点在当前控制器的虚拟设备链表中不存在,则在当前控制器中的虚拟设 备链表中增加与所述节点对应的虚拟设备的配置信息;如果存在,则转步骤24。步骤24,判断虚拟设备的配置信息中控制同步标志位是否为0。如果该标志位为 0,则表示控制器故障或者热拔出前,控制器中的配置信息与虚拟设备的配置不一致,则转 步骤25。步骤25,根据读取的最新虚拟设备配置信息,更新当前控制器中的虚拟设备配置 fn息ο步骤26,删除临时虚拟设备配置信息的描述。双控磁盘阵列中一端故障控制器的替换或者由单控状态变为双控状态中,正常运 行的控制器的处理过程包括以下步骤步骤31,待新插入控制器上电启动后,发送消息到新增控制器。步骤32,新增控制器接收到消息后,读取虚拟设备对应的物理磁盘上记录的配置 信息,建立虚拟设备的描述链表,管理虚拟设备的配置信息。实施例一
本实施例对在主控制器和从控制器都正常时的双控处理过程进行详细说明,在本 实施例中,首先定义一个结构struct A,描述虚拟设备的配置相关信息。其次,从虚拟设备 多包含的物理磁盘的末端保留一定大小的空间,用于保存描述虚拟设备的配置信息,并定 义一个数据结构描述虚拟设备上记录的配置信息struct_B,包含一个数据项,记录双控同 步是否完成的标识unsigned longCtrl_Sync_flag。然后,定义一个虚拟设备链表deV_list 和临时链表tmp_list。本实施例对双控制器配置信息同步的处理流程如下步骤41,主控制器和从控制器分配A、B空间,读取虚拟设备的配置信息,初始化A, 并将A中相应项的值同步到各物理磁盘对应的B,并置ctrl_Sync_flag为OxFFFFFFFF。步骤42,主控制器对虚拟设备进行配置,更新A对应的项,同步各物理磁盘上的B, 并置ctrl_Sync_flag为0x00000000,将B数据写入物理磁盘对应位置。步骤43,主控制器发送消息到从控制器。步骤44,从控制器接收消息,并解析。步骤45,从控制器更新配置信息A,同步各物理磁盘上的B,并置ctrl_sync_f lag 为OxFFFFFFFF,将B数据写入物理磁盘对应位置。两端控制器同步完成。实施例二本实施例对实施例一中的主控制器失效或被拔出后,从控制器的配置信息同步流 程进行详细说明,参照图4,本实施例包括以下步骤步骤51,判断当前控制器是否为从控制器,如果是,则转步骤52 ;否则结束。步骤52,读取虚拟设备上记录的虚拟设备配置信息,分析配置信息,建立临时虚拟 设备链表。本实施例中,读取虚拟设备对应的各物理磁盘相应位置的配置信息B,同步A对 应值,建立临时链表tmp_list。步骤53,遍历临时虚拟设备链表和当前控制器中的虚拟设备链表。步骤54,判断临时虚拟设备链表中的节点是否存在于当前控制器中的虚拟设备链 表,如果不存在,则转步骤55,否则转步骤56。本实施例中,比较临时链表tmp_list和控制 器中deV_list,如果有节点存在于tmp_list,而不存在于deV_list中,则转步骤55 ;如果 tmp_list中节点也存在于dev_list,则转步骤56。步骤55,在当前控制器中的虚拟设备链表中增加与所述节点对应的虚拟设备的配 置信息,并转步骤59。本实施例中,将节点添加到deV_list中。步骤56,判断虚拟设备的配置信息中控制同步标志位是否为0,如果是,则转步 骤57,否则转步骤59。本实施例中,判断B中ctrl_sync_flag是否为0x00000000,如果 为0x00000000,则表示主控制器失效或被拔出前,双控同步没完成,转步骤57,否则转步骤 59。步骤57,将临时虚拟设备链表中所述节点的配置信息同步到当前控制器中的虚拟 设备链表中。本实施例中将步骤52中读取建立tmp_list链表中的节点A值同步到dev_ list中的A值,即同步物理磁盘上的数据与控制器内存中保存的数据。步骤58,删除临时虚拟设备链表中所述节点的配置信息。步骤59,判断遍历是否完成,如果是,则结束,否则转步骤53。本发明的一种双控磁盘阵列中双控制器配置信息同步的装置的结构如图5所示,所述装置包括信息读取单元、同步判断单元、同步单元和标志位设置单元,其中同步判断单元分别与信息读取单元、同步单元和标志位设置单元连接。信息读取单元用于当主控制器失效或被拔出后,读取与物理磁盘对应的虚拟设备 上记录的虚拟设备配置信息,建立临时虚拟设备链表。同步判断单元用于比较所述虚拟设 备上记录的虚拟设备配置信息与从控制器上记录的虚拟设备配置信息,判断配置信息是否 需要同步。同步单元用于当配置信息需要同步时,将虚拟设备上记录的虚拟设备配置信息 同步到从控制器上。标志位设置单元用于当主控制器和从控制器初始化虚拟设备配置信息 时,设置控制同步标志位为1 ;当主控制器更新虚拟设备配置信息后,设置控制同步标志位 为0 ;当从控制器更新虚拟设备配置信息后,设置控制同步标志位为1。同步判断单元包括节点判断子单元和标志位判断子单元,其中节点判断子单元用 于判断临时虚拟设备链表中的节点是否存在于当前控制器中的虚拟设备链表;标志位判断 子单元用于判断虚拟设备的配置信息中控制同步标志位是否为0。本发明在主控制器失效或被拔出后,通过比较虚拟设备上记录的虚拟设备配置信 息与从控制器上记录的虚拟设备配置信息,判断配置信息是否需要同步,并在需要同步时 将虚拟设备上记录的虚拟设备配置信息同步到从控制器上的方法,保持控制器与磁盘阵列 的配置信息一致,提高了磁盘阵列的可靠性和安全性,并大大降低了控制器切换所需要的 时间。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰 也应视为本发明的保护范围。
权利要求
一种双控磁盘阵列中双控制器配置信息同步的方法,其特征在于,所述方法包括以下步骤A、当主控制器失效或被拔出后,读取与物理磁盘对应的虚拟设备上记录的虚拟设备配置信息;B、比较所述虚拟设备上记录的虚拟设备配置信息与从控制器上记录的虚拟设备配置信息,判断配置信息是否需要同步;C、如果需要同步,则将虚拟设备上记录的虚拟设备配置信息同步到从控制器上。
2.如权利要求1所述的双控磁盘阵列中双控制器配置信息同步的方法,其特征在于, 所述步骤A包括Al、判断当前控制器是否为从控制器,如果是,则转步骤A2 ;否则结束;A2、读取虚拟设备上记录的虚拟设备配置信息,分析配置信息,建立临时虚拟设备链表。
3.如权利要求2所述的双控磁盘阵列中双控制器配置信息同步的方法,其特征在于, 所述步骤B包括Bi、判断临时虚拟设备链表中的节点是否存在于当前控制器中的虚拟设备链表,如果 不存在,则转步骤C。
4.如权利要求3所述的双控磁盘阵列中双控制器配置信息同步的方法,其特征在于, 所述步骤C包括Cl、在当前控制器中的虚拟设备链表中增加与所述节点对应的虚拟设备的配置信息。
5.如权利要求3所述的双控磁盘阵列中双控制器配置信息同步的方法,其特征在于, 所述步骤B包括B2、当临时虚拟设备链表中的节点存在于当前控制器中的虚拟设备链表时,判断虚拟 设备的配置信息中控制同步标志位是否为0,如果是,则转步骤C。
6.如权利要求5所述的双控磁盘阵列中双控制器配置信息同步的方法,其特征在于, 所述步骤C包括C2、将临时虚拟设备链表中所述节点的配置信息同步到当前控制器中的虚拟设备链表中。
7.如权利要求5所述的双控磁盘阵列中双控制器配置信息同步的方法,其特征在于, 在步骤A之前,还包括当主控制器和从控制器初始化虚拟设备配置信息时,设置所述控制同步标志位为1 ; 当主控制器更新虚拟设备配置信息后,设置所述控制同步标志位为0,并向从控制器发 送更新的配置信息;当从控制器根据主控制器发送的消息更新虚拟设备配置信息后,设置所述控制同步标 志位为Io
8.如权利要求4或6所述的双控磁盘阵列中双控制器配置信息同步的方法,其特征在 于,在步骤C之后还包括删除临时虚拟设备链表中所述节点的配置信息。
9.一种双控磁盘阵列中双控制器配置信息同步的装置,其特征在于,所述装置包括 信息读取单元,用于当主控制器失效或被拔出后,读取与物理磁盘对应的虚拟设备上记录的虚拟设备配置信息,建立临时虚拟设备链表;同步判断单元,用于比较所述虚拟设备上记录的虚拟设备配置信息与从控制器上记录 的虚拟设备配置信息,判断配置信息是否需要同步;同步单元,用于当配置信息需要同步时,将虚拟设备上记录的虚拟设备配置信息同步 到从控制器上。
10.如权利要求9所述的双控磁盘阵列中双控制器配置信息同步的装置,其特征在于, 所述同步判断单元包括节点判断子单元,用于判断临时虚拟设备链表中的节点是否存在于当前控制器中的虚 拟设备链表;标志位判断子单元,用于判断虚拟设备的配置信息中控制同步标志位是否为0。
11.如权利要求9或10所述的双控磁盘阵列中双控制器配置信息同步的装置,其特征 在于,所述装置还包括标志位设置单元,用于当主控制器和从控制器初始化虚拟设备配置信息时,设置控制 同步标志位为1 ;当主控制器更新虚拟设备配置信息后,设置控制同步标志位为0 ;当从控 制器更新虚拟设备配置信息后,设置控制同步标志位为1。
全文摘要
本发明公开了一种双控磁盘阵列中双控制器配置信息同步的方法,包括A、当主控制器失效或被拔出后,读取与物理磁盘对应的虚拟设备上记录的虚拟设备配置信息;B、比较所述配置信息与从控制器上记录的虚拟设备配置信息,判断配置信息是否需要同步;C、如果需要同步,则将所述配置信息同步到从控制器上。本发明还公开了一种双控磁盘阵列中双控制器配置信息同步的装置。本发明在主控制器失效或被拔出后,判断配置信息是否需要同步,在需要同步时将虚拟设备上记录的虚拟设备配置信息同步到从控制器上,可以保持控制器与磁盘阵列的配置信息一致,提高了磁盘阵列的可靠性和安全性,并大大降低了控制器切换所需要的时间。
文档编号H04L29/08GK101815099SQ20101015077
公开日2010年8月25日 申请日期2010年4月20日 优先权日2010年4月20日
发明者甘春闰, 陈韵霞 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1