JP2007279898A - ストレージシステム及び同システムに適用されるアクセス処理方法 - Google Patents

ストレージシステム及び同システムに適用されるアクセス処理方法 Download PDF

Info

Publication number
JP2007279898A
JP2007279898A JP2006103256A JP2006103256A JP2007279898A JP 2007279898 A JP2007279898 A JP 2007279898A JP 2006103256 A JP2006103256 A JP 2006103256A JP 2006103256 A JP2006103256 A JP 2006103256A JP 2007279898 A JP2007279898 A JP 2007279898A
Authority
JP
Japan
Prior art keywords
storage
extent
logical
physical
location management
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.)
Granted
Application number
JP2006103256A
Other languages
English (en)
Other versions
JP4224077B2 (ja
Inventor
Makoto Obara
誠 小原
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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
Application filed by Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2006103256A priority Critical patent/JP4224077B2/ja
Priority to US11/727,966 priority patent/US7707381B2/en
Priority to CNB2007101266040A priority patent/CN100487639C/zh
Publication of JP2007279898A publication Critical patent/JP2007279898A/ja
Application granted granted Critical
Publication of JP4224077B2 publication Critical patent/JP4224077B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/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/0658Controller construction 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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Abstract

【課題】各ノードが管理する情報の更新作業量を抑えてアクセス性能を向上させる。
【解決手段】ノード1-1〜1-3は、それぞれ、コントローラ11-1〜11-3、所在管理サーバ12-1〜12-3及びストレージ13-1〜13-3を有する。コントローラ11-1〜11-3の各々は、ホストに提供する論理ボリュームを構成する論理エクステントに対応する所在管理サーバを示すLMMT112aを有する。所在管理サーバ12-1〜12-3は、当該サーバに対応する論理エクステントについて、その論理エクステントがどのノードのストレージに格納されているかを示すLSMT120-1〜120-3を有する。ストレージ13-1〜13-3の各々は、論理エクステントを、当該ストレージが有する物理ボリューム130-1〜130-3のどの物理エクステントに対応させて格納したかを示すLPMT132aを有する。
【選択図】 図7

Description

本発明は、物理ボリュームを有する少なくとも1つのノードを含む複数のノードから構成されるストレージシステム及び同システムに適用されるアクセス処理方法に関する。
近年、相互に接続された複数のストレージ装置(例えばディスクストレージ装置)を有するストレージシステムが開発されている。この種のストレージシステムの1つとして、ストレージクラスタ(ストレージクラスタシステム)が知られている。
ストレージクラスタの特徴は、複数のストレージ装置(以下、ノードと称する)の各々に存在する記憶領域(以下、物理ボリュームと称する)を、当該ノードを超えて統合する(束ねる)ことで、ノード間にまたがった横断的・仮想的な少なくとも1つの記憶領域(以下、論理ボリュームと称する)をホストに提供することにある。ここでのボリュームは、ブロック単位でアクセスされるブロックボリュームであるとする。
ストレージクラスタを構成するノードは、常時稼動のストレージ装置である。つまり、ノードの参加・離脱は、運用中の計画的参加・離脱や、故障による突然の離脱による程度である。このためストレージクラスタでは、例えば毎日の電源ON/OFFによるような、頻繁なノードの参加・離脱はない。
ストレージクラスタにおいては、データ(の断片)を物理ボリューム内や、別のノードの物理ボリュームをまたがって、(自動/手動を問わず)適切に移動/コピーすることは、頻繁に起きる。これは、ホストからの論理ボリュームへのアクセス透過性を保障しながら、ストレージクラスタを構成するノードの突発的停止やディスク故障などに備えたデータの冗長化や、アクセス性能・信頼性の向上などの目的による。
一方、ホストは、ストレージクラスタ内の任意の1つのノードに対してパスを張ってアクセスするだけで、複数のノードをまたがって構成された論理ボリューム全体に対してアクセスすることができる。ここで、ホストがパスを張っているノードで障害が発生して、当該障害が発生したノード(障害ノード)が停止したものとする。この場合でも、障害ノードに格納されているデータがストレージクラスタ内の他のノード(生存ノード)に冗長化されていれば、ホストは任意の生存ノードに対してパスを張り直すことで、論理ボリュームに対するアクセスを継続することができる。
このようなストレージクラスタを構築するには、論理ボリューム上のデータが、どのノードのどの物理ボリューム上の、どの位置に配置されているかを管理するための仕組みが必要になる。
一般に、ストレージクラスタのノードは、機能的にコントローラとストレージとから構成される。コントローラはホストとのパスを管理しアクセスを受け付ける。ホストはどのコントローラに対してパスを張っても、同じ論理ボリュームにアクセスすることができる。ストレージはデータを蓄える物理ボリュームを有する。
ボリューム(ブロックボリューム)は、エクステントと呼ばれる、固定長のブロックの集合により構成される。各ノードのストレージは1つの物理ボリュームを管理する。一方、各ノードのコントローラは、物理ボリュームを構成する物理エクステントと、論理ボリュームの論理エクステントとをマッピングテーブルにより対応付けて管理する。これにより、論理ボリューム(論理ボリューム空間)が構成される。このようなマッピングテーブルによる物理エクステントと論理エクステントとの対応付けは、例えば特許文献1にも記載されている。
上述のマッピングテーブルを、論理エクステント−物理エクステントマッピングテーブル(LPMT:Logical Extent to Physical Extent Mapping Table)と呼ぶ。LPMTは、論理ボリュームの論理エクステントが、どのノード(ストレージ)の物理ボリュームの、どの物理エクステントから構成されているか、その対応付けを管理するのに用いられる。
ストレージクラスタ内の全てのノードのコントローラは、それぞれ同一内容のLPMTを保持する。また各ノードは、LPMTにより全論理ボリューム分を管理する。これらの理由は、ホストからコントローラへのパスが、別のコントローラに切り替わった際に、直ちに同一の論理ボリュームへのアクセスを継続可能とするためである。
特開平9−62452号公報
上記したように従来のストレージクラスタ(ストレージシステム)では、当該クラスタ内の各ノードは、LPMT(論理エクステント−物理エクステントマッピングテーブル)により全論理ボリューム分を管理する必要がある。ところが、LPMTのサイズは物理ボリュームの数と、その物理ボリュームを構成するエクステントの量によってはとても大きくなり、コントローラ上の大量のメモリを消費することになる。
ストレージクラスタでは、当該クラスタ内のあるノード(以下、第1のノードと称する)の例えば第1の物理エクステントに格納されていた第1の論理エクステントを、別のノード(以下、第2のノードと称する)の例えば第2の物理エクステントにマイグレーション(移動)することが発生する。このようなマイグレーションは、第1のノードのストレージの負荷を軽減するなどの目的で行われる。また、上記特許文献1に記載されているように、あるノードのストレージに対するアクセス性能を向上させるために、当該ノードのある物理エクステントに格納されていた第1の論理エクステントを、当該ノードの別の物理エクステントにマイグレーションすることもある。このマイグレーションにより、ストレージクラスタのアクセス性能及び信頼性を向上することが可能となる。
このようにストレージクラスタでは、ストレージクラスタのアクセス性能・信頼性向上のために、論理エクステントを同じストレージ内の別の物理エクステントへ、また別のストレージの物理エクステントへの移動/コピーが発生する。この場合、ストレージクラスタの各コントローラは互いに同期をとって、自身が管理するLPMTを一斉(同時)に更新する必要がある。しかし、各コントローラのLPMTが同一となるように同時に更新することは、LPMT管理の処理の複雑さを招き、アクセス性能に悪影響を及ぼす。
本発明は上記事情を考慮してなされたものでその目的は、各ノードが管理する情報の更新作業量を抑えてアクセス性能を向上させることができるストレージシステム及び同システムに適用されるアクセス処理方法を提供することにある。
本発明の1つの観点によれば、物理ボリュームを有する少なくとも1つのノードを含む複数のノードから構成され、前記少なくとも1つのノードが有する物理ボリュームを利用して、ホストに対して複数の論理エクステントから構成される論理ボリュームを提供するストレージシステムが提供される。このシステムにおいて、前記複数のノードの少なくとも2つは、前記ホストに対して前記論理ボリュームを提供し、当該ホストからのアクセスを受け付けるコントローラを有する。また、前記少なくとも1つのノードは、前記論理ボリュームを構成する論理エクステントを物理エクステントにマッピングして前記物理ボリューム内に格納するストレージを有し、前記複数のノードの少なくとも1つは、前記論理ボリュームを構成する論理エクステントを格納しているストレージの所在に関する前記コントローラからの問い合わせに対して回答する所在管理サービスを実行する所在管理サーバを有する。また、前記コントローラは、前記論理ボリュームを構成する論理エクステントに対応する所在管理サーバを示す第1のマッピングテーブルを有する。前記所在管理サーバは、当該サーバに対応する論理エクステントについて、その論理エクステントがどのノードのストレージに格納されているかを示す第2のマッピングテーブルを有し、前記ストレージは、論理エクステントを、当該ストレージが有する物理ボリュームのどの物理エクステントに対応させて格納したかを示す第3のマッピングテーブルを有する。前記コントローラは、前記ホストから前記論理ボリューム内の任意の論理エクステントをアクセス先として指定するアクセス要求が与えられた場合、当該コントローラが有する前記第1のマッピングテーブルを参照することにより当該アクセス先の論理エクステントに対応する所在管理サーバを特定し、特定された所在管理サーバに対して、当該論理エクステントがどのストレージに格納されているかを問い合わせる。前記所在管理サーバは前記コントローラから問い合わせを受けた場合、当該サーバが有する前記第2のマッピングテーブルを参照することにより問い合わせられたストレージを特定して、当該ストレージを示す情報を前記問い合わせに対する回答として問い合わせ元の前記コントローラに通知する。前記コントローラは、前記所在管理サーバから前記問い合わせに対する回答として通知された情報の示すストレージに対して前記ホストから要求された論理エクステントへのアクセスを要求する。前記ストレージは、前記コントローラから論理エクステントへのアクセスが要求された場合、当該ストレージが有する前記第3のマッピングテーブルを参照することにより、当該ストレージが有する前記物理ボリューム内で前記要求された論理エクステントに対応させられている物理エクステントを特定して、当該特定された物理エクステントに対してアクセスしてアクセス要求元の前記コントローラに応答する。
本発明によれば、第1乃至第3のマッピングテーブルを用いることにより、ノード(コントローラ)が管理する情報の更新作業量を抑えてアクセス性能を向上させることができる。
以下、本発明の実施の形態につき図面を参照して説明する。
[第1の実施形態]
図1は本発明の第1の実施形態に係るストレージクラスタ構成のストレージシステムの概略構成を示すブロック図である。図1のストレージシステム(以下、ストレージクラスタと称する)は、複数、例えば3台のストレージ装置(以下、ノードと称する)1-1,1-2及び1-3(#1,#2及び#3)から構成される。ノード1-1,1-2及び1-3は、ファイバチャネル、或いはiSCSI(Small Computer System Interface)のようなインタフェイス2によって、ストレージクラスタを利用するホスト(ホストコンピュータ)と接続されている。
ノード1-1,1-2及び1-3は、それぞれ、コントローラ11-1,11-2及び11-3と、所在管理サーバ12-1,12-2及び12-3と、ストレージ13-1,13-2及び13-3とから構成される。
コントローラ11-i(i=1,2,3)はホストに対して論理ボリュームを提供する。ここでは、ストレージ13-1,13-2及び13-3の後述する物理ボリュームを統合することで、論理ボリュームLVol=1がホストに提供されるものとする。コントローラ11-iはホストからのアクセス要求を受け付ける。アクセス要求は、アクセスされるべき論理ボリューム内の論理ブロックを示すアドレス(論理ブロックアドレス)LBAを含む。コントローラ11-iは、要求された論理ブロックを含む論理エクステントがどのノードのストレージに格納されているか、後述するLMMT112aを参照して所在管理サーバ12-j(j=1,2,3)に問い合わせる。コントローラ11-iは、問い合わせに対して所在管理サーバ12-jから通知されたノードのストレージに対してアクセスを行う。
図2は、コントローラ11-iの構成を示すブロック図である。コントローラ11-iは、ターゲットインタフェイス111、サーバ特定部112及び入出力マネージャ(IOマネージャ)113を含む。
ターゲットインタフェイス111は、ホストからのアクセス要求を受け付け、要求された論理ボリュームの論理ブロックアドレスLBA(の示す論理ブロック)が位置する論理エクステントを特定する。ここでは、論理エクステントを識別する論理エクステントID(LEID)が、(LEID=LBA/エクステントサイズ)の演算によって特定される。ターゲットインタフェイス111は、特定された論理ボリューム内の論理エクステントがどのストレージに格納されているかをサーバ特定部112を介して所在管理サーバ12-jに問い合わせる。この問い合わせは、論理ボリューム/論理エクステントを識別する論理ボリュームID(LVol)/論理エクステントID(LEID)を含む。ターゲットインタフェイス111は、所在管理サーバ12-iに対する問い合わせに応じてサーバ特定部112を介して通知されたストレージに対してIOマネージャ113を介してアクセスし、ホストに対して応答する。
サーバ特定部112は、ターゲットインタフェイス111からの問い合わせを受け渡す所在管理サーバ12-jを特定する。以下の説明では、ターゲットインタフェイス111からの問い合わせに含まれている論理ボリュームID及び論理エクステントIDで示される論理エクステントをターゲット論理エクステントと呼ぶこともある。所在管理サーバ12-jは、このターゲット論理エクステントを格納するストレージの所在を管理するサーバとして特定される。
サーバ特定部112は、ターゲット論理エクステントの所在を管理する所在管理サーバを特定するために、第1のマッピングテーブルとしての論理エクステント−所在管理サーバマッピングテーブル(LMMT:LogicalExtent to ManagementServer Mapping Table)112aを有する。LMMT112aは、論理エクステントをどのストレージが格納しているか、その所在に関して責任を負う(つまり所在を管理する)所在管理サーバを提供するノードのID(MS)を保持する。サーバ特定部112は、コントローラ11-1からの問い合わせを特定された所在管理サーバに受け渡す。サーバ特定部112は、ターゲットインタフェイス111からの上記問い合わせに対する所在管理サーバ12-jからの応答(ターゲット論理エクステントが格納されているストレージのノードID(PVol)を当該ターゲットインタフェイス111に受け渡す。サーバ特定部112はまた、キャッシュ112bを有する。このキャッシュ112bについては、後述する第5の実施形態で説明する。
IOマネージャ113は、コントローラ11-iとストレージ13-jとの間のインタフェイスを提供する。
再び図1を参照すると、所在管理サーバ12-i(i=1,2,3)は、コントローラ11-j(j=1,2,3)によって問い合わせられた論理エクステントを格納しているストレージのノードIDを調べて、そのノードIDを当該コントローラ11-jに通知する。所在管理サーバ12-iは、自身が担当する論理エクステントについて、その論理エクステントがどのノードIDのストレージ(物理ボリューム)に格納されているかを管理するための、第2のマッピングテーブルとしての論理エクステント−ストレージマッピングテーブル(LSMT:Logical Extent to Storage Mapping Table)LSMT120-iを有する。つまり所在管理サーバ12-1,12-2及び12-3は、それぞれLSMT120-1,120-2及び120-3を有する。
ストレージ13-1,13-2及び13-3は、それぞれ物理ボリューム130-1,130-2及び130-3(PVol=1,PVol=2及びPVol=3)を有する。ストレージ13-i(i=1,2,3)は論理エクステントを物理エクステントにマッピングして物理ボリューム130-i内に格納する。ストレージ13-iは、コントローラ11-iからの入出力要求(IO要求)を受け付ける。このIO要求は、アクセスされるべき論理ボリューム内の論理エクステントのID(LEID)を含む。ストレージ13-iは、この論理エクステントと対応付けられている物理エクステントを調べる。ストレージ13-iは、この物理エクステントに対してIOを行い、コントローラ11-iに対して応答する。
図3は、ストレージ13-iの構成を示す。ストレージ13-iは、IOドライバ131、論理エクステント−物理エクステント管理部(LP管理部)132及びディスク133を含む。
IOドライバ131は、ストレージ13-iとコントローラ11-iとのインタフェイスを提供する。
LP管理部132は、論理エクステントと物理エクステントとの対応を管理する。LP管理部132は、論理エクステントが、自身の物理ボリューム130-iのどの物理エクステントに対応させて格納されているかを示す、第3のマッピングテーブルとしての論理エクステント−物理エクステントマッピングテーブル(LPMT:LogicalExtent to PhysicalExtent Mapping Table)132aを保持する。このように、本実施形態で適用されるLPMT132aは、[背景技術]で述べたLPMTと異なり、全論理ボリューム分のマッピング情報を持たないことに注意されたい。また、LPMT132aの内容は、各ストレージ13-i毎に異なることにも注意されたい。
ディスク133は、物理ボリューム130-i(PVol=i)を有する。物理ボリューム130-iは物理エクステント単位で管理される。また、物理ボリューム130-iへのアクセスの単位はブロックであり、物理エクステントは、複数のブロックから構成される。
また、図1のストレージクラスタは、当該クラスタの構成の計画・管理を司る構成管理部(図示せぬ)を有する。この構成管理部は、ボリューム作成時に、論理ボリューム/論理エクステントの格納先となる物理ボリューム/物理エクステントを決定する。構成管理部はまた、エクステントや後述する所在管理サービスの移動/コピー(冗長化)のための移動元/移動先を決定する。構成管理部は更に、オンデマンドでエクステント割り付けの割り付け先を決定する。この構成管理部が、ノード1-1〜1-3から独立に設けられても、当該ノード1-1〜1-3のいずれかに設けられても構わない。
本実施形態において、構成管理部は、以下の手順で論理ボリュームを作成する。
(a)構成管理部は、論理ボリュームを構成する論理エクステントの各々を、どのノードIDのストレージに格納するか決定する。構成管理部は、論理エクステントの各々に、決定されたストレージの物理エクステントを割り付ける。構成管理部は、ストレージ13-1〜13-3毎に、そのストレージの物理エクステントと当該物理エクステントが割り付けられた論理エクステントとの対応を示すLPMT132aを生成して、そのストレージに保持する。
(b)構成管理部は、論理エクステントが割り付けられた物理エクステントを格納するストレージ(物理ボリューム)から、その論理エクステントの所在を管理するサービス(所在管理サービス)をノード1-1〜1-3のうちのいずれのノードの所在管理サーバに担当させるかを決定する。構成管理部は、所在管理サーバ12-1〜12-3毎に、その所在管理サーバが担当する論理エクステントと物理ボリュームとの対応を示すLSMT120-1〜120-3を生成して、その所在管理サーバ12-1〜12-3内に設定する。なお、後述する第2の実施形態のように、ストレージクラスタ内の全ての所在管理サーバ12-1〜120-3にLSMTが設定される必要はない。
(c)構成管理部は、LMMT112aを生成して全コントローラ11-1〜11-3に配布する。LMMT112aは先に述べたように、論理ボリュームを構成する論理エクステント毎に、その論理エクステントが割り付けられている物理エクステントを格納するストレージ(物理ボリューム)をどの所在管理サーバに問い合わせればよいかを示す。
このようにして、論理ボリュームが作成される。すると、作成された論理ボリュームに対してホストからアクセスすることが可能となる。ホストからの論理ボリュームに対するアクセスは、ホストからノード1-1〜1-3のうちの任意のノード1-iのコントローラ11-iに対してパスを張ることで行われる。
以下、例えばホストからノード1-1(i=1の場合)に対してパスが張られた後に、当該ホストからアクセス要求が発行された場合の処理の流れについて、図4及び図5を参照して説明する。図4は処理の手順を示すフローチャート、図5は情報の流れを示す図である。図5における矢印A1〜A8は、図4のフローチャートにおけるステップS1〜S8にそれぞれ対応する。
まず、ホストからノード1-1のコントローラ11-1に含まれているターゲットインタフェイス111に対してアクセス要求(IO要求)が発行されたものとする。また、このアクセス要求が、ある論理ボリュームLVol=LVolx(例えばLVol=1)のある論理ブロックアドレスLBA=LBAxに対するアクセスを要求しているものとする。
ターゲットインタフェイス111は、ホストからのアクセス要求を受け付ける(ステップS0)。するとターゲットインタフェイス111は、ホストからのアクセス要求で指定されるアクセスされるべき論理ボリュームLVol=LVolx上のLBA=LBAxから、当該LBAxが位置する論理エクステントのID=LEIDxを次式
LEIDx=LBAx/エクステントサイズ
により求める(ステップS1)。ここで、論理ボリュームLVol=LVolx=1上の論理エクステントIDがLEIDxの論理エクステントを、論理エクステント(LVolx,LEIDx)と表現する。
ターゲットインタフェイス111は、論理ボリューム名(ID:LVol=LVolx=1)及び求められた論理エクステントID=LEIDxをサーバ特定部112に渡すことにより、当該論理エクステントID=LEIDxの論理エクステント(LVolx,LEIDx)が、どのノードのストレージに格納されているかを問い合わせる(ステップS2)。
サーバ特定部112は、ターゲットインタフェイス111によって渡された論理エクステントID=LEIDxの論理エクステント(LVolx,LEIDx)がどのノードのストレージに格納されているかを管理している所在管理サーバを提供するノードのID(MS=MIDx)を、LMMT112aに基づいて特定する(ステップS3)。ここでは、サーバ特定部112と同じノード1-1、つまり所在管理サーバ12-1を提供するノード1-1のID(MS=MIDx=1)が特定されたものとする。本実施形態において、ノード1-1〜1-3のストレージ13-1〜13-3は物理ボリューム130-1〜130-3を有する。つまり、ノード1-1〜1-3のストレージ13-1〜13-3は、それぞれ1つの物理ボリュームを有する。このため本実施形態では、所在管理サーバ12-1〜12-3を提供するノード1-1〜1-3のID(MS)と当該ノード1-1〜1-3のストレージ13-1〜13-3が有する物理ボリューム130-1〜130-3のID(PVol)とは一致し、1〜3である。
サーバ特定部112は、特定されたノード1-1の所在管理サーバ12-1に対して、ターゲットインタフェイス111からの問い合わせを受け渡す(ステップS4)。即ち、サーバ特定部112は所在管理サーバ12-1に対して、論理エクステントID=LEIDxの論理エクステント(ターゲット論理エクステント)(LVolx,LEIDx)に対応する物理エクステントを格納しているストレージのノードID(PVol)=SIDxを問い合わせる。
所在管理サーバ12-1は、どのノードID=SIDxのストレージが、論理エクステント(LVolx,LEIDx)に対応する物理エクステントを格納しているかを、LSMT120-1に基づいて調べて、そのノードID=SIDxを、問い合わせ元のサーバ特定部112に対して通知する(ステップS5)。
サーバ特定部112は、所在管理サーバ12-1から通知されたノードID=SIDxを、ターゲットインタフェイス111からの問い合わせに対する回答として当該ターゲットインタフェイス111に渡す(ステップS6)。ここでは、ストレージ13-1のノードID=SIDxがターゲットインタフェイス111に渡されたものとする。
ターゲットインタフェイス111は、サーバ特定部112によって渡されたノードID=SIDxで示されるノード1-1のストレージ13-1に対し、論理エクステント(LVolx,LEIDx)に対応する物理エクステントへのアクセスをIOマネージャ113を介して要求する(ステップS7)。
ストレージ13-1のIOドライバ131は、要求された論理エクステント(LVolx,LEIDx)に、当該ストレージ13-1(物理ボリューム130-1)内のどのID(=PEIDx)の物理エクステント(以下、物理エクステントPEIDxと表現する)が対応付けられているかを、LPMT132aに基づいて調べる(ステップS8)。このステップS8において、IOドライバ131は、論理エクステント(LVolx,LEIDx)に対応する物理エクステントPEIDxに対してアクセスし、コントローラ11-1のIOマネージャ113に対して応答する。ターゲットインタフェイス111は、ストレージ13-1のIOドライバ131からの応答をIOマネージャ113から受け取って、ホストに返す(ステップS9)。
以上の説明では、ホストからのアクセス要求を受け付けたターゲットインタフェイスと、ターゲット論理エクステントがどのストレージに格納されているかを管理している所在管理サーバと、当該ターゲット論理エクステントを物理エクステント内に格納しているストレージとが、いずれも同一のノード1-1に属する場合を想定している。
図6は、上述のターゲットインタフェイス、所在管理サーバ及びストレージが、それぞれ別々のノードに属する場合の情報の流れを示す。図6における矢印B1〜B8は、図4のフローチャートにおけるステップS1〜S8にそれぞれ対応する。
図7は、図1のシステムにおいて、論理ボリュームLVolがLVol=1であって、当該論理ボリュームLVol=1を、LEIDがLEID=1〜LEID=4の4つの論理エクステントから構成した場合のシステム構成を示す。また、図8は図7の状態におけるLMMT112aのデータ構造例を、図9は図7の状態におけるLSMT120-i、例えばノード1-1のLSMT120-1のデータ構造例を、図10は図7の状態における例えばノード1-1のLPMT132aのデータ構造例を示す。
LMMT112aは、論理ボリュームLVol=1を構成する論理エクステントの数に一致するエントリを有する。LMMT112aの各エントリは、論理ボリュームのID(論理ボリューム番号LVol)と、当該LVolで示される論理ボリュームに含まれる論理エクステントのID(LEID)と、当該LVol及びLEIDで示される論理エクステント(LVol,LEID)をどのストレージ(物理ボリューム)が格納しているか、その所在を管理する所在管理サーバ12-jを提供するノードのID(MS)とを保持する。図8の例では、論理ボリュームLVol=1を構成する論理エクステントが、LEID=1〜LEID=4の4つであることが示されている。
LSMT120-i(120-1)は、所在管理サーバ12-i(12-1)が管理する論理エクステントの数に一致するエントリを有する。LSMT120-i(120-1)の各エントリは、論理ボリュームのID(LVol)と、当該LVolで示される論理ボリュームに含まれる論理エクステントのID(LEID)と、当該LVol及びLEIDで示される論理エクステントが格納されているストレージ(物理ボリューム)のノードID(物理ボリューム番号PVol)とを保持する。
LPMT132aは、物理ボリューム130-i(130-1)を構成する物理エクステントの数に一致するエントリを有する。LPMT132aの各エントリは、物理ボリューム130-iを構成する物理エクステントのID(PEID)と、当該PEIDで示される物理エクステントが割り付けられる論理エクステントを含む論理ボリュームのID(LVol)と、当該論理エクステントのID(LEID)と、当該論理エクステントをどのストレージ(物理ボリューム)が格納しているか、その所在を管理する所在管理サービス(所在管理サーバ12-j)を提供するノードのID(MS)とを保持する。このLPMT132a内のエントリのMSは、所在管理サービスの逆引きに用いられる。図10の例では、物理ボリューム130-i(130-1)を構成する物理エクステントが、PEID=1〜PEID=3の3つであることが示されている。
図7において、コントローラ11-1のLMMT112aのエントリから所在管理サーバ12-1〜12-3のLSMT120-1〜120-3へ向かう一点鎖線の矢印は、LMMT112aのエントリの情報によって参照されるLSMT120-1〜120-3のエントリを指す。同様に、LSMT120-1〜120-3のエントリからストレージ13-1〜13-2のLPMT132aへ向かう一点鎖線の矢印は、LSMT120-1〜120-3のエントリの情報によって参照されるLPMT132aのエントリを指す。同様に、ストレージ13-1〜13-2のLPMT132aのエントリからストレージ13-1〜13-2の物理ボリューム130-1〜130-3へ向かう一点鎖線の矢印は、LPMT132aの情報に基づいてアクセスされる物理エクステントを指す。
次に、図7を参照して、ホストからノード1-1に対してパスが張られた後に、当該ホストからの、論理ボリュームLVol=1/論理エクステントLEID=1で指定されるブロックに対するアクセスの流について説明する。
まず、図7において矢印B1で示されるように、ホストからノード1-1に対して、論理ボリュームLVol=1内のあるブロックへのアクセス要求が発行されたものとする。ノード1-1のコントローラ11-1(に含まれているターゲットインタフェイス111)は、アクセスされるべきブロックがLEID=1の論理エクステント(論理エクステントLEID=1)に格納されていることを求める。
コントローラ11-1のターゲットインタフェイス111は、論理エクステントLEID=1がどのノードのストレージに格納されているかを、当該コントローラ11-1内のサーバ特定部112に問い合わせる。サーバ特定部112は、自身のLMMT112a内のLEID=1が保持されているエントリ(図8の例では、1行目のエントリ)を参照する。これによりサーバ特定部112は、論理ボリュームLVol=1/論理エクステントLEID=1に対応する所在管理サーバがノード1-1に存在することを認識する。
コントローラ11-1のサーバ特定部112は、図7において矢印B2で示されるように、ノード1-1に存在する所在管理サーバ12-1に対して、論理ボリュームLVol=1/論理エクステントLEID=1がどのノードのストレージ(物理ボリューム)に格納されているかを問い合わせる。
所在管理サーバ12-1は、自身のLSMT120-1内でLVol=1/LEID=1が保持されているエントリ(図9の例では、1行目のエントリ)を参照して、論理ボリュームLVol=1/論理エクステントLEID=1の実体がノード1-1のストレージ(物理ボリューム)に格納されていることを認識する。所在管理サーバ12-1は、ノード1-1のID(SIDx=PVol=1)を、図7において矢印B3で示されるように、コントローラ11-1のサーバ特定部112に回答する(ステップB3)。これを受けてサーバ特定部112は、ノード1-1のID(SIDx=PVol=1)をターゲットインタフェイス111に通知する。
ターゲットインタフェイス111(コントローラ11-1のターゲットインタフェイス111)は、図7において矢印B4で示されるように、サーバ特定部112によって通知されたノードIDで指定されるストレージ、即ちノード1-1のストレージ13-1に対して、論理ボリュームLVol=1/論理エクステントLEID=1へのアクセスをIOマネージャ113を介して要求する。
ノード1-1のストレージ13-1は、自身のLPMT132a内の論理ボリュームLVol=1/論理エクステントLEID=1が保持されているエントリ(図10の例では、1行目のエントリ)を参照する。これによりストレージ13-1は、論理ボリュームLVol=1/論理エクステントLEID=1に対応する物理エクステントのPEIDがPEID=1であることを認識する。ストレージ13-1は、このPEID=1の物理エクステント(物理エクステントPEID=1)にアクセスして、図7において矢印B5で示されるように、コントローラ11-1に対して応答する。
本実施形態において、各ノード1-1〜1-3のコントローラ11-1〜11-3が有するLMMT112aは同一の内容である。つまり各ノード1-1〜1-3(コントローラ11-1〜11-3)はLMMT112aを共有する。このためホストは、ストレージクラスタを構成するノード1-1〜11-3のいずれのノード(のコントローラ)に対してもパスを張ることができる。例えば、ホストがパスを張っている先のコントローラが異常停止した場合、或いは当該コントローラの負荷が高まったときなどは、ホストは別のコントローラに対してパスを張り替えることができる。
LMMT112aなど、全ノード1-1〜11-3が共有する情報(共有情報)は、当該ノード1-1〜11-3のコントローラ11-1〜11-3が有する不揮発性メモリの記憶領域、当該ノード1-1〜11-3のストレージ13-1〜13-3の記憶領域、或いはストレージ13-1〜13-3のうちの任意のストレージの記憶領域に格納される。コントローラ11-1〜11-3は、この記憶領域を参照することにより共有情報を管理する。この管理のために、コントローラ11-1〜11-3は上記記憶領域のアドレスを共有する。共有情報はLMMT112aの他に、論理ボリューム構成情報を含む。論理ボリューム構成情報は、図1のストレージクラスタがホストに対してどのような論理ボリュームを提供するかを示す。上述した各ノード1-1〜11-3が情報を共有する構成により、従来技術と比較して、当該各ノード1-1〜11-3が管理しなければならない情報量を減らすことができる。
次に、論理エクステントを構成する物理エクステントのデータを、ストレージをまたがって別の物理エクステントにマイグレート(移動)する場合の動作について、図11を参照して説明する。
まず、例えば構成管理部によってデータの移動元及び移動先が決定される。ここでは、図1のストレージクラスタが図10に示す状態にあるときに、データの移動元として、論理エクステントLEID=4に対応付けられている、ノード1-1のストレージ13-1内の物理ボリュームPVol=1(130-1)/物理エクステントPEID=2が、移動先として、ノード1-2のストレージ13-2内の物理ボリュームPVol=2(130-2)/物理エクステントPEID=1が、それぞれ決定されたものとする。
この場合、ノード1-1のストレージ13-1内の物理ボリュームPVol=1/物理エクステントPEID=2に格納されているデータが、図11おいて矢印C1で示されるように、ノード1-2のストレージ13-2内の物理ボリュームPVol=2/物理エクステントPEID=1に移動される。
また、移動元のストレージ13-1及び移動先のストレージ13-2の各々のLPMT132aが書き換えられる。ここでは、ストレージ13-1のLPMT132a内のPEID=2が保持されているエントリのLVol,LEID,MSがそれぞれ「1」→「NULL」,「4」→「NULL」,「1」→「NULL」に書き換えられ、ストレージ13-2のLPMT132a内のPEID=1が保持されているエントリのLVol,LEID,MSが、図11おいて矢印C2で示されるように、それぞれ「NULL」→「1」,「NULL」→「4」,「NULL」→「1」に書き換えられる。
また、論理エクステントLEID=4を参照していた(つまり論理エクステントLEID=4に関する所在管理サービスを担当している)所在管理サーバ12-1のLSMT120-1が書き換えられる。ここでは、LSMT120-1内のLEID=4が保持されているエントリのPVolが、図11おいて矢印C3で示されるように、「1」→「2」に書き換えられる。
このように本実施形態において、論理エクステント(LEID=4)のマイグレーションに係わる通知(更新)は、その論理エクステント(LEID=4)を管理する所在管理サーバ(12-1)に対して行われるだけで良い。つまり、上記の通知はストレージクラスタを構成する全てのノード1-1〜1-3に対して行われる必要がない。このため、通知コストを小さくすることができる。
次に、論理エクステントを構成する物理エクステントのデータを、ストレージをまたがって別の物理エクステントにコピーする場合の動作について、図12を参照して説明する。このようなコピー処理は、論理エクステントを構成する物理エクステントを冗長化し、耐障害性を高め、また並列処理によりリードアクセスを高速化するために行われる。
まず、例えば構成管理部によってコピー元及びコピー先が決定される。ここでは、図1のストレージクラスタが図11に示す状態にあるときに、データのコピー元として、論理エクステントLEID=4に対応付けられている、ノード1-2のストレージ13-2内の物理ボリュームPVol=2(130-2)/物理エクステントPEID=1が、コピー先として、ノード1-3のストレージ13-3内の物理ボリュームPVol=1(130-3)/物理エクステントPEID=2が、それぞれ決定されたものとする。
この場合、ノード1-2のストレージ13-2内の物理ボリュームPVol=2/物理エクステントPEID=1に格納されている論理ボリュームLVol=1/論理エクステントLEID=4のデータが、図12において矢印D1で示されるように、ノード1-3のストレージ13-3内の物理ボリュームPVol=1/物理エクステントPEID=2にコピーされる。このコピーは、例えばストレージ13-2及び13-3のIOドライバ131によって行われる。
また、コピー先のストレージ13-3のLPMT132aが書き換えられる。ここでは、ストレージ13-2のLPMT132a内のPEID=1が保持されているエントリのLVol=1,LEID=4,MS=1が、図12において矢印D2で示されるように、ストレージ13-3のLPMT132a内のPEID=2が保持されているエントリのLVol,LEID,MSにコピーされる。
また、論理エクステントLEID=4を参照していた所在管理サーバ12-1のLSMT120-1が、例えばストレージ13-1のIOドライバ131によって書き換えられる。ここでは、ノード1-1の所在管理サーバ12-1が管理するLSMT120-1内の、LEID=4が保持されているエントリのPVolに、図12において矢印D3で示されるように、「3」が追加される。このLSMT120-1内のエントリの書き換えにより、論理エクステントLEID=4が、ノード1-2の物理ボリュームPVol=2に加えて、新たにノード1-3の物理ボリュームPVol=3にも対応付けられる。つまり、論理エクステントLEID=4を構成する物理エクステントが、ノード1-2の物理ボリュームPVol=2及びノード1-3の物理ボリュームPVol=3に冗長化される。
論理エクステントを構成する物理エクステントの冗長化構成後に、ホストからコントローラ11-iに対して、当該論理エクステントへのライトアクセスの要求が発生したものとする。この場合、コントローラ11-iは、上記論理エクステントに対応する複数の物理エクステントの全て対してライトを行う。したがって、論理エクステントLEID=4へのライトアクセスが発生した場合であれば、ノード1-2の物理ボリュームPVol=2/物理エクステントPEID=1及びノード1-3の物理ボリュームPVol=3/物理エクステントPEID=2に対してデータライトが行われる。リードの場合はこの限りではない。つまり、物理ボリュームPVol=2/物理エクステントPEID=1または物理ボリュームPVol=3/物理エクステントPEID=2の一方からのデータリードが行われる。
次に、論理エクステントに関する所在管理サービスを、ノードをまたがってマイグレート(移動)する場合の動作について、図13を参照して説明する。この所在管理サービスのマイグレーションは、当該所在管理サービスの負荷分散、或いはノードを構成するハードウェアの交換/更新などのために行われる。
論理エクステントに関する所在管理サービスのマイグレーションに際し、例えば構成管理部により移動元及び移動先が決定される。ここでは、図1のストレージクラスタが図12に示す状態にあるときに、所在管理サービスの移動元として、論理ボリュームLVol=1/論理エクステントLEID=4に関するネームサービスを担当する、ノード1-1の所在管理サーバ12-1が決定されたものとする。また、そのネームサービスの移動先として、ノード1-2の所在管理サーバ12-2が決定されたものとする。
すると、移動元ノード1-1の論理ボリュームLVol=1/論理エクステントLEID=4に関するLSMT120-1内エントリの情報が、図13において矢印E1で示されるように、移動先ノード1-2のLSMT120-2にコピーされる。
移動元ノード1-1の例えば所在管理サーバ12-1または移動先ノード1-2の例えば所在管理サーバ12-2は、論理ボリュームLVol=1/論理エクステントLEID=4に関する所在管理サービスがノード1-2に移動されたことを、全てのコントローラ11-1〜11-3に通知する。
コントローラ11-1〜11-3の各々は、論理ボリュームLVol=1/論理エクステントLEID=4に関するLMMT112a内のエントリのMSを、図13おいて矢印E2で示されるように、ノード1-1(の所在管理サーバ12-1)のID(MS=1)からノード1-2(の所在管理サーバ12-2)のID(MS=2)に書き換える(張り替える)。
また、論理ボリュームLVol=1/論理エクステントLEID=4を管理するノード1-2及び1-3のストレージ13-2及び13-3は、自身のLPMT132a中の論理ボリュームLVol=1/論理エクステントLEID=4に関する所在管理サービスの逆引きを、図13おいて矢印E3で示されるように、ノード1-1(の所在管理サーバ12-1)のID(MS=1)からノード1-2(の所在管理サーバ12-2)のID(MS=2)に変更する。ストレージ13-2及び13-3は、この変更を所在管理サービス移動の通知元ノードに応答する。
ここで、全コントローラ11-1〜11-3がLMMT112aを書き換えるには、A)所在管理サーバ(ここでは所在管理サーバ12-1または12-2)によるブロードキャスト(一斉通知)による方法、B)コントローラのサーバ特定部(ここではコントローラ11-1または11-2のサーバ特定部112)によるブロードキャストによる方法、C)移動元からコントローラ11-1〜11-3の各々に対する個々の更新通知による方法などが適用可能である。
ノード1-1の例えば所在管理サーバ12-1は、全ノード1-1〜1-3からの応答を確認して、当該所在管理サーバ12-1の論理ボリュームLVol=1/論理エクステントLEID=4に関するLSMT120-1内のエントリを削除する。これにより、移動元ノード1-1の論理ボリュームLVol=1/論理エクステントLEID=4に関するLSMT120-1内エントリのデータが、移動先ノード1-2のLSMT120-2に移動されたことになる。つまり、論理ボリュームLVol=1/論理エクステントLEID=4に関する移動元ノード1-1のLSMT120-1及び移動先ノード1-2のLSMT120-2内のエントリが、それぞれ書き換えられたことになる。
次に、論理エクステントに関する所在管理サービスを、ノードをまたがってコピーする場合の動作について、図14を参照して説明する。
所在管理サービスの多重化がなされていない状態では、当該所在管理サービスを担当するあるノードが故障した場合、ホストからのアクセス要求が実行できなくなる。そこで、所在管理サービスをノードをまたがってコピーして当該所在管理サービスを多重化(冗長化)することにより、耐障害性向上及び負荷分散を図ることが必要となる。
所在管理サービスをノードをまたがってコピー(冗長化)するに際し、例えば構成管理部によりコピー元及びコピー先が決定される。ここでは、図1のストレージクラスタが図13に示す状態にあるときに、所在管理サービスのコピー元として、論理ボリュームLVol=1/論理エクステントLEID=4に関するネームサービスを担当する、ノード1-2の所在管理サーバ12-2が決定されたものとする。また、そのネームサービスのコピー先として、ノード1-3の所在管理サーバ12-3が決定されたものとする。
すると、コピー元ノード1-2の論理ボリュームLVol=1/論理エクステントLEID=4に関するLSMT120-2内エントリの情報が、図14において矢印F1で示されるように、コピー先ノード1-3のLSMT120-3にコピーされる。
コピー元ノード1-2の例えば所在管理サーバ12-2またはコピー先ノード1-3の例えば所在管理サーバ12-3は、論理ボリュームLVol=1/論理エクステントLEID=4に関する所在管理サービスがノード1-2からノード1-3にも機能分担されたことを、全てのコントローラ11-1〜11-3に通知する。
コントローラ11-1〜11-3の各々は、論理ボリュームLVol=1/論理エクステントLEID=4に関するLMMT112a内のエントリのMS、つまりノード1-2(の所在管理サーバ12-2)のID(MS=2)が設定されているMSに、図14おいて矢印F2で示されるように、ノード1-3(の所在管理サーバ12-3)のID(MS=3)を加える。これにより、論理ボリュームLVol=1/論理エクステントLEID=4に関するLMMT112a内のエントリが、ノード1-2だけでなくノード1-3にも向けられる。
また、論理ボリュームLVol=1/論理エクステントLEID=4を新たに管理するノード1-3のストレージ13-3は、自身のLPMT132a中の論理ボリュームLVol=1/論理エクステントLEID=4に関する所在管理サービスの逆引き(MS)を、図14おいて矢印F3で示されるように、ノード1-2(の所在管理サーバ12-2)だけでなく、ノード1-3(の所在管理サーバ12-3)にも向ける。ストレージ13-3は、この変更を所在管理サービスコピーの通知元ノードに応答する。全コントローラ11-1〜11-3がLMMT112aを書き換えるには、前述した所在管理サービスの移動の場合と同様の方法A),B)またはC)が適用可能である。
以上、複数のノード(ストレージ)にまたがるエクステント移動/コピー及び所在管理サービス移動/コピーについて説明した。しかし、エクステント移動/コピーは1つのノード(ストレージ)の物理ボリューム内でも行うことができる。この場合、そのノード(ストレージ)のLPMT132aを更新するだけで良い。また、例えば所在管理サーバ12-iのLSMT120-i及びストレージ13-iのLPMT132aを冗長化のためにコピーすることも可能である。
次に、図1のストレージクラスタに、新たにノードを参加させる(追加する)場合の動作について説明する。この場合、既にストレージクラスタを構成しているノード1-1〜1-1のいずれかから、当該ストレージクラスタに新たに追加されるノード(新たなノード)に対して、少なくともLMMT112aをコピーする。これにより、新たなノードはIOを実行することができる。
新たなノードにノード1-1〜1-1のいずれかの所在管理サーバの処理(所在管理サービス)を分担させるには、例えば構成管理部と連携して、前述の所在管理サービスをマイグレートする処理を行えば良い。ノードの参加で新たに増えたストレージ内の物理ボリューム/物理エクステントも、構成管理部と連携して、適宜分散して利用することができる。
上述したように本実施形態(第1の実施形態)においては、複数のノード(実施形態では3つのノード)を用いてストレージクラスタを構成したとき、各々のノードが管理しなければならない情報量を減らすことができる。また本実施形態においては、あるノード(のストレージ)の物理ボリューム内で、或いは複数のノード(のストレージ)の物理ボリュームをまたがって、論理エクステントに対応する物理エクステントを移動/コピーする場合に、ストレージクラスタに含まれる全てのコントローラが情報を書き換える必要はないため(所在管理サーバの情報を書き換えるだけで良いため)、コントローラ間での同期更新処理が必要なく、エクステント移動/コピー時の処理を簡単にし、総じて性能を向上させることができる。
[第2の実施形態]
前記第1の実施形態では、ストレージクラスタを構成する各ノード1-1〜1-3は、それぞれコントローラ11-1〜1-3、所在管理サーバ12-1〜12-3及びストレージ13-1〜13-3を備えている。しかし、各ノードが、コントローラ、所在管理サーバ及びストレージの全てを必ずしも備える必要はない。そこで、ストレージクラスタを構成するノードの幾つかが、コントローラ、所在管理サーバ及びストレージの1つまたは2つのみを備える本発明の第2の実施形態について説明する。
図15は本発明の第2の実施形態に係るストレージクラスタ構成のストレージシステムの構成を示すブロック図である。図15において、図7と同様の要素には便宜的に同一参照符号を付してある。図15のストレージシステム(ストレージクラスタ)は、前記第1の実施形態と同様に、3つのノード1-1〜1-3から構成される。図15のストレージクラスタが第1の実施形態と異なるのは、ノード1-1〜1-3のうちノード1-2及び1-3がコントローラ、所在管理サーバ及びストレージの1つまたは2つのみを備える点にある。ここでは、ノード1-1は、第1の実施形態と同様に、コントローラ11-1、所在管理サーバ12-1及びストレージ13-1を備える。これに対し、ノード1-2はコントローラ11-2のみを備え、ノード1-3はコントローラを除く所在管理サーバ12-3及びストレージ13-3を備えている。この図15に示すストレージクラスタの動作自体は、第1の実施形態と同様である。
本実施形態では、ストレージクラスタが3つのノードから構成されているものの、コントローラ、所在管理サーバ及びストレージの数が2つである場合を想定している。しかし、所在管理サーバ及びストレージの数はストレージクラスタ全体で1つであっても構わない。つまり複数のノードから構成されるストレージクラスタにおいて、コントローラの数は少なくとも2つであれば良く、所在管理サーバ及びストレージの数は少なくとも1つであれば良い。この制約のもとで、コントローラ、所在管理サーバ及びストレージの数は適宜増減可能である。つまり本実施形態においては、ストレージクラスタを構成するとき、状況に応じて、必要な機能のみを拡張することができる。
[第3の実施形態]
次に、本発明の第3の実施形態について説明する。この第3の実施形態の特徴は、実際にホストからある論理エクステントへの初回のアクセスが要求されるまで、ストレージ側で当該論理エクステントに対応する物理エクステントの割り付けを行わず、ディスクの有効利用を図ることにある。
図16は、本発明の第3の実施形態に係るストレージクラスタ構成のストレージシステムの構成を示すブロック図である。図16において、図7と同様の要素には便宜的に同一参照符号を付してある。図16のストレージシステム(ストレージクラスタ)は、前記第1の実施形態と同様に、3つのノード1-1〜1-3から構成される。図16のストレージクラスタが第1の実施形態と異なるのは、ホストから論理エクステントへの初回のアクセス、例えばライトアクセスが要求されるまで、ストレージ13-i側で当該論理エクステントに対応する物理エクステントの割り付けを行わない点にある。
図16の例では、論理ボリュームLVol=1/論理エクステントLEID=1及び論理ボリュームLVol=1/論理エクステントLEID=4に対して、ノード1-1における物理ボリューム130-1の物理エクステントの割り付けが行われていない状態が、ストレージ13-1のLPMT132aによって示されている。同様に、論理ボリュームLVol=1/論理エクステントLEID=2に対して、ノード1-2内の物理ボリューム130-2の物理エクステントの割り付けが行われていない状態が、ストレージ13-2のLPMT132aによって示されている。また、論理ボリュームLVol=1/論理エクステントLEID=3に対して、ノード1-3内の物理ボリューム130-3の物理エクステントの割り付けが行われていない状態が、ストレージ13-3のLPMT132aによって示されている。
ここでは、未割り付けの状態は、LPMT132a内で列項目PEIDに“NA(Not Assignment)”が設定されているエントリにより示される。但し、LPMT132a内で列項目PEIDに“NA”が設定されているエントリの他の列項目LVol,LEID及びMSには、それぞれ論理ボリューム、論理エクステント及びノードを指定する情報が設定されている。このことは、論理ボリューム/論理エクステントに対するストレージ(物理ボリューム)の割り付けは行われていることを示す。換言するならば、論理ボリューム/論理エクステントに対するLPMT132a内のエントリ(LVol,LEID)で指定される論理ボリューム/論理エクステントに必要な領域が、当該エントリの列項目MSで指定されるノード上で予約されていることを示す。なお、図16では、LPMT132a内のエントリにおける各列項目の並びが便宜的に変更されている点に注意されたい。
LPMT132a内のエントリ(LVol,LEID)で指定される論理ボリューム/論理エクステントに対して物理エクステントの割り付けが行われると、当該エントリ中の列項目PEIDが、“NA”から当該割り付けられた物理エクステントのIDで書き換えられる。
この図16に示すストレージクラスタの基本的な動作は、第1の実施形態と同様である。但し、論理ボリューム作成時と、論理エクステントへの初回のアクセス(ライトアクセス)時の挙動は、第1の実施形態と異なる。
そこで、論理ボリューム作成時において第1の実施形態と異なる点について説明する。第1の実施形態では、前述した(a),(b),(c)の手順で論理ボリュームが作成される。これに対して第3の実施形態では、論理エクステントへの初回のライトアクセス時に当該論理エクステントに対する物理エクステントの割り付けが行われるため、上記(a)の動作が次の(a1)のようになる。
(a1)構成管理部は、作成されるべき論理ボリュームの容量を確保するために、当該論理ボリュームを構成する論理エクステントの各々を、どのノードID(PVol)のストレージ(物理ボリューム)に格納するか決定する。但し、上記(a)とは異なり、各論理エクステントへの物理エクステントの割り付けは行われない。構成管理部は、ストレージ13-1〜13-3毎に、各論理エクステントに対して物理エクステントが未割り付け状態にあることを示すLPMT132aを生成して、そのストレージに保持する。
次に、図16のストレージクラスタにおける、ホストから論理エクステントへのライトアクセス時の動作について、図1乃至図3を援用しながら、図17のフローチャートを参照して説明する。図17において、図4のフローチャートと同様の部分には同一符号を付してある。
図17のフローチャートが、図4のフローチャートと異なるのは、ある論理エクステントへの初回のアクセスがライトアクセスの場合に、当該論理エクステントに物理エクステントが割り付けられていないため、割り付け先の物理エクステント先を決定する処理(ステップS18)が追加されている点である。
今、第1の実施形態と同様に、ホストからノード1-1のコントローラ11-1に含まれているターゲットインタフェイス111に対してアクセス(ライトアクセス)が要求されたものとする。この場合、図4のフローチャートと同様に、まずステップS0〜S7が実行される。但し図17では、ステップS0〜S7のうちのステップS1〜S6が省略されている。ステップS7では、ノードID=SIDxで示されるノードのストレージ、例えばノード1-1のストレージ13-1に対し、論理エクステント(LVolx,LEIDx)に対応する物理エクステントへのアクセスが要求される。するとストレージ13-1では、ステップS18が次のように実行される。
まず、ストレージ13-1のIOドライバ131は、論理エクステント(LVolx,LEIDx)に対応付けられているLPMT132a内のエントリの列項目PEIDを参照する(ステップS18a)。ストレージ13-1は、このPEIDが非NAであるか否かにより、論理エクステント(LVolx,LEIDx)に物理エクステントが割り付けられているか否かを判定する(ステップS18b)。
もし、論理エクステント(LVolx,LEIDx)に物理エクステントが割り付けられていないならば、IOドライバ131は構成管理部と連携して、論理エクステント(LVolx,LEIDx)にストレージ13-1(物理ボリューム130-1)内の適当な物理エクステントPEIDxを割り付ける(ステップS18c)。このステップS18cにおいて、IOドライバ131は、論理エクステント(LVolx,LEIDx)に対応付けられているLPMT132a内のエントリの列項目PEIDを、“NA”から物理エクステントPEIDxのID(=PEIDx)に更新する。そしてIOドライバ131は、物理エクステントPEIDxに対してアクセスし、コントローラ11-1のIOマネージャ113に対して応答する(ステップS18d)。
一方、論理エクステント(LVolx,LEIDx)に物理エクステント(例えば物理エクステントPEIDx)が既に割り付けられているならば(ステップS18b)、IOドライバ131はステップS18cをスキップしてステップS18dを実行する。
このように第3の実施形態においては、ある論理エクステントに対する初回のアクセスがライトアクセスの場合に、当該論理エクステントに物理エクステントが割り付けられる。これに対し、ある論理エクステントに対する初回のアクセスがリードアクセスの場合、つまりデータがライトされていない論理エクステントに対してリードアクセスが発生した場合には、当該論理エクステントに物理エクステントを割り付けることも、割り付けないことも可能である。割り付ける場合は、IOドライバ131によって上記ステップS18が実行されれば良い。いずれの場合にも、リード要求に対する応答として、全てゼロなどの適切なデータが返されるようにすれば良い。なお、本実施形態(第3の実施形態)で適用される物理エクステントの割り付け方法は、第2の実施形態にも同様に適用可能である。本実施形態においては、各ストレージにおいて、ホストからアクセスが要求された際の状態に応じて、最適な物理エクステントの割り付けが可能になる。
[第4の実施形態]
次に本発明の第4の実施形態について説明する。この第4の実施形態の特徴は、実際にホストからある論理エクステントへの初回のアクセスが要求されるまで、当該論理エクステントの領域の予約が行われない点にある。
図18は、本発明の第4の実施形態に係るストレージクラスタ構成のストレージシステムの構成を示すブロック図である。図18において、図7と同様の要素には便宜的に同一参照符号を付してある。図18のストレージシステム(ストレージクラスタ)は、前記第1の実施形態と同様に、3つのノード1-1〜1-3から構成される。図18のストレージクラスタが第1の実施形態と異なるのは、実際にホストからある論理エクステントへの初回のアクセスが要求されるまで、当該論理エクステントへの物理エクステントの割り付けだけでなく、当該論理エクステントへのストレージ(物理ボリューム)の割り付け(予約)も行われない点にある。
このように、図18のストレージクラスタでは、ある論理エクステントへの初回のアクセスが要求されるまで、当該論理エクステントの領域の予約が行われないため、論理ボリューム作成時には、ストレージ13-1〜13-3のLPMT132aのエントリを予約する必要もない。論理エクステントに対するストレージ(物理ボリューム)及び物理エクステントの割り付けは、コントローラ11-i(i=1,2,3)からの所在管理サーバ12-jに対する問い合わせに応じて当該所在管理サーバ12-j(j=1,2,3)によって行われる。この物理エクステントの割り付け計画は、例えば構成管理部により行われる。
図18の例では、論理ボリュームを構成する各論理エクステントに対するストレージ(物理ボリューム)の割り付けが未だ行われていない状態が示されている。つまり図18の例では、論理ボリュームLVol=1/論理エクステントLEID=1及び論理ボリュームLVol=1/論理エクステントLEID=4に対して、ストレージ(物理ボリューム)の割り付けが行われていない状態が、所在管理サーバ12-1のLSMT120-1によって示されている。同様に、論理ボリュームLVol=1/論理エクステントLEID=2に対して、ストレージ(物理ボリューム)の割り付けが行われていない状態が、所在管理サーバ12-2のLSMT120-2によって示されている。また、論理ボリュームLVol=1/論理エクステントLEID=3に対して、ストレージ(物理ボリューム)の割り付けが行われていない状態が、所在管理サーバ12-3のLSMT120-3によって示されている。ここでは、ストレージ(物理ボリューム)の未割り付けの状態は、LSMT120-1〜120-3内で列項目PVolに“NA”が設定されているエントリにより示される。図18において、LSMT120-1〜120-3のエントリから、ストレージ13-1〜13-3のLPMT132aのエントリに向かう矢印が描かれていないことに注意されたい。
この図18に示すストレージクラスタの基本的な動作は、第1の実施形態と同様である。但し、論理ボリューム作成時と、論理エクステントへの初回のアクセス時の挙動は、第1の実施形態と異なる。
そこで、論理ボリューム作成時において第1の実施形態と異なる点について説明する。第1の実施形態では、前述した(a),(b),(c)の手順で論理ボリュームが作成される。これに対して第4の実施形態では、論理エクステントへの初回アクセス時に当該論理エクステントを格納するストレージ(物理ボリューム)が決定され、この決定されたストレージ(物理ボリューム)内で当該論理エクステントに対して物理エクステントが割り付けられる。このため、上記(a),(b)の動作が次の(a2),(b2)のようになる。
(a2)構成管理部は、作成されるべき論理ボリュームを構成する論理エクステントの各々を、どのノードID(PVol)のストレージ(物理ボリューム)に格納するか決定しない。このため構成管理部は、ストレージ13-1〜13-3毎に、図18に示されるように空の状態のLPMT132aを生成して、そのストレージに保持する。
(b2)構成管理部は、どのノードの所在管理サーバに論理エクステントの所在管理サービスを担当させるかを決定する。但し、その論理エクステントをどのストレージ(物理ボリューム)に格納するかは決定しない。このため構成管理部は、所在管理サーバ12-1〜12-3毎に、その所在管理サーバが担当する論理エクステントについてのエントリ情報であって、列項目PV0lが“NA”のエントリの情報を含むLSMT120-1〜120-3を生成して、その所在管理サーバ12-1〜12-3内に設定する。なお、第2の実施形態と同様に、ストレージクラスタ内の全てのノード1-1〜1-3に所在管理サーバ(LSMT)が設けられる必要はない。
次に、図18のストレージクラスタにおける、ホストから論理エクステントへのライトアクセス時の動作について、図1乃至図3を援用しながら、図19のフローチャートを参照して説明する。図19において、図4または図17のフローチャートと同様の部分には同一符号を付してある。
今、第1の実施形態と同様に、ホストからノード1-1のコントローラ11-1に含まれているターゲットインタフェイス111に対してアクセスが要求されたものとする。この場合、図4のフローチャートと同様に、まずステップS0〜S4が実行される。図19では、ステップS0〜S4のうちのステップS1〜S3が省略されている。ステップS4では、例えばコントローラ11-1のサーバ特定部112が例えば所在管理サーバ12-1に対して、論理エクステント(ターゲット論理エクステント)(LVolx,LEIDx)に対応する物理エクステントを格納しているストレージのノードID=SIDxを問い合わせる。すると所在管理サーバ12-1では、ステップS25が次のように実行される。
まず、所在管理サーバ12-1は、どのノードID=SIDxのストレージ(物理ボリューム)が、論理エクステント(LVolx,LEIDx)に対応する物理エクステントを格納しているかを調べるために、当該論理エクステント(LVolx,LEIDx)に対応付けられているLSMT120-1内のエントリの列項目PVol(=SIDx)を参照する(ステップS25a)。
所在管理サーバ12-1は、このPVolが非NAであるか否かにより、論理エクステント(LVolx,LEIDx)にストレージ(物理ボリューム)が割り付けられているか否かを判定する(ステップS25b)。
もし、論理エクステント(LVolx,LEIDx)にストレージ(物理ボリューム)が割り付けられていないならば、所在管理サーバ12-1は、ストレージ13-1〜13-3(の物理ボリューム130-1〜130-3)における物理エクステントの空きを確認する(ステップS25c)。この確認処理は、例えば所在管理サーバ12-1がストレージ13-1〜13-3のIOドライバ131と通信を行うことにより実現される。
もし、ストレージ13-1〜13-3のいずれにも物理エクステントの空きがない(または要求に応えられないない)場合には、IOエラーとなる(ステップS25d)。この場合、ホストからのアクセス要求に対する応答として、エラーが返される(ステップS9)。
一方、ストレージ13-1〜13-3のいずれかに物理エクステントの空きがあるならば、所在管理サーバ12-1は物理エクステントに空きのあるストレージ(例えばストレージ13-1)を選択して、論理エクステント(LVolx,LEIDx)に当該ストレージを割り付ける(ステップS25e)。このステップS25eにおいて、所在管理サーバ12-1は、論理エクステント(LVolx,LEIDx)へのストレージの割り付けがLSMT120-内の対応するエントリに反映されるように、当該エントリを更新する。ここでは、論理エクステント(LVolx,LEIDx)に対応付けられているLSMT120-1内のエントリの列項目PVolが、“NA”から当該論理エクステント(LVolx,LEIDx)に割り付けられるストレージ13-1のノードID(物理ボリューム130-1のノードID=PVol=1)に更新される。
ステップS25eにおいてLSMT120-1が更新されると、第1の実施形態で図4のフローチャートのステップS4が実行された場合と同様に、ステップS5,S6が実行される。これにより、所在管理サーバ12-1からコントローラ11-1に対し、論理エクステント(LVolx,LEIDx)に割り付けられるストレージ13-1のノードID(物理ボリューム130-1のノードID=PVol)=SIDx=1が問い合わせ元のサーバ特定部112を介して通知される。なお、、論理エクステント(LVolx,LEIDx)にストレージ(物理ボリューム)が割り付けられている場合には(ステップS25b)、直ちにステップS5,S6が実行される。
ターゲットインタフェイス111は、サーバ特定部112を介して通知されたノードID=SIDx=1を受け取ると、第1及び第3の実施形態と同様に、ノードID=SIDx=1で示されるノード1-1のストレージ13-1に対し、論理エクステント(LVolx,LEIDx)に対応する物理エクステントへのアクセスをIOマネージャ113を介して要求する(ステップS7)。このステップS7以降の動作は、第3の実施形態と同様であり、ステップS18a〜S18dからなるステップS18がストレージ13-1において実行される。これにより、論理エクステント(LVolx,LEIDx)に物理エクステントが割り付けられていない場合には、物理ボリューム130-1内の空き物理エクステントが当該論理エクステント(LVolx,LEIDx)に割り付けられる。ここでは、そして、物理エクステントPEIDxが割り付けられたものとする。この場合、論理エクステント(LVolx,LEIDx)に対応付けられているLPMT132a内のエントリの列項目PEIDを、“NA”から物理エクステントPEIDxのID(=PEIDx)に更新される。
本実施形態においては、各ストレージにおいて、ホストからアクセスが要求された際の状態に応じて、最適な物理エクステントの割り付けが可能になるだけでなく、総物理ボリューム容量の上限値を超える容量の論理ボリュームを作成することができる。
[第5の実施形態]
次に本発明の第5の実施形態について説明する。この第5の実施形態の特徴は、コントローラ11-i(i=1,2,3)のサーバ特定部112から所在管理サーバ12-j(j=1,2,3)への問い合わせと当該問い合わせに対する回答(結果)とに関する情報をキャッシュ112bに保持することにある。この情報は、論理ボリュームLVolx/論理エクステントLEIDx、つまり論理エクステント(LVolx,LEIDx)を示す情報(LVolx,LEIDx)と、当該論理エクステント(LVolx,LEIDx)に対応している物理エクステントを格納しているストレージのノードID=SIDxとを含む。このキャッシュ112bを利用することで、再度の問い合わせが必要となった場合に、当該問い合わせに対する回答に相当する情報をキャッシュ112bから速やかに取得することが可能となる。
次に、第5の実施形態における、ホストから論理エクステントへのアクセス時の動作について、図1乃至図3及び図7を援用しながら、図20のフローチャートを参照して説明する。
今、第1の実施形態と同様に、ホストからノード1-1のコントローラ11-1に含まれているターゲットインタフェイス111に対してアクセスが要求されたものとする。この場合、図4のフローチャートと同様に、まずステップS0〜S2が実行される。図20では、ステップS0〜S2のうちのステップS0,S1が省略されている。ステップS2では、コントローラ11-1のターゲットインタフェイス111からコントローラ11-1のサーバ特定部112に対して、論理エクステント(LVolx,LEIDx)が、どのノードのストレージに格納されているかが問い合わせられる。
するとサーバ特定部112は、第1の実施形態とは異なって、自身が管理しているキャッシュ112bを参照して、論理エクステント(LVolx,LEIDx)に対応している物理エクステントを格納しているストレージのノードID=SIDxを調べる(ステップS31)。
もし、目的のノードID=SIDxが(LVolx,LEIDx)と対応付けてキャッシュ112bに格納されていないならば、つまりミスヒットならば、サーバ特定部112は、第1の実施形態におけるターゲットインタフェイス111からの問い合わせ(ステップS2)に対するのと同様に、ステップS3及びS4を実行する。
本実施形態では、論理エクステント(LVolx,LEIDx)に対応している物理エクステントが格納されているストレージの所在が、第1の実施形態と同様にノード1-1の所在管理サーバ12-1によって管理され、当該ストレージのノードID(=PVol)がSIDx=1であるものとする。このノードIDはLSMT120-1に基づいて求められる。この場合、所在管理サーバ12-1は、論理エクステント(LVolx,LEIDx)に対応している物理エクステントが格納されているストレージのノードID=SIDxと、LSMT120-1のシリアル番号(LSMTシリアル番号)SNとを、問い合わせ元のサーバ特定部112に対して通知する(ステップS5a)。第1の実施形態のステップS5との違いは、ノードIDに加えて、当該ノードIDを求めるのに用いられたLSMT120-1のシリアル番号SNが通知される点である。このシリアル番号SNは、LSMT120-1が更新される毎に、所在管理サーバ12-1によって例えばインクリメントされる。このことは、LSMT120-2,120-3についても同様である。
サーバ特定部112は、所在管理サーバ12-1からの通知を受けて、キャッシュ112bに、{(LVolx,LEIDx),SIDx,SN}を含む情報(つまり、問い合わせと回答とに関する情報)を格納する(ステップSS5b)。これにより、サーバ特定部112は、論理エクステント(LVolx,LEIDx)がどのノードのストレージに格納されているかをターゲットインタフェイス111によって再び問い合わせられた場合に、当該問い合わせに対する回答に相当する情報を上記ステップS31の処理で速やかに取得することができる。つまり、サーバ特定部112から所在管理サーバへの問い合わせの回数を減らして、アクセス速度を向上させることができる。
但し、所在管理サーバ12-1〜12-3上のLSMT120-1〜120-3が変更された場合、その変更がキャッシュ112bに反映される必要がある。その理由は、例えば第1の実施形態のように、ストレージ間で物理エクステントのコピー(冗長構成)を管理する場合(図12参照)、LSMT120-1〜120-3の更新がキャッシュ112bに反映されていないと、ライトアクセスによって一方の物理エクステントのみが書き換えられてしまい、冗長構成が崩れてしまうからである。そのため、本実施形態では、以下のようなキャッシュ更新の仕組みが用いられる。
まず、LSMT120-1〜120-3の各々にシリアル番号SNが付与される。このシリアル番号SNは、ストレージ13-1〜13-3のIOドライバ131によってLSMT120-1〜120-3が更新される都度、例えば当該IOドライバ131によってインクリメント(更新)される。
また、ステップS5aにおいてノードID=SIDxを求めるのに用いられたLSMT120-j(j=1,2,3)のシリアル番号SNが、(LVolx,LEIDx),SIDxと組をなしてキャッシュ112bに格納される(ステップS5b)。
コントローラ11-i(i=1,2,3)は、ストレージ13-jへのアクセスを行うときに、このシリアル番号SNを受け渡す。ストレージ13-jのIOドライバ131は、このシリアル番号SNと自身が認識しているLSMT120-jの最新のシリアル番号SNとを比較する。IOドライバ131は、両シリアル番号SNが一致していないならば、コントローラ11-iのサーバ特定部112が管理するキャッシュ112bには、LSMT120-jの最新の更新内容が反映されていないと判定する。この場合、ストレージ13-jのIOドライバ131はコントローラ11-iに対してキャッシュ112bの該当する情報の無効化を通知する。つまりIOドライバ131は、キャッシュ無効化手段として機能する。コントローラ11-iのサーバ特定部112は、この通知に応じて、ステップS32でミスヒットが判定された場合と同様に、所在管理サーバ12-jに対して再度の問い合わせを行う(ステップS3,S4)。これによりサーバ特定部112は、所在管理サーバ12-jからLSMT120-jの最新の情報を取得して、キャッシュ112bに反映させることができる。
なお、以下に述べるように、所在管理サーバ12-jがキャッシュ無効化手段として機能しても良い。つまり、所在管理サーバ12-jがコントローラ11-jのサーバ特定部112上のキャッシュ112bを監視して、自身が管理するLSMT120-jとの不整合が生じているかを判別する構成とすることも可能である。もし不整合を判別した場合、所在管理サーバ12-jからコントローラ11-jのサーバ特定部112に、キャッシュ112bの該当するエントリ情報の破棄・更新が必要なことを通知すれば良い。
なお、本発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
本発明の第1の実施形態に係るストレージクラスタ構成のストレージシステムの概略構成を示すブロック図。 図1に示されるコントローラの構成を示すブロック図。 図1に示されるストレージの構成を示すブロック図。 同第1の実施形態においてホストからアクセス要求が発行された場合の処理の手順を示すフローチャート。 同第1の実施形態においてホストからアクセス要求が発行された場合の情報の流れを示す図。 同第1の実施形態においてホストからアクセス要求が発行された場合の情報の流れの変形例を示す図。 図1のシステムにおいて、論理ボリュームLVolがLVol=1であって、当該論理ボリュームLVol=1を、LEIDがLEID=1〜LEID=4の4つの論理エクステントから構成した場合のシステム構成を示す図。 図7の状態におけるLMMTのデータ構造例を示す図。 図7の状態におけるLSMTのデータ構造例を示す図。 図7の状態におけるLPMTのデータ構造例を示す図。 同第1の実施形態において、論理エクステントを構成する物理エクステントのデータを、ストレージをまたがって別の物理エクステントにマイグレートする場合の動作を説明するための図。 同第1の実施形態において、論理エクステントを構成する物理エクステントのデータを、ストレージをまたがって別の物理エクステントにコピーする場合の動作を説明するための図。 同第1の実施形態において、論理エクステントに関する所在管理サービスを、ノードをまたがってマイグレートする場合の動作を説明するための図。 同第1の実施形態において、論理エクステントに関する所在管理サービスを、ノードをまたがってコピーする場合の動作を説明するための図。 本発明の第2の実施形態に係るストレージクラスタ構成のストレージシステムの構成を示すブロック図。 本発明の第3の実施形態に係るストレージクラスタ構成のストレージシステムの構成を示すブロック図。 同第3の実施形態においてホストからアクセス要求が発行された場合の処理の手順を示すフローチャート。 本発明の第4の実施形態に係るストレージクラスタ構成のストレージシステムの構成を示すブロック図。 同第4の実施形態においてホストからアクセス要求が発行された場合の処理の手順を示すフローチャート。 本発明の第5の実施形態においてホストからアクセス要求が発行された場合の処理の手順を示すフローチャート。
符号の説明
1-1〜1-3…ノード、11-1〜11-3,11-i…コントローラ、12-1〜12-3…所在管理サーバ、13-1〜13-3,13-i…ストレージ、112a…LMMT(論理エクステント−所在管理サーバマッピングテーブル、第1のマッピングテーブル)、112b…キャッシュ、120-1〜120-3,120-i…LSMT(論理エクステント−ストレージマッピングテーブル、第2のマッピングテーブル)、130-1〜130-3,130-i…物理ボリューム、132a…LPMT(論理エクステント−物理エクステントマッピングテーブル、第3のマッピングテーブル)。

Claims (10)

  1. 物理ボリュームを有する少なくとも1つのノードを含む複数のノードから構成され、前記少なくとも1つのノードが有する物理ボリュームを利用して、ホストに対して複数の論理エクステントから構成される論理ボリュームを提供するストレージシステムにおいて、
    前記複数のノードの少なくとも2つは、前記ホストに対して前記論理ボリュームを提供し、当該ホストからのアクセスを受け付けるコントローラを有し、
    前記少なくとも1つのノードは、前記論理ボリュームを構成する論理エクステントを物理エクステントにマッピングして前記物理ボリューム内に格納するストレージを有し、
    前記複数のノードの少なくとも1つは、前記論理ボリュームを構成する論理エクステントを格納しているストレージの所在に関する前記コントローラからの問い合わせに対して回答する所在管理サービスを実行する所在管理サーバを有し、
    前記コントローラは、前記論理ボリュームを構成する論理エクステントに対応する所在管理サーバを示す第1のマッピングテーブルを有し、
    前記所在管理サーバは、当該サーバに対応する論理エクステントについて、その論理エクステントがどのノードのストレージに格納されているかを示す第2のマッピングテーブルを有し、
    前記ストレージは、論理エクステントを、当該ストレージが有する物理ボリュームのどの物理エクステントに対応させて格納したかを示す第3のマッピングテーブルを有し、
    前記コントローラは、前記ホストから前記論理ボリューム内の任意の論理エクステントをアクセス先として指定するアクセス要求が与えられた場合、当該コントローラが有する前記第1のマッピングテーブルを参照することにより当該アクセス先の論理エクステントに対応する所在管理サーバを特定し、特定された所在管理サーバに対して、当該論理エクステントがどのストレージに格納されているかを問い合わせ、
    前記所在管理サーバは前記コントローラから問い合わせを受けた場合、当該サーバが有する前記第2のマッピングテーブルを参照することにより問い合わせられたストレージを特定して、当該ストレージを示す情報を前記問い合わせに対する回答として問い合わせ元の前記コントローラに通知し、
    前記コントローラは、前記所在管理サーバから前記問い合わせに対する回答として通知された情報の示すストレージに対して前記ホストから要求された論理エクステントへのアクセスを要求し、
    前記ストレージは、前記コントローラから論理エクステントへのアクセスが要求された場合、当該ストレージが有する前記第3のマッピングテーブルを参照することにより、当該ストレージが有する前記物理ボリューム内で前記要求された論理エクステントに対応させられている物理エクステントを特定して、当該特定された物理エクステントに対してアクセスしてアクセス要求元の前記コントローラに応答する
    ことを特徴とするストレージシステム。
  2. 前記複数のノードの少なくとも2つは前記ストレージを有しており、
    論理エクステントを構成する物理エクステント内のデータを前記ストレージをまたがって別の物理エクステントに移動するエクステント移動が発生した場合、移動元及び移動先のストレージが有する前記第3のマッピングテーブルは当該エクステント移動が反映されるように更新され、当該論理エクステントを格納しているストレージの所在の問い合わせに対して回答する所在管理サーバが有する前記第2のマッピングテーブルは、当該論理エクステントを格納しているストレージとして移動先のストレージを示すように更新される
    ことを特徴とする請求項1記載のストレージシステム。
  3. 前記複数のノードの少なくとも2つは前記ストレージを有しており、
    論理エクステントを構成する物理エクステント内のデータを前記ストレージをまたがって別の物理エクステントにコピーするエクステントコピーが発生した場合、コピー先のストレージが有する前記第3のマッピングテーブルは当該エクステントコピーが反映されるように更新され、当該論理エクステントを格納しているストレージの所在の問い合わせに対して回答する所在管理サーバが有する前記第2のマッピングテーブルは、当該論理エクステントを格納しているストレージとしてコピー元に加えてコピー先のストレージを示すように更新される
    ことを特徴とする請求項1記載のストレージシステム。
  4. 前記複数のノードの少なくとも2つは前記所在管理サーバを有しており、
    前記所在管理サーバが有する前記第2のマッピングテーブルによって示されている、ある論理エクステントがどのノードのストレージに格納されているかを示す情報を別の所在管理サーバが有する前記第2のマッピングテーブルに移動する所在管理サービス移動が発生した場合、移動元及び移動先の前記第2のマッピングテーブル、及び全ての前記コントローラが有する前記第1のマッピングテーブルは、当該所在管理サービス移動が反映されるように更新される
    ことを特徴とする請求項1記載のストレージシステム。
  5. 前記複数のノードの少なくとも2つは前記所在管理サーバを有しており、
    前記所在管理サーバが有する前記第2のマッピングテーブルによって示されている、ある論理エクステントがどのノードのストレージに格納されているかを示す情報を別の所在管理サーバが有する前記第2のマッピングテーブルにコピーする所在管理サービスコピーが発生した場合、コピー先の前記第2のマッピングテーブル、及び全ての前記コントローラが有する前記第1のマッピングテーブルは、当該所在管理サービスコピーが反映されるように更新される
    ことを特徴とする請求項1記載のストレージシステム。
  6. 前記第3のテーブルは、前記論理ボリュームの作成時の初期状態において当該論理ボリュームを構成する論理エクステントが格納される物理ボリュームのみを示し、
    前記ストレージは、前記コントローラから論理エクステントへのアクセスが要求されて、当該ストレージが有する前記第3のマッピングテーブルを参照した結果、当該ストレージが有する前記物理ボリューム内で前記要求された論理ボリュームに物理エクステントが対応付けられていないことが判別された場合、前記物理ボリューム内の空き物理エクステントを当該論理エクステントに割り付けて前記第3のマッピングテーブルを更新する
    ことを特徴とする請求項1記載のストレージシステム。
  7. 前記第2のテーブルは、前記論理ボリュームの作成時の初期状態において、当該サーバに対応する論理エクステントに対してストレージの未割り付けの状態にあることを示し、
    前記第3のテーブルは、前記論理ボリュームの作成時の初期状態において、当該論理ボリュームを構成する論理エクステントに対して物理ボリューム及び物理エクステントの未割り付けの状態にあることを示し、
    前記所在管理サーバは、前記コントローラからの問い合わせに応じて当該サーバが有する前記第2のマッピングテーブルを参照した結果、前記アクセス先の論理エクステントに対してストレージの未割り付けの状態にあることが判別された場合、空き物理エクステントを有するストレージを当該論理エクステントに割り付けて、前記第2のマッピングテーブルを更新し、
    前記ストレージは、前記コントローラから論理エクステントへのアクセスが要求されて、当該ストレージが有する前記第3のマッピングテーブルを参照した結果、当該ストレージが有する前記物理ボリューム内で前記要求された論理ボリュームに物理エクステントが対応付けられていないことが判別された場合、当該ストレージの前記物理ボリューム内の空き物理エクステントを当該論理エクステントに割り付けて、前記第3のマッピングテーブルを更新する
    ことを特徴とする請求項1記載のストレージシステム。
  8. 前記コントローラは、前記問い合わせ及び当該問い合わせに対する前記所在管理サーバからの回答に関する情報を格納するキャッシュを有し、
    前記コントローラは、前記所在管理サーバに論理エクステントがどのストレージに格納されているかを問い合わせる前に当該問い合わせに対する回答に関する情報が前記キャッシュに格納されているかを調べ、格納されている場合には当該キャッシュに格納されている回答に関する情報の示すストレージに対して前記ホストから要求された論理エクステントへのアクセスを要求する
    ことを特徴とする請求項1記載のストレージシステム。
  9. 前記所在管理サーバが有する前記第2のマッピングテーブルの示す論理エクステントが格納されているストレージと、当該所在管理サーバが有するキャッシュに格納されている回答に関する情報の示す当該論理エクステントが格納されているストレージとが一致しているかを調べて、不一致の場合に当該キャッシュに格納されている当該情報を無効化する無効化手段を更に有することを特徴とする請求項8記載のストレージシステム。
  10. 物理ボリュームを有する少なくとも1つのノードを含む複数のノードから構成され、前記複数のノードの少なくとも2つは、前記少なくとも1つのノードが有する物理ボリュームを利用して、ホストに対して複数の論理エクステントから構成される論理ボリュームを提供し、当該ホストからのアクセスを受け付けるコントローラを有し、前記少なくとも1つのノードは、前記論理ボリュームを構成する論理エクステントを物理エクステントにマッピングして前記物理ボリューム内に格納するストレージを有し、前記複数のノードの少なくとも1つは、前記論理ボリュームを構成する論理エクステントを格納しているストレージの所在に関する前記コントローラからの問い合わせに対して回答する所在管理サービスを実行する所在管理サーバを有するストレージシステムに適用されるアクセス処理方法であって、
    前記ホストから前記論理ボリューム内の任意の論理エクステントをアクセス先として指定するアクセス要求が前記コントローラに与えられた場合、当該コントローラが有する第1のマッピングテーブルであって、前記論理ボリュームを構成する論理エクステントに対応する所在管理サーバを示す第1のマッピングテーブルを参照することにより、当該アクセス先の論理エクステントに対応する所在管理サーバを特定するステップと、
    前記アクセス要求が与えられたコントローラから前記特定された所在管理サーバに対して、アクセス先の論理エクステントがどのストレージに格納されているかを問い合わせるステップと、
    前記コントローラからの問い合わせを受けた前記所在管理サーバが有する第2のマッピングテーブルであって、当該サーバに対応する論理エクステントについて、その論理エクステントがどのノードのストレージに格納されているかを示す第2のマッピングテーブルを参照することにより問い合わせられたストレージを特定して、当該ストレージを示す情報を前記問い合わせに対する回答として前記問い合わせを受けた前記所在管理サーバから前記問い合わせ元のコントローラに通知するステップと、
    前記所在管理サーバから前記問い合わせに対する回答として通知された情報の示すストレージに対して、前記ホストから要求された論理エクステントへのアクセスを、前記問い合わせ元のコントローラから要求するステップと、
    前記コントローラから論理エクステントへのアクセスが要求されたストレージが有する第3のマッピングテーブルであって、論理エクステントを、当該ストレージが有する物理ボリュームのどの物理エクステントに対応させて格納したかを示す第3のマッピングテーブルを参照することにより、当該ストレージが有する前記物理ボリューム内で前記要求された論理エクステントに対応させられている物理エクステントを特定して、当該特定された物理エクステントに対してアクセスして当該ストレージからアクセス要求元の前記コントローラに応答するステップと、
    前記ストレージからの応答を前記コントローラから前記ホストに返すステップと
    を具備することを特徴とするアクセス処理方法。
JP2006103256A 2006-04-04 2006-04-04 ストレージシステム Expired - Fee Related JP4224077B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006103256A JP4224077B2 (ja) 2006-04-04 2006-04-04 ストレージシステム
US11/727,966 US7707381B2 (en) 2006-04-04 2007-03-29 Storage system for processing access request from host and method for doing the same
CNB2007101266040A CN100487639C (zh) 2006-04-04 2007-04-04 用于处理来自主机的访问请求的存储系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006103256A JP4224077B2 (ja) 2006-04-04 2006-04-04 ストレージシステム

Publications (2)

Publication Number Publication Date
JP2007279898A true JP2007279898A (ja) 2007-10-25
JP4224077B2 JP4224077B2 (ja) 2009-02-12

Family

ID=38560832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006103256A Expired - Fee Related JP4224077B2 (ja) 2006-04-04 2006-04-04 ストレージシステム

Country Status (3)

Country Link
US (1) US7707381B2 (ja)
JP (1) JP4224077B2 (ja)
CN (1) CN100487639C (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009258841A (ja) * 2008-04-14 2009-11-05 Hitachi Ltd ストレージシステム
KR101536070B1 (ko) * 2013-09-24 2015-07-24 가부시끼가이샤 도시바 스토리지 시스템
JP2020021235A (ja) * 2018-07-31 2020-02-06 富士通株式会社 ストレージ管理装置、ストレージシステムおよびプログラム
JP2022003589A (ja) * 2020-07-09 2022-01-11 株式会社日立製作所 システム及びその制御方法並びにプログラム

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019732B2 (en) 2008-08-08 2011-09-13 Amazon Technologies, Inc. Managing access of multiple executing programs to non-local block data storage
CN101620515B (zh) * 2009-08-12 2010-12-01 宋振华 一种增强逻辑盘卷管理功能的方法
CN101625628B (zh) * 2009-08-17 2011-03-23 宋振华 一种实现逻辑盘卷管理映射定制的方法
EP2419817A1 (en) * 2009-10-09 2012-02-22 Hitachi, Ltd. Storage system and control method thereof, implementing data reallocation in case of load bias
US8438360B2 (en) * 2009-11-23 2013-05-07 Symantec Corporation Distributed storage through a volume device architecture
US9015410B2 (en) 2011-01-05 2015-04-21 Hitachi, Ltd. Storage control apparatus unit and storage system comprising multiple storage control apparatus units
US8819374B1 (en) * 2011-06-15 2014-08-26 Emc Corporation Techniques for performing data migration
CN102650932A (zh) * 2012-04-05 2012-08-29 华为技术有限公司 数据的访问方法、设备和系统
US9262437B2 (en) 2013-01-07 2016-02-16 Hitachi, Ltd. Storage system and control method for storage system
CN103092532B (zh) * 2013-01-21 2016-03-23 浪潮(北京)电子信息产业有限公司 一种集群存储系统的存储方法
US9794342B2 (en) * 2013-08-20 2017-10-17 Hitachi, Ltd. Storage system and control method for storage system
CN103605620B (zh) * 2013-11-28 2017-01-11 北京华胜天成科技股份有限公司 一种集群存储数据保护方法及装置
CN105808157A (zh) * 2014-12-31 2016-07-27 中兴通讯股份有限公司 存储架构的创建方法、存储访问方法和存储系统
US9965184B2 (en) * 2015-10-19 2018-05-08 International Business Machines Corporation Multiple storage subpools of a virtual storage pool in a multiple processor environment
US10462263B2 (en) * 2016-11-22 2019-10-29 Airwatch Llc Management service migration using web applications
US10873511B2 (en) 2016-11-22 2020-12-22 Airwatch Llc Management service migration for managed devices
US10924557B2 (en) 2016-11-22 2021-02-16 Airwatch Llc Management service migration using managed devices
CN108228076B (zh) * 2016-12-14 2020-10-16 华为技术有限公司 访问磁盘的方法和主机
JP6606235B1 (ja) * 2018-07-13 2019-11-13 株式会社日立製作所 ストレージシステム
JP6898393B2 (ja) * 2019-03-22 2021-07-07 株式会社日立製作所 ストレージシステム及びデータ転送方法
JP2023538870A (ja) * 2020-08-14 2023-09-12 オラクル・インターナショナル・コーポレイション クラウドシェルのインスタンスにわたってデータを永続化するための技法
US11327673B1 (en) 2020-10-23 2022-05-10 Oracle International Corporation Techniques for persisting data across instances of a cloud shell

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152491A (ja) * 1993-11-29 1995-06-16 Hitachi Ltd 仮想ディスクシステム
JP2001312372A (ja) * 2000-05-01 2001-11-09 Toshiba Corp ディスク制御装置
JP2004078398A (ja) * 2002-08-13 2004-03-11 Nec Corp 仮想ボリューム管理方式

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3190546B2 (ja) 1995-08-29 2001-07-23 株式会社日立製作所 ブロックアドレスの変換方法および回転型記憶サブシステムの制御方法ならびにディスクサブシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152491A (ja) * 1993-11-29 1995-06-16 Hitachi Ltd 仮想ディスクシステム
JP2001312372A (ja) * 2000-05-01 2001-11-09 Toshiba Corp ディスク制御装置
JP2004078398A (ja) * 2002-08-13 2004-03-11 Nec Corp 仮想ボリューム管理方式

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009258841A (ja) * 2008-04-14 2009-11-05 Hitachi Ltd ストレージシステム
KR101536070B1 (ko) * 2013-09-24 2015-07-24 가부시끼가이샤 도시바 스토리지 시스템
JP2020021235A (ja) * 2018-07-31 2020-02-06 富士通株式会社 ストレージ管理装置、ストレージシステムおよびプログラム
JP7111964B2 (ja) 2018-07-31 2022-08-03 富士通株式会社 ストレージ管理装置、ストレージシステムおよびプログラム
JP2022003589A (ja) * 2020-07-09 2022-01-11 株式会社日立製作所 システム及びその制御方法並びにプログラム
JP7193602B2 (ja) 2020-07-09 2022-12-20 株式会社日立製作所 システム及びその制御方法並びにプログラム

Also Published As

Publication number Publication date
CN100487639C (zh) 2009-05-13
CN101067779A (zh) 2007-11-07
US20070233997A1 (en) 2007-10-04
US7707381B2 (en) 2010-04-27
JP4224077B2 (ja) 2009-02-12

Similar Documents

Publication Publication Date Title
JP4224077B2 (ja) ストレージシステム
US9946460B2 (en) Storage subsystem and storage system architecture performing storage virtualization and method thereof
US9971709B1 (en) Data migration techniques
US8984248B2 (en) Data migration system and data migration method
US6959373B2 (en) Dynamic and variable length extents
US7280536B2 (en) Fast path for performing data operations
US6986015B2 (en) Fast path caching
US7676628B1 (en) Methods, systems, and computer program products for providing access to shared storage by computing grids and clusters with large numbers of nodes
US6973549B1 (en) Locking technique for control and synchronization
US7013379B1 (en) I/O primitives
US6862632B1 (en) Dynamic RDF system for transferring initial data between source and destination volume wherein data maybe restored to either volume at same time other data is written
US6542962B2 (en) Multiple processor data processing system with mirrored data for distributed access
JP4124331B2 (ja) Dbms向け仮想ボリューム作成・管理方法
US9661078B1 (en) Federated namespace management
JP4297747B2 (ja) ストレージ装置
US9785349B2 (en) Efficient free-space management of multi-target peer-to-peer remote copy (PPRC) modified sectors bitmap in bind segments
EP2206045A2 (en) Thin provisioning migration and scrubbing
JP2022163604A (ja) 分散ストレージシステム及び記憶制御方法
US9535610B2 (en) Optimizing peer-to-peer remote copy (PPRC) transfers for partial write operations using a modified sectors bitmap
JP2008047029A (ja) ストレージシステム及びキャッシュの冗長化方法とコンピュータプログラム
US11789613B2 (en) Storage system and data processing method
JP2023021320A (ja) ストレージシステム及びストレージシステムの制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080409

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080415

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080612

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081118

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081120

R150 Certificate of patent or registration of utility model

Ref document number: 4224077

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111128

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111128

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121128

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131128

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees