JP2004310690A - Program and data input/output device - Google Patents

Program and data input/output device Download PDF

Info

Publication number
JP2004310690A
JP2004310690A JP2003106844A JP2003106844A JP2004310690A JP 2004310690 A JP2004310690 A JP 2004310690A JP 2003106844 A JP2003106844 A JP 2003106844A JP 2003106844 A JP2003106844 A JP 2003106844A JP 2004310690 A JP2004310690 A JP 2004310690A
Authority
JP
Japan
Prior art keywords
data
information processing
processing device
input
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003106844A
Other languages
Japanese (ja)
Inventor
Takeshi Kanamaru
剛 金丸
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 JP2003106844A priority Critical patent/JP2004310690A/en
Publication of JP2004310690A publication Critical patent/JP2004310690A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To improve the efficiency of file access from each information processing apparatus in a storage system. <P>SOLUTION: A data input/output apparatus is connected with a plurality of storage volumes for storing data and a plurality of information processing apparatuses that request data input/output. When an input/output request is received from the information processing apparatus, the storage system makes the data input/output apparatus, which receives input/output requests from the information processing apparatuses and performs data input/output processings for the storage volumes, execute a step of controlling so as to transfer data stored in the storage volume to the storage volume associated with the information processing apparatus, according to associating information between the information processing apparatus and the storage volume. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、プログラム及びデータ入出力装置に関する。
【0002】
【従来の技術】
近年の情報技術の進歩に伴いストレージシステムの記憶容量は増加の一途を辿っている。このようなストレージシステムを複数の情報処理装置とネットワークで接続し、ストレージシステムが提供する大容量の記憶領域を複数の情報処理装置で利用する形態が普及している。
【0003】
この場合、ストレージシステムが提供する記憶領域を複数の記憶領域に区分し、区分毎に利用可能な情報処理装置を割り当てることにより、複数の情報処理装置からストレージシステムを共通に利用できるようにする。ある区分の記憶領域に複数の情報処理装置を割り当てるようにすれば、これらの情報処理装置から共通の記憶領域を利用するようにすることもできる。
このような割り当ては、各情報処理装置からストレージシステムへのアクセス頻度や必要な記憶容量等を考慮して、ストレージシステム全体の記憶領域が効率良く利用されるように行われる。またこのような割り当ては、システムを管理するオペレータが、ストレージシステムの記憶領域を制御するオペレーティングシステムに対して所定の設定作業を行うことにより行われる。
【0004】
【特許文献1】
特開2002−259061号公報
【0005】
【発明が解決しようとする課題】
しかしながら各情報処理装置からのアクセス頻度や各情報処理装置が使用する記憶容量、記憶領域は一定ではないため、ストレージシステムの運用をしばらく続けている間に、特定の区分の記憶領域へアクセスが集中する場合や特定の区分の記憶領域の使用率が上昇する場合がある。
このような場合、各区分の記憶領域に対する情報処理装置の割り当てを変更することが行われるが、このような割り当ての変更を行うためにはオペレーティングシステムのデバイス管理情報の変更を行うことが必要であった。そのため、各情報処理装置からストレージシステムに対するデータアクセスを継続したまま割り当てを変更することが困難であった。
【0006】
また従来の技術では、ストレージシステムの各区分の記憶領域に対する情報処理装置の割り当ての変更が行われて各区分の記憶領域間でデータの移動が一斉に開始された場合における、情報処理装置に対するストレージシステムのデータアクセス性能に対する考慮がなされていなかった。
本発明は上記課題を鑑みてなされたものであり、プログラム、及びデータ入出力装置を提供することを主たる目的とする。
【0007】
【課題を解決するための手段】
上記課題を解決するために、本発明に係るプログラムは、データを記憶するための複数の記憶ボリュームと、前記データの入出力要求を行う複数の情報処理装置とに接続され、前記情報処理装置から前記入出力要求を受信し、前記記憶ボリュームに対する前記データの入出力処理を行うデータ入出力装置に、前記情報処理装置から前記入出力要求を受信した場合に、前記記憶ボリュームに記憶される前記データを、前記情報処理装置と前記記憶ボリュームとの対応付け情報に従って、当該情報処理装置に対応付けられた前記記憶ボリュームに移動するように制御するステップを実行させる。
【0008】
ここで、情報処理装置とは、記憶ボリュームに適宜データを記録したり、記憶ボリュームに記憶されるデータを利用、加工したりすることにより、所定の機能を実現するための装置である。例えばパーソナルコンピュータやワークステーションとすることができる。
【0009】
データ入出力装置は、情報処理装置からデータ入出力要求を受信し、記憶ボリュームに記憶されるデータの入出力処理を行う。例えばファイルサーバコンピュータとすることもできるし、メインフレームコンピュータとすることもできる。
【0010】
記憶ボリュームとは、データを記憶するための記憶リソースであり、ハードディスク装置等のディスクドライブにより提供される物理的な記憶領域である物理ボリュームと、物理ボリューム上に論理的に設定される記憶領域である論理ボリュームとを含む。つまり記憶ボリュームは記憶デバイスが備える上記物理ボリュームや、物理ボリューム上に論理的に設定される論理ボリュームにより提供される記憶リソースである。
【0011】
なお上記データ入出力装置は、上記物理ボリュームを備える記憶デバイスを制御する記憶デバイス制御装置とすることもできる。この場合、記憶デバイスと記憶デバイス制御装置とにより、ディスクアレイ装置を構成するようにすることもできる。また、記憶デバイス制御装置が情報処理装置からファイル単位でのデータ入出力要求(以下、ファイルアクセス要求とも記す)を受信する場合には、記憶デバイスと記憶デバイス制御装置とにより、NAS(Network Attached Storage)を構成するようにすることもできる。
【0012】
その他、本願が開示する課題、及びその解決方法は、発明の実施の形態の欄、及び図面により明らかにされる。
【0013】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【0014】
<第1の実施の形態>
===全体構成例===
ます、本実施の形態に係るデータ入出力装置を含む情報処理システムの全体構成を示すブロック図を図1に示す。
図1に示す情報処理システムは、コンピュータ(データ入出力装置)500と記憶デバイス300とを備えている。コンピュータ500は、情報処理装置200からデータ入出力要求を受信し、記憶デバイス300に対するデータ入出力処理を行う。コンピュータ500は、例えば銀行の自動預金預け払いシステムや航空機の座席予約システム等における中枢コンピュータとして用いられるメインフレームコンピュータとすることができる。この場合コンピュータ500上ではデータベースアプリケーションプログラムが動作し、情報処理装置200から記憶デバイス300に記憶されているデータに対する入出力要求を受信して、記憶デバイス300に対する入出力処理を行う。
【0015】
コンピュータ500はCPU(Central Processing Unit)510、メモリ520、I/F(InterFace)530、バス560を備える。CPU510はコンピュータ500の全体の制御を司るもので、メモリ520に格納されたプログラム520Aを実行することにより各種機能を実現する。またコンピュータ500はI/F530を介してネットワーク400、管理端末550、記憶デバイス300と接続される。バス560は、CPU510、メモリ520、I/F530間を相互に接続する。
【0016】
ネットワーク400は、情報処理装置200とコンピュータ500とを相互に接続する。これにより情報処理装置200とコンピュータ500との間で通信を行うことができる。またネットワーク400は、情報処理装置200間も相互に接続しており、情報処理装置200間でも通信を行うことができる。ネットワーク400は、例えばインターネットとすることができる。また私的に使用されるLAN(Local Area Network)とすることもできる。ネットワーク400を介して行われる情報処理装置200とコンピュータ500との間の通信、又は情報処理装置200間の通信は、例えばTCP/IPプロトコルに従って行われる。
【0017】
===記憶デバイス===
記憶デバイス300は、ディスクドライブ320を備えている。データは、記憶デバイス300が備えるディスクドライブ320により提供される物理的な記憶領域上に論理的に設定される記憶領域である論理ボリューム(以下LUとも記す)310に記憶されている。ディスクドライブとしては、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等様々なものを用いることができる。
【0018】
なお、記憶デバイス300は例えば複数のディスクドライブによりディスクアレイを構成するようにすることもできる。この場合、情報処理装置200に対して提供される記憶領域は、RAID(Redundant Arrays of Inexpensive Disks)により管理された複数のディスクドライブにより提供されるようにすることもできる。
【0019】
コンピュータ500と記憶デバイス300との間は図1のように直接に接続される形態とすることもできるし、ネットワークを介して接続するようにすることもできる。さらに記憶デバイス300はコンピュータ500と一体として構成されることもできる。
【0020】
記憶デバイス300に設定されるLU310には、情報処理装置200からアクセス可能なユーザLU310や、コンピュータ500の制御のために使用されるシステムLU310等がある。システムLU310にはコンピュータ500で実行されるオペレーティングシステムやプログラム等も格納される。また各LU310には、アクセス可能な情報処理装置200が対応付けられている。これにより情報処理装置200毎にアクセス可能なLU310が割り当てられる。この割り当ては、各情報処理装置200に付番された情報処理装置番号(クライアント番号)と各LU310に付番されたLU番号とを対応付けることにより行われる。対応付けは、複数の情報処理装置200で一つのLU310を共有するようにすることもできる。詳細は後述する。
【0021】
===管理端末===
管理端末550は、コンピュータ500を保守・管理するためのコンピュータである。管理端末550を操作することにより、例えばコンピュータ500において実行されるプログラム520Aのインストール等を行うことができる。また管理端末550を操作することにより、記憶デバイス300の保守・管理を行うようにすることもできる。この場合、例えば記憶デバイス300内の物理ディスク構成の設定や、LU310の設定、各LU310に対する情報処理装置200の割り当て等を行うことができる。ここで記憶デバイス300内の物理ディスク構成の設定としては、例えば物理ディスクの増設や減設、RAID構成の変更(例えばRAID1からRAID5への変更)等を行うことができる。
【0022】
管理端末550はコンピュータ500に内蔵されている形態とすることもできるし、外付けされている形態とすることもできる。また管理端末550は、コンピュータ500や記憶デバイス300の保守・管理を専用に行うコンピュータとすることもできるし、汎用のコンピュータに保守・管理機能を持たせたものとすることもできる。
【0023】
管理端末550の構成を示すブロック図を図9に示す。
管理端末550は、CPU551、メモリ552、ポート553、記録媒体読取装置554、入力装置555、出力装置556、記憶装置558を備える。
【0024】
CPU551は管理端末550の全体の制御を司るもので、メモリ552に格納されたプログラム552Aを実行することにより上記機能を実現する。
【0025】
記録媒体読取装置554は、記録媒体557に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ552や記憶装置558に格納される。従って、例えば記録媒体557に記録されたプログラム552Aを、記録媒体読取装置554を用いて上記記録媒体557から読み取って、メモリ552や記憶装置558に格納するようにすることができる。記録媒体557としてはフレキシブルディスクやCD−ROM、DVD−ROM、DVD−RAM、半導体メモリ等を用いることができる。なお、上記プログラム552Aは管理端末550を動作させるためのプログラムとすることができる他、コンピュータ500を保守・管理するためのプログラムや、記憶デバイス300を保守・管理するためのプログラムとすることもできる。さらには、コンピュータ500にインストールされるプログラムとすることもできる。記録媒体読取装置554は管理端末550に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。記憶装置558は、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等である。入力装置555はオペレータ等による管理端末550へのデータ入力等のために用いられる。入力装置555としては例えばキーボードやマウス等が用いられる。出力装置556は情報を外部に出力するための装置である。出力装置556としては例えばディスプレイやプリンタ等が用いられる。ポート553はコンピュータ500のI/F530に接続されており、これにより管理端末550はコンピュータ500と通信を行うことができる。またポート553は、ネットワーク400に接続するようにすることもできるし、電話回線に接続するようにすることもできる。
【0026】
===情報処理装置===
情報処理装置200はCPUやメモリを備えたコンピュータである。情報処理装置200が備えるCPUにより各種プログラムが実行されることにより様々な機能が実現される。例えば情報処理装置200はユーザからの操作入力を受け付けて、コンピュータ500に対してデータ入出力要求を送信する。例えば情報処理装置200を操作する預金者から現金引き出し要求を受け付けて、コンピュータ500に対して預金管理データベースのデータ更新要求を送信する。情報処理装置200は、例えばパーソナルコンピュータやワークステーションとすることができる。
【0027】
情報処理装置200の構成を示すブロック図を図2に示す。
情報処理装置200は、CPU201、メモリ202、ポート203、記録媒体読取装置204、入力装置205、出力装置206、記憶装置208を備える。
【0028】
CPU201は情報処理装置200の全体の制御を司るもので、メモリ202に格納されたプログラム202Aを実行することにより各種機能を実現する。記録媒体読取装置204は、記録媒体207に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ202や記憶装置208に格納される。従って、例えば記録媒体207に記録されたプログラム202Aを、記録媒体読取装置204を用いて上記記録媒体207から読み取って、メモリ202や記憶装置208に格納するようにすることができる。記録媒体207としてはフレキシブルディスクやCD−ROM、DVD−ROM、半導体メモリ等を用いることができる。なお、上記プログラム202Aは情報処理装置200を動作させるためのプログラムとすることができる他、コンピュータ500を保守・管理するためのプログラムや、記憶デバイス300を保守・管理するためのプログラムとすることもできる。さらには、コンピュータ500にインストールされるプログラムとすることもできる。記録媒体読取装置204は情報処理装置200に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。記憶装置208は、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等である。入力装置205はオペレータ等による情報処理装置200へのデータ入力等のために用いられる。例えば各情報処理装置200とLU310との対応付けを行う際に用いられる情報処理装置番号を入力する際に入力装置205が用いられる。入力装置205としては例えばキーボードやマウス等が用いられる。出力装置206は情報を外部に出力するための装置である。出力装置206としては例えばディスプレイやプリンタ等が用いられる。ポート203はコンピュータ500と通信を行うための装置である。また他の情報処理装置200との間で通信を行うために使用することもできる。この場合、例えばプログラム202Aを、ポート203を介して他の情報処理装置200から受信して、メモリ202や記憶装置208に格納するようにすることもできる。
【0029】
===コンピュータのメモリに記憶されるテーブル===
上述したようにコンピュータ500は情報処理装置200からのデータ入出力要求を受信して、記憶デバイス300に記憶されているデータの入出力処理を行う。そのためコンピュータ500は、データの記憶位置の管理や、複数の情報処理装置200からのデータ入出力要求があった場合の調整、さらにLU310と情報処理装置200との対応付けの管理等を行っている。これらの管理のためにコンピュータ500は、図3に示すような各種テーブル、すなわち物理ディスク管理テーブル162A、LU管理テーブル162B、データ管理テーブル730、ロックテーブル720、マッピング情報テーブル750をメモリ520に記憶している。
【0030】
===物理ディスク管理テーブル===
物理ディスク管理テーブル162Aは、記憶デバイス300に備えられるディスクドライブ(物理ディスク)320を管理するためのテーブルである。物理ディスク管理テーブル162Aを図4に示す。図4においては、記憶デバイス300が備える多数のディスクドライブ320のうち、ディスク番号#001乃至#006までが示されている。それぞれのディスクドライブ320に対して、物理ディスク番号、記憶容量、RAID構成、使用状況が示されている。
【0031】
===LU管理テーブル===
LU管理テーブル162Bは、上記ディスクドライブ320上に論理的に設定されるLU310を管理するためのテーブルである。LU管理テーブル162Bを図5に示す。図5においては、記憶デバイス300上に設定される多数のLU310のうち、LU番号#1乃至#3までが示されている。それぞれのLU310に対して、物理ディスク番号、記憶容量、RAID構成が示されている。
【0032】
===データ管理テーブル===
データ管理テーブル730は、記憶デバイス300に記憶されているデータの記憶位置等を管理するためのテーブルである。データ管理テーブル730は、ブロックNo欄、データ名欄、LU番号欄、アドレス欄、容量欄、所有者欄、更新時刻欄、更新状態欄、次ブロック欄を備えている。これらの情報によりデータの記憶位置が特定される。
【0033】
ブロックNo.欄は、ディスクドライブ320上あるいはLU310上に記憶されるデータのアクセス単位毎に付番される番号を示す。各ブロックは所定の記憶サイズを有しており、一つのデータが複数のブロックからなるようにすることもできる。例えば図6におけるデータ”AAA”は、ブロックNo.1乃至4の4つのブロックからなる。またデータ”BBB”は、ブロックNo.5の1つのブロックからなる。
【0034】
データ名欄は、データ毎に付与されるデータを特定するための名称を示す。データ名は例えば情報処理装置200を操作するユーザにより入力装置205から入力され、情報処理装置200からコンピュータ500に送信される。またデータ名は情報処理装置200やコンピュータ500のCPU(201、510)が自動的に付与する名称とすることもできる。
【0035】
LU番号欄は、データが記憶されるLU310の番号を示す。1つのデータが複数のブロックからなる場合には、ブロック毎に異なるLU310に記憶されるようにすることができる。例えば図6に示すデータ”AAA”は、LU1(310)とLU2(310)とが混在している。なお1つのデータは必ず同一のLU内のブロックからなるようにすることもできる。
【0036】
アドレス欄は、当該データの各ブロックの位置を示す。これによりコンピュータ500は、情報処理装置200からのデータ入出力要求に対し、記憶デバイス300に記憶されているデータの記憶位置を知ることができ、記憶デバイス300上のデータにアクセスすることが可能となる。
【0037】
容量欄はデータのサイズを示す。図6の例では、データ”AAA”のサイズは1300キロバイト(”k”はキロを表す)、データ”BBB”のサイズは250キロバイトであることが示されている。
【0038】
所有者欄は当該データの作成者を表す。データの作成者は情報処理装置200や管理端末550を操作するユーザやオペレータである場合もあるし、コンピュータ500である場合もある。
【0039】
更新時刻欄は当該データの更新時刻あるいは作成時刻を示す。
【0040】
更新状態欄は当該データの更新状況をブロック単位に示す。”△”が記載されているブロックは、当該ブロックは更新中であることが示される。従って、”△”が記載されたブロックに対する情報処理装置200からのアクセスは禁止される。図6に示す例では、データ”AAA”のブロックNo.2及び3に”△”が記載されており、これらのブロックが更新中であることが示されている。詳細は後述するが、この場合はブロックNo.2からブロックNo.3にデータのコピーが行われていることを示す。”○”が記載されているブロックは、当該ブロックへのアクセスは許可されていることを示す。”×”が記載されているブロックは、当該ブロックは無効であることを示す。例えば情報処理装置200からあるデータを削除する入出力要求を受信した場合、当該データを構成する各ブロックの更新状態欄に”×”が記載される。これにより”×”が記載されたブロックは他のデータを記憶するために利用することができるようになる。図6に示す例では、データ”BBB”が該当する。
【0041】
次ブロック欄は、一つのデータを複数のブロックの繋がりとして管理するために用いられる。図6の例では、データ”AAA”は、ブロックNo.1の次ブロックはNo.2であり、ブロックNo.2の次はNo.4であることが示されている。ブロックNo.4の次ブロック欄には”−1”が記載されているが、これは次に繋がるブロックが存在しないことを表す。これにより、データ”AAA”は、ブロックNo.1、No.2、及びNo.4からなるデータであることが示される。なお前述したように、図6の例ではブロックNo.2からブロックNo.3にデータのコピーが行われている。コピーが完了するとブロックNo.2の更新状態欄には”×”が記載されると共に、ブロックNo.3の更新状態欄には”○”が記載され、さらに、ブロックNo.1の次ブロック欄にはNo.3が記載される。これにより、データ”AAA”は、ブロックNo.1、No.3、及びNo.4からなるデータとすることができる。
【0042】
===ロックテーブル===
ロックテーブル720は、情報処理装置200からのデータ入出力要求に対して排他制御を行うためのテーブルである。排他制御を行うことにより複数の情報処理装置200からのデータアクセス競合を回避できる。これにより複数の情報処理装置200でデータを共用することができる。ロックテーブル720を図7に示す。図7に示すようにロックテーブル720にはデータロックテーブル721とLUロックテーブル722とがある。データロックテーブル721は、データ毎にロックが掛けられているか否かを示すためのテーブルである。いずれかの情報処理装置200によりあるデータがオープンされている場合に当該データにロックが掛けられる。ロックが掛けられたデータに対する他の情報処理装置200によるアクセスは禁止される。LUロックテーブル722は、LU310毎にロックが掛けられているか否かを示すためのテーブルである。いずれかの情報処理装置200により、あるLU310に対するアクセスが行われている場合に当該LU310にロックが掛けられる。ロックが掛けられたLU310に対する他の情報処理装置200によるアクセスは禁止される。
【0043】
===マッピング情報テーブル===
マッピング情報テーブル750は、情報処理装置200とLU310との対応付けを管理するためのテーブル(情報処理装置と記憶ボリュームとの対応付け情報)である。マッピング情報テーブル750は、最小クライアント番号欄、最大クライアント番号欄、格納LU欄を備える。最小クライアント番号欄及び最大クライアント番号欄には、各情報処理装置200に付番された情報処理装置番号が記載される。最小クライアント番号欄と最大クライアント番号欄とに同一の情報処理装置番号を記載すれば、ある特定の情報処理装置200のみを指定することも可能である。最小クライアント番号欄に記載されたクライアント番号から最大クライアント番号欄に記載されたクライアント番号までの情報処理装置番号を有する情報処理装置群をクライアントグループと呼ぶ。クライアントグループは例えば企業内の部署別に設けるようにすることもできるし、企業毎に設けるようにすることもできる。
【0044】
格納LU欄にはクライアントグループ毎に情報処理装置200に割り当てられるLU310が記載される。複数のLU310を割り当てるようにすることもできる。図8の例ではn(nは1以上の自然数)個のLU310を割り当てることができる。なおここで、nはあらかじめ固定された自然数とすることもできるし、割り当て時に動的に変化する自然数とすることもできる。さらに、nはクライアントグループ毎に異なる自然数とすることもできる。図8に示す例では情報処理装置1乃至10からなるクライアントグループに対してLU1(310)が対応付けられている。また情報処理装置11乃至20からなるクライアントグループに対してもLU1(310)が対応付けられている。情報処理装置21乃至30からなるクライアントグループに対してはLU2(310)が対応付けられている。これにより情報処理装置1乃至20はLU1(310)に対するデータアクセスが中心となり、情報処理装置21乃至30はLU2(310)に対するデータアクセスが中心となる。
【0045】
マッピング情報テーブル750の内容を更新すると、情報処理装置200からアクセス可能なLU310の割り当てを変更することができる。マッピング情報テーブル750の更新は、例えば複数の情報処理装置200から特定のLU310へのアクセスが集中している場合や、複数の情報処理装置200で共通に使用されるLU310の残り記憶容量が少なくなった場合に行われる。これにより、記憶デバイス300により提供される記憶領域が効率良く利用されるようにすることができる。また特定のLU310へのデータアクセスが集中することに伴うデータ入出力性能の低下を回避し、システム全体としてデータ入出力性能を向上させることも可能となる。
【0046】
マッピング情報テーブル750の更新は管理端末550や情報処理装置200から行うことができる。またマッピング情報テーブル750の更新は、情報処理装置200からコンピュータ500へのデータ入出力要求を継続したまま行うことができる。
【0047】
コンピュータ500は、情報処理装置200からデータ入出力要求を受信するとLU310に記憶されているデータの入出力処理を行うが、マッピング情報テーブル750に記載されている、情報処理装置200とLU310との対応付けに従って、当該データを当該情報処理装置200に対応付けられたLU310に移動するように制御する。
【0048】
===データ入出力処理の概要===
本実施の形態に係るコンピュータ500が情報処理装置200からデータ入出力要求を受信した場合には、CPU510は、マッピング情報テーブル750を用いて、記憶デバイス300上に設定されるLU310に記憶されるデータを、当該情報処理装置200に対応付けられたLU310に移動するように制御する。すなわちCPU510は、LU310に記憶されるデータを情報処理装置200に対応付けられたLU310に移動するように制御する手段として機能する。制御の概要を、図10を用いて説明する。
【0049】
図10においては、3台の情報処理装置200がネットワーク400を介してコンピュータ500に接続されており、記憶デバイス300上には2つのLU310、すなわちLU1(310)とLU2(310)とが設定されている場合が示される。またコンピュータ500のメモリ520に記憶されているマッピング情報テーブル750により、クライアント番号(情報処理装置番号)1乃至10の情報処理装置200にはLU1(310)が対応付けされており、クライアント番号11乃至20の情報処理装置200に対してはLU2(310)が対応付けされている。また情報処理装置1(200)にはクライアント番号10が設定されており、情報処理装置2(200)にはクライアント番号15が設定されており、情報処理装置3(200)にはクライアント番号20が設定されている。このような状況下において、情報処理装置1(200)すなわちクライアント番号10の情報処理装置200からのデータ入出力要求に対するデータ入出力処理は以下のように制御される。
【0050】
===新規データの書き込み===
まず情報処理装置1(200)からのデータ入出力要求が新規データの書き込み要求であった場合には、当該新規データはマッピング情報テーブル750に従ってLU1に書き込まれる。図10において”追加”と記載された矢印が示す如くである。
【0051】
すなわちコンピュータ500のCPU510は、情報処理装置1(200)から受信したデータ入出力要求が新規データの書き込み要求であると判別すると、まずマッピング情報テーブル750を参照して当該情報処理装置200に割り当てられているLU310を特定する。そして特定したLU310にデータを書き込む。すなわちCPU510は当該情報処理装置に対応付けられたLU310にデータを書き込む手段として機能する。またデータを書き込むと共に図6に示したようにデータ管理テーブル730に当該データの記憶位置を特定するための所定の情報を記録する。すなわちCPU510は、当該情報処理装置200に対応付けられたLU310に書き込まれたデータの記憶位置を特定するための情報をデータ管理テーブル730に記憶する手段としても機能する。なお当該情報処理装置200に複数のLU310が割り当てられている場合には、それらのLU310の中から選択した一つのLU310にデータを書き込む。LU310の選択はどのようなアルゴリズムにより行うようにすることもできる。
【0052】
このように、情報処理装置200からの新規データが、マッピング情報テーブル750によりそれぞれの情報処理装置200に対応付けられたLU310に書き込まれることにより、記憶デバイス300上のデータを徐々にマッピング情報テーブル750の対応付けに従ったLU310に移動されるように制御することができる。
【0053】
===更新データの書き込み===
次に、情報処理装置1(200)からのデータ入出力要求がLU2(310)に記憶されているデータの更新要求(更新データの書き込み要求)であった場合には、まずLU2(310)の当該データの更新が行われる。そして更新されたLU2(310)に記憶されたデータをLU1(310)へ移動させる。移動は、LU2(310)に記憶されたデータをLU1(310)へコピーした後、LU2(310)に記憶されている元のデータを無効化することにより行われる。図10において”更新”と記載された矢印が示す如くである。
【0054】
すなわちコンピュータ500のCPU510は、情報処理装置1(200)から受信したデータ入出力要求が更新データの書き込み要求であると判別すると、まず当該入出力要求に従って記憶デバイス300上のデータの更新を行う。データを更新すると共に図6に示したデータ管理テーブル730に当該データに関する所定の情報も更新する。続いてマッピング情報テーブル750を参照して当該情報処理装置200に割り当てられているLU310を特定する。そして特定したLU310にデータをコピーする。すなわちCPU510は当該情報処理装置に対応付けられたLU310にデータを書き込む手段として機能する。データのコピー時には、データ管理テーブル730にコピー先のデータの記憶位置を特定するための所定の情報を追加すると共に、コピー先及びコピー元のそれぞれのデータに関する更新状態欄に”△”を記載する。すなわちCPU510は、当該情報処理装置200に対応付けられたLU310に書き込まれたデータの記憶位置を特定するための情報をデータ管理テーブル730に記憶する手段としても機能する。なお図6に示したデータ管理テーブル730の更新状態欄はブロック毎に更新状態を記載可能なように記載されており、データのコピーもブロック単位に行うことができる場合を想定して記載されているが、コピーはブロック単位ではなくデータ単位で行われるようにし更新状態欄もデータ単位での状態が記載されるようにすることもできる。LU2(310)からLU1(310)への上記更新データのコピーが終了すると、LU1(310)のデータ(コピー先データ)に関するデータ管理テーブル730の更新状態欄には”○”が記載され、LU2(310)のデータ(コピー元データ)に関するデータ管理テーブル730の更新状態欄には”×”が記載される。なお情報処理装置1(200)に複数のLU310が割り当てられている場合には、それらのLU310の中から選択した一つのLU310にデータをコピーする。LU310の選択はどのようなアルゴリズムにより行うようにすることもできる。
【0055】
このように、情報処理装置200により更新されたデータが、マッピング情報テーブル750によりそれぞれの情報処理装置200に対応付けられたLU310に書き込まれることにより、記憶デバイス300上のデータを徐々にマッピング情報テーブル750の対応付けに従ったLU310に移動されるように制御することができる。
【0056】
なお上述した例においては、情報処理装置1(200)からの更新データは一旦LU2(310)に書き込まれた後に、LU2(310)からLU1(310)に移動されるものとしたが、直接LU1(310)に書き込まれるようにすることもできる。この場合には、コンピュータ500のCPU510は、情報処理装置1(200)から受信したデータ入出力要求が更新データの書き込み要求であると判別すると、まずマッピング情報テーブル750を参照して当該情報処理装置200に割り当てられているLU310(LU1)を特定する。そして特定したLU310に当該更新データを書き込む。そしてデータ管理テーブル730に当該更新データに関する所定の情報を追加すると共に、元のLU(LU2)310に記憶されている更新前のデータに関する更新状態欄を”×”にする。
【0057】
===データの読み出し===
次に、情報処理装置1(200)からのデータ入出力要求がLU2(310)に記録されたデータの読み出し要求であった場合には、当該データはデータ管理テーブル730に記録される記憶位置から読み出される。図10において”参照”と記載された矢印が示す如くである。
【0058】
すなわちコンピュータ500のCPU510は、情報処理装置1(200)から受信したデータ入出力要求がデータの読み出し要求であると判別すると、マッピング情報テーブル750は見に行かずに、データ管理テーブル730から当該データの記憶アドレスを求め、読みに行く。読み出し時にデータの移動を行わないのは、移動のための処理オーバヘッドによりアクセスタイムが遅延するおそれがあるためである。
【0059】
しかし、移動のための処理オーバヘッドによるアクセスタイムの遅延が問題にならないような場合には、データの読み出し時にもマッピング情報テーブル750に従ってデータの移動を行うようにすることもできる。この場合には、コンピュータ500のCPU510は、情報処理装置1(200)から受信したデータ入出力要求がデータの読み出し要求であると判別すると、まず当該入出力要求に従って記憶デバイス300上のデータの読み出しを行う。続いてマッピング情報テーブル750を参照して当該情報処理装置200に割り当てられているLU310を特定する。そして特定したLU310にデータをコピーする。すなわちCPU510は当該情報処理装置に対応付けられたLU310にデータを書き込む手段として機能する。データのコピー時には、データ管理テーブル730にコピー先のデータの記憶位置を特定するための所定の情報を追加すると共に、コピー先及びコピー元のそれぞれのデータに関する更新状態欄に”△”を記載する。すなわちCPU510は、当該情報処理装置200に対応付けられたLU310に書き込まれたデータの記憶位置を特定するための情報をデータ管理テーブル730に記憶する手段としても機能する。LU2(310)からLU1(310)への上記データのコピーが終了すると、LU1(310)のデータ(コピー先データ)に関するデータ管理テーブル730の更新状態欄には”○”が記載され、LU2(310)のデータ(コピー元データ)に関するデータ管理テーブル730の更新状態欄には”×”が記載される。なお情報処理装置1(200)に複数のLU310が割り当てられている場合には、それらのLU310の中から選択した一つのLU310にデータをコピーする。LU310の選択はどのようなアルゴリズムにより行うようにすることもできる。
【0060】
このように、データの読み出し時においても記憶デバイス300に記憶されているデータを、マッピング情報テーブル750によりそれぞれの情報処理装置200に対応付けられたLU310に書き込むようにすることにより、記憶デバイス300上のデータを徐々にマッピング情報テーブル750の対応付けに従ったLU310に移動されるように制御することができる。
【0061】
===入出力コマンド===
次に、本実施の形態に係る入出力処理を行う際に用いられるコマンド示すブロック図を図11に示す。
【0062】
===データの読み出しコマンド===
情報処理装置200から送信される入出力要求が参照要求(データの読み出し)の場合は、情報処理装置200から送信される入出力要求は、図11Aに示すように、クライアント番号欄、I/O種別欄、参照キー欄を有する。クライアント番号欄には当該入出力要求を送信した情報処理装置200のクライアント番号が記載される。I/O種別欄には当該入出力要求が参照要求であることが記載される。参照キー欄には参照するデータのデータ名が記載される。なお、参照キー欄には参照するデータの記憶アドレスが記載されるようにすることもできる。
【0063】
===更新データの書き込みコマンド===
情報処理装置200から送信される入出力要求が更新要求(更新データの書き込み)の場合は、情報処理装置200から送信される入出力要求は、図11Bに示す項目のうち、クライアント番号欄、I/O種別欄、参照キー欄、更新後データ欄を有する。格納LU番号欄は、コンピュータ500がマッピング情報テーブル750を参照して当該情報処理装置200に対応付けられたLU310を特定した後に、コンピュータ500により付加される欄である。クライアント番号欄には当該入出力要求を送信した情報処理装置200のクライアント番号が記載される。I/O種別欄には当該入出力要求が更新要求であることが記載される。参照キー欄には参照するデータのデータ名が記載される。なお、参照キー欄には参照するデータの記憶アドレスが記載されるようにすることもできる。更新後データ欄には情報処理装置200により更新されたデータが格納される。更新後データ欄に格納されるデータは、データ全体とすることもできるし、データ全体のうち内容の更新されたブロックのみとすることもできる。後者の場合には、参照キー欄には更新されたブロックを特定するための情報も記載される。
【0064】
===新規データの書き込みコマンド===
情報処理装置200から送信される入出力要求が追加要求(新規データの書き込み)の場合は、情報処理装置200から送信される入出力要求は、図11Cに示す項目のうち、クライアント番号欄、I/O種別欄、追加データ欄を有する。格納LU番号欄は、コンピュータ500がマッピング情報テーブル750を参照して当該情報処理装置200に対応付けられたLU310を特定した後に、コンピュータ500により付加される欄である。クライアント番号欄には当該入出力要求を送信した情報処理装置200のクライアント番号が記載される。I/O種別欄には当該入出力要求が追加要求であることが記載される。追加データ欄には情報処理装置200により新規作成されたデータが格納される。
【0065】
このように入出力要求にクライアント番号が記載されているために、コンピュータ500は当該入出力要求を送信してきた情報処理装置200を特定することができる。そしてマッピング情報テーブル750を参照して当該情報処理装置200に対応付けられたLU310を特定することができる。これにより、当該入出力要求の対象となっているデータを、当該情報処理装置200に対応付けられたLU310に移動するように制御することが可能となる。
【0066】
===情報処理装置の機能ブロック===
次に、本実施の形態に係る情報処理装置200における機能を示すブロック図を図12に示す。
図12に示すように情報処理装置200はクライアント番号設定部、I/O要求部を有する。
【0067】
クライアント番号設定部は、マッピング情報テーブル750によりLU310と対応付けられる情報処理装置200を特定するためのクライアント番号を設定する機能を有する。クライアント番号設定部はクライアント番号入力部とクライアント情報格納部とを備える。
クライアント番号入力部は、情報処理装置200の入力装置205からオペレータ等により入力される番号を取り込む機能を有する。クライアント情報格納部は、取り込まれたクライアント番号をメモリ202や記憶装置208に記憶する機能を有する。
【0068】
情報処理装置200においてクライアント番号の設定が行われる様子を示す例を図16に示す。すなわち、情報処理装置200が備えるディスプレイ装置等の出力装置206に図16に示すクライアント番号設定ウインドウが表示される。情報処理装置200を操作するオペレータやユーザは、マウスやキーボード等の入力装置205を用いてクライアント番号欄にクライアント番号を入力し、OKボタンをクリックする。これにより情報処理装置200にクライアント番号が取り込まれ、メモリ202等に格納される。
【0069】
なおクライアント番号設定部は、情報処理装置200により実行されるプログラム202Aにより実現されるようにすることもできるし、コンピュータ500において実行されるプログラム520AがWebサーバとしての機能を備える場合には、コンピュータ500により情報処理装置200の出力装置206に表示されるWebページを通して実現されるようにすることもできる。
【0070】
I/O要求部は、コンピュータ500に対して入出力要求を送信する機能を有する。I/O要求部は、I/O情報受付部、I/O情報付加部、クライアント情報付加部、I/O要求転送部を備える。
I/O情報受付部は、情報処理装置200で実行されるプログラム202A等からデータの書き込みや読み出しのリクエストを受け付ける機能を有する。リクエストにはデータ名等の参照キーが含まれる。またデータの書き込みの場合には書き込まれるデータも含まれる。I/O情報付加部は、上記データや参照キーにI/O種別、例えば”参照”、”更新”、あるいは”追加”を付加する。クライアント情報付加部はクライアント番号を付加する機能を有する。クライアント番号はクライアント番号設定部により設定されているので、メモリ202等から読み出すことにより取得することができる。これによりコンピュータ500へ送信する入出力要求が生成される。I/O要求転送部は上記入出力要求をコンピュータ500へ送信する機能を有する。
【0071】
===コンピュータの機能ブロック===
次に、本実施の形態に係るコンピュータ500における機能を示すブロック図を図13に示す。
図13に示すようにコンピュータ500はクライアントLU情報設定部、LU特定部を有する。
クライアントLU情報設定部は、マッピング情報テーブル750を設定するための機能を有する。クライアントLU情報設定部は、クライアントグループ−LU対応入力部、マッピング情報テーブル作成更新部を備える。
クライアントグループ−LU対応入力部は、管理端末550の入力装置555等からオペレータ等により入力されるマッピング情報を取り込む機能を有する。マッピング情報テーブル作成更新部は、取り込まれたマッピング情報をメモリ520に記憶する機能を有する。
【0072】
コンピュータ500においてマッピング情報テーブル750の設定が行われる様子を示す例を図15に示す。すなわち、管理端末550が備えるディスプレイ装置等の出力装置556に図15に示すクライアントグループ設定ウインドウが表示される。管理端末550を操作するオペレータは、マウスやキーボード等の入力装置555を用いてLU欄やクライアントグループ欄にLU番号及びクライアント番号を入力する。これにより情報処理装置200に対するLU310の割り当てを指定することができる。図15に示す例では、LU1に対してはクライアント番号1乃至10のクライアントグループと、クライアント番号21乃至30のクライアントグループとが対応付けられており、LU2に対してはクライアント番号11乃至20のクライアントグループが対応付けられている。OKボタンをクリックすると、これらのマッピング情報(情報処理装置200に対するLU310の割り当てが指定されたデータ)が管理端末550からコンピュータ500に送信される。コンピュータ500のクライアントグループ−LU対応入力部は送信されたマッピング情報を受信する。そしてマッピング情報テーブル作成更新部によりメモリ520に記憶されているマッピング情報テーブル750が更新される。
【0073】
なお詳細設定ボタンをクリックすると、図15に示すように詳細設定ウインドウが表示される。詳細設定ウインドウにおいてはいくつかのオプション設定を行うことが可能となっている。図15に示すようにチェックボックスをマウス等でクリックすることにより、オプションを選択することができるようになっている。図15に示す例では「ブロック単位でデータを移動させる」オプションが選択されている。また上記マッピング情報テーブル750の設定は、管理端末550から行う場合の他情報処理装置200から行うようにすることもできる。
【0074】
上記のようにマッピング情報テーブル750を設定することにより、情報処理装置200からデータ入出力要求があった場合に、記憶デバイス300上の当該データを情報処理装置200に対応付けられたLU310に移動するように制御が行われる。この制御は、マッピング情報テーブル750の設定後、直ちに開始されるようにすることもできるし、所定の条件が成立した場合に開始するようにすることもできる。後者の場合の所定の条件としては、例えばあるLU310に対するデータ入出力要求の頻度が所定の値を超えることや、所定の時刻を経過すること等が考えられる。
【0075】
LU特定部は、情報処理装置200から受信した入出力要求に基づきマッピング情報テーブル750を参照することにより、LUを特定する機能を有する。LU特定部は、I/O種別振り分け部、マッピング情報参照LU特定部、データ状態フラグ更新部、I/O要求部を備える。
【0076】
I/O種別振り分け部は、情報処理装置200から受信した入出力要求のI/O種別欄に基づいて入出力要求の種別を特定する。マッピング情報参照LU特定部は、情報処理装置200から受信した入出力要求のクライアント番号欄に基づいて、マッピング情報テーブル750を参照することにより、該当するLU310を特定する。そして特定したLUの番号を入出力要求に付加する。データ状態フラグ更新部は、データ管理テーブル730の更新状態欄を更新する。例えばI/O種別が更新データの書き込みの場合には、当該データの更新状態欄を”○”から”△”に更新する。これにより当該データに対する他の情報処理装置200からのアクセスが行えないようにすることができる。I/O要求部は、LU番号を特定した入出力要求を記憶デバイス300に送信する。
【0077】
===記憶デバイスの機能ブロック===
次に、本実施の形態に係る記憶デバイス300における機能を示すブロック図を図14に示す。
図14に示すように記憶デバイス300はI/O部を有する。I/O部はコンピュータ500から送信されたデータ入出力コマンドに基づき、LU310へのデータアクセスを行う機能を有する。
I/O部は、格納LUサーチ部とI/O部とを備える。格納LUサーチ部は、コンピュータ500から送信されたデータ入出力コマンドに付加された格納LU番号に基づき、該当するLU310を特定する。I/O部は当該LU310に対するデータの入出力を行う。
【0078】
===情報処理装置における処理の流れ===
次に、本実施の形態に係る情報処理装置200において実行される処理の流れを示すフローチャートを図17に示す。なお以下の処理は、本実施の形態に係る各種の動作を行うためのコードから構成されるプログラム202Aを、CPU201が実行することにより実現される。
【0079】
まず情報処理装置200はクライアント番号を設定するかどうかを判定する(S1000)。クライアント番号を設定する場合には”Y”に進み、図12に示したクライアント番号設定部によりクライアント番号の設定を行う。すなわち、まずクライアント番号の入力を受け付け(S1001)、受け付けたクライアント番号をメモリ202に格納する(S1002)。
S1000においてクライアント番号を設定しない場合には”N”に進み、図12に示したI/O要求部によりユーザI/O要求を受け付ける処理に進む(S1003)。すなわち情報処理装置200は、I/O要求を受け付けたら(S1003)I/O種別及びクライアント番号を付加し(S1004)、コンピュータ500にデータ入出力要求を送信する(S1005)。データの参照要求の場合にはコンピュータ500からデータを受信する(S1006)。
【0080】
===コンピュータにおける処理の流れ===
次に、本実施の形態に係るコンピュータにおいて実行される処理の流れを示すフローチャートを図18に示す。なお以下の処理は、本実施の形態に係る各種の動作を行うためのコードから構成されるプログラム520Aを、CPU510が実行することにより実現される。
【0081】
まずコンピュータ500はクライアントグループを設定するかどうかを判定する(S2000)。クライアントグループを設定する場合には”Y”に進み、図13に示したクライアントLU情報設定部によりクライアントグループの設定を行う。すなわち、まずクライアントグループとLUとを対応付けたマッピング情報の入力を受け付け(S2001)、受け付けたマッピング情報をメモリ520に格納する(S2002)。
S2000においてクライアントグループを設定しない場合には”N”に進み、図13に示したLU特定部により情報処理装置200からの入出力要求を受け付ける処理に進む(S2003)。
【0082】
情報処理装置200から入出力要求を受信すると(S2003)まずI/O種別を判別する(S2004)。I/O種別が更新データの書き込み要求である場合はS2005に進み、マッピング情報テーブル750を参照してLU310を特定する(S2005)。続いて、マッピング情報テーブル750により特定したLU310上にデータのコピーを書き込むための領域を確保し、コピー先データを管理するためにデータ管理テーブル730も更新する。そしてコピー元データ及びコピー先データについての更新状態欄を”△”にする(S2006)。その後コピー元データを更新データに書き換え(S2007)、続いて当該データをコピー先LUに書き込む(S2008)。コピーが終了したら、データ管理テーブル730のコピー先データについての更新状態欄を”○”にし、コピー元データについての更新状態欄を”×”にする(S2009)。
【0083】
一方S2004において、I/O種別が新規データの書き込み要求である場合はS2010からS2011に進み、マッピング情報テーブル750を参照してLU310を特定する(S2011)。続いて、マッピング情報テーブル750により特定したLU310上にデータを書き込むための領域を確保し、データ管理テーブル730を更新する。データ管理テーブル730の更新状態欄は”△”にする(S2012)。その後、新規データを当該LU310に書き込む(S2013)。書き込みが終了したら、データ管理テーブル730の当該データについての更新状態欄を”○”にする(S2014)。
またS2004においてI/O種別がデータの読み出し要求である場合は、S2010からS2015に進む。そしてデータ管理テーブル730に記載されたデータの記憶アドレスに従って当該データを記憶デバイス300から読み出す(S2017)。そして読み出したデータを情報処理装置200に送信する(S2018)。
【0084】
なお、情報処理装置200から受信した入出力要求が「更新データの書き込み」でもなく、「新規データの書き込み」でもなく、「データの読み出し」でもない場合には、S2015において”N”に進み、所定のエラー処理が行われる(S2016)。
【0085】
このように、本実施の形態に示したように、情報処理装置200からコンピュータ500に対してデータ入出力要求があった場合には、記憶デバイス300のLU310に記憶されるデータを、マッピング情報テーブル750により特定されるLU310に移動するように制御が行われる。これにより、記憶デバイス300上のデータをマッピング情報テーブル750の対応付けに従ったLU310に移動されるように制御することができる。これにより、特定のLU310へのデータアクセスが集中している場合や、あるLU310の残り記憶容量が少なくなった場合に、情報処理装置200からのデータ入出力要求を継続したまま、記憶デバイス300上のデータを徐々にマッピング情報テーブル750の対応付けに従ったLU310に移動してゆくことができるため、記憶デバイス300により提供される記憶領域を効率良く利用するようにすることができる。また特定のLU310へのデータアクセスの集中を回避し、システム全体としてのデータ入出力性能を向上させることも可能となる。
【0086】
さらに、データの移動は情報処理装置200からアクセスがあった時に行われるため、データ移動時に発生する処理オーバヘッドが記憶デバイス300の入出力性能に与える影響が少なくて済むという利点も有する。さらに、将来に渡って情報処理装置200からアクセスされることがないかもしれないデータを移動するといった無駄な処理を行わずに済む。
【0087】
また本実施の形態に係るデータの移動は、情報処理装置200から入出力要求があった場合にCPU510がマッピング情報テーブル750を参照することにより行われるため、オペレーティングシステムのデバイス管理情報を変更するためにシステムを停止させることや、データ入出力処理を冗長系にフェイルオーバさせることは不要である。これにより24時間365日の稼働が求められるシステムに対してもユーザが任意に指定するクライアントグループ毎にアクセスするLUを分散化させることができ、高性能かつ可用性の高い情報処理システムを構築することが可能となる。
【0088】
<第2の実施の形態>
===全体構成例===
ます、本実施の形態に係るデータ入出力装置を含むストレージシステムの全体構成を示すブロック図を図19に示す。
ストレージシステム600は、記憶デバイス制御装置(データ入出力装置)100と記憶デバイス300とを備えている。記憶デバイス制御装置100は、情報処理装置200からファイル名指定によるデータ入出力要求(以下ファイルアクセス要求と記す)を受信して、記憶デバイス300に記憶されているデータの入出力のための処理を行う。データは、記憶デバイス300が備えるディスクドライブ320により提供される物理的な記憶領域上に論理的に設定される記憶領域である論理ボリューム(Logical Unit、以下LUと記す)に記憶されている。また記憶デバイス制御装置100は、情報処理装置200との間で、ストレージシステム600を管理するための各種コマンドの授受も行う。
【0089】
情報処理装置200はCPUやメモリを備えたコンピュータであり、第1の実施の形態において説明したものと同様である。また、クライアント番号の設定も第1の実施の形態と同様に行われる。
図19において、情報処理装置200は、LAN400を介して記憶デバイス制御装置100と接続されている。LAN400は、インターネットとすることもできるし、専用のネットワークとすることもできる。LAN400を介して行われる情報処理装置200と記憶デバイス制御装置100との間の通信は、例えばTCP/IPプロトコルに従って行われる。
【0090】
記憶デバイス制御装置100は、チャネル制御部110を備える。チャネル制御部110は、情報処理装置200からのファイルアクセス要求を個々に受け付ける。すなわち、チャネル制御部110には、個々にLAN400上のネットワークアドレス(例えば、IPアドレス)が割り当てられていてそれぞれが個別にNASとして振る舞い、個々のNASがあたかも独立したNASが存在しているかのようにNASのサービスを情報処理装置200に提供することができる。以下、チャネル制御部110をCHN110とも記す。
【0091】
なお情報処理装置200と記憶デバイス制御装置100との間の接続は、LAN400ではなくSAN(Storage Area Network)とすることもできる。この場合、情報処理装置200と記憶デバイス制御装置100との間では、例えばファイバチャネルプロトコルに従って通信が行われ、記憶デバイス300が提供する記憶領域におけるデータの管理単位であるブロックを単位としてデータの授受が行われる。
【0092】
===記憶デバイス===
記憶デバイス300は多数のディスクドライブ320を備えており情報処理装置200に対して記憶領域を提供する。記憶デバイス300も第1の実施の形態において説明したものと同様である。
【0093】
===記憶デバイス制御装置===
記憶デバイス制御装置100はチャネル制御部110、共有メモリ120、キャッシュメモリ130、ディスク制御部140、管理端末160、接続部150を備える。
【0094】
チャネル制御部110は情報処理装置200との間で通信を行うための通信インタフェースを備え、情報処理装置200との間でデータ入出力コマンド等を授受する機能を備える。例えばCHN110は情報処理装置1乃至5(200)からのファイルアクセス要求を受け付ける。そしてファイルの記憶アドレスやデータ長等を求めて、ファイルアクセス要求に対応するI/O要求を出力することにより、記憶デバイス300へのアクセスを行う。これによりストレージシステム600はNASとしてのサービスを情報処理装置1乃至5(200)に提供することができる。なおI/O要求にはデータの先頭アドレス、データ長、読み出し又は書き込み等のアクセスの種別が含まれている。またデータの書き込みの場合にはI/O要求には書き込みデータが含まれているようにすることもできる。I/O要求の出力は、後述するI/Oプロセッサ119により行われる。
【0095】
各チャネル制御部110は管理端末160と共に内部LAN151で接続されている。これによりチャネル制御部110に実行させるマイクロプログラム等を管理端末160から送信しインストールすることが可能となっている。チャネル制御部110の構成については後述する。
【0096】
接続部150はチャネル制御部110、共有メモリ120、キャッシュメモリ130、ディスク制御部140を相互に接続する。
共有メモリ120及びキャッシュメモリ130は、チャネル制御部110、ディスク制御部140により共有される記憶メモリである。共有メモリ120は主に制御情報やコマンド等を記憶するために利用されるのに対し、キャッシュメモリ130は主にデータを記憶するために利用される。
【0097】
例えば、あるチャネル制御部110が情報処理装置200から受信したデータ入出力コマンドが書き込みコマンドであった場合には、当該チャネル制御部110は書き込みコマンドを共有メモリ120に書き込むと共に、情報処理装置200から受信した書き込みデータをキャッシュメモリ130に書き込む。一方、ディスク制御部140は共有メモリ120を監視しており、共有メモリ120に書き込みコマンドが書き込まれたことを検出すると、当該コマンドに従ってキャッシュメモリ130から書き込みデータを読み出して記憶デバイス300に書き込む。
【0098】
なお、このようにチャネル制御部110からディスク制御部140に対するデータの書き込みや読み出しの指示を共有メモリ120を介在させて間接に行う構成の他、例えばチャネル制御部110からディスク制御部140に対してデータの書き込みや読み出しの指示を共有メモリ120を介さずに直接に行う構成とすることもできる。
【0099】
ディスク制御部140は記憶デバイス300の制御を行う。例えば上述のように、チャネル制御部110が情報処理装置200から受信したデータ書き込みコマンドに従って記憶デバイス300へデータの書き込みを行う。また、チャネル制御部110により送信された論理アドレス指定によるLU310へのデータアクセス要求を、物理アドレス指定による物理ディスクへのデータアクセス要求に変換する。記憶デバイス300における物理ディスクがRAIDにより管理されている場合には、RAID構成(例えば、RAID0,1,5)に従ったデータのアクセスを行う。
【0100】
各ディスク制御部140は管理端末160と共に内部LAN151で接続されており、相互に通信を行うことが可能である。これにより、ディスク制御部140に実行させるマイクロプログラム等を管理端末160から送信しインストールすることが可能となっている。
【0101】
本実施例においては、共有メモリ120及びキャッシュメモリ130がチャネル制御部110及びディスク制御部140に対して独立に設けられていることについて記載したが、本実施例はこの場合に限られるものでなく、共有メモリ120又はキャッシュメモリ130がチャネル制御部110及びディスク制御部140の各々に分散されて設けられることも好ましい。この場合、接続部150は、分散された共有メモリ又はキャッシュメモリを有するチャネル制御部110及びディスク制御部140を相互に接続させることになる。
【0102】
===管理端末===
管理端末160はストレージシステム600を保守・管理するためのコンピュータである。管理端末160を操作することにより、例えばマッピング情報テーブル750の設定や、記憶デバイス300内の物理ディスク構成の設定、LUの設定、チャネル制御部110において実行されるマイクロプログラムのインストール等を行うことができる。これらの設定や制御は、管理端末160で動作するWebサーバが提供するWebページをユーザインタフェースとしてオペレータなどにより行われる。
【0103】
管理端末160は記憶デバイス制御装置100に内蔵されている形態とすることもできるし、外付けされている形態とすることもできる。また管理端末160は、記憶デバイス制御装置100及び記憶デバイス300の保守・管理を専用に行うコンピュータとすることもできるし、汎用のコンピュータに保守・管理機能を持たせたものとすることもできる。
【0104】
管理端末160の構成を示すブロック図を図20に示す。
管理端末160は、CPU161、メモリ162、ポート163、記録媒体読取装置164、入力装置165、出力装置166、記憶装置168を備える。
【0105】
CPU161は管理端末160の全体の制御を司るもので、メモリ162に格納されたプログラム162Cを実行することにより上記Webサーバとしての機能等を実現する。メモリ162には、物理ディスク管理テーブル162AとLU管理テーブル162Bとプログラム162Cとが記憶されている。なお物理ディスク管理テーブル162A及びLU管理テーブル162Bは、第1の実施の形態において説明したものと同様である。
【0106】
記録媒体読取装置164は、記録媒体167に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ162や記憶装置168に格納される。従って、例えば記録媒体167に記録されたプログラム162Cを、記録媒体読取装置164を用いて上記記録媒体167から読み取って、メモリ162や記憶装置168に格納するようにすることができる。記録媒体167としてはフレキシブルディスクやCD−ROM、DVD−ROM、DVD−RAM、半導体メモリ等を用いることができる。
なお、上記プログラム162Cは管理端末160を動作させるためのプログラムとすることができる他、チャネル制御部110やディスク制御部140にOS701やアプリケーションプログラムをインストールするためのプログラムや、バージョンアップするためのプログラムとすることもできる。さらに、CHN110に実行させるためのプログラムとすることもできる。記録媒体読取装置164は管理端末160に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。
記憶装置168は、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等である。入力装置165はオペレータ等による管理端末160へのデータ入力等のために用いられる。入力装置165としては例えばキーボードやマウス等が用いられる。出力装置166は情報を外部に出力するための装置である。出力装置166としては例えばディスプレイやプリンタ等が用いられる。ポート163は内部LAN151に接続されており、これにより管理端末160はチャネル制御部110やディスク制御部140等と通信を行うことができる。またポート163は、LAN400に接続するようにすることもできるし、電話回線に接続するようにすることもできる。
【0107】
===チャネル制御部===
本実施の形態に係るストレージシステム600は、上述の通りCHN110により情報処理装置200からのファイルアクセス要求を受け付け、NASとしてのサービスを情報処理装置200に提供する。
【0108】
CHN110のハードウエア構成を図21に示す。CHN110は、ネットワークインタフェース部111、CPU112、メモリ113、入出力制御部114、I/O(Input/Output)プロセッサ119、NVRAM(Non Volatile RAM)115、ボード接続用コネクタ116、通信コネクタ117を備えている。
【0109】
ネットワークインタフェース部111は、情報処理装置200との間で通信を行うための通信インタフェースを備えている。CHN110の場合は、例えばTCP/IPプロトコルに従って情報処理装置200から送信されたファイルアクセス要求を受信する。通信コネクタ117は情報処理装置200と通信を行うためのコネクタである。CHN110の場合はLAN400に接続可能なコネクタであり、例えばイーサネット(登録商標)に対応している。
【0110】
CPU112は、CHN110をNASボードとして機能させるための制御を司る。また本実施の形態に係るプログラム113Aを実行することにより、記憶デバイス300に記憶されるLU310を、情報処理装置200に対応付けられたLU310に移動するように制御が行われる。
メモリ113には様々なプログラムやデータが記憶される。例えば図22に示すプログラム113Aやデータ管理テーブル730、ロックテーブル720、マッピング情報テーブル750が記憶される。
プログラム113Aは本実施の形態に係る各種の動作を行うためのコードから構成される。本実施の形態に係る制御は、CHN110が備えるCPU112がプログラム113Aを実行することにより実現される。
【0111】
データ管理テーブル730は図6に示したものと同様である。すなわちデータ管理テーブル730には例えばファイルのデータが記憶されているLU310上のアドレスやデータサイズなど、ファイルの記憶位置を特定するための情報が含まれる。また、データ管理テーブル730はファイルだけでなくディレクトリに対応させて生成されることもある。データ管理テーブル730は記憶デバイス300上の各LU310にも記憶されている。
ロックテーブル720は、情報処理装置200からのファイルアクセスに対して排他制御を行うためのテーブルである。排他制御を行うことにより複数の情報処理装置200間で記憶デバイス300上のファイルを共用することができる。ロックテーブル720は図7に示したものと同様である。
【0112】
マッピング情報テーブル750は、情報処理装置200とLU310との対応付けを管理するためのテーブル(情報処理装置と記憶ボリュームとの対応付け情報)である。マッピング情報テーブル750は図8に示したものと同様である。またマッピング情報テーブル750の設定は、第1の実施の形態において説明したのと同様に行うことができる。すなわち、管理端末160が備えるディスプレイ装置等の出力装置166に図15に示すクライアントグループ設定ウインドウが表示される。管理端末160を操作するオペレータは、マウスやキーボード等の入力装置165を用いてLU欄やクライアントグループ欄にLU番号及びクライアント番号を入力する。OKボタンをクリックするとこれらのマッピング情報が管理端末160からCHN110に送信される。CHN110が有するクライアントグループ−LU対応入力部は送信されたマッピング情報を受信する。そしてマッピング情報テーブル作成更新部によりメモリ113に記憶されているマッピング情報テーブル750が更新される。なお第2の実施の形態においては、マッピング情報テーブル750は共有メモリ120に記憶しておくようにすることもできる。
【0113】
管理端末160からのマッピング情報の送信は、記憶デバイス制御装置100内の全CHN110に対して行われるようにすることもできるし、特定のCHN110に対して行われるようにすることもできる。後者の場合には、管理端末160の出力装置166に表示されるクライアントグループ設定ウインドウにおいて、マッピング情報を送信するCHN110を指定するための入力欄も表示される。またこの場合にはCHN110毎に個別のマッピング情報テーブル750を設定するようにすることもできる。
【0114】
入出力制御部114は、ディスク制御部140やキャッシュメモリ130、共有メモリ120、管理端末160との間でデータやコマンドの授受を行う。入出力制御部114はI/Oプロセッサ119やNVRAM115を備えている。I/Oプロセッサ119は例えば1チップのマイコンで構成される。I/Oプロセッサ119は上記データやコマンドの授受を制御し、CPU112とディスク制御部140との間の通信を中継する。NVRAM115はI/Oプロセッサ119の制御を司るプログラムを格納する不揮発性メモリである。
【0115】
===第2の実施の形態におけるデータ入出力処理===
次に、本実施の形態に係るCHN110が情報処理装置200からファイルアクセス要求を受信した場合に、記憶デバイス300上に記憶されるデータが当該情報処理装置200に対応付けられるLU310に移動するように行われる制御について説明する。
【0116】
===新規ファイルの書き込み===
情報処理装置200からファイルアクセス要求(入出力要求)を受信すると、CHN110のCPU112はまずI/O種別を判別する。I/O種別が新規ファイルの書き込み要求であった場合は、メモリ113に記憶されているマッピング情報テーブル750を参照して当該情報処理装置200に対応付けられているLU310を特定する。続いてマッピング情報テーブル750により特定したLU310上にファイルを書き込むための領域を確保し、データ管理テーブル730を更新する。データ管理テーブル730の更新状態欄は”△”にする。その後、新規ファイルを当該LU310に書き込む。書き込みが終了したら、データ管理テーブル730の当該ファイルについての更新状態欄を”○”にする。
【0117】
このように、情報処理装置200からの新規ファイルが、マッピング情報テーブル750によりそれぞれの情報処理装置200に対応付けられたLU310に書き込まれることにより、記憶デバイス300上のファイルを徐々にマッピング情報テーブル750の対応付けに従ったLU310に移動されるように制御することができる。
【0118】
===更新データの書き込み===
次に、情報処理装置200から受信した入出力要求のI/O種別がファイルの更新書き込み要求であった場合は、マッピング情報テーブル750を参照して当該情報処理装置200に対応付けられているLU310を特定する。続いて、マッピング情報テーブル750により特定したLU310上にファイルのコピーを書き込むための領域を確保し、コピー先ファイルを管理するためにデータ管理テーブル730も更新する。そしてコピー元ファイル及びコピー先ファイルについての更新状態欄を”△”にする。その後コピー元ファイルを更新し、続いて当該ファイルをコピー先LU310に書き込む。コピーが終了したら、データ管理テーブル730のコピー先ファイルについての更新状態欄を”○”にし、コピー元ファイルについての更新状態欄を”×”にする。
【0119】
このように、情報処理装置200により更新されたファイルが、マッピング情報テーブル750によりそれぞれの情報処理装置200に対応付けられたLU310に書き込まれることにより、記憶デバイス300上のファイルを徐々にマッピング情報テーブル750の対応付けに従ったLU310に移動されるように制御することができる。
【0120】
なお上述した例においては、情報処理装置200からの更新ファイルは一旦元のLU310に書き込まれた後に、マッピング情報テーブル750に対応付けられたLU310に移動されるものとしたが、直接マッピング情報テーブル750に対応付けられたLU310に書き込まれるようにすることもできる。この場合には、CHN110のCPU112は、情報処理装置200から受信した入出力要求がファイルの更新書き込み要求であると判別すると、まずマッピング情報テーブル750を参照して当該情報処理装置200に割り当てられているLU310を特定する。そして特定したLU310に当該更新ファイルを書き込む。そしてデータ管理テーブル730に当該更新ファイルに関する所定の情報を追加すると共に、元のLU310に記憶されている更新前のファイルに関する更新状態欄を”×”にする。
【0121】
===データの読み出し===
次に、情報処理装置200から受信した入出力要求のI/O種別がファイルの読み込み要求である場合は、データ管理テーブル730に記載されたファイルの記憶アドレスに従って当該ファイルを記憶デバイス300から読み出す。そして読み出したファイルを情報処理装置200に送信する。
【0122】
このように本実施の形態においても、ファイルの移動のための処理オーバヘッドによりアクセスタイムが遅延するおそれがある場合には、CHN110のCPU112は、情報処理装置200から受信した入出力要求がファイルの読み出し要求であると判別すると、マッピング情報テーブル750は見に行かずに、データ管理テーブル730から当該ファイルの記憶アドレスを求め、読みに行くようにすることもできる。
【0123】
しかし、移動のための処理オーバヘッドによるアクセスタイムの遅延が問題にならないような場合には、ファイルの読み出し時にもマッピング情報テーブル750に従ってファイルの移動を行うようにすることもできる。この場合には、CHN110のCPU112は、情報処理装置200から受信した入出力要求がファイルの読み出し要求であると判別すると、まず当該入出力要求に従って記憶デバイス300上のファイルの読み出しを行う。続いてマッピング情報テーブル750を参照して当該情報処理装置200に割り当てられているLU310を特定する。そして特定したLU310にファイルをコピーする。ファイルのコピー時には、データ管理テーブル730にコピー先のファイルに関する所定の情報を追加すると共に、コピー先及びコピー元のそれぞれのファイルに関する更新状態欄に”△”を記載する。上記ファイルのコピーが終了すると、コピー先ファイルに関するデータ管理テーブル730の更新状態欄には”○”が記載され、コピー元ファイルに関するデータ管理テーブル730の更新状態欄には”×”が記載される。
【0124】
このように、ファイルの読み出し時においても記憶デバイス300に記憶されているファイルを、マッピング情報テーブル750によりそれぞれの情報処理装置200に対応付けられたLU310に書き込むようにすることにより、記憶デバイス300上のファイルを徐々にマッピング情報テーブル750の対応付けに従ったLU310に移動されるように制御することができる。
【0125】
本実施の形態に示したように、情報処理装置200から記憶デバイス制御装置100に対してファイルアクセス要求があった場合には、記憶デバイス300のLU310に記憶されるファイルを、マッピング情報テーブル750により特定されるLU310に移動するように制御が行われる。これにより、記憶デバイス300上のファイルを徐々にマッピング情報テーブル750の対応付けに従ったLU310に移動されるように制御することができる。これにより、特定のLU310へのファイルアクセスが集中している場合や、あるLU310の残り記憶容量が少なくなった場合に、情報処理装置200からのファイルアクセス要求を継続したまま、記憶デバイス300上のファイルをマッピング情報テーブル750の対応付けに従ったLU310に移動してゆくことができるため、記憶デバイス300により提供される記憶領域を効率良く利用するようにすることができる。また特定のLU310へのファイルアクセスの集中を回避し、システム全体としての入出力性能を向上させることが可能となる。
【0126】
さらに、ファイルの移動は情報処理装置200からアクセスがあった時に行われるため、ファイル移動時に発生する処理オーバヘッドが記憶デバイス300の入出力性能に与える影響が少なくて済むという利点も有する。さらに、将来に渡って情報処理装置200からアクセスされることがないかもしれないファイルを移動するといった無駄な処理を行わずに済む。
【0127】
また本実施の形態に係るファイルの移動は、情報処理装置200から入出力要求があった場合にCPU112がマッピング情報テーブル750を参照することにより行われるため、オペレーティングシステムのデバイス管理情報を変更するためにシステムを停止させることや、ファイルの入出力処理を冗長系にフェイルオーバさせることは不要である。これにより24時間365日の稼働が求められるシステムに対してもユーザが任意に指定するクライアントグループ毎にアクセスするLU310を分散化させることができ、高性能かつ可用性の高い情報処理システムを構築することが可能となる。
【0128】
以上、本実施の形態について説明したが、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【0129】
【発明の効果】
プログラム、及びデータ入出力装置を提供することができる。
【図面の簡単な説明】
【図1】本実施の形態に係る情報処理システムの全体構成を示すブロック図である。
【図2】本実施の形態に係る情報処理装置の構成を示すブロック図である。
【図3】本実施の形態に係るメモリに記憶されるテーブルの内容を説明するための図である。
【図4】本実施の形態に係る物理ディスク管理テーブルを示す図である。
【図5】本実施の形態に係るLU管理テーブルを示す図である。
【図6】本実施の形態に係る記憶データ管理テーブルを示す図である。
【図7】本実施の形態に係るロックテーブルを示す図である。
【図8】本実施の形態に係るマッピング情報テーブルを示す図である。
【図9】本実施の形態に係る管理端末の構成を示すブロック図である。
【図10】本実施の形態に係るデータの移動の様子を示すブロック図である。
【図11】本実施の形態に係る入出力要求を示すブロック図である。図11Aは参照要求の場合を示す。図11Bは更新要求の場合を示す。図11Cは追加要求の場合を示す。
【図12】本実施の形態に係る情報処理装置における機能を示すブロック図である。
【図13】本実施の形態に係るデータ入出力装置における機能を示すブロック図である。
【図14】本実施の形態に係る記憶デバイスにおける機能を示すブロック図である。
【図15】本実施の形態に係る情報処理装置と記憶ボリュームとの対応付けを行うために管理端末の出力装置に表示される画面を示す図である。
【図16】本実施の形態に係るクライアント番号を設定するために情報処理装置の出力装置に表示される画面を示す図である。
【図17】本実施の形態に係る情報処理装置において実行される処理を示すフローチャートである。
【図18】本実施の形態に係るデータ入出力装置において実行される処理を示すフローチャートである。
【図19】本実施の形態に係るストレージシステムの全体構成を示すブロック図である。
【図20】本実施の形態に係る管理端末の構成を示すブロック図である。
【図21】本実施の形態に係るチャネル制御部を示す図である。
【図22】本実施の形態に係るメモリに記憶されるテーブルの内容を説明するための図である。
【符号の説明】
100 記憶デバイス制御装置 110 チャネル制御部
112 CPU 113 メモリ 120 共有メモリ
130 キャッシュメモリ 140 ディスク制御部 150 接続部
151 内部LAN 160 管理端末 161 CPU
162 メモリ 162A 物理ディスク管理テーブル
162B LU管理テーブル 162C プログラム
163 ポート 164 記録媒体読取装置
165 入力装置 166 出力装置 167 記録媒体
168 記憶装置 200 情報処理装置 201 CPU
202 メモリ 202A プログラム 203 ポート
204 記録媒体読取装置 205 入力装置 206 出力装置
207 記録媒体 208 記憶装置 300 記憶デバイス
310 LU 320 ディスクドライブ
400 ネットワーク 500 コンピュータ 510 CPU
520 メモリ 520A プログラム 530 I/F
550 管理端末 551 CPU 552 メモリ
552A プログラム 553 ポート
554 記録媒体読取装置 555 入力装置 556 出力装置
557 記録媒体 558 記憶装置
721 データロックテーブル 722 LUロックテーブル
730 データ管理テーブル 750 マッピング情報テーブル
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a program and a data input / output device.
[0002]
[Prior art]
The storage capacity of a storage system has been steadily increasing with the progress of information technology in recent years. A form in which such a storage system is connected to a plurality of information processing apparatuses via a network and a large-capacity storage area provided by the storage system is used by the plurality of information processing apparatuses has become widespread.
[0003]
In this case, the storage area provided by the storage system is divided into a plurality of storage areas, and an available information processing apparatus is assigned to each section, so that the storage system can be shared by the plurality of information processing apparatuses. If a plurality of information processing devices are assigned to a storage area of a certain section, a common storage area can be used by these information processing devices.
Such allocation is performed so that the storage area of the entire storage system is efficiently used in consideration of the frequency of access from each information processing apparatus to the storage system, the required storage capacity, and the like. Such assignment is performed by an operator managing the system performing a predetermined setting operation on an operating system that controls a storage area of the storage system.
[0004]
[Patent Document 1]
JP 2002-259061 A
[0005]
[Problems to be solved by the invention]
However, since the frequency of access from each information processing device, the storage capacity used by each information processing device, and the storage area are not constant, access to the storage area of a specific section concentrates while the operation of the storage system is continued for a while. Or the usage rate of the storage area of a specific section may increase.
In such a case, the assignment of the information processing device to the storage area of each section is changed. To change the assignment, it is necessary to change the device management information of the operating system. there were. Therefore, it has been difficult to change the assignment while continuing data access from each information processing apparatus to the storage system.
[0006]
Further, in the conventional technique, when the assignment of the information processing device to the storage area of each section of the storage system is changed and data movement between the storage areas of each section is started simultaneously, the storage for the information processing apparatus is started. No consideration was given to the data access performance of the system.
The present invention has been made in view of the above problems, and has as its main object to provide a program and a data input / output device.
[0007]
[Means for Solving the Problems]
In order to solve the above problems, a program according to the present invention is connected to a plurality of storage volumes for storing data, and a plurality of information processing devices that perform input / output requests for the data. The data stored in the storage volume when the input / output request is received and the data input / output request is received from the information processing device to a data input / output device that performs input / output processing of the data with respect to the storage volume. In accordance with the association information between the information processing device and the storage volume so as to move to the storage volume associated with the information processing device.
[0008]
Here, the information processing apparatus is an apparatus for realizing a predetermined function by appropriately recording data in a storage volume or using and processing data stored in the storage volume. For example, it can be a personal computer or a workstation.
[0009]
The data input / output device receives a data input / output request from the information processing device and performs input / output processing of data stored in the storage volume. For example, it may be a file server computer or a mainframe computer.
[0010]
A storage volume is a storage resource for storing data, and includes a physical volume, which is a physical storage area provided by a disk drive such as a hard disk device, and a storage area logically set on the physical volume. A certain logical volume. That is, the storage volume is a storage resource provided by the above-mentioned physical volume of the storage device or a logical volume logically set on the physical volume.
[0011]
Note that the data input / output device may be a storage device control device that controls a storage device including the physical volume. In this case, a storage device and a storage device control device may constitute a disk array device. When the storage device control device receives a data input / output request (hereinafter also referred to as a file access request) in file units from the information processing device, the storage device and the storage device control device use a NAS (Network Attached Storage). ) May be configured.
[0012]
In addition, the problems disclosed by the present application and the solution thereof will be clarified by the description of the embodiments of the invention and the drawings.
[0013]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0014]
<First embodiment>
=== Overall configuration example ===
First, FIG. 1 is a block diagram showing an overall configuration of an information processing system including a data input / output device according to the present embodiment.
The information processing system shown in FIG. 1 includes a computer (data input / output device) 500 and a storage device 300. The computer 500 receives a data input / output request from the information processing apparatus 200 and performs data input / output processing for the storage device 300. The computer 500 may be, for example, a mainframe computer used as a central computer in a bank automatic teller system or an aircraft seat reservation system. In this case, the database application program runs on the computer 500, receives an input / output request for data stored in the storage device 300 from the information processing device 200, and performs input / output processing on the storage device 300.
[0015]
The computer 500 includes a CPU (Central Processing Unit) 510, a memory 520, an I / F (Interface) 530, and a bus 560. The CPU 510 controls the entire operation of the computer 500, and realizes various functions by executing a program 520A stored in the memory 520. The computer 500 is connected to the network 400, the management terminal 550, and the storage device 300 via the I / F 530. The bus 560 interconnects the CPU 510, the memory 520, and the I / F 530.
[0016]
The network 400 connects the information processing device 200 and the computer 500 to each other. Thereby, communication can be performed between the information processing device 200 and the computer 500. The network 400 is also interconnected between the information processing devices 200, and can communicate with each other between the information processing devices 200. Network 400 can be, for example, the Internet. Also, a LAN (Local Area Network) used privately can be used. Communication between the information processing device 200 and the computer 500 or communication between the information processing devices 200 performed via the network 400 is performed according to, for example, a TCP / IP protocol.
[0017]
=== Storage device ===
The storage device 300 includes a disk drive 320. The data is stored in a logical volume (hereinafter also referred to as an LU) 310 which is a storage area logically set on a physical storage area provided by a disk drive 320 provided in the storage device 300. As the disk drive, for example, various devices such as a hard disk device, a flexible disk device, and a semiconductor storage device can be used.
[0018]
It should be noted that the storage device 300 can also constitute a disk array with a plurality of disk drives, for example. In this case, the storage area provided to the information processing apparatus 200 may be provided by a plurality of disk drives managed by RAID (Redundant Arrays of Inexpensive Disks).
[0019]
The computer 500 and the storage device 300 may be connected directly as shown in FIG. 1, or may be connected via a network. Further, the storage device 300 may be configured integrally with the computer 500.
[0020]
The LU 310 set in the storage device 300 includes a user LU 310 accessible from the information processing apparatus 200, a system LU 310 used for controlling the computer 500, and the like. The operating system and programs executed by the computer 500 are also stored in the system LU 310. Each LU 310 is associated with an accessible information processing apparatus 200. As a result, an accessible LU 310 is assigned to each information processing apparatus 200. This assignment is performed by associating the information processing device number (client number) assigned to each information processing device 200 with the LU number assigned to each LU 310. The association may be such that one LU 310 is shared by a plurality of information processing apparatuses 200. Details will be described later.
[0021]
=== Management terminal ===
The management terminal 550 is a computer for maintaining and managing the computer 500. By operating the management terminal 550, for example, the program 520A executed on the computer 500 can be installed. Further, by operating the management terminal 550, maintenance and management of the storage device 300 can be performed. In this case, for example, setting of the physical disk configuration in the storage device 300, setting of the LU 310, assignment of the information processing device 200 to each LU 310, and the like can be performed. Here, as the setting of the physical disk configuration in the storage device 300, for example, addition or removal of a physical disk, change of the RAID configuration (for example, change from RAID 1 to RAID 5), or the like can be performed.
[0022]
The management terminal 550 can be built in the computer 500 or externally attached. The management terminal 550 can be a computer dedicated to maintenance and management of the computer 500 and the storage device 300, or can be a general-purpose computer having a maintenance and management function.
[0023]
FIG. 9 is a block diagram showing the configuration of the management terminal 550.
The management terminal 550 includes a CPU 551, a memory 552, a port 553, a recording medium reading device 554, an input device 555, an output device 556, and a storage device 558.
[0024]
The CPU 551 controls the entire control of the management terminal 550, and realizes the above functions by executing the program 552A stored in the memory 552.
[0025]
The recording medium reading device 554 is a device for reading a program or data recorded on the recording medium 557. The read programs and data are stored in the memory 552 and the storage device 558. Therefore, for example, the program 552A recorded on the recording medium 557 can be read from the recording medium 557 using the recording medium reading device 554 and stored in the memory 552 or the storage device 558. As the recording medium 557, a flexible disk, a CD-ROM, a DVD-ROM, a DVD-RAM, a semiconductor memory, or the like can be used. Note that the program 552A can be a program for operating the management terminal 550, a program for maintaining and managing the computer 500, and a program for maintaining and managing the storage device 300. . Further, the program may be a program installed in the computer 500. The recording medium reading device 554 may be built in the management terminal 550 or may be provided externally. The storage device 558 is, for example, a hard disk device, a flexible disk device, a semiconductor storage device, or the like. The input device 555 is used for data input to the management terminal 550 by an operator or the like. As the input device 555, for example, a keyboard, a mouse, or the like is used. The output device 556 is a device for outputting information to the outside. As the output device 556, for example, a display or a printer is used. The port 553 is connected to the I / F 530 of the computer 500, so that the management terminal 550 can communicate with the computer 500. The port 553 can be connected to the network 400 or can be connected to a telephone line.
[0026]
=== Information processing device ===
The information processing device 200 is a computer including a CPU and a memory. Various functions are realized by executing various programs by the CPU included in the information processing device 200. For example, the information processing apparatus 200 receives an operation input from a user and transmits a data input / output request to the computer 500. For example, a cash withdrawal request from a depositor operating the information processing apparatus 200 is accepted, and a data update request of the deposit management database is transmitted to the computer 500. The information processing device 200 can be, for example, a personal computer or a workstation.
[0027]
FIG. 2 is a block diagram illustrating a configuration of the information processing apparatus 200.
The information processing device 200 includes a CPU 201, a memory 202, a port 203, a recording medium reading device 204, an input device 205, an output device 206, and a storage device 208.
[0028]
The CPU 201 controls the overall operation of the information processing apparatus 200, and realizes various functions by executing a program 202A stored in the memory 202. The recording medium reading device 204 is a device for reading a program or data recorded on the recording medium 207. The read programs and data are stored in the memory 202 and the storage device 208. Therefore, for example, the program 202A recorded on the recording medium 207 can be read from the recording medium 207 using the recording medium reading device 204 and stored in the memory 202 or the storage device 208. As the recording medium 207, a flexible disk, a CD-ROM, a DVD-ROM, a semiconductor memory, or the like can be used. The program 202A can be a program for operating the information processing apparatus 200, and can also be a program for maintaining and managing the computer 500 and a program for maintaining and managing the storage device 300. it can. Further, the program may be a program installed in the computer 500. The recording medium reading device 204 may be built in the information processing device 200 or may be externally attached. The storage device 208 is, for example, a hard disk device, a flexible disk device, a semiconductor storage device, or the like. The input device 205 is used for data input to the information processing device 200 by an operator or the like. For example, the input device 205 is used to input the information processing device number used when associating each information processing device 200 with the LU 310. As the input device 205, for example, a keyboard, a mouse, or the like is used. The output device 206 is a device for outputting information to the outside. As the output device 206, for example, a display or a printer is used. The port 203 is a device for communicating with the computer 500. It can also be used to communicate with another information processing device 200. In this case, for example, the program 202A may be received from another information processing device 200 via the port 203 and stored in the memory 202 or the storage device 208.
[0029]
=== Table stored in computer memory ===
As described above, the computer 500 receives a data input / output request from the information processing apparatus 200 and performs input / output processing of data stored in the storage device 300. For this reason, the computer 500 manages the storage location of data, adjusts when there is a data input / output request from a plurality of information processing devices 200, and manages the association between the LU 310 and the information processing device 200. . For these managements, the computer 500 stores various tables such as the physical disk management table 162A, LU management table 162B, data management table 730, lock table 720, and mapping information table 750 in the memory 520 as shown in FIG. ing.
[0030]
=== Physical disk management table ===
The physical disk management table 162A is a table for managing a disk drive (physical disk) 320 provided in the storage device 300. FIG. 4 shows the physical disk management table 162A. FIG. 4 shows disk numbers # 001 to # 006 among many disk drives 320 included in the storage device 300. For each disk drive 320, a physical disk number, storage capacity, RAID configuration, and usage status are shown.
[0031]
=== LU management table ===
The LU management table 162B is a table for managing the LU 310 logically set on the disk drive 320. FIG. 5 shows the LU management table 162B. FIG. 5 shows LU numbers # 1 to # 3 among a number of LUs 310 set on the storage device 300. For each LU 310, a physical disk number, storage capacity, and RAID configuration are shown.
[0032]
=== Data management table ===
The data management table 730 is a table for managing storage locations and the like of data stored in the storage device 300. The data management table 730 includes a block No. column, a data name column, an LU number column, an address column, a capacity column, an owner column, an update time column, an update status column, and a next block column. The data storage position is specified by these pieces of information.
[0033]
Block No. The column indicates a number assigned to each access unit of data stored on the disk drive 320 or the LU 310. Each block has a predetermined storage size, and one data may be composed of a plurality of blocks. For example, the data “AAA” in FIG. It is composed of four blocks 1 to 4. The data “BBB” is the block No. 5, one block.
[0034]
The data name column shows a name for specifying data assigned to each data. The data name is input from the input device 205 by a user operating the information processing device 200, for example, and transmitted from the information processing device 200 to the computer 500. The data name may be a name automatically given by the CPU (201, 510) of the information processing device 200 or the computer 500.
[0035]
The LU number column indicates the number of the LU 310 in which data is stored. When one data is composed of a plurality of blocks, it can be stored in a different LU 310 for each block. For example, in the data “AAA” shown in FIG. 6, LU1 (310) and LU2 (310) are mixed. Note that one piece of data can always be composed of blocks in the same LU.
[0036]
The address column indicates the position of each block of the data. Thereby, the computer 500 can know the storage position of the data stored in the storage device 300 in response to the data input / output request from the information processing apparatus 200, and can access the data on the storage device 300. Become.
[0037]
The capacity column indicates the size of the data. In the example of FIG. 6, the size of the data “AAA” is 1300 kilobytes (“k” represents kilo), and the size of the data “BBB” is 250 kilobytes.
[0038]
The owner column indicates the creator of the data. The creator of the data may be a user or an operator who operates the information processing device 200 or the management terminal 550, or may be the computer 500.
[0039]
The update time column indicates the update time or creation time of the data.
[0040]
The update status column indicates the update status of the data in units of blocks. A block in which "@" is described indicates that the block is being updated. Therefore, access from the information processing device 200 to the block in which "@" is described is prohibited. In the example shown in FIG. “△” is described in 2 and 3, which indicates that these blocks are being updated. Although details will be described later, in this case, the block No. 2 to the block No. 3 shows that data is being copied. A block in which “○” is described indicates that access to the block is permitted. A block in which "x" is described indicates that the block is invalid. For example, when an input / output request for deleting certain data is received from the information processing device 200, “×” is described in the update status column of each block configuring the data. As a result, the block described with “x” can be used to store other data. In the example shown in FIG. 6, the data “BBB” corresponds.
[0041]
The next block column is used to manage one data as a connection of a plurality of blocks. In the example of FIG. 6, the data “AAA” is the block No. The next block of No. 1 is No. 1. 2 and the block No. No. 2 follows No. 2. 4 is shown. Block No. "-1" is described in the next block column of No. 4, which means that there is no block connected next. Thus, the data “AAA” is stored in the block No. 1, No. 2 and No. 4 is shown. As described above, in the example of FIG. 2 to the block No. 3, data is copied. When copying is completed, block No. In the update status column of “2”, “×” is described and the block No. In the update status column of “3”, “○” is described. No. 1 is displayed in the next block column. 3 are described. Thus, the data “AAA” is stored in the block No. 1, No. 3 and No. 4 data.
[0042]
=== Lock Table ===
The lock table 720 is a table for performing exclusive control on a data input / output request from the information processing device 200. By performing exclusive control, contention for data access from a plurality of information processing apparatuses 200 can be avoided. Thus, data can be shared by a plurality of information processing apparatuses 200. The lock table 720 is shown in FIG. As shown in FIG. 7, the lock table 720 includes a data lock table 721 and an LU lock table 722. The data lock table 721 is a table for indicating whether or not data is locked. When any data is opened by any of the information processing devices 200, the data is locked. Access to the locked data by another information processing device 200 is prohibited. The LU lock table 722 is a table for indicating whether or not each LU 310 is locked. When an LU 310 is accessed by any one of the information processing apparatuses 200, the LU 310 is locked. Access to the locked LU 310 by another information processing device 200 is prohibited.
[0043]
=== Mapping information table ===
The mapping information table 750 is a table for managing the association between the information processing device 200 and the LU 310 (association information between the information processing device and the storage volume). The mapping information table 750 includes a minimum client number column, a maximum client number column, and a storage LU column. The information processing device numbers assigned to the information processing devices 200 are described in the minimum client number column and the maximum client number column. If the same information processing device number is described in the minimum client number column and the maximum client number column, it is also possible to specify only a specific information processing device 200. An information processing device group having information processing device numbers from the client number described in the minimum client number column to the client number described in the maximum client number column is called a client group. For example, the client group can be provided for each department in the company, or can be provided for each company.
[0044]
In the storage LU column, an LU 310 assigned to the information processing device 200 for each client group is described. A plurality of LUs 310 may be assigned. In the example of FIG. 8, n (n is a natural number of 1 or more) LU 310 can be allocated. Here, n can be a fixed natural number or a natural number that dynamically changes at the time of assignment. Further, n may be a natural number different for each client group. In the example shown in FIG. 8, the LU1 (310) is associated with the client group including the information processing apparatuses 1 to 10. LU1 (310) is also associated with a client group including information processing devices 11 to 20. LU2 (310) is associated with the client group including the information processing devices 21 to 30. Accordingly, the information processing apparatuses 1 to 20 mainly perform data access to the LU1 (310), and the information processing apparatuses 21 to 30 mainly perform data access to the LU2 (310).
[0045]
When the content of the mapping information table 750 is updated, the assignment of the LU 310 accessible from the information processing device 200 can be changed. The mapping information table 750 is updated, for example, when accesses from a plurality of information processing apparatuses 200 to a specific LU 310 are concentrated, or the remaining storage capacity of the LU 310 commonly used by the plurality of information processing apparatuses 200 decreases. It is performed when it is done. Thus, the storage area provided by the storage device 300 can be used efficiently. In addition, it is possible to avoid a decrease in data input / output performance due to a concentration of data access to a specific LU 310, and to improve data input / output performance as a whole system.
[0046]
Updating of the mapping information table 750 can be performed from the management terminal 550 or the information processing device 200. The updating of the mapping information table 750 can be performed while the data input / output request from the information processing device 200 to the computer 500 is continued.
[0047]
When the computer 500 receives the data input / output request from the information processing device 200, the computer 500 performs input / output processing of the data stored in the LU 310, but the correspondence between the information processing device 200 and the LU 310 described in the mapping information table 750. According to the attachment, the data is controlled to be moved to the LU 310 associated with the information processing apparatus 200.
[0048]
=== Overview of data input / output processing ===
When computer 500 according to the present embodiment receives a data input / output request from information processing apparatus 200, CPU 510 uses mapping information table 750 to store data stored in LU 310 set on storage device 300. Is moved to the LU 310 associated with the information processing apparatus 200. That is, the CPU 510 functions as a unit that controls data stored in the LU 310 to move to the LU 310 associated with the information processing device 200. An outline of the control will be described with reference to FIG.
[0049]
In FIG. 10, three information processing apparatuses 200 are connected to a computer 500 via a network 400, and two LUs 310, namely, LU1 (310) and LU2 (310) are set on the storage device 300. Is shown. In addition, according to the mapping information table 750 stored in the memory 520 of the computer 500, the LU1 (310) is associated with the information processing apparatus 200 of the client numbers (information processing apparatus numbers) 1 to 10, and the client numbers 11 to The LU2 (310) is associated with the 20 information processing apparatuses 200. The client number 10 is set in the information processing device 1 (200), the client number 15 is set in the information processing device 2 (200), and the client number 20 is set in the information processing device 3 (200). Is set. In such a situation, the data input / output processing for the data input / output request from the information processing device 1 (200), that is, the information processing device 200 of the client number 10 is controlled as follows.
[0050]
=== Writing new data ===
First, when the data input / output request from the information processing device 1 (200) is a write request for new data, the new data is written to the LU 1 according to the mapping information table 750. In FIG. 10, an arrow indicating “addition” is as shown.
[0051]
That is, when the CPU 510 of the computer 500 determines that the data input / output request received from the information processing device 1 (200) is a write request for new data, the CPU 510 first refers to the mapping information table 750 to allocate the data to the information processing device 200. The specified LU 310 is specified. Then, the data is written to the specified LU 310. That is, the CPU 510 functions as a unit that writes data to the LU 310 associated with the information processing device. In addition, data is written, and predetermined information for specifying the storage location of the data is recorded in the data management table 730 as shown in FIG. That is, the CPU 510 also functions as a unit that stores information for specifying the storage position of the data written in the LU 310 associated with the information processing device 200 in the data management table 730. When a plurality of LUs 310 are assigned to the information processing apparatus 200, data is written to one LU 310 selected from the LUs 310. The selection of the LU 310 can be performed by any algorithm.
[0052]
As described above, the new data from the information processing apparatus 200 is written into the LU 310 associated with each information processing apparatus 200 by the mapping information table 750, so that the data on the storage device 300 is gradually stored in the mapping information table 750. Can be controlled to be moved to the LU 310 according to the association of
[0053]
=== Write update data ===
Next, when the data input / output request from the information processing device 1 (200) is a request for updating the data stored in the LU2 (310) (a request for writing the updated data), first the LU2 (310) The data is updated. Then, the data stored in the updated LU2 (310) is moved to LU1 (310). The transfer is performed by copying the data stored in the LU2 (310) to the LU1 (310), and then invalidating the original data stored in the LU2 (310). This is as indicated by the arrow labeled "Update" in FIG.
[0054]
That is, when the CPU 510 of the computer 500 determines that the data input / output request received from the information processing apparatus 1 (200) is a write request for update data, the CPU 510 first updates data on the storage device 300 according to the input / output request. At the same time as updating the data, predetermined information relating to the data is also updated in the data management table 730 shown in FIG. Subsequently, the LU 310 assigned to the information processing apparatus 200 is specified with reference to the mapping information table 750. Then, the data is copied to the specified LU 310. That is, the CPU 510 functions as a unit that writes data to the LU 310 associated with the information processing device. At the time of data copying, predetermined information for specifying the storage location of the data at the copy destination is added to the data management table 730, and "@" is described in the update status column for each data at the copy destination and the copy source. . That is, the CPU 510 also functions as a unit that stores information for specifying the storage position of the data written in the LU 310 associated with the information processing device 200 in the data management table 730. The update state column of the data management table 730 shown in FIG. 6 is described so that the update state can be described for each block, and is described on the assumption that data can be copied in block units. However, copying may be performed not in units of blocks but in units of data, and the update state column may be configured to describe the state in units of data. When the copy of the update data from the LU2 (310) to the LU1 (310) is completed, “に は” is described in the update state column of the data management table 730 regarding the data (copy destination data) of the LU1 (310), and the LU2 “×” is described in the update state column of the data management table 730 relating to the data (copy source data) of (310). When a plurality of LUs 310 are assigned to the information processing apparatus 1 (200), the data is copied to one LU 310 selected from the LUs 310. The selection of the LU 310 can be performed by any algorithm.
[0055]
As described above, the data updated by the information processing device 200 is written into the LU 310 associated with each information processing device 200 by the mapping information table 750, so that the data on the storage device 300 is gradually stored in the mapping information table. 750 can be controlled so as to be moved to the LU 310 according to the association of 750.
[0056]
In the example described above, the update data from the information processing device 1 (200) is written to the LU2 (310) and then moved from the LU2 (310) to the LU1 (310). (310). In this case, when the CPU 510 of the computer 500 determines that the data input / output request received from the information processing device 1 (200) is a write request for update data, the CPU 510 first refers to the mapping information table 750 and The LU 310 (LU1) assigned to the server 200 is specified. Then, the update data is written to the specified LU 310. Then, predetermined information relating to the update data is added to the data management table 730, and the update status column relating to the data before update stored in the original LU (LU2) 310 is set to “x”.
[0057]
=== Reading data ===
Next, when the data input / output request from the information processing device 1 (200) is a request to read data recorded in the LU2 (310), the data is read from the storage position recorded in the data management table 730. Is read. In FIG. 10, the arrow described as “reference” is as shown.
[0058]
That is, when the CPU 510 of the computer 500 determines that the data input / output request received from the information processing device 1 (200) is a data read request, the mapping information table 750 is not looked at, and the data Find the storage address of and go to read. The reason why data is not moved at the time of reading is that the access time may be delayed due to processing overhead for the movement.
[0059]
However, when the delay of the access time due to the processing overhead for the movement does not matter, the data may be moved according to the mapping information table 750 even when the data is read. In this case, when the CPU 510 of the computer 500 determines that the data input / output request received from the information processing apparatus 1 (200) is a data read request, the CPU 510 reads data from the storage device 300 in accordance with the input / output request. I do. Subsequently, the LU 310 assigned to the information processing apparatus 200 is specified with reference to the mapping information table 750. Then, the data is copied to the specified LU 310. That is, the CPU 510 functions as a unit that writes data to the LU 310 associated with the information processing device. At the time of data copying, predetermined information for specifying the storage location of the data at the copy destination is added to the data management table 730, and "@" is described in the update status column for each data at the copy destination and the copy source. . That is, the CPU 510 also functions as a unit that stores information for specifying the storage position of the data written in the LU 310 associated with the information processing device 200 in the data management table 730. When the copying of the data from the LU2 (310) to the LU1 (310) is completed, “○” is described in the update state column of the data management table 730 relating to the data (copy destination data) of the LU1 (310), and LU2 ( In the update state column of the data management table 730 regarding the data (copy source data) 310), “×” is described. When a plurality of LUs 310 are assigned to the information processing apparatus 1 (200), the data is copied to one LU 310 selected from the LUs 310. The selection of the LU 310 can be performed by any algorithm.
[0060]
As described above, even when data is read, the data stored in the storage device 300 is written to the LU 310 associated with each information processing device 200 by the mapping information table 750, so that the storage device 300 Can be controlled so as to be gradually moved to the LU 310 according to the correspondence of the mapping information table 750.
[0061]
=== I / O command ===
Next, FIG. 11 is a block diagram showing commands used when performing input / output processing according to the present embodiment.
[0062]
=== Data read command ===
When the input / output request transmitted from the information processing device 200 is a reference request (data reading), the input / output request transmitted from the information processing device 200 is, as shown in FIG. It has a type column and a reference key column. The client number column describes the client number of the information processing apparatus 200 that has transmitted the input / output request. The I / O type column describes that the input / output request is a reference request. The data name of the data to be referred to is described in the reference key column. In the reference key column, the storage address of the data to be referred to may be described.
[0063]
=== Update data write command ===
When the input / output request transmitted from the information processing device 200 is an update request (write of update data), the input / output request transmitted from the information processing device 200 includes, among the items shown in FIG. It has a / O type column, a reference key column, and an updated data column. The storage LU number column is a column added by the computer 500 after the computer 500 refers to the mapping information table 750 to identify the LU 310 associated with the information processing device 200. The client number column describes the client number of the information processing apparatus 200 that has transmitted the input / output request. The I / O type column describes that the input / output request is an update request. The data name of the data to be referred to is described in the reference key column. In the reference key column, the storage address of the data to be referred to may be described. The data updated by the information processing device 200 is stored in the post-update data column. The data stored in the post-update data column may be the entire data, or may be only the updated block of the entire data. In the latter case, information for specifying the updated block is also described in the reference key column.
[0064]
=== New data write command ===
When the input / output request transmitted from the information processing device 200 is an addition request (writing of new data), the input / output request transmitted from the information processing device 200 is a client number column, an I / O request, among the items shown in FIG. 11C. It has a / O type column and an additional data column. The storage LU number column is a column added by the computer 500 after the computer 500 refers to the mapping information table 750 to identify the LU 310 associated with the information processing device 200. The client number column describes the client number of the information processing apparatus 200 that has transmitted the input / output request. The I / O type column describes that the input / output request is an addition request. The newly created data is stored in the additional data column.
[0065]
Since the client number is described in the input / output request as described above, the computer 500 can specify the information processing apparatus 200 that has transmitted the input / output request. Then, the LU 310 associated with the information processing apparatus 200 can be specified by referring to the mapping information table 750. This makes it possible to control the data that is the target of the input / output request to be moved to the LU 310 associated with the information processing device 200.
[0066]
=== Functional block of information processing device ===
Next, FIG. 12 is a block diagram illustrating functions of the information processing apparatus 200 according to the present embodiment.
As shown in FIG. 12, the information processing device 200 has a client number setting unit and an I / O request unit.
[0067]
The client number setting unit has a function of setting a client number for specifying the information processing device 200 associated with the LU 310 from the mapping information table 750. The client number setting section includes a client number input section and a client information storage section.
The client number input unit has a function of receiving a number input by an operator or the like from the input device 205 of the information processing device 200. The client information storage unit has a function of storing the captured client number in the memory 202 or the storage device 208.
[0068]
FIG. 16 shows an example of how the client number is set in the information processing apparatus 200. That is, the client number setting window shown in FIG. 16 is displayed on the output device 206 such as a display device included in the information processing device 200. The operator or user operating the information processing apparatus 200 inputs the client number in the client number field using the input device 205 such as a mouse or a keyboard, and clicks an OK button. Thereby, the client number is taken into the information processing apparatus 200 and stored in the memory 202 or the like.
[0069]
Note that the client number setting unit can be realized by the program 202A executed by the information processing apparatus 200, or when the program 520A executed by the computer 500 has a function as a Web server, 500 can be realized through a Web page displayed on the output device 206 of the information processing device 200.
[0070]
The I / O request unit has a function of transmitting an input / output request to the computer 500. The I / O request unit includes an I / O information reception unit, an I / O information addition unit, a client information addition unit, and an I / O request transfer unit.
The I / O information receiving unit has a function of receiving a data write or read request from the program 202A or the like executed by the information processing device 200. The request includes a reference key such as a data name. In the case of data writing, data to be written is also included. The I / O information adding unit adds an I / O type, for example, “reference”, “update”, or “add” to the data or the reference key. The client information adding unit has a function of adding a client number. Since the client number is set by the client number setting unit, it can be obtained by reading from the memory 202 or the like. Thereby, an input / output request to be transmitted to the computer 500 is generated. The I / O request transfer unit has a function of transmitting the input / output request to the computer 500.
[0071]
=== Computer functional blocks ===
Next, FIG. 13 is a block diagram showing functions in computer 500 according to the present embodiment.
As shown in FIG. 13, the computer 500 has a client LU information setting unit and an LU specifying unit.
The client LU information setting unit has a function for setting the mapping information table 750. The client LU information setting unit includes a client group-LU correspondence input unit and a mapping information table creation / update unit.
The client group-LU correspondence input unit has a function of importing mapping information input by an operator or the like from the input device 555 of the management terminal 550 or the like. The mapping information table creation / update unit has a function of storing the acquired mapping information in the memory 520.
[0072]
FIG. 15 shows an example of how the mapping information table 750 is set in the computer 500. That is, the client group setting window shown in FIG. 15 is displayed on the output device 556 such as a display device provided in the management terminal 550. The operator who operates the management terminal 550 inputs the LU number and the client number in the LU column and the client group column using the input device 555 such as a mouse or a keyboard. Thereby, the assignment of the LU 310 to the information processing device 200 can be designated. In the example illustrated in FIG. 15, the client group of the client numbers 1 to 10 is associated with the client group of the client numbers 21 to 30 for LU1, and the client group of the client numbers 11 to 20 is associated with the LU2. Groups are associated. When the OK button is clicked, these pieces of mapping information (data specifying the assignment of LU 310 to information processing device 200) are transmitted from management terminal 550 to computer 500. The client group-LU correspondence input unit of the computer 500 receives the transmitted mapping information. Then, the mapping information table 750 stored in the memory 520 is updated by the mapping information table creating / updating unit.
[0073]
Clicking the detailed setting button displays a detailed setting window as shown in FIG. Several option settings can be made in the detailed setting window. As shown in FIG. 15, an option can be selected by clicking a check box with a mouse or the like. In the example shown in FIG. 15, the "move data in block units" option is selected. The setting of the mapping information table 750 can be performed by the information processing device 200 in addition to the case of performing the setting from the management terminal 550.
[0074]
By setting the mapping information table 750 as described above, when there is a data input / output request from the information processing device 200, the data on the storage device 300 is moved to the LU 310 associated with the information processing device 200. The control is performed as follows. This control can be started immediately after setting the mapping information table 750, or can be started when a predetermined condition is satisfied. As the predetermined condition in the latter case, for example, the frequency of a data input / output request to a certain LU 310 may exceed a predetermined value, or a predetermined time may elapse.
[0075]
The LU specifying unit has a function of specifying the LU by referring to the mapping information table 750 based on the input / output request received from the information processing device 200. The LU identification unit includes an I / O type distribution unit, a mapping information reference LU identification unit, a data status flag update unit, and an I / O request unit.
[0076]
The I / O type distribution unit specifies the type of the input / output request based on the I / O type column of the input / output request received from the information processing device 200. The mapping information reference LU specifying unit specifies the corresponding LU 310 by referring to the mapping information table 750 based on the client number field of the input / output request received from the information processing device 200. Then, the specified LU number is added to the input / output request. The data status flag updating unit updates the update status column of the data management table 730. For example, when the I / O type is write of update data, the update status column of the data is updated from “○” to “△”. This makes it impossible to access the data from another information processing apparatus 200. The I / O request unit transmits an input / output request specifying the LU number to the storage device 300.
[0077]
=== Functional block of storage device ===
Next, FIG. 14 is a block diagram illustrating functions of the storage device 300 according to the present embodiment.
As shown in FIG. 14, the storage device 300 has an I / O unit. The I / O unit has a function of performing data access to the LU 310 based on a data input / output command transmitted from the computer 500.
The I / O unit includes a storage LU search unit and an I / O unit. The storage LU search unit specifies the corresponding LU 310 based on the storage LU number added to the data input / output command transmitted from the computer 500. The I / O unit inputs and outputs data to and from the LU 310.
[0078]
=== Processing Flow in Information Processing Device ===
Next, FIG. 17 is a flowchart illustrating a flow of processing executed in information processing apparatus 200 according to the present embodiment. Note that the following processing is realized by the CPU 201 executing a program 202A including codes for performing various operations according to the present embodiment.
[0079]
First, the information processing apparatus 200 determines whether to set a client number (S1000). When the client number is set, the process proceeds to “Y”, and the client number is set by the client number setting unit shown in FIG. That is, first, an input of a client number is received (S1001), and the received client number is stored in the memory 202 (S1002).
If the client number is not set in S1000, the process proceeds to “N”, and proceeds to the process of receiving a user I / O request by the I / O request unit shown in FIG. 12 (S1003). That is, when receiving the I / O request (S1003), the information processing apparatus 200 adds the I / O type and the client number (S1004), and transmits a data input / output request to the computer 500 (S1005). In the case of a data reference request, data is received from the computer 500 (S1006).
[0080]
=== Processing Flow in Computer ===
Next, FIG. 18 is a flowchart showing the flow of processing executed by the computer according to the present embodiment. Note that the following processing is realized by the CPU 510 executing a program 520A composed of codes for performing various operations according to the present embodiment.
[0081]
First, the computer 500 determines whether to set a client group (S2000). When setting a client group, the process proceeds to “Y”, and the client LU information setting unit shown in FIG. 13 sets the client group. That is, first, input of mapping information in which a client group is associated with an LU is received (S2001), and the received mapping information is stored in the memory 520 (S2002).
When the client group is not set in S2000, the process proceeds to “N”, and the process proceeds to a process of receiving an input / output request from the information processing device 200 by the LU specifying unit illustrated in FIG. 13 (S2003).
[0082]
When an input / output request is received from the information processing device 200 (S2003), first, the I / O type is determined (S2004). If the I / O type is an update data write request, the process proceeds to S2005, where the LU 310 is specified with reference to the mapping information table 750 (S2005). Subsequently, an area for writing a copy of the data is secured on the LU 310 specified by the mapping information table 750, and the data management table 730 is also updated to manage the copy destination data. Then, the update status column for the copy source data and the copy destination data is set to “$” (S2006). Thereafter, the copy source data is rewritten to the update data (S2007), and then the data is written to the copy destination LU (S2008). When the copying is completed, the update status column for the copy destination data in the data management table 730 is set to “○”, and the update status column for the copy source data is set to “×” (S2009).
[0083]
On the other hand, if the I / O type is a new data write request in S2004, the process proceeds from S2010 to S2011, where the LU 310 is specified with reference to the mapping information table 750 (S2011). Subsequently, an area for writing data is secured on the LU 310 specified by the mapping information table 750, and the data management table 730 is updated. The update status column of the data management table 730 is set to “$” (S2012). Thereafter, new data is written to the LU 310 (S2013). When the writing is completed, the update status column for the data in the data management table 730 is set to “○” (S2014).
If the I / O type is a data read request in S2004, the process proceeds from S2010 to S2015. Then, the data is read from the storage device 300 according to the storage address of the data described in the data management table 730 (S2017). Then, the read data is transmitted to the information processing device 200 (S2018).
[0084]
If the input / output request received from the information processing device 200 is neither “write of update data”, “write of new data” nor “read of data”, the process proceeds to “N” in S2015, and Predetermined error processing is performed (S2016).
[0085]
Thus, as described in the present embodiment, when there is a data input / output request from the information processing apparatus 200 to the computer 500, the data stored in the LU 310 of the storage device 300 is stored in the mapping information table. Control is performed so as to move to the LU 310 specified by 750. Thereby, it is possible to control the data on the storage device 300 to be moved to the LU 310 according to the association of the mapping information table 750. Accordingly, when data access to a specific LU 310 is concentrated, or when the remaining storage capacity of a certain LU 310 is reduced, the data input / output request from the information processing apparatus 200 is kept on the storage device 300. Can be gradually moved to the LU 310 according to the correspondence of the mapping information table 750, so that the storage area provided by the storage device 300 can be used efficiently. In addition, concentration of data access to a specific LU 310 can be avoided, and data input / output performance of the entire system can be improved.
[0086]
Furthermore, since data movement is performed when there is access from the information processing apparatus 200, there is an advantage that the processing overhead generated at the time of data movement has little effect on the input / output performance of the storage device 300. Further, unnecessary processing such as moving data that may not be accessed from the information processing device 200 in the future can be avoided.
[0087]
Further, data movement according to the present embodiment is performed by CPU 510 by referring to mapping information table 750 when an input / output request is received from information processing device 200, and thus is used to change device management information of the operating system. It is not necessary to stop the system immediately or to failover the data input / output processing to the redundant system. This makes it possible to decentralize LUs to be accessed for each client group arbitrarily specified by the user even in a system that is required to operate 24 hours a day, 365 days a day, and to construct a high-performance and highly available information processing system. Becomes possible.
[0088]
<Second embodiment>
=== Overall configuration example ===
First, FIG. 19 is a block diagram showing the overall configuration of a storage system including the data input / output device according to the present embodiment.
The storage system 600 includes a storage device control device (data input / output device) 100 and a storage device 300. The storage device control device 100 receives a data input / output request (hereinafter, referred to as a file access request) by designating a file name from the information processing device 200, and performs a process for inputting / outputting data stored in the storage device 300. Do. The data is stored in a logical volume (Logical Unit, hereinafter referred to as LU) which is a storage area logically set on a physical storage area provided by a disk drive 320 provided in the storage device 300. The storage device control device 100 also exchanges various commands for managing the storage system 600 with the information processing device 200.
[0089]
The information processing device 200 is a computer including a CPU and a memory, and is the same as that described in the first embodiment. The setting of the client number is performed in the same manner as in the first embodiment.
19, the information processing device 200 is connected to the storage device control device 100 via the LAN 400. LAN 400 can be the Internet or a dedicated network. Communication between the information processing device 200 and the storage device control device 100 performed via the LAN 400 is performed according to, for example, a TCP / IP protocol.
[0090]
The storage device control device 100 includes a channel control unit 110. The channel control unit 110 individually receives a file access request from the information processing device 200. That is, a network address (for example, an IP address) on the LAN 400 is individually assigned to the channel control unit 110, and each of them acts individually as a NAS, and it is as if each NAS has an independent NAS. Can be provided to the information processing apparatus 200. Hereinafter, the channel control unit 110 is also referred to as a CHN 110.
[0091]
Note that the connection between the information processing device 200 and the storage device control device 100 may be a SAN (Storage Area Network) instead of the LAN 400. In this case, communication is performed between the information processing apparatus 200 and the storage device control apparatus 100 according to, for example, a fiber channel protocol, and data is transmitted and received in units of blocks that are data management units in a storage area provided by the storage device 300. Is performed.
[0092]
=== Storage device ===
The storage device 300 includes a large number of disk drives 320 and provides a storage area to the information processing device 200. The storage device 300 is the same as that described in the first embodiment.
[0093]
=== Storage Device Controller ===
The storage device control device 100 includes a channel control unit 110, a shared memory 120, a cache memory 130, a disk control unit 140, a management terminal 160, and a connection unit 150.
[0094]
The channel control unit 110 includes a communication interface for communicating with the information processing device 200, and has a function of transmitting and receiving data input / output commands and the like to and from the information processing device 200. For example, the CHN 110 receives a file access request from the information processing apparatuses 1 to 5 (200). Then, the storage device 300 is accessed by obtaining an I / O request corresponding to the file access request by obtaining the storage address and data length of the file. Thereby, the storage system 600 can provide the service as the NAS to the information processing apparatuses 1 to 5 (200). The I / O request includes a data start address, a data length, and a type of access such as reading or writing. In the case of writing data, the I / O request may include write data. The output of the I / O request is performed by an I / O processor 119 described later.
[0095]
Each channel control unit 110 is connected to the management terminal 160 via an internal LAN 151. As a result, a microprogram or the like to be executed by the channel control unit 110 can be transmitted from the management terminal 160 and installed. The configuration of the channel control unit 110 will be described later.
[0096]
The connection unit 150 connects the channel control unit 110, the shared memory 120, the cache memory 130, and the disk control unit 140 to each other.
The shared memory 120 and the cache memory 130 are storage memories shared by the channel control unit 110 and the disk control unit 140. The shared memory 120 is mainly used for storing control information and commands, while the cache memory 130 is mainly used for storing data.
[0097]
For example, when a data input / output command received by a certain channel control unit 110 from the information processing device 200 is a write command, the channel control unit 110 writes the write command into the shared memory 120 and The received write data is written to the cache memory 130. On the other hand, the disk control unit 140 monitors the shared memory 120, and when detecting that a write command has been written to the shared memory 120, reads the write data from the cache memory 130 and writes it to the storage device 300 according to the command.
[0098]
It should be noted that, in addition to the configuration in which the instructions of writing and reading data from the channel control unit 110 to the disk control unit 140 are indirectly provided through the shared memory 120, for example, the channel control unit 110 It is also possible to adopt a configuration in which data writing and reading instructions are performed directly without passing through the shared memory 120.
[0099]
The disk control unit 140 controls the storage device 300. For example, as described above, the channel control unit 110 writes data to the storage device 300 according to the data write command received from the information processing device 200. Further, it converts the data access request to the LU 310 specified by the logical address transmitted by the channel control unit 110 into a data access request to the physical disk by specifying the physical address. When a physical disk in the storage device 300 is managed by RAID, data access is performed according to a RAID configuration (for example, RAID 0, 1, 5).
[0100]
Each disk control unit 140 is connected to the management terminal 160 via the internal LAN 151, and can communicate with each other. As a result, a microprogram or the like to be executed by the disk control unit 140 can be transmitted from the management terminal 160 and installed.
[0101]
In the present embodiment, the shared memory 120 and the cache memory 130 are described as being provided independently of the channel control unit 110 and the disk control unit 140, but the present embodiment is not limited to this case. It is also preferable that the shared memory 120 or the cache memory 130 is provided separately in each of the channel control unit 110 and the disk control unit 140. In this case, the connection unit 150 connects the channel control unit 110 and the disk control unit 140 each having a distributed shared memory or cache memory to each other.
[0102]
=== Management terminal ===
The management terminal 160 is a computer for maintaining and managing the storage system 600. By operating the management terminal 160, for example, the setting of the mapping information table 750, the setting of the physical disk configuration in the storage device 300, the setting of the LU, the installation of the microprogram executed in the channel control unit 110, and the like can be performed. it can. These settings and controls are performed by an operator or the like using a Web page provided by a Web server operating on the management terminal 160 as a user interface.
[0103]
The management terminal 160 can be built in the storage device control device 100 or externally attached. The management terminal 160 may be a computer dedicated to maintenance and management of the storage device control device 100 and the storage device 300, or may be a general-purpose computer having a maintenance and management function.
[0104]
FIG. 20 is a block diagram showing the configuration of the management terminal 160.
The management terminal 160 includes a CPU 161, a memory 162, a port 163, a recording medium reading device 164, an input device 165, an output device 166, and a storage device 168.
[0105]
The CPU 161 controls the entire control of the management terminal 160, and realizes the function as the Web server and the like by executing the program 162C stored in the memory 162. The memory 162 stores a physical disk management table 162A, an LU management table 162B, and a program 162C. The physical disk management table 162A and the LU management table 162B are the same as those described in the first embodiment.
[0106]
The recording medium reading device 164 is a device for reading a program or data recorded on the recording medium 167. The read programs and data are stored in the memory 162 and the storage device 168. Therefore, for example, the program 162C recorded on the recording medium 167 can be read from the recording medium 167 using the recording medium reading device 164 and stored in the memory 162 or the storage device 168. As the recording medium 167, a flexible disk, a CD-ROM, a DVD-ROM, a DVD-RAM, a semiconductor memory, or the like can be used.
The program 162C can be a program for operating the management terminal 160, a program for installing the OS 701 and application programs in the channel control unit 110 and the disk control unit 140, and a program for upgrading the version. It can also be. Further, it may be a program to be executed by the CHN 110. The recording medium reading device 164 may be built in the management terminal 160 or may be provided externally.
The storage device 168 is, for example, a hard disk device, a flexible disk device, a semiconductor storage device, or the like. The input device 165 is used for inputting data to the management terminal 160 by an operator or the like. As the input device 165, for example, a keyboard, a mouse, or the like is used. The output device 166 is a device for outputting information to the outside. As the output device 166, for example, a display or a printer is used. The port 163 is connected to the internal LAN 151, so that the management terminal 160 can communicate with the channel control unit 110, the disk control unit 140, and the like. The port 163 can be connected to the LAN 400 or can be connected to a telephone line.
[0107]
=== Channel control unit ===
The storage system 600 according to the present embodiment accepts a file access request from the information processing device 200 via the CHN 110 as described above, and provides a service as a NAS to the information processing device 200.
[0108]
FIG. 21 shows a hardware configuration of the CHN 110. The CHN 110 includes a network interface unit 111, a CPU 112, a memory 113, an input / output control unit 114, an I / O (Input / Output) processor 119, an NVRAM (Non Volatile RAM) 115, a board connection connector 116, and a communication connector 117. I have.
[0109]
The network interface unit 111 includes a communication interface for performing communication with the information processing device 200. In the case of the CHN 110, for example, it receives a file access request transmitted from the information processing device 200 according to the TCP / IP protocol. The communication connector 117 is a connector for communicating with the information processing device 200. The CHN 110 is a connector that can be connected to the LAN 400, and supports, for example, Ethernet (registered trademark).
[0110]
The CPU 112 controls the CHN 110 to function as a NAS board. Further, by executing program 113A according to the present embodiment, control is performed such that LU 310 stored in storage device 300 is moved to LU 310 associated with information processing device 200.
The memory 113 stores various programs and data. For example, the program 113A, the data management table 730, the lock table 720, and the mapping information table 750 shown in FIG. 22 are stored.
The program 113A is composed of codes for performing various operations according to the present embodiment. The control according to the present embodiment is realized by CPU 112 of CHN 110 executing program 113A.
[0111]
The data management table 730 is the same as that shown in FIG. That is, the data management table 730 includes information for specifying the storage location of the file, such as the address and data size on the LU 310 where the data of the file is stored. Further, the data management table 730 may be generated not only for files but also for directories. The data management table 730 is also stored in each LU 310 on the storage device 300.
The lock table 720 is a table for performing exclusive control on file access from the information processing device 200. By performing exclusive control, a file on the storage device 300 can be shared between the plurality of information processing apparatuses 200. The lock table 720 is the same as that shown in FIG.
[0112]
The mapping information table 750 is a table for managing the association between the information processing device 200 and the LU 310 (association information between the information processing device and the storage volume). The mapping information table 750 is the same as that shown in FIG. The setting of the mapping information table 750 can be performed in the same manner as described in the first embodiment. That is, the client group setting window shown in FIG. 15 is displayed on the output device 166 such as a display device provided in the management terminal 160. The operator who operates the management terminal 160 inputs the LU number and the client number in the LU column and the client group column using the input device 165 such as a mouse or a keyboard. When the OK button is clicked, the mapping information is transmitted from the management terminal 160 to the CHN 110. The client group-LU correspondence input unit of the CHN 110 receives the transmitted mapping information. Then, the mapping information table 750 stored in the memory 113 is updated by the mapping information table creation / update unit. Note that, in the second embodiment, the mapping information table 750 can be stored in the shared memory 120.
[0113]
The transmission of the mapping information from the management terminal 160 can be performed for all the CHNs 110 in the storage device controller 100 or can be performed for a specific CHN 110. In the latter case, in the client group setting window displayed on the output device 166 of the management terminal 160, an input field for specifying the CHN 110 to which the mapping information is transmitted is also displayed. In this case, an individual mapping information table 750 can be set for each CHN 110.
[0114]
The input / output control unit 114 exchanges data and commands with the disk control unit 140, the cache memory 130, the shared memory 120, and the management terminal 160. The input / output control unit 114 includes an I / O processor 119 and an NVRAM 115. The I / O processor 119 is composed of, for example, a one-chip microcomputer. The I / O processor 119 controls transmission and reception of the data and commands, and relays communication between the CPU 112 and the disk control unit 140. The NVRAM 115 is a nonvolatile memory that stores a program that controls the I / O processor 119.
[0115]
=== Data Input / Output Processing in Second Embodiment ===
Next, when the CHN 110 according to the present embodiment receives a file access request from the information processing device 200, the data stored on the storage device 300 moves to the LU 310 associated with the information processing device 200. The control performed will be described.
[0116]
=== Writing a new file ===
When receiving a file access request (input / output request) from the information processing device 200, the CPU 112 of the CHN 110 first determines the I / O type. When the I / O type is a request to write a new file, the LU 310 associated with the information processing apparatus 200 is specified by referring to the mapping information table 750 stored in the memory 113. Subsequently, an area for writing a file is secured on the LU 310 specified by the mapping information table 750, and the data management table 730 is updated. The update status column of the data management table 730 is set to “$”. After that, a new file is written to the LU 310. When the writing is completed, the update status column for the file in the data management table 730 is set to “○”.
[0117]
As described above, the new file from the information processing device 200 is written into the LU 310 associated with each information processing device 200 by the mapping information table 750, so that the file on the storage device 300 is gradually stored in the mapping information table 750. Can be controlled to be moved to the LU 310 according to the association of
[0118]
=== Write update data ===
Next, when the I / O type of the input / output request received from the information processing device 200 is a file update / write request, the LU 310 associated with the information processing device 200 is referred to by referring to the mapping information table 750. To identify. Subsequently, an area for writing a copy of the file is secured on the LU 310 specified by the mapping information table 750, and the data management table 730 is also updated to manage the copy destination file. Then, the update status column for the copy source file and the copy destination file is set to “△”. Thereafter, the copy source file is updated, and then the file is written to the copy destination LU 310. When the copy is completed, the update status column for the copy destination file in the data management table 730 is set to “○”, and the update status column for the copy source file is set to “×”.
[0119]
As described above, the file updated by the information processing device 200 is written into the LU 310 associated with each information processing device 200 by the mapping information table 750, so that the file on the storage device 300 is gradually stored in the mapping information table. 750 can be controlled so as to be moved to the LU 310 according to the association of 750.
[0120]
In the above-described example, the update file from the information processing device 200 is written to the original LU 310 and then moved to the LU 310 associated with the mapping information table 750. May be written to the LU 310 associated with the. In this case, when the CPU 112 of the CHN 110 determines that the input / output request received from the information processing device 200 is a file update / write request, the CPU 112 first refers to the mapping information table 750 and allocates the file to the information processing device 200. The specified LU 310 is specified. Then, the update file is written to the specified LU 310. Then, predetermined information on the update file is added to the data management table 730, and the update status column for the file before update stored in the original LU 310 is set to “x”.
[0121]
=== Reading data ===
Next, when the I / O type of the input / output request received from the information processing device 200 is a file read request, the file is read from the storage device 300 according to the storage address of the file described in the data management table 730. Then, the read file is transmitted to the information processing device 200.
[0122]
As described above, also in the present embodiment, when there is a possibility that the access time is delayed due to the processing overhead for moving the file, the CPU 112 of the CHN 110 determines whether the input / output request received from the information processing apparatus 200 reads the file. If it is determined that the request is a request, the storage address of the file may be obtained from the data management table 730 without going to the mapping information table 750 to read the data.
[0123]
However, when the access time delay due to the processing overhead for the movement does not cause a problem, the file may be moved according to the mapping information table 750 even when the file is read. In this case, if the CPU 112 of the CHN 110 determines that the input / output request received from the information processing device 200 is a file read request, the CPU 112 first reads the file on the storage device 300 according to the input / output request. Subsequently, the LU 310 assigned to the information processing apparatus 200 is specified with reference to the mapping information table 750. Then, the file is copied to the specified LU 310. At the time of copying a file, predetermined information about the file at the copy destination is added to the data management table 730, and "@" is described in the update status column for each file at the copy destination and the copy source. When the copying of the file is completed, “○” is described in the update state column of the data management table 730 regarding the copy destination file, and “×” is described in the update state column of the data management table 730 regarding the copy source file. .
[0124]
As described above, even when the file is read, the file stored in the storage device 300 is written into the LU 310 associated with each information processing device 200 by the mapping information table 750, so that the storage device 300 Can be controlled to be gradually moved to the LU 310 according to the correspondence of the mapping information table 750.
[0125]
As described in the present embodiment, when there is a file access request from the information processing device 200 to the storage device control device 100, the file stored in the LU 310 of the storage device 300 is determined by the mapping information table 750. Control is performed to move to the specified LU 310. Thereby, it is possible to control so that the file on the storage device 300 is gradually moved to the LU 310 according to the association of the mapping information table 750. Accordingly, when file access to a specific LU 310 is concentrated or when the remaining storage capacity of a certain LU 310 decreases, the file access request from the information Since the file can be moved to the LU 310 according to the correspondence of the mapping information table 750, the storage area provided by the storage device 300 can be efficiently used. In addition, it is possible to avoid concentration of file accesses to a specific LU 310 and improve input / output performance of the entire system.
[0126]
Further, since the file is moved when the information processing apparatus 200 accesses the file, there is an advantage that the processing overhead generated at the time of moving the file has less influence on the input / output performance of the storage device 300. Further, unnecessary processing such as moving a file which may not be accessed from the information processing apparatus 200 in the future can be avoided.
[0127]
In addition, the movement of the file according to the present embodiment is performed by the CPU 112 referring to the mapping information table 750 when there is an input / output request from the information processing device 200, so that the device management information of the operating system is changed. It is not necessary to stop the system immediately or to fail over the file input / output processing to the redundant system. This makes it possible to decentralize the LU 310 accessed for each client group arbitrarily specified by the user even in a system that is required to operate 24 hours a day, 365 days a year, and to construct a high-performance and highly available information processing system. Becomes possible.
[0128]
Although the present embodiment has been described above, the above embodiment is for the purpose of facilitating the understanding of the present invention, and is not intended to limit and interpret the present invention. The present invention can be changed and improved without departing from the spirit thereof, and the present invention also includes equivalents thereof.
[0129]
【The invention's effect】
A program and a data input / output device can be provided.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an overall configuration of an information processing system according to the present embodiment.
FIG. 2 is a block diagram illustrating a configuration of an information processing apparatus according to the present embodiment.
FIG. 3 is a diagram for explaining the contents of a table stored in a memory according to the present embodiment.
FIG. 4 is a diagram showing a physical disk management table according to the embodiment.
FIG. 5 is a diagram showing an LU management table according to the present embodiment.
FIG. 6 is a diagram showing a storage data management table according to the present embodiment.
FIG. 7 is a diagram showing a lock table according to the present embodiment.
FIG. 8 is a diagram showing a mapping information table according to the present embodiment.
FIG. 9 is a block diagram showing a configuration of a management terminal according to the present embodiment.
FIG. 10 is a block diagram showing how data is moved according to the present embodiment.
FIG. 11 is a block diagram showing an input / output request according to the present embodiment. FIG. 11A shows the case of a reference request. FIG. 11B shows a case of an update request. FIG. 11C shows a case of an addition request.
FIG. 12 is a block diagram illustrating functions of the information processing apparatus according to the present embodiment.
FIG. 13 is a block diagram showing functions in the data input / output device according to the present embodiment.
FIG. 14 is a block diagram showing functions in the storage device according to the present embodiment.
FIG. 15 is a diagram showing a screen displayed on the output device of the management terminal for associating the information processing device according to the present embodiment with a storage volume.
FIG. 16 is a diagram showing a screen displayed on the output device of the information processing device for setting a client number according to the present embodiment.
FIG. 17 is a flowchart showing a process executed in the information processing apparatus according to the present embodiment.
FIG. 18 is a flowchart showing processing executed in the data input / output device according to the present embodiment.
FIG. 19 is a block diagram showing an overall configuration of a storage system according to the present embodiment.
FIG. 20 is a block diagram showing a configuration of a management terminal according to the present embodiment.
FIG. 21 is a diagram showing a channel control unit according to the present embodiment.
FIG. 22 is a diagram for explaining the contents of a table stored in a memory according to the present embodiment.
[Explanation of symbols]
Reference Signs List 100 storage device controller 110 channel controller
112 CPU 113 Memory 120 Shared memory
130 cache memory 140 disk control unit 150 connection unit
151 Internal LAN 160 Management terminal 161 CPU
162 memory 162A physical disk management table
162B LU management table 162C program
163 port 164 recording medium reader
165 input device 166 output device 167 recording medium
168 Storage device 200 Information processing device 201 CPU
202 Memory 202A Program 203 Port
204 recording medium reading device 205 input device 206 output device
207 Recording medium 208 Storage device 300 Storage device
310 LU 320 disk drive
400 network 500 computer 510 CPU
520 memory 520A program 530 I / F
550 Management terminal 551 CPU 552 Memory
552A Program 553 Port
554 Recording medium reading device 555 Input device 556 Output device
557 Recording medium 558 Storage device
721 Data lock table 722 LU lock table
730 Data management table 750 Mapping information table

Claims (8)

データを記憶するための複数の記憶ボリュームと、前記データの入出力要求を行う複数の情報処理装置とに接続され、前記情報処理装置から前記入出力要求を受信し、前記記憶ボリュームに対する前記データの入出力処理を行うデータ入出力装置に、
前記情報処理装置から前記入出力要求を受信した場合に、前記記憶ボリュームに記憶される前記データを、前記情報処理装置と前記記憶ボリュームとの対応付け情報に従って、当該情報処理装置に対応付けられた前記記憶ボリュームに移動するように制御するステップ
を実行させるためのプログラム。
A plurality of storage volumes for storing data, and a plurality of information processing devices that perform an input / output request for the data, are connected to each other, receive the input / output request from the information processing device, and transfer the data to the storage volume. Data input / output device that performs input / output processing
When the input / output request is received from the information processing device, the data stored in the storage volume is associated with the information processing device according to the association information between the information processing device and the storage volume. A program for executing a step of controlling to move to the storage volume.
前記情報処理装置から受信した前記入出力要求が、前記データの書き込み要求である場合には、
前記データを、当該情報処理装置に対応付けられた前記記憶ボリュームに移動するように制御する前記ステップは、
当該情報処理装置に対応付けられた前記記憶ボリュームに前記データを書き込むステップと、
前記データの記憶位置を示すデータ管理テーブルに、当該情報処理装置に対応付けられた前記記憶ボリュームに書き込まれた前記データの記憶位置を特定するための情報を記憶するステップと
であることを特徴とする請求項1に記載のプログラム。
When the input / output request received from the information processing device is a request to write the data,
The step of controlling the data to be moved to the storage volume associated with the information processing device,
Writing the data to the storage volume associated with the information processing device;
Storing, in a data management table indicating a storage location of the data, information for specifying a storage location of the data written in the storage volume associated with the information processing apparatus. The program according to claim 1, which performs the program.
前記情報処理装置から受信した前記入出力要求が、当該情報処理装置に対応付けられていない前記記憶ボリュームに記憶された前記データの読み出し要求である場合には、
前記データを、当該情報処理装置に対応付けられた前記記憶ボリュームに移動するように制御する前記ステップは、
前記データを当該情報処理装置に対応付けられていない前記記憶ボリュームから読み出して、当該情報処理装置に対応付けられた前記記憶ボリュームに書き込むステップと、
前記データの記憶位置を示すデータ管理テーブルに、当該情報処理装置に対応付けられた前記記憶ボリュームに書き込まれた前記データの記憶位置を特定するための情報を記憶するステップと
であることを特徴とする請求項1に記載のプログラム。
When the input / output request received from the information processing device is a request to read the data stored in the storage volume that is not associated with the information processing device,
The step of controlling the data to be moved to the storage volume associated with the information processing device,
Reading the data from the storage volume not associated with the information processing device, and writing the data to the storage volume associated with the information processing device;
Storing, in a data management table indicating a storage location of the data, information for specifying a storage location of the data written in the storage volume associated with the information processing apparatus. The program according to claim 1, which performs the program.
前記情報処理装置と前記記憶ボリュームとの対応付け情報は、
前記情報処理装置から送信される、前記情報処理装置に対する前記記憶ボリュームの割り当てが指定されたデータであることを特徴とする請求項1に記載のプログラム。
The association information between the information processing device and the storage volume is:
The program according to claim 1, wherein the program is data transmitted from the information processing apparatus, the data being assigned to the information processing apparatus.
データを記憶するための複数の記憶ボリュームと、前記データの入出力要求を行う複数の情報処理装置とに接続され、前記情報処理装置から前記入出力要求を受信し、前記記憶ボリュームに対する前記データの入出力処理を行うデータ入出力装置であって、
前記情報処理装置から前記入出力要求を受信した場合に、前記記憶ボリュームに記憶される前記データを、前記情報処理装置と前記記憶ボリュームとの対応付け情報に従って、当該情報処理装置に対応付けられた前記記憶ボリュームに移動するように制御する手段
を備えることを特徴とするデータ入出力装置。
A plurality of storage volumes for storing data, and a plurality of information processing devices that perform an input / output request for the data, are connected to each other, receive the input / output request from the information processing device, and store the data in the storage volume. A data input / output device for performing input / output processing,
When the input / output request is received from the information processing device, the data stored in the storage volume is associated with the information processing device according to the association information between the information processing device and the storage volume. A data input / output device comprising means for controlling movement to the storage volume.
前記情報処理装置から受信した前記入出力要求が、前記データの書き込み要求である場合には、
前記データを、当該情報処理装置に対応付けられた前記記憶ボリュームに移動するように制御する前記手段は、
当該情報処理装置に対応付けられた前記記憶ボリュームに前記データを書き込む手段と、
前記データの記憶位置を示すデータ管理テーブルに、当該情報処理装置に対応付けられた前記記憶ボリュームに書き込まれた前記データの記憶位置を特定するための情報を記憶する手段と
であることを特徴とする請求項5に記載のデータ入出力装置。
When the input / output request received from the information processing device is a request to write the data,
The means for controlling the data to be moved to the storage volume associated with the information processing device,
Means for writing the data to the storage volume associated with the information processing device;
Means for storing, in a data management table indicating a storage location of the data, information for specifying a storage location of the data written in the storage volume associated with the information processing apparatus. The data input / output device according to claim 5, wherein
前記情報処理装置から受信した前記入出力要求が、当該情報処理装置に対応付けられていない前記記憶ボリュームに記憶された前記データの読み出し要求である場合には、
前記データを、当該情報処理装置に対応付けられた前記記憶ボリュームに移動するように制御する前記手段は、
前記データを当該情報処理装置に対応付けられていない前記記憶ボリュームから読み出して、当該情報処理装置に対応付けられた前記記憶ボリュームに書き込む手段と、
前記データの記憶位置を示すデータ管理テーブルに、当該情報処理装置に対応付けられた前記記憶ボリュームに書き込まれた前記データの記憶位置を特定するための情報を記憶する手段と
であることを特徴とする請求項5に記載のデータ入出力装置。
When the input / output request received from the information processing device is a request to read the data stored in the storage volume that is not associated with the information processing device,
The means for controlling the data to be moved to the storage volume associated with the information processing device,
Means for reading the data from the storage volume not associated with the information processing device and writing the data to the storage volume associated with the information processing device;
Means for storing, in a data management table indicating a storage location of the data, information for specifying a storage location of the data written in the storage volume associated with the information processing apparatus. The data input / output device according to claim 5, wherein
前記情報処理装置と前記記憶ボリュームとの対応付け情報は、
前記情報処理装置から送信される、前記情報処理装置に対する前記記憶ボリュームの割り当てが指定されたデータであることを特徴とする請求項5に記載のデータ入出力装置。
The association information between the information processing device and the storage volume is:
6. The data input / output device according to claim 5, wherein the data input / output device is data specified by the information processing device, the assignment of the storage volume to the information processing device.
JP2003106844A 2003-04-10 2003-04-10 Program and data input/output device Pending JP2004310690A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003106844A JP2004310690A (en) 2003-04-10 2003-04-10 Program and data input/output device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003106844A JP2004310690A (en) 2003-04-10 2003-04-10 Program and data input/output device

Publications (1)

Publication Number Publication Date
JP2004310690A true JP2004310690A (en) 2004-11-04

Family

ID=33468905

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003106844A Pending JP2004310690A (en) 2003-04-10 2003-04-10 Program and data input/output device

Country Status (1)

Country Link
JP (1) JP2004310690A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008033517A (en) * 2006-07-27 2008-02-14 Hitachi Ltd File storage control device and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008033517A (en) * 2006-07-27 2008-02-14 Hitachi Ltd File storage control device and method

Similar Documents

Publication Publication Date Title
US7089395B2 (en) Computer systems, virtual storage systems and virtual storage system operational methods
JP4862006B2 (en) Computer system
US9361034B2 (en) Transferring storage resources between snapshot storage pools and volume storage pools in a distributed network
US7930502B2 (en) Disk array apparatus and control method for disk array apparatus
US8219777B2 (en) Virtual storage systems, virtual storage methods and methods of over committing a virtual raid storage system
US7941632B2 (en) Storage virtualization system with dynamic allocation of physical storage space
US6915403B2 (en) Apparatus and method for logical volume reallocation
US6421767B1 (en) Method and apparatus for managing a storage system using snapshot copy operations with snap groups
US20130232215A1 (en) Virtualized data storage system architecture using prefetching agent
US20060174074A1 (en) Point-in-time copy operation
US20070078914A1 (en) Method, apparatus and program storage device for providing a centralized policy based preallocation in a distributed file system
JP4837378B2 (en) Storage device to prevent data tampering
US20200250333A1 (en) Data management system and data management method
WO2013121460A1 (en) File server apparatus, information system, and method for controlling file server apparatus
JP2002082775A (en) Computer system
JP2005228278A (en) Management method, management device and management program of storage area
JP2004295465A (en) Computer system
JP2005276158A (en) Storage system, computer system and method of establishing attribute of storage area
WO2018158808A1 (en) Information system, management program, and program exchanging method for information system
JP2005165441A (en) Storage controller and method for controlling storage controller
US7424574B1 (en) Method and apparatus for dynamic striping
US6732194B1 (en) Method and apparatus for multi-sequential data operations
JP2004310690A (en) Program and data input/output device
Zhang et al. Design and implementation of an out-of-band virtualization system for large SANs
US20020087787A1 (en) System to support dynamically flexible data definitions and storage requirements

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090414

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090602