JP2004310690A - Program and data input/output device - Google Patents
Program and data input/output device Download PDFInfo
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
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
[0015]
The
[0016]
The
[0017]
=== Storage device ===
The
[0018]
It should be noted that the
[0019]
The
[0020]
The
[0021]
=== Management terminal ===
The
[0022]
The
[0023]
FIG. 9 is a block diagram showing the configuration of the
The
[0024]
The
[0025]
The recording
[0026]
=== Information processing device ===
The
[0027]
FIG. 2 is a block diagram illustrating a configuration of the
The
[0028]
The
[0029]
=== Table stored in computer memory ===
As described above, the
[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
[0031]
=== LU management table ===
The LU management table 162B is a table for managing the
[0032]
=== Data management table ===
The data management table 730 is a table for managing storage locations and the like of data stored in the
[0033]
Block No. The column indicates a number assigned to each access unit of data stored on the
[0034]
The data name column shows a name for specifying data assigned to each data. The data name is input from the
[0035]
The LU number column indicates the number of the
[0036]
The address column indicates the position of each block of the data. Thereby, the
[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
[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
[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
[0043]
=== Mapping information table ===
The mapping information table 750 is a table for managing the association between the
[0044]
In the storage LU column, an
[0045]
When the content of the mapping information table 750 is updated, the assignment of the
[0046]
Updating of the mapping information table 750 can be performed from the
[0047]
When the
[0048]
=== Overview of data input / output processing ===
When
[0049]
In FIG. 10, three
[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
[0051]
That is, when the
[0052]
As described above, the new data from the
[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
[0055]
As described above, the data updated by the
[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
[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
[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
[0060]
As described above, even when data is read, the data stored in the
[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
[0063]
=== Update data write command ===
When the input / output request transmitted from the
[0064]
=== New data write command ===
When the input / output request transmitted from the
[0065]
Since the client number is described in the input / output request as described above, the
[0066]
=== Functional block of information processing device ===
Next, FIG. 12 is a block diagram illustrating functions of the
As shown in FIG. 12, the
[0067]
The client number setting unit has a function of setting a client number for specifying the
The client number input unit has a function of receiving a number input by an operator or the like from the
[0068]
FIG. 16 shows an example of how the client number is set in the
[0069]
Note that the client number setting unit can be realized by the
[0070]
The I / O request unit has a function of transmitting an input / output request to the
The I / O information receiving unit has a function of receiving a data write or read request from the
[0071]
=== Computer functional blocks ===
Next, FIG. 13 is a block diagram showing functions in
As shown in FIG. 13, the
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
[0072]
FIG. 15 shows an example of how the mapping information table 750 is set in the
[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
[0074]
By setting the mapping information table 750 as described above, when there is a data input / output request from the
[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
[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
[0077]
=== Functional block of storage device ===
Next, FIG. 14 is a block diagram illustrating functions of the
As shown in FIG. 14, the
The I / O unit includes a storage LU search unit and an I / O unit. The storage LU search unit specifies the
[0078]
=== Processing Flow in Information Processing Device ===
Next, FIG. 17 is a flowchart illustrating a flow of processing executed in
[0079]
First, the
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
[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
[0081]
First, the
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
[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
[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
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
[0084]
If the input / output request received from the
[0085]
Thus, as described in the present embodiment, when there is a data input / output request from the
[0086]
Furthermore, since data movement is performed when there is access from the
[0087]
Further, data movement according to the present embodiment is performed by
[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
[0089]
The
19, the
[0090]
The storage
[0091]
Note that the connection between the
[0092]
=== Storage device ===
The
[0093]
=== Storage Device Controller ===
The storage
[0094]
The
[0095]
Each
[0096]
The
The shared
[0097]
For example, when a data input / output command received by a certain
[0098]
It should be noted that, in addition to the configuration in which the instructions of writing and reading data from the
[0099]
The
[0100]
Each
[0101]
In the present embodiment, the shared
[0102]
=== Management terminal ===
The
[0103]
The
[0104]
FIG. 20 is a block diagram showing the configuration of the
The
[0105]
The
[0106]
The recording
The
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
[0107]
=== Channel control unit ===
The
[0108]
FIG. 21 shows a hardware configuration of the
[0109]
The
[0110]
The
The
The
[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
The lock table 720 is a table for performing exclusive control on file access from the
[0112]
The mapping information table 750 is a table for managing the association between the
[0113]
The transmission of the mapping information from the
[0114]
The input /
[0115]
=== Data Input / Output Processing in Second Embodiment ===
Next, when the
[0116]
=== Writing a new file ===
When receiving a file access request (input / output request) from the
[0117]
As described above, the new file from the
[0118]
=== Write update data ===
Next, when the I / O type of the input / output request received from the
[0119]
As described above, the file updated by the
[0120]
In the above-described example, the update file from the
[0121]
=== Reading data ===
Next, when the I / O type of the input / output request received from the
[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
[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
[0124]
As described above, even when the file is read, the file stored in the
[0125]
As described in the present embodiment, when there is a file access request from the
[0126]
Further, since the file is moved when the
[0127]
In addition, the movement of the file according to the present embodiment is performed by the
[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]
112
130
151
162
162B LU management table 162C program
163
165
168
202
204 recording
207 Recording medium 208
310
400
520
550
554 Recording medium reading device 555
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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008033517A (en) * | 2006-07-27 | 2008-02-14 | Hitachi Ltd | File storage control device and method |
-
2003
- 2003-04-10 JP JP2003106844A patent/JP2004310690A/en active Pending
Cited By (1)
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 |