JP2009522656A - 記憶システムを再構成するための方法及び装置 - Google Patents

記憶システムを再構成するための方法及び装置 Download PDF

Info

Publication number
JP2009522656A
JP2009522656A JP2008548770A JP2008548770A JP2009522656A JP 2009522656 A JP2009522656 A JP 2009522656A JP 2008548770 A JP2008548770 A JP 2008548770A JP 2008548770 A JP2008548770 A JP 2008548770A JP 2009522656 A JP2009522656 A JP 2009522656A
Authority
JP
Japan
Prior art keywords
controller
unit content
storage
host
oas
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.)
Pending
Application number
JP2008548770A
Other languages
English (en)
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.)
EMC Corp
Original Assignee
EMC Corp
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
Priority claimed from US11/324,639 external-priority patent/US20070157002A1/en
Priority claimed from US11/324,728 external-priority patent/US7529972B2/en
Application filed by EMC Corp filed Critical EMC Corp
Publication of JP2009522656A publication Critical patent/JP2009522656A/ja
Pending legal-status Critical Current

Links

Images

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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0617Improving the reliability of storage systems in relation to availability
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

一実施形態は、コンピュータシステムに関する。本コンピュータシステムには、少なくとも1つのホストと、少なくとも1つのオブジェクトアドレス指定可能記憶(OAS)システムと、少なくとも1つのホストを少なくとも1つのOASシステムに結合する少なくとも1つの通信媒体と、が含まれる。少なくとも1つのOASシステムは、複数の記憶装置を有し、複数の記憶装置上に複数の単位コンテンツを記憶する。少なくとも1つのホスト及び少なくとも1つのOASシステムは、各々、OASインターフェイスを提供するソフトウェアを有する。OASインターフェイスは、OASシステムに記憶された各単位コンテンツが、オブジェクト識別子用いて、少なくとも1つのホストと少なくとも1つのOASとの間で識別され得るように提供される。本コンピュータシステムは、少なくとも1つの第1経路を介して、複数単位コンテンツの第1単位コンテンツ用オブジェクト識別子を複数記憶装置の少なくとも1つにマッピングする。少なくとも1つのホストによる少なくとも1つの第1経路を介した第1単位コンテンツへのアクセスを妨げる故障に応じて、本コンピュータシステムは、自動的に再構成され、第1単位コンテンツ用のオブジェクト識別子を用いて少なくとも1つのホストによる第1単位コンテンツへのアクセスを可能にする少なくとも1つの以前確立されなかった第2経路を確立する。

Description

