JP4690783B2 - ボリューム管理システムおよびその方法 - Google Patents

ボリューム管理システムおよびその方法 Download PDF

Info

Publication number
JP4690783B2
JP4690783B2 JP2005167866A JP2005167866A JP4690783B2 JP 4690783 B2 JP4690783 B2 JP 4690783B2 JP 2005167866 A JP2005167866 A JP 2005167866A JP 2005167866 A JP2005167866 A JP 2005167866A JP 4690783 B2 JP4690783 B2 JP 4690783B2
Authority
JP
Japan
Prior art keywords
area
logical
logical area
capacity
file system
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.)
Expired - Fee Related
Application number
JP2005167866A
Other languages
English (en)
Other versions
JP2006343924A (ja
Inventor
大和 山内
健治 馬場
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2005167866A priority Critical patent/JP4690783B2/ja
Priority to US11/197,472 priority patent/US7392362B2/en
Publication of JP2006343924A publication Critical patent/JP2006343924A/ja
Application granted granted Critical
Publication of JP4690783B2 publication Critical patent/JP4690783B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Description

本発明は、記憶領域の構成を自動で変更するボリューム管理システムおよびその方法に関する。
一般に、ユーザが記憶装置の容量不足に気付かずに、容量不足の記憶装置への書き込みが発生した場合、データの不整合や処理停止を引き起こし得る。そのため、記憶装置内の記憶領域の容量を常に監視し、容量不足にならないよう必要に応じて記憶領域の追加や拡張を行う必要がある。そこで、容量不足の判断や、急激な記憶領域の容量変化に対応するため、容量不足の監視と記憶領域の拡張を動的に行うシステムが用いられている。その記憶領域の拡張の際には、予め準備した容量を確保しておく必要がある。
従来、記憶領域の拡張などの構成変更を行わせるタイミングとして、ユーザが決めたスケジュールに沿って行う方法(例えば、特許文献1)と、物理的な構成が変化した場合に行う方法(例えば、特許文献2)とがあった。
特開2003−337721号公報 特開2004−334561号公報
しかしながら、特許文献1、2では、次のような不都合があった。すなわち、容量不足の記憶装置に対する書き込みが発生したときに、ユーザがそのことに気付かなければ、その状態で書き込みが行われるため、データ整合や処理を円滑に行うことにならない。そのため、記憶領域の容量不足を常に監視し、必要に応じて、記憶領域の追加・拡張を行う必要があった。
また、容量を追加・拡張する際にそれに必要な容量が事前に確保されていない場合、ユーザの判断で他の記憶領域から追加・拡張分の容量を取得しなければならないため、ユーザがその容量を意識していなければ、円滑な処理を行いにくい。そのため、記憶容量に関する監視や変更、判断を全て自動で行うことで、ユーザの負担を軽減し、容量不足による弊害を守る必要があった。
そこで、本発明は、このような不都合を回避するためになされたものであり、その目的は、記憶容量の不足を回避するよう記憶領域の構成を自動で変更し円滑な処理を実現することである。
前記課題を解決するため本発明は、複数の論理領域の容量を有するストレージ装置と、前記ストレージ装置に対して処理要求を行う計算機と、前記ストレージ装置および計算機との間で通信を行う管理サーバとを備える。前記管理サーバは、メモリと処理装置とを備え、前記メモリは、前記ストレージ装置に有する論理領域に関し、使用中または未使用をあらわす利用状況を格納する。前記管理サーバの処理装置は、前記ストレージ装置の論理領域の容量が不足した場合、前記ストレージ装置に有する論理領域のうち、前記メモリの利用状況を参照して、未使用を示す他の論理領域があるかどうかを判定し、前記未使用を示す他の論理領域があれば、その他の論理領域の容量を容量不足の論理領域に割り当てる。
本発明によれば、記憶容量の不足を回避するよう記憶領域の構成を自動で変更し円滑な処理を実現することができる。
図1は本発明の実施の形態におけるボリューム管理システムの全体的な構成例を示すブロック図である。
図1において、ボリューム管理システムでは、複数のサーバ(計算機ともいう)2が、例えばSAN(Storage Area Network)6を介して、複数のストレージ装置3に接続されている。そして、それらのサーバ2とストレージ装置3の各々は、例えばLAN(Local Area Network)を介して、管理サーバ5に接続されている。ストレージ装置3は、複数の磁気ディスクにより構成される論理領域(記憶領域)を有している。論理領域は、例えば、複数台のディスク装置で形成されたRAID(Redundant Arrays of Independent Disks)グループを論理的に分割して作られた各領域を意味する。
管理サーバ5には、ワークロードボリュームマネージャプログラム(以下単に「マネージャープログラム」という)1が組み込まれているが、詳細は後記する。
なお、図1の構成を変更してもよい。例えば、1台のサーバ2が管理サーバ5の機能を兼ね備え、そのサーバ2とストレージ装置3とを専用線で接続してボリューム管理システムを構成するようにしてもよい。また、SANやLANを用いて通信を行うこととしたが、例えば、SCSI(Small Computer System Interface)、iSCSI(Internet Small Computer System Interface)等の様々な通信を用いることもできる。
以下、管理サーバ5、サーバ2、ストレージ装置3の順に詳述する。
(管理サーバの構成)
管理サーバ5は、図2に示すように、ネットワークポート52、CPU53、メモリ54を持ち、メモリ54に格納された各種プログラムをCPU53で実行するものである。
メモリ54は、マネージャープログラム1と、ユーザ設定テーブル作成プログラム208と、書き込み領域テーブル作成プログラム209とを格納する。さらにメモリ54は、マスターテーブル101と、ユーザ設定テーブル103と、書き込み領域テーブル105と、書き込み位置テーブル107と、データ対応テーブル109と、ミラーテーブル110とを格納する。
マスターテーブル101は、ストレージ装置3に関する構成情報を管理する表として、システム情報(図5参照)、論理領域情報(図5参照)、ディスク情報(図5参照)、ブロック対応情報(図6参照)および使用率変化情報(図6参照)を持つ。
システム情報には、図5に示すように、システムレベル、設定値レベル、上限値レベル、動作内容、およびユーザ設定の情報を持つ。
システムレベルとは、ストレージ装置3に有する論理領域の冗長性の可否を分ける境界値を意味する。論理領域は、一定の大きさをあらわす論理ブロックの集合を意味する。システムレベルには、あらかじめ用意されている複数のレベル(例えば、1〜10)のうちの一つのレベルを示す数値(例えば、3)が入る。このレベルは、冗長性の優先度をあらわすものであり、優先レベルともいう。なお、レベル0は、論理領域に未登録の論理ブロックの集合体である空き領域(ディスクプール)のレベルを指す。つまり、どのサーバ2にも提供していない論理領域のレベルである。レベルの数値が高くなればなるほど、論理領域の冗長を行いにくくなる。
設定値レベルには、システムレベルの下限を示す数値が設定され、また、上限値レベルには、システムレベルの上限を示す数値が設定される。
動作内容は、論理領域に対してどのような構成変更が必要かを示すもので、例えば、書き込み等の種類がある。
ユーザ設定は、後記するユーザ設定テーブル103の内容を反映した状態を示すもので、例えば、完了等がある。
なお、マスターテーブル101内の動作内容の項目には、一種類の内容しか記憶されない。このため、動作内容に新たな値を入れると、前の動作内容の値は上書きされる。
論理領域情報は、図5に示すように、論理領域の名称、領域レベル、論理領域の状態、使用率、使用率の閾値、および論理領域の容量の情報を持つ。
論理領域の名称としては、例えば、unit0、unit1などがある。領域レベルは、当該論理領域のシステムレベルを意味する。論理領域の状態としては、例えば、冗長性の無しを示すミラー無、冗長性の有りを示すミラー有、破損などがある。
使用率は、論理領域の容量に対する、当該論理領域の実使用量の比率を意味する。使用率の閾値は、その使用率をあらかじめ設定したものである。論理領域の容量としては、例えば、30GB、10GBなどがある。
ディスク情報は、図5に示すように、ディスク番号、ディスクの容量、使用開始、耐久時間、および使用時間の情報を持つ。
ディスク番号は、ディスク群33(図4参照)に含まれる一のディスクを特定するための番号である。ディスクの容量としては、例えば、5GB、50GBなどがある。
使用開始日、例えば、当該ディスクの使用を開始した年月日を指し、耐久時間は、当該ディスクの耐久時間を意味する。使用時間は、当該ディスクの実使用時間を意味する。
ブロック対応情報は、図6に示すように、論理領域の名称、論理ブロック番号、利用状況、および、対応する物理ブロック情報を持つ。このうち、論理領域の名称は、図5の論理領域の名称と同様の内容である。
論理ブロック番号は、論理ブロックを特定するためのもので、例えば、ブロック1、ブロック2などがある。利用状況としては、使用中を示すUse、あるいは未使用を示すUnuseがある。
対応する物理ブロック情報は、当該論理ブロックに対応するもので、ディスク番号(図5参照)と物理ブロック番号とマークとを含んで構成されている。物理ブロック番号は、一または複数のディスクから構成される物理ブロックを特定するための番号である。本実施の形態においては、物理ブロックは、論理ブロックと容量が一致するものとして説明するが、双方の容量は異なっていてもよい。
マークには、物理ディスクの利用可能を示す「可」または利用不可を示す「不可」の2種類がある。
使用率変化情報は、論理領域の名称ごとに、当該論理領域の使用率(図5の論理領域情報の使用率と同じ)の履歴をあらわしている。この履歴のレコードは、後記するユーザ設定テーブル103の取得期間情報の使用率変化情報記憶回数(図7参照)で設定した回数分ある。
ユーザ設定テーブル103は、図7に示すように、記憶領域の構成変更を行う基準としてユーザが設定する値であるユーザ論理領域情報、ユーザディスク情報、および取得期間情報を持つ。
ユーザ論理領域情報は、マスターテーブル101の論理領域情報(図5参照)と同様、論理領域の名称、領域レベル、使用率の閾値、および論理領域の容量の情報を持つ。
ユーザディスク情報は、マスターテーブル101のディスク情報(図5参照)と同様、ディスク番号、耐久時間の情報を持つ。
取得期間情報は、定期シグナルの間隔(例えば、1時間)、および使用率変化情報記憶回数(例えば、20回)の情報を持つ。
書き込み領域テーブル105は、図8に示すように、書き込みまたは削除を示すWrite/Delete、その対象となる論理領域の名称(例えば、unit4など)、データ名(例えばデータAなど)、およびそのデータの大きさ(例えば、8MBなど)の情報を持つ。データの大きさは、書き込みの場合にのみ登録される。
書き込み位置テーブル107は、図9に示すように、書き込みまたは読み込みを示すWrite/Read、その対象となるデータ名(例えば、データAなど)、対象となる論理領域の名称(例えば、unit1など)、および論理ブロック番号(例えば、ブロック1など)の情報を持つ。
データ対応テーブル109は、図10に示すように、データ名、論理領域の名称、および論理ブロック番号の情報を持つ。
ミラーテーブル110は、図11に示すように、ミラー元ディスク番号(例えば、Disk1など)、ミラー元物理ブロック番号(例えば、ブロック100など)、ミラー先ディスク番号(例えば、Disk6など)、およびミラー先物理ブロック番号(例えば、ブロック1など)の情報を持つ。
次に、各種プログラム208、209の機能について説明する。
ユーザ設定テーブル作成プログラム208は、ユーザによる入力装置(マウス等)の操作に応じ、ユーザ設定テーブル103を更新する機能を持つ。書き込み領域テーブル作成プログラム209は、ユーザによる操作を通じて書き込み要求や削除要求があった場合、書き込み領域テーブル105を作成する。
(サーバの構成)
次に、サーバ2の構成について詳述する。サーバ2は、図3に示すように、I/Oポート21、ネットワークポート22、CPU23、およびメモリ24を持ち、メモリ24に格納された各種プログラムをCPU23で実行するものである。
メモリ24は、書き込み・削除要求シグナル発信プログラム201と、ユーザ割り込み要求シグナル発信プログラム202と、定期シグナル発信プログラム203と、ユーザ連絡プログラム204と、データ書き込みプログラム205と、データ削除プログラム206とを格納する。
書き込み・削除要求シグナル発信プログラム201は、ユーザが入力装置を用いて書き込みまたは削除要求を行った場合、その書き込みまたは削除シグナルを管理サーバ5のマネージャープログラム1に発信する機能を持つ。
ユーザ割り込み要求シグナル発信プログラム202は、ユーザ割り込み要求シグナルを管理サーバ5のマネージャープログラム1に発信する機能を持つ。定期シグナル発信プログラム203は、管理サーバ5のユーザ設定テーブル103で設定された間隔で定期シグナルを管理サーバ5のマネージャープログラム1に発信する機能を持つ。
ユーザ連絡プログラム204は、管理サーバ5のマネージャープログラム1から各種シグナルを受け取った場合、そのシグナルに応じた情報をユーザに伝える機能(例えば、コンピュータディスプレイ等の表示装置に表示)を持つ。データ書き込みプログラム205は、管理サーバ5のマネージャープログラム1から書き込み位置テーブル107の内容を受け取った場合、該当データを書き込むようにストレージ装置3に要求する。
データ削除プログラム206は、マネージャープログラム1から書き込み位置テーブル107の内容を受け取った場合、該当データを読み込むようにストレージ装置3に要求する。
(ストレージ装置の構成)
次に、ストレージ装置3の構成について詳述する。ストレージ装置3は、図4に示すように、I/Oポート31、ネットワークポート32、一以上のディスクからなるディスク群33、メモリ34、およびCPU35を有し、メモリ34に格納された各プログラムをCPU35で実行するものである。CPU35は、ディスク群33に有する論理領域に対する入出力を制御する。
メモリ34には、ディスク情報テーブル301と、アクセス位置テーブル303と、構成情報テーブル305とが格納されている。また、メモリ34には、書き込みプログラム311と、読み込みプログラム313と、アクセス位置テーブル作成プログラム315と、ディスク情報テーブル作成プログラム317とが格納されている。
ディスク情報テーブル301は、図12に示すように、ディスク番号、ディスクの容量、および利用開始時(図5のディスク情報の使用開始に対応)の情報を持つ。
アクセス位置テーブル303は、図13に示すように、ディスク番号および物理ブロック番号の情報を持つ。
構成情報テーブル305は、図14に示すように、ディスク番号、物理ブロック番号、論理領域の名称、および論理ブロック番号の対応関係を持つ。
次に、各種プログラム311、313、315、317(図4参照)の機能について説明する。
書き込みプログラム311は、サーバ2のデータ書き込みプログラム205(図2参照)から書き込み要求があった場合、要求された論理ブロックに対応する物理ブロックに書き込みを行う機能を持つ。
読み込みプログラム313は、サーバ2のデータ削除プログラム206(図2参照)から読み込み要求があった場合、要求された論理ブロックに対応する物理ブロックに対して読み込みを行う機能を持つ。
アクセス位置テーブル作成プログラム315は、書き込みまたは読み込みを行った後にアクセスした物理ブロックの位置からアクセス位置テーブル303を作成する機能を持つ。
ディスク情報テーブル作成プログラム317は、ディスク群33中のディスクに追加や削除が行われた場合、そのディスクの容量や利用開始日の情報からディスク情報テーブル301を作成し、構成変更シグナルを管理サーバ5のマネージャープログラム1に発信する機能を持つ。
(論理領域の冗長性の原理)
このような構成を持つボリューム管理システムを用いて、容量不足の論理領域に対して容量を追加・拡張して論理領域の冗長性を行い、容量不足を回避しデータの整合等を行う。このとき追加・拡張すべき論理領域の優先順位を決めておき、その順位の高い論理領域の容量を追加・拡張している。本実施の形態では、(1)Unit0の容量、(2)他の論理領域における未使用部分の容量、(3)他の論理領域の冗長性を解除して得られる容量、の順に優先度を低くした。
ここで、(1)Unit0の容量を利用する場合の動作原理を図51に示す。この場合、領域レベルが1の容量が不足すると(追加・拡張前の領域レベル1を参照)、Unit0(領域レベル=0)の容量を不足した容量(領域レベル1)に追加・拡張する(追加・拡張後の領域レベル1を参照)。
次に、(2)他の論理領域における未使用部分の容量を利用する場合の動作原理を図52に示す。この場合、領域レベルが1の容量が不足すると(追加・拡張前の領域レベル1を参照)、領域レベルが6の論理領域の容量(未使用部分)を不足した容量(領域レベル1)に追加・拡張する(追加・拡張後の領域レベル1を参照)。
次に、(3)他の論理領域の冗長性を解除して得られる容量を利用する場合の動作原理を図53に示す。この場合、領域レベルが1の容量が不足すると(追加・拡張前の領域レベル1を参照)、上限値レベル6以下の論理領域はすべて冗長性が解除されて、解除後のミラー先の論理領域がUnit0に確保される(経過途中を参照)。そして、その確保されたUnit0の論理領域が不足した容量(領域レベル1)に追加・拡張する(追加・拡張後の領域レベル1を参照)。そして、その後、冗長性を回復する。
この回復例を図54に示す。たとえば、領域レベルが1の論理領域の容量に未使用部分があり、かつ、Unit0に容量があれば(回復前を参照)、それらの容量をシステムレベル4以下でかつ設定値レベル2以上の論理領域に確保して冗長化を行う(経過途中を参照)。そして、システムレベルを1つ下げる(回復後を参照)。
次に、論理領域の冗長性の解除例を図55に示す。たとえば、ユーザ設定テーブル103(図7参照)の領域レベルが小さい値に変更されたことによりシステムレベル4以下で冗長を持っている場合(解除前を参照)、その冗長性を解除して、解除したミラー先の論理領域をUnit0に確保する(解除後を参照)。
また、本実施の形態においては、物理ディスクの耐久時間が超過したときに、その超過した物理ディスクに対応する論理領域のデータの保護も行っている。この例を図56に示す。たとえば、耐久時間が超過した物理ディスクに対応する論理ディスク(論理レベル2の論理領域に対応)について、上限値レベル6よりも1つ下位の領域レベル5の論理領域内で冗長化を行う。そして、耐久時間が超過した物理ディスクをユーザが取り外せば、領域レベルをユーザ設定テーブル103(図7参照)の値(たとえば、2)に戻し、その領域レベル2に冗長化した論理領域を確保する。これにより、物理ディスクの耐久時間が超過しても、データを保存することが可能となる。
(論理領域の冗長性の管理方法)
さらに、論理領域の冗長性の管理方法を説明する。
各論理領域に対し領域レベルを設定し、領域レベルには数値が入る。その値が大きい論理領域から優先的に冗長性を持たせる。論理領域の冗長性の有無を示す境界値としてシステムレベルを設定し、システムレベルには数値が入る。システムレベルの上限として上限値レベル、下限として設定値レベルを設定し、それぞれに数値が入る。冗長性の管理は以下の規則に従って行われる。論理領域の領域レベルの値がシステムレベルの値より小さい場合、該当論理領域の冗長性を解除する。解除することで得た容量はunit0に登録する。論理領域の領域レベルの値が設定値レベルの値以上で、システムレベルより小さい場合、該当論理領域に対して、冗長性を持つような働きを自動で行うため、領域レベルの大きい論理領域から順に以下の処理を行う。冗長性を持たせる予定の該当論理領域に対して、他の論理領域の未使用部分の容量とunit0の容量の両方または片方を利用して該当論理領域に冗長性を持たせ、システムレベルの値を、冗長性を持たせた論理領域の領域レベルの値に変更する。他の論理領域の未使用部分の容量とunit0の容量の両方または片方を利用しても冗長性を持たせるための十分な容量を確保出来ない場合は、該当論理領域に冗長性を持たせない。
(容量不足の判断基準)
次に、容量不足の判断基準について説明する。各論理領域に対して閾値を設定し、閾値には0から100までの数値が入る。各論理領域で使用している論理ブロック数を、各論理領域の全論理ブロック数で割った値に100を掛けた値を使用率とする。使用率の値が閾値の値を超えた場合、その論理領域は容量不足であると判断する。
次に、管理サーバ5のCPU53が、メモリ54のマネージャープログラム1に従って容量不足の論理領域に対して容量を追加・拡張して冗長化等を行うワークロードボリュームマネージャー処理例について図15ないし図50に基づいて説明する。
図15はワークロードボリュームマネージャー処理の概要を示すフローチャートである。まず、ステップ1505では、サーバ2の各種プログラムから発信されたシグナルを取得する情報取得処理(図16参照)を行う。
ステップ1510では、マスターテーブル101等の内容を加工する構成変更データ加工処理(図25参照)を行う。
ステップ1515では、マスターテーブル101のシステム情報の動作内容(図5参照)の値が「限界」かどうかを判定する。判定の結果、「限界」ではない場合(ステップ1515のNo)、ステップ1520に進み、動作内容の値に応じて、ストレージ装置3の構成情報テーブル305の内容を変更する構成変更実行処理(図39参照)を行う。その後、ステップ1505に戻る。
他方、動作内容の値が「限界」の場合(ステップ1515のYes)、その動作内容の値を消し(ステップ1525のYes)、マネージャープログラム1を終了する。
図16はステップ1505の情報取得処理を示すフローチャートである。まずステップ1605では、管理サーバ5のCPU53は、サーバ2の書き込み・削除要求シグナル発信プログラム201から発信された書き込み・削除シグナルを検知したかどうかを判断する。そして、それを検知した場合(ステップ1605のYes)、書き込みシグナル検知処理(図17参照)を行い(ステップ1610)、他方、検知しなかった場合(ステップ1605のNo)、ストレージ装置3のディスク情報テーブル作成プログラム317から発信された構成変更シグナルを検知したかどうかを判断する(ステップ1615)。
そして、構成変更シグナルを検知した場合(ステップ1615のYes)、構成変更シグナル検知処理(図24参照)を行い(ステップ1620)、他方、検知しなかった場合(ステップ1615のNo)、サーバ2の定期シグナル発信プログラム203から発信された定期シグナルを検知したかどうかを判断する(ステップ1625)。
定期シグナルを検知した場合(ステップ1625のYes)、マスターテーブル101のシステム情報の動作内容(図5参照)に「定期」の値を入れ(ステップ1630)、他方、検知しなかった場合(ステップ1625のNo)、サーバ2のユーザ割り込み要求シグナル発信プログラム202から発信されたユーザ割り込みシグナルを検知したかどうかを判断する(ステップ1635)。
ユーザ割り込みシグナルを検知した場合(ステップ1635のYes)、マスターテーブル101のシステム情報の動作内容(図5参照)に「ユーザ割り込み」の値を入れ(ステップ1640)、他方、検知しなかった場合(ステップ1635のNo)、ステップ1637に進み、マスターテーブル101のシステム情報のユーザ設定(図4参照)の値が未完了かどうかを判断する。
そして、ユーザ設定の値が未完了の場合(ステップ1637のYes)、マスターテーブル101のシステム情報の動作内容(図5参照)に「ユーザ割り込み」の値を入れ(ステップ1640)、他方、完了の場合(ステップ1637のNo)、動作内容(図4参照)に値があるかどうかを判断する(ステップ1645)。その結果、値がある場合(ステップ1645の有る)、情報取得処理を終了し、他方、無い場合(ステップ1645の無い)、ステップ1605に戻る。
図17はステップ1610の書き込み・削除シグナル検知処理(図16)を示すフローチャートである。まずステップ1705では、書き込み領域テーブル105を読み込み、ステップ1710で、マスターテーブル101を読み込む。
ステップ1715では、前記した書き込み・削除シグナルに応じ、マスターテーブル101および書き込み領域テーブル105を参照して、書き込み領域の有無を判断する書き込み領域有無判断処理(図18参照)を行う。この処理の結果、他の論理領域に書き込み容量がある場合(ステップ1715の「他の論理領域に容量有り」)、書き込み・削除シグナル検知処理を終了する。
また、ステップ1715の処理の結果、該当論理領域に書き込み容量がある場合(ステップ1715の「該当論理領域に容量有り」)、ステップ1720に進み、論理領域使用率情報取得処理(図21参照)を行い、その処理の結果、マスターテーブル101の論理領域情報(図5参照)から、当該論理領域の使用率がその閾値より小さいかどうかを判断する(ステップ1725)。その結果、論理領域の使用率が大きい場合(ステップ1725のNo)、マスターテーブル101のシステム情報の動作内容(図5参照)に「書き込み」の値を入れ、ステップ1735に進む。
ステップ1735では、書き込み完了シグナルをサーバ2のユーザ連絡プログラム204に発信し、書き込み・削除シグナル検知処理を終了する。
また、ステップ1715の処理の結果、書き込み容量が無い場合には(ステップ1715の「書き込み容量無し」)、書き込み不可シグナルをサーバ2のユーザ連絡プログラム204に発信し(ステップ1740)、マスターテーブル101のシステム情報の動作内容(図4参照)に「限界」の値を入れて(ステップ1745)、書き込み・削除シグナル検知処理を終了する。
図18はステップ1715の書き込み領域有無判断処理(図17)を示すフローチャートである。まずステップ1805では、書き込み・削除シグナルに応じ、データの削除を行うかどうかを判断し、データの削除が行われる場合(ステップ1805のYes)、そのデータの削除処理(図23参照)を行う(ステップ1810)。この処理により、当該データが削除された論理領域の容量が増え、ステップ1715(図17参照)の処理の結果が「該当論理領域に容量が有り」となる。
他方、データの書き込みを行う場合(ステップ1805のNo)、そのデータに対応する論理領域について、書き込み領域中の未使用領域(未使用の論理領域)よりも書き込むデータのほうが大きいかどうかを判断する(ステップ1815)。判断の結果、小さい場合(ステップ1815のNo)、当該データの書き込み処理(図22参照)を行い(ステップ1820)、他方、大きい場合(ステップ1815のYes)、当該データの書き込みに利用可能な論理領域の容量をあらわす後記の利用可能量を計算する利用可能量計算処理(図19参照)を行う(ステップ1825)。
次に、ステップ1830では、利用可能量よりも書き込むデータのほうが大きいかどうかを判断し、大きい場合(ステップ1830のYes)、利用可能総量計算処理(図20参照)を行う(ステップ1840)。ステップ1845では、その処理の結果、後記する利用可能総量よりも書き込むデータのほうが大きいかどうかを判断し、判断の結果、大きい場合(ステップ1845のYes)、当該データを書き込む論理領域が無い状態で本処理が終了し、ステップ1715(図17参照)の処理の結果が「書き込み容量無し」となる。他方、利用可能総量よりも書き込むデータのほうが小さい場合(ステップ1845のNo)、マスターテーブル101のシステム情報の動作内容(図5参照)に「緊急」の値を入れ(ステップ1850)、本処理を終了する。このとき、他の論理領域に書き込みが可能な状態で本処理が終了し、ステップ1715の処理の結果が「他の論理領域に容量有り」となる。
なお、ステップ1830において、データのほうが小さい場合(ステップ1830のNo)も、マスターテーブル101のシステム情報の動作内容(図5参照)に「不足」の値を入れ(ステップ1835)、ステップ1715の処理の結果が「他の論理領域に容量有り」となる。
図19はステップ1825の利用可能量計算処理を示すフローチャートである。利用可能量計算処理は、論理領域の未使用部分で利用できる量を計算する処理である。
ステップ1905では、マスターテーブル101のunit0領域の容量を記憶する。
ステップ1910では、マスターテーブル101の論理領域情報(図5参照)から、各論理領域の使用率から未使用容量(未使用の論理領域の容量)を計算する。具体的には、論理領域の名称ごとに、論理領域の容量に(100%−使用率)の値を乗じて未使用容量を算出する。たとえば、使用率が40%、論理領域の容量が10GBの場合、未使用容量は、6GBとなる。
ステップ1915では、マスターテーブル101の論理領域情報(図5参照)から、各論理領域の使用率の閾値から最低確保容量を計算する。具体的には、論理領域の名称ごとに、使用率の閾値で指定された論理領域の容量から、当該論理領域の容量を差し引いた容量をその論理領域の最低確保容量として計算する。たとえば、使用率の閾値が90%、論理領域の容量が10GBの場合、その論理領域の最低確保容量は、1GBとなる。
ステップ1920では、各論理領域の未使用容量から最低確保容量を引いて合計する。この合計値が、各論理領域についての利用可能な提供量となる。ただし、ミラー化されている場合はミラー化の重複度分掛け算をして前記提供量を求める。たとえば、二重化されていれば提供量を2倍して利用可能な提供量とし、三重化されていれば、提供量を3倍して利用可能な提供量とする。
ステップ1925では、前記した合計値、すなわち各論理領域の提供量と、ステップ1905で記憶したunit0の領域の容量とを合計したものを利用可能量として出し、利用可能量計算処理を終了する。
図20はステップ1840の利用可能総量計算処理(図18)を示すフローチャートである。利用可能総量計算処理は、上限値レベル以下の論理領域を全てミラー解除し、そのことで得られた論理領域の容量を計算する処理である。なお、ステップ1825の処理は、図19における処理と同様であるため、説明を省略する。
ステップ2005では、マスターテーブル101を参照し、システムレベル以上で、かつ上限レベル未満の領域レベルを持つ論理領域でミラー化している領域を記憶する。たとえば、図5では、システム情報のシステムレベルが3、上限レベルが8、3以上8未満のレベルを持つunit3の論理領域がミラー化しているので(論理領域情報の論理領域の名称、領域レベル、論理領域の状態を参照)、unit3の領域をメモリ54に記憶することになる。
ステップ2010では、マスターテーブル101の論理領域情報(図5参照)を参照し、各論理領域の使用率からそれらの使用容量を計算し重複分(ミラー先の論理領域の使用容量分)を合計する。たとえば、二重化されていれば、計算した使用容量が重複分となり、三重化されていれば、計算した使用容量の2倍の容量が重複分となる。
ステップ2015では、マスターテーブル101の論理領域情報(図5参照)を参照し、各論理領域の使用率の閾値から最低確保容量の重複分(ミラー先の論理領域の最低確保容量分)を合計する。
ステップ2020では、システムレベルと上限値レベルの間にある論理領域の使用容量と最低確保容量を、ミラーで重複している分を合計し、この値を使用可能総量として利用可能総量計算処理を終了する。
図21はステップ1720の論理領域使用率情報取得処理(図17)を示すフローチャートである。
ステップ2105では、マスターテーブル101のブロック対応情報(図6参照)を読み込む。
ステップ2110では、ブロック対応情報に含まれる各論理領域の名称ごとに論理ブロック番号で指定された値を参照して、各論理領域のブロック数を数える。たとえば、unit1の論理ブロック番号がブロック1からブロック10まであった場合、unit1のブロック数は10となる。
ステップ2115では、各論理領域の使用中(ブロック対応情報の利用状況がUseを示すもの)のブロック数を数える。
ステップ2120では、前記した使用中のブロック数と、マスターテーブル101の論理領域情報の論理領域の容量(図5参照)とから、各論理領域の使用率を計算する。具体的には、論理領域ごとに、使用中のブロック数にあらかじめ設定された容量を乗じ、当該論理領域の容量に対するその合計値の比率を計算する。
ステップ2125では、計算した各論理領域の使用率をマスターテーブル101に反映する。
図22はステップ1820のデータの書き込み処理(図18)を示すフローチャートである。
ステップ2205では、書き込み領域テーブル作成プログラム209から書き込み領域テーブル105(図8参照)を受け取る。
ステップ2210では、書き込み領域テーブル105のWrite/DeleteのWriteに対応する論理領域の名称で指定された論理領域(例えば、unit4)内の書き込み位置を決定し、書き込み位置テーブル107(図9参照)を作成後、その内容をサーバ2のデータ書き込みプログラム205に送る。書き込み位置の決定は、対応する論理領域内の未使用の論理ブロック番号(利用状況がUnuseを示すもの)をマスターテーブル101のブロック対応情報(図6参照)から選び出して決定する。
ステップ2215では、サーバ2のCPU23上でデータ書き込みプログラム205が、ストレージ装置3にSAN6を介して書き込み要求を出す。この書き込み要求には、ステップ2210で送られた論理領域の名称と論理ブロック番号とが指定される。
ステップ2220では、ストレージ装置3(CPU35を指す)が前記要求に従ってデータを書き込み、アクセス位置テーブル303(図13参照)を作成する。ストレージ装置3は、データを書き込む際、書き込み要求で指定された論理領域の名称と論理ブロック番号とに対応する、ディスク番号(例えば、disk4)と物理ブロック番号(例えば、ブロック1)とを構成情報テーブル305(図14参照)から読み出し、それらに対応するディスクに対する書き込みを行う。このとき、読み出されたディスク番号と物理ブロック番号の組がアクセス位置テーブル303(図13参照)にエントリーされる。
ステップ2225では、管理サーバ5(CPU53を指す)が、ストレージ装置3によって作成されたアクセス位置テーブル303をストレージ装置3からLANを介して受け取り、以降のステップを実行する。
ステップ2230では、受け取ったアクセス位置テーブル303(図13参照)から、マスターテーブル101のアクセスのあった物理ブロックの所属する論理ブロックを使用中にする。具体的には、アクセス位置テーブル303から、ディスク番号と物理ブロック番号の組を読み出し、その組に対応する論理領域の名称と論理ブロック番号とを含むレコードをマスターテーブル101のブロック対応情報(図6参照)から特定し、そのレコードの利用状況にUseの値を入れる。
ステップ2235では、アクセス位置テーブル303(図13参照)の内容をデータ対応テーブル109(図10参照)に反映する。具体的には、アクセス位置テーブル303のディスク番号と物理ブロック番号の組の各値を、該当データのデータ名に対応付けてデータ対応テーブル109に登録する。以上で、データ書き込み処理を終了する。
図23はステップ1810のデータの削除処理(図18)を示すフローチャートである。
ステップ2305では、書き込み領域テーブル作成プログラム209から書き込み領域テーブル105(図8参照)を受け取る。具体的には、書き込み領域テーブル105のWrite/DeleteのDeleteに対応する論理領域の名称で指定された論理領域の名称(例えば、unit2等)と、データ名(例えば、データB等)との各値を受け取る。
ステップ2310では、データ対応テーブル109(図10参照)から、該当データ(例えば、データB)に対応する論理ブロック(論理領域の名称、論理ブロック番号)を記憶し、書き込み位置テーブル107(図9参照)を作成後、サーバ2のデータ削除プログラム206に読み出し要求を出す。作成後の書き込み位置テーブル107には、Write/read、データ名、論理領域の名称、および論理ブロック番号にそれぞれ、対応する値が入れられる。論理ブロック番号は、データ対応テーブル109(図10参照)のデータ名および論理領域の名称(いずれも書き込み領域テーブル105から受け取った値)に対応する値である。
ステップ2315では、サーバ2のCPU23により、データ削除プログラム206がストレージ装置3に対して、SAN6を介して、読み込み要求を出す。
ステップ2320では、ストレージ装置3が前記要求に従ってデータを読み込み、アクセス位置テーブル303(図13参照)を作成する。ストレージ装置3は、データを読み込む際、読み込み要求で指定された論理領域の名称と論理ブロック番号とに対応する、ディスク番号(例えば、disk3)と物理ブロック番号(例えば、ブロック501)とを構成情報テーブル305(図14参照)から読み出し、それらに対応するディスクに対する読み込みを行う。そして、このときに読み出されたディスク番号と物理ブロック番号の組がアクセス位置テーブル303(図13参照)にエントリーされる。
ステップ2325では、管理サーバ5のCPU53により、ストレージ装置3から、LANを介して、作成後のアクセス位置テーブル303(図13参照)を受け取り、以降のステップの処理を実行する。
ステップ2330では、アクセス位置テーブル303に登録している物理ブロックに対応する論理ブロックをマスターテーブル101上で未使用にする。具体的には、アクセス位置テーブル303から、ディスク番号と物理ブロック番号の組を読み出し、その組に対応する論理領域の名称と論理ブロック番号とを含むブロック対応情報(図6参照)のレコードをマスターテーブル101から特定し、そのレコードの利用状況にUnuseの値を入れる。
ステップ2335では、未使用とした論理ブロックに対応する論理領域の名称と論理ブロック番号の組の値に基づいて、データ対応テーブル109(図10参照)の該当データ名と論理ブロック(論理領域の名称、論理ブロック番号)との値を削除する。以上で、データの削除処理を終了する。
図24はステップ1620の構成変更シグナル検知処理(図16)を示すフローチャートである。
ステップ2405では、ストレージ装置3から、ディスク情報テーブル301(図12参照)を取得する。具体的には、ストレージ装置3のディスク情報テーブル作成プログラム317から、ディスク情報テーブル301をLANを介して取得する。
ステップ2410では、ディスク情報テーブル301をマスターテーブル101(図5参照)に反映する。具体的には、ディスク情報テーブル301(図12参照)のディスク番号と、ディスクの容量と、利用開始時との各値をマスターテーブル101のディスク情報(図5参照)の対応する項目に値を登録する。
ステップ2415では、マスターテーブル101のシステム情報の動作内容に「構成変更」の値を入れる。以上で、構成変更シグナル検知処理を終了する。
図25はステップ1510の構成変更データ加工処理を示すフローチャートである。
ステップ2505では、ユーザ設定テーブル103を読み込む。
ステップ2510では、マスターテーブル101を読み込む。
ステップ2510Aでは、ユーザ設定テーブル103に対応するマスターテーブル101のシステム情報の動作内容(図5参照)の値が「ユーザ割り込み」かどうかを判定する。
判定の結果、「ユーザ割り込み」ではない場合は(ステップ2510AのNo)、ステップ2525に進み、他方、「ユーザ割り込み」の場合は(ステップ2510AのYes)、その動作内容の値を消して(ステップ2515)、ユーザ設定テーブル反映処理を実行し(ステップ2520)、ステップ2525に進む。
ステップ2525では、マスターテーブル101のシステム情報の動作内容(図5参照)の値が「定期」かどうか判定し、判定の結果、「定期」でない場合は(ステップ2525のNo)、ステップ2545に進み、他方、「定期」の場合は(ステップ2525のYes)、動作内容の値を消して(ステップ2530)、ディスク使用時間計算処理(図36参照)を実行し(ステップ2535)、論理領域使用率変化情報取得処理(図37参照)を実行した(ステップ2540)後、ステップ2545に進む。
ステップ2545では、動作内容の値が設定されている場合は(ステップ2545のYes)、構成変更データ加工処理を終了し、他方、動作内容に値が設定されていない場合(ステップ2545のNo)、システムレベル情報取得処理(図38参照)を実行し(ステップ2550)、構成変更データ加工処理を終了する。
図26はステップ2520のユーザ設定テーブル反映処理(図25)を示すフローチャートである。
ステップ2605では、マスターテーブル101とユーザ設定テーブル103の各項を比較し、マスターテーブル101とユーザ設定テーブル103との各領域レベル(図5、図7参照)が変更されたかどうかを判断する。その結果、領域レベルが変更された場合(ステップ2605のYes)は、レベル設定処理を実行して(ステップ2610)ステップ2660に進み、他方、変更されなかった場合(ステップ2605のNo)は、マスターテーブル101とユーザ設定テーブル103との各使用率の閾値(図5、図7参照)が変更されたかどうかを判断する(ステップ2615)。
閾値が変更された場合は(ステップ2615のYes)、閾値設定処理を実行して(ステップ2620)、ステップ2660に進み、他方、変更されなかった場合は(ステップ2615のNo)、マスターテーブル101とユーザ設定テーブル103との各耐久時間(図5、図7参照)が変更されたかどうかを判断する(ステップ2625)。その結果、耐久時間が変更された場合(ステップ2625のYes)は、耐久時間設定処理(図31参照)を実行して(ステップ2630)ステップ2660に進み、他方、変更されなかった場合(ステップ2625のNo)は、マスターテーブル101とユーザ設定テーブル103との各論理領域の容量(図5、図7参照)が変更されたかどうかを判断する(ステップ2635)。
論理領域の容量が変更された場合は(ステップ2635のYes)、容量変更処理(図32参照)を実行して(ステップ2640)ステップ2660に進み、他方、変更されなかった場合は(ステップ2635のNo)、ユーザ設定テーブル103にマスターテーブル101にはない新規な論理領域を作成したかどうかを判断する(ステップ2645)。その結果、論理領域を作成したと判断された場合(ステップ2645のYes)は、新規領域作成処理(図35参照)を実行して(ステップ2650)ステップ2660に進み、他方、作成されていなかった場合(ステップ2645のNo)は、マスターテーブル101のシステム情報のユーザ設定(図5参照)を完了にする(ステップ2655)。
ステップ2660では、マスターテーブル101のシステム情報のユーザ設定(図5参照)を未完了にする。以上で、ユーザ設定テーブル反映処理を終了する。
図27はステップ2610のレベル設定処理(図26)を示すフローチャートである。
ステップ2705では、前記した利用可能総量(図20参照)を仮利用可能総量として記憶する。
ステップ2710では、マスターテーブル101の領域レベルがユーザ設定テーブル103の領域レベルよりも大きい論理領域があるかどうかを判断し、その結果、それがある場合(ステップ2710のYes)、該当する論理領域の名称を全て記憶し(ステップ2715)、論理領域レベル低下判定処理を実行して(ステップ2720)ステップ2725に進む。他方、無ければ(ステップ2710のNo)、ステップ2725に進む。
ステップ2725において、マスターテーブル101の領域レベルがユーザ設定テーブル103の領域レベルよりも小さい論理領域がある場合(Yes)、該当する論理領域の名称をすべて記憶し(ステップ2730)、領域レベル上昇判定処理(図29参照)を実行して(ステップ2735)、ステップ2740に進む。他方、無ければ(ステップ2725のNo)、ステップ2740に進む。
ステップ2740では、マスターテーブル101の動作内容の値が「設定不可」かどうか判定し、判定の結果、「設定不可」でない場合は(ステップ2740のNo)、ユーザ設定テーブル103の領域レベルをマスターテーブル101に反映させる。その後、レベル設定処理を終了する。
他方、動作内容の値が「設定不可」の場合は(ステップ2740のYes)、レベル設定処理を終了する。
図28はステップ2720の領域レベル低下判定処理(図27)を示すフローチャートである。
ステップ2805では、ステップ2715(図27参照)で論理領域の名称を記憶した中で領域レベルが最大の論理領域の名称を読み込む。
ステップ2810では、読み込んだ論理領域の名称に対応する論理領域の領域レベルが、マスターテーブル101のシステムレベル(図5参照)未満かどうかを判定し、判定の結果、領域レベルがシステムレベル以上の場合は(ステップ2810のNo)、ステップ2825に進む。他方、領域レベルがシステムレベル未満の場合(ステップ2810のYes)、マスターテーブル101の動作内容(図5参照)の値を「ミラーレベル」にして(ステップ2815)、仮利用可能総量に該当論理領域分の大きさを加え、ステップ2825に進む。
ステップ2825では、記憶している論理領域の名称があるか判定(すべての論理領域の名称に対する処理を実行したかどうかということ)し、判定の結果、それがある場合は(ステップ2825のYes)、次に領域レベルの大きい論理領域の名称を読み込む(ステップ2830)。他方、記憶している論理領域の名称が無くなった場合は(ステップ2825のNo)、領域レベル低下判定処理を終了する。
図29はステップ2735の領域レベル上昇判定処理(図27)を示すフローチャートである。
ステップ2905では、ステップ2730で論理領域の名称を記憶した中で領域レベルが最大の論理領域の名称を読み込む。
ステップ2910では、読み込んだ論理領域の名称に対応する、マスターテーブル101の領域レベル(図5参照)が、システムレベル未満かどうかを判定し、判定の結果、システムレベル未満で(ステップ2910のYes)、かつ、ユーザ設定テーブル103の領域レベル(図7参照)がマスターテーブル101のシステムレベル以上の場合(ステップ2915のYes)、ステップ2920に進む。
ステップ2920において、読み込んだ論理領域の名称に関し、ユーザ設定テーブル103の領域レベルが、マスターテーブル101の上限値レベル以上で(ステップ2920のYes)、かつ、仮利用可能総量よりも当該論理領域の容量が大きい場合(ステップ2925のYes)、マスターテーブル101の動作内容(図5参照)の値を「設定不可」にして(ステップ2945)、領域レベル上昇判定処理を終了する。
ステップ2930では、当該論理領域の大きさ分を仮利用可能総量から引き、マスターテーブル101の動作内容(図5参照)に「ミラーレベル」に入れて(ステップ2935)、ステップ2940に進む。
ステップ2940では、記憶している他の論理領域の名称があるかを判定し、判定の結果、それがある場合は(ステップ2940のYes)、次に領域レベルの大きい論理領域の名称を読み込み(ステップ2950)、ステップ2910に戻って、次に論理レベルが大きい論理領域の名称に関する処理を同様に行う。他方、他の論理領域の名称が無い場合は(ステップ2940のNo)、領域レベル上昇判定処理を終了する。
図30はステップ2620の閾値設定処理(図26)を示すフローチャートである。閾値設定処理では、使用率の閾値の大きい論理領域の名称の順に行う。
ステップ3005では、ユーザ設定テーブル103(図7参照)の閾値を変更した論理領域の名称を記憶する。
ステップ3010では、記憶した論理領域の中で閾値の大きい論理領域の名称を読み込む。
ステップ3015では、ユーザ設定(ユーザ設定テーブル103)の閾値がマスターテーブル101の使用率(図4参照:現在のもの)より小さい場合は(ステップ3015のNo)、マスターテーブル101の動作内容の値に「設定不可」を入れて(ステップ3035)、閾値設定処理を終了する。他方、当該閾値が大きい場合は(ステップ3015の
Yes)、次の論理領域(閾値が次に大きい論理領域の名称)があれば(ステップ3020のYes)、次の論理領域を読み込んで(ステップ3025)、ステップ3015に戻って、当該論理領域に関する処理を同様に行う。このようにして、すべての論理領域についての処理を実行し、それが無くなったら(ステップ3020のNo)、ユーザ設定テーブル103の閾値をマスターテーブル101の使用率の閾値に反映して(ステップ3030)、閾値設定処理を終了する。
図31はステップ2630の耐久時間設定処理(図26)を示すフローチャートである。
ステップ3105では、ユーザ設定テーブル103の耐久時間をマスターテーブル101のディスク情報の耐久時間(図5参照)に反映して、耐久時間設定処理を終了する。
図32はステップ2640の容量変更処理(図26)を示すフローチャートである。
ステップ3205では、前記した利用可能量(図19参照)を仮利用可能量として記憶する。
ステップ3210では、論理領域の容量を減らしている論理領域があるか判定し、無い場合は(ステップ3210のNo)、ステップ3225に進み、他方、有る場合は(ステップ3210のYes)、該当する論理領域の名称をすべて記憶し(ステップ3215)、容量減少処理(図33参照)を実行する(ステップ3220)。
ステップ3225では、論理領域の容量を増やしている論理領域があるか判定し、無い場合は(ステップ3225のNo)、ステップ3240に進み、他方、有る場合は(ステップ3225のYes)、該当する論理領域の名称をすべて記憶し(ステップ3230)、容量増加処理(図34参照)を実行する(ステップ3235)。
ステップ3240では、マスターテーブル101の動作内容(図5参照)の値が「設定不可」かどうかを判定し、「設定不可」の場合は(ステップ3240のYes)、容量変更処理を終了し、他方、「設定不可」でない場合は(ステップ3240のNo)、ユーザの設定したユーザ設定テーブル103(図7参照)の論理領域の容量をマスターテーブル101に反映し(ステップ3245)、マスターテーブル101(図5参照)の動作内容の値に「容量変更」を入れて(ステップ3250)、容量変更処理を終了する。
図33はステップ3220の容量減少処理(図32)を示すフローチャートである。
ステップ3305では、ステップ3215(図32参照)で論理領域の名称を記憶した中で領域レベルが最大の論理領域の名称をユーザ設定テーブル103(図7参照)から読み込む。
ステップ3310では、読み込んだ論理領域の名称に関し、当該論理領域の現在の使用容量(マスターテーブル101の使用率から算出したもの)と、ユーザ設定テーブル103に設定された論理領域の容量とその閾値とから求められる論理領域の容量(設定後の容量と閾値から求められる容量:設定後の容量ともいう)とを比較する。比較の結果、現在の使用容量が、求められる容量より大きい場合は(ステップ3310のYes)、マスターテーブル101の動作内容の値に「設定不可」を入れて(ステップ3330)、容量減少処理を終了する。
他方、現在の使用容量が小さい場合は(ステップ3310のNo)、前記した仮利用可能量に論理領域の容量の減少分(現在の使用容量と設定後の容量との差分値)を足す(ステップ3315)。
ステップ3320では、記憶した論理領域の名称が有るかどうか判定し、有れば(ステップ3320のYes)、次に領域レベルの高い論理領域の名称を読み込み(ステップ3325)、ステップ3310に進み、その論理領域に関する処理を実行する。他方、記憶した論理領域の名称が無い場合(ステップ3320のNo)、容量減少処理を終了する。
図34はステップ3235の容量増加処理(図32)を示すフローチャートである。
ステップ3405では、ステップ3215(図32参照)で論理領域の名称を記憶した中で領域レベルの最大の論理領域の名称をユーザ設定テーブル103から読み込む。
ステップ3410では、読み込んだ論理領域の名称に関し、マスターテーブル101の論理領域の容量とユーザ設定テーブル103の論理領域の容量を比較し、論理領域の容量の増加分が、仮利用可能量より大きいか判定する。その結果、大きい場合は(ステップ3410のYes)、マスターテーブル101の動作内容の値に「設定不可」を入れ(ステップ3430)、容量増加処理を終了する。他方、前記した増加分が小さい場合は(ステップ3410のNo)、仮利用可能量からその論理領域の増加分を引いて(ステップ3415)、ステップ3420に進む。
ステップ3420では、記憶した論理領域の名称があるかどうかを判定し、あれば(ステップ3420のYes)、次の領域レベル(高いもの)の論理領域の名称を読み込み(ステップ3425)、ステップ3410に進み、その論理領域に関する処理を実行する。他方、記憶した論理領域の名称がない場合(ステップ3420のNo)、容量増加処理を終了する。
図35はステップ2650の新規領域設定処理(図26)を示すフローチャートである。
ステップ3505では、ステップ2645のYes(図26参照)を受け、ユーザ設定テーブル103(図7参照)の新規領域(論理領域の容量)が利用可能量よりも大きい場合(ステップ3505のYes)、当該新規領域の容量を前記利用可能量に書き換え(ステップ3510)、ユーザ設定テーブル103の新規領域のデータ(ユーザ論理領域情報の各値、ユーザディスク情報の各値)をマスターテーブル101(図5、図6参照)に反映し(ステップ3515)、マスターテーブル101の動作内容(図5参照)の値に「新規作成」を入れ(ステップ3520)、新規領域設定処理を終了する。
図36はステップ2535のディスク使用時間計算処理(図25)を示すフローチャートである。ディスク使用時間計算処理では、全てのディスクに対して、ディスク番号の小さい順にマスターテーブル101の使用開始時刻からディスクの使用時間を計算する。
ステップ3605では、マスターテーブル101のディスク情報(図5参照)から、ディスク番号の一番小さいディスクの情報(使用開始、耐久時間、使用時間の各値)を読み込む。
ステップ3610では、読み込んだディスクの情報中の使用開始で示されたディスク使用開始時刻からディスクの使用時間(現在までの累計)を計算する。
該当ディスクの耐久時間を超えて使用され(ステップ3615のYes)、かつ、該当ディスクにunit0以外の論理領域が有り(ステップ3620のYes)、さらにその論理領域がミラー化されていない場合は(ステップ3625のYes)、マスターテーブル101の該当論理領域の領域レベルを上限値レベルの一つ下(例えば、5→4)に変更する(ステップ3630)。
ステップ3635では、マスターテーブル101の動作内容の値に「ミラーレベル」を入れて、ステップ3640に進む。なお、ステップ3615、ステップ3620またはステップ3625でNoの場合も、ステップ3640に進む。
ステップ3640では、マスターテーブル101のディスク情報に次のディスクが無いかどうかを判定し(ステップ3640)、あれば(ステップ3640のYes)、ステップ3610に進み、次の番号のディスクに関する処理を実行し、他方、無ければ(ステップ3640のNo)、ディスク使用時間計算処理を終了する。
図37はステップ2540の論理領域使用率変化情報取得処理(図25)を示すフローチャートである。
ステップ3705では、マスターテーブル101の使用率変化情報(図6参照)が、ユーザ設定テーブル103で指定した回数分(つまり、ユーザが設定した回数分)登録されているかを判定し、有れば(ステップ3705のYes)、マスターテーブル101の使用率変化情報から最初に取ったデータ、すなわち以前登録したマスターテーブル101の使用率の値を削除し、ステップ3715に進む。他方、無ければ(ステップ3705のNo)、ステップ3715に進む。
ステップ3715では、マスターテーブル101の使用率を使用率変化情報の値に反映させる(マスターテーブル101の使用率を使用率変化情報に加えるともいう)。以上で、本処理を終了する。
図38はステップ2550のシステムレベル情報取得処理(図25)を示すフローチャートである。
ステップ3805では、設定値レベル以上にミラー化されていない論理領域があるかどうかを判定する。具体的には、マスターテーブル101の領域レベルが設定値レベル以上で、かつマスターテーブル101の論理領域の状態がミラー無を示している論理領域の名称があるかどうかを判定する。その結果、そのような論理領域があれば(ステップ3805のYes)、マスターテーブル101の動作内容の値に「ミラーレベル」を入れる(ステップ3815)。
他方、無ければ(ステップ3805のNo)、システムレベル未満にミラー化されている論理領域があるかどうかを判定する(ステップ3810)。具体的には、マスターテーブル101の領域レベルがシステムレベル未満で、かつマスターテーブル101の論理領域の状態がミラー有を示している論理領域の名称があるかどうかを判定する。その結果、そのような論理領域があれば(ステップ3810のYes)、ステップ3815に進み、他方、なければ(ステップ3810のNo)、本処理を終了する。
図39はステップ1520の構成変更実行処理(図15)を示すフローチャートである。
ステップ3905では、マスターテーブル101を読み込む。
ステップ3910では、マスターテーブル101の動作内容の値がどれかを判定し、「緊急」の場合は緊急動作処理(図40参照)を実行し(ステップ3915)、「不足」の場合は不足動作処理(図41参照)を実行する(ステップ3920)。
「書き込み」の場合は、書き込み動作処理(図42参照)を実行し(ステップ3925)、「ミラーレベル」の場合は、ミラーレベル処理(図43参照)を実行する(3930)。
「新規作成」の場合は、新規作成動作処理(図46参照)を実行し(ステップ3935)、「構成変更」の場合は、構成変更動作処理(図47参照)を実行する(ステップ3940)。
「容量変更」の場合は、容量変更動作処理(図50参照)を実行し(ステップ3945)、「設定不可」の場合は、マスターテーブル101の動作内容の値を消す(ステップ3955)。このように動作内容の各値に従って実行した後、構成変更実行処理を終了する。
図40はステップ3915の緊急動作処理(図39)を示すフローチャートである。
ステップ4005では、マスターテーブル101の動作内容の値を「ミラーレベル」に変更する。
ステップ4010では、その後、書き込み領域テーブル105(図8参照)を読み込み、そのテーブル105の論理領域の名称に書き込む論理領域(例えば、XX)を記憶する。
ステップ4015では、データの大きさから、書き込みに必要な論理領域のブロック数を計算する。
ステップ4020では、マスターテーブル101のブロック対応情報(図6参照)を参照し、各論理領域の未使用ブロック(利用状況がUnuseの論理ブロック番号分)を利用可能な数だけ、マスターテーブル101のブロック対応情報のunit0に登録する。
ステップ4025では、ミラー解除が可能な論理領域のミラー先の全ブロックをマスターテーブル101のブロック対応情報のunit0に登録する。
ステップ4030では、マスターテーブル101の内容をストレージ装置3の構成情報テーブル305(図14参照)に反映させる。具体的には、管理サーバ5が、マスターテーブル101の内容をLANを介して、ストレージ装置3に送信し、ストレージ装置3が、その内容に構成情報テーブル305の内容に更新する。
ステップ4035では、マスターテーブル101のunit0の論理ブロック番号のブロックを必要分数、書き込み位置テーブル107に登録する。
ステップ4040では、サーバ2のデータ書き込みプログラム205と、ストレージ装置3の処理(書き込みプログラム311とアクセス位置テーブル作成プログラム315)が終わるのを待つ。
ステップ4045では、ストレージ装置3のアクセス位置テーブル作成プログラム315からアクセス位置テーブル303を受け取り、アクセス位置テーブル303からマスターテーブル101へのアクセスがあったブロックを、たとえばUnitXXの論理領域の名称に対応付けて、マスターテーブル101に登録し、その利用状況を使用中(Use)にする(ステップ4050)。
ステップ4055では、たとえばUnitXX(論理領域の名称)がミラー化されているかどうかを判定し、ミラー化されていれば(ステップ4055のYes)、当該論理領域のミラーを解除し、マスターテーブル101に反映する(ステップ4060)。ミラー化の判定では、マスターテーブル101の論理領域(UnitXX)の状態がミラー有を示していれば、ミラー化されていると判定する。
ステップ4065では、マスターテーブル101に追加された論理ブロック情報(論理ブロック番号の値)とその論理領域の名称との組を記憶し、その組の各値と書き込み領域テーブル105のデータ名とをデータ対応テーブル109に追加して反映する(ステップ4070)。
ステップ4075では、マスターテーブル101の内容をストレージ装置3の構成情報テーブル305に反映させ、書き込み完了シグナルをサーバ2のユーザ連絡プログラム204に発信し、緊急動作処理を終了する。
図41はステップ3920の不足動作処理(図39)を示すフローチャートである。
ステップ4105では、マスターテーブル101の動作内容の値を消し、ステップ4110では、書き込み領域テーブル105を読み込み、そのテーブル105の論理領域の名称に書き込む論理領域(たとえば、unitXX)を記憶する。
ステップ4115では、データの大きさから、書き込みに必要な論理領域のブロック数を計算する。
ステップ4120では、マスターテーブル101のブロック対応情報(図6参照)を参照し、他の論理領域の未使用ブロック(利用状況がUnuseの論理ブロック番号)を利用可能な数分、マスターテーブル101のブロック対応情報のunit0に登録する。
ステップ4125では、マスターテーブル101の内容をストレージ装置3の構成情報テーブル305(図14参照)に登録する。具体的には、管理サーバ5が、マスターテーブル101の内容をLANを介してストレージ装置3に送信し、ストレージ装置3が、その内容に構成情報テーブル305の内容に更新する。
ステップ4130では、マスターテーブル101のunit0の論理ブロック番号のブロックを必要な分だけ、書き込み位置テーブル107に登録し、サーバ2のデータ書き込みプログラム205に書き込み要求を出す。
ステップ4135では、サーバ2のデータ書き込みプログラム205と、ストレージ装置3の処理(書き込みプログラム311とアクセス位置テーブル作成プログラム315)が終わるまで待ち、それが終わると、ストレージ装置3からアクセス位置テーブル303をLANを介して受け取る(ステップ4140)。
ステップ4145では、アクセス位置テーブル303からマスターテーブル101へのアクセスがあったブロックを、たとえばUnitXXの論理領域の名称に対応付けて、マスターテーブル101に登録し、その利用状況を使用中(Use)にする。
ステップ4150では、たとえばUnitXX(論理領域の名称)がミラー化されているかどうかを判定し、ミラー化されていれば(ステップ4150のYes)、当該論理領域のミラーを解除してマスターテーブル101に反映し、マスターテーブル101の動作内容の値に「ミラーレベル」を入れる(ステップ4155)。マスターテーブル101の論理領域(UnitXX)の状態がミラー有を示していれば、ミラー化されていると判定される。
ステップ4160では、マスターテーブル101に追加された論理ブロック情報(論理ブロック番号の値)とその論理領域の名称との組を記憶し、その組の各値と書き込み領域テーブル105のデータ名とをデータ対応テーブル109に追加して反映する(ステップ4165)。
ステップ4170では、マスターテーブル101の内容をストレージ装置3の構成情報テーブル305に反映させ、ステップ4175では、書き込み完了シグナルをサーバ2のユーザ連絡プログラム204に発信し、不足動作処理を終了する。
図42はステップ3925の書き込み動作処理(図39)を示すフローチャートである。
ステップ4205では、マスターテーブル101(図5参照)の使用率がその閾値を超えた論理領域の名称を記憶し、ステップ4210では、マスターテーブル101の使用率変化情報(図6参照)から、該当論理領域の過去の使用率変化を読み込む。
ステップ4215では、使用率変化から、構成変更後における該当論理領域に追加する容量の大きさを要求量(容量増加要求量ともいう)として決定する。つまり、増加される論理領域の容量を予測する。たとえば、使用率変化情報(図6参照)を参照し、測定期間中の使用率の変化の割合を求めて、同じ期間経過した時の増加分を要求量にする。図6では、unit4は、前回から現在までの間に25%(95%−70%)増加しているので、この25%の増加分を見込んで要求量としてもよい。
要求量がunit0の論理領域の容量より小さい場合は(ステップ4220のNo)、マスターテーブル101のunit0の論理ブロックを要求量分だけ、該当論理領域に割り当て(ステップ4225)、ステップ4240に進む。他方、要求量がunit0より大きい場合は、unit0のブロックを全て該当論理領域に割り当て(ステップ4230)、容量不足シグナルをサーバ2のユーザ連絡プログラム204に発信し(ステップ4345)、ステップ4240に進む。
ステップ4240では、マスターテーブル101の内容をストレージ装置3に送信して、ストレージ装置3の構成情報テーブル305に反映させる。
ステップ4245では、その後、マスターテーブル101の動作内容の値を消して、書き込み動作処理を終了する。
図43はステップ3930のミラーレベル動作処理(図39)を示すフローチャートである。
ステップ4305では、マスターテーブル101の論理領域情報を参照し、システムレベル未満でミラー化されている論理領域があれば(ステップ4305のYes)、ステップ4310に進む。
ステップ4310では、システムレベル未満でミラー化されている論理領域について、マスターテーブル101のミラー先物理ブロック番号に対応する論理領域をunit0に登録し、ミラー化されているマスターテーブル101の論理領域の状態をミラー無しにする。具体的には、当該論理領域に対応する、ミラー先物理ブロック番号とミラー先ディスク番号との組をマスターテーブル101(図5参照)およびミラーテーブル110(図11参照)から読み出し、その組に対応する論理領域をunit0としてマスターテーブル101に登録する。
ステップ4315では、設定値レベル以上でミラー化されていないものがあるかを判定し、無い場合は(ステップ4315のNo)、ステップ4335に進む。他方、有る場合(ステップ4315のYes)、ミラー作成処理(図44参照)を実行する(ステップ4320)。
ステップ4305Aでは、システムレベル未満でミラー化されている論理領域があるか判定し、有る場合は(ステップ4305AのYes)、ステップ4310に戻り、他方、無い場合(ステップ4305AのNo)は、上限値レベル以上でミラー化されていない論理領域があるかを判定する(ステップ4325)。
上限値レベル以上の論理領域が全てミラー化されている場合は(ステップ4325のNo)、ステップ4335に進み、そのような論理領域が有る場合は(ステップ4325のYes)、ミラーレベル緊急シグナルをサーバ2のユーザ連絡プログラム204に発信し(ステップ4330)、ステップ4335に進む。
ステップ4335では、マスターテーブル101の内容をストレージ装置3に送信し、ストレージ装置3の構成情報テーブル305に反映させる。その後、ステップ4340では、マスターテーブル101の動作内容の値を消し、ミラーレベル動作処理を終了する。
図44はステップ4320のミラー作成処理(図43)を示すフローチャートである。
ステップ4410では、設定値レベル以上でミラー化されていない論理領域を例えば領域群Aとすると、その領域群Aの中で、マスターテーブル101の領域レベルが最大の論理領域を、例えば領域aとして記憶する。
ステップ4415では、領域aが使用しているディスクを、例えばディスク群Bとすると、そのディスク群Bの中で最も多く領域aの物理ブロックを割り当てているディスクを、例えばディスクbとして記憶する。なお、ディスク群Bは、マスターテーブル101のブロック対応情報をもとに、領域aに対応するディスク番号を特定して選定する。
ステップ4420では、領域aかつディスクbの物理ブロックを例えばブロック群Cとして記憶し、ブロック群Cのブロック数を、例えばMとして記憶する。ブロック群Cのブロック数は、領域aに対応する物理ブロック番号と、ディスクbに対応する物理ブロック番号とをマスターテーブル101から選定し、それらを合算した値である。
ステップ4425では、マスターテーブル101の全論理領域を例えば領域群Dとして記憶し、ステップ4430では、領域群Dの中で領域レベルの最低の論理領域を例えば領域dとして記憶する。
ステップ4435では、領域dの未使用ブロック(未使用の物理ブロック)をブロック群Eとして記憶し、ステップ4437では、そのブロック群Eの物理ブロック数Nを計算する。
ステップ4440では、領域dの使用率の閾値(図5参照)から利用可能な物理ブロック数nを計算する。
ステップ4445では、ブロック群Eの物理ブロックでミラーを構築できるか判定するために、物理ブロック数Nからブロック群Eでディスクbの物理ブロック数を引いた数が物理ブロック数nより大きいか判定する。その結果、大きい場合は(ステップ4445のYes)、ステップ4455に進む。他方、小さい場合は(ステップ4445のNo)、物理ブロック数Nからブロック群Eでディスクbの物理ブロック数を引いた数を物理ブロック数nの値として(ステップ4450)、ステップ4455に進む。
ステップ4455では、ブロック群Cの物理ブロックをミラー元の物理ブロックと、ブロック群Eかつディスクb以外の物理ブロックをミラー先のブロックとしてミラーテーブル110(図11参照)に登録する。
ステップ4460では、ミラーを行う必要のある物理ブロックがあるか判定するために、物理ブロック数Mから物理ブロック数nを引いた数が負かどうかを判定し、正の場合は、図45のステップ4505に進み、負の場合は、図45のステップ4540に進む。
図45のステップ4505は、物理ブロック数Mから物理ブロック数nを引いた数をMとする。
図45のステップ4515では、領域群Dの中で、領域dの次に領域レベルの低い論理領域があれば(ステップ4515のある)、ステップ4520に進み、領域群Dの中で領域dの次に領域レベルが低い論理領域を領域dとし、図44のステップ4420に戻る。
他方、図45のステップ4515において、領域レベルの低い論理領域が無ければ(ステップ4515のない)、ステップ4525では、ミラーテーブル(図11参照)の内容をクリアし、ステップ4530に進む。
ステップ4530では、領域aの領域レベルが、マスターテーブル101の上限値レベル以上かを判定し、上限値レベル以上の場合は(ステップ4530のYes)、ステップ4535では、システムレベルを上限値レベルの値にして、ミラー作成処理を終了する。
他方、領域aが上限値レベル未満の場合は(ステップ4530のNo)、ステップ4575では、システムレベルとして領域aの領域レベルより1大きい値をマスターテーブル101に登録し、ミラー作成処理を終了する。
ステップ4540では、ディスク群B内でディスクbの次に領域aのブロックを割り当てられているディスクがあるか判定し、ある場合は(ステップ4540のある)、ステップ4545に進み、そのディスクをディスクbとして、図44のステップ4420に戻る。他方、ない場合は(ステップ4540のない)、ミラーテーブル110(図11参照)をストレージ装置3に送り、ストレージ装置3にミラーの同期を実行させる。
ステップ4555では、ミラーテーブル110の内容をマスターテーブル101に反映させる。具体的には、マスターテーブル101の論理領域の状態を含む論理領域情報等の値を整合させる。
ステップ4557では、マスターテーブル101の領域aの論理領域の状態(図5参照)をミラー有りに変更し、ステップ4560に進む。
ステップ4560では、マスターテーブル101を参照し、領域群Aで領域aの次に領域レベルの高い論理領域があるかを判定し、ある場合は(ステップ4560のある)、その論理領域を領域aとして(ステップ4565)、図44のステップ4415に戻る。他方、無い場合は(ステップ4560のない)、システムレベルとして設定値レベルをマスターテーブル101に登録し(ステップ4570)、ミラー作成処理を終了する。
図46はステップ3935の新規作成動作処理(図39)を示すフローチャートである。
ステップ4605では、作成する論理領域(該当論理領域ともいう)の名称を記憶し、ステップ4610では、作成する論理領域の容量を記憶する。
ステップ4615では、マスターテーブル101を参照し、該当論理領域の容量がunit0より大きいか判定し、大きい場合は(ステップ4615のYes)、unit0の論理ブロックを全て該当論理領域に割り当てる(ステップ4625)。ステップ4630では、作成要求された論理領域の容量分の要求量からunit0の分だけ引き、ステップ4635では、要求量を満たすように領域レベルの低いほうからマスターテーブル101の未使用ブロックを割り当て、ステップ4640では、容量不足シグナルをサーバ2のユーザ連絡プログラム204に送り、ステップ4645に進む。
他方、該当論理領域の容量がunit0より小さい場合は(ステップ4615のNo)、unit0のブロックから、該当論理領域の容量分だけ該当論理領域に割り当て(ステップ4620)、ステップ4645に進む。
ステップ4645では、マスターテーブル101の内容をストレージ装置3に送信し、そのテーブル101の内容をストレージ装置3の構成情報テーブル305に反映させた後、マスターテーブル101の動作内容の値を「ミラーレベル」に変更し、新規作成動作処理を終了する。
図47はステップ3940の構成変更動作処理(図39)を示すフローチャートである。
ステップ4703では、マスターテーブル101の動作内容の値を消し、ステップ4705では、ユーザによってディスク(耐久時間が超過したものに代わるもの)が追加されたのかどうかを判定する。その結果、追加された場合(ステップ4705のYes)、ディスク増加処理(図48参照)を実行し(ステップ4710)、ユーザによってディスク(耐久時間が超過したもの)が取り外された場合(ステップ4705のNo)、ディスク減少処理(図49参照)を実行する(ステップ4715)。その後、ステップ4720では、マスターテーブル101の内容をストレージ装置3に送信し、その内容をストレージ装置3の構成情報テーブル305(図14参照)に反映させ、構成変更動作処理を終了する。
図48はステップ4710のディスク増加処理(図47)を示すフローチャートである。
ステップ4805では、追加された該当ディスクの容量を全てunit0としてマスターテーブル101に反映し、ステップ4810では、ユーザ設定テーブル103の領域レベルをマスターテーブル101に反映し、ディスク増加処理を終了する。
図49はステップ4715のディスク減少処理(図47)を示すフローチャートである。
ステップ4905では、該当ディスクに所属する物理ブロックに関し、マスターテーブル101のマーク(図6参照)の部分に不可マークをつけ、以降、不可マークのついた物理ブロックに対して以下の処理を行う。
マスターテーブル101を参照して、不可マークのついた物理ブロックを持つ論理ブロックがミラー化されているかを判定し(ステップ4910)、ミラー化されていれば(ステップ4910のYes)、ステップ4915に進み、他方、ミラー化されていなければ(ステップ4910のNo)、ステップ4935に進む。
ステップ4915では、該当物理ブロックの所属する論理領域を記憶し、ステップ4920では、その該当する論理領域のミラーを解除し(マスターテーブル101の論理領域の状態をミラー無にする)、ステップ4925では、解除された物理ブロックをunit0に割り当て、ステップ4930では、マスターテーブル101の動作内容の値を「ミラーレベル」にする。
他方、ステップ4910において、ミラー化されていなければ(ステップ4910のNo)、ステップ4935に進み、マスターテーブル101を参照して、該当論理ブロックはUnit0に所属しているかどうかを判定し、所属していれば(ステップ4935のYes)、ステップ4945に進む。他方、所属していなければ(ステップ4935のNo)、マスターテーブル101の該当論理領域ブロックが所属する論理領域の状態を破損にし(ステップ4940)、該当物理ブロックをマスターテーブル101のunit0に登録し(ステップ4943)、ステップ4945に進む。
ステップ4945では、マスターテーブル101を参照し、該当論理ブロックがunit0に所属せず、かつ、不可マークのついた物理ブロックがあるかを判定し、それがあるならば(ステップ4945のYes)、Unit0に所属していない次の物理ブロックをマスターテーブル101から特定して(ステップ4945)、ステップ4910に進み、その物理ブロックに関する処理を行う。他方、それが無ければ(ステップ4945のNo)、マスターテーブル101の不可マークのついた物理ブロック(物理ブロック番号)を削除し(ステップ4955)、ディスク減少処理を終了する。
図50はステップ3945の容量変更動作処理(図39)を示すフローチャートである。
ステップ5005では、容量を減少させる論理領域(該当論理領域ともいう)の名称を記憶し、ステップ5010では、その記憶した中で領域レベルの最大の論理領域をマスターテーブル101から読み込む。
ステップ5015では、マスターテーブル101の該当論理領域に割り当てられている
未使用ブロック(論理ブロックに対応する物理ブロック)の減少分だけ、unit0に割り当てる。
ステップ5020では、前記読み込んだ論理領域の中で、他に減少させる論理領域があるかを判定し、他にあれば(ステップ5020のYes)、次に領域レベルの大きい論理領域を選定して進み(ステップ5025)、その論理領域に関するステップ5020の処理を行う。他方、論理領域が無ければ(ステップ5020のNo)、容量を増加させる論理領域を記憶する(ステップ5030)。
ステップ5040では、前記記憶した中で領域レベルの最大の論理領域を読み込み、その論理領域について、増加分はunit0だけで足りるか判定し、足りない場合は(ステップ5040のNo)、マスターテーブル101の各論理領域の未使用ブロック(未使用の論理ブロック)を利用可能分、unit0に割り当て(ステップ5045)、ステップ5050に進む。他方、足りる場合は(ステップ5040のYes)、ステップ5050に進む。
ステップ5050では、unit0に割り当てられている論理ブロックを増加分だけ、該当論理領域に割り当てて、ステップ5055に進む。
ステップ5055では、前記読み込んだ論理領域の中で、他に増加させる論理領域があるかを判定し、他にあれば(ステップ5055のYes)、次に領域レベルの大きい論理領域を選定して進み(ステップ5060)、その論理領域に関するステップ5040の処理を行う。他方、論理領域が無ければ(ステップ5055のNo)、マスターテーブル101の内容をストレージ装置3に送信して、ストレージ装置3の構成情報テーブル305に反映させた後、ステップ5070で、マスターテーブル101の動作内容の値を消し、容量変更動作処理を終了する。
このように本実施の形態によると、予め確保した記憶領域が無くても、他の目的で割り当てられている記憶領域の未使用部分や冗長性を解除することで得られる部分を、動的に再割り当てすることで容量不足による障害を防ぐことができる。また、各記憶領域の使用している記憶領域の割合(使用率)を構成変更の判断基準に取り入れることで容量不足になる前に構成変更を行えるようにできる。
これまで説明したボリューム管理システムによって、ストレージ装置3の容量不足の論理領域に対して容量を追加・拡張して論理領域の冗長性を行うが、このストレージ装置3を利用するサーバ2のファイルシステムを考慮する必要がある。
以下、サーバ2でのファイルシステムを考慮したボリューム管理システムについて説明する。なお以下の説明では、これまで説明したものにおいて、追加、変更する部分について説明するものであり、同符号、同処理については既に説明したものと同じ処理を行い、同じ機能を有するものである。
図57は、サーバの構成を示したものである。メモリ24は、図3で説明したプログラムに加え、ファイルシステムインタフェースプログラム5601と、ファイルシステムプログラム5602とが格納され、これらのプログラムはCPU23により実行される。また、メモリ24は、ファイルシステム要求テーブル5603(図58)と、ファイルシステム登録テーブル5604(図59)とが格納され、ファイルシステムインタフェースプログラム5601と、ファイルシステムプログラム5602とがこれらのテーブルを参照して処理を行う。
ファイルシステム要求テーブル5603は、図58に示すように要求、使用論理領域名(論理領域の名称)、ファイルシステムの大きさ、開始論理ブロック、終了論理ブロック、変化要求量の情報を持つ。このファイル要求テーブル5603は、ファイルシステムインターフェースプログラム5602によって生成される。
要求は、ファイルシステムに関する要求内容を示す情報であり、ファイルシステムの作成を要求する「作成」、ファイルシステムの削除を要求する「削除」、ファイルシステムの拡張を要求「拡張」、ファイルシステムの「縮小」等がある。使用論理領域名は、ファイルシステムを作成したい論理領域の名称である。ファイルシステムの大きさは、作成又は拡張された結果のファイルシステムの大きさを示すものである。開始論理ブロックは、ファイルシステムが現在使用している論理領域のうち開始論理ブロックの位置情報であり、終了論理ブロックは、ファイルシステムが現在使用している論理領域のうち終了論理ブロックの位置情報である。変化要求量は、ファイルシステムの大きさの変化を示す変化量である。
例えば図58は、ファイルシステムの「拡張」要求の場合を示しており、論理領域「unit1」に10GBのファイルシステムが論理ブロック1から論理ブロック100によって生成されており、新たに5GBを追加することを示している。ファイルシステムの「作成」の場合には、要求として「作成」が指定され、使用論理領域名称が指定される。同様に削除の場合には、要求として「削除」が指定され、論理領域名称が指定される。ファイルシステムの「縮小」の場合は、要求として「縮小」が指定され、使用論理領域名、ファイルシステムの大きさ、開始論理ブロック、終了論理ブロック、変化要求量が設定される。なお、「縮小」の場合には、ファイルシステムの大きさ及び開始論理ブロック、あるいは終了論理ブロックのいずれかの指定であってもよい。
ファイルシステム登録テーブル5604は、図59に示すように使用論理領域名、ファイルシステムの大きさ、開始論理ブロック、終了論理ブロックの情報を持つ。使用論理領域名は、ファイルシステムを作成したい論理領域の名前を示す。開始論理ブロックは、ファイルシステムが現在使用している論理領域の開始論理ブロックの位置情報を示すものであり、終了論理ブロックは、ファイルシステムが現在使用している論理記憶領域の終了論理ブロックの位置情報である。ファイルシステムが複数ある場合には、ファイルシステムごとに、使用論理領域名、ファイルシステムの大きさ、開始論理ブロック、終了論理ブロックが登録される。
ファイルシステムの作成、削除、拡張の場合には、ファイルシステムプログラム5602からファイルインターフェースプログラム5601に要求に基づくファイルシステム要求テーブルの作成を依頼し、作成されたファイルシステム要求テーブルを管理サーバ5のワークロードボリュームマネージャ1へ送る。また縮小の場合には、ワークロードボリュームマネージャ1からファイルシステムインタフェースプログラム5601を介して、ファイルシステムプログラム5602へ通知される。
ファイルシステムプログラム5602について説明する。ファイルシステム作成処理は、新たにファイルシステムを作成する処理である。ファイルシステムの作成を行う場合の論理領域の名称は、そのファイルシステムを利用するユーザによって指定される場合と、作成の要求だけをユーザが指定しファイルシステムプログラム5602によって論理領域の名称が指定される場合がある。ユーザによって指定される場合は、ファイルシステムプログラム5602が、当該論理領域の名称がマスターテーブルに既に登録されているかを確認し、既に登録されている場合には、ユーザに再指定を要求する。また、ファイルシステムプログラム5602が指定する場合は、マスターテーブルを参照し、まだ使用されていない論理領域の名称を設定する。例えば、unit3まで登録されている場合には、次に数値が大きいunit4を論理領域の名称として設定する。また、削除要求については、ユーザから論理領域の名称が指定される。ファイルシステムプログラムは、ファイルシステムの作成要求と、ファイルシステムを作成する論理領域の名称とをファイルシステムインタフェースプログラム5601へ送る。
また、ファイルシステム削除処理は、既に存在しているファイルシステムを削除する処理であり、ユーザからファイルシステムの削除要求を受けると、ファイルシステム登録テーブルから該当する使用論理領域の名称を読み出し、ファイルシステムの削除要求と、使用論理領域の名称をファイルシステムインタフェースプログラム5601へ送る。
また、ファイルシステムプログラム5602はデータの書き込み要求に基づいてファイルシステムの容量を監視し、空き領域がない場合や使用率が一定値を超えた場合に容量不足と判断する。この場合、ファイルシステムプログラム5602は、ファイルシステムの拡張要求、拡張要求量、拡張するファイルシステムに割当てられている論理領域の名称をファイルシステムインタフェースプログラム5601へ送る。この場合、拡張要求量は予め定められた値やユーザからの要求によって設定する値にしてもよいし、ファイルシステムプログラムが決めた値にしてもよい。
また、ファイルシステムプログラム5602は、ファイルシステムの縮小要求、縮小するファイルシステムの存在する論理領域の名称をインタフェースプログラム5601から受け取る。これを受けたファイルシステムは、縮小するファイルシステムに割り当てられている論理領域の名称、縮小後のファイルシステムの大きさを他のプログラムに通知することが可能となっている。
次に、ファイルシステムインターフェースプログラム5601について説明する。図60は、ファイルシステムインターフェースプログラム5601の処理のフローチャートを示したものである。まず、ファイルシステムプログラム5602からの要求があるかを判断し(ステップ5905)、ファイルシステムプログラム5602からの要求がない場合(ステップ5905のNo)、ワークロードボリュームマネージャ1からの要求があるかを判断し(ステップ5910)、ワークロードボリュームマネージャ1からの要求がない場合(ステップ5910のNo)、ワークロードボリュームマネージャ1からの拡張不可連絡があるかを判断し(ステップ5913)、ワークロードボリュームマネージャ1からの拡張不可連絡がない場合(ステップ5913のNo)、外部からの終了要求があるかを判断し(ステップ5915)、終了要求がある場合(ステップ5915のYes)、処理を終了する。終了要求がない場合(ステップ5915のNo)、ステップ5905に戻り処理を続ける。
一方、ファイルシステムプログラムからの要求がある場合(ステップ5905でYes)、ファイルシステム要求テーブル作成処理(図61)を行い(ステップ5920)、ファイルシステムシグナルをワークロードボリュームマネージャ1に送信する(ステップ5925)。
また、ワークロードボリュームマネージャ1からの要求がある場合(ステップ5910でYes)、ファイルシステム登録テーブル作成処理(図62)を実行し(ステップ5930)、完了通知をワークロードボリュームマネージャに送信する(ステップ5935)。
さらに、ワークロードボリュームマネージャ1からの拡張不可連絡がある場合(ステップ5913でYes)、拡張不可連絡をファイルシステムプログラムに発信する(ステップ5940)。
図61は、ファイルシステム要求テーブル作成処理のフローチャートを示したものである。まず、ファイルシステムプログラムからの要求が「作成」である場合、ファイルシステム要求テーブルの要求部分に「作成」の値を入れ(ステップ6010)、ファイルシステムを作成する論理領域の名前をファイルシステムプログラムから取得し、メモリの空き領域に記憶する(ステップ6015)。その後、記憶した内容をファイルシステム要求テーブルに反映し(ステップ6055)、処理を終了する。ファイルシステムプログラムからの要求が「削除」である場合、ファイルシステム要求テーブルの要求部分に「削除」の値を入れ(ステップ6020)、ファイルシステムを削除する論理領域の名前をファイルシステムプログラムから取得し、論理領域の名前からファイルシステム登録テーブルを使用し、削除するファイルシステムを特定する(ステップ6025)。その後、ファイルシステム登録テーブルから削除するファイルシステムの情報を取得するとともに、その内容をメモリの空き領域に記憶し(ステップ6030)、記憶した内容をファイルシステム要求テーブルに反映した後(ステップ6055)、処理を終了する。また、ファイルシステムプログラムからの要求が「拡張」である場合、ファイルシステム要求テーブルの要求部分に「拡張」の値を入れ(ステップ6035)、ファイルシステムを拡張する論理領域の名前、拡張要求量をファイルシステムプログラムから取得し、論理領域の名前からファイルシステム登録テーブルを使用し、拡張するファイルシステムを特定する(ステップ6040)。その後、ファイルシステム登録テーブルから拡張するファイルシステムの情報を取得し、メモリの空き領域に記憶する(ステップ6045)。同様に拡張要求量を変更要求量としてメモリの空き領域に記憶し(ステップ6050)、その後、記憶した内容をファイルシステム要求テーブルに反映した後に(ステップ6055)、処理を終了する。
図62は、ファイルシステム登録テーブル作成処理のフローチャートを示したものである。まず、要求内容を判断し(ステップ6105)、要求が「作成」の場合、ファイルシステムへ作成要求を行う(ステップ6110)。該当ファイルシステムの作成後、ファイルシステム要求テーブルの情報をファイルシステム登録テーブルに登録し(ステップ6115)、処理を終了する。また、要求が「削除」の場合、ファイルシステムへ削除要求を行う(ステップ6120)。次に、該当ファイルシステムの削除後、ファイルシステム登録テーブルの該当ファイルシステムの情報を削除し(ステップ6125)、処理を終了する。また要求が「拡張」の場合、ファイルシステムへ拡張要求を行う(ステップ6130)。次に、該当ファイルシステムの拡張後の情報をファイルシステム登録テーブルに反映し(ステップ6135)、処理を終了する。また、要求が「縮小」の場合、ファイルシステムへ縮小要求を行う(ステップ6140)。次に、該当ファイルシステムの縮小後の情報をファイルシステム登録テーブルに反映し(ステップ6145)、処理を終了する。
次に、ワークロードボリュームマネージャ1の処理について、変更する部分を中心に説明する。なお、その他の部分については既に説明したのと同様の処理を行う。
図63は、図16で説明した情報取得処理のフローチャートの一部を変更したものである。図16との違いは、ステップ1612において、ファイルシステムシグナルの検出処理を行う点である。ファイルシステムシグナルを検出した場合(ステップ1612のYes)、ファイルシステムシグナル検知処理(図64)を行い、他方、検知しなかった場合(ステップ1612のNo)、ストレージ装置3のディスク情報テーブル作成プログラム317から発信された構成変更シグナルを検知したかどうか判断する(ステップ1615)。その他の処理につては、図16で説明したのと同じ処理を行う。
図64は、ファイルシステムシグナル検知処理を示すフローチャートである。
まず、ステップ6310で図58に示したファイルシステム要求テーブルの情報を読み込む。次に、ステップ6315でファイルシステム要求が、「拡張」、「作成」、「削除」のいずれであるかを判断する。ファイルシステム要求が「拡張」である場合(ステップ6315で「拡張」)、ファイルシステム領域拡張処理(図65参照)を行い(ステップ6320)、処理を終了する。
一方、ファイルシステム要求が「作成」である場合(ステップ6315で「作成」)、マスターテーブルにおいて、ファイルシステムを作成する論理領域の開始論理ブロックから終了論理ブロックまでの利用状況に「use」を登録する(ステップ6325)。次に、論理開始ブロックと終了論理ブロックの情報及び開始論理ブロックと終了論理ブロックによって決まる論理領域の大きさをファイルシステムの大きさとして、ファイルシステム要求テーブルに登録し(ステップ6330)、ファイルシステムインタフェースプログラム5601にファイルシステムの作成を要求し(ステップ6335)、処理を終了する。
また、ファイルシステムの要求が「削除」である場合(ステップ6315で「削除」)、マスターテーブルにおいて、削除するファイルシステムの論理領域の開始論理ブロックから終了論理ブロックまでの利用状況に「unuse」を登録し(ステップ6340)、ファイルシステムインターフェースプログラムにファイルシステムの削除を要求し(ステップ6345)、処理を終了する。
図65は、ステップ6320のファイルシステム領域拡張処理を示すフローチャートである。まず、ファイルシステム要求テーブルの情報を拡張情報として一旦退避させるためメモリの空き領域に記憶する(ステップ6405)。次に、ファイルシステム要求テーブルの変化要求量を拡張要求量とし(ステップ6410)、ファイルシステム縮小処理(図66)を行う(ステップ6415)。このファイルシステム縮小処理は、拡張対象の論理領域以外の論理領域の空き領域を作成するための処理である。ファイルシステム縮小処理が終了するとメモリに退避させた拡張情報をファイルシステム要求テーブルに戻し(ステップ6420)、利用可能量計算処理(図19)を行う(ステップ6425)。利用可能量計算処理は、既に図19で説明したように論理領域の未使用部分で利用できる量を計算する処理である。求められた利用可能量と拡張要求量とを比較し、利用可能量よりも拡張要求量のほうが大きい場合(ステップ6430のYes)、利用可能総量計算処理(図20)を実行する(ステップ6435)。利用可能総量計算処理は、上限値レベル以下の論理領域を全てミラー解除し、そのことで得られた論理領域の容量を計算する処理である。求められた利用可能総量と拡張要求量とを比較し、利用可能総量よりも拡張要求量の方が大きい場合(ステップ6440でYes)、ファイルシステムインターフェースプログラムに「拡張不可」を通知し(ステップ6445)、マスターテーブルの動作内容に「限界」の値を入れ(ステップ6450)、処理を終了する。また、利用可能量が拡張要求量以下の場合(ステップ6430のNo)、マスターテーブルの動作内容に「ファイルシステム不足」の値を入れ(ステップ6455)、処理を終了する。利用可能総量が拡張要求量以下の場合(ステップ6440のNo)、マスターテーブルの動作内容に「ファイルシステム緊急」の値を入れ(ステップ6460)、処理を終了する。
図66は、ステップ6415のファイルシステム縮小処理のフローチャートを示したものである。ファイルシステム縮小処理は、ファイルシステムを縮小させた後、マスターテーブルに登録されているそれぞれの論理領域を構成する論理ブロックのうち、ファイルシステムに割当てられていない論理ブロックをunit0に登録するものである。この求めた論理ブロックが拡張に利用できる論理ブロックとなる。まず、マスターテーブルの論理領域情報の論理領域の名称で一番上に登録された論理領域を特定する(ステップ6505)。次に特定された論理領域上にあるファイルシステムの縮小要求をファイルシステムインターフェースプログラムに対して行い(ステップ6510)、ファイルシステムインターフェースプログラムの完了連絡を受けて、ファイルシステム登録テーブルのファイルシステムの大きさから、縮小後のファイルシステムに割当てられている最後の論理ブロックを求め、それ以降の論理ブロックをマスターテーブル上でunit0に登録する(ステップ6515)。次に、マスターテーブルの内容をストレージ装置の構成情報テーブルに反映する(ステップ6520)。unit0以外の論理領域がマスターテーブルに登録されているか判断し(ステップ6525)、登録されていれば(ステップ6525)、当該論理領域を特定の論理領域としてステップ6510からステップ6520の処理を行う。unit0以外の論理領域がマスターテーブルに登録されていない場合(ステップ6525のNo)、処理を終了する。
図67は、ステップ1520の構成変更実行処理を示すフローチャートである。図39に示したフローチャートとの違いは、マスターテーブルの動作内容が「ファイルシステム不足」の場合に行うファイルシステム不足動作処理(ステップ6605)と、動作内容が「ファイルシステム緊急」の場合に行うファイルシステム緊急動作処理(ステップ6610)が追加されている点である。
図68は、ステップ6605のファイルシステム不足動作処理のフローチャートを示したものである。まず、マスターテーブルの動作内容の値を消去し(ステップ6705)、ファイルシステム要求テーブルの拡張要求量から必要なブロック数を計算する(ステップ6710)。各論理ブロックの容量は予め決まっているので、例えば、拡張要求量を論理ブロックの容量で除算することで必要なブロック数を求めることができる。各論理領域の未使用論理ブロックをマスターテーブルのunit0に登録し(ステップ6715)、拡張するファイルシステムがある論理領域がミラー化されているか判断する(ステップ6720)。拡張するファイルシステムがある論理領域がミラー化されている場合には(ステップ6720のYes)、ミラーを解除し、ミラーを解除したことをマスターテーブルに反映し、動作内容に「ミラーレベル」の値を入れる(ステップ6725)。拡張するファイルシステムがある論理領域がミラー化されていない(ステップ6720でNo)、あるいはマスターテーブルの動作内容に「ミラーレベル」の値を入れた後には、マスターテーブルのunit0に割り当てられている論理ブロックの中から、必要なブロック数を当領域に割当てる(ステップ6730)。次に、マスターテーブルの内容をストレージ装置の構成情報テーブルに反映し(ステップ6735)、ファイルシステムインターフェースプログラムにファイルシステムの拡張を要求する(ステップ6740)。ファイルシステムインターフェースプログラムからの拡張完了の通知を受けると、該当論理領域の論理ブロック全てをマスターテーブル上で使用中を意味するuseに設定し(ステップ6745)、処理を終了する。
図69は、ステップ6610のファイルシステム緊急動作処理のフローチャートを示したものである。まず、マスターテーブルの動作内容に「ミラーレベル」の値に変更し(ステップ6805)、ファイルシステム要求テーブルの拡張要求量から必要なブロックを計算する(ステップ6810)。各論理ブロックの容量は予め決められているので、拡張要求量を論理ブロックの容量で除算することにより、必要なブロック数を求めることができる。次に、利用可能な論理記憶領域のミラーを解除し、マスターテーブルの当該解除した論理ブロックに未使用であることを意味するunuseを登録し(ステップ6815)、各論理領域において未使用を意味するunuseとなっている論理ブロックをマスターテーブルのunit0に登録する(ステップ6820)。次に、拡張するファイルシステムがある論理領域はミラー化されているか判断し、拡張するファイルシステムがある論理領域がミラー化されている場合(ステップ6825のYes)、ミラーを解除し、マスターテーブルに反映する(ステップ6830)。ミラーを解除し、マスターテーブルに反映(ステップ6530)の後、あるいは拡張するファイルシステムがある論理領域がミラー化されていない場合(ステップ6825のNo)、マスターテーブルのunit0の論理ブロックを必要なブロック数、当該領域に割り当てる(ステップ6835)。次に、マスターテーブルの内容をストレージ装置の構成情報テーブルに反映し(ステップ6840)、ファイルシステムインターフェースプログラムにファイルシステムの拡張を要求する(ステップ6845)。ファイルシステムインターフェースプログラムからの完了通知を受けて、該当論理領域の論理ブロック全てをマスターテーブル上で使用中を意味するuseに設定し(ステップ6850)、処理を終了する。
なお、本発明は、本実施の形態に限定されない。管理サーバ等のハードウェア構成、データ構造および処理の流れは、本発明の趣旨を逸脱しない限り、変更して構成するようにしてもよい。
本発明の実施の形態におけるボリューム管理システムの全体的な構成例を示す図である。 図1に示した管理サーバの構成例を示す図である。 図1に示したサーバの構成例を示す図である。 図1に示したストレージ装置の構成例を示す図である。 図3に示したマスターテーブルを示す図である。 別のマスターテーブルを示す図である。 図3に示したユーザ設定テーブルを示す図である。 図3に示した書き込み領域テーブルを示す図である。 図3に示した書き込み位置テーブルを示す図である。 図3に示したデータ対応テーブルを示す図である。 図3に示したミラーテーブルを示す図である。 図4に示したディスク情報テーブルを示す図である。 図4に示したアクセス位置テーブルを示す図である。 図4に示した構成情報テーブルを示す図である。 ワークロードボリュームマネージャー処理を示すフローチャートである。 情報取得処理を示すフローチャートである。 書き込み・削除シグナル検知処理を示すフローチャートである。 書き込み領域有無判断処理を示すフローチャートである。 利用可能量計算処理を示すフローチャートである。 利用可能総量計算処理を示すフローチャートである。 論理領域使用率情報取得処理を示すフローチャートである。 データの書き込み処理を示すフローチャートである。 データの削除処理を示すフローチャートである。 構成変更シグナル検知処理を示すフローチャートである。 構成変更データ加工処理を示すフローチャートである。 ユーザ設定テーブル反映処理を示すフローチャートである。 レベル設定処理を示すフローチャートである。 領域レベル低下判定処理を示すフローチャートである。 領域レベル上昇判定処理を示すフローチャートである。 閾値設定判定処理を示すフローチャートである。 耐久時間設定処理を示すフローチャートである。 容量変更処理を示すフローチャートである。 容量減少処理を示すフローチャートである。 容量増加処理を示すフローチャートである。 新規領域設定処理を示すフローチャートである。 ディスク使用時間計算処理を示すフローチャートである。 論理領域使用率変化情報取得処理を示すフローチャートである。 システムレベル情報取得処理を示すフローチャートである。 構成変更実行処理を示すフローチャートである。 緊急動作処理を示すフローチャートである。 不足動作処理を示すフローチャートである。 書き込み動作処理を示すフローチャートである。 ミラーレベル動作処理を示すフローチャートである。 ミラー作成処理を示すフローチャートである。 ミラー作成処理を示すフローチャートである。 新規作成動作処理を示すフローチャートである。 構成変更動作処理を示すフローチャートである。 ディスク増加処理を示すフローチャートである。 ディスク減少処理を示すフローチャートである。 容量変更動作処理を示すフローチャートである。 容量不足回避に関する具体的な動作1を示す説明図である。 容量不足回避に関する具体的な動作2を示す説明図である。 容量不足回避に関する具体的な動作3を示す説明図である。 冗長性に関する具体的な動作1を示す説明図である。 冗長性に関する具体的な動作2を示す説明図である。 耐久時間と冗長性に関する具体的な動作を示す説明図である。 サーバの構成を示す図である。 図57のファイルシステム要求テーブルを示す図である。 図57のファイルシステム登録テーブルを示す図である。 ファイルシステムインタフェースプログラムの処理のフローチャートである。 ファイルシステム要求テーブル作成処理を示すフローチャートである。 ファイルシステム登録テーブル作成処理を示すフローチャートである。 図16の情報取得処理のフローチャートを一部変更した図である。 ファイルシステムシグナル検知処理を示すフローチャートである。 ファイルシステム領域拡張処理を示すフローチャートである。 ファイルシステム縮小処理を示すフローチャートである。 構成変更実行処理を示すフローチャートである。 ファイルシステム不足動作処理を示すフローチャートである。 ファイルシステム緊急動作処理を示すフローチャートである。
符号の説明
2 サーバ
3 ストレージ装置
5 管理サーバ
23、35 CPU
24、34 メモリ

Claims (2)

  1. 複数の計算機と接続され、複数の論理領域を複数の物理ディスクに構成するストレージ装置と、前記ストレージ装置および前記計算機との間で通信を行う管理サーバとを備えたボリューム管理システムであって、
    前記管理サーバは、メモリと処理装置とを備え、前記メモリは、前記複数の論理領域の各論理領域に関し、空き領域を示す領域レベルと、使用中または未使用をあらわす利用状況と、冗長の有無を示す状態と、前記論理領域を記憶する物理ディスクの耐久時間とを格納するとともに、
    前記管理サーバの処理装置は、
    前記ストレージ装置の論理領域の容量が不足した場合、前記ストレージ装置に有する論理領域のうち、前記領域レベルを参照して、空き領域があるかどうかを判定し、空き領域があれば、その空き領域の容量を容量不足の論理領域に割り当て、
    前記空き領域がなければ、前記利用状況を参照して、未使用を示す論理領域があるかどうかを判定し、前記未使用を示す論理領域があれば、その論理領域の容量を容量不足の論理領域に割り当て、
    前記未使用を示す論理領域がなければ、前記冗長の有無を示す状態を参照して、冗長性を持つ論理領域の冗を解除し、その冗長性を解除した論理領域の容量を容量不足の論理領域に割り当て
    前記ストレージ装置の前記物理ディスクの耐久時間が超過した場合、当該物理ディスクに対応する論理領域の内容を他の論理領域を用いて冗長化を行い、当該物理ディスクが取り外され前記冗長化が解除された後、前記他の論理領域の内容を、前記耐久時間を超過した前記物理ディスクに対応する論理領域の内容として使用することを特徴とするボリューム管理システム。
  2. 複数の計算機と接続され、複数の論理領域を複数の物理ディスクに構成するストレージ装置と、前記ストレージ装置および前記計算機との間で通信を行う管理サーバとを備えたボリューム管理システムに用いられるボリューム管理方法であって、
    前記管理サーバは、メモリと処理装置とを備え、前記メモリは、前記複数の論理領域の各論理領域に関し、空き領域を示す領域レベルと、使用中または未使用をあらわす利用状況と、冗長の有無を示す状態と、前記論理領域を記憶する物理ディスクの耐久時間とを格納するとともに、
    前記管理サーバの処理装置は、
    前記ストレージ装置の論理領域の容量が不足した場合、前記ストレージ装置に有する論理領域のうち、前記領域レベルを参照して、空き領域があるかどうかを判定し、空き領域があれば、その空き領域の容量を容量不足の論理領域に割り当て、
    前記空き領域がなければ、前記利用状況を参照して、未使用を示す論理領域があるかどうかを判定し、前記未使用を示す論理領域があれば、その論理領域の容量を容量不足の論理領域に割り当て、
    前記未使用を示す論理領域がなければ、前記冗長の有無を示す状態を参照して、冗長性を持つ論理領域の冗長性を解除し、その冗長性を解除した論理領域の容量を容量不足の論理領域に割り当て、
    前記ストレージ装置の前記物理ディスクの耐久時間が超過した場合、当該物理ディスクに対応する論理領域の内容を他の論理領域を用いて冗長化を行い、当該物理ディスクが取り外され前記冗長化が解除された後、前記他の論理領域の内容を、前記耐久時間を超過した前記物理ディスクに対応する論理領域の内容として使用することを特徴とするボリューム管理方法。
JP2005167866A 2005-06-08 2005-06-08 ボリューム管理システムおよびその方法 Expired - Fee Related JP4690783B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005167866A JP4690783B2 (ja) 2005-06-08 2005-06-08 ボリューム管理システムおよびその方法
US11/197,472 US7392362B2 (en) 2005-06-08 2005-08-05 System and method for volume management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005167866A JP4690783B2 (ja) 2005-06-08 2005-06-08 ボリューム管理システムおよびその方法

Publications (2)

Publication Number Publication Date
JP2006343924A JP2006343924A (ja) 2006-12-21
JP4690783B2 true JP4690783B2 (ja) 2011-06-01

Family

ID=37525398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005167866A Expired - Fee Related JP4690783B2 (ja) 2005-06-08 2005-06-08 ボリューム管理システムおよびその方法

Country Status (2)

Country Link
US (1) US7392362B2 (ja)
JP (1) JP4690783B2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006052888A2 (en) * 2004-11-05 2006-05-18 Trusted Data Corporation Dynamically expandable and contractible fault-tolerant storage system permitting variously sized storage devices and method
US8364565B2 (en) * 2004-12-01 2013-01-29 Sap Ag Systems and methods for data processing
EP1669919A1 (en) * 2004-12-01 2006-06-14 Sap Ag A data processing system and data processing method
US20070088667A1 (en) * 2005-10-13 2007-04-19 Thomas Schwarz Systems and methods for data processing
JP4369471B2 (ja) 2006-12-27 2009-11-18 富士通株式会社 ミラーリングプログラム、ミラーリング方法、情報記憶装置
JP2008257572A (ja) * 2007-04-06 2008-10-23 Hitachi Ltd 論理区画に動的に資源割り当てを行うストレージシステム及びストレージシステムの論理分割方法
US7792882B2 (en) * 2007-09-27 2010-09-07 Oracle America, Inc. Method and system for block allocation for hybrid drives
JP2009122873A (ja) * 2007-11-13 2009-06-04 Hitachi Ltd ストレージシステム間でのリモートコピーを管理する装置
US8201029B2 (en) * 2008-01-31 2012-06-12 International Business Machines Corporation Method and apparatus for operating system event notification mechanism using file system interface
US8234444B2 (en) * 2008-03-11 2012-07-31 International Business Machines Corporation Apparatus and method to select a deduplication protocol for a data storage library
JP2010086424A (ja) * 2008-10-01 2010-04-15 Hitachi Ltd ストレージ装置の管理装置
JP5149835B2 (ja) * 2009-02-26 2013-02-20 株式会社日立製作所 論理ユニット管理方法、プログラムおよびディスク装置
JP5245934B2 (ja) * 2009-03-11 2013-07-24 富士通株式会社 管理装置の管理プログラム、管理装置、管理装置の管理方法およびストレージシステム
CN102473136B (zh) * 2010-05-31 2014-12-31 松下电器(美国)知识产权公司 存储器管理装置、存储器管理方法以及集成电路
JP5170794B2 (ja) * 2010-09-28 2013-03-27 株式会社バッファロー 記憶システム及びフェイルオーバ制御方法
US8775868B2 (en) * 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
JP6021680B2 (ja) * 2013-02-19 2016-11-09 株式会社日立製作所 自律分散重複排除ファイルシステム、記憶装置ユニット及びデータアクセス方法
US9886451B2 (en) * 2013-04-30 2018-02-06 Hitachi, Ltd. Computer system and method to assist analysis of asynchronous remote replication
US20160034476A1 (en) * 2013-10-18 2016-02-04 Hitachi, Ltd. File management method
JP6244974B2 (ja) * 2014-02-24 2017-12-13 富士通株式会社 ストレージ装置、及びストレージ装置の制御方法
US10657053B2 (en) 2017-03-31 2020-05-19 Kyocera Document Solutions Inc. Memory allocation techniques for filtering software
JP2019109622A (ja) * 2017-12-15 2019-07-04 株式会社Nobori 医療情報管理システム及び医療情報管理方法
US11656773B2 (en) * 2020-04-28 2023-05-23 EMC IP Holding Company LLC Automatic management of file system capacity using predictive analytics for a storage system
US11740789B2 (en) 2020-05-18 2023-08-29 EMC IP Holding Company LLC Automated storage capacity provisioning using machine learning techniques
US11635981B2 (en) * 2020-08-25 2023-04-25 Microsoft Technology Licensing, Llc Virtualizing shared computing resources

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132549A (ja) * 2000-10-23 2002-05-10 Hitachi Ltd 論理ボリューム管理方法、これを利用したサービスおよびそのサービスを記録したコンピュータ読み取り可能な記録媒体
JP2004310308A (ja) * 2003-04-04 2004-11-04 Ge Medical Systems Global Technology Co Llc データ保存方法およびデータ保存装置
JP2004334561A (ja) * 2003-05-08 2004-11-25 Hitachi Ltd ストレージ運用管理システム
JP2005031929A (ja) * 2003-07-11 2005-02-03 Hitachi Ltd サーバに記憶領域を割り当てる管理サーバ、記憶装置システム、及びプログラム
JP2005038071A (ja) * 2003-07-17 2005-02-10 Hitachi Ltd ストレージの容量を最適化する管理方法
JP2005092308A (ja) * 2003-09-12 2005-04-07 Hitachi Ltd ディスク管理方法およびコンピュータシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3745398B2 (ja) * 1994-06-17 2006-02-15 富士通株式会社 ファイルのディスクブロック制御方式
US6078990A (en) * 1998-02-06 2000-06-20 Ncr Corporation Volume set configuration using a single operational view
US20040039891A1 (en) * 2001-08-31 2004-02-26 Arkivio, Inc. Optimizing storage capacity utilization based upon data storage costs
JP4220724B2 (ja) 2002-05-21 2009-02-04 株式会社日立製作所 ストレージ装置
JP4418286B2 (ja) * 2003-07-14 2010-02-17 富士通株式会社 分散型ストレージシステム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132549A (ja) * 2000-10-23 2002-05-10 Hitachi Ltd 論理ボリューム管理方法、これを利用したサービスおよびそのサービスを記録したコンピュータ読み取り可能な記録媒体
JP2004310308A (ja) * 2003-04-04 2004-11-04 Ge Medical Systems Global Technology Co Llc データ保存方法およびデータ保存装置
JP2004334561A (ja) * 2003-05-08 2004-11-25 Hitachi Ltd ストレージ運用管理システム
JP2005031929A (ja) * 2003-07-11 2005-02-03 Hitachi Ltd サーバに記憶領域を割り当てる管理サーバ、記憶装置システム、及びプログラム
JP2005038071A (ja) * 2003-07-17 2005-02-10 Hitachi Ltd ストレージの容量を最適化する管理方法
JP2005092308A (ja) * 2003-09-12 2005-04-07 Hitachi Ltd ディスク管理方法およびコンピュータシステム

Also Published As

Publication number Publication date
JP2006343924A (ja) 2006-12-21
US7392362B2 (en) 2008-06-24
US20060282637A1 (en) 2006-12-14

Similar Documents

Publication Publication Date Title
JP4690783B2 (ja) ボリューム管理システムおよびその方法
JP4749255B2 (ja) 複数種類の記憶デバイスを備えたストレージシステムの制御装置
US7062621B2 (en) Storage system and method for backup
JP4890033B2 (ja) 記憶装置システム及び記憶制御方法
US8271444B2 (en) Storage control device to backup data stored in virtual volume
JP4890160B2 (ja) ストレージシステム及びバックアップ/リカバリ方法
US7444545B2 (en) Computer system, managing computer and recovery management method
US8060468B2 (en) Storage system and data recovery method
US7461201B2 (en) Storage control method and system for performing backup and/or restoration
US20100082900A1 (en) Management device for storage device
JP5073259B2 (ja) 仮想化システム及び領域割当て制御方法
US20060031648A1 (en) Storage device
JP4681247B2 (ja) ディスクアレイ装置及びディスクアレイ装置の制御方法
JPH04299748A (ja) ファイルの管理方法及び装置
US9983806B2 (en) Storage controlling apparatus, information processing apparatus, and computer-readable recording medium having stored therein storage controlling program
JP2006011811A (ja) 記憶制御システム及び記憶制御方法
CN111124283A (zh) 一种存储空间管理方法、系统、电子设备及存储介质
JP4245021B2 (ja) ストレージ装置、ストレージシステム、ストレージ装置の制御方法
JP2016212548A (ja) ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム
JP5275691B2 (ja) ストレージシステム
JP4790283B2 (ja) ストレージサブシステム及びストレージシステム
WO2014010016A1 (ja) プログラム、データ管理方法、および情報処理装置
JP5839727B2 (ja) 記憶制御システム及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101209

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110215

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110218

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140225

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees