JP2005310026A - ストレージ装置、これを備えたストレージシステム、このシステムのデータ管理方法、及びストレージ装置のコントローラ実行プログラム - Google Patents

ストレージ装置、これを備えたストレージシステム、このシステムのデータ管理方法、及びストレージ装置のコントローラ実行プログラム Download PDF

Info

Publication number
JP2005310026A
JP2005310026A JP2004129340A JP2004129340A JP2005310026A JP 2005310026 A JP2005310026 A JP 2005310026A JP 2004129340 A JP2004129340 A JP 2004129340A JP 2004129340 A JP2004129340 A JP 2004129340A JP 2005310026 A JP2005310026 A JP 2005310026A
Authority
JP
Japan
Prior art keywords
storage
request
write
access
storage device
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
JP2004129340A
Other languages
English (en)
Other versions
JP4451705B2 (ja
Inventor
Tetsuya Shirogane
哲也 白銀
Naoto Matsunami
直人 松並
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004129340A priority Critical patent/JP4451705B2/ja
Priority to US10/882,366 priority patent/US7240167B2/en
Publication of JP2005310026A publication Critical patent/JP2005310026A/ja
Application granted granted Critical
Publication of JP4451705B2 publication Critical patent/JP4451705B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5014Reservation
    • 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/062Securing storage systems

Abstract

【課題】各サイトのストレージ装置相互間でのデータの一貫性を保つ。
【解決手段】 ストレージ装置100AがLU0の領域に対するライト要求を受信すると、オーナーアクセス処理部121Xは、ロック情報テーブル118Yを参照して、ライト要求が示す記憶領域に対するライト処理が制限されているか否かを判断し、制限されている場合に記憶領域に対するライト処理を実行せず、制限されていない場合にロック情報テーブル118Yの記憶領域の欄にライト処理制限の旨を設定すると共に、記憶領域に対するライト処理を実行する。他のストレージ装置100B,100CがLU0の領域に対するライト要求を受信すると、LU0の領域に対するライト処理を制限する旨のロック確保要求をストレージ装置100Aに送信し、このストレージ装置100Aからロック確保要求を受諾する旨を受信すると、記憶領域に対してライト処理を実行する。
【選択図】図1

Description

本発明は、記憶装置に記憶されるデータを他のストレージ装置との間で送受信することで、該記憶装置に記憶されるデータの共通化を図るストレージ装置、これを備えたストレージシステム、このシステムのデータ管理方法、及びストレージ装置のコントローラ実行プログラムに関する。
ストレージ装置は、一般的に、単体のハードディスク装置又は複数のハードディス装置の集合体を制御部で制御するディスクアレイ装置等の装置である。
近年、ネットワークプロトコルであるTCP(Transmission Control Protocol)/IP上で、上位プロトコルとしてSCSI処理を実現するためのプロトコル技術であるiSCSI(internet SCSI)がストレージインタフェース(以後インタフェースはI/Fと略す)として注目されている。iSCSIはIPネットワークを用いて長距離の通信が可能であり、従来用いられてきたFC(Fibre Channel)よりも機器が安価であるという特性を持つ。
このため、ホストとストレージ装置間の通信にiSCSIを用いれば、安価にデータ共有システムを構築できる。この種の技術として、例えば、ある都市の支店Aに配置したストレージ装置Aのデータの複製を別の都市の支店Bに配置したストレージ装置Bで保持し、周期的にそれらのデータ間の同期を取るという技術が知られている。また、特許文献1には、3サイト以上のNサイトに配置したストレージ装置間で、任意サイトの被災後、速やかに残サイト間でのリモートコピーデータの一致を実現するための差分を管理する方法が開示されている。
特開2003−131917号公報
しかしながら、いずれの従来技術でも、例えば、サイトAでライト処理を行った後、直ちに、他のサイトBでも他のデータに関してライト処理を行った場合、サイトAのストレージ装置に記憶されているデータと、サイトBのストレージ装置に記憶されているデータとが一致しているとは限らず、各サイト相互間でのデータの一貫性が保たれないという問題点がある。
本発明は、このような従来技術の問題点に着目し、各サイト相互間でのデータの一貫性を保つことができるストレージ装置、これを備えたストレージシステム、このシステムのデータ管理方法、及びストレージ装置のコントローラ実行プログラムを提供することを目的とする。
前記目的を達成するためのストレージシステムのデータ管理方法に係る発明は、
それぞれが記憶装置を備えている複数のストレージ装置相互間で、該記憶装置に記憶されるデータを送受信することで、各ストレージ装置の記憶装置に記憶されるデータの共通化を図るストレージシステムのデータ管理方法において、
複数の前記ストレージ装置のうちのいずれか一のストレージ装置にアクセス要求があると、該一のストレージ装置は、
前記一のストレージ装置の前記記憶装置の複数の記憶領域毎に、該記憶領域に対するアクセスを制限するか否かを示すロック情報が記憶されているロック情報テーブルを参照して、該アクセス要求が示す記憶領域に対するアクセス処理が制限されているか否かを判断し、アクセス処理が制限されている場合に、該記憶領域に対するアクセス処理を実行せず、アクセス処理が制限されていない場合に、前記ロック情報テーブルの該記憶領域の欄にアクセス制限の旨を設定すると共に、該記憶領域に対するアクセス処理を実行するオーナーサイト・アクセス処理を実行し、
複数の前記ストレージ装置のうちの前記一のストレージ装置を除く他のストレージ装置にアクセス要求があると、該他のストレージ装置は、
前記他のストレージ装置に対する前記アクセス要求が示す記憶領域が、前記一のストレージ装置に対する前記アクセス要求が示す前記記憶領域と対応する場合、前記一のストレージ装置に対して、該記憶領域に対するアクセス処理を制限する旨のロック確保要求を送信し、該一のストレージ装置から該ロック確保要求を受諾する旨を受信すると、該記憶領域に対してアクセス処理を実行し、該一のストレージ装置から該ロック確保要求を拒絶する旨を受信すると、該記憶領域に対するアクセス処理を実行しない非オーナーサイト・アクセス処理を実行する、
ことを特徴とすることを特徴とするものである。
ここで、前記データ管理方法に係る発明は、
複数のストレージ装置の各記憶装置は、複数の記憶領域の集まりである記憶領域群を複数有し、
複数のストレージ装置には、それぞれ、自身がオーナーとなる記憶領域群の各記憶領域毎に、該記憶領域に対するアクセスを制限するか否かを示すロック情報が記憶されているロック情報テーブルを設けると共に、各記憶領域群へのアクセスがいずれのストレージ装置により管理されているかを示すオーナー情報テーブルを設け、
複数の前記ストレージ装置は、アクセス要求を受信すると、前記オーナー情報テーブルを参照して、該アクセス要求がいずれの記憶領域群に含まれる記憶領域に対するアクセスであるかを判断し、自サイトでアクセスを管理している記憶領域群に含まれる記憶領域に対するアクセスである場合には、前記オーナー・サイトアクセス処理工程を実行し、他サイトのストレージ装置でアクセスを管理している記憶領域群に含まれる記憶領域に対するアクセスである場合には、前記非オーナーサイト・アクセス処理を実行する、
ことを特徴とするものであることが好ましい。
前記目的を達成するためのストレージシステムのデータ管理方法に係る他の発明は、
それぞれが記憶装置を備えている複数のストレージ装置相互間で、該記憶装置に記憶されるデータを送受信することで、各ストレージ装置の記憶装置に記憶されるデータの共通化を図るストレージシステムのデータ管理方法において、
複数の前記ストレージ装置のうちのいずれか一のストレージ装置にアクセス要求があると、該一のストレージ装置は、
複数の前記ストレージ装置のうちの前記一のストレージ装置を除くいずれか1つの他のストレージ装置に、前記アクセス要求が示す記憶領域と対応する記憶領域に対するアクセス処理を制限する旨のロック確保要求を送信し、該他のストレージ装置から該ロック確保要求を受諾する旨を受信すると、該記憶領域に対してアクセス処理を実行し、該他のストレージ装置から該ロック確保要求を拒絶する旨を受信すると、該記憶領域に対するアクセス処理を実行しない非オーナーサイト・アクセス処理を実行し、
前記他のストレージ装置は、
アクセス要求を受信すると、該アクセス要求が示す記憶領域と前記他のストレージ装置に対する前記アクセス要求が示す記憶領域とが対応する場合、該他のストレージ装置の前記記憶装置の複数の記憶領域毎に、該記憶領域に対するアクセスを制限するか否かを示すロック情報が記憶されているロック情報テーブルを参照して、該アクセス要求が示す記憶領域に対するアクセスが制限されているか否かを判断し、アクセスが制限されている場合に、該記憶領域に対するアクセス処理を実行せず、アクセスが制限されていない場合に、前記ロック情報テーブルの該記憶領域の欄にアクセス制限の旨を設定すると共に、該記憶領域に対するアクセスを実行するオーナーサイト・アクセス処理を実行する、
ことを特徴とするものである。
また、以上のデータ管理方法に係る各発明は、
前記非オーナーサイト・アクセス処理で、前記アクセス要求が示す記憶領域に対してアクセスを実行した後、前記オーナーサイト・アクセス処理を実行する前記ストレージ装置に、該記憶領域に対するアクセス制限を解除する旨のロック解除要求を送信する、ものであることが好ましい。
さらに、以上のデータ管理方法に係る各発明は、
前記オーナーサイト・アクセス処理及び前記非オーナーサイト・アクセス処理で、前記アクセス要求がライト要求ときに、該ライト要求が示す記憶領域に対してライト処理を行う場合、該ライト要求に対するライト処理を行う前記ストレージ装置を除く他の全てのストレージ装置に対して、該ライト要求に関するライトデータを送信するリモートコピー処理工程を実行する、ことが好ましい。
前記目的を達成するためのストレージ装置に係る第一の発明は、
記憶装置を備え、該記憶装置に記憶されるデータを他のストレージ装置との間で送受信することで、該記憶装置に記憶されるデータの共通化を図るストレージ装置において、
外部との間で通信を行うホスト側通信部と、
前記他のストレージ装置との間で通信を行うストレージ側通信部と、
前記記憶装置の複数の記憶領域毎に、該記憶領域に対するライト処理を制限するか否かを示すロック情報が記憶されるロック情報テーブルと、
前記ホスト側通信部及び前記ストレージ側通信部の通信制御を行うと共に、前記ロック情報テーブルを参照して、前記記憶装置に対するアクセス処理を実行するコントローラと、
を備え、
前記コントローラは、
前記ストレージ側通信部により、前記他のストレージ装置から、複数の前記記憶領域のうちのいずれかの記憶領域に対するライト処理を制限する旨のロック確保要求を受信するロック確保要求受信工程と、
前記ロック確保要求受信工程で、前記ロック確保要求を受信すると、前記ロック情報テーブルを参照して、該ロック確保要求が示す記憶領域に対するライト処理が制限されているか否かを判断し、ライト処理が制限されている場合に、前記ストレージ側通信部により、前記他のストレージ装置に対してロック確保の拒絶の旨を送信させ、ライト処理が制限されていない場合に、前記ロック情報テーブルの該記憶領域の欄にライト処理制限の旨を設定すると共に、該ストレージ側通信部により、該他のストレージ装置に対してロック確保の受諾の旨を送信させるロック確保要求処理工程と、を実行する、
ことを特徴とするものである。
ここで、前記コントローラは、
前記ホスト側通信部により、前記外部から、複数の前記記憶領域のうちのいずれかに対するライト要求を受信するアクセス要求受信工程と、
前記アクセス要求受信工程で、前記ライト要求を受信すると、前記ロック情報テーブルを参照して、該ライト要求が示す記憶領域に対するライト処理が制限されているか否かを判断し、ライト処理が制限されている場合に、該記憶領域に対するライト処理を実行せず、ライト処理が制限されていない場合に、前記ロック情報テーブルの該記憶領域の欄にライト処理制限の旨を設定すると共に、該記憶領域に対するライト処理を実行するオーナーアクセス処理工程と、を実行する、ものであることが好ましい。
さらに、前記コントローラは、
前記オーナーアクセス処理工程で、前記ライト要求が示す前記記憶領域に対するライト処理を実行すると、前記ストレージ側通信部により、他の全てのストレージ装置に対して該ライト要求に関するライトデータを送信させるリモートコピー処理工程を実行するものであることが好ましい。
また、以上のストレージ装置に係る各発明は、
前記記憶装置は、前記ロック情報テーブルで管理されている複数の記憶領域の集まりである記憶領域群の他に、複数の記憶領域の集まりである他の記憶領域群を有し、
前記記憶装置の各記憶領域群毎のロック情報テーブルが、いずれのストレージ装置により管理されているかを示すオーナー情報テーブルを備え、
前記コントローラは、
前記オーナー情報テーブルを参照して、前記アクセス要求受信工程で受信した前記ライト要求がいずれの記憶領域群に含まれる記憶領域に対するライト処理であるかを判断し、自サイトで管理している前記ロック情報テーブルの記憶領域群に含まれる記憶領域に対するライト処理である場合には、前記オーナーアクセス処理工程を実行させ、他のストレージ装置で管理している前記ロック情報テーブルの記憶領域群に含まれる記憶領域に対するライト処理である場合には、該記憶領域群のロック情報を管理している該他のストレージ装置に対して、前記ストレージ装置側通信部により、該記憶領域群に含まれる記憶領域に対するライト処理を制限する旨のロック確保要求を送信させるオーナー判断処理工程と、
前記オーナー判断処理工程での前記ロック確保要求の送信後に、該ロック確保要求に対するロック確保の受諾の旨を前記ストレージ側通信部が受信すると、前記ライト要求が示す前記記憶領域に対するライト処理を実行する非オーナーアクセス処理工程と、
前記非オーナーアクセス処理工程で、前記記憶領域に対するライト処理を実行した後、前記他のストレージ装置に対して、前記ストレージ装置側通信部により、前記記憶領域に対するアクセス制限を解除する旨のロック解除要求を送信させるロック解除要求送信工程と、を実行するものであることが好ましい。
この場合、前記コントローラは、
前記非オーナーアクセス処理工程で、前記ライト要求が示す前記記憶領域に対するライト処理を実行すると、前記ストレージ側通信部により、他の全てのストレージ装置に対して該ライト要求に関するライトデータを送信させるリモートコピー処理工程を実行する、ものであることが好ましい。
前記目的を達成するためのストレージ装置に係る第二の発明は、
記憶装置を備え、該記憶装置に記憶されるデータを他のストレージ装置との間で送受信することで、該記憶装置に記憶されるデータの共通化を図るストレージ装置において、
外部との間で通信を行うホスト側通信部と、
前記他のストレージ装置との間で通信を行うストレージ側通信部と、
前記記憶装置の複数の記憶領域毎に、該記憶領域に対するライト処理を制限するか否かを示すロック情報が記憶されるロック情報テーブルと、
前記ホスト側通信部及び前記ストレージ側通信部の通信制御を行うと共に、前記ロック情報テーブルを参照して、前記記憶装置に対するアクセス処理を実行するコントローラと、
を備え、
前記コントローラは、
前記ホスト側通信部により、前記外部から、複数の前記記憶領域のうちのいずれかに対するライト要求を受信するアクセス要求受信工程と、
前記他のストレージ装置に対して、前記ストレージ装置側通信部により、前記ライト要求が示す記憶領域に対するライト処理を制限する旨のロック確保要求を送信させるロック確保要求送信工程と、
前記ロック確保要求の送信後に、前記他のストレージ装置から該ロック確保要求に対するロック確保の受諾の旨を前記ストレージ側通信部が受信すると、前記ライト要求が示す前記記憶領域に対するライト処理を実行する非オーナーアクセス処理工程と、
前記非オーナーアクセス処理工程で、前記記憶領域に対するライト処理を実行した後、前記他のストレージ装置に対して、前記ストレージ装置側通信部により、前記記憶領域に対するライト処理制限を解除する旨のロック解除要求を送信させるロック解除要求送信工程と、を実行することを特徴とするものである。
前記目的を達成するためのストレージシステムに係る発明は、
前記第一の発明に係るストレージ装置(以下、オーナーストレージ装置とする)と、
前記オーナーストレージ装置との間で通信可能な前記第二の発明に係るストレージ装置(以下、非オーナーストレージ装置とする)と、
を備え、
前記オーナーストレージ装置に対する前記他のストレージ装置が前記非オーナーストレージ装置であり、前記非オーナーストレージ装置に対する前記他のストレージ装置が前記オーナーストレージ装置である、ことを特徴とするものである。
前記目的を達成するためのストレージ装置のコントローラ実行プログラムに係る発明は、
記憶装置と、外部との間で通信を行うホスト側通信部と、他のストレージ装置との間で通信を行うストレージ側通信部と、該ホスト側通信部及び該ストレージ側通信部の通信制御を行うと共に、該記憶装置に対するアクセス処理を実行するコントローラとを備え、
前記記憶装置に記憶されるデータを他のストレージ装置との間で送受信することで、該記憶装置に記憶されるデータの共通化を図るストレージ装置のコントローラ実行プログラムにおいて、
前記ストレージ側通信部により、前記他のストレージ装置から、前記記憶装置の複数の記憶領域のうちのいずれかの記憶領域に対するライト処理を制限する旨のロック確保要求を受信するロック確保要求受信工程と、
前記ロック確保要求受信工程で、前記ロック確保要求を受信すると、前記記憶装置の複数の記憶領域毎に、該記憶領域に対するライト処理を制限するか否かを示すロック情報が記憶されるロック情報テーブルを参照して、該ロック確保要求が示す記憶領域に対するライト処理が制限されているか否かを判断し、ライト処理が制限されている場合に、前記ストレージ側通信部により、前記他のストレージ装置に対してロック確保の拒絶の旨を送信させ、ライト処理が制限されていない場合に、前記ロック情報テーブルの該記憶領域の欄にライト処理制限の旨を設定すると共に、該ストレージ側通信部により、該他のストレージ装置に対してロック確保の受諾の旨を送信させるロック確保要求処理工程と、を前記コントローラに実行させる、
ことを特徴とするものである。
ここで、前記コントローラ実行プログラムに係る発明は、
前記ホスト側通信部により、前記外部から、複数の前記記憶領域のうちのいずれかに対するライト要求を受信するアクセス要求受信工程と、
前記アクセス要求受信工程で、前記ライト要求を受信すると、前記ロック情報テーブルを参照して、該ライト要求が示す記憶領域に対するライト処理が制限されているか否かを判断し、ライト処理が制限されている場合に、該記憶領域に対するライト処理を実行せず、ライト処理が制限されていない場合に、前記ロック情報テーブルの該記憶領域の欄にライト処理制限の旨を設定すると共に、該記憶領域に対するライト処理を実行するオーナーアクセス処理工程と、を前記コントローラに実行させる、ものであることが好ましい。
また、前記コントローラ実行プログラムに係る発明は、
前記オーナーアクセス処理工程で、前記ライト要求が示す前記記憶領域に対するライト処理を実行すると、前記ストレージ側通信部により、他の全てのストレージ装置に対して該ライト要求に関するライトデータを送信させるリモートコピー処理工程を前記コントローラに実行させる、ものであることが好ましい。
また、以上のコントローラ実行プログラムに係る各発明は、
前記記憶装置は、前記ロック情報テーブルで管理されている複数の記憶領域の集まりである記憶領域群の他に、複数の記憶領域の集まりである他の記憶領域群を有し、
前記記憶装置の各記憶領域群毎のロック情報テーブルが、いずれのストレージ装置により管理されているかを示すオーナー情報テーブルを参照して、前記アクセス要求受信工程で受信した前記ライト要求がいずれの記憶領域群に含まれる記憶領域に対するライト処理であるかを判断し、自サイトで管理している前記ロック情報テーブルの記憶領域群に含まれる記憶領域に対するライト処理である場合には、前記オーナーアクセス処理工程を実行させ、他のストレージ装置で管理している前記ロック情報テーブルの記憶領域群に含まれる記憶領域に対するライト処理である場合には、該記憶領域群のロック情報を管理している該他のストレージ装置に対して、前記ストレージ装置側通信部により、該記憶領域群に含まれる記憶領域に対するライト処理を制限する旨のロック確保要求を送信させるオーナー判断処理工程と、
前記オーナー判断処理工程での前記ロック確保要求の送信後に、該ロック確保要求に対するロック確保の受諾の旨を前記ストレージ側通信部が受信すると、前記ライト要求が示す前記記憶領域に対するライト処理を実行する非オーナーアクセス処理工程と、
前記非オーナーアクセス処理工程で、前記記憶領域に対するライト処理を実行した後、前記他のストレージ装置に対して、前記ストレージ装置側通信部により、前記記憶領域に対するアクセス制限を解除する旨のロック解除要求を送信させるロック解除要求送信工程と、を前記コントローラに実行させるものであることが好ましい。
この場合、コントローラ実行プログラムは、
前記非オーナーアクセス処理工程で、前記ライト要求が示す前記記憶領域に対するライト処理を実行すると、前記ストレージ側通信部により、他の全てのストレージ装置に対して該ライト要求に関するライトデータを送信させるリモートコピー処理工程を、前記コントローラに実行させる、ものであることが好ましい。
前記目的を達成するためのストレージ装置のコントローラ実行プログラムに係る他の発明は、
記憶装置と、外部との間で通信を行うホスト側通信部と、他のストレージ装置との間で通信を行うストレージ側通信部と、該ホスト側通信部及び該ストレージ側通信部の通信制御を行うと共に、該記憶装置に対するアクセス処理を実行するコントローラとを備え、
前記記憶装置に記憶されるデータを他のストレージ装置との間で送受信することで、該記憶装置に記憶されるデータの共通化を図るストレージ装置のコントローラ実行プログラムにおいて、
前記ホスト側通信部により、前記外部から、前記記憶装置の複数の記憶領域のうちのいずれかに対するライト要求を受信するアクセス要求受信工程と、
前記他のストレージ装置に対して、前記ストレージ装置側通信部により、前記ライト要求が示す記憶領域に対するライト処理を制限する旨のロック確保要求を送信させるロック確保要求送信工程と、
前記ロック確保要求の送信後に、前記他のストレージ装置から該ロック確保要求に対するロック確保の受諾の旨を前記ストレージ側通信部が受信すると、前記ライト要求が示す前記記憶領域に対するライト処理を実行する非オーナーアクセス処理工程と、
前記非オーナーアクセス処理工程で、前記記憶領域に対するライト処理を実行した後、前記他のストレージ装置に対して、前記ストレージ装置側通信部により、前記記憶領域に対するライト処理制限を解除する旨のロック解除要求を送信させるロック解除要求送信工程と、を前記コントローラに実行させる、ことを特徴とするものである。
ここで、コントローラ実行プログラムに係る前記他の発明は、
前記非オーナーアクセス処理工程で、前記ライト要求が示す前記記憶領域に対するライト処理を実行すると、前記ストレージ側通信部により、他の全てのストレージ装置に対して該ライト要求に関するライトデータを送信させるリモートコピー処理工程を、前記コントローラに実行させる、ものであることが好ましい。
本願に係る発明によれば、複数のストレージ装置のうちの一のストレージ装置がライト処理を含むアクセス処理を実行している際、他のストレージ装置のライト処理を含むアクセス処理が制限されるので、各サイト相互間でのデータの一貫性を保つことができる。
以下、本発明に係るストレージシステムの各種実施形態について説明する。
「第1実施形態」
まず、図1〜図17を用いて、第1実施形態としてのストレージシステムについて説明する。
本実施形態のストレージシステムは、図1に示すように、IP(Internet Protocol)ネットワーク1にギガビットイーサネット(イーサネットは米国ゼロックス社の登録商標)2で接続された複数のストレージ装置100A,100B,100Cと、各ストレージ装置100A,100B,100CにFC(Fibre channel)リンク3でそれぞれ接続されているホスト200A,200B,200Cと、各ストレージ装置100A,100B,100CにLAN(Local Area Network)4でそれぞれ接続されている管理サーバ300A,300B,300Cを備えている。
各ストレージ装置100A,100B,100Cは、複数のディスク装置101,101,…と、対応ホスト200との間で通信を行うと共に複数のディスク装置101,101,…に対してのアクセス処理を実行する第一のインタフェース110Xと、IPネットワーク1を介して他のストレージ装置100との間で通信を行うと共に複数のディスク装置101,101,…に対してのアクセス処理を実行する第ニのインタフェース110Yと、を備えている。
複数のディスク装置101,101,…の記憶領域は、ホスト200からのデータイメージが1つの記憶領域群を成すLU(Logical Unit)0,LU1,LU2,…に分割されている。各LU0,LU1,LU2,…は、それぞれ、図4に示すように、さらに、複数の記憶領域S0〜S7に分割されている。すなわち、複数の記憶領域S0〜S7の集合が1つの記憶領域群であるLUを構成している。なお、記憶領域の単位は、この実施形態では、トラック(64KBのアドレス単位)である。
第一のI/F110X及び第二のI/F110Yは、いずれも、フロントエンドI/F111X,111Y、キャッシュメモリ112X,112Y、コントローラ120X,120Y、バックエンドI/F113X,113Y、ブリッジ114X,114Y、制御メモリ115X,115Yを有している。
第一のI/F110XのフロントエンドI/F111Xは、対応ホスト200とFCプロトコル通信を行うため、FCプロトコルのデータの入出力処理を行う。このFCプロトコル通信では、FCプロトコルの上位のSCSI命令を送受信する。また、第二のI/F110YのフロントエンドI/F111Yは、他のストレージ装置100とIPプロトコル通信を行うため、IPプロトコルのデータの入出力処理を行う。このIPプロトコル通信では、IPプロトコルの上位のSCSI命令を送受信する。第一及び第二のI/F110X,110YのバックエンドI/F113X,113Yは、コントローラ120X,120Yからの指示に従って、複数のディスク装置101のうちのいずれかにアクセス処理を実行させる。キャッシュメモリ112X,112Yは、フロントエンドI/F111X,111Yで受信したリード要求やライト要求等の要求に対するキャッシュとしての役割を果たすメモリである。例えば、フロントエンドI/F111X,111Yでライト要求を受信した場合、このライト要求がキャッシュメモリ112X,112Yに一旦格納された後、複数のディスク装置101のうちのいずれかに格納される。また、フロントエンドI/F111X,111Yでリード要求を受信した場合、複数のディスク装置101のいずれから該当データが読み出され、このデータがキャッシュメモリ112X,112Yに一旦格納された後、リード要求元に送信される。また、ホスト200からのライト要求を受信した第一のI/F110Xは、ホスト200から送信されたデータをキャッシュメモリ112Xに格納すると共に、同じデータをコントローラ120X及び通信路119を経由して第二のI/F120Yへも渡す。第二のI/F120Yのコントローラ120Yは、これをキャッシュメモリ112Yに書き込む。このため、仮に、第一のI/F110Xに故障が発生してキャッシュメモリ112Xに格納されたデータが利用不能になっても、キャッシュメモリ112Yからディスク装置101へデータを格納できる。
ブリッジ114X,114Yは、LAN4により、対応管理サーバ300に接続されている。管理サーバ300は、LAN4及びブリッジ114X,114Yを介して、制御メモリ115X,115Y内のプログラムや諸データの設定変更を実行する。
第一のI/F110Xの制御メモリ115Xには、コントローラ120Xが実行するためのプログラム116Xが格納されている。また、第二のI/F110Yの制御メモリ115Yには、コントローラ120Yが実行するためのプログラム116Yや、オーナ情報テーブル117Yや、ロック情報テーブル118Yが格納されている。オーナー情報テーブル117Yは、後述するように、どのストレージ装置がどのLUに対するアクセスを管理するかを示すテーブルで、ロック情報テーブル118Yは、同じく後述するように、自らがアクセスを管理しているUL内の複数の記憶領域毎に、記憶領域に対するアクセスを制限するか否かを示すロック情報が記憶されるテーブルである。
第一のI/F110Xのコントローラ120Xは、フロントエンドI/F111Xを介して対応ホスト200からのアクセス要求を受信するアクセス要求受信部121Xと、自らが管理しているLUに対するアクセス要求を処理するオーナー・アクセス処理部122Xと、他のストレージ装置100が管理しているLUに対するアクセス要求を処理する非オーナー・アクセス処理部123Xとを有している。
また、第二のI/F110Yのコントローラ120Xは、オーナー情報テーブル117Yを参照して、第一のI/F110Xで受信したアクセス要求でアクセスすべきLUがいずれのストレージ装置100の管理下にあるかを判断するオーナー判断部121Yと、他のストレージ装置100に対してリモートコピーのためにライト要求及びライトデータを送信する一方で、他のストレージ装置100からライト要求及びライトデータを受信すると、このライト要求を処理するリモートコピー処理部122Yと、他のストレージ装置100との間で、特定の記憶領域に対するアクセスを制限する旨のロック確保要求を受信及び送信するロック確保要求受送信部123Yと、他のストレージ装置100からのロック確保要求の示す記憶領域がアクセス制限されているか否かを判断するロック確保要求処理部124Yと、他のストレージ装置100との間で、ロック解除要求を受信及び送信するロック解除要求受送信部125Xと、を有している。なお、各コントローラ120X,120Yの各部は、いずれも、制御メモリ115X,115Yに記憶されているプログラム116X,116Yを実行することで機能する。
ホスト200は、FCプロトコルを処理可能なI/FであるHBA(Host Bus Adapter)201を有し、このHBA201により、FCリンク3を介してストレージ装置100と接続されている。また、このホスト200は、図示していないが、CPU、メモリ等を有する計算機である。
ストレージ装置100の第一のI/F110Xは、イニシエタの役割を果たすホスト200に対してターゲットの役割を果たし、共通ストレージイメージ103へのアクセスを可能とする。すなわち、第一のI/F110Xは、ホスト200から送信されたリード要求やライト要求を受信すると、共通ストレージイメージ103を構成する各LUの指定領域に対するリード要求やライト要求を処理する。
ストレージ装置100の第二のI/F110Yは、IPネットワーク1を経由して接続されている他のストレージ装置100の第二のI/F110Yに対し、イニシエタの役割とターゲットの役割を両方果たす。すなわち、第二のI/F110Yは、イニシエタの役割として、ストレージイメージ103を構成する各LUの指定領域に対するリード要求やライト要求を他のストレージ装置100の第二のI/F110Yに送信し、ターゲットの役割として、他のストレージ装置100の第二のI/F110Yからリード要求やライト要求を受信すると、ストレージイメージ103を構成する各LUの指定領域に対するリード要求やライト要求を処理する。
以上のストレージシステムの初期化時には、(1)まず、第二のI/F110Y同士が相互にログインをし、(2)次に、ロック情報テーブル118Yのデータ及び共通データイメージ103の初期化、すなわち、各ストレージ装置100A,100B,100Cでそれらが同一の内容になるようにする。たとえば、ストレージ装置100Aが第二のI/F110Yを経由して、ロック情報テーブル118Yのデータ及び共通データイメージ103をストレージ装置100B,100Cにコピーする。これらの後で、(3)ホスト200からのログインおよび引き続くアクセス要求を許可する。
イニシエタがターゲットをアクセスするためには、ターゲットのアドレスと、識別子の関連を知る必要がある。そのためには(1)ホストに、利用可能なターゲットの情報(ネットワークアドレスと識別子)を直接入力する方法と、(2)利用可能なターゲットの情報を管理するネームサーバを用いる方法と、(3)ホストが利用可能なターゲットを自動的に探すプロトコル(ディスカバリプロトコル)を用いる方法、のいずれかが採用できる。FCでは、接続の媒介となるファブリック(スイッチ)がネームサーバ機能を持つため(2)の方法が一般的だが、iSCSIは(1)(3)も考えられる。(1)〜(3)のいずれの方法でも本発明の本質には影響を及ぼさない。例えば、図2に示すように、ホスト200A,200Bとストレージ装置100A,100Bとの接続が直結ではなく、FCネットワーク3A,3Bを経由する場合や、ストレージ装置100Aとストレージ装置100BとをIPネットワーク1を経由する場合に、各ネットワーク3A,3B,1に、それぞれ、ネームサーバ400A,400B,410を接続するようにしてもよい。
また、以上のストレージ装置100は、物理的に異なるホスト側の通信回線3と他のストレージ装置100側の通信回線2に接続されているが、1つの通信回線を途中でルーター等で分岐し、分岐した一方をホスト200に接続し、分岐した他方をIPネットワーク1を介して他のストレージ装置100に接続するようにしてもよい。この場合、ストレージ装置100のフロントエンドI/Fは1つになる。
図3に示すように、第二のI/F110Yの制御メモリ115Yに格納されているオーナー情報テーブル117Yは、各LU毎に、当該LUに対するアクセスを管理するストレージ装置100のIDが一意に対応付けられている。各ストレージ装置100A,100B,100Cが持つオーナー情報テーブル117Yの内容は同一である。このオーナー情報テーブル117Yの例では、LU0に対するアクセスを管理する、言い換えるとLU0のロック情報を管理するオーナーはストレージ装置100Aで、LU1のロック情報を管理するオーナーはストレージ装置100Bで、LU2のロック情報を管理するオーナーはストレージ装置100Cである。なお、このオーナー情報テーブル117Y内のデータは、基本的には、管理サーバ300からの指示で設定される。
また、図5に示すように、第二のI/F110Yの制御メモリ115Yに格納されているロック情報テーブル118Yは、リード要求処理のためにどの記憶領域に対するアクセス処理を制限するかを示すリード用ロック情報テーブル118a,118b,118cと、ライト要求処理のためにどの記憶領域に対するアクセス処理を制限するかを示すライト用ロック情報テーブル118dとがある。各テーブルには、LUを構成する複数の記憶領域S0〜S7に対応する欄が設けられており、各欄に当該記憶領域に対するアクセスを制限するか否かが格納される。
この実施形態において、具体的には、
(1)ライト要求処理を行なっている最中の記憶領域に対してはリード処理もライト処理も不可
(2)リード要求処理を行なっている最中の記憶領域に対してはライト処理不可
というアクセス制限を行う。
ライト用ロック情報テーブル118dは、各記憶領域S0〜S7について、「いずれかのストレージ装置がホストからのライト要求を処理するために当該領域をロックしている最中」であることを示すテーブルで、記憶領域S0〜S7に対応する欄には、ライト要求を処理しているストレージ装置の識別子が格納される。この例では、記憶領域S4,S5がストレージ装置100Cのライト処理のためにロックされている状態を示している。
また、リードロック情報テーブル118a,118b,118cには、ストレージ装置100Aがリード要求処理を行っている最中の記憶領域を示すリード用ロック情報テーブル118aと、ストレージ装置100Bがリード要求処理を行っている最中の記憶領域を示すリード用ロック情報テーブル118bと、ストレージ装置100Cがリード要求処理を行っている最中の記憶領域を示すリード用ロック情報テーブル118cとがある。例えば、ストレージ装置100A用のリード用ロック情報テーブル118aは、各記憶領域S0〜S7について「ストレージ装置AがホストAからのリード要求を処理するために当該領域をロックしている最中」であることを示すテーブルで、記憶領域S0〜S7に対応する欄には、当該領域をロックしていることを示す「1」、又は当該領域をロックしていないことを示す「0」が格納される。この例では、記憶領域S1,S2がストレージ装置100Aのリード要求処理のためにロックされている状態を示している。
各ストレージ装置100A,100B,100Cの制御メモリ115Yには、自身がオーナーであるLUに関するロック情報テーブル118Yが格納されている。本実施形態では、ストレージ装置100Aの制御メモリ115Yには、LU0に関するロック情報テーブル118Yが格納され、ストレージ装置100Bの制御メモリ115Yには、LU1に関するロック情報テーブル118Yが格納され、ストレージ装置100Cの制御メモリ115Yには、LU2に関するロック情報テーブル118Yが格納されている。
次に、図12を用いて、イニシエタとターゲット間の通信に用いられるiSCSIのパケットのフォーマットについて説明する。
iSCSIにおいて、データの通信の単位となるPDU(iSCSI Protocol data Unit)は、BHS(Basic Header Segment)404とデータセグメント(data Segment)405から構成される。BHS404とデータセグメント405の間にAHS(Additional Header Segment)が挿入される場合もあるが、図12の例ではそれを省略してある。iSCSIでは、下位のプロトコル層としてTCP(Transmission Control Protocol)層、IP層、データリンク層を利用する。本実施例ではデータリンク層はギガビットイーサネット(イーサネットは、米国ゼロックス社の登録商標)である。これらのプロトコル層では、iSCSI層で扱うパケットに、先頭にTCPヘッダ403、IPヘッダ402、データリンクヘッダ401が付加される。さらにiSCSIパケットの最後尾にはデータリンク層でデータリンクトレイラ406が付加される。
各プロトコル層で追加されるヘッダは、データの送受信で必要な情報(送信元および送信先を識別するためのアドレス情報など)が含まれる。これらのヘッダを参照して、PDUの送信元を識別できる。
次に、図13を用いて、以上で述べたiSCSI PDUのフォーマットについて説明する。
410は、iSCSI PDUの先頭から0から3バイト目の領域であり、PDUの種類を示すOP Code領域(0バイト目。4バイト単位で示すビット位置としては29ビットから24ビット目)を有する。OP Codeは、例えば、SCSIコマンドを運搬するSCSI Command PDUならば0x01(0xは16進数であることを示す。以下同様)、Text Request PDUならば0x04、Test Response PDUならば 0x24、というようにiSCSI規格で定められている。
411は、iSCSI PDUの4バイト目から7バイト目の領域であり、AHSのデータ長およびデータセグメントの長さを示す領域である。
412は、iSCSI PDUの8バイト目から15バイト目の領域であり、LUの識別情報であるLUN(Logical Unit Number)またはOP codeに依存する情報を格納する。
413は、iSCSI PDUの16バイト目から19バイト目の領域であり、Initiator Task Tagを格納する領域である。Initiator Task Tagによって、イニシエタが発行したSCSIコマンドと、ターゲットが応答するレスポンスやデータの対応が示される。
414は、iSCSI PDUの20バイト目から47バイト目の領域であり、OP codeに依存する情報を格納する。SCSI Command PDUでは、期待するデータ転送長(リードやライトするデータの長さ)や、SCSI命令を記述した情報(SCSI CDB)等を格納する。
410、411、412、413および414を併せた領域が、図12を用いて説明したBHS404である。
405は、iSCSI PDUにAHSが無い場合48バイト目以降の領域であり、図12を用いて説明したデータセグメントである。このデータセグメントは、PDUの種類によっては省略される。
この実施形態において、リード用ロック確保要求、ライト用ロック確保要求、リード用ロック解除要求およびライト用ロック解除要求は、各々iSCSIのText Request PDUとして送信する。Text Request PDUは、イニシエタから送信されるPDUであり、ターゲットからの応答はText Response PDUである。これらは、イニシエタとターゲットの間の各種動作パラメータの交換をするための通信に用いられる。
リード用ロック確保要求は、Text Request PDUのデータセグメントに、リード用ロック確保要求であることを示す「X-com.xxx.ReadLockReq=Yes」と、ロック確保を要求する対象領域を識別する番号を「X-com.xxx.TargetArea=123」といった、iSCSI規格でベンダ独自に設定可能とされているTEXT形式で格納する。また、図13の領域412に、対象のLUを示すLUNを格納する。
リード用ロック確保要求に対する応答は、Text Reeponse PDUのデータセグメントに、ロック確保承諾の場合は「X-com.xxx.ReadLockReq=Accept」、ロック確保rejectの場合は「X-com.xxx.ReadLockReq=Reject」と格納する。
同様に、ライト用ロック確保要求はText Request PDUのデータセグメントに、ライト用ロック確保要求であることを示す「X-com.xxx.WriteLockReq=Yes」と、ロック確保を要求する対象領域を識別する番号を「X-com.xxx.TargetArea=123」といった、iSCSI規格でベンダ独自に設定可能とされているTEXT形式で格納する。また、図13の領域412に、対象のLUを示すLUNを格納する。
ライト用ロック確保要求に対する応答は、Text Response PDUのデータセグメントに、ロック確保承諾の場合は「X-com.xxx.WriteLockReq=Accept」、ロック確保rejectの場合は「X-com.xxx.WriteLockReq=Reject」と格納する。
リード用ロック解除要求は、Text Request PDUのデータセグメントにリード用ロック解除要求であることを示す「X-com.xxx.ReadUnLockReq=Yes」と、ロック解除を要求する対象領域を識別する番号を「X-com.xxx.TargetArea=123」といった、iSCSI規格でベンダ独自に設定可能とされているTEXT形式で格納する。また、13の領域412に、対象のLUを示すLUNを格納する。
ライト用ロック解除要求は、Text Request PDUのデータセグメントにライト用ロック解除要求であることを示す「X-com.xxx.WriteUnLockReq=Yes」と、ロック解除を要求する対象領域を識別する番号を「X-com.xxx.TargetArea=123」といった、iSCSI規格でベンダ独自に設定可能とされているTEXT形式で格納する。また、13の領域412に、対象のLUを示すLUNを格納する。
各ストレージ装置100A,100B,100Cの第二のI/F110Yにおいて、こうしたロック確保要求の送受信は、データのリモートコピーに用いるPDUよりも優先して処理するように制御プロセッサのプログラムの処理優先度を定めてシステムを構築しても良い。
次に、図6〜図11に示すフローチャートに従って、本実施形態のストレージシステムを構成する1つのストレージ装置の動作について説明する。
まず、図6及び図7に示すフローチャートに従って、ストレージ装置100がホスト200からライト要求を受信した場合の動作について説明する。
第一のI/F110Xのコントローラ120Xのアクセス要求受信部121Xが、第一のI/F110XのフロントエンドI/F111Xを介して、ホスト200からライト要求を受信すると、このライト要求を第二のI/F110Yのオーナー判断処理部121Yに渡す(ステップ210)。このオーナー判断処理部121Yは、オーナー情報テーブル117Yを参照して、ライト要求で指示されたLUのオーナーが自サイト(すなわち自ストレージ装置)であるか否かを判断する(ステップ211)。判断の結果、否である場合は、図7に示すステップ230に進む。
また、ステップ211での判断の結果、ライト要求で指示されたLUのオーナーが自サイトである場合は、第一のI/F110Xのオーナーアクセス処理部122Xは、ライト要求で指示された対象領域(トラック)が、既にリード又はライト処理の為にロックされているか否かを判定する(ステップ212)。この判定は、このストレージ装置自身が保持しているロック情報テーブル118Yを参照して行なう。すなわち、図5に示す各ロック情報テーブル118a〜118dのいずれかの対象領域の欄がロック状態になっているか否かを判定する。
ステップ212での判定の結果、対象領域が既にロックされている場合、オーナーアクセス処理部122Xは、フロントエンドI/F111Xを介して、ホスト200へ、現在ライト要求処理が実行不能であることを示すビジー応答し(ステップ221)、処理を終了する(ステップ222)。これは、対象領域が既にロックされている場合、いずれかのストレージ装置100で、対象領域に対してアクセス処理を行っており、各サイト相互間でデータの一貫性を保つため、ライト要求処理を行うべきでないからである。また、ステップ212での判定の結果、対象領域がロックされていない場合は、この対象領域をロックする。すなわち、図5に示すライト用ロック情報テーブル118dの対象領域の欄について、自ストレージ装置を示す識別子(A,B,Cなど)を格納する(ステップ213)。その後、オーナーアクセス処理部122Xは、ホスト200からの指示に応じライト要求処理を行なう。すなわち、受信準備が出来たことを示すR2Tと呼ぶフレームをホスト200に返信し、ホスト200から送信されたライトデータをキャッシュメモリ112X,112Yに格納する。キャッシュメモリ112Xに格納されたライトデータは、その後、ディスク装置101へのデータ書き込み(デステージと呼ぶ)に用いられる(ステップ214)。
その後、または、ステップ214での処理と並行して、第二のI/F110Yのリモートコピー処理部122Yが、ホスト200から受信したライトデータを他の全ストレージ装置100に対しリモートコピーする(ステップ215)。これは、第二のI/F110Yのキャッシュメモリ112Yに格納されたライトデータを、他のストレージ装置100にライト処理させることで実現する。この処理は、第二のI/F110Yが行なうため、第一のI/F110Xへの負荷は低い。すなわち、ホスト200との通信や、データのディスク装置101への格納への影響が少ない。リモートコピーに必要な情報(LU、対象領域、データ長)はステップ210で受信したライト要求から抽出され、第一のI/F110Xのコントローラ120Xから第二のI/F110Yのコントローラ120Yへ通信路119を経て伝えられる。
リモートコピー処理部122Yは、ステップ215の処理後、リモートコピー処理でのライト要求に対する終了応答の受信を待つ(ステップ216)。予め定められた時間内に他の全ストレージ装置100から応答を受信した場合は、ステップ217に進み、予め定められた時間を経過しても全ての応答を受信できなかった場合はステップ223へ進む。
ステップ217では、リモートコピー処理部122Yが、他の全ストレージ装置100から正常終了応答を受信したか否かを判定し、全て正常終了応答だった場合には、すなわち、ストレージシステムを構成する全ストレージ装置100に、ホスト200からのライトデータをコピーして、共通ストレージイメージ103を最新の状態に更新できたため、第一のI/F110Xのオーナーアクセス処理部122Xは、ホスト200に対してライト要求の正常終了を応答する(ステップ218)。その後、オーナーアクセス処理部122Xは、ステップ213でライト要求処理の為にロックした対象領域を開放し、すなわち、ライト用ロック情報テーブル118dの該当領域の欄に“0”を格納し(ステップ219)、処理を終了する(ステップ220)。
また、ステップ216でタイムアウトが発生した場合、又は、ステップ217でいずれかのサイトからデータのライトに対し異常終了を示す応答を受信した場合は、オーナーアクセス処理部122Xは、ホスト200にライト要求の異常終了を応答し(ステップ223)、後処理を行なってから(ステップ224)、処理を終了する(ステップ220)。なお、ここでの後処理としては、例えば、ステップ215でのリモートコピー処理のリトライ等がある。
次に、以上のステップ211で、ライト対象領域を含むLUのオーナーが自サイトでないと判断され、ステップ230に進んだ後の動作について、図7に示すフローチャートに従って説明する。
ステップ230の後、第二のI/F110Yのオーナー判断処理部121Yは、対象領域を含むLUのオーナーに対し、対象領域をライト処理する為にロックの確保を要求するロック確保要求を送信する(ステップ231)。その後、ロック確保要求の応答を待ち(ステップ232)、予め定められた時間内に応答を受信できた場合は、応答から対象領域をライト用にロックできたか否かを判定する(ステップ233)。この判定でロックできていないと判定した場合は、対象領域が既にロックされている状態と考えられるので、図6のステップ221へ進む(ステップ242)。
ステップ233で対象領域をライト処理の為にロックできたと判定した場合、第一のI/F110Xの非オーナーアクセス処理部123Xは、ホスト200からの指示に応じてライト要求処理を行なう(ステップ234)。すなわち、受信準備が出来たことを示すR2Tと呼ぶフレームをホスト200へ返信し、このホスト200から送信されたライトデータをキャッシュメモリ112X,112Yに格納する。第一のI/F110Xのキャッシュメモリ112Xに格納されライトデータは、その後、ディスク装置101へのデータ書き込み(デステージ)に用いる。
その後、または、ステップ234での処理と並行して、第二のI/F110Yのリモートコピー処理部122Yが、前述のステップ215での処理と同様に、ホスト200から受信したライトデータを他の全ストレージ装置100に対しリモートコピーする(ステップ235)。
リモートコピー処理部122Yは、ステップ235の処理後、リモートコピー処理でのライト要求に対する終了応答の受信を待つ(ステップ236)。予め定められた時間内に他の全ストレージ装置100から応答を受信した場合は、ステップ237に進み、予め定められた時間を経過しても全ての応答を受信できなかった場合はステップ243へ進む。
ステップ237では、リモートコピー処理部122Yが、他の全ストレージ装置100から正常終了応答を受信したか否かを判定し、全て正常終了応答だった場合には、すなわち、ストレージシステムを構成する全ストレージ装置100に、ホスト200からのライトデータをコピーして、共通のストレージイメージ103を最新の状態に更新できたため、第一のI/F110Xの非オーナーアクセス処理部123Xは、ホスト200に対してライト要求の正常終了を応答する(ステップ238)。その後、ステップ231でライト処理の為にロックした対象領域を開放するため、第二のI/F110Yのロック解除要求受送信部125Yは、対象領域を含むLUのオーナーに対象領域のライト用ロック解除要求を送信し(ステップ239)、処理を終了する(ステップ240)。
また、ステップ323又はステップ236でタイムアウトが発生した場合、又は、ステップ237でいずれかのストレージ装置100からデータのライトに対し異常終了を示す応答を受信した場合は、オーナーアクセス処理部122Xは、ホスト200にライト要求の異常終了を応答等の後処理を行ってから(ステップ243)、前述のステップ239に進む。
以上のように、本実施形態では、ストレージ装置100がホスト200からライト要求を受信した場合、当該ストレージ装置100がライト要求の対象領域を含むLUのオーナーである場合には、対象領域をロックして、他のストレージ装置100でのアクセス要求処理を制限した状態にした上で、対象領域に対してライト要求処理を行うと共に、他のストレージ装置100にライト要求に関するライトデータを送信して、リモートコピー処理を行っている。また、当該ストレージ装置100がライト要求の対象領域を含むLUのオーナーではない場合には、オーナーのストレージ装置100に対して、対象領域に関してロック確保要求を送信して、対象領域をロックさせ、他のストレージ装置100でのアクセス要求処理を制限した状態にした上で、対象領域に対してライト要求処理を行うと共に、他のストレージ装置100にライト要求に関するライトデータを送信して、リモートコピー処理を行っている。従って、ライト要求処理の前後で、各ストレージ装置100A,100B,100Cの共通ストレージイメージ103の内容が変わるものの、各ストレージ装置100A,100B,100Cがそれぞれ保有している共通ストレージイメージ103相互の同一性を確保することができる。
次に、図8及び図9に示すフローチャートに従って、ストレージ装置100がホスト200からリード要求を受信した場合の動作について説明する。
第一のI/F110Xのコントローラ120Xのアクセス要求受信部121Xが、第一のI/F110XのフロントエンドI/F111Xを介して、ホスト200からリード要求を受信すると、このリード要求を第二のI/F110Yのオーナー判断処理部121Yに渡す(ステップ260)。このオーナー判断処理部121Yは、オーナー情報テーブル117Yを参照して、リード要求で指示されたLUのオーナーが自サイトであるか否かを判断する(ステップ261)。判断の結果、否である場合は、図9に示すステップ280に進む。
また、ステップ261での判断の結果、リード要求で指示されたLUのオーナーが自サイトである場合、第一のI/F110Xのコントローラ120Xのオーナーアクセス処理部122Xは、リード要求で指示された対象領域が、既にライト処理の為にロックされているか否かを判定する(ステップ262)。この判定は、このストレージ装置自身が保持しているロック情報テーブル118Yを参照して行なう。すなわち、図5に示すライト用ロック情報テーブル118dの対象領域の欄がロック状態になっているか否かを判定する。
ステップ262での判定の結果、対象領域が既にロックされている場合、オーナーアクセス処理部122Xは、フロントエンドI/F111Xを介して、ホスト200へ、現在ライト要求処理が実行不能であることを示すビジー応答し(ステップ221)、処理を終了する(ステップ222)。また、ステップ262での判定の結果、対象領域がロックされていない場合は、この対象領域をロックする。すなわち、図5に示すリード用ロック情報テーブル(118a〜118cのいずれか)の対象領域の欄について、ロックしていることを示す“1”を格納する(ステップ263)。その後、オーナーアクセス処理部122Xは、ホスト200からの指示に応じリード要求処理を行なう(ステップ264)。すなわち、リード要求が示す対象領域のデータをキャッシュメモリ112X,112Y又はディスク装置101から読み出し、フロントエンドI/F111Xを介して、このデータをホスト200への返信する。ここで特記すべきことには、リードされるデータは、第二のI/F110Yで他のサイトから読み出す必要が無いことである。リード要求処理終了後、ホスト200に対しリード要求の正常終了を示すレスポンスを送信する。
その後、オーナーアクセス処理部122Xは、ステップ263でリード要求処理の為にロックした対象領域を開放し、すなわち、リード用ロック情報テーブル(118a〜118cのいずれか)の該当領域の欄に“0”を格納し(ステップ265)、処理を終了する(ステップ266)。
次に、以上のステップ261で、リード対象領域を含むLUのオーナーが自サイトでないと判断され、ステップ280に進んだ後の動作について、図9に示すフローチャートに従って説明する。
ステップ280の後、第二のI/F110Yのオーナー判断処理部121Yは、対象領域を含むLUのオーナーに対し、対象領域をリード処理するためにロックの確保を要求するロック確保要求を送信する(ステップ281)。その後、ロック確保要求の応答を待ち(ステップ282)、予め定められた時間内に応答を受信できた場合は、応答から対象領域をリード用にロックできたか否かを判定する(ステップ283)。この判定でロックできなかったと判定した場合は、対象領域が既にロックされている状態と考えられるので、図8のステップ271へ進む(ステップ292)。
ステップ283で対象領域をリード処理の為にロックできたと判定した場合、第一のI/F110Xの非オーナーアクセス処理部123Xは、ホスト200からの指示に応じてリード要求処理を行なう(ステップ284)。すなわち、リード要求が示す対象領域のデータをキャッシュメモリ112X,112Y又はディスク装置101から読み出し、フロントエンドI/F111Xを介して、このデータをホスト200への返信する。ここで特記すべきことには、リードされるデータは、第二のI/F110Yで他のサイトから読み出す必要が無いことである。リード要求処理終了後、ホスト200に対しリード要求の正常終了を示すレスポンスを送信する。
その後、ステップ281でリード処理の為にロックした対象領域を開放するため、第二のI/F110Yのロック解除要求受送信部125Yは、対象領域を含むLUのオーナーに対象領域のリード用ロック解除要求を送信し(ステップ285)、処理を終了する(ステップ286)。
また、ステップ282でタイムアウトが発生した場合、非オーナーアクセス処理部123Xは、ホスト200にリード要求の異常終了の応答等の後処理を行ってから(ステップ293)、前述のステップ285に進む。
次に、図10に示すフローチャートに従って、ストレージ装置100が他のストレージ装置100から、ライト用ロック確保要求を受信した場合の動作について説明する。すなわち、以下で説明する動作は、ライト要求用ロック確保要求の送信元が、送信元のホストから受信したライト要求の対象領域を含むLUに関して非オーナーサイトであり、この送信先がオーナーサイトである場合のオーナーサイトの動作である。
第二のI/F110Yのロック確保要求受送信部123Yが他のストレージ装置(非オーナーサイトのストレージ装置)100からライト用ロック確保要求を受信すると(ステップ310)、ロック確保要求処理部124Yは、このライト用ロック確保要求で指示された対象領域が、既にリード又はライト処理の為にロックされているか否かを判定する(ステップ311)。この判定は、対象領域を含むLUのオーナーであるストレージ装置100のロック確保要求処理部124Yが、図5に示す全てのロック情報テーブル118a〜118dの対象領域がロックされていないか、つまり、すべての対象領域の欄に“0”が設定されているかで判定する。
ステップ311の判定の結果、すべての対象領域がロックされていない場合は、ライト用ロック情報テーブル118dの対象領域の欄に、ロック確保要求を送信してきたストレージ装置100の識別子(A,B,Cなど)を格納する(ステップ312)。その後、ロック確保要求処理部124Yは、ロック確保要求を送信してきたストレージ装置100に対し、ロック確保要求の受諾の旨を送信し(ステップ313)、処理を終了する(ステップ314)。なお、この場合、その後、ライト用ロック確保要求の送信元でライト処理を行ったライトデータが、リモートコピー処理のために、この送信元から送信されてくるので、対象領域がロックされているか否かに関わらず、このライトデータを対象領域にライト処理を行うことになる。すなわち、この実施形態では、対象領域がロックされているか否かに関わらず、第二のI/F110Yで他のストレージ装置100からリード要求又はライト要求を受信した場合は、受信した要求を処理して応答する。さらに、その後、ライト用ロック確保要求の送信元からライト用ロック解除要求が送信されてくるので、これを受信した場合は、ライト用ロック情報テーブル118dの対象領域の欄に、ロックされていないことを示す“0”を設定する。
一方、ステップ311で、対象領域が既にリード又はライト用にロックされていると判定した場合は、この対象領域に対していずれかのストレージ装置100がアクセスしており、ロック確保要求を送信してきた非オーナーサイトのストレージ装置100でライト処理を行うことデータの一貫性を保つことができなくなるので、非オーナーサイトのストレージ装置100に対して、ロック確保要求のreject(ロック確保できない旨の報告)を送信し(ステップ315)、処理を終了する(ステップ314)。
次に、図11に示すフローチャートに従って、ストレージ装置100が他のストレージ装置100から、リード用ロック確保要求を受信した場合の動作について説明する。
第二のI/F110Yのロック確保要求受送信部123Yが他のストレージ装置(非オーナーサイトのストレージ装置)100からリード用ロック確保要求を受信すると(ステップ320)、ロック確保要求処理部124Yは、このリード用ロック確保要求で指示された対象領域が、既にライト処理の為にロックされているか否かを判定する(ステップ321)。この判定は、対象領域を含むLUのオーナーであるストレージ装置100のロック確保要求処理部124Yが、図5に示すライト用ロック情報テーブル118dの対象領域がロックされていないか、つまり、すべての対象領域の欄に“0”が設定されているかで判定する。
ステップ321の判定の結果、対象領域がロックされていない場合は、リード用ロック情報テーブル(118a〜118cのうちのいずれか)の対象領域の欄に、ロックされていることを示す“1”を設定する(ステップ322)。その後、ロック確保要求処理部124Yは、ロック確保要求を送信してきたストレージ装置100に対し、ロック確保要求の受諾の旨を送信し(ステップ323)、処理を終了する(ステップ324)。なお、この場合、その後、リード用ロック確保要求の送信元からリード用ロック解除要求が送信されてくるので、これを受信した場合は、リード用ロック情報テーブルの対象領域の欄に、ロックされていないことを示す“0”を設定する。
一方、ステップ321で、対象領域が既にライト用にロックされていると判定した場合は、この対象領域に対していずれかのストレージ装置100がライト処理を行っているので、ロック確保要求を送信してきた非オーナーサイトのストレージ装置100に対して、ロック確保要求のreject(ロック確保できない旨の報告)を送信し(ステップ325)、処理を終了する(ステップ324)。
次に、図14〜図16を用いて、ホスト200からのライト要求を処理するための各サイト間の通信について説明する。
まず、図14及び図15を用いて、ホスト200Aから、同サイトのストレージ装置100Aに対して、ストレージ装置100AがオーナーであるLU0内の領域へのライト要求が発行された場合における、各サイト間の通信について説明する。
ホスト200Aからライト要求を、ストレージ装置100Aの第一のI/F110Xが受信すると(ステップ5110)、ストレージ装置100Aは、まず、オーナー情報テーブル117Yを参照して、このライト要求が示すLU0のオーナーが自装置であることを認識する。そして、自装置が保有しているロック情報テーブル118Yを参照して、対象領域がリード用またはライト用にロックされているか否かを判定する。対象領域がロックされていない場合には、第二のI/F110Yから、ライト要求に関するライトデータをストレージシステム内の他の全ストレージ装置100B,100Cにリモートコピーするために、ホスト200Aからのライト要求と同じSCSI CDBを持つライト要求を他の全ストレージ装置100B,100Cに送信する(ステップ5112,5114)。このライト要求に対する応答として、他のストレージ装置100B,100Cからは、R2Tが送信されてくる(ステップ5122,5124)。
ストレージ装置100Aは、また、ホスト200Aからのライト要求の処理を進めるため、第一のI/F110XでR2Tを応答する(ステップ5120)。これに対して、ホスト200Aからライトデータが送信されてくるので(ステップ5130,5140)、このライトデータをライト処理する一方で、第二のI/F110Yでリモートコピー先のストレージ装置100B,100Cに送信する(ステップ5132,5134,5142,5144)。なお、このライトデータの送信は、他のストレージ装置100B,100Cから前述のR2Tを受信した後に行う。
リモートコピーの正常終了は、リモートコピー先の全ストレージ装置100B,100Xからの正常終了応答の受信で(ステップ5152,5154)確認する。その後、ホスト200Aに対し、ライト要求の正常終了応答を返信する(ステップ5150)。
また、図15に示すように、ストレージ装置100Aは、ホスト200Aからのライト要求を受信し(ステップ5110)、対象領域がリード用またはライト用にロックされていると判定した場合には、ホスト200Aに対し、現在はライト要求を処理できないことを示すBUSYを返信する(ステップ5160)。
次に、図16を用いて、ホスト200Aから、同サイトのストレージ装置100Aに対して、他サイトのストレージ装置100BがオーナーであるLU1内の領域へのライト要求が発行された場合における、各サイト間の通信について説明する。
ホスト200Aから同サイトのストレージ装置100AがLU1内の領域へのライト要求を受信した場合(ステップ5210)、ストレージ装置100Aは、まず、LU1のオーナーであるストレージ装置100Bとロックの確保に関する通信を行う(ステップ5125,5127)。具体的には、ストレージ装置100Aは、LU1のオーナーであるストレージ装置100Bに対して、LU1の対象領域に関するライト用ロック確保要求を送信し(ステップ5125)、このストレージ装置Bからのロック確保要求の受諾を受信する(ステップ5127)。ストレージ装置100Aは、その後、図14に示すステップ5112,5114,5122,…,5152,5154,5150と同様のライト要求の処理を行う(ステップ5112,5114,5122,…,5152,5154,5150)。ストレージ装置100Aは、以上のライト要求処理を終了すると、LU1の対象領域に対するロック解除要求をオーナーのストレージ装置100Bへ送信する(ステップ5128)。
次に、図17を用いて、ホスト200Aから、同サイトのストレージ装置100Aに対して、他サイトのストレージ装置100CがオーナーであるLU2内の領域へのリード要求が発行された場合における、各サイト間の通信について説明する。
ホスト200Aからリード要求を、ストレージ装置100Aの第一のI/F110Xが受信すると(ステップ5310)、ストレージ装置100Aは、まず、オーナー情報テーブル117Yを参照して、このリード要求が示すLU2のオーナーがストレージ装置100Cであることを認識する。そして、ストレージ装置100Aは、リード要求が示すLU2内の領域に関するリード用ロック確保要求をオーナーであるストレージ装置100Cに送信する(ステップ5325)。ストレージ装置100Aは、オーナーであるストレージ装置100Cから、リード用ロック確保要求を受諾した旨を受信すると(ステップ5327)、自装置のキャッシュメモリ112X,112Yまたはディスク装置101から対象領域に格納されているデータを読み出し、ホスト200Aに対して送信する(ステップ5320,5330)。その後、リード要求の正常終了応答をホストに送信し(ステップ5340)、オーナーであるストレージ装置100Cにはリード用ロックの解除要求を送信する(ステップ5328)。
以上のように、本実施形態では、ストレージ装置100がホスト200からアクセス要求を受信した場合、当該ストレージ装置100がアクセス要求の対象領域を含むLUのオーナーであるか否かを判断し、自装置がオーナである場合には、自装置が管理しているロック情報テーブル118Yの対象領域をロックし、他サイトのストレージ装置がオーナである場合には、この他サイトのストレージ装置が管理しているロック情報テーブル118Yの対象領域をロックして、この対象領域に関して、他のストレージ装置でのアクセス要求処理を制限した状態にした上で、対象領域に対してアクセス処理を行っているので、各ストレージ装置100A,100B,100Cがそれぞれ保有している共通ストレージイメージ103相互の同一性を確保することができる。
また、本実施形態では、さらに、
(1)LUごとにロック情報の管理を行なう(オーナー)サイトが決まっており、ロック情報競合回避・負荷分散を実現できる、
(2)各サイトが同一データイメージを持つため、リードは他サイトへホップせず自サイトから読み出しするため高速である、
(3)ストレージ装置100は、ホスト側I/F110Xとストレージ側I/F110Yとに物理的に分かれているので、ホスト200からの通信処理に対し悪影響(ネットワーク、コントローラの負荷)を与えない。さらに、ホスト側I/F110Xとストレージ側I/F110Yでは、物理的に分かれているので、別種の技術を利用可能である。例えば、ホスト側I/F110Xには高速なFCを用い、ストレージ側I/F110YにはiSCSIを用いることが有効である、
という利点がある。
なお、以上の実施形態において、ロック解除については、リードまたはライト処理が終了した時点で行なっているが、必要な処理が終了しても一定時間の間はロックを解除せず、その間に同じ領域に対するアクセス要求をホスト200から受信した場合は、新たに対象領域をロックすることなく、新たな要求の処理を行なうようにしてもよい。また、ホスト200からのアクセス要求でライトやリードの対象として示された領域だけでなく、アドレス空間上、その次に位置する領域もロックするようにしてもよい。これは、ホスト200が長大な連続データをアクセスする場合に、次の要求では、先の領域に続く領域へのアクセスが予測されるため、予めその領域のロックを確保しておくという意味がある。
以上のような制御方法を採用すれば、ネットワーク1経由の通信遅延や他ストレージ装置の応答を待たなければならないオーバヘッド軽減が期待できる。
「第2実施形態」
次に、図18を用いて、第2実施形態としてのストレージシステムについて説明する。
第1実施形態では、第二のI/F110Yで他サイトのストレージ装置100に対しロック確保要求及びその応答を送受信する方式として、iSCSIのText Request PDUおよびText Response PDUを採用している。また、第二のI/F110Yで、前述のロック確保要求とは別に、他サイトのストレージ装置100からリード要求やライト要求を受信した場合は、特に対象領域がロックされているか否かのチェックを行なわず受信した要求を処理し、第二のI/F110Yで応答している。
本実施形態では、第二のI/F110Yで他サイトのストレージ装置100に送信するライト用ロック確保要求に、対応するライト要求を含め、さらに、リード用ロック確保要求に、対応するリード要求を含めて、ロック確保の通信に要求の通信を兼用させることで、通信オーバヘッドを減少させている。
ここで、以上の内容について、図18を用いて具体的に説明する。この図の例は、前述の図16の例に対応するもので、ホスト200Aから、同サイトのストレージ装置100Aに対して、他サイトのストレージ装置100BがオーナーであるLU1内の領域へのライト要求が発行された場合における、各サイト間の通信を示すものである。
ホスト200Aから同サイトのストレージ装置100AがLU1内の領域へのライト要求を受信した場合(ステップ5210)、ストレージ装置100Aは、まず、LU1のオーナーであるストレージ装置100Bに対して、対象領域のロック確保要求を兼ねるライト要求を送信する(ステップ5123)。すなわち、本実施形態では、図16におけるステップ5216とステップ5212を、ステップ5213でまとめて行う。ライト要求に関しては、予め決めておいたフラグをセットして送信することでライト用ロック確保要求も兼ねるようにする。このフラグは、例えば、iSCSI PDUのリザーブ領域やベンダ依存領域に定義しておく(そのビットが1であったら、ロック確保要求も兼ねる)ことが考えられる。一方、対象領域のロック確保要求を兼ねるライト要求を受信した他サイトのストレージ装置100Bは、まず、対象領域がリードまたはライト処理のために既にロックされているか否かを確認する。ロックされていなければ、ライト要求を処理するためR2Tで応答する(ステップ5222)。このライト要求の受諾応答R2Tが、ロック確保の受諾応答としても機能する。すなわち、本実施形態では、図16におけるステップ5127とステップ5122をステップ5222でまとめて行う。または、図には示していないが対象領域が既にロックされている場合は、R2Tではなく、BUSYを応答する。このBUSYが、ロック確保rejectの応答として扱われる。
なお、ロック確保、ロック確保の応答、それらに集約される命令および応答以外については、先の述べた第一実施形態と同様である。また、以上では具体的に示していないが、リード要求のロック確保についても同様の処理を行なう。
「第3実施形態」
次に、図19を用いて、第3実施形態としてのストレージシステムについて説明する。
以上の第1及び第2実施形態では、ホスト200からのライト要求に対して、自装置100でのライト処理の直後に、ストレージシステム内の他の全てのストレージ装置100に対するリモートコピー処理を実行し、このリモードコピー処理が完了してから、正常応答をホスト200へ返信している。すなわち、自装置でのライト処理に対して、同期的にリモートコピー処理を行っている。
これに対して、本実施形態では、ホスト200からのライト要求に対して、自装置100でライト処理し、ホスト200に対して正常応答を返してから、ストレージシステム内の他の全てのストレージ装置100に対するリモートコピー処理を実行する。すなわち、本実施形態では、自装置でのライト処理に対して、非同期的にリモードコピー処理を行う。
ここで、以上の内容について、図19を用いて具体的に説明する。この図の例は、前述の図16の例に対応するもので、ホスト200Aから、同サイトのストレージ装置100Aに対して、他サイトのストレージ装置100BがオーナーであるLU1内の領域へのライト要求が発行された場合における、各サイト間の通信を示すものである。
ホスト200Aから同サイトのストレージ装置100AがLU1内の領域へのライト要求を受信した場合(ステップ5210)、図16の例と同様に、ストレージ装置100Aは、まず、LU1のオーナーであるストレージ装置100Bに対して、対象領域のロック確保要求を送信し(ステップ5125)、このストレージ装置Bからのロック確保要求の受諾を受信した後(ステップ5127)、ホスト200AにR2Tを返す(ステップ5120)。
図16の例では、ストレージ装置100Aは、ホスト200AにR2Tを返した後(ステップ5120)、ホスト200Aからのライトデータの受信(ステップ5130,5140)を待たずに、他サイトのストレージ装置100A,100Bに対して、リモートコピーのためにライト要求を送信している(ステップ5114,5112)。しかし、本実施形態では、ストレージ装置100Aは、ホスト200AにR2Tを返した後(ステップ5120)、リモートコピー処理を実行せずに、ホスト200Aからのライトデータを受信し(ステップ5130,5140)、このライトデータをキャッシュメモリ112X,112Yに格納した時点で、ホスト200Aに正常終了応答を送信する(ステップ5150)。本実施形態では、その後、リモートコピー処理(ステップ5214,5212,5122,5124,5132,5134,5142,5144,5152,5154,5128)を実行する。
仮に、ストレージ装置100B,100Cへのライトデータのコピー中に異常が発生した場合、ストレージ装置100Aは、キャッシュメモリ112Yに保持しているライトデータを用いて、ストレージ装置100B,100Cへのライトデータのコピーを再度試みる。
以上のように、本実施形態では、複数のホスト200A,200B,200Cが共有データイメージ103に対してアクセスした場合の同一性が僅かに損なわれるもの、ホスト200からみたライト要求の応答待ち時間が大幅に短縮することができる。
なお、本実施形態において、ストレージ装置100Aから他サイトのストレージ装置100B,100Cへのライト要求の送信(ステップ5212,5214)は、必ずしも、ホスト200Aの正常終了応答を送信した後(ステップ5150)でなくてもよい。
「第4実施形態」
次に、図20を用いて、第4実施形態としてのストレージシステムについて説明する。
以上の各実施形態でのアクセス要求に対するロック条件は、
(1)ライト要求処理を行なっている最中の記憶領域に対してはリード処理もライト処理
も不可
(2)リード要求処理を行なっている最中の記憶領域に対してはライト処理不可
である。
これに対して、本実施形態でのアクセス要求に対するロック条件は、
(1)ライト要求処理を行なっている最中の記憶領域に対してはリード処理もライト処理
も不可
であり、前述の(2)の制限を実行しない。
このため、本実施形態のロック情報テーブル118Yには、図5中のライト用ロック情報テーブル118dのみが存在し、リード用ロック情報テーブル118a〜118cは存在しない。
ここで、以上のロック条件下でのストレージシステムの具体的な動作について、図20を用いて説明する。この図の例は、前述の図17の例に対応するもので、ホスト200Aから、同サイトのストレージ装置100Aに対して、他サイトのストレージ装置100CがオーナーであるLU2内の領域へのリード要求が発行された場合における、各サイト間の通信を示すものである。
ホスト200Aからリード要求を、ストレージ装置100Aの第一のI/F110Xが受信すると(ステップ5310)、ストレージ装置100Aは、まず、オーナー情報テーブル117Yを参照して、このリード要求が示すLU2のオーナーがストレージ装置100Cであることを認識する。そして、ストレージ装置100Aは、オーナーであるストレージ装置100Cに、リード処理可能(ライト処理中でない)かリード処理不可(ライト処理中である)か確認してもらうリード処理確認要求を送信する(ステップ5325’)。
オーナーであるストレージ装置100Cは、リード処理確認要求に対して、ライト用ロック情報テーブル118dを参照して、対象領域がロックされているか否か、つまり対象領域に対していずれかのストレージ装置100A,100B,100Cがライト処理中であるか否かを判定し、いずれもライト処理中でない場合には、受諾応答をストレージ装置100Aに返信する(ステップ5327’)。
ストレージ装置100Aは、受諾応答を受信すると、自装置のキャッシュメモリ112x又はディスク装置101から対象領域に格納されているデータを読み出して、ホスト200Aに送信する(ステップ5320,5330)。その後、ホスト200Aにリード要求に対する正常終了の応答を送信する(ステップ5340)。
なお、本実施形態では、以上の各実施形態と異なり、各ストレージ装置は、リード用ロック情報テーブルを所有していないので、オーナーであるストレージ装置100Cがリード処理確認要求を受信しても(ステップ5325’)、リード用に対象領域をロックすることはない。このため、ストレージ装置100Aは、リード処理後、オーナーであるストレージ装置100Cに対して、リード用ロックの解除要求も送信しない。
この実施形態において、ホスト200からライト要求を受けた場合の処理は、オーナであるストレージ装置100が、ライト用ロック情報テーブル118dしか参照しない以外、以上の実施形態と同様の処理である。
以上のように、本実施形態では、ロック情報を記憶する資源を少なくすることができる上に、リード用ロック情報のチェック処理を省略することができる。
「第5実施形態」
次に、本発明に係る第5実施形態としてのストレージシステムについて説明する。
本実施形態のストレージ装置100は、第4実施形態と同様に、リード処理に関するロック情報の管理及びチェックを省略するもので、ライト用ロック情報テーブル118dを所有しない。但し、本実施形態のアクセス要求に対するロック条件は、
(1’)ライト要求処理を行なっている最中の記憶領域に対してはライト処理不可
のみであり、
(1”)ライト要求処理を行なっている最中の記憶領域に対してはリード処理不可
(2)リード要求処理を行なっている最中の記憶領域に対してはライト処理不可
というアクセス制限はない。
本実施形態では、ホスト200からのリード要求に対して、従来技術のストレージ装置がリード要求を処理する場合と同様に、自装置の自装置のキャッシュメモリ112x又はディスク装置101から対象領域に格納されているデータを読み出して、ホスト200に送信すると共に、正常終了の応答を送信する。すなわち、本実施形態では、リード要求が示す領域のオーナーとしてのストレージ装置に、その対象領域がロックされているか否かを確認しないで、リード処理を行う。
したがって、本実施形態では、ホスト200からみたリード要求の処理時間を大幅に短縮することができる。
なお、本実施形態において、ホスト200からライト要求を受けた場合の処理は、第4実施形態と同様である。
本発明に係る第1実施形態としてのストレージシステムの構成を示す説明図である。 本発明に係る他の実施形態としてのストレージシステムの構成を示す説明図である。 本発明に係る第1実施形態としてのオーナー情報テーブルの構成を示す説明図である。 本発明に係る第1実施形態としてのLUの構成を示す説明図である。 本発明に係る第1実施形態としてのロック情報テーブルの構成を示す説明図である。 本発明に係る第1実施形態としてのストレージ装置がホストからライト要求を受信した場合の動作を示すフローチャートである(その1)。 本発明に係る第1実施形態としてのストレージ装置がホストからライト要求を受信した場合の動作を示すフローチャートである(その2)。 本発明に係る第1実施形態としてのストレージ装置がホストからリード要求を受信した場合の動作を示すフローチャートである(その1)。 本発明に係る第1実施形態としてのストレージ装置がホストからリード要求を受信した場合の動作を示すフローチャートである(その2)。 本発明に係る第1実施形態としてのストレージ装置が他ストレージ装置からライト用ロック確保要求を受信した場合の動作を示すフローチャートである。 本発明に係る第1実施形態としてのストレージ装置が他ストレージ装置からリード用ロック確保要求を受信した場合の動作を示すフローチャートである。 iSCSI PDUがネットワーク上で転送される際のフォーマットを示す説明図である。 iSCSI PDU内のフォーマットを示す説明図である。 本発明に係る第1実施形態のストレージシステムを構成する一ストレージ装置がホストからライト要求を受信した際の各サイト間の通信を示す説明図である(その1)。 本発明に係る第1実施形態のストレージシステムを構成する一ストレージ装置がホストからライト要求を受信した際の各サイト間の通信を示す説明図である(その2)。 本発明に係る第1実施形態のストレージシステムを構成する一ストレージ装置がホストからライト要求を受信した際の各サイト間の通信を示す説明図である(その3)。 本発明に係る第1実施形態のストレージシステムを構成する一ストレージ装置がホストからリード要求を受信した際の各サイト間の通信を示す説明図である(その3)。 本発明に係る第2実施形態のストレージシステムを構成する一ストレージ装置がホストからライト要求を受信した際の各サイト間の通信を示す説明図である。 本発明に係る第3実施形態のストレージシステムを構成する一ストレージ装置がホストからライト要求を受信した際の各サイト間の通信を示す説明図である。 本発明に係る第4実施形態のストレージシステムを構成する一ストレージ装置がホストからリード要求を受信した際の各サイト間の通信を示す説明図である。
符号の説明
1…IPネットワーク、100A,100B,100C…ストレージ装置、101…ディスク装置、103…イメージデータ、110X…第一のI/F、110Y…第二のI/F、111X,111Y…フロントエンドI/F、112X,112Y…キャッシュメモリ、113X,113Y…バックエンドI/F、115X,115Y…制御メモリ、116X,116Y…プログラム、117Y…オーナー情報テーブル、118Y…ロック情報テーブル、120X,120Y…コントローラ、121X…アクセス要求受信部、122X…オーナーアクセス処理部、123X…非オーナーアクセス処理部、121Y…オーナー判断処理部、122Y…リモートコピー処理部、123Y…ロック確保要求受送信部、124Y…ロック確保要求処理部、125Y…ロック解除要求受送信部、200A,200B,200C…ホスト。

Claims (26)

  1. それぞれが記憶装置を備えている複数のストレージ装置相互間で、該記憶装置に記憶されるデータを送受信することで、各ストレージ装置の記憶装置に記憶されるデータの共通化を図るストレージシステムのデータ管理方法において、
    複数の前記ストレージ装置のうちのいずれか一のストレージ装置にアクセス要求があると、該一のストレージ装置は、
    前記一のストレージ装置の前記記憶装置の複数の記憶領域毎に、該記憶領域に対するアクセスを制限するか否かを示すロック情報が記憶されているロック情報テーブルを参照して、該アクセス要求が示す記憶領域に対するアクセス処理が制限されているか否かを判断し、アクセス処理が制限されている場合に、該記憶領域に対するアクセス処理を実行せず、アクセス処理が制限されていない場合に、前記ロック情報テーブルの該記憶領域の欄にアクセス制限の旨を設定すると共に、該記憶領域に対するアクセス処理を実行するオーナーサイト・アクセス処理を実行し、
    複数の前記ストレージ装置のうちの前記一のストレージ装置を除く他のストレージ装置にアクセス要求があると、該他のストレージ装置は、
    前記他のストレージ装置に対する前記アクセス要求が示す記憶領域が、前記一のストレージ装置に対する前記アクセス要求が示す前記記憶領域と対応する場合、前記一のストレージ装置に対して、該記憶領域に対するアクセス処理を制限する旨のロック確保要求を送信し、該一のストレージ装置から該ロック確保要求を受諾する旨を受信すると、該記憶領域に対してアクセス処理を実行し、該一のストレージ装置から該ロック確保要求を拒絶する旨を受信すると、該記憶領域に対するアクセス処理を実行しない非オーナーサイト・アクセス処理を実行する、
    ことを特徴とすることを特徴とするストレージシステムのデータ管理方法。
  2. 請求項1に記載のストレージシステムのデータ管理方法において、
    複数のストレージ装置の各記憶装置は、複数の記憶領域の集まりである記憶領域群を複数有し、
    複数のストレージ装置には、それぞれ、自身がオーナーとなる記憶領域群の各記憶領域毎に、該記憶領域に対するアクセスを制限するか否かを示すロック情報が記憶されているロック情報テーブルを設けると共に、各記憶領域群へのアクセスがいずれのストレージ装置により管理されているかを示すオーナー情報テーブルを設け、
    複数の前記ストレージ装置は、アクセス要求を受信すると、前記オーナー情報テーブルを参照して、該アクセス要求がいずれの記憶領域群に含まれる記憶領域に対するアクセスであるかを判断し、自サイトでアクセスを管理している記憶領域群に含まれる記憶領域に対するアクセスである場合には、前記オーナー・サイトアクセス処理工程を実行し、他サイトのストレージ装置でアクセスを管理している記憶領域群に含まれる記憶領域に対するアクセスである場合には、前記非オーナーサイト・アクセス処理を実行する、
    ことを特徴とするストレージシステムのデータ管理方法。
  3. それぞれが記憶装置を備えている複数のストレージ装置相互間で、該記憶装置に記憶されるデータを送受信することで、各ストレージ装置の記憶装置に記憶されるデータの共通化を図るストレージシステムのデータ管理方法において、
    複数の前記ストレージ装置のうちのいずれか一のストレージ装置にアクセス要求があると、該一のストレージ装置は、
    複数の前記ストレージ装置のうちの前記一のストレージ装置を除くいずれか1つの他のストレージ装置に、前記アクセス要求が示す記憶領域と対応する記憶領域に対するアクセス処理を制限する旨のロック確保要求を送信し、該他のストレージ装置から該ロック確保要求を受諾する旨を受信すると、該記憶領域に対してアクセス処理を実行し、該他のストレージ装置から該ロック確保要求を拒絶する旨を受信すると、該記憶領域に対するアクセス処理を実行しない非オーナーサイト・アクセス処理を実行し、
    前記他のストレージ装置は、
    アクセス要求を受信すると、該アクセス要求が示す記憶領域と前記他のストレージ装置に対する前記アクセス要求が示す記憶領域とが対応する場合、該他のストレージ装置の前記記憶装置の複数の記憶領域毎に、該記憶領域に対するアクセスを制限するか否かを示すロック情報が記憶されているロック情報テーブルを参照して、該アクセス要求が示す記憶領域に対するアクセスが制限されているか否かを判断し、アクセスが制限されている場合に、該記憶領域に対するアクセス処理を実行せず、アクセスが制限されていない場合に、前記ロック情報テーブルの該記憶領域の欄にアクセス制限の旨を設定すると共に、該記憶領域に対するアクセスを実行するオーナーサイト・アクセス処理を実行する、
    ことを特徴とするストレージシステムのデータ管理方法。
  4. 請求項1から3のいずれか一項に記載のストレージシステムのデータ管理方法において、
    前記非オーナーサイト・アクセス処理で、前記アクセス要求が示す記憶領域に対してアクセスを実行した後、前記オーナーサイト・アクセス処理を実行する前記ストレージ装置に、該記憶領域に対するアクセス制限を解除する旨のロック解除要求を送信する、
    ことを特徴とするストレージシステムのデータ管理方法。
  5. 請求項1から4のいずれか一項に記載のストレージシステムのデータ管理方法において、
    前記オーナーサイト・アクセス処理及び前記非オーナーサイト・アクセス処理で、前記アクセス要求がライト要求ときに、該ライト要求が示す記憶領域に対してライト処理を行う場合、該ライト要求に対するライト処理を行う前記ストレージ装置を除く他の全てのストレージ装置に対して、該ライト要求に関するライトデータを送信するリモートコピー処理工程を実行する、
    ことを特徴とするストレージシステムのデータ管理方法。
  6. 請求項5に記載のストレージシステムのデータ管理方法において、
    前記ライト要求に対するライト処理を行う前記ストレージ装置から該ライト要求に関するライトデータが送信されると、該ストレージ装置を除く他の全てのストレージ装置は、該ライトデータをライト処理する記憶領域に対してライト処理が制限されているか否かに関わらず、該記憶領域に対して該ライトデータをライト処理する、
    ことを特徴とするストレージシステムのデータ管理方法。
  7. 請求項1から6のいずれか一項に記載のストレージシステムのデータ管理方法において、
    前記オーナーサイト・アクセス処理及び前記非オーナーサイト・アクセス処理で、前記前記アクセス要求がリード要求ときに、前記ロック情報テーブルを参照せずに、リード処理を実行する、
    ことを特徴とするストレージシステムのデータ管理方法。
  8. 記憶装置を備え、該記憶装置に記憶されるデータを他のストレージ装置との間で送受信することで、該記憶装置に記憶されるデータの共通化を図るストレージ装置において、
    外部との間で通信を行うホスト側通信部と、
    前記他のストレージ装置との間で通信を行うストレージ側通信部と、
    前記記憶装置の複数の記憶領域毎に、該記憶領域に対するライト処理を制限するか否かを示すロック情報が記憶されるロック情報テーブルと、
    前記ホスト側通信部及び前記ストレージ側通信部の通信制御を行うと共に、前記ロック情報テーブルを参照して、前記記憶装置に対するアクセス処理を実行するコントローラと、
    を備え、
    前記コントローラは、
    前記ストレージ側通信部により、前記他のストレージ装置から、複数の前記記憶領域のうちのいずれかの記憶領域に対するライト処理を制限する旨のロック確保要求を受信するロック確保要求受信工程と、
    前記ロック確保要求受信工程で、前記ロック確保要求を受信すると、前記ロック情報テーブルを参照して、該ロック確保要求が示す記憶領域に対するライト処理が制限されているか否かを判断し、ライト処理が制限されている場合に、前記ストレージ側通信部により、前記他のストレージ装置に対してロック確保の拒絶の旨を送信させ、ライト処理が制限されていない場合に、前記ロック情報テーブルの該記憶領域の欄にライト処理制限の旨を設定すると共に、該ストレージ側通信部により、該他のストレージ装置に対してロック確保の受諾の旨を送信させるロック確保要求処理工程と、を実行する、
    ことを特徴とするストレージ装置。
  9. 請求項8に記載のストレージ装置において、
    前記コントローラは、
    前記ホスト側通信部により、前記外部から、複数の前記記憶領域のうちのいずれかに対するライト要求を受信するアクセス要求受信工程と、
    前記アクセス要求受信工程で、前記ライト要求を受信すると、前記ロック情報テーブルを参照して、該ライト要求が示す記憶領域に対するライト処理が制限されているか否かを判断し、ライト処理が制限されている場合に、該記憶領域に対するライト処理を実行せず、ライト処理が制限されていない場合に、前記ロック情報テーブルの該記憶領域の欄にライト処理制限の旨を設定すると共に、該記憶領域に対するライト処理を実行するオーナーアクセス処理工程と、を実行する、
    ことを特徴とするストレージ装置。
  10. 請求項9に記載のストレージ装置において、
    前記コントローラは、
    前記オーナーアクセス処理工程で、前記ライト要求が示す前記記憶領域に対するライト処理を実行すると、前記ストレージ側通信部により、他の全てのストレージ装置に対して該ライト要求に関するライトデータを送信させるリモートコピー処理工程を実行する、
    ことを特徴とするストレージ装置。
  11. 請求項9及び10のいずれか一項に記載のストレージ装置において、
    前記アクセス要求受信工程で、前記ホスト側通信部により、前記外部から、複数の前記記憶領域のうちのいずれかに対するリード要求を受信すると、前記オーナーアクセス処理工程では、前記ロック情報テーブルを参照せずに、該リード要求が示す該記憶領域に対するリード処理を実行して、該リード処理の結果得られたデータを前記外部へ送信する、
    ことを特徴とするストレージ装置。
  12. 請求項9から11のいずれか一項に記載のストレージ装置において、
    前記記憶装置は、前記ロック情報テーブルで管理されている複数の記憶領域の集まりである記憶領域群の他に、複数の記憶領域の集まりである他の記憶領域群を有し、
    前記記憶装置の各記憶領域群毎のロック情報テーブルが、いずれのストレージ装置により管理されているかを示すオーナー情報テーブルを備え、
    前記コントローラは、
    前記オーナー情報テーブルを参照して、前記アクセス要求受信工程で受信した前記ライト要求がいずれの記憶領域群に含まれる記憶領域に対するライト処理であるかを判断し、自サイトで管理している前記ロック情報テーブルの記憶領域群に含まれる記憶領域に対するライト処理である場合には、前記オーナーアクセス処理工程を実行させ、他のストレージ装置で管理している前記ロック情報テーブルの記憶領域群に含まれる記憶領域に対するライト処理である場合には、該記憶領域群のロック情報を管理している該他のストレージ装置に対して、前記ストレージ装置側通信部により、該記憶領域群に含まれる記憶領域に対するライト処理を制限する旨のロック確保要求を送信させるオーナー判断処理工程と、
    前記オーナー判断処理工程での前記ロック確保要求の送信後に、該ロック確保要求に対するロック確保の受諾の旨を前記ストレージ側通信部が受信すると、前記ライト要求が示す前記記憶領域に対するライト処理を実行する非オーナーアクセス処理工程と、
    前記非オーナーアクセス処理工程で、前記記憶領域に対するライト処理を実行した後、前記他のストレージ装置に対して、前記ストレージ装置側通信部により、前記記憶領域に対するアクセス制限を解除する旨のロック解除要求を送信させるロック解除要求送信工程と、を実行する、
    ことを特徴とするストレージ装置。
  13. 請求項12に記載のストレージ装置において、
    前記コントローラは、
    前記非オーナーアクセス処理工程で、前記ライト要求が示す前記記憶領域に対するライト処理を実行すると、前記ストレージ側通信部により、他の全てのストレージ装置に対して該ライト要求に関するライトデータを送信させるリモートコピー処理工程を実行する、
    ことを特徴とするストレージ装置。
  14. 請求項12及び13のいずれか一項に記載のストレージ装置において、
    前記アクセス要求受信工程で、前記ホスト側通信部により、前記外部から、複数の前記記憶領域のうちのいずれかに対するリード要求を受信し、前記オーナー判断処理工程で、該リード要求が、自サイトで管理している前記ロック情報テーブルの記憶領域群に含まれる記憶領域に対するリード処理であると判断した場合には、前記オーナーアクセス処理工程では、前記ロック情報テーブルを参照せずに、該リード要求が示す該記憶領域に対するリード処理を実行して、該リード処理の結果得られたデータを前記外部へ送信し、
    前記アクセス要求受信工程で、前記ホスト側通信部により、前記外部から、複数の前記記憶領域のうちのいずれかに対するリード要求を受信し、前記オーナー判断処理工程で、該リード要求が、他サイトのストレージ装置で管理している前記ロック情報テーブルの記憶領域群に含まれている記憶領域に対するリード処理であると判断した場合、該他サイトのストレージ装置に対して前記ロック確保要求を送信せず、前記非オーナーアクセス処理工程では、該リード要求が示す該記憶領域に対するリード処理を実行して、該リード処理の結果得られたデータを前記外部へ送信する、
    ことを特徴とするストレージ装置。
  15. 記憶装置を備え、該記憶装置に記憶されるデータを他のストレージ装置との間で送受信することで、該記憶装置に記憶されるデータの共通化を図るストレージ装置において、
    外部との間で通信を行うホスト側通信部と、
    前記他のストレージ装置との間で通信を行うストレージ側通信部と、
    前記記憶装置の複数の記憶領域毎に、該記憶領域に対するライト処理を制限するか否かを示すロック情報が記憶されるロック情報テーブルと、
    前記ホスト側通信部及び前記ストレージ側通信部の通信制御を行うと共に、前記ロック情報テーブルを参照して、前記記憶装置に対するアクセス処理を実行するコントローラと、
    を備え、
    前記コントローラは、
    前記ホスト側通信部により、前記外部から、複数の前記記憶領域のうちのいずれかに対するライト要求を受信するアクセス要求受信工程と、
    前記他のストレージ装置に対して、前記ストレージ装置側通信部により、前記ライト要求が示す記憶領域に対するライト処理を制限する旨のロック確保要求を送信させるロック確保要求送信工程と、
    前記ロック確保要求の送信後に、前記他のストレージ装置から該ロック確保要求に対するロック確保の受諾の旨を前記ストレージ側通信部が受信すると、前記ライト要求が示す前記記憶領域に対するライト処理を実行する非オーナーアクセス処理工程と、
    前記非オーナーアクセス処理工程で、前記記憶領域に対するライト処理を実行した後、前記他のストレージ装置に対して、前記ストレージ装置側通信部により、前記記憶領域に対するライト処理制限を解除する旨のロック解除要求を送信させるロック解除要求送信工程と、を実行する、
    ことを特徴とするストレージ装置。
  16. 請求項8から14のいずれか一項に記載のストレージ装置(以下、オーナーストレージ装置とする)と、
    前記オーナーストレージ装置との間で通信可能な請求項15に記載のストレージ装置(以下、非オーナーストレージ装置とする)と、
    を備え、
    前記オーナーストレージ装置に対する前記他のストレージ装置が前記非オーナーストレージ装置であり、前記非オーナーストレージ装置に対する前記他のストレージ装置が前記オーナーストレージ装置である、
    ことを特徴とするストレージシステム。
  17. 記憶装置と、外部との間で通信を行うホスト側通信部と、他のストレージ装置との間で通信を行うストレージ側通信部と、該ホスト側通信部及び該ストレージ側通信部の通信制御を行うと共に、該記憶装置に対するアクセス処理を実行するコントローラとを備え、
    前記記憶装置に記憶されるデータを他のストレージ装置との間で送受信することで、該記憶装置に記憶されるデータの共通化を図るストレージ装置のコントローラ実行プログラムにおいて、
    前記ストレージ側通信部により、前記他のストレージ装置から、前記記憶装置の複数の記憶領域のうちのいずれかの記憶領域に対するライト処理を制限する旨のロック確保要求を受信するロック確保要求受信工程と、
    前記ロック確保要求受信工程で、前記ロック確保要求を受信すると、前記記憶装置の複数の記憶領域毎に、該記憶領域に対するライト処理を制限するか否かを示すロック情報が記憶されるロック情報テーブルを参照して、該ロック確保要求が示す記憶領域に対するライト処理が制限されているか否かを判断し、ライト処理が制限されている場合に、前記ストレージ側通信部により、前記他のストレージ装置に対してロック確保の拒絶の旨を送信させ、ライト処理が制限されていない場合に、前記ロック情報テーブルの該記憶領域の欄にライト処理制限の旨を設定すると共に、該ストレージ側通信部により、該他のストレージ装置に対してロック確保の受諾の旨を送信させるロック確保要求処理工程と、を前記コントローラに実行させる、
    ことを特徴とするストレージ装置のコントローラ実行プログラム。
  18. 請求項17に記載のストレージ装置のコントローラ実行プログラムにおいて、
    前記ホスト側通信部により、前記外部から、複数の前記記憶領域のうちのいずれかに対するライト要求を受信するアクセス要求受信工程と、
    前記アクセス要求受信工程で、前記ライト要求を受信すると、前記ロック情報テーブルを参照して、該ライト要求が示す記憶領域に対するライト処理が制限されているか否かを判断し、ライト処理が制限されている場合に、該記憶領域に対するライト処理を実行せず、ライト処理が制限されていない場合に、前記ロック情報テーブルの該記憶領域の欄にライト処理制限の旨を設定すると共に、該記憶領域に対するライト処理を実行するオーナーアクセス処理工程と、を前記コントローラに実行させる、
    ことを特徴とするストレージ装置のコントローラ実行プログラム。
  19. 請求項18に記載のストレージ装置のコントローラ実行プログラムにおいて、
    前記オーナーアクセス処理工程で、前記ライト要求が示す前記記憶領域に対するライト処理を実行すると、前記ストレージ側通信部により、他の全てのストレージ装置に対して該ライト要求に関するライトデータを送信させるリモートコピー処理工程を前記コントローラに実行させる、
    ことを特徴とするストレージ装置のコントローラ実行プログラム。
  20. 請求項18及び19のいずれか一項に記載のストレージ装置のコントローラ実行プログラムにおいて、
    前記アクセス要求受信工程で、前記ホスト側通信部により、前記外部から、複数の前記記憶領域のうちのいずれかに対するリード要求を受信すると、前記オーナーアクセス処理工程では、前記ロック情報テーブルを参照せずに、該リード要求が示す該記憶領域に対するリード処理を実行して、該リード処理の結果得られたデータを前記外部へ送信する、
    ことを特徴とするストレージ装置のコントローラ実行プログラム。
  21. 請求項18から20のいずれか一項に記載のストレージ装置において、
    前記記憶装置は、前記ロック情報テーブルで管理されている複数の記憶領域の集まりである記憶領域群の他に、複数の記憶領域の集まりである他の記憶領域群を有し、
    前記記憶装置の各記憶領域群毎のロック情報テーブルが、いずれのストレージ装置により管理されているかを示すオーナー情報テーブルを参照して、前記アクセス要求受信工程で受信した前記ライト要求がいずれの記憶領域群に含まれる記憶領域に対するライト処理であるかを判断し、自サイトで管理している前記ロック情報テーブルの記憶領域群に含まれる記憶領域に対するライト処理である場合には、前記オーナーアクセス処理工程を実行させ、他のストレージ装置で管理している前記ロック情報テーブルの記憶領域群に含まれる記憶領域に対するライト処理である場合には、該記憶領域群のロック情報を管理している該他のストレージ装置に対して、前記ストレージ装置側通信部により、該記憶領域群に含まれる記憶領域に対するライト処理を制限する旨のロック確保要求を送信させるオーナー判断処理工程と、
    前記オーナー判断処理工程での前記ロック確保要求の送信後に、該ロック確保要求に対するロック確保の受諾の旨を前記ストレージ側通信部が受信すると、前記ライト要求が示す前記記憶領域に対するライト処理を実行する非オーナーアクセス処理工程と、
    前記非オーナーアクセス処理工程で、前記記憶領域に対するライト処理を実行した後、前記他のストレージ装置に対して、前記ストレージ装置側通信部により、前記記憶領域に対するアクセス制限を解除する旨のロック解除要求を送信させるロック解除要求送信工程と、を前記コントローラに実行させる、
    ことを特徴とするストレージ装置のコントローラ実行プログラム。
  22. 請求項21に記載のストレージ装置のコントローラ実行プログラムにおいて、
    前記非オーナーアクセス処理工程で、前記ライト要求が示す前記記憶領域に対するライト処理を実行すると、前記ストレージ側通信部により、他の全てのストレージ装置に対して該ライト要求に関するライトデータを送信させるリモートコピー処理工程を、前記コントローラに実行させる、
    ことを特徴とするストレージ装置のコントローラ実行プログラム。
  23. 請求項21及び22のいずれか一項に記載のストレージ装置のコントローラ実行プログラムにおいて、
    前記アクセス要求受信工程で、前記ホスト側通信部により、前記外部から、複数の前記記憶領域のうちのいずれかに対するリード要求を受信し、前記オーナー判断処理工程で、該リード要求が、自サイトで管理している前記ロック情報テーブルの記憶領域群に含まれる記憶領域に対するリード処理であると判断した場合には、前記オーナーアクセス処理工程では、該リード要求が示す該記憶領域に対するリード処理を実行して、該リード処理の結果得られたデータを前記外部へ送信し、
    前記アクセス要求受信工程で、前記ホスト側通信部により、前記外部から、複数の前記記憶領域のうちのいずれかに対するリード要求を受信し、前記オーナー判断処理工程で、該リード要求が、他サイトのストレージ装置で管理している前記ロック情報テーブルの記憶領域群に含まれている記憶領域に対するリード処理であると判断した場合、前記非オーナーアクセス処理工程では、該リード要求が示す該記憶領域に対するリード処理を実行して、該リード処理の結果得られたデータを前記外部へ送信する、
    ことを特徴とするストレージ装置のコントローラ実行プログラム。
  24. 請求項23に記載のストレージ装置のコントローラ実行プログラムにおいて、
    前記オーナーアクセス処理工程では、前記ロック情報テーブルを参照せずに、前記リード要求が示す該記憶領域に対するリード処理を実行し、
    前記オーナー判断処理工程では、前記リード要求が、他サイトのストレージ装置で管理している前記ロック情報テーブルの記憶領域群に含まれている記憶領域に対するリード処理であると判断した場合、該他サイトのストレージ装置に対して前記ロック確保要求を送信せずに、前記非オーナーアクセス処理工程を実行させる、
    ことを特徴とするストレージ装置のコントローラ実行プログラム。
  25. 記憶装置と、外部との間で通信を行うホスト側通信部と、他のストレージ装置との間で通信を行うストレージ側通信部と、該ホスト側通信部及び該ストレージ側通信部の通信制御を行うと共に、該記憶装置に対するアクセス処理を実行するコントローラとを備え、
    前記記憶装置に記憶されるデータを他のストレージ装置との間で送受信することで、該記憶装置に記憶されるデータの共通化を図るストレージ装置のコントローラ実行プログラムにおいて、
    前記ホスト側通信部により、前記外部から、前記記憶装置の複数の記憶領域のうちのいずれかに対するライト要求を受信するアクセス要求受信工程と、
    前記他のストレージ装置に対して、前記ストレージ装置側通信部により、前記ライト要求が示す記憶領域に対するライト処理を制限する旨のロック確保要求を送信させるロック確保要求送信工程と、
    前記ロック確保要求の送信後に、前記他のストレージ装置から該ロック確保要求に対するロック確保の受諾の旨を前記ストレージ側通信部が受信すると、前記ライト要求が示す前記記憶領域に対するライト処理を実行する非オーナーアクセス処理工程と、
    前記非オーナーアクセス処理工程で、前記記憶領域に対するライト処理を実行した後、前記他のストレージ装置に対して、前記ストレージ装置側通信部により、前記記憶領域に対するライト処理制限を解除する旨のロック解除要求を送信させるロック解除要求送信工程と、を前記コントローラに実行させる、
    ことを特徴とするストレージ装置のコントローラ実行プログラム。
  26. 請求項25に記載のストレージ装置のコントローラ実行プログラムにおいて、
    前記非オーナーアクセス処理工程で、前記ライト要求が示す前記記憶領域に対するライト処理を実行すると、前記ストレージ側通信部により、他の全てのストレージ装置に対して該ライト要求に関するライトデータを送信させるリモートコピー処理工程を、前記コントローラに実行させる、
    ことを特徴とするストレージ装置のコントローラ実行プログラム。
JP2004129340A 2004-04-26 2004-04-26 ストレージ装置、これを備えたストレージシステム、このシステムのデータ管理方法、及びストレージ装置のコントローラ実行プログラム Expired - Fee Related JP4451705B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004129340A JP4451705B2 (ja) 2004-04-26 2004-04-26 ストレージ装置、これを備えたストレージシステム、このシステムのデータ管理方法、及びストレージ装置のコントローラ実行プログラム
US10/882,366 US7240167B2 (en) 2004-04-26 2004-07-02 Storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004129340A JP4451705B2 (ja) 2004-04-26 2004-04-26 ストレージ装置、これを備えたストレージシステム、このシステムのデータ管理方法、及びストレージ装置のコントローラ実行プログラム

Publications (2)

Publication Number Publication Date
JP2005310026A true JP2005310026A (ja) 2005-11-04
JP4451705B2 JP4451705B2 (ja) 2010-04-14

Family

ID=35137815

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004129340A Expired - Fee Related JP4451705B2 (ja) 2004-04-26 2004-04-26 ストレージ装置、これを備えたストレージシステム、このシステムのデータ管理方法、及びストレージ装置のコントローラ実行プログラム

Country Status (2)

Country Link
US (1) US7240167B2 (ja)
JP (1) JP4451705B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258632A (ja) * 2004-03-10 2005-09-22 Hitachi Ltd ネットワークストレージ装置の導通確認方法およびホスト計算機
JP2007148764A (ja) * 2005-11-28 2007-06-14 Fujitsu Ltd データストレージシステム及びデータストレージ制御装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8200774B1 (en) 2004-09-30 2012-06-12 Google Inc. System and method for resource locking
JP4783086B2 (ja) * 2005-08-04 2011-09-28 株式会社日立製作所 ストレージシステム、ストレージアクセス制限方法、及びコンピュータプログラム
JP4818820B2 (ja) * 2006-06-07 2011-11-16 ルネサスエレクトロニクス株式会社 バスシステムおよびバススレーブならびにバス制御方法
US8108692B1 (en) * 2006-06-27 2012-01-31 Siliconsystems, Inc. Solid-state storage subsystem security solution
US8356184B1 (en) 2009-06-25 2013-01-15 Western Digital Technologies, Inc. Data storage device comprising a secure processor for maintaining plaintext access to an LBA table
US9305142B1 (en) 2011-12-19 2016-04-05 Western Digital Technologies, Inc. Buffer memory protection unit
EP3259672B1 (en) 2015-05-01 2020-07-22 Hewlett-Packard Enterprise Development LP Throttled data memory access
US9880774B2 (en) * 2016-04-29 2018-01-30 Netapp, Inc. Methods for automatic data storage device assignment during system initialization and devices thereof
US10838637B2 (en) 2018-02-08 2020-11-17 Micron Technology, Inc. Status management in storage backed memory package

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2284494B (en) 1993-11-26 1998-09-09 Hitachi Ltd Distributed shared memory management system
US5956712A (en) * 1995-06-07 1999-09-21 International Business Machines Corporation Byte range locking in a distributed environment
JP2000515657A (ja) 1996-08-02 2000-11-21 トランソフト コーポレイション 共有資源の分散制御を可能にする方法と装置
SE522023C2 (sv) 1998-01-22 2004-01-07 Ericsson Telefon Ab L M Metod för konsistent läsning av objekt i en databas
US6389420B1 (en) * 1999-09-30 2002-05-14 Emc Corporation File manager providing distributed locking and metadata management for shared data access by clients relinquishing locks after time period expiration
US6671757B1 (en) 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US6633870B1 (en) 2000-09-13 2003-10-14 Radiant Data Corporation Protocols for locking sharable files and methods for carrying out the protocols
JP3983516B2 (ja) 2001-10-25 2007-09-26 株式会社日立製作所 記憶装置システム
US7139781B2 (en) 2003-04-29 2006-11-21 International Business Machines Corporation Managing filesystem versions

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258632A (ja) * 2004-03-10 2005-09-22 Hitachi Ltd ネットワークストレージ装置の導通確認方法およびホスト計算機
JP2007148764A (ja) * 2005-11-28 2007-06-14 Fujitsu Ltd データストレージシステム及びデータストレージ制御装置

Also Published As

Publication number Publication date
US7240167B2 (en) 2007-07-03
JP4451705B2 (ja) 2010-04-14
US20050240738A1 (en) 2005-10-27

Similar Documents

Publication Publication Date Title
US7788361B2 (en) System and method for transferring volume ownership in networked storage
JP4500057B2 (ja) データ移行方法
US7680953B2 (en) Computer system, storage device, management server and communication control method
US6073209A (en) Data storage controller providing multiple hosts with access to multiple storage subsystems
US8244825B2 (en) Remote direct memory access (RDMA) completion
US6886086B2 (en) Storage system and data backup method for the same
CN101571815B (zh) 信息系统及i/o处理方法
CN106411767B (zh) 通过远程直接存储器访问的传输操作的方法、系统和介质
US7519769B1 (en) Scalable storage network virtualization
CN101446936B (zh) 改良式远程通用序列总线存取方法
JP4773788B2 (ja) 記憶システムにおけるリモートコピー制御
US20050278465A1 (en) Methods and structure for supporting persistent reservations in a multiple-path storage environment
US7953878B1 (en) Multi-threaded internet small computer system interface (iSCSI) socket layer
US10191685B2 (en) Storage system, storage device, and data transfer method
JP4451705B2 (ja) ストレージ装置、これを備えたストレージシステム、このシステムのデータ管理方法、及びストレージ装置のコントローラ実行プログラム
US20060236060A1 (en) Assuring performance of external storage systems
US20070255914A1 (en) Storage system, remote copy and management method therefor
JP2003006048A (ja) ホストコンピュータの認証を行う記憶装置システム
JP4201447B2 (ja) 分散処理システム
JP2009205614A (ja) ストレージシステムの制御方法、スイッチ装置およびストレージシステム
JP3705522B2 (ja) 双方向通信を確立する方法およびシステム
US11966611B2 (en) Methods for handling storage devices with different zone sizes and devices thereof
JP5216376B2 (ja) リモートコピーシステム及び確認方法
JP2007310448A (ja) 計算機システム、管理計算機、および、ストレージシステム管理方法
CN110413548B (zh) 用于子lun对齐的方法、数据存储系统和存储设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091102

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: 20100112

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: 20100128

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

Free format text: PAYMENT UNTIL: 20130205

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees