存储系统以及存储控制方法_2

文档序号:9240003阅读:来源:国知局
面或写入面均为存在于缓存区域244的区域(典型地为CS区域)。
[0060]另外,在以下说明中,设为存在以下那样的前提条件。
[0061](I)在控制器#0的缓存区域#0内保存的数据(后述的数据A)被复制到控制器#1的缓存区域#1。
[0062](2)在FE-1/F 210中,不存在能够在写入时和读取时积极地利用的缓冲区域。因此,从主机计算机I发送的写入数据经由FE-1/F 210被发送至存储器244的缓存区域244。此时,在该存储器244中的缓冲区域242中不保存写入数据。
[0063]在以下说明中,将不经由缓冲区域而将写入数据传送至缓存区域244这一情况称为“写入直接传送”。以下,说明在执行写入直接传送时存储系统2从主机计算机I接收到读取请求或写入请求的情况下进行的处理。
[0064]在控制器#0从主机计算机#0接收到写入请求的情况下,CPU#0从缓存区域#0中确保写入数据的保存区域(写入面42a),另外,经由控制器#1,从缓存区域#1中确保保存到写入面42a的数据的复制目的地即保存区域(写入面42b)。
[0065]之后,控制器#0的CPU#0经由FE-1/F#0在写入面42a上保存写入数据。
[0066]存在如下情况:在接收到写入请求的情况下,在写入面42a上已经存在基于其他写入请求(例如,基于指定了同一区域(例如VOL中的区域)的过去的写入请求)的写入数据(以下称为数据A),且数据A为(未生成奇偶校验位的)脏数据(dirty data)。脏数据是指未转储(destage)到存储设备的数据(不存在于存储设备的数据)。
[0067]如果在控制器#0正在从主机计算机#0接收新的写入数据(数据B)的过程中,网络11等路径发生故障,则FE-1/F#0会破坏写入面42a中的脏数据(数据A)(l_l)。也就是说,由数据B覆盖的数据A成为仅使数据A的一部分通过数据B的一部分覆盖而得到的其他数据(以下,称为数据C)。由于未生成与数据A有关的奇偶校验位,因此无法恢复数据A0
[0068]当在脏数据A被数据B破坏的状态下,控制器#1从主机计算机#1接收到将数据A的写入目的地区域设为读取源区域的读取请求时,控制器#1的CPU#1从写入面42b将脏数据A读取到缓冲区域#1,并将其与读取面41a的净数据A统合而从缓冲区域#1将数据A传送至主机计算机#1 (1-2)。此外,在读取请求的地址范围的全部数据存在于写入面42b的情况下,进行从写入面42b直接向主机#1传送的读取直接传送。
[0069]在网络11等路径的故障恢复之后,当在脏数据(数据A)被破坏的状态下,控制器#0从主机计算机#0接收到写入请求时,CPU#0在执行写入请求之前,使用在控制器#1的写入面42b中保存的数据A (未被破坏的脏数据A),将写入面42a的数据C恢复为数据A (即,用写入面42b的数据A来覆盖写入面42a的数据C) (1_3)。
[0070]此时,在CPU#0利用在CPU#1中保存于写入面42b中的数据A而覆盖数据C之后,CPU#0对在缓存区域#0保存的数据A执行该写入请求。
[0071]通过以上处理,在执行写入直接传送时,也将来自主机计算机I的读取/写入请求,根据在缓存区域244内保存的数据的状态,在控制器22之间交换数据,由此能够维持对来自主机计算机I的数据的访问。
[0072]以上为本实施例的概要。以下,详细说明本实施例。
[0073]图2示出实施例的计算机系统的一例。
[0074]计算机系统具有主机计算机1、管理终端12、维护终端23以及存储系统2。
[0075]主机计算机1、管理终端12以及维护终端23经由网络11(例如SAN(Storage AreaNetwork:存储区域网络))与存储系统2的FE-1/F210连接。
[0076]存储系统2具有存储控制装置21和存储设备单元20。存储控制装置21具有控制器22。控制器22具有通信接口、存储设备以及与这些通信接口和存储设备连接的处理器。作为通信接口,例如具有 FE-1/F(Front End Inter/Face:前端接口 ) 210 和 BE-1/F (BackEnd Inter/Face:后端接口)220。作为存储设备,例如具有存储器240。作为处理器,例如具有CPU (Central Processing Unit:中央处理器)230。此外,在图示出的示例中,设为各控制器22具备一个存储器240的结构,但是也可以设为各控制器22具备多个存储器240的结构。
[0077]以确保冗余性的目的,存储控制装置21具备两台控制器22 (控制器#0、#1)。控制器#0和#1相互连接。为了提高存储系统2的可用性,也可以按每个控制器22而准备专用电源,使用该专用电源对各控制器22进行供电。
[0078]FE-1/F210为用于与存在于主机计算机I等的前端处的外部设备进行通信的接口设备。BE-1/F220为用于使控制器22与存储设备单元20进行通信的接口设备。
[0079]存储器240由程序区域241、缓冲区域242、管理表区域243以及缓存区域244构成。此外,两个控制器22所具有的存储器240可以是非易失性存储器也可以是易失性存储器,但是保存脏数据的缓存区域最好通过备用电源等而非易失化。
[0080]在程序区域241中保存读取程序50、写入程序51以及数据传送中断状态恢复程序52等各种控制程序。
[0081]缓冲区域242是在不进行后述的读取直接传送和写入直接传送的情况下在控制器22之间进行数据传送时使用的区域。
[0082]在管理表区域243中保存各种管理表。作为管理表,存在缓冲区域管理表30、V0L管理表31、缓存目录表32、CS区域管理表33、缓存分配管理表34以及队列头35。在后文中详细说明这些管理表。此外,在本实施例中,缓存区域244由多个CS区域构成。
[0083]缓存区域244为对从存储设备单元20向主机计算机I发送的读取数据、从主机计算机I向存储设备单元20发送的写入数据进行缓存的区域。
[0084]CPU230通过执行在存储器240中保存的程序来实现各种功能。在缓存区域244中暂时保存向存储设备单元20写入的数据以及从存储设备单元20读取的数据。
[0085]存储设备单元20具有多个PDEV200。PDEV可以为HDD (Hard Disk Drive:硬盘驱动器),但是也可以是其他种类的存储设备(非易失性存储设备)、例如SSD(Solid StateDevice:固态元件)那样的FM (Flash Memory:闪存)设备。存储设备单元20也可以具有不同种类的TOEV。另外,也可以由RG构成多个同种的TOEV。在RG中,按照规定的RAID水平来保存数据。以下,设为在线VOL中所保存的数据最终被保存到RG。
[0086]当控制器22从主机计算机I接收写入数据时,对由FE-1/F210接收到的写入数据附加保证码。将附加了保证码的数据保存到RG。在传送读取数据时,通过CPU230检查附加到读取数据的保证码。保证码可以由表示数据的保存位置的信息(VOL编号、VOL内的地址等)、确认数据的一贯性的信息(CRC(Cyclic Redundancy Check:循环冗余校验)等)构成。
[0087]图3示出实施例的缓冲区域管理表的一例。
[0088]缓冲区域管理表30为用于管理BS区域的分配的表。缓冲区域管理表30具有分配大小301、CPU分配信息302、分配位图303以及BS区域地址304。BS区域地址304在每个BS区域中均存在。
[0089]分配大小301表示BS区域的大小。
[0090]CPU分配信息302表示由哪一个CPU230来使用缓冲区域242的哪一范围(哪一个BS区域)。CPU分配信息302也可以是缓冲区域242内的区域范围(一个以上的BS区域地址)与CPU230的对应关系。也就是说,也可以预先按每个BS区域来决定所使用的CPU230。通过预先决定这种对应关系,能够期望减少伴随向CPU230分配BS区域或BS区域的释放而产生的负荷(向缓冲区域242的竞争的负载)。另外,在本实施例中,从缓冲区域242分配BS区域这一处理通常通过具有该缓冲区域242的控制器22内的CPU230来进行,但是关于为了保存从其他控制器22传送过来的数据而从缓冲区域242分配BS区域这一处理,通过该其他控制器22内的CPU来进行。也就是说,在本实施例中,可知在CPU分配信息302中,在其他控制器22内的CPU230与BS区域建立有对应的情况下,该BS区域为使用于在控制器22之间传送数据的BS区域。此外,本发明并不限定于此,例如,从缓冲区域242分配BS区域这一处理也可以通过不具有该缓冲区域242的其他控制器内22的CPU230来进行,关于为了保存从其他控制器22传送过来的数据而从缓冲区域242分配BS区域这一处理,也可以通过具有该缓冲区域242的控制器22内的CPU230来进行。
[0091]分配位图303由与多个BS区域分别对应的多个位构成。各位表示与该位对应的BS区域为使用过程中(例如“I”)还是未使用状态(例如“O”)。
[0092]BS区域地址304表示BS区域在缓冲区域242中的地址。
[0093]图4示出实施例的VOL管理表的一例。
[0094]在每个VOL中均存在VOL管理表31。VOL管理表31具有VOL编号311、容量312、状态313、主机路径定义信息列表314、VOL属性315以及存储区域信息316。
[0095]VOL编号311为VOL的识别编号。容量312表示VOL的容量。状态313表示VOL的状态。在VOL的状态中,例如存在正常、关闭以及未使用。
[0096]主机路径定义信息列表314表示用于确定读取/写入请求源的主机计算机I的信息(主机计算机I的名称以及端口特定信息等)以及用于确定读取/写入请求目的地的该VOL的信息(该存储系统2的端口特定信息、LUN(Logical Unit Number:逻辑单元号)等)O
[0097]VOL属性315表示VOL的属性。VOL的属性例如具有在线VOL、RVOL, TPVOL, EVOL以及池VOL等。
[0098]存储区域信息316表示与VOL属性315对应的信息。例如,如果VOL属性315为RVOL,则存储区域信息316可以是与成为该RVOL的基础的RG有关的信息(RAID水平、PDEV数等)。另外,如果是VOL属性315为TPV0L,则存储区域信息316可以是与分配于TPVOL的池有关的信息、及/或虚拟页与实页的对应关系。
[0099]图5至图8示出用于管理缓存区域244的表组。管理缓存区域244的表组包括缓存目录表32、CS区域管理表33、缓存分配管理表34以及队列头35。
[0100]图5示出实施例的缓存目录表32的一例。
[0101]缓存目录表32使用于CPU230检索写入到VOL或从VOL读取的数据在缓存区域244中的保存状态。也就是说,缓存目录表32为对CS区域管理表33的索引。
[0102]缓存目录表32被分割为多个子目录项(subdirectory entry)。另外,缓存区域244由多个CS区域构成,一个子目录项与一个或多个CS区域相关联。
[0103]散列信息321为表示I/O目的地信息的散列值与散列头(hash header)的对应关系的信息。I/o目的地信息为来自主机计算机I的I/O请求内包含的信息,是表示I/O目的地的区域的信息,典型地,包括VOL编号和VOL内的地址。作为散列头的实体,存在表示CS区域管理表33的地址的头指针322和尾指针323。
[0104]也就是说,缓存目录表32管理I/O目的地信息与CS区域的对应关系,相当于检索对于I/o目的地是否已经确保了 CS区域这一处理所使用的索引。在探索到与缓存目录表32的I/O目的地信息的散列值对应的头指针322之处未找到与I/O目的地对应的CS区域管理表33的情况下,意味着未确保CS区域这一情况。另一方面,在探索到与缓存目录表32的I/O目的地信息的散列值对应的头指针322之处找到了与I/O目的地对应的CS区域管理表33的情况下,意味着对于I/O目的地已经确保了 CS区域并且将I/O对象的数据保存到该已经确保的CS区域即可这一情况。
[0105]此外,为了减少与同一散列头连接的CS区域管理表33的最大数并抑制检索时间的延长,也可以根据存储系统2所支持的容量来决定缓存目录表32的大小。
[0106]图
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1