CN102630314B - 具有raid1类型的raid组的存储装置以及向raid1类型的raid组的写入的控制方法 - Google Patents

具有raid1类型的raid组的存储装置以及向raid1类型的raid组的写入的控制方法 Download PDF

Info

Publication number
CN102630314B
CN102630314B CN201080054037.2A CN201080054037A CN102630314B CN 102630314 B CN102630314 B CN 102630314B CN 201080054037 A CN201080054037 A CN 201080054037A CN 102630314 B CN102630314 B CN 102630314B
Authority
CN
China
Prior art keywords
data
write
size
raid group
reading
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
CN201080054037.2A
Other languages
English (en)
Other versions
CN102630314A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of CN102630314A publication Critical patent/CN102630314A/zh
Application granted granted Critical
Publication of CN102630314B publication Critical patent/CN102630314B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2087Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

RAID1类型的RAID组具有一个以上第一存储设备和第二存储设备的对。存储装置从第一存储设备中的、包含写入对象数据的写入目的地的第一存储块群的全部区域中读出数据。存储装置根据写入对象数据和读出的数据即缓冲数据,生成一个以上数据单元,该数据单元由写入对象数据或其副本和缓冲数据部分或其副本构成,是与第一存储块群相同大小的数据。控制器将一个以上的数据单元中的某一个数据单元写入到第一存储设备中的第一存储块群中,并且将一个以上的数据单元中的某一个数据单元写入到第二存储设备中的、与第一存储块群对应且与其大小相同的第二存储块群中。

Description