本発明は、記憶システムを構成するための手法に関する。
コンテンツアドレス指定可能な記憶(CAS)手法では、単位コンテンツのコンテンツから少なくとも部分的に導かれるアドレス又は識別子を用いて、記憶システムに記憶された単位コンテンツにアクセスする。一例として、単位コンテンツは、単位コンテンツ用のコンテンツアドレスの少なくとも一部として用いられるハッシュ値を生成するハッシュ関数への入力として提供し得る。コンテンツアドレスの生成に適するハッシュ関数の例は、メッセージ・ダイジェスト5(MD5)ハッシングアルゴリズムである。
ホストコンピュータが、コンテンツアドレス指定可能な記憶システムに要求を送り、一定量のデータを検索する場合、ホストコンピュータは、単位コンテンツのコンテンツアドレスを提供する。そして、記憶システムは、コンテンツアドレスに基づき、記憶システムにおける単位コンテンツの物理的な位置を判断し、単位コンテンツを検索し、単位コンテンツをホストコンピュータに返す。従って、ホストコンピュータは、コンテンツアドレスに基づき単位コンテンツの物理的な位置を判断するタスクを記憶システムが実施し得るため、記憶システムにおけるコンテンツの物理的な位置を意識する必要がない。
本発明の一実施形態は、コンピュータシステムに用いるための方法に関する。コンピュータシステムには、少なくとも1つのホストと、少なくとも1つの記憶システムと、少なくとも1つのホストを少なくとも1つの記憶システムに結合する少なくとも1つの通信媒体と、が含まれる。少なくとも1つの記憶システムには、第1グループの記憶装置及び第2グループの記憶装置が含まれる。記憶システムには、更に、第1コントローラ及び第2コントローラが含まれる。第1コントローラには、第1組の単位コンテンツを第1グループの記憶装置上の記憶位置にマッピングする第1ファイルシステムが含まれる。第2コントローラには、第2組の単位コンテンツを第2グループの記憶装置上の記憶位置にマッピングする第2ファイルシステムが含まれる。少なくとも1つのホストは、第1コントローラを介して第1グループの単位コンテンツにアクセスし、また、第2コントローラを介して第2グループの単位コンテンツにアクセスする。
本方法には、(A)少なくとも1つのホストによる第1コントローラを介した第1グループの単位コンテンツへのアクセスを妨げる故障に応じて、第2コントローラに第1ファイルシステムをマウントし、第2コントローラを介して、少なくとも1つのホストによる第1グループの単位コンテンツへのアクセスを可能にする段階が含まれる。他の実施形態は、コンピュータシステム上で実行された時、上述の方法を実施する命令で符号化された少なくとも1つのコンピュータ判読可能媒体に関する。
更なる実施形態は、少なくとも1つの通信媒体によってホストコンピュータに結合された記憶システムに関する。本記憶システムには、第1グループの記憶装置と、第2グループの記憶装置と、第1組の単位コンテンツを第1グループの記憶装置上の記憶位置にマッピングする第1ファイルシステムを含む第1コントローラと、第2組の単位コンテンツを第2グループの記憶装置上の記憶位置にマッピングする第2ファイルシステムを含む第2コントローラと、少なくとも1つのホストによる第1コントローラを介した第1グループの単位コンテンツへのアクセスを妨げる故障に応じて、第1ファイルシステムを第2コン
トローラにマウントして、第2コントローラを介して、少なくとも1つのホストによる第1グループの単位コンテンツへのアクセスを可能にする少なくとも1つのコントローラと、が含まれ、第1グループの単位コンテンツには、第1コントローラを介して、ホストがアクセス可能であり、また、第2グループの単位コンテンツには、第2コントローラを介して、ホストがアクセス可能である。
他の実施形態は、少なくとも1つのホストと、少なくとも1つのオブジェクトアドレス指定可能記憶(OAS)システムと、少なくとも1つのホストを少なくとも1つのOASシステムに結合する少なくとも1つの通信媒体と、が含まれるコンピュータシステムに用いるための方法に関する。少なくとも1つのOASシステムは、複数の記憶装置を有し、また、複数の記憶装置上に複数の単位コンテンツを記憶する。少なくとも1つのホスト及び少なくとも1つのOASシステムは、各々、OASインターフェイスを提供するソフトウェアを有する。OASインターフェイスは、OASシステムに記憶された各単位コンテンツが、オブジェクト識別子を用いて、少なくとも1つのホストと少なくとも1つのOASとの間で識別されるように提供される。本コンピュータシステムは、少なくとも1つの第1経路を介して、複数単位コンテンツの第1単位コンテンツ用のオブジェクト識別子を複数の記憶装置の少なくとも1つにマッピングする。本方法には、(A)少なくとも1つのホストによる少なくとも1つの第1経路を介した第1単位コンテンツへのアクセスを妨げる故障に応じて、コンピュータシステムを自動的に再構成して、第1単位コンテンツ用のオブジェクト識別子を用いて、少なくとも1つのホストによる第1単位コンテンツへのアクセスを可能にする少なくとも1つの以前確立されなかった第2経路を確立する段階が含まれる。更なる実施形態は、コンピュータシステム上で実行された時、上述の方法を実施する命令で符号化された少なくとも1つのコンピュータ判読可能媒体に関する。
他の実施形態は、オブジェクトアドレス指定可能記憶(OAS)システムと、少なくとも1つのホストと、OASシステムを少なくとも1つのホストに結合する少なくとも1つの通信媒体と、が含まれるコンピュータシステムに用いるためのOASシステムに関する。OASシステムには、複数の単位コンテンツを記憶するための複数の記憶装置と、OASインターフェイスであって、これを通して、OASシステムに記憶された各単位コンテンツが、オブジェクト識別子を用いて、少なくとも1つのホストと少なくとも1つのOASとの間で識別可能であるOASインターフェイスと、少なくとも1つの第1経路を介して、複数単位コンテンツの第1単位コンテンツ用のオブジェクト識別子を複数の記憶装置の少なくとも1つにマッピングするマッパと、少なくとも1つのコントローラであって、少なくとも1つのホストによる少なくとも1つの第1経路を介した第1単位コンテンツへのアクセスを妨げる故障に応じて、コンピュータシステムを自動的に再構成して、第1単位コンテンツ用のオブジェクト識別子を用いて、少なくとも1つのホストによる第1単位コンテンツへのアクセスを可能にする少なくとも1つの以前確立されなかった第2経路を確立する少なくとも1つのコントローラと、が含まれる。
更なる実施形態は、複数の単位コンテンツを記憶する複数の記憶装置と、少なくとも1つのプロセッサと、が含まれるオブジェクトアドレス指定可能記憶(OAS)システムに関する。少なくとも1つのプロセッサは、OASシステムに記憶された各単位コンテンツにオブジェクト識別子を用いてアクセスできるようにOASインターフェイスを提供する段階と、OASシステムが少なくとも部分的に実装されて、複数の記憶装置の少なくとも幾つかがそこに既に記憶された単位コンテンツを有した後、複数の記憶装置に新しく追加された記憶装置の追加を発見する段階と、新しく追加された記憶装置の発見に応じて、OASシステムの記憶容量を増やすように、また、単位コンテンツをそこに記憶できるように、新しく発見された記憶装置を構成する段階と、を提供するようにプログラムされる。
他の実施形態は、複数の単位コンテンツを記憶する複数の記憶装置が含まれるオブジェ
クトアドレス指定可能記憶(OAS)システムの記憶容量を増加させる方法に関する。OASシステムは、OASインターフェイスを提供し、これを通して、オブジェクト識別子を用いて、OASシステムに記憶された各単位コンテンツにアクセスし得る。本方法には、OASシステムが少なくとも部分的に実装されて、複数の記憶装置の少なくとも幾つかがそこに既に記憶された単位コンテンツを有した後、複数の記憶装置に新しく追加された記憶装置の追加を発見する段階と、新しく追加された記憶装置の発見に応じて、新しく発見された記憶装置を構成して、OASシステムの記憶容量を増やし、また、そこに単位コンテンツを記憶可能にする段階と、が含まれる。更なる実施形態は、コンピュータシステム上で実行された時、上述の方法を実施する命令で符号化された少なくとも1つのコンピュータ判読可能媒体に関する。
他の実施形態は、複数の単位コンテンツを記憶するオブジェクトアドレス指定可能記憶(OAS)システムに関する。OASシステムには、OASシステムにオブジェクト識別子を提供することによって、OASシステムから各単位コンテンツにアクセスし得るように、OASシステムにコンテンツアドレス指定可能なインターフェイスを提供する複数のアクセスノードと、複数の単位コンテンツを記憶するための複数の記憶位置を提供する非OAS記憶資源と、が含まれる。非OAS記憶資源は、複数のアクセスノードが、非OASインターフェイスを介して、複数の単位コンテンツにアクセスし得るように、非OASインターフェイスを複数のアクセスノードに提供する。複数のアクセスノードは、非OAS記憶資源を共有し、また、複数の各アクセスノードは、OASシステムに記憶された各単位コンテンツ用のコンテンツアドレスを複数の記憶位置の対応する位置にマッピングするメタデータを有する。この記憶位置には、各アクセスノードが、OASに記憶された各単位コンテンツに直接アクセスし得るように、単位コンテンツが記憶されている。
更なる実施形態は、オブジェクトアドレス指定可能記憶(OAS)システムに記憶された複数の単位コンテンツの1つにアクセスする方法に関する。OASシステムには、OASシステムにオブジェクト識別子を提供することによって、OASシステムから各単位コンテンツにアクセスし得るように、OASシステムにコンテンツアドレス指定可能なインターフェイスを提供する複数のアクセスノードと、複数の単位コンテンツを記憶するための複数の記憶位置を提供する非OAS記憶資源と、が含まれる。非OAS記憶資源は、複数のアクセスノードが、非OASインターフェイスを介して、複数の単位コンテンツにアクセスし得るように、非OASインターフェイスを複数のアクセスノードに提供する。本方法には、複数のアクセスノードの1つにおいて、複数の単位コンテンツの1つへのアクセス要求を受信する段階が含まれ、この要求は、オブジェクト識別子を用いて、複数の単位コンテンツの1つを識別する。本方法には、更に、複数の各アクセスノードに利用可能なメタデータを用いて、単位コンテンツが記憶されている複数記憶位置の内の対応する位置を決定する段階が含まれる。他の実施形態は、コンピュータシステム上で実行された時、上述の方法を実施する命令で符号化された少なくとも1つのコンピュータ判読可能媒体に関する。
下表1にリスト化した特許出願に記載されているように、コンテンツアドレス指定可能な記憶(CAS)システムが、存在し、そこに記憶された単位コンテンツへの位置独立アクセスを提供する。即ち、CASシステム上の単位コンテンツにアクセスするエンティティは、単位コンテンツの物理的又は論理的記憶位置を意識する必要がなく、むしろ単位コンテンツに関連するコンテンツアドレスをCASシステムに提供することによって、単位コンテンツにアクセスし得る。これらCASシステムの多くが、コンテンツアドレス指定可能な記憶用に特別に構成されたシステムとして実現される。下表1にリスト化した米国特許出願11/165,102、11/165,103、11/165,104に述べたように、出願人は、ソフトウェアインターフェイスを用いて、コンテンツアドレス指定可
能な記憶を提供し、他方、非CAS記憶システム(例えば、ブロックI/O記憶システム)の基本記憶資源を採用し得ることを認識している。これによって、ユーザは、新しい記憶システムを購入する必要なく、CASの恩典を得ることができる。即ち、既にブロックI/O記憶システムを所有しているユーザは、ソフトウェアCASインターフェイスを用いて、ブロックI/O記憶システムをあたかもそれがCASシステムであるかのように用い得る。
本発明の態様は、ブロックI/O記憶システムの前にCASインターフェイスを提供するために開発された手法に関する。
一実施形態において、記憶ボックスに記憶された全ての単位コンテンツは、ボックス中の幾つかのディスクへのアクセスを制御するディスクコントローラ(又は他の接続、例えば、ケーブル等)の故障発生の際、確実にアクセス可能であることが望ましい。一実施形態では、このことは、故障発生の際、故障したコントローラを介して記憶された単位コンテンツを生き残っているコントローラにマッピングするファイルシステムをマウントすることによって達成し得る。
他の実施形態において、ホストによる単位コンテンツへのアクセスを妨げる故障が発生した場合、ホストによる単位コンテンツへのアクセスを可能にする以前確立されなかった単位コンテンツへの経路を構成し得る。
更なる実施形態において、記憶システムの記憶装置が、満杯又は満杯に近い場合、記憶システムに新しい記憶装置を追加し、(例えば、CASインターフェイスを介して)単位コンテンツをそこに記憶できるように自動的に構成し得る。
他の実施形態において、記憶システムには、非CAS記憶資源にCASインターフェイスを提供する複数のアクセスノードを含み得る。複数のアクセスノードは、非CAS記憶資源を共有可能であり、また、複数の各アクセスノードは、各アクセスノードが記憶システム上の各単位コンテンツに直接アクセスできるように、非CAS記憶資源に記憶された単位コンテンツのコンテンツアドレスを、単位コンテンツが記憶されている非CAS記憶資源上の記憶位置にマッピングし得る。
本発明の一実施形態を図1に示す。図1において、CASインターフェイス105は、単位コンテンツのコンテンツアドレスを指定することによって、アプリケーションプログラム101によるディスクアレイ111a及び111b上の単位コンテンツへのアクセスを可能にするように提供される。ディスクアレイ111aは、コントローラ103aによって管理され、ディスクアレイ111bは、コントローラ103bによって管理される。一実施形態に基づき、CASインターフェイス105a及び105bは、それぞれ、ディスクアレイ111a及び111bに記憶された単位コンテンツへのアプリケーションプログラム101によるアクセスを行わせるインターフェイスを提供する。例えば、CASインターフェイス105aは、特定の単位コンテンツを記憶せよというアプリケーションプログラム101からの要求を受信し得る。CASインターフェイス105aは、ファイルシステム107aのファイル(又は複数ファイル)に単位コンテンツを記憶し得る。ファイルシステム107aは、CASインターフェイス105aが単位コンテンツを記憶したファイルシステム位置をディスクアレイ111a上のブロック記憶アドレスに変換し得る。更に詳細に後述するように、このブロック記憶アドレスは、物理的記憶アドレス又は論理的記憶アドレスのいずれであってもよい。そして、ディスクマネージャ109aは、ディスクアレイ111aのディスクの1つ又は複数に単位コンテンツを物理的に記憶し得る。
CASインターフェイス105aによって単位コンテンツが記憶されるファイルシステ
ムは、何らかの適切なやり方で体系化してよく、この点において、本発明は限定されない。例えば、一実施形態において、ファイルシステムは、同様なコンテンツアドレスを備えた単位コンテンツが、同じディレクトリに記憶されるように、コンテンツアドレスに基づき体系化し得る。他の実施形態において、ファイルシステムは、時間的に互いに近接して記憶された単位コンテンツが、同じディレクトリに記憶されるように、記憶の時間に基づき体系化し得る。コンテンツアドレス及び記憶の時間に基づき体系化されたファイルシステムの例については、下表1にリスト化した出願に述べるが、本発明の実施形態は、これらの又はあらゆる特定のファイルシステム方式に限定されない。
要求された単位コンテンツをそのコンテンツアドレスによって識別する読出し要求に対して、CASインターフェイス105aは、要求された単位コンテンツが記憶されているファイルのファイルシステム位置を(例えば、そのコンテンツアドレスを用いて)決定し得る。CASインターフェイス105aがファイル(又は複数のファイル)にアクセスするのに応じて、ファイルシステム107aは、ファイル(又は複数のファイル)が記憶されているファイルシステム位置を、単位コンテンツを含むファイルが記憶されているブロック記憶アドレス(物理的又は論理的アドレスのいずれか)に変換し得る。そして、ディスクマネージャ109aは、ディスクアレイ111aから単位コンテンツを検索し得る。
上記例は、コントローラ103a上のCASインターフェイス105aによる読み出し及び書き込み要求の処理について述べている。ディスクアレイ111b上のコンテンツにアクセスせよというコントローラ103b上のCAS105bによって受信された読み出し及び書き込み要求は、同様に処理し得ることを認識されるべきである。
一実施形態に基づき、単位コンテンツは、データの破損及び/又はハードウェア故障に対する保護を提供する基本記憶システムに記憶し得る。例えば、ディスクアレイ111a又は111bのディスクの1つに記憶されたデータが破損した場合、破損データを再構築できることが望ましい。更に、ディスクアレイ111a又は111bの1つ又は複数のディスクあるいはコントローラ103a又は103bの1つが、(例えば、ハードウェア故障のために)故障した場合、データへのアクセスの提供を継続できることが望ましい。
破損及びハードウェア故障に対する保護は、何らかの適切なやり方で実施してよく、本発明は、この点において限定されない。一実施形態に基づき、本発明の態様は、ディスクマネージャ109a及び109bが、冗長アレイ独立ディスク(RAID)技術を用いて、破損に対する保護を行う記憶システム上に実現し得る。即ち、ディスクアレイ111a及び111bは、RAIDディスクアレイであり得る。RAIDディスクアレイは、1つの論理的なユニットに組み合わせられるアレイ状の物理的記憶装置(例えば、ディスク)である。従って、例えば、図1において、5つの異なるディスクドライブの代わりに、(RAID機能を実現し得る)ディスクマネージャ109aは、単一の論理ユニット番号(LUN)をファイルシステム107aに提示する。また、RAID機能は、アレイの複数ディスク間でのデータのストライピング及びパリティ情報の記憶を行う。即ち、書き込み動作の処理時、要求に定められたコンテンツは、アレイの2つ以上のディスク間でストライピングし得る。
更に、パリティ情報は、コンテンツに対して演算され、ディスクアレイに記憶し得る。パリティ情報は、書き込まれるコンテンツの1つ又は複数の破損したビットを再構築するために用い得る情報である。従って、例えば、単位コンテンツが、ファイルシステム107aのファイルに書き込まれる場合、ファイルシステム107aは、単位コンテンツが記憶される予定の対応するブロックアドレスを決定し得る。ファイルシステム107aは、ディスクアレイ111aを単一の論理的ユニットと見なし、個々の記憶装置の集合体と見なさないことから、このブロックアドレスは、単位コンテンツのコンテンツが最終的に記
憶されるディスクアレイのディスク上の物理的ブロック又はセクタに直接対応しない論理アドレスであってよい。ディスクマネージャ109aは、ファイルシステムによって用いられる論理ブロックアドレスを、単位コンテンツのコンテンツがストライピングされるディスクアレイ111aのディスク上の一組のブロックアドレスにマッピングし得る。
本発明の態様は、任意の適切なエラー補正及び/又は保護を用いる(任意レベルのRAID技術を含む)記憶システム上に、あるいは、エラー補正及び/又は保護そのものを提供する記憶システム上に実現可能であり、本発明は、この点において限定されない。エラー補正及び/又は保護そのものを提供する記憶システム上に実現された場合、エラー補正及び/又は保護は、CASインターフェイスが依拠し得る。即ち、元々CASシステムとして実現された記憶システムは、データ破損及び/又は喪失に対して保護するメカニズムを備え得る。しかしながら、基本ブロックI/O記憶システムにCASインターフェイスを設ける場合、ブロックI/O記憶システムのエラー補正及び/又は保護メカニズム(例えば、RAID)は、CASインターフェイスが、追加のエラー補正及び/又は保護を設ける必要がないように用い得る(幾つかの実施形態では必要な場合もある)。
更に、幾つかの実施形態において、記憶される単位コンテンツは、1つのコントローラによって管理されるディスクアレイが、異なるコントローラによって管理される他方のディスクアレイにミラーリングされた記憶システムに記憶し得る。このことは、何らかの適切なやり方で行ってよく、本発明は、いずれか特定の種類のミラーリング手法を用いる記憶システムでの使用やミラーリングの採用に全く限定されない。例えば、コントローラ103aが、単位コンテンツを記憶せよという要求を受信した場合、単位コンテンツは、ファイルシステムにファイルとして記憶してよく、また、単位コンテンツは、キャッシュ(図示せず)メモリーに入れてよい。そして、コントローラ103aは、コントローラ103bによって管理されるディスクアレイ(例えば、ディスクアレイ111b)にコンテンツを記憶せよという要求をコントローラ103bに送ってよい。コンテンツは、コントローラ103aによってキャッシュからディスクアレイ111aに非同期にデステージし得る。従って、ディスクアレイ111aに記憶された単位コンテンツのミラーコピーが、ディスクアレイ111bに記憶される。その結果、ディスクアレイ111a又はコントローラ111aが故障した場合、コンテンツは、コントローラ111b及び/又はディスクアレイ111bを通してアクセス可能であり得る。
一実施形態において、本発明の態様は、図2に示す記憶システム201等のマルチプロセッサ記憶システムに用い得るが、ここで、記憶システム201には、ディスクアレイ111a及び111b並びにコントローラ103a及び103bの双方が含まれ、コントローラ103a及び103bは、別々のプロセッサとして又は同じプロセッサの別々の処理コアとして実装し得る。従って、双方のディスクアレイに、記憶システムの各コントローラが物理的にアクセス可能である(例えば、記憶システムの各ディスクは、同じSCSI又はファイバチャネルバスに物理的に接続し得る)。
記憶システム201等の幾つかの記憶システムでは、コントローラ103aが、ディスクアレイ111aの記憶装置だけにアクセスするように構成してよく、また、コントローラ103bが、ディスクアレイ111bの記憶装置だけにアクセスするように構成してよい。このことは、各コントローラが他方のコントローラのI/O動作と干渉するのを防止するように行い得る。例えば、コントローラ103aが、ディスク上のブロックを読み出そうとし、同時に、コントローラ103bが、同じブロックを書き込もうとしている場合、コントローラ103aは、正しいデータを読み出せないことがある。この問題は、ディスクアレイ111a及び111bが、RAIDディスクアレイである場合、更に複雑であり得る。例えば、コントローラ103aが、アレイの1つのディスクに記憶されたストライプのブロックを修正し、同時に、コントローラ103bが、異なるディスクに記憶され
た同じストライプの異なるブロックを修正する場合、双方のコントローラは、異なる誤ったパリティ値を用いて、ストライプ用のパリティ情報を同時に更新しようとする。他の例として、RAIDアレイのディスクの1つが、機能しておらず、コントローラ103bが、ストライプの他方のブロック及びストライプ用のパリティ情報を用いて、機能していないディスクに記憶されたデータを再構築しようとしており、また、同時に、コントローラ103aが、同じストライプのブロックの1つを修正している場合、コントローラ103bは、コントローラ103aによって書き込まれた新しいデータを読み出すが、コントローラ103aがまだ更新していない古いパリティ情報を読み出すことがある。これによって、コントローラ103bは、機能していないディスク上のデータを誤って再構築することがある。
従って、幾つかの実施形態では、記憶システムのディスクを各コントローラに割当て、その一方のコントローラが、他方のコントローラのディスク操作と干渉しないようにできる。例えば、図2において、ディスクアレイ111aをコントローラ103aに割当て、ディスクアレイ111bをコントローラ103bに割り当て得る。そのような割当ては、何らかの適切なやり方で実現してよく、本発明は、この点において限定されない。例えば、ユーザ又は管理者は、或るディスクが各コントローラに割り当てられるように、記憶システム201を構成し得る。従って、各コントローラは、それに割り当てられるディスクアレイだけにアクセスする。
一実施形態において、CASインターフェイス105a及び105bは、各々、それ自体をアプリケーションプログラム101に別個のノードとして提示する。即ち、各コントローラ103は、別々にアドレス指定可能であり、また、それ自体のネットワークアドレス(例えば、IPアドレス)を有し、このアドレスにおいて、CASインターフェイスは、アプリケーションプログラムからアクセス要求を受信し得る。図2の例において、CASインターフェイスは、基本ブロックI/O記憶機能を実行するソフトウェア(即ち、ディスクマネージャ)と同じ場所に配置される。従って、幾つかの実施形態において、CASインターフェイス及びディスクマネージャは、同じコントローラ(例えば、プロセッサ)上で動作するソフトウェアエンティティであってよい。
図2に示すように、ファイルシステム107も各コントローラ103上に設け得る。更に詳細に後述するように、CASインターフェイスは、ファイルシステムに単位コンテンツを記憶し得るが、これは、ファイルシステムを動作させるコントローラが管理する基本ディスクアレイにマッピングされる
出願人は、エンティティ(例えば、アプリケーションプログラム又はホストコンピュータ)が、コンテンツアドレス指定可能な単位コンテンツを記憶システム201に記憶する場合、どのディスクアレイ上に及び/又は記憶システム201のどのコントローラによって、単位コンテンツが記憶されるかを追跡する処理から記憶エンティティを解放するのが望ましいことを認識している。例えば、アプリケーションプログラムが、記憶システム201のコントローラ103aに単位コンテンツを送って記憶する場合、コントローラ103aは、物理的にディスクアレイ111aに単位コンテンツを記憶し得る。アプリケーションプログラムが、記憶された単位コンテンツを記憶システム201から後で検索しようとする場合、アプリケーションプログラムが、単位コンテンツの読出し要求を、その単位コンテンツの書き込み要求を処理した同じコントローラに送るように要求するのが煩わしいことがある。従って、一実施形態では、記憶システム201にアクセスするエンティティは、どのコントローラ又は記憶システム201のどのディスクアレイが、記憶システムに以前書き込まれた単位コンテンツを記憶しているか追跡する必要がない。このことは、何らかの適切なやり方で実現してよく、本発明は、この点において限定されない。
例えば、エンティティ(例えば、図1のアプリケーションプログラム101)は、単位
コンテンツを記憶せよという書込み要求を記憶システム201に送る場合、その要求をコントローラ103a又は103bのいずれに送ってもよい。エンティティは、何らかの適切なやり方で、要求を記憶するコントローラを選択してよく、本発明は、この点において限定されない。例えば、エンティティは、後続の要求が送られるコントローラを交互に選択する方式等のロードバランシング方式を用いてコントローラを選択してよい(しかしながら、いずれか適切なロードバランシング方式を用いてよい)。要求を受信するコントローラ103は、そのそれぞれのディスクアレイ111にそれを記憶し得る。エンティティは、記憶システム201から単位コンテンツを後で検索したい場合、単位コンテンツのコンテンツアドレスを指定する読出し要求をコントローラ103a又は103bのいずれかに送ってよい。読出し要求を受信するコントローラは、そのディスクアレイに単位コンテンツが記憶されているかどうか判断し得る。このことは、何らかの適切なやり方で行ってよく、本発明は、この点において限定されない。例えば、コントローラは、そのファイルシステム107を検索して、単位コンテンツがそこに記憶されているかどうか判断し得る。読出し要求を受信するコントローラが、要求された単位コンテンツを記憶する場合、そのコントローラは、読出し要求を処理し、要求された単位コンテンツをエンティティに返し得る。読出し要求を受信するコントローラが、要求された単位コンテンツを記憶しない場合、そのコントローラは、要求された単位コンテンツを他方のコントローラから読み出させ得る。このことは、何らかの適切なやり方で行ってよく、本発明は、この点において限定されない。
一実施形態において、要求された単位コンテンツを他方のコントローラから読み出させる場合、読出し要求を受信したコントローラは、要求側エンティティを適切なコントローラに転送し得る。このことは、何らかの適切なやり方で行い得る。例えば、受信側コントローラは、他方のコントローラに読出し要求を再送せよという応答を要求側エンティティに送り得る。
他の実施形態において、読出し要求を受信したコントローラは、他方のコントローラがアクセス要求に応答するように指示することによって、要求された単位コンテンツを他方のコントローラから読み出させ得る。このことは、何らかの適切なやり方で行ってよく、本発明は、この点において限定されない。例えば、コントローラ103aは、それが記憶していない単位コンテンツに対する読出し要求を受信すると、その読出し要求をコントローラ103bに中継し得る。そして、コントローラ103bは、要求された単位コンテンツを検索し、要求側エンティティに直接応答するか又は要求を受信したコントローラ103aに単位コンテンツを渡してよいが、この場合、コントローラ103aは、それを要求側エンティティに返し得る。
コンテンツが記憶システム201に書き込まれるにつれて、ディスクアレイ111a及び111bのディスクは、最終的に満杯になり得る。出願人は、記憶システムが単位コンテンツを格納した時一度に記憶システム201の記憶容量を増やすのが望ましいであろうと認識している。このことは、何らかの適切なやり方で行ってよく、本発明は、この点において限定されない。一実施形態では、ユーザは、追加の記憶装置を受け入れて用いるために、記憶システムを手動で構成しなければならない。他の実施形態では、追加の記憶装置は、記憶システムに(例えば、追加の記憶装置を既存のSCSIバス又はファイバチャネルループに接続することによって)追加してよく、また、これらの追加の記憶装置は、記憶システムによって検出され、自動的に構成され得る。例えば、図3のプロセスに示すように、段階301において、システムに増設された追加の記憶装置は、記憶システムによって検出し得る。いずれか適切な種類の追加の記憶装置を用いてよく、本発明は、この点において限定されない。一実施形態において、追加された記憶装置は、ディスクアレイ筐体(DAE)であってよく、これは、ファイバチャネル接続性を有するディスクボックスである。
追加の装置が検出された後、プロセスは、段階303に続き、そこで、バスアドレス(例えば、LUN)を追加の記憶装置に対して構成し得る。即ち、各ディスクには、LUNが割り当てられ、各LUNは、記憶システムのコントローラの一方に割り当て得る。追加された記憶装置がDAE内にある実施形態では、LUNは、DAEの各ディスクに対して予め構成してよく、従って、各ディスクに対してLUNを構成する必要がない。
次に、プロセスは、段階305に続き、そこで、RAIDは、追加の記憶装置用に構成し得る(即ち、記憶装置をRAIDアレイにグループ化し、RAID保護のレベルを選択し、新しい各RAIDアレイ用のLUNを提示し得る)。更に、RAIDアレイのディスク用のLUNとして機能する仮想LUNを構成し提示し得る。もちろん、本発明は、RAIDを用いる記憶システム上での用途に限定されず、他のエラー補正及び/又は保護方式を用いてよい(用いなくてもよい)。そして、プロセスは、段階307に続き、そこで、新しいファイルシステムを生成してマウントし、そのファイルシステムを介して、追加の記憶装置に単位コンテンツを記憶させ得る。
追加の記憶装置の構成は、任意の適切なエンティティによって実施し得る。一実施形態では、コントローラ103a及び103b上で動作するユーティリティソフトウェアが、追加の記憶装置の構成を担い得る。
図3の例では、追加の記憶装置に単位コンテンツを記憶するための新しいファイルシステムが生成される。しかしながら、本発明は、追加の記憶装置に単位コンテンツを記憶させる追加のファイルシステムを生成することに限定されず、既存のファイルシステム107a及び107bの1つ又は複数を拡張して、追加の記憶装置を用いてよい。追加の記憶装置を用いるために拡張可能な任意のファイルシステムを用いてよく、本発明は、この点において限定されない。多くのファイルシステムは、ファイルシステムに記憶し得るファイルの数を制限する最大オブジェクト個数を有する。従って、ファイルシステムが追加の記憶装置に合わせて拡張可能な場合であっても、最大オブジェクト個数に達しないように、新しいファイルシステムを生成するのが望ましいことがある。
場合によっては、システムに追加の記憶装置を増設できないことがある。即ち、例えば、SCSI及びファイバチャネル規格は、バス又はループでサポートし得る装置の数に制限を課す。この制限に達すると、記憶システムに追加の記憶装置を増設できないことがある。一実施形態に基づき、記憶システム(即ち、図2の記憶システム201)に追加の記憶装置を増設するよりもむしろ(又はそれに加えて)、追加の記憶システムを用い得る。例えば、図4に示すように、アプリケーションプログラム401は、記憶システム403a又は403bのいずれかに単位コンテンツを記憶し得る。各記憶システム403は、2つのコントローラ(例えば、記憶システム403aの405a及び407a、及び記憶システム403bの405b及び407b)を有してよく、また、各コントローラには、複数の記憶装置(例えば、409a、411a、409b、及び411b)を割り当て得る。
一実施形態において、記憶システム403a及び403bには、単位コンテンツがどの記憶装置又はディスクアレイに記憶されているかにかかわらず、エンティティ(例えば、アプリケーションプログラム401)が、単位コンテンツを読み出すためのアクセス要求をシステムの任意のコントローラに送信できるようにする記憶システムの連合体が含まれる。このことは、何らかの適切なやり方で実現してよく、本発明は、この点において限定されない。CASシステムの連合体を生成する例については、下表1にリスト化した米国特許出願連番第10/787,337号及び10/787,670号に更に詳述されている。
一実施形態において、アクセス要求がコントローラによって受信される場合、コントローラは、まず、要求された単位コンテンツを記憶しているかどうか判断し得る。そうであれば、それは、アクセス要求を処理し得る。そうでない場合、それは、他のコントローラにメッセージを一斉送信して、いずれか他のコントローラが、要求された単位コンテンツを記憶しているかどうかについて問い合わせる。要求された単位コンテンツを記憶しているコントローラは、一斉送信メッセージを発したコントローラ(即ち、そのアクセス要求を最初に受信したコントローラ)に応答して、それが、要求された単位コンテンツを記憶していることを示し得る。そして、アクセス要求を最初に受信したコントローラは、要求側エンティティに応答を送り、単位コンテンツを記憶しているコントローラに要求側エンティティが要求を再送するように指示し得る。
他の実施形態において、アクセス要求を最初に受信したコントローラが、一斉送信メッセージを送り、どのコントローラが単位コンテンツを記憶しているか判断した後、アクセス要求を最初に受信したコントローラは、単位コンテンツを記憶しているコントローラにアクセス要求を中継してよく、また、単位コンテンツを記憶しているコントローラは、アクセス要求を最初に受信したコントローラに単位コンテンツを返し得る。そして、アクセス要求を最初に受信したコントローラは、要求側エンティティに単位コンテンツを返し得る。他の選択肢として、単位コンテンツを記憶しているコントローラは、単位コンテンツを要求側エンティティに直接返し得る。
図4のコンピュータシステム例では、単一の追加の記憶システム(即ち、記憶システム403b)が、追加され、元の記憶システム(即ち、記憶システム401)に関連して追加の記憶スペースが提供された。しかしながら、多重記憶システムの連合体を用いることに関する本発明の態様は、この点において限定されず、任意の適切な数の記憶システムを用いてよい。
本発明の一実施形態において、記憶システムの1つのコントローラが故障した場合、故障したコントローラに割り当てられた記憶装置に記憶された単位コンテンツには、記憶システムの他方のコントローラを介してアクセスし得る。このことは、何らかの適切なやり方で行ってよく、本発明の態様は、いずれか特定の具体化手法に限定されない。
例えば、一実施形態において、記憶システムの各コントローラは、他方の記憶プロセッサが依然として機能しているかどうかを監視し得る。このことは、何らかの適切なやり方で行ってよく、本発明は、この点において限定されない。例えば、各コントローラは、“ハートビート”メッセージを定期的に送り、他方のコントローラが依然として機能しているかどうか判断するハートビートユーティリティを有し得る。コントローラは、ハートビートメッセージを受信すると、メッセージを発したコントローラに応答して、それが依然として機能していることを示し得る。コントローラが“ハートビート”メッセージへの応答を停止すると、他方のコントローラは、非応答側コントローラがもはや機能していないと想定し得る。一方のコントローラは、一旦、記憶システムの他方のコントローラがもはや機能していないと判断すると、故障したコントローラに割り当てられた記憶装置に“侵入”して、故障したコントローラを介して記憶された単位コンテンツへのアクセスを提供し続け得る。例えば、図5に示すように、記憶システム501には、コントローラ503a及びコントローラ503bが含まれる。ディスクアレイ505は、最初に、コントローラ503aに割り当てられ、ディスクアレイ507は、最初に、コントローラ503bに割り当てられる。何らかの故障の前には、ディスクアレイ505上の単位コンテンツへのアクセス用の唯一のアクティブな経路は、コントローラ503aを介しており、また、ディスクアレイ507上の単位コンテンツへのアクセス用の唯一のアクティブな経路は、コントローラ503bを介している。コントローラ503bが(例えば、ハードウェア故障
のために)故障した場合、コントローラ503bを介したディスクアレイ507への(コントローラ503bとディスクアレイ507との間の破線によって示すような)アクティブな経路は、もはや存在しない。一実施形態によれば、コントローラ503aを介したディスクアレイ507への以前アクティブでない経路は、(ディスクアレイ507とコントローラ503aとの間の破線によって示すように)確立し得る。このことは、何らかの適切なやり方で行ってよく、本発明は、この点において限定されない。一実施形態において、このことは、自動的に(即ち、ユーザ又は管理者の介在なしで)、また、コンテンツにアクセスするエンティティに対して透明な方法で実施し得るが、本発明の全ての態様は、この点において限定されない。
図6は、一実施形態に基づく、コントローラ(例えば、503a)と故障したコントローラに以前割り当てられたディスクアレイ(例えば、ディスクアレイ507)との間の経路をアクティブにするためのプロセスの例である。段階601において、機能しているコントローラ(即ち、コントローラ503a)は、記憶システムの他方のコントローラ(例えば、コントローラ503b)がもはや機能していないと判断する。このことは、何らかの適切なやり方で(例えば、ハートビート手法を用いて)行ってよく、本発明は、この点において限定されない。そして、プロセスは、段階603に続き、そこで、機能しているコントローラが、機能していないコントローラに割り当てられた記憶装置(例えば、LUN)にアクセスできるように再構成される。上述したように、記憶システムの各記憶装置には、双方のコントローラが、物理的にアクセス可能であり、各記憶装置への物理的な接続(例えば、SCSIバス又はファイバチャネルループ)には、各コントローラがアクセス可能である。しかしながら、各コントローラは、それに割り当てられた記憶装置のみにアクセスして、他方のコントローラの動作と干渉するのを回避するように構成されていることがある。コントローラの内の1つが故障した場合、この構成は、無効になり、機能しているコントローラは、全ての記憶装置(例えば、LUN)へのアクセスが許されるように再構成し得る。
そして、プロセスは、段階605に続き、そこで、故障したコントローラのファイルシステムは、機能しているコントローラにマウントされる。これによって、故障したコントローラのファイルシステムへのファイルシステムアクセスは、機能しているコントローラによって処理され得る。例えば、機能しているコントローラ503aは、ディスクアレイ507に記憶された単位コンテンツにアクセスせよというCAS要求を受信し得る。
コントローラ503aは、要求に指定されたコンテンツアドレスを用いて、新しくマウントされたファイルシステム(即ち、機能していないコントローラ503bのファイルシステム)における単位コンテンツの位置を判断し得る。そして、ファイルシステム位置は、ディスクアレイ507における要求された単位コンテンツの物理的な位置にマッピングし得る。
上述した例において、CASインターフェイス105及びファイルシステム107(図1)は、ディスクマネージャ109(図1)と同じ場所に(即ち、同じコントローラに)配置される。しかしながら、本発明は、この点において限定されず、CASインターフェイス105、ファイルシステム107、及びディスクマネージャ109は、同じ場所に配置される必要はなく、これらのエンティティは、異なるノード及び/又はプロセッサに配置してよい。例えば、図7に示すように、CASインターフェイス705a及びファイルシステム707aは、ノード703a(ノードA)に配置されるが、これは、ディスクマネージャ709aが配置されている記憶システム715とは別の処理資源を備えた別のコンピュータである。同様に、CASインターフェイス705b及びファイルシステム707bは、ノード703b(ノードB)に配置されが、これもまた、記憶システム715とは別の処理資源を備えた別のコンピュータである。ノード703a及び703bは、CA
Sインターフェイスを介して記憶システム715へのアクセスを提供することから、これらのノードは、本明細書において、CASインターフェイスノード又はアクセスノードと称し得る。コントローラ713a及び713bは、基本記憶装置711a及び711bにアクセスすることから、これらのコントローラは、本明細書において、記憶ノードと称し得る。ノードA及びBは、何らかの適切なやり方で実現し得る。例えば、これらのノードは、同じボックス又はコンピュータ内の別のプロセッサ上に、異なるボックス又はコンピュータ内の別のプロセッサ上に、又は単一のプロセッサとしてさえも実現し得る。
図7のシステムにおいて、ノード703aは、記憶システム715のコントローラ713aへの直接接続を有し、コントローラ713bへの接続を有さない。同様に、ノード703bは、コントローラ713bへの直接接続を有し、コントローラ713aへの接続を有さない。アプリケーションプログラム701は、ノード703a又はノード703bのいずれかにアクセス要求を送り、アクセス要求を受信するノードは、要求に記憶された要求単位コンテンツが、そのノードのファイルシステム(707a又は707b)に記憶されているかどうか判断し得る。そうであれば、ノードは、ファイルシステム位置をブロックアドレスにマッピングして、それが接続を有するコントローラ713に要求を送り、この要求によって、それに割り当てられた記憶装置(1つ又は複数)(即ち、711a又は711b)から単位コンテンツを検索し得る。アクセス要求を受信するノードは、要求された単位コンテンツを記憶していない場合、他方のノードに要求を受信させ得る。このことは、何らかの適切なやり方で行ってよく、本発明は、この点において限定されない。例えば、一実施形態では、要求を受信するノードは、応答を送り、要求を発したエンティティ(例えば、アプリケーションプログラム701)を他方のノードに転送し、そして、エンティティは、もう1つの要求を他方のノードに直接発し得る。他の実施形態において、要求を発したノードは、それが単位コンテンツを記憶していないと判断した後、要求を他方のノードに中継し得る。これに応じて、他方のノードは、要求された単位コンテンツを、要求を受信したノードに返し、要求を受信したノードは、要求側エンティティに単位コンテンツを転送し得る。他の選択肢として、単位コンテンツを記憶しているノードは、単位コンテンツを要求エンティティに直接返し得る。
図7のコンピュータシステムには、更に、追加記憶装置の構成を支援するユーティリティノード(図示せず)を含み得る。例えば、ユーティリティノードは、ディスクマネージャ709a及び709bを随時ポーリングして、何らかの新しい記憶装置が記憶システム715に追加されているかどうか判断する。新しい記憶装置がある場合、ユーティリティノードは、ディスクマネージャ709a及び/又はディスクマネージャ709bに指示して、新しいLUN(1つ又は複数)を構成し得る。そして、ユーティリティノードは、新しいファイルシステム又は新しい多重ファイルシステムを生成してノード703a及び/又は703b上にマウントし得るが、これらは、追加の記憶装置にマッピングされる。これによって、アクセスノードは、新しい記憶装置が提供する記憶スペースを用い得る。
上述したように、コンピュータシステムにもう1つの記憶システムを追加して、コンピュータシステムの全体的な記憶容量を増やすのは、時として望ましい。もう1つの記憶システムが、コンピュータシステムに追加され、CASインターフェイス及びファイルシステムが、記憶システムに配置されない場合、CASインターフェイス及びファイルシステムを各々実行する2つの追加ノードをコンピュータシステムに追加して、追加の記憶システム上の各コントローラにCASインターフェイスを提供し得る。例えば、一実施形態では、新しい各記憶システムが、上述したものと同様に構成され、2つのコントローラを有してよく、また、CASインターフェイス及びファイルシステムを有する別のノード(例えば、サーバ)を各コントローラ用に追加し得る。
図7の例では、各CASインターフェイスノードは、コントローラの1つへの直接接続
を有しており、単位コンテンツに対するアクセス要求は、単位コンテンツを記憶したコントローラによって処理される。しかしながら、本発明は、この点において限定されない。例えば、図8に示す一実施形態において、CASインターフェイスノードは、記憶システム(1つ又は複数)のディスクコントローラ(即ち、コントローラ813a及び813b)をCASインターフェイスノード及びサーバ(即ち、ノード801a、801b、及び801c)に結合するネットワーク(例えば、記憶エリアネットワーク(SAN))を介して、1つ又は複数の記憶システム(図8に1つだけ示す)にアクセスし得る。従って、図8のシステムでは、各ノード801は、各コントローラ813と通信を行い得る。更に、ノード801は、互いに通信を行い得る。従って、例えば、ノード801aが故障した場合、ノード801b及び801cは、それらの内のどれが、ノード801aを(例えば、ノード801aのファイルシステムをマウントすることによって)引き継ぐか交渉し得る。更に、新しい記憶装置又は新しい記憶システムがシステムに追加される場合、ノード801は、どのノード801が、ファイルシステムを追加の記憶装置にマッピングするか判断し得る。
本発明の一実施形態において、各ノード801が別のファイルシステム807を有するよりもむしろ、ファイルシステム807は、ネットワーク上の多数のノードによって共有される分散ファイルシステムであってよい。従って、各ノードは、同じ分散ファイルシステムをマウントし、単一のノードによるファイルシステムへのあらゆる修正(例えば、ファイル又はディレクトリの生成、削除、又は修正)が、他の全てのノードによってマウントされたファイルシステムにおいて反映される。その結果、分散ファイルシステムに記憶された全ての単位コンテンツには、各ノード801がアクセス可能である。従って、アクセス側エンティティ(例えば、アプリケーションプログラム)は、アクセス要求をコンピュータシステムの任意のノード801に送り、そのノードは、単位コンテンツのファイルシステム位置を判断し、ファイルシステム位置をブロックアドレス(例えば、LUN)にマッピングし、その特定のLUNを提示する記憶システム815のコントローラ813にアクセス要求を送ることが可能である。各ノード801は、各単位コンテンツのファイルシステム位置を判断することが可能なことから、また、各ノード801は、各コントローラ813へのアクセスを有することから、他の実施形態に関連して上述したアクセス要求の転送又は中継は、不要である。
分散ファイルシステムは、任意の利用可能な分散ファイルシステム技術の使用を含み、何らかの適切なやり方で実現してよく、本発明は、この点において限定されない。
図8の例には、3つのノード801(即ち、アクセスノード)、及び2つのコントローラ(即ち、記憶ノード)を有する1つの記憶システムが含まれる。しかしながら、CASアクセスノードと記憶システムとの間のネットワークの使用を伴う本発明の態様は、この点において限定されず、任意の適切な数のアクセスノードを用いてよく、また、コンピュータシステムには、任意の適切な数の記憶システムを含み得る。
一実施形態において、追加のユーティリティノードは、アクセス要求を処理せずに、むしろ、記憶システムによってアクセスされる単位コンテンツに他の操作を実施して、アクセス及び/又は記憶ノードの処理資源を節約するシステムに含み得る。例えば、記憶システムに記憶された1つ又は複数の単位コンテンツのコピーを行ってユーティリティノードに記憶し得る。従って、ユーティリティノードは、アクセスノード又は記憶ノードの処理資源を用いることなく、データに対する操作を実施し得る。ユーティリティノードは、データに対する任意の適切な操作を実施してよく、本発明は、この点において限定されない。そのような操作には、例えば、単位コンテンツが、破損又は修正されたかどうかの判断を含み得るが、これは、何らかの適切なやり方で行い得る。記憶システムが、コピーを効率的に生成する1つ又は複数のユーティリティ(例えば、SNAPコピー)を備える場合、これらのユーティリティを用いて、ユーティリティノード用のコピーを生成し得る。
上記例において、コンピュータシステムには、単一のユーティリティノードだけが含まれる。しかしながら、本発明は、この点において限定されず、本システムには、2つ、3つ、又はいずれか他の適切な数のユーティリティノードを含み得る。
一実施形態において、単位コンテンツが修正又は破損されたかどうか判断する場合、ユーティリティノードは、単位コンテンツのコンテンツを用いてコンテンツアドレスを再処理し、また、再処理されたコンテンツアドレスが、単位コンテンツに元々割り当てられたコンテンツアドレスに一致するかどうかを判断し得る。ユーティリティノードによって実施し得る他の操作は、ごみ集めである。即ち、ユーティリティノードは、もう使用されていない削除すべき何らかの単位コンテンツがあるかどうか判断し得る。ごみ集めは、何らかの適切なやり方で実施し得る。コンテンツアドレス指定可能な単位コンテンツに対して、ごみ集めを実施し得る方法の例は、下表1にリスト化した出願に記載されている。ユーティリティノードによって実施し得る他の操作の例は、保持期間が過ぎたかどうか判断することである。幾つかの実施形態において、単位コンテンツには、単位コンテンツが削除されない時間期間を規定する保持期間を割り当て得る。保持期間については、下表1にリスト化した出願に更に詳述する。ユーティリティノードは、どの単位コンテンツが、保持期間を過ぎており、従って、削除に供するのが可能か判断し得る。
上述した幾つかの例において、コンテンツアドレス指定可能な記憶手法及びコンテンツアドレスは、単位コンテンツの記憶及びアクセスに用いられる。しかしながら、本発明は、この点において限定されず、任意の記憶手法及びアドレスを用い得る。幾つかの実施形態において、オブジェクトアドレス指定可能記憶及びオブジェクト識別子を用い得る。この場合、CASの場合と同様に、単位コンテンツには、オブジェクトアドレスが与えられるが、オブジェクトアドレスは、単位コンテンツのコンテンツを用いて演算する必要はない。即ち、コンテンツアドレスは、特定の種類のオブジェクト識別子と考えてよく、この場合、アドレスは、単位コンテンツのコンテンツを用いて計算される。
オブジェクトアドレス指定可能記憶では、単位コンテンツは、そのオブジェクト識別子を用いて、(例えば、ホストコンピュータが単位コンテンツへのアクセスを要求することによって)識別可能であり、また、オブジェクト識別子は、(そうである必要はないが)単位コンテンツが記憶されている物理的又は論理的位置とは独立であり得る。しかしながら、ホストコンピュータから見ると、オブジェクト識別子は、単位コンテンツがどこに記憶されるか規制しない。
本発明の上述した実施形態は、任意の適切なコンピュータ又はシステム上に実現し得る。適切なコンピュータ及び/又はシステムの例については、下表1にリスト化した特許出願(総称して“CAS出願”)に記載されており、その各々を本明細書に引用・参照する。これらの出願に記載されたコンピュータ及びシステムは、本発明の実施形態を実現し得るコンピュータ及びシステムの単なる例であり、本発明は、決して、これらの如何なるコンテンツアドレス指定可能な記憶システム上での具体化に限定されたり、又はコンテンツアドレス指定可能な記憶システムに限定されたりしないことを認識されるべきである。

Figure 2009522656
Figure 2009522656
Figure 2009522656
Figure 2009522656
Figure 2009522656
本発明の上述した実施形態は、数多くの任意のやり方で実現し得る。例えば、上記実施形態は、ハードウェア、ソフトウェア又はその組合せを用いて実現し得る。ソフトウェアで実現された場合、ソフトウェアコードは、単一のコンピュータに提供されるか又は複数のコンピュータ間に分散されるかにかかわらず任意の適切なプロセッサ又はプロセッサの集合体上で実行し得る。上述した機能を実施する任意の構成要素又は構成要素の集合体が、上述した機能を制御する1つ又は複数のコントローラと全般的に見なし得ることを認識されるべきである。1つ又は複数のコントローラは、数多くのやり方で、例えば、専用のハードウェアで、又は、上記機能を実施するマイクロコード又はソフトウェアを用いてプログラムされる汎用ハードウェア(例えば、1つ又は複数のプロセッサ)で、実現し得る。
この点において、本発明の実施形態の一実施例には、プロセッサ上で実行されると、本発明の実施形態の上述した機能を実施するコンピュータプログラム(即ち、複数の命令)で符号化された少なくとも1つのコンピュータ判読可能媒体(例えば、コンピュータメモリ、フロッピー(登録商標)ディスク、コンパクトディスク、テープ等)が含まれることを認識されるべきである。
コンピュータ判読可能媒体は、そこに記憶されたプログラムを任意のコンピュータ環境資源にロードして、本明細書で議論された本発明の態様を実現できるように、持ち運び可能である。更に、実行されると上述の機能を実施するコンピュータプログラムについての参照は、ホストコンピュータ上で走るアプリケーションプログラムに限定されないことを認識されるべきである。むしろ、用語「コンピュータプログラム」は、本明細書では一般的な意味で用いており、上述した本発明の態様を実現するようにプロセッサをプログラムするために用い得る任意の種類のコンピュータコード(例えば、ソフトウェア又はマイクロコード)を指す。
プロセスがコンピュータ判読可能媒体に実現される本発明の幾つかの実施形態によれば、コンピュータにより実現されたプロセスは、それらの実行中、(例えば、ユーザから)入力を手動で受け入れることを認識すべきである。
本明細書に用いられる術語及び用語は、説明の目的のためであり、限定的であると見なすべきではない。“含む”、“含まれる”、“有する”、“含有する”、“伴う”、及びそれらの派生語の用途は、その後に列記される項目及び追加の項目を包含しようとするものである。
本発明の幾つかの実施形態について詳細に述べたが、様々な修正及び改善が、当業者には、容易に起こるであろう。そのような修正及び改善は、本発明の精神及び範囲内にあるものとする。従って、上記の説明は、単に一例であり、限定するものではない。本発明は、以下の請求項及びそれらの等価物によってのみ限定される。
本発明の一実施形態に基づく、コンテンツアドレス指定可能な記憶(CAS)インターフェイスが複数の記憶装置に設けられたコンピュータシステムを示す図。 本発明の一実施形態に基づく、同じ記憶システムに配置された図1のコントローラを示す図。 本発明の一実施形態に基づく、記憶システムに追加の装置を増設し、追加の装置を自動的に構成するための例示プロセスを示すフローチャート。 一実施形態に基づく多重記憶システムの連合体を示す図。 一実施形態に基づく、1つのコントローラが、他のコントローラに割り当てられた記憶装置に侵入し得る記憶システムを示す図。 機能していないコントローラに割り当てられた記憶装置に侵入するための例示プロセスを示すフローチャート。 一実施形態に基づく、CASインターフェイスが記憶ディスク及びディスクマネージャと同じ場所に配置されていない記憶システムを示す図。 一実施形態に基づく、CASインターフェイスが記憶ディスク及びディスクマネージャと同じ場所に配置されておらず、また、アクセスノード及び記憶ノードが記憶エリアネットワークによって結合される記憶システムを示す図。

Claims (10)

  1. 少なくとも1つのホストと、少なくとも1つの記憶システムと、前記少なくとも1つのホストを前記少なくとも1つの記憶システムに結合する少なくとも1つの通信媒体と、が含まれるコンピュータシステムで用いるための方法において、
    前記少なくとも1つの記憶システムには、第1グループの記憶装置と第2グループの記憶装置と、が含まれ、
    前記記憶システムには、更に、第1コントローラと第2コントローラと、が含まれ、
    前記第1コントローラには、第1組の単位コンテンツを前記第1グループの記憶装置上の記憶位置にマッピングする第1ファイルシステムが含まれ、
    前記第2コントローラには、第2組の単位コンテンツを前記第2グループの記憶装置上の記憶位置にマッピングする第2ファイルシステムが含まれ、
    前記少なくとも1つのホストは、前記第1コントローラを介して前記第1グループの単位コンテンツにアクセスし、また、前記第2コントローラを介して前記第2グループの単位コンテンツにアクセスする、前記方法であって、
    (A)前記少なくとも1つのホストによる前記第1コントローラを介した前記第1グループの単位コンテンツへのアクセスを妨げる故障に応じて、前記第1ファイルシステムを前記第2コントローラにマウントして、前記第2コントローラを介して前記少なくとも1つのホストによる前記第1グループの単位コンテンツへのアクセスを可能にする段階が含まれる方法。
  2. 請求項1に記載の方法であって、
    前記第1ファイルシステムは、前記第1組の各単位コンテンツが、オブジェクト識別子を用いて前記第1ファイルシステムによって識別されるように、オブジェクトアドレス指定可能なインターフェイスを前記少なくとも1つのホストに提供する方法。
  3. 請求項1に記載の方法であって、更に、
    前記第1コントローラに宛てられたアクセス要求を前記少なくとも1つのホストから受信する段階と、
    前記アクセス要求を前記第2コントローラに転送する段階と、
    が含まれる方法。
  4. 少なくとも1つの通信媒体によってホストコンピュータに結合された記憶システムであって、
    第1グループの記憶装置と、
    第2グループの記憶装置と、
    第1組の単位コンテンツを前記第1グループの記憶装置上の記憶位置にマッピングする第1ファイルシステムを含む第1コントローラと、
    第2組の単位コンテンツを前記第2グループの記憶装置上の記憶位置にマッピングする第2ファイルシステムを含む第2コントローラと、
    前記少なくとも1つのホストによる前記第1コントローラを介した前記第1グループの単位コンテンツへのアクセスを妨げる故障に応じて、前記第1ファイルシステムを前記第2コントローラにマウントして、前記第2コントローラを介して、前記少なくとも1つのホストによる前記第1グループの単位コンテンツへのアクセスを可能にする少なくとも1つのコントローラと、が含まれ、
    前記第1グループの単位コンテンツには、前記第1コントローラを介して、前記ホストがアクセス可能であり、また、前記第2グループの単位コンテンツには、前記第2コントローラを介して、前記ホストがアクセス可能である記憶システム。
  5. 請求項4に記載の記憶システムであって、前記少なくとも1つのコントローラは、
    前記第1コントローラに宛てられたアクセス要求を前記少なくとも1つのホストから受信し、
    前記アクセス要求を前記第2コントローラに転送する記憶システム。
  6. 少なくとも1つのホストと、少なくとも1つのオブジェクトアドレス指定可能記憶(OAS)システムと、前記少なくとも1つのホストを前記少なくとも1つのOASシステムに結合する少なくとも1つの通信媒体と、が含まれるコンピュータシステムに用いるための方法において、
    前記少なくとも1つのOASシステムは、複数の記憶装置を有し、また、前記複数の記憶装置上に複数の単位コンテンツを記憶し、
    前記少なくとも1つのホスト及び前記少なくとも1つのOASシステムは、各々、前記OASシステムに記憶された前記各単位コンテンツが、オブジェクト識別子を用いて、前記少なくとも1つのホストと前記少なくとも1つのOASとの間で識別されるようにOASインターフェイスを提供するソフトウェアを有し、
    前記コンピュータシステムは、少なくとも1つの第1経路を介して、前記複数単位コンテンツの第1単位コンテンツ用の前記オブジェクト識別子を前記複数の記憶装置の少なくとも1つにマッピングする、前記方法であって、
    (A)前記少なくとも1つのホストによる前記少なくとも1つの第1経路を介した前記第1単位コンテンツへのアクセスを妨げる故障に応じて、前記コンピュータシステムを自動的に再構成して、前記第1単位コンテンツ用の前記オブジェクト識別子を用いて、前記少なくとも1つのホストによる前記第1単位コンテンツへのアクセスを可能にする少なくとも1つの以前確立されなかった第2経路を確立する段階が含まれる方法。
  7. 請求項6に記載の方法であって、前記第1単位コンテンツは、前記複数記憶装置の内の第1装置に記憶され、また、前記段階(A)には、前記コンピュータシステムを再構成して、前記複数記憶装置の内の前記第1装置への前記第2経路を確立する段階が含まれる方法。
  8. 請求項6に記載の方法であって、前記OASシステムは、コンテンツアドレス記憶(CAS)システムであり、また、前記オブジェクト識別子は、少なくとも部分的に、前記第1単位コンテンツのコンテンツに基づくコンテンツアドレスである方法。
  9. オブジェクトアドレス指定可能記憶(OAS)システムと、少なくとも1つのホストと、前記OASシステムを前記少なくとも1つのホストに結合する少なくとも1つの通信媒体と、が含まれるコンピュータシステムに用いるためのオブジェクトアドレス指定可能記憶(OAS)システムであって、前記OASシステムには、
    複数の単位コンテンツを記憶するための複数の記憶装置と、
    OASインターフェイスであって、これを通して、前記OASシステムに記憶された前記各単位コンテンツは、オブジェクト識別子を用いて、前記少なくとも1つのホストと前記少なくとも1つのOASとの間で識別が可能である前記OASインターフェイスと、
    少なくとも1つの第1経路を介して、前記複数単位コンテンツの第1単位コンテンツ用の前記オブジェクト識別子を前記複数の記憶装置の少なくとも1つにマッピングするマッパと、
    少なくとも1つのコントローラであって、前記少なくとも1つのホストによる前記少なくとも1つの第1経路を介した前記第1単位コンテンツへのアクセスを妨げる故障に応じて、前記コンピュータシステムを自動的に再構成して、前記第1単位コンテンツ用の前記オブジェクト識別子を用いて、前記少なくとも1つのホストによる前記第1単位コンテンツへのアクセスを可能にする少なくとも1つの以前確立されなかった第2経路を確立する前記少なくとも1つのコントローラと、
    が含まれるOASシステム。
  10. 請求項9に記載のOASシステムであって、前記第1単位コンテンツは、前記複数記憶装置の内の第1装置に記憶され、また、前記少なくとも1つのコントローラは、前記コンピュータシステムを再構成して、前記複数記憶装置の内の前記第1装置への前記第2経路を確立するOASシステム。
JP2008548770A 2006-01-03 2006-12-29 記憶システムを再構成するための方法及び装置 Pending JP2009522656A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/324,639 US20070157002A1 (en) 2006-01-03 2006-01-03 Methods and apparatus for configuring a storage system
US11/324,728 US7529972B2 (en) 2006-01-03 2006-01-03 Methods and apparatus for reconfiguring a storage system
PCT/US2006/049593 WO2007081581A2 (en) 2006-01-03 2006-12-29 Methods and apparatus for reconfiguring a storage system

Publications (1)

Publication Number Publication Date
JP2009522656A true JP2009522656A (ja) 2009-06-11

Family

ID=38201067

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008548770A Pending JP2009522656A (ja) 2006-01-03 2006-12-29 記憶システムを再構成するための方法及び装置

Country Status (3)

Country Link
EP (1) EP1969454A2 (ja)
JP (1) JP2009522656A (ja)
WO (1) WO2007081581A2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7992037B2 (en) * 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826613B1 (en) * 2000-03-15 2004-11-30 3Com Corporation Virtually addressing storage devices through a switch
JP3964212B2 (ja) * 2002-01-16 2007-08-22 株式会社日立製作所 記憶装置システム
US7117204B2 (en) * 2003-12-03 2006-10-03 International Business Machines Corporation Transparent content addressable data storage and compression for a file system
EP1723564A2 (en) * 2004-02-11 2006-11-22 Storage Technology Corporation Clustered hierarchical file services

Also Published As

Publication number Publication date
WO2007081581A3 (en) 2007-10-18
WO2007081581A2 (en) 2007-07-19
EP1969454A2 (en) 2008-09-17

Similar Documents

Publication Publication Date Title
US7529972B2 (en) Methods and apparatus for reconfiguring a storage system
US11726697B2 (en) Synchronous replication
US20070157002A1 (en) Methods and apparatus for configuring a storage system
US9830088B2 (en) Optimized read access to shared data via monitoring of mirroring operations
US7337350B2 (en) Clustered storage system with external storage systems
US7337351B2 (en) Disk mirror architecture for database appliance with locally balanced regeneration
US6968425B2 (en) Computer systems, disk systems, and method for controlling disk cache
US7089448B2 (en) Disk mirror architecture for database appliance
US8060777B2 (en) Information system and I/O processing method
US9229646B2 (en) Methods and apparatus for increasing data storage capacity
US9098466B2 (en) Switching between mirrored volumes
JP5461216B2 (ja) 論理ボリューム管理の為の方法と装置
JP5620614B1 (ja) ストレージシステム
US8255653B2 (en) System and method for adding a storage device to a cluster as a shared resource
US7539838B1 (en) Methods and apparatus for increasing the storage capacity of a storage system
US20060031636A1 (en) Method of managing storage system to be managed by multiple managers
US20090259816A1 (en) Techniques for Improving Mirroring Operations Implemented In Storage Area Networks and Network Based Virtualization
US20070192553A1 (en) Backup apparatus and backup method
US8924656B1 (en) Storage environment with symmetric frontend and asymmetric backend
WO2021088586A1 (zh) 一种存储系统中的元数据的管理方法及装置
JP2009522656A (ja) 記憶システムを再構成するための方法及び装置
US20150095599A1 (en) Storage processing apparatus, computer-readable recording medium storing program for controlling storage, and storage system
US8930485B2 (en) Information processing apparatus and non-transitory computer-readable recording medium having program stored thereon
US11221928B2 (en) Methods for cache rewarming in a failover domain and devices thereof
CN112379827A (zh) 一种存储双活的应用方法