具有RAID1类型的RAID组的存储装置以及向RAID1类型的RAID组的写入的控制方法
技术领域
本发明涉及存储控制装置,特别是涉及向RAID1类型的RAID(RedundantArray of Independent(or Inexpensive)Disks)组的写入的控制。
背景技术
存储装置(例如磁盘阵列装置)一般具有多个HDD(硬盘驱动器:Hard DiskDrive)和用于控制向多个HDD的访问的控制器(以下将磁盘控制器简称为“DKC”)。在这种存储装置中通常有由多个HDD构成的一个以上的RAID组。DKC按照RAID组的RAID等级访问RAID组。
作为RAID等级,例如有RAID1(专利文献1)。应用了RAID1的RAID组由主HDD和镜像HDD构成。DKC从主装置接收写对象数据,将写对象数据二重化。然后,DKC将二重化后的数据中的一方的数据写入到一方的HDD(以下称为主HDD),将另一方的数据写入到另一方的HDD(以下称为镜像HDD)。
现有技术文献
专利文献
专利文献1:日本特开2009-217519号公报
发明内容
发明要解决的问题
一般来说,HDD提供的存储区域由多个子存储区域(以下称为“块”)构成,以块大小单位将数据写入到HDD中。根据HDD的种类,有时HDD的写入单位的大小与针对HDD的写入对象数据的单位大小不同。
例如,作为HDD有SATA(Serial ATA(Advanced Technology Attachment))-HDD。如图1A所示,SATA-HDD的写入单位(1个块E10的大小)是512B(字节)。如图1B所示,这与来自主装置的一个数据要素D10的大小(512B)相同(来自主装置的写入对象数据由一个以上的数据要素构成,图示的数据要素D10是这些一个以上的数据要素中的一个)。
但是,如图1B所示,DKC从提高可靠性的观点出发,向数据要素D10附加保证码(例如ECC(Error Correcting Code))D11。保证码D11的大小例如是8B(字节)。由此,生成520B的数据集(dataset)D1。因此,DKC写入到SATA-HDD的数据集D1的大小(写入对象数据的单位大小)比SATA-HDD的写入单位的大小(1个块的大小)大8B的量。
因此,数据集D1没有被收纳在SATA-HDD的一个块中,如图2A所示,跨越两个块E10以及E11。
在这种情况下,为了以SATA-HDD的写入单位写入数据,如图2B所示,需要通过对数据集D1附加数据,生成与成为数据集D1的写入目的地的两个块E10以及E11的合计大小相同的数据大小的数据单元F1。为了生成该数据单元F1,DKC进行下面的处理。
(*)DKC将块E10中的、在没有被写入数据集D1的部分存储的开头侧的数据E1读出,将该数据E1附加到数据集D1的开头。
(*)DKC将块E11中的、在没有被写入数据集D1的部分存储的末端侧的数据E2读出,将该数据E2附加到数据集D1的末端。
即,为了生成数据单元F1,从SATA-HDD的读出最多需要2次。这存在提高了DKC以及SATA-HDD的各自的负荷的问题。
并且,在由SATA-HDD构成RAID组,并且RAID等级为RAID1的情况下该问题特别大。这是因为最多两次的读出是针对两个HDD(主HDD和镜像HDD)的各自来进行的。以下进行具体说明。另外,在以下的说明中,为了方便,将为了生成数据单元而读出并附加到数据集的数据称为“附加数据”。
如图3所示,存储装置1A具有RAID组20和DKC10。DKC10具有前端接口装置(FE-IF)11和高速缓冲存储器12。FE-IF是针对主装置30的通信接口装置。RAID组20其RAID等级是RAID1,因此是主HDD21和镜像HDD22的对。HDD21以及22都是SATA-HDD。
如图3的箭头a所示,FE-IF 11从主装置30接收数据要素。该数据要素被存储在高速缓冲存储器12中。DKC10通过对该数据要素附加保证码(例如ECC),生成数据集D1。
然后,DKC10如图3的箭头b1以及b2所示,生成两个数据集D1的副本。即,生成主(master)用数据集D2和镜像(mirror)用数据集D3。
然后,DKC10针对主HDD21以及镜像HDD22的各个进行两次读出,即进行合计四次的读出。具体来说,如图3的箭头c1以及c2所示,DKC10从主HDD21读出附加数据E1以及E2,将读出的附加数据E1以及E2加到主用数据集D2。由此生成主用数据单元F1。
此外,如图3的箭头c3以及c4所示,DKC10从镜像HDD22读出附加数据E3以及E4,并将读出的附加数据E3以及E4加到镜像用数据集D2。由此,生成镜像用数据单元F2。
DKC10如图4的箭头d1所示,将生成的数据单元F1写入主HDD21,并且如图4的箭头d2所示,将生成的数据单元F2写入镜像HDD22。
根据上述的流程,如上所述最多进行四次读出。当数据的读出次数多时,SATA-HDD以及DKC10的双方的负荷变大。于是,存储装置1的处理性能下降。
这种情况并不限于RAID1,对于RAID1类型以外的RAID等级也可能存在。例如在RAID10(也被称为“RAID1+0”)的情况下,在一个RAID组中存在多个主HDD和镜像HDD的组,因此,与RAID1的情况相比,认为上述问题的影响更大。
此外,上述问题不限于SATA-HDD,对于写入单位与作为写入对象的数据的单位大小不同的其它种类的物理存储设备也可能存在。
因此,本发明的目的在于提高写入对象数据的单位大小和构成RAID1类型的RAID组的物理存储设备的写入单位的大小不同的存储装置的处理性能。
用于解决课题的手段
存储装置具备由多个物理存储设备构成的RAID(Redundant Array ofIndependent(or Inexpensive)Disks)组、和按照RAID组的RAID等级来控制向RAID组的数据写入以及从RAID组的数据读出的控制器。RAID组是具有一个以上第一存储设备和第二存储设备的对的RAID1类型的RAID组。写入对象数据的单位大小与存储设备的写入单位的大小不同。存储设备提供的存储区域由多个存储块构成。各存储块的大小与存储设备的写入单位的大小相同。控制器从第一存储设备中的、包含写入对象数据的写入目的地的第一存储块群的全部区域读出数据。控制器根据写入对象数据和作为该读出的数据的缓冲数据生成一个以上数据单元,该数据单元由写入对象数据或者其副本和缓冲数据部分或其副本构成,是与第一存储块群相同大小的数据。控制器将一个以上的数据单元中的某一个数据单元写入第一存储设备中的第一存储块群,并且将一个以上的数据单元中的某一个数据单元写入第二存储设备中的、与第一存储块群对应并与其大小相同的第二存储块群。
写入对象数据,例如可以是对来自主装置的数据附加了其他数据(例如保证码)的数据,也可以是来自主装置的数据本身。主装置是存储装置的外部的装置。
附图说明
图1A是表示构成HDD的一个块的大小的图。图1B是表示DKC写入到HDD的数据集的大小的图。
图2A表示DKC写入到HDD的数据集的大小比一个块的大小大。图2B是用于说明为了生成与两个块的合计大小相同大小的数据单元而进行的现有处理的图。
图3表示针对RAID1的RAID组的现有的写入处理的一部分。
图4表示上述现有的写入处理的剩余部分。
图5表示在本发明的一个实施例中针对RAID1的RAID组进行的写入处理的第一部分。
图6表示本实施例的上述写入处理的第二部分。
图7表示本实施例的上述写入处理的第三部分。
图8表示本实施例的上述写入处理的剩余部分。
图9表示本实施例的计算机系统的结构。
图10A表示段和段表的关系。图10B表示段表的结构。
图11是表示当将连续的多个520B的高速缓冲存储块和连续的多个512B的SATA块并排排列时每32kB边界一致的图。
图12A表示段群W中的段群W中的中间脏数据的配置的第一例。图12B表示段群W中的段群W中的中间脏数据的配置的第二例。图12C表示段群W中的中间脏数据的配置的第三例。图12D表示段群W中的中间脏数据的配置的第四例。图12E表示段群W中的中间脏数据的配置的第五例。
图13A表示与图12A所示的例子对应的缓冲数据读出。图13B表示与图12B所示的例子对应的缓冲数据读出。图13C表示与图12C所示的例子对应的缓冲数据读出。图13D表示与图12D所示的例子对应的缓冲数据读出。图13E表示与图12E所示的例子对应的缓冲数据读出。
图14是表示本实施例的针对RAID1的RAID组的写入处理流程的一部分的流程图。
图15是表示本实施例的所述写入处理的剩余部分的流程图。
图16表示图14以及图15的流程图的步骤401~411中的各步骤的段表。
图17表示图12的流程图的步骤412~416中的各步骤的段表。
图18是高速缓存间复制的说明图。
具体实施方式
以下说明本发明的一个实施例。此外,在实施例中为了容易理解说明而采用了下述的例子。
(*)物理存储装置是HDD。控制器是用于控制对HDD的访问的磁盘控制器(以下称为DKC)。
(*)RAID组的RAID等级是RAID1。RAID组是主HDD以及镜像HDD的对。
(*)主HDD以及镜像HDD各自是SATA-HDD。
(*)将构成由SATA-HDD提供的存储区域的各子存储区域称为“块”。
(*)块的大小是512B(字节)。
(*)构成由DKC从主装置接收到的数据的各数据要素的大小是512B(字节)。数据要素的大小是从主装置提供给存储装置的数据的最小的大小。
(*)保证码(例如ECC(Error Correcting Code)的大小是8B(字节)。
在本实施例中,在针对RAID1的RAID组的写入处理中,可以不需要从主HDD以及镜像HDD中的一方的数据的读出,并且能够将从RAID组的数据的读出的次数设为最多1次。以下,参照图5~图8说明该写入处理的概要。此外,在以下的说明中,设本实施例的存储装置1B内的DKC100具有高速缓冲存储器120,高速缓冲存储器120由多个段(segment)构成,将存储与主装置300交换的数据的段的属性称为写入(write)面(以下称为W面),将存储与主HDD210以及镜像HDD220交换的数据的段的属性称为读出(read)面(以下称为R面)。此外,假设DKC100从主装置300接收到的数据由一个数据要素构成。
首先,DKC100如图5的箭头a01所示,从主装置300接收写入请求以及该写入要求所附带的数据要素D21。DKC100如箭头a10所示,将来自主装置300的数据要素D21存储在段中(存储了数据要素D21的段的属性成为W面)。然后,DKC100如图5的箭头a02所示,向主装置300发送应答(例如写入结束)。
然后,DKC100对所存储的数据要素D21追加保证码(例如ECC((ErrorCorrecting Code))D22,生成数据集D20。数据集D20的大小是520B(521B+8B)。数据集D20是作为写入对象的数据。
然后,DKC100如图5的箭头b10所示,从主HDD210(或者镜像HDD220)中的、包含数据集D20的写入目的地的块群(在此为两个块)的全部区域中读出数据E20,将该数据E20存储到段中(存储了数据E20的段的属性成为R面)。从HDD的数据的读出仅为这一次。以下,将从HDD读出到高速缓冲存储器120的数据称为“缓冲数据(staging data)”。
然后,DKC100如图6的箭头c10所示,将数据集D20写入到缓冲数据E20上,并且如图6的箭头c11所示,将数据集D20复制到其他段。根据图6,为了区别原始数据集D20和数据集D20的副本,对作为数据集D20的副本的数据集分别赋予参照符号D30、D40。存储了数据集D40的段的属性成为R面。因为是与HDD交换数据集D40。
通过在缓冲数据E20上重写数据集D20而生成的数据单元F10是主HDD210用的数据。DKC100如图7的箭头d10以及d11所示,将数据单元F10中的缓冲数据部分E21以及E22加到数据集D40中。由此生成镜像HDD220用数据单元F20。数据单元F20是与数据单元F10一致的数据。
然后,DKC100如图8的箭头e10所示,将数据单元F10写入主HDD210,如图8的箭头e11所示,将数据单元F20写入镜像HDD220。
如上所述,在按照本实施例的对RAID1的RAID组的写入处理中,不需要从主HDD210以及镜像HDD22中的一方读出数据,并且从RAID组200的数据的读出次数最多为一次即可。
在上述的写入处理中,数据单元F20可以是数据单元F10的副本,但是理想的是如上述那样进行生成。这是因为在复制数据单元F10时发生任何故障的情况下,生成的数据单元F20有可能成为与数据单元F10不同的数据。
此外,在上述的写入处理中,缓冲数据E20(读出源的块群)的大小是数据集D1的大小以上,并且是SATA-HDD的写入单位的大小的倍数即可,但是优选是在该范围内最小的大小。这是为了抑制高速缓冲存储器120的消耗。在上述的例子中,数据集D1是512B,因此缓冲数据E20的大小优选是1024B(512B×2)。数据单元F10以及F20的大小优选与缓冲数据E20的大小相同。数据单元F10的写入目的地是缓冲数据E20的读出源的块群。数据单元F20的写入目的地是与读出源的块群对应的块群(例如是与读出源的块群相同地址的块群)。
然后,参照图9~图18(根据需要也参照图5~图8)详细说明本实施例。
图9表示具有本实施例的存储装置1B的计算机系统的结构。
存储装置1B具备二重化的DKC100、HDD群900。在存储装置1B上连接了作为存储装置1B的外部装置的一种的、用于发行I/O(Input/Output)请求的主装置300。
DKC100具有FE-IF(前端接口装置)110、高速缓冲存储器120、CPU130、本地存储器140和BE-IF(后端接口装置)150。
FE-IF110以及BE-IF150是用于DKC100与外部的装置进行数据等的交换的通信接口装置。FE-IF110与主装置300通信,BE-IF150与HDD通信。高速缓冲存储器120是用于临时存储读写到HDD的数据的存储器。高速缓冲存储器120彼此共享一部分数据。本地存储器140存储控制所需的信息(以下称为管理信息)、计算机程序。CPU130执行本地存储器140存储的程序,根据管理信息进行存储装置1B的控制。
由HDD群900构成一个以上的RAID组。至少一个RAID组是RAID组200,即RAID1的RAID组。此外,本发明不限于RAID1,也可以应用于数据被二重化地写入的类型的其它种类的RAID等级(即RAID1类型以外的种类的RAID等级)。
图10A表示高速缓冲存储器120的结构和本地存储器140存储的信息。
高速缓冲存储器120由多个段121构成。
本地存储器140存储多个段表(以下称为SG表)141。段121和SG表141一一对应。SG表141具有与其对应的段121相关的信息。此外,也可以代替针对每个段121具有SG表141,而由一个表具有多个记录,各记录与一个段121对应。此外,与多个段121相关的信息可以表现为表以外的形式。
图10B表示若干SG表141的结构。
SG表141例如具有下述信息。此外,在参照图10B的说明中着眼于一个SG表141,并且将与该SG表141对应的段称为“对象段”。
(*)数据140a是表示存储在对象段121中的数据的属性的信息,
(*)数据140b是表示在对象段121内的哪个位置存在数据(具体来说,对象段120内的从哪里到哪里是针对HDD的输入输出对象数据)的信息,
(*)队列140c是表示管理对象段121的队列的信息,
(*)属性140d是表示对象段121的属性的信息,
(*)标志140e是表示对象段121内的数据是否存在于与具有该对象段121的高速缓冲存储器120不同的别的高速缓冲存储器120中的信息。
作为数据140a的值(换言之,对象段121内的数据),有“中间脏数据”、“缓冲数据”、“物理脏数据”。“中间脏数据”是存在于高速缓冲存储器120中而不存在于HDD中的数据(脏数据)的一种,是还没有被写入到HDD的状态的数据。具体来说,“中间脏数据”例如是所述数据集(512B的数据要素和8B的保证码的集合)。“缓冲数据”如前所述,是从HDD被读出到高速缓冲存储器120的数据。“物理脏数据”是脏数据的一种,是写入到HDD的良好的状态的数据。
在本实施例中所说的“队列”虽然未图示,但是例如是多个条目(entry)按照预定的顺序排列的信息。各条目与段对应,具有与对应的段有关的信息。条目的顺序例如是新存储了数据的时刻的顺序。在本实施例中,作为队列例如有中间脏队列、干净队列、空闲(free)队列、物理脏队列。中间脏队列由存储了中间脏数据的段所对应的条目构成。干净队列由存储了干净数据的段所对应的条目构成。作为干净数据的一种,有缓冲数据。空闲队列由空闲的段所对应的条目构成。物理脏队列由存储了物理脏数据的段所对应的条目构成。
关于标志140e,开(ON)(例如“1”)表示在别的高速缓冲存储器120中也存在对象段121内的数据,关(OFF)(例如“0”)表示在别的高速缓冲存储器120中不存在对象段121内的数据。
在写入处理中,从高速缓冲存储器120中确保段群(一个以上的段),向所确保的段群中写入数据,但是所确保的段群的大小是写入对象数据的单位大小和SATA-HDD的写入单位的大小的公倍数,优选是最小公倍数。具体来说,写入对象数据的单位大小是520B,SATA-HDD的写入单位的大小是512B,因此,所确保的段群的大小是520B和512B的最小公倍数、即32kB(千字节)。因此。例如如果段的大小是4kB,则确保8个段,如果段的大小是8kB,则确保4个段(以下假设段的大小是8kB)。
如上所述,通过确保32kB(最小公倍数的大小)的段群并以段群单位进行处理,能够期待不需要从HDD读出缓冲数据的情形(即能够将读出次数设为0)。关于这点,参照图11进行详细说明。
如图11所示,各段由多个520B的高速缓冲存储块构成。在一个高速缓冲存储块中存储520B的数据集(512B的数据要素和8B的保证码的集合)。
在假设将连续的多个高速缓冲存储块和连续的多个SATA块(SATA-HDD的块)开头对齐来进行排列的情况下,每32kB高速缓冲块的边界和SATA块的边界一致。
此外,32kB是作为SATA-HDD的写入单位的大小的512B的倍数。因此,在作为写入对象的数据的大小是32kB的情况下,能够按照SATA-HDD的写入单位写入作为写入对象的数据。
因此,如果将数据集(520B的中间脏数据)存储到32kB的量的全部的高速缓冲存储块中(即如果从32kB的段群的开头到末端,中间脏数据连续),则作为写入对象的数据是32kB的数据(由连续的64个数据集构成的数据),因此,能够不从HDD读出缓冲数据地完成写入处理。
如上所述,如果以32kB单位来确保段群,则能够期待不需要从HDD的读出的情况。此外,所确保的段群的大小可以是32kB以外的512B和520B的公倍数,但是从抑制高速缓冲存储器120的消耗的观点出发,优选是最小公倍数。
以下,参照图12A~图12F以及图13A~图13F,说明32kB的段群中的数据集的配置例和缓冲数据的范围的关系。此外,在图12A~图12F以及图13A~图13F中画阴影线的对象表示中间脏数据(一个以上的数据集),用灰色涂抹的对象表示缓冲数据或其一部分。
根据图12A所示的例子,在32kB的段群的全部区域中存在连续的中间脏数据D200。在这种情况下,如上所述,因为不需要读出缓冲数据,所以不读出缓冲数据(参照图13A)。根据该例,连续的中间脏数据D200是写入到HDD的数据单元F200。
根据图12B以及图12C所示的例子,连续的中间脏数据在段群的开头以及末端的一方的边界处重合,但是在另一方的边界不重合。具体来说,根据图12B所示的例子,连续的中间脏数据D210在段群的末端的边界处不重合,但是在该段群的开头的边界处重合。在这种情况下,读出比连续的中间脏数据D210大的大小的缓冲数据E210(参照图13B),生成写入到HDD的数据单元F210,但是,在该数据单元F210中成为在连续的中间脏数据D220的末端附加了缓冲数据部分E211的状态。此外,根据图12C所示的例子,连续的中间脏数据D220在32kB的段群的开头的边界处不重合,但是在该段群的末端的边界处重合。在这种情况下,读出比连续的中间脏数据D220大的大小的缓冲数据E220(参照图13C),生成写入到HDD的数据单元F220,但是在该数据单元F220中成为在连续的中间脏数据D220的开头附加了缓冲数据部分E221的状态。
根据图12D所示的例子,连续的中间脏数据D230在段群的开头以及末端的任意边界都不重合。在这种情况下,读出比连续的中间脏数据D230大的大小的缓冲数据E230(参照图13D),生成写入到HDD的数据单元F230,但是在该数据单元F230中成为在连续的中间脏数据D230的开头以及末端附加了缓冲数据部分E231以及E232的状态。
根据图12E以及图12F所示的例子,在段群中中间脏数据成为不连续。在这种情况下,不针对每个中间脏数据读出比中间脏数据大的缓冲数据,而是读出从开头的中间脏数据的开头到末端的中间脏数据的末端的范围以上的大小的缓冲数据。这是为了将读出次数设为最多一次。因此,根据图12E的例子,读出比从开头的中间脏数据D240的开头到末端的中间脏数据D241的末端的范围大的缓冲数据E240(参照图13E)。根据中间脏数据240以及D241和缓冲数据E240,生成写入到HDD的数据单元F240。此外,根据图12F的例子,开头的中间脏数据D250的开头与段群的开头的边界一致,末端的中间脏数据D252的末端与段群的末端的边界一致。因此,读出32kB的缓冲数据E250(参照图13F)。根据中间脏数据D250、D251以及D252和缓冲数据E250生成写入到HDD的数据单元F241。如此,在段群中中间脏数据不连续的情况下,读出从开头的中间脏数据的开头到末端的中间脏数据的末端的范围以上的大小的缓冲数据。在写入到HDD的数据单元F240、F250中,成为用缓冲数据部分填满中间脏数据的状态。
构成上述的段群(32kB)的四个段(8kB)在高速缓冲存储器120中未必连续。例如可以确保在高速缓冲存储器120中分散的四个段作为段群。
然后,参照图14~图17,说明针对RAID1的RAID组的写入处理中的中间汇总写入处理的详细的流程。中间汇总写入处理是生成数据集(来自主装置300的数据要素(512B)和保证码(8B)的组)后直到将数据单元写入到HDD的处理。
图14以及图15表示中间汇总写入处理的流程。此外,以下为了容易理解说明,将存储在一个W面的段中的中间脏数据作为写入对象。
CPU130针对多个中间脏队列的各个中间脏队列检查中间脏数据的量,决定将哪个中间脏队列作为处理对象(步骤401)。例如将判断为中间脏数据的量最多的中间脏队列(例如具有最多条目的中间脏队列)决定为处理对象。中间脏队列,例如位于每个预定单位(例如每个HDD、或者每个逻辑分割高速缓冲存储器120所得的区域(分区))中。
然后,CPU130确定通过在步骤401决定的中间脏队列管理的中间脏数据中的、最以前存储在高速缓冲存储器120中的中间脏数据(步骤402)。存储在此确定的中间脏数据的段#1所对应的SG表#1,在步骤401阶段如图16的行#1所示那样,在步骤402阶段如图16的行#2所示那样。
然后,CPU130确保包含段#1的32kB的段群(步骤403)。以下将在此确保的段群表记为“段群W”。对所确保的段群W进行排他控制使得不写入数据。在该阶段的SG表#1如图16的行#3所示那样。构成段群W的其它的段可以是任何的段。例如可以是存储了在步骤402中没有被确定的中间脏数据的段。此外,在成为写入对象的中间脏数据的大小大于32kB的情况下,可以确保2个以上的32kB的段群。
然后,CPU130将表示物理脏预约数的信息例如登录到本地存储器140中(步骤404)。具体来说,CPU130将中间脏段(在段群W中存储了中间脏数据的段)的数量的两倍的值设为物理脏预约数。将中间脏段的数量设为两倍的理由是:包含中间脏数据的副本的数据单元即将被作为物理脏数据管理、以及生成两个中间脏数据的副本(关于主HDD210和镜像HDD220两者而生成)。CPU130对物理脏预约数和已经存在物理脏数据的段的数进行合计,在其合计超过一定值的情况下可以中止生成物理脏数据的动作。此外,该步骤404中的SG表#1如图16的行#4所示那样。
然后,CPU130判定写入对象的中间脏数据的写入目的地的RAID组的RAID等级(步骤405)。该步骤405中的SG表#1如图16的行#5所示那样。
在RAID等级不是RAID1类型的情况下(步骤405:否),CPU130按照RAID等级处理中间脏数据(步骤406)。
在RAID等级是RAID1类型的情况下(步骤405:是),CPU130判断是否需要缓冲数据(步骤407)。该步骤407中的SG表#1如图16的行#6所示那样。
步骤407的判断的结果,如果连续的中间脏数据占据了段群W的全部区域(参照图12A),则成为否定(步骤407:否),除此以外成为肯定(步骤407:是)。
CPU130在需要缓冲数据的情况下(步骤407:是),从高速缓冲存储器120中确保用于存储缓冲数据的段群(以下称为段群R1)(步骤408)。该步骤408中的SG表#1如图16的行#7所示那样。在行#7中除了SG表#1外,还表示了段群R1中的一个段#2所对应的SG表#2(步骤408中的SG表#2)。此外,CPU130在无法确保段群R1的情况下,中止缓冲数据的读出。
然后,CPU130根据中间脏数据的状态决定主HDD210(或者镜像HDD220)中的作为缓冲数据的读出源的SATA块群,从所决定的SATA块群的全部区域中将缓冲数据读出到段群R1中(步骤409)。中间脏数据的状态(例如图12A~图12F所例示的状态)能够根据段群W所对应的多个SG表中的映像140b进行判别。此外,作为读出源的SATA块群是包含中间脏数据的写入目的地的SATA块群。此外,作为读出源的SATA块群的大小是中间脏数据的大小以上的范围内的最小的大小(但是,SATA块的大小的倍数)。在该步骤409中,SG表#1以及#2如图16的行#8所示那样。具体来说,缓冲数据通过二重化的DKC100的双方的高速缓冲存储器120来保持,因此标志140e成为“1”。
CPU130判定段群W内的中间脏数据是否连续(步骤410)。在该步骤410中的SG表#1以及#2是如图16的行#9所示那样。
在中间脏数据不连续的情况下(步骤410:否),CPU130进行高速缓存间复制(图15的步骤411)。具体来说,如图18所示,CPU130通过缓冲数据部分填满中间脏数据间地、将段群R1中的缓冲数据部分复制到段群W。由此,能够获得用于从段群W向后述的段群R2的复制的连续的数据。此外,该步骤411中的SG表#1以及#2是如图16的行#10所示那样。
CPU130判定缓冲数据部分是否被正常地复制到段群W中(步骤412)。该步骤410中的SG表#1以及#2如图16的行#11所示那样。
CPU130在正常地进行了高速缓存间复制的情况下(步骤412:是)进行步骤413以后的步骤。一方面,CPU130在没有正常地进行高速缓存间复制的情况下(步骤412:否)进行步骤417。在步骤417中,CPU130将复制失败的数据存储到预定的保存区域(例如非易失性的存储区域)。该保存区域内的数据可以在以后通过CPU130再执行复制(数据单元的生成)(即,可以从保存区域向段群W、R1或R2复制数据)。保存区域可以由DKC具有,也可以使用HDD的一部分。
在正常地进行了高速缓存间复制的情况下(步骤412:是),CPU130从高速缓冲存储器120中确保镜像HDD用的段群(以下称为段群R2)(步骤413)。在该步骤413中的SG表#1以及#2是图17的行#12所示那样。在行#12中,除了SG表#1以及#2外,还表示了段群R2中的一个段#3所对应的SG表#3(步骤413中的SG表#3)。此外,CPU130在无法确保段群R2的情况下,中断处理,或者可以为了增加空闲的段而进行将物理脏数据写入到HDD的处理等。
CPU130生成用于写入到主HDD210的数据单元和用于写入到镜像HDD220的数据单元(步骤414)。该步骤414中的SG表#1~#3是图14的行#13所述那样。此外,映像140b的“脏映像+”表示通过SG表#2以及#3管理的数据相同。
在步骤414中例如进行下述的处理。
(*)CPU130在段群R1内的缓冲数据上重写段群W内的连续数据,并且将连续数据复制到段群R2。由此,在段群R1中生成主HDD210用的数据单元(以下称为主数据单元),并且在段群R2中存在连续数据。此外,作为段群W内的连续数据,可以是由连续的中间脏数据构成的数据,也可以是由不连续的中间脏数据和缓冲数据部分构成的数据。
(*)CPU130将段群R1内的缓冲数据部分(缓冲数据中未重写连续数据的部分)复制到段群R2。由此,在段群R2中生成镜像HDD220用的数据单元(以下称为镜像数据单元)。
CPU130判断是否正常进行了主数据单元或者镜像数据单元的生成(步骤415)。该步骤414中的SG表#1~#3如图14的行#14所示那样。
CPU130在主数据单元以及镜像数据单元中的至少一方没有被正常进行的情况下(步骤415:否),进行上述的步骤417的处理。
CPU130在正常进行了主数据单元以及镜像数据单元的生成的情况下(步骤415:是),将主数据单元以及镜像数据单元的各自的属性迁移为物理脏数据(步骤416)。具体来说,例如CPU130通过物理脏队列来管理存储了主数据单元的一个以上的段或存储了镜像数据单元的一个以上的段。此外,该步骤416中的SG表#1~#3如图14的行#15所示那样。
之后,CPU130释放段群W(步骤418)。由此,构成段群W的各段被作为空闲的段来管理。能够确保空闲的段。在该步骤418中的SG表#1~#3如图14的行#16所示那样。根据行#16的SG表#1,将被释放的段群W中的段#1作为空闲的段来管理。
以上是中间汇总写入处理的流程。在该中间汇总写入处理之后,CPU130将主数据单元(物理脏数据)写入主HDD210,并且将镜像数据单元(物理脏数据)写入镜像HDD220。
根据本实施例,在针对RAID1的RAID组的写入处理中,不需要从主HDD以及镜像HDD的一方读出缓冲数据,并且能够将读出次数设为最多1次。由此,能够减轻HDD以及DKC100双方的负荷。
以上说明了本发明的一个实施例,但是,本发明并不限于该实施例,在不脱离其宗旨的范围内当然可以进行各种变更。
例如,在段群W的全部区域被连续的中间脏数据占据的情况下,将段群W内的中间脏数据作为物理脏数据来管理,之后,可以将该物理脏数据写入主HDD(或者镜像HDD)。或者可以确保段群R1,进行从段群W向段群R1的数据复制,将段群R1内的数据作为物理脏数据来管理,之后,将物理脏数据写入主HDD(或者镜像HDD)。
符号说明
1B存储装置

Claims (14)

1.一种存储装置,与主装置连接,其特征在于,
具备:
由多个物理的存储设备构成的RAID组;以及
按照所述RAID组的RAID等级来控制向所述RAID组的数据的写入以及从所述RAID组的数据的读出的控制器,所述控制器具有暂时存储写入所述RAID组或者从所述RAID组读出的数据的高速缓冲存储器,
所述RAID组是具有一个以上第一存储设备和第二存储设备的对的RAID1类型的RAID组,
所述高速缓冲存储器具有多个段,
作为段的属性,具有写入面和读出面,
所述写入面是表示存储与所述主装置交换的数据的段的属性,
所述读出面是表示存储与所述RAID组交换的数据的段的属性,
写入对象数据的单位大小大于所述存储设备的写入单位的大小,
所述存储设备提供的存储区域由多个存储块构成,
各存储块的大小与所述存储设备的写入单位的大小相同,
所述控制器,
(A)将来自所述主装置的数据要素写入第一写入面段,对所述第一写入面段中的所述数据要素附加保证码,由此生成写入对象数据,并且从所述第一存储设备中的包含所述写入对象数据的写入目的地的第一存储块群的全部区域,通过一次读出将数据读出到第一读出面段,
(B)从所述第一写入面段将所述写入对象数据复制到在所述(A)中读出到所述第一读出面段的数据即缓冲数据中,由此生成第一数据单元,并且从所述第一写入面段将所述写入对象数据复制到第二读出面段,
将所述第一读出面段中的缓冲数据部分的副本附加到所述第二读出面段中的写入对象数据上,由此生成第二数据单元,所述第一以及第二数据单元的各自的大小与所述第一存储块群的大小相同,所述缓冲数据部分是所述缓冲数据与所述写入对象数据的差,
(C)将所述第一以及第二数据单元中的一方写入所述第一存储设备中的所述第一存储块群,并且将所述第一以及第二数据单元中的另一方写入所述第二存储设备中的、与所述第一存储块群对应并且与其大小相同的第二存储块群。
2.根据权利要求1所述的存储装置,其特征在于,
所述第一存储块群是连续的多个存储块,
所述连续的多个存储块分别具有所述写入对象数据的写入目的地区域的至少一部分。
3.根据权利要求1所述的存储装置,其特征在于,
所述高速缓冲存储器由多个高速缓存块构成,
各高速缓存块的大小是所述写入对象数据的单位大小,
在所述(A)中,所述控制器从所述高速缓冲存储器中确保第一高速缓存区域,该第一高速缓存区域包含存储了所述写入对象数据的一个以上的高速缓存块,
在所述(A)中,所述控制器从所述高速缓冲存储器中确保第二高速缓存区域,
在所述(A)中,所述控制器在所述第二高速缓存区域中读出所述缓冲数据,
在所述(B)中,所述控制器确保第三高速缓存区域,
在所述(B)中,所述控制器通过将所述第一高速缓存区域内的所述写入对象数据复制到所述第二高速缓存区域来生成所述第一数据单元,
在所述(B)中,所述控制器通过将所述第二高速缓存区域内的所述缓冲数据部分复制到所述第三高速缓存区域来生成所述第二数据单元,
各高速缓存区域由两个以上的高速缓存块构成,
各高速缓存区域的大小是所述存储块的大小和所述高速缓存块的大小的最小公倍数。
4.根据权利要求3所述的存储装置,其特征在于,
在所述第一高速缓存区域的全部区域被连续的所述写入对象数据占据的情况下,所述控制器不进行所述缓冲数据的读出,
所述第一数据单元以及所述第二数据单元是所述写入对象数据的副本。
5.根据权利要求3所述的存储装置,其特征在于,
在所述第一高速缓存区域中存在不连续的所述写入对象数据的情况下,所述第一存储块群的大小是从所述第一高速缓存区域中的开头的写入对象数据的开头到所述第一高速缓存区域中的末端的写入对象数据的末端为止的范围以上的大小。
6.根据权利要求5所述的存储装置,其特征在于,
在所述(B)中,所述控制器从所述第二高速缓存区域向所述第一高速缓存区域复制缓冲数据部分,以便通过在所述第一高速缓存区域中的写入对象数据间填满缓冲数据部分来生成连续数据,
所述连续数据由不连续的所述写入对象数据和所述缓冲数据部分构成,
在所述(B)中,所述控制器通过将所述连续数据复制到所述第二高速缓存区域来生成所述第一数据单元,
在所述(B)中,所述控制器将所述连续数据复制到所述第三高速缓存区域。
7.根据权利要求3所述的存储装置,其特征在于,
具有作为保存数据的存储区域的保存区域,
所述控制器,在没有正常生成所述第一或第二数据单元的情况下,将在该生成中使用的数据暂时写入所述保存区域,
所述控制器将所述保存区域内的数据复制到所述第二以及第三高速缓存区域中的、存储了没有正常生成的数据单元的高速缓存区域中。
8.根据权利要求3所述的存储装置,其特征在于,
所述写入对象数据的单位大小是来自主机装置的数据和保证码的数据集的大小,
所述存储设备是SATA-HDD。
9.根据权利要求1所述的存储装置,其特征在于,
所述第一存储块群的大小是所述写入对象数据以上的范围中最小的大小。
10.根据权利要求1所述的存储装置,其特征在于,
在所述写入对象数据是连续的数据,并且其大小是所述写入对象数据的单位大小和所述存储设备的写入单位的大小的公倍数的情况下,所述控制器不进行所述缓冲数据的读出,
所述数据单元是所述写入对象数据的副本。
11.根据权利要求1所述的存储装置,其特征在于,
在预定的范围中所述写入对象数据不连续的情况下,所述第一存储块群的大小是从所述预定的范围中的开头的写入对象数据的开头到所述预定范围中的末端的写入对象数据的末端为止的范围以上的大小。
12.根据权利要求11所述的存储装置,其特征在于,
在所述(B)中,所述控制器复制缓冲数据部分,以便通过在所述预定范围中的写入对象数据间填满缓冲数据部分来生成连续数据,
所述连续数据由不连续的所述写入对象数据和所述缓冲数据部分构成,
在所述(B)中,所述控制器通过将所述连续数据写入所述缓冲数据上来生成所述第一数据单元,
在所述(B)中,所述控制器生成所述连续数据的副本,并且对该连续数据的副本附加所述第一数据单元中的缓冲数据部分,由此生成所述第二数据单元,
在所述(C)中,所述控制器将所述第一以及第二数据单元的一方写入所述第一存储块群,将所述第一以及第二数据单元的另一方写入所述第二存储块群。
13.根据权利要求1所述的存储装置,其特征在于,
具有作为保存数据的存储区域的保存区域,
所述控制器在没有正常地生成所述数据单元的情况下,将该生成中使用的数据暂时写入所述保存区域,
所述控制器使用所述保存区域内的数据来生成数据单元。
14.一种向RAID1类型的RAID组的写入的控制方法,用于与主装置连接的存储装置,该存储装置具备:由多个物理的存储设备构成的RAID组;以及按照所述RAID组的RAID等级来控制向所述RAID组的数据的写入以及从所述RAID组的数据的读出的控制器,所述控制器具有暂时存储写入所述RAID组或者从所述RAID组读出的数据的高速缓冲存储器,
所述RAID组是具有一个以上第一存储设备和第二存储设备的对的RAID1类型的RAID组,
所述高速缓冲存储器具有多个段,
作为段的属性,具有写入面和读出面,
所述写入面是表示存储与所述主装置交换的数据的段的属性,
所述读出面是表示存储与所述RAID组交换的数据的段的属性,
写入对象数据的单位大小大于所述存储设备的写入单位的大小,
所述存储设备提供的存储区域由多个存储块构成,
各存储块的大小与所述存储设备的写入单位的大小相同,
该控制方法的特征在于,
所述控制器,
将来自所述主装置的数据要素写入第一写入面段,对所述第一写入面段中的所述数据要素附加保证码,由此生成写入对象数据,并且从所述第一存储设备中的包含所述写入对象数据的写入目的地的第一存储块群的全部区域,通过一次读出将数据读出到第一读出面段,
从所述第一写入面段将所述写入对象数据复制到被读出到所述第一读出面段的数据即缓冲数据中,由此生成第一数据单元,并且从所述第一写入面段将所述写入对象数据复制到第二读出面段,
将所述第一读出面段中的缓冲数据部分的副本附加到所述第二读出面段中的写入对象数据上,由此生成第二数据单元,所述第一以及第二数据单元的各自的大小与所述第一存储块群的大小相同,所述缓冲数据部分是所述缓冲数据与所述写入对象数据的差,
将所述第一以及第二数据单元中的一方写入所述第一存储设备中的所述第一存储块群,并且将所述第一以及第二数据单元中的另一方写入所述第二存储设备中的、与所述第一存储块群对应并且与其大小相同的第二存储块群。
CN201080054037.2A 2010-03-08 2010-03-08 具有raid1类型的raid组的存储装置以及向raid1类型的raid组的写入的控制方法 Active CN102630314B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/001616 WO2011111089A1 (ja) 2010-03-08 2010-03-08 Raid1系のraidグループを有するストレージ装置、及び、raid1系のraidグループへの書込みの制御方法

Publications (2)

Publication Number Publication Date
CN102630314A CN102630314A (zh) 2012-08-08
CN102630314B true CN102630314B (zh) 2015-01-07

Family

ID=44562940

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080054037.2A Active CN102630314B (zh) 2010-03-08 2010-03-08 具有raid1类型的raid组的存储装置以及向raid1类型的raid组的写入的控制方法

Country Status (5)

Country Link
US (1) US8667218B2 (zh)
EP (1) EP2515223A4 (zh)
JP (1) JP5438820B2 (zh)
CN (1) CN102630314B (zh)
WO (1) WO2011111089A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9760293B2 (en) 2013-03-07 2017-09-12 Seagate Technology Llc Mirrored data storage with improved data reliability
KR20230132529A (ko) 2021-01-25 2023-09-15 볼루메즈 테크놀로지스 엘티디. 운영 시스템 기반 스토리지 방법 및 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1773443A (zh) * 2004-11-08 2006-05-17 富士通株式会社 盘阵列装置、数据恢复方法和计算机产品
CN100472422C (zh) * 2004-12-17 2009-03-25 富士通株式会社 具有双重写入功能的装置和存储控制装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3078972B2 (ja) * 1993-11-05 2000-08-21 富士通株式会社 ディスクアレイ装置
US6959373B2 (en) * 2001-12-10 2005-10-25 Incipient, Inc. Dynamic and variable length extents
JP2005135065A (ja) * 2003-10-29 2005-05-26 Hitachi Ltd 記憶デバイス制御装置、及び記憶デバイス制御装置の制御方法
JP4497957B2 (ja) * 2004-03-05 2010-07-07 株式会社日立製作所 記憶制御システム
US7346733B2 (en) * 2004-09-09 2008-03-18 Hitachi, Ltd. Storage apparatus, system and method using a plurality of object-based storage devices
US7873782B2 (en) * 2004-11-05 2011-01-18 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method
DE602004029480D1 (de) * 2004-11-24 2010-11-18 Fujitsu Ltd Vorrichtung mit doppelter Schreibfunktion und Speichersteuerungsvorrichtung
US7711897B1 (en) * 2005-06-10 2010-05-04 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for improving disk array performance
JP5089901B2 (ja) * 2006-03-28 2012-12-05 株式会社日立製作所 記憶制御装置及び記憶制御装置の制御方法
US7653832B2 (en) * 2006-05-08 2010-01-26 Emc Corporation Storage array virtualization using a storage block mapping protocol client and server
JP2008046986A (ja) * 2006-08-18 2008-02-28 Hitachi Ltd ストレージシステム
JP5037952B2 (ja) * 2007-01-15 2012-10-03 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
JP5031392B2 (ja) 2007-02-13 2012-09-19 株式会社日立製作所 記憶制御装置及びストレージシステム
JP4977583B2 (ja) * 2007-11-22 2012-07-18 株式会社日立製作所 記憶制御装置及び記憶制御装置の制御方法
JP5353030B2 (ja) 2008-03-10 2013-11-27 日本電気株式会社 ディスクアレイシステム
US20100070733A1 (en) * 2008-09-18 2010-03-18 Seagate Technology Llc System and method of allocating memory locations
US8510497B2 (en) * 2009-07-29 2013-08-13 Stec, Inc. Flash storage device with flexible data format

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1773443A (zh) * 2004-11-08 2006-05-17 富士通株式会社 盘阵列装置、数据恢复方法和计算机产品
CN100472422C (zh) * 2004-12-17 2009-03-25 富士通株式会社 具有双重写入功能的装置和存储控制装置

Also Published As

Publication number Publication date
JP5438820B2 (ja) 2014-03-12
CN102630314A (zh) 2012-08-08
WO2011111089A1 (ja) 2011-09-15
EP2515223A1 (en) 2012-10-24
EP2515223A4 (en) 2014-03-05
US8667218B2 (en) 2014-03-04
US20110296102A1 (en) 2011-12-01
JPWO2011111089A1 (ja) 2013-06-27

Similar Documents

Publication Publication Date Title
US20140304469A1 (en) Data storage
CN102576293B (zh) 固态存储设备和分层存储系统中的数据管理
US7650480B2 (en) Storage system and write distribution method
US8447946B2 (en) Storage apparatus and hierarchical data management method for storage apparatus
US7966471B2 (en) Storage controller and method for control of a data storage device
US10545684B2 (en) Storage device
US20180275894A1 (en) Storage system
WO2015029102A1 (ja) ストレージ装置及び階層制御方法
US20120110252A1 (en) System and Method for Providing Performance-Enhanced Rebuild of a Solid-State Drive (SSD) in a Solid-State Drive Hard Disk Drive (SSD HDD) Redundant Array of Inexpensive Disks 1 (Raid 1) Pair
JP2009199199A (ja) ストレージシステム及びそのデータライト方法
US7536521B2 (en) Computer storage device providing implicit detection of block liveness
CN106168920A (zh) 控制包括只读闪速数据存储设备的独立磁盘冗余阵列(raid)
CN111124262B (zh) 独立盘冗余阵列(raid)的管理方法、设备和计算机可读介质
US20070038593A1 (en) Data Storage Control Apparatus And Method
JP2006079274A (ja) ファイル管理装置、ネットワークシステム、ファイル管理方法及びプログラム
US9323617B2 (en) Remap raid to maintain raid level
CN102630314B (zh) 具有raid1类型的raid组的存储装置以及向raid1类型的raid组的写入的控制方法
US20040068609A1 (en) Method of managing a data storage array, and a computer system including a raid controller
US10146452B2 (en) Maintaining intelligent write ordering with asynchronous data replication
US10209926B2 (en) Storage system and control method therefor
JP5691234B2 (ja) ディスクアレイ装置、及び、ミラーリング制御方法
JP2006079273A (ja) ファイル管理装置、ネットワークシステム、ファイル管理方法及びプログラム
WO2016175762A1 (en) Storage cache management
Hajkazemi et al. FSTL: A framework to design and explore shingled magnetic recording translation layers
JP2012203437A (ja) ストレージ装置、方法及びプログラム

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