JP5069011B2 - ストレージモジュール及び容量プール空き容量調整方法 - Google Patents

ストレージモジュール及び容量プール空き容量調整方法 Download PDF

Info

Publication number
JP5069011B2
JP5069011B2 JP2007018142A JP2007018142A JP5069011B2 JP 5069011 B2 JP5069011 B2 JP 5069011B2 JP 2007018142 A JP2007018142 A JP 2007018142A JP 2007018142 A JP2007018142 A JP 2007018142A JP 5069011 B2 JP5069011 B2 JP 5069011B2
Authority
JP
Japan
Prior art keywords
storage
capacity
capacity pool
storage module
storage area
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
JP2007018142A
Other languages
English (en)
Other versions
JP2008186172A5 (ja
JP2008186172A (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 JP2007018142A priority Critical patent/JP5069011B2/ja
Priority to CN200710153523XA priority patent/CN101236480B/zh
Priority to EP08250048A priority patent/EP1953636A3/en
Priority to US11/972,024 priority patent/US20080184000A1/en
Publication of JP2008186172A publication Critical patent/JP2008186172A/ja
Publication of JP2008186172A5 publication Critical patent/JP2008186172A5/ja
Application granted granted Critical
Publication of JP5069011B2 publication Critical patent/JP5069011B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on 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/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/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Description

本発明は、複数のデータ記憶媒体の少なくとも一部の記憶領域を含む容量プールを管理するストレージモジュール及び容量プール空き容量調整方法等に関する。
従来、ストレージモジュールでは複数の記憶媒体を集め、複数の記憶媒体を集約管理することで論理的に1台のストレージボリュームとして扱う方法が一般的に用いられている。このようなストレージモジュールにおいては、RAID(Redundant Array of Inexpensive Disks)と呼ばれる構成を用いて、並列アクセスによる高性能及びデータの冗長化による高可用性を実現することができるようになっている。
近年、扱われる情報量の増大と共に、ストレージモジュールに要求される記憶容量も増大している。この問題を解決する為の手段として、以下の2つの手法を例示することができる。
一つ目の手法は、動的容量割り当て機能を用いる手法である(例えば、特許文献1及び特許文献2参照)。この動的容量割り当て機能は、ストレージモジュールが持つ記憶領域を纏めた容量プールと、物理的な記憶容量を持たない仮想ボリュームとより実現される。ここで、容量プールとは、ストレージモジュールが管理する1個以上の論理ボリュームを纏め、広大な記憶領域として扱う管理単位である。また、仮想ボリュームとは、物理的な記憶容量を持たないボリュームを指す。
動的容量割り当て機能では、仮想ボリュームに対するデータ書き込み発生を契機として、仮想ボリュームにおける書き込みデータ格納対象箇所に、容量プールの容量空間の一部を記憶領域として割り当てる機能である。この機能を実行することで、ボリュームのデータが格納された箇所にのみストレージの記憶容量が割当てられ、それ以外の箇所には記憶容量の割り当てが不要となるため、データの格納高効率化が可能となる。
二つ目の手法は、ストレージグリッドを用いる手法である。ストレージグリッドは、分散した複数のストレージモジュールを恰も1台のストレージモジュールであるかのように運用や管理を行うことで、ストレージモジュール1台のみで扱うことのできるデータ量を遥かに超えたデータ量のデータを扱うことを可能にする技術である。
特開2005−011316号公報 特開2006−302258号公報
しかしながら、動的容量割り当て機能をストレージグリッド技術に適用し、各ストレージモジュールが管理する、容量プールや容量プールを使用する仮想ボリュームを統一管理しようとした場合、動的容量割り当て機能で扱われる容量プールの管理はストレージモジュール内で閉じている為、あるストレージモジュールの容量プールの空き記憶領域の容量(空き容量)が枯渇しても他のストレージモジュールの空き容量を融通することが困難であるという問題が生じる。
そこで、本発明は、上記課題に鑑みなされたものであり、その目的は、ストレージモジュールにおける容量プールの空き記憶領域の容量を効率的に管理することのできる技術を提供することにある。
上記課題を解決するため、本発明の一観点に従うストレージモジュールは、複数のデータ記憶媒体の少なくとも一部の記憶領域を含む容量プールを管理するストレージモジュールにおいて、前記容量プールの前記記憶領域の空き記憶領域を管理する容量プール管理テーブルと、前記容量プールの前記空き記憶領域の容量が、前記容量プールの空き記憶領域の容量調整を行うための条件に合致するか否かを判定する調整判定部と、前記調整判定部により前記条件に合致すると判定された場合に、前記ストレージモジュールと異なる他のストレージモジュールの管理下にあるデータ記憶媒体の記憶領域を利用して、前記容量プールにおける空き記憶領域の容量を増加させる空き容量増加部とを有する。
本発明の実施形態について、図面を参照して説明する。尚、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
<第1実施形態>
図1は、本発明の第1実施形態に係る計算機システムの構成例を示す図である。
計算機システムにおいて、ストレージサブシステム11000とホストコンピュータ10000とはストレージネットワーク12000に接続される。ホストコンピュータ10000は、ストレージサブシステム11000に、データを書き込むための書き込み要求や、データを読み出すための読み出し要求を送信する。ストレージサブシステム11000は、ストレージモジュールの一例としてのストレージモジュール11100、ストレージモジュール11200、及びストレージ管理端末11010を備える。ストレージモジュール11100及びストレージモジュール11200は、各々独立して動作することができる。尚、本実施形態では、ストレージモジュール11100とストレージモジュール11200との2つのストレージモジュールがストレージサブシステム11000に含まれるようにしているが、ストレージモジュールの数は、3以上であっても構わない。
ストレージ管理端末11010は、ストレージモジュール11100及びストレージモジュール11200に対する各種管理機能を行う為の端末である。ストレージ管理端末11010は、プロセッサ(CPU)11011、メモリ11012、管理端末接続インタフェース(NIC)11013、ユーザインタフェース(ユーザI/F)11014を備える。
プロセッサ11011は、ストレージ管理端末11010を構成する各部を制御する。メモリ11012は、プロセッサ11011が処理を行う為のプログラムや、制御テーブルを格納する為の記憶領域である。管理端末接続インタフェース11013は、ストレージサブシステム11000との通信を行う為のインタフェースであり、管理端末接続インタフェース(NIC)11116及び管理端末接続インタフェース(NIC)11216に接続されている。ユーザインタフェース11014は、ストレージユーザとストレージ管理端末11010の情報入出力インタフェースであり、出力用にディスプレイが接続され、入力用にマウスやキーボード等の入力機器が接続されている。
ストレージモジュール11100は、データを記憶するためのデータ記憶媒体を格納する為のストレージユニット11160と、ストレージモジュール11100全体を制御するコントローラ11110とを備える。ストレージモジュール11200は、データ記憶媒体を格納する為のストレージユニット11260と、ストレージモジュール11200全体を制御するコントローラ11210とを備える。
ストレージユニット11160には、データ記憶媒体の一例としてのハードディスクドライブ(HDD)11161が複数個備えられている。ストレージユニット11260には、データ記憶媒体の一例としてのハードディスクドライブ11261が複数個備えられている。
本実施形態では、データ記憶媒体として、ハードディスクドライブ11161及びハードディスクドライブ11261を用いているが、ハードディスクドライブ11161又はハードディスクドライブ11261の少なくとも一方に代えて、フラッシュメモリ等の他のデータ記憶媒体を用いるようにしてもよい。また、ストレージユニット11160やストレージユニット11260の少なくとも一方に代えて、外部ストレージユニットを接続するようにし、外部ストレージユニットの提供するデータ記憶媒体を用いるようにしてもよい。
ストレージモジュール11100のコントローラ11110は、プロセッサ(CPU)11111、メモリ11112、ストレージネットワークインタフェース(例えば、FC I/F)11115、ストレージモジュール間接続インタフェース(PCI I/F)11113、HDD接続インタフェース(SCSI I/F)11114、及び管理端末接続インタフェース(NIC)11116を備えている。
ストレージモジュール11200のコントローラ11210は、プロセッサ(CPU)11211、メモリ11212、ストレージネットワークインタフェース(例えば、FC I/F)11215、ストレージモジュール間接続インタフェース(例えば、PCI I/F)11213、HDD接続インタフェース(例えば、SCSI I/C)11214、及び管理端末接続インタフェース(例えば、NIC)11216を備えている。
プロセッサ11111は、ストレージモジュール11100を構成する各部を制御する。プロセッサ11211は、ストレージモジュール11200を構成する各部を制御する。ここで、調整判定部、空き容量増加部、記憶領域割当部、テーブル管理部、受信部、仮想ボリューム判定部、アクセス要求転送部、アクセス制御部、収集部、及び集計部は、主にプロセッサ11111又はプロセッサ11211が各種プログラムを実行することにより構成される。
ストレージモジュール間接続インタフェース11113及びストレージモジュール間接続インタフェース11213は、ストレージモジュール11100とストレージモジュール11200との間でデータを通信する為のインタフェースである。ストレージモジュール間接続インタフェース11113及びストレージモジュール間接続インタフェース11213は、互いにケーブルで接続されている。尚、ストレージモジュール間接続インタフェース11113、ストレージモジュール間接続インタフェース11213、及びケーブルにより形成される通信経路は、通信帯域が広いという特性を持つ。
ストレージネットワークインタフェース11115及びストレージネットワークインタフェース11215はストレージネットワーク12000と接続する為のインタフェースである。本実施形態では、ストレージネットワークインタフェース11115のみがストレージネットワーク12000に接続されているが、ストレージネットワークインタフェース11215もストレージネットワーク12000に接続されていても構わない。
HDD接続インタフェース11114は、ハードディスクドライブ11161と接続する為のインタフェースである。また、HDD接続インタフェース11214は、ハードディスクドライブ11261と接続する為のインタフェースである。
管理端末接続インタフェース11116及び管理端末接続インタフェース11216は、ストレージ管理端末11010と接続する為のインタフェースである。本実施構成では、管理端末接続インタフェース11116と管理端末接続インタフェース11216とは互いに接続されているが、両者間は接続されていなくてもよい。
メモリ11112は、プロセッサ11111が処理を行う為のプログラムや、制御テーブル、ハードディスクドライブ11161より読み出したデータや書き込むべきデータをキャッシングする為の記憶領域である。メモリ11212は、プロセッサ11211が処理を行う為のプログラムや、制御テーブル、ハードディスクドライブ11261より読み出したデータや書き込むべきデータをキャッシングする為の記憶領域である。
図2は、メモリ11112内の構造を示す図である。
メモリ11112には、プログラムとして、コマンド処理プログラム11112−00、メッセージ受信処理プログラム11112−01、容量プール操作プログラム11112−02、ボリューム操作プログラム11112−03、I/O処理プログラム11112−04、及びHDD操作プログラム11112−05が格納されている。また、メモリ11112には、テーブルとして、RAIDグループ管理テーブル11112−11、ボリューム管理テーブル11112−12、仮想ボリューム割り当て領域管理テーブル11112−13、容量プール管理テーブルの一例としての容量プール構成管理テーブル11112−14、及びキャッシュ領域管理テーブル11112−15が格納されている。メモリ11112内の上記したプログラム及びテーブルを格納した領域以外の領域は、キャッシュ領域11112−20として使用される。
図3は、メモリ11212内の構造を示す図である。
メモリ11212には、プログラムとして、コマンド処理プログラム11112−00、メッセージ受信処理プログラム11112−01、容量プール操作プログラム11112−02、ボリューム操作プログラム11112−03、I/O処理プログラム11112−04、及びHDD操作プログラム11112−05が格納されている。また、メモリ11212には、テーブルとして、RAIDグループ管理テーブル11112−11、ボリューム管理テーブル11112−12、仮想ボリューム割り当て領域管理テーブル11112−13、容量プール管理テーブルの一例としての容量プール構成管理テーブル11112−14、及びキャッシュ領域管理テーブル11112−15が格納されている。メモリ11212内の上記したプログラム及びテーブルを格納した領域以外の領域は、キャッシュ領域11112−20として使用される。ここで、メモリ11212中の各プログラムは、メモリ11112中の各プログラムと同一の処理を実行するプログラムであり、メモリ11212中の各テーブルは、メモリ11112中の各テーブルと同一の構成となっている。但し、各テーブル内に格納されたパラメータは、メモリ11212とメモリ11112間で異なっている。
図4は、RAIDグループ管理テーブル11112−11の構造図である。
RAIDグループ管理テーブル11112−11は、RAIDグループを構成するHDDに関する情報を格納する。RAIDグループ管理テーブル11112−11は、RAIDグループ番号11112−11−01、RAIDレベル11112−11−02、HDD番号リスト11112−11−03、HDDサイズ11112−11−04のメンバを含む。
RAIDグループ番号11112−11−01には、任意のHDDを纏めたグループ、例えば、RAID構成とされているグループ(RAIDグループ)を一意に特定する為の識別情報が格納される。尚、RAIDグループに限らず、例えば、JBOD(Just a Bunch Of Disks)構成のグループや、単一のHDD構成であるグループの識別情報を格納するようにしても良い。RAIDレベル11112−11−02には、RAID構成を作成した場合のRAIDレベルが格納される。RAIDレベルとは、RAID構成における冗長化方法を表現する番号であり、レベル0〜6を示す“0”〜“6”、レベル1及びレベル0の組み合わせを示す”10”のいずれかの値となる。HDD番号リスト11112−11−03には、対象のRAIDグループに属するハードディスクドライブ11161やハードディスクドライブ11261を特定する為の識別子が格納される。尚、RAIDグループ管理テーブル11112−11がメモリ11112に格納されている場合は、ストレージモジュール11100中のハードディスクドライブ11161のいずれかに対応する1以上の識別子のみが格納可能であり、メモリ11212に格納されている場合には、ストレージモジュール11200中のハードディスクドライブ11261のいずれかに対応する1以上の識別子のみが格納可能である。HDDサイズ11112−11−04には、対象のRAIDグループの総容量が格納される。尚、当該総容量には、冗長化によって利用不可能な領域の容量や、当該RAIDグループに格納した各種制御テーブルの容量は含まれない。
図5は、ボリューム管理テーブル11112−12の構造図である。
ボリューム管理テーブル11112−12は、ストレージユーザに提供するボリュームに関する情報を格納する。ボリューム管理テーブル11112−12は、ボリューム番号(LUN)11112−12−01、容量プール番号11112−12−02、RAIDグループ番号11112−12−03、データ領域11112−12−04、I/O停止判別情報11112−12−05のメンバを含む。
ボリューム番号11112−12−01には、ストレージユーザに対して提供されるボリューム番号が格納される。ストレージユーザは当該ボリューム番号を基にデータを格納するボリュームを識別することができる。容量プール番号11112−12−02には、対象のボリュームが仮想ボリュームである場合に、仮想ボリュームに対応付けられている容量プールの識別子が格納される。尚、対象のボリュームが仮想ボリュームでない、すなわち、論理ボリュームである場合には、論理ボリュームである旨(例えば、“N/A”)が格納される。RAIDグループ番号11112−12−03には、対象のボリュームが論理ボリュームである場合に、データアクセス先として対応付けられたRAIDグループの識別子が格納される。尚、対象のボリュームが論理ボリュームでない、すなわち、仮想ボリュームである場合には、仮想ボリュームである旨(例えば、“N/A”)が格納される。データ領域11112−12−04には、対象ボリュームが論理ボリュームである場合には、RAIDグループ番号11112−12−03にて対応付けられたRAIDグループ内の、当該論理ボリュームが使用する範囲が格納される。これによって、1個のRAIDグループを、複数の論理ボリュームとして分割してユーザに提供することができるようになる。尚、対象のボリュームが論理ボリュームでない、すなわち、仮想ボリュームである場合には、仮想ボリュームである旨(例えば、“N/A”)が格納される。I/O停止判別情報11112−12−05には、対象のボリュームに対するI/Oを一時停止するか否かを示す情報として“ON”、“OFF”の2値のいずれかが格納される。I/O停止判別情報11112−12−05に“OFF”が格納されている場合には、対象のボリュームに対するI/O発生時に、そのままI/Oを行うことが可能であるが、“ON”が格納されている場合には、I/O停止判別情報11112−12−05が“OFF”になるのを待つこととなる。
図6は、仮想ボリューム割り当て領域管理テーブル11112−13の構造図である。
仮想ボリューム割り当て領域管理テーブル11112−13は、対象の仮想ボリュームに割当てられたHDDの記憶領域の対応関係を格納する。仮想ボリューム割り当て領域管理テーブル11112−13は、記憶領域割り当て元番号(先頭LBA)11112−13−01、記憶領域割り当て先RAIDグループ番号11112−13−02、記憶領域割り当て先番号(割当先先頭LBA)11112−13−03、更新有無情報11112−13−04のメンバを含む。
記憶領域割り当て元番号11112−13−01には、仮想ボリューム上のデータ位置を示す識別情報が格納される。記憶領域割り当て先RAIDグループ番号11112−13−02には、仮想ボリュームの記憶領域割り当て元番号11112−13−01に格納された識別情報により示される記憶領域に割当てられた、記憶領域が格納されたRAIDグループを識別する情報が格納される。尚、対象の領域に記憶領域が割当てられていない場合には、未割り当てである旨を示す情報(例えば、“N/A”)が格納される。記憶領域割り当て先番号11112−13−03には、仮想ボリュームの記憶領域割り当て元番号11112−13−01で示される領域に割当てられた、記憶領域を識別する情報が格納される。尚、対象の領域に記憶領域が割当てられていない場合には、未割り当てである旨を示す情報(例えば、“N/A”)を格納する。更新有無情報11112−13−04には、仮想ボリュームの記憶領域に対する更新有無の情報が格納される。
図7は、容量プール構成管理テーブル11112−14の構造図である。
容量プール構成管理テーブル11112−14は、仮想ボリュームに割り当てる記憶領域を管理する容量プールにおける空き領域の管理を行う為のテーブルである。容量プール構成管理テーブル11112−14は、RAIDグループ番号11112−14−01、容量プール番号11112−14−02、空き領域情報11112−14−03、容量プール番号11112−14−04、容量プール作成有無11112−14−05、容量プール空き容量11112−14−06のメンバを含む。
RAIDグループ番号11112−14−01には、容量プールに属するRAIDグループを識別する為の番号が格納される。容量プール番号11112−14−02には、ストレージサブシステム11000にて管理可能な容量プールが複数存在する場合に、対象のRAIDグループが属する容量プールを識別する情報が格納される。空き領域情報11112−14−03には、対象のRAIDグループが管理する記憶領域の中で空き領域(未使用領域)、すなわち、仮想ボリュームに割当てられていない記憶領域を特定する為の情報が格納される。容量プール番号11112−14−04には、容量プールを識別する為の番号が格納される。当該値は容量プール番号11112−14−02に格納される値と共通のものである。容量プール作成有無11112−14−05には、対象の容量プールの作成有無情報が格納され、有無情報が“有”ならば容量プールが作成済みであることを示し、“無”ならば未作成であることを示す。容量プール空き容量11112−14−06には、対象の容量プールの空き領域の容量(空き容量)が格納され、当該値は対象の容量プールに関連付けられた空き領域情報11112−14−03の示す空き領域の容量の総和と等しい。
図8は、プール操作プログラム11112−02を構成する処理の構成図である。
プール操作プログラム11112−02は、ストレージモジュール11100やストレージモジュール11200における容量プールを管理制御する為のプログラムである。プール操作プログラム11112−02は、容量プール作成制御処理11112−02−01、容量プール作成処理11112−02−02、容量プール容量追加処理11112−02−03、容量プール状態取得処理11112−02−06、容量プール状態収集制御11112−02−07を含む。
容量プール作成制御処理11112−02−01は、他のストレージモジュール(例えば、容量プール作成制御処理11112−02−01がストレージモジュール11100で動作しているならば、ストレージモジュール11200)に任意のIDを持つ容量プール作成の要求を通知し、尚且つ自ストレージモジュールにも同一のIDを持つ容量プール作成の要求を通知して、ストレージモジュール11100及びストレージモジュール11200に同一IDを持つ容量プールの作成を制御する処理である。容量プール作成処理11112−02−02は、自ストレージモジュールの容量プール構成管理テーブル11112−14に、指定された容量プールの情報を登録する処理である。容量プール容量追加処理11112−02−03は、自ストレージモジュールの容量プール構成管理テーブル11112−14に、指定されたRAIDグループを指定された容量プールのメンバとして登録する処理である。容量プール状態取得処理11112−02−06は、自ストレージモジュールの容量プールを構成するRAIDグループや、空き容量といった情報を、RAIDグループ番号11112−14−01や容量プール空き容量11112−14−06より取得する処理である。容量プール状態収集制御11112−02−07は、ストレージサブシステム11000を構成する全モジュールより、各ストレージモジュールで実行されたプール状態取得処理11112−02−06の結果を集約し、ホストコンピュータ10000若しくはストレージ管理端末11010へ転送する処理である。
図9は、ボリューム操作プログラム11112−03を構成する処理の構成図である。
ボリューム操作プログラム11112−03は、ストレージサブシステム11000がホストコンピュータ10000に提供する論理ボリュームや仮想ボリュームに対する処理を制御する為のプログラムである。ボリューム操作プログラム11112−03は、論理ボリューム作成処理11112−03−01、仮想ボリューム作成処理11112−03−02、仮想ボリューム移動制御11112−03−03、仮想ボリューム削除処理11112−03−04、記憶領域割り当て処理11112−03−05、記憶領域解放処理11112−03−06、データ複製処理11112−03−07を含む。
論理ボリューム作成処理11112−03−01は、自ストレージモジュールのボリューム管理テーブル11112−12において、作成する論理ボリュームの情報として、ボリューム番号、使用するRAIDグループの番号、対象のRAIDグループ内の論理ボリュームに割り当てる範囲について、それぞれボリューム番号11112−12−01、RAIDグループ番号11112−12−03、データ領域11112−12−04に格納する処理である。
仮想ボリューム作成処理11112−03−02は、自ストレージモジュールのボリューム管理テーブル11112−12において、作成する仮想ボリュームの情報として、ボリューム番号、使用する容量プールの番号について、それぞれボリューム番号11112−12−01、容量プール番号11112−12−02に格納する処理である。尚、本処理の実行を行うストレージモジュールとしては、作成済みの仮想ボリュームの容量と容量プールの空き容量との比を取り、該比率が小さいストレージモジュールを選択するのが望ましい。
仮想ボリューム移動制御11112−03−03は、自ストレージモジュールより他ストレージモジュールへ、指定されたボリュームに関する管理の移動を制御する処理である。仮想ボリューム削除処理11112−03−04は、自ストレージモジュールのボリューム管理テーブル11112−12より、削除対象の仮想ボリュームの情報であるボリューム番号11112−12−01、プール番号11112−12−02を削除する処理である。記憶領域割り当て処理11112−03−05は、確保した容量プールの空き領域を、仮想ボリュームの任意の領域に割当てるため、割当対象の仮想ボリューム上のアドレス、割り当てる記憶領域のRAIDグループ番号、割り当てる記憶領域のRAIDグループ上のアドレスを、それぞれ、仮想ボリューム割り当て領域管理テーブル11112−13の記憶領域割り当て元番号11112−13−01、記憶領域割り当て先RAIDグループ番号11112−13−02、記憶領域割り当て先番号11112−13−03に格納する処理である。
記憶領域解放処理11112−03−06は、記憶領域割り当て処理11112−03−05が割り当てた記憶領域を解放する為、仮想ボリューム割り当て領域管理テーブル11112−13の記憶領域割り当て元番号11112−13−01、記憶領域割り当て先RAIDグループ番号11112−13−02、及び記憶領域割り当て先番号11112−13−03に格納された情報を消去する処理である。
図10は、I/O処理プログラム11112−04を構成する処理の構成図である。
I/O処理プログラム11112−04は、任意のボリュームに対してホストコンピュータ10000より受けたI/O処理及び、I/O処理に関する制御を行うプログラムである。I/O処理プログラム11112−04は、I/O停止処理11112−04−01、I/O開始処理11112−04−02、書き込みI/O処理11112−04−03、読み出しI/O処理11112−04−04を含む。
I/O停止処理11112−04−01は、対象のボリュームに対するI/Oを停止する為に、ボリューム管理テーブル11112−12のI/O停止判別情報11112−12−05を“ON”に更新する処理である。I/O開始処理11112−04−02は、対象のボリュームに対するI/Oを開始する為に、ボリューム管理テーブル11112−12のI/O停止判別情報11112−12−05を“OFF”に更新する処理である。書き込みI/O処理11112−04−03は、ホストコンピュータ10000により発行された書き込み要求に伴い、ホストコンピュータ10000からキャッシュ領域11112−20にデータを転送する処理である。読み出しI/O処理11112−04−04は、ホストコンピュータ10000により要求された読み出し要求に伴い、キャッシュ領域11112−20からホストコンピュータ10000へデータを転送する処理である。
図11は、コマンド処理プログラム11112−00の処理手順を示すフローチャートである。コマンド処理プログラム11112−00は、ホストコンピュータ10000、他ストレージモジュール、若しくは自ストレージモジュールから発行された各種操作要求のコマンドに対する処理を行う。ここで、ストレージモジュール11100のメモリ11112に格納されたコマンド処理プログラム11112−00の処理について説明する。なお、ストレージモジュール11200のメモリ11212に格納されたコマンド処理プログラム11112−00の処理も同様である。
コマンド処理プログラム11112−00は、例えば、所定の時間毎にプロセッサ11111によって実行が開始される。まず、ストレージモジュール11100において、プロセッサ11111がコマンド処理プログラム11112−00を実行開始すると、ステップ11112−00−01に進む。
ステップ11112−00−01では、プロセッサ11111がパワースイッチオフ等に伴うプログラム終了要求がないかを検知する。終了要求があった場合、処理完了となる。一方、終了要求がない場合、ステップ11112−00−02へ進む。
ステップ11112−00−02では、プロセッサ11111が処理要求のコマンドの通知(受信)がないかを調査する。通知がなければステップ11112−00−01へ戻る。通知があれば、ステップ11112−00−03へ進む。
ステップ11112−00−03では、プロセッサ11111が対象のコマンド処理対象が自ストレージモジュールで行うべきか他ストレージモジュールで行うべきか判断する。当該判断処理は、自ストレージモジュールがコマンド処理対象のストレージモジュールであるか、若しくはボリュームを指定したコマンドである場合には、対象のボリュームやRAIDグループが自ストレージモジュール11100にて管理されているかによって判断する。他ストレージモジュールで行う処理であると判断したならばステップ11112−00−04へ進み、自ストレージモジュール11100で行う処理であると判断したならば、ステップ11112−00−05へ進む。
ステップ11112−00−04では、プロセッサ11111が、対象のコマンドを、実行すべきストレージモジュールに対して転送する。尚、転送データはストレージモジュール間接続インタフェース11113とストレージモジュール間接続インタフェース11213を結ぶケーブルを伝い、他ストレージモジュールへ転送される。該転送処理の完了の後、ステップ11112−00−01へ戻る。
ステップ11112−00−05では、プロセッサ11111が要求されたコマンドが“容量プール作成”であるかを判断する。“容量プール作成”であるならば、ステップ11112−00−06へ進み、違うならばステップ11112−00−07へ進む。ステップ11112−00−06では、プロセッサ11111が、図8及び図14に示す容量プール作成制御処理11112−02−01を実行する。容量プール作成制御処理11112−02−01の完了後、ステップ11112−00−01へ戻る。
ステップ11112−00−07では、プロセッサ11111が、要求されたコマンドが“容量プール容量追加”であるか判断する。“容量プール容量追加”であるならばステップ11112−00−08へ進み、違うならばステップ11112−00−09へ進む。ステップ11112−00−08では、プロセッサ11111が、図8及び図16に示す容量プール容量追加処理11112−02−03を実行する。容量プール容量追加処理11112−02−03の完了後、ステップ11112−00−01へ戻る。
ステップ11112−00−09では、プロセッサ11111が、要求されたコマンドが“容量プール状態取得”であるか判断する。“容量プール状態取得”であるならばステップ11112−00−10へ進み、違うならばステップ11112−00−11へ進む。ステップ11112−00−10では、図8及び図17に示す容量プール状態取得処理11112−02−06を実行する。容量プール状態取得処理11112−02−06の完了後、ステップ11112−00−01へ戻る。
ステップ11112−00−11では、プロセッサ11111が、要求されたコマンドが“仮想ボリューム作成”であるか判断する。“仮想ボリューム作成”であるならばステップ11112−00−12へ進み、違うならばステップ11112−00−13へ進む。ステップ11112−00−12では、図9及び図19に示す仮想ボリューム作成処理11112−03−02を実行する。仮想ボリューム作成処理11112−03−02の完了後、ステップ11112−00−01へ戻る。
ステップ11112−00−13では、プロセッサ11111が、要求されたコマンドが“仮想ボリューム移動”であるか判断する。“仮想ボリューム移動”であるならばステップ11112−00−14へ進み、違うならば図12のステップ11112−00−15へ進む。ステップ11112−00−14では、図9及び図20に示す仮想ボリューム移動制御11112−03−03を実行する。仮想ボリューム移動制御11112−03−03の完了後、ステップ11112−00−01へ戻る。
図12は、コマンド処理プログラム11112−00の処理手順についての、図11の続きのフローチャートである。
ステップ11112−00−15では、プロセッサ11111が、要求されたコマンドが“書き込みI/O”であるか判断する。“書き込みI/O”であるならばステップ11112−00−16へ進み、違うならばステップ11112−00−17へ進む。ステップ11112−00−16では、図10及び図27に示す書き込みI/O処理11112−04−03を実行する。I/O処理11112−04−03の完了後、図11のステップ11112−00−01へ戻る。
ステップ11112−00−17では、プロセッサ11111が、要求されたコマンドが“読み出しI/O”であるか判断する。“読み出しI/O”であったならばステップ11112−00−18へ進み、違うならばエラーとする。ステップ11112−00−18では、プロセッサ11111が、図10及び図28に示す読み出しI/O処理11112−04−04を実行する。読み出しI/O処理11112−04−04の完了後、図11のステップ11112−00−01へ戻る。
図13は、メッセージ受信処理プログラム11112−01の処理手順を示すフローチャートである。メッセージ受信処理プログラム11112−01は、複数のモジュール間で処理を連携して実行する為に、発行されたメッセージを処理する。
メッセージ受信処理プログラム11112−01は、例えば、所定の時間毎にプロセッサ11111によって実行が開始される。まず、ストレージモジュール11100において、プロセッサ11111がメッセージ受信処理プログラム11112−01を実行開始すると、開始後、ステップ11112−01−01に進む。ステップ11112−01−01では、プロセッサ11111がパワースイッチオフ等に伴うプログラム終了要求がないかを判断する。終了要求があった場合、プロセッサ11111が処理完了とする。終了要求がなければステップ11112−01−02へ進む。
ステップ11112−01−02では、プロセッサ11111がメッセージの受信がないかを調査する。受信がなければステップ11112−01−01へ戻る。受信があればステップ11112−01−03へ進む。
ステップ11112−01−03では、プロセッサ11111が受信したメッセージが“容量プール作成要求”であるか判断する。“容量プール作成要求”であるならばステップ11112−01−04へ進み、違うならばステップ11112−01−07へ進む。ステップ11112−01−04では、プロセッサ11111が図8及び図15に示す容量プール作成処理11112−02−02を実行する。容量プール作成処理11112−02−02の完了後、ステップ11112−01−01へ戻る。
ステップ11112−01−07では、プロセッサ11111が、受信したメッセージが“容量プールデータ複製要求”であるか判断する。“容量プールデータ複製要求”であるならばステップ11112−01−08へ進み、違うならばステップ11112−01−09へ進む。ステップ11112−01−08では、プロセッサ11111が図9及び図24に示すデータ複製処理11112−03−07を実行する。データ複製処理11112−03−07の完了後、ステップ11112−01−01へ戻る。
ステップ11112−01−09では、プロセッサ11111が、受信したメッセージが“仮想ボリューム作成要求”であるか判断する。“仮想ボリューム作成要求”であるならばステップ11112−01−10へ進み、違うならばステップ11112−01−11へ進む。ステップ11112−01−10では、プロセッサ11111が仮想ボリューム作成要求処理を実行する。仮想ボリューム作成要求処理は、図9及び図19に示す仮想ボリューム作成処理11112−03−02において、更に、メッセージの送信元に対して処理の終了を通知する返信を行うステップを最後に実行するようにした処理である。仮想ボリューム作成要求処理の完了後、ステップ11112−01−01へ戻る。
ステップ11112−01−11では、プロセッサ11111が、受信したメッセージが“ボリューム削除要求”であるか判断する。“ボリューム削除要求”であるならばステップ11112−01−12へ進み、違うならばステップ11112−01−13へ進む。ステップ11112−01−12では、プロセッサ11111が図9及び図21に示すボリューム削除処理11112−03−04を実行する。ボリューム削除処理11112−03−04の完了後、ステップ11112−01−01へ戻る。
ステップ11112−01−13では、プロセッサ11111が、受信したメッセージが“I/O停止要求”であるか判断する。“I/O停止要求”であるならばステップ11112−01−14へ進み、違うならばステップ11112−01−15へ進む。ステップ11112−01−14では、プロセッサ11111が図10及び図25に示すI/O停止処理11112−04−01を実行する。I/O停止処理11112−04−01の完了後、ステップ11112−01−01へ戻る。
ステップ11112−01−15では、プロセッサ11111が、受信したメッセージが“I/O開始要求”であるか判断する。“I/O開始要求”であるならばステップ11112−01−16へ進み、違うならばエラーとする。ステップ11112−01−16では、プロセッサ11111が図10及び図26に示すI/O開始処理11112−04−02を実行する。I/O開始処理11112−04−02の完了後、ステップ11112−01−01へ戻る。
図14は、容量プール作成制御処理11112−02−01のフローチャートである。
まず、ストレージモジュール11100において、プロセッサ11111がプール作成制御処理11112−02−01を実行開始すると、開始後、ステップ11112−02−01−01に進む。ステップ11112−02−01−01では、プロセッサ11111が作成対象の容量プールの容量プール構成管理テーブル11112−14への登録有無を調査することにより、作成対象の容量プールが既に作成済みであるかをチェックする。チェックの結果、作成済みであればエラーとする。一方、未作成であればステップ11112−02−01−02へ進む。
ステップ11112−02−01−02では、プロセッサ11111が、ストレージサブシステム11000内の全ストレージモジュールに“容量プール作成要求”のメッセージを送信する。メッセージを送信した後、ステップ11112−02−01−03へ進む。
ステップ11112−02−01−03では、プロセッサ11111が、全モジュールからの“容量プール作成完了“のメッセージ返信を待つ。全モジュールからの返信を検知した後、プロセッサ11111は容量プール作成制御処理11112−02−01を終了する。
図15は、容量プール作成処理11112−02−02のフローチャートである。
まず、ストレージモジュール11100において、プロセッサ11111が容量プール作成処理11112−02−02を実行開始すると、開始後、ステップ11112−02−02−01に進む。ステップ11112−02−02−01では、プロセッサ11111が、容量プール構成管理テーブル11112−14から容量プール番号11112−14−04が指定された容量プール番号に対応するレコードを検出し、当該レコードの容量プール作成有無1112−14−05に“有”を登録し、容量プール空き容量11112−14−06に空き容量無を表す“0”を登録し、ステップ11112−02−02−02に進む。
ステップ11112−02−02−02では、プロセッサ11111が、メッセージ送信元のモジュールに対し、“容量プール作成完了“のメッセージの返信を行い、その後、容量プール作成処理11112−02−02を終了する。
図16は、容量プール容量追加処理11112−02−03のフローチャートである。
まず、ストレージモジュール11100において、プロセッサ11111が容量プール容量追加処理11112−02−03を実行開始すると、開始後、ステップ11112−02−03−01に進む。
ステップ11112−02−03−01では、プロセッサ11111が、容量プール構成管理テーブル11112−14から容量プール番号1112−14−04が対象の容量プールに対応するレコードを検出し、当該レコードの容量プール作成有無1112−14−05に“有”が格納されていることを調査することで、対象容量プールが存在していることを確認する。プロセッサ11111は、確認の結果、対象容量プールが存在するならばステップ11112−02−03−02へ進み、存在しないならばエラーとする。
ステップ11112−02−03−02では、プロセッサ11111は、容量プール構成管理テーブル11112−14からRAIDグループ番号11112−14−01が対象のRAIDグループに対応するレコードを検出し、当該レコードの容量プール番号11112−14−02に容量プール番号が格納されていないことを調査することで、対象RAIDグループが未使用であることを確認する。プロセッサ11111は、確認の結果、対象RAIDグループが未使用ならばステップ11112−02−03−03へ進み、使用済みならばエラーとする。
ステップ11112−02−03−03では、プロセッサ11111は、容量プールに追加される対象のRAIDグループを構成するHDD11161を初期化する。これにより、対象のRAIDグループよりデータを読み出した場合、“0”のデータを取得することができる。この後、ステップ11112−02−03−04へ進む。
ステップ11112−02−03−04では、プロセッサ11111が容量プール構成管理テーブル11112−14の登録処理を行う。すなわち、プロセッサ11111は、はじめに、対象の容量プールに対応するレコードの容量プール作成有無1112−14−05に“有”を格納する。次に、プロセッサ11111は、初期化したRAIDグループに対応するレコードの容量プール番号11112−14−02に容量追加対象の容量プールの識別子を登録する。次に、プロセッサ11111は、当該レコードの空き領域情報11112−14−03に該RAIDグループの全領域を登録する。次に、プロセッサ11111は、該RAIDグループの容量を対応する容量プールの容量プール空き容量11112−14−06に加算する。この後、プロセッサ11111は、容量プール容量追加処理11112−02−03を終了する。
図17は、容量プール状態取得処理11112−02−06のフローチャートである。
まず、ストレージモジュール11100において、プロセッサ11111が容量プール状態取得処理11112−02−06を実行開始すると、開始後、ステップ11112−02−06−01に進む。ステップ11112−02−06−01では、プロセッサ11111が、容量プール構成管理テーブル11112−14の容量プール空き容量11112−14−06から対象の容量プールにおける空き容量を取得し、その後、ステップ11112−02−06−02に進む。
ステップ11112−02−06−02では、プロセッサ11111がステップ11112−02−06−01で取得した空き容量の情報と共に返信メッセージを、プール状態取得処理11112−02−06の実行を要求したストレージモジュールに対して送信する。この後、プロセッサ11111は、容量プール状態取得処理11112−02−06を終了する。
図18は、容量プール状態収集制御11112−02−07のフローチャートである。
まず、ストレージモジュール11100において、プロセッサ11111が容量プール状態収集制御11112−02−07を実行開始すると、開始後、ステップ11112−02−07−01に進む。ステップ11112−02−07−01では、プロセッサ11111が、容量プール構成管理テーブル11112−14から対象の容量プールに対応するレコードの容量プール作成有無1112−14−05に“有”が格納されていることを確認する。プロセッサ11111は、“有”が格納されていれば、対象の容量プールは作成済みであるとして、ステップ11112−02−07−02へ進む一方、“無”が格納されていれば、対象の容量プールは未作成であるとして、エラー処理を行う。
ステップ11112−02−07−02では、プロセッサ11111は、全ストレージモジュールに対して“容量プール状態取得要求”メッセージを送信し、その後、ステップ11112−02−07−03に進む。
ステップ11112−02−07−03では、プロセッサ11111が、ステップ11112−02−07−02において全モジュールに対して送信したメッセージに対する返信を待つ。プロセッサ11111は、全モジュールからの返信を確認後、ステップ11112−02−07−04に進む。
ステップ11112−02−07−04では、プロセッサ11111が、ステップ11112−02−07−03で受信した返信メッセージに付随する各モジュールの容量プールの容量及び空き容量の値の総和を計算し、その後、ステップ11112−02−07−05に進む。
ステップ11112−02−07−05では、プロセッサ11111が、ステップ11112−02−07−04で求めた、全モジュールの容量プールの容量及び空き容量の総和を、ホストコンピュータ10000やストレージ管理端末11010へ送信する。この後、プロセッサ11111は、容量プール状態収集制御11112−02−07を終了する。
図19は、仮想ボリューム作成処理11112−03−02のフローチャートである。
まず、ストレージモジュール11100において、プロセッサ11111が仮想ボリューム作成処理11112−03−02を実行開始すると、開始後、ステップ11112−03−02−01に進む。ステップ11112−03−02−01では、プロセッサ11111が、容量プール構成管理テーブル11112−14から容量プール番号11112−14−04が作成対象の仮想ボリュームと関連付けられる容量プールに対応するレコードを検出し、当該レコードの容量プール作成有無11112−14−05に“有”が格納されていることを調査することで、作成対象の仮想ボリュームと関連付けられる容量プールが存在していることを確認する。プロセッサ11111は、確認の結果、対象容量プールが存在するならばステップ11112−03−02−02へ進み、存在しないならばエラーとする。
ステップ11112−03−02−02では、プロセッサ11111が、ボリューム管理テーブル11112−12からボリューム番号11112−12−01が作成対象のボリュームの番号に対応するレコードを検出し、当該レコードのプール番号11112−12−02及びRAIDグループ番号11112−12−03に登録がないことを調査することで、作成対象のボリュームが未使用であることを確認する。プロセッサ11111は、確認の結果、対象ボリュームが未使用ならばステップ11112−03−02−03へ進み、未使用でないならばエラーとする。
ステップ11112−03−02−03では、プロセッサ11111が、仮想ボリューム割り当て領域管理テーブル11112−13を初期化することで、作成対象の仮想ボリュームに容量プール上の記憶領域の割り当てがない状態を作り、その後、ステップ11112−03−02−04へ進む。ステップ11112−03−02−04では、プロセッサ11111が、ボリューム管理テーブル11112−12に対する登録処理を行う。
ここでは、プロセッサ11111は、ボリューム番号11112−12−01が作成対象の仮想ボリュームに対応するレコードのプール番号11112−12−02に、当該ボリューム番号に関連付けする容量プールの識別子を登録する。この後、プロセッサ11111は、仮想ボリューム作成処理11112−03−02を終了する。
図20は、仮想ボリューム移動制御11112−03−03のフローチャートである。
まず、ストレージモジュール11100において、プロセッサ11111が仮想ボリューム移動制御11112−03−03を実行開始すると、開始後、ステップ11112−03−03−01に進む。ステップ11112−03−03−01では、プロセッサ11111が、送信対象のストレージモジュールを選択し、当該ストレージモジュールに対して“仮想ボリューム作成要求”メッセージを送信する。尚、プロセッサ11111は、容量プールの空き容量が大きいストレージモジュールをメッセージ送信先として選択するようにしてもよい。その後、ステップ11112−03−03−02へ進む。
ステップ11112−03−03−02では、プロセッサ11111は、ステップ11112−03−03−01において送信したメッセージに対する完了の返信の到着を待ち、返信到着後、ステップ11112−03−03−03へ進む。
ステップ11112−03−03−03では、プロセッサ11111は、移動対象の仮想ボリュームに格納されたデータを、関連付けられた自モジュールの容量プールから移動対象のストレージモジュールの容量プールへデータコピーを行う為、図24に示すデータ複製処理11112−03−07を実行し、その後、ステップ11112−03−03−04へ進む。
ステップ11112−03−03−04では、プロセッサ11111は、移動対象の仮想ボリュームに対するI/Oを一時停止するため、図10及び図25に示すI/O停止処理11112−04−01を実行する。I/O停止処理11112−04−01の終了後、ステップ11112−03−03−05へ進む。
ステップ11112−03−03−05では、プロセッサ11111は、仮想ボリューム割り当て領域管理テーブル11112−13において、コピー元ボリュームに対応するレコードの更新有無情報11112−13−04を調査し、“有”があるか否か、すなわち、差分があるか否かを確認する。プロセッサ11111は、確認の結果、更新有無情報11112−13−04に“有”があるならば、ステップ11112−03−03−06に進み、“有”がないならば、仮想ボリュームを完全に他のストレージモジュールに複製したことを意味するので、ステップ11112−03−03−07へ進む。
ステップ11112−03−03−06では、移動対象の仮想ボリュームに対するI/Oを再開するため、図9及び図26に示すI/O開始処理11112−04−02を実行し、ステップ11112−03−03−03へ進む。
ステップ11112−03−03−07では、プロセッサ11111は、移動元ストレージモジュール(自ストレージモジュール)における移動対象の仮想ボリュームを削除するための処理を実行する。すなわち、プロセッサ11111は、後述する図23に示す記憶領域解放処理11112−03−06を実行して移動対象の仮想ボリュームに割り当てられていた記憶領域を開放し、後述する図21に示す仮想ボリューム削除処理11112−03−04を実行して、移動対象の仮想ボリュームを容量プールから削除する。この後、プロセッサ11111は、仮想ボリューム移動制御11112−03−03を終了する。
図21は、仮想ボリューム削除処理11112−03−04のフローチャートである。
まず、ストレージモジュール11100において、プロセッサ11111が仮想ボリューム削除処理11112−03−04を開始すると、開始後、ステップ11112−03−04−01に進む。ステップ11112−03−04−01では、プロセッサ11111が、ボリューム管理テーブル11112−12に登録された削除対象となる仮想ボリュームのプール番号11112−12−02を“未登録状態”(“N/A”)に変更する。これによって、ボリューム管理テーブル11112−12には、当該仮想ボリュームがストレージモジュール111000の容量プールにおいて管理されていない状態となる。この後、プロセッサ11111は、仮想ボリューム削除処理11112−03−04を終了する。
図22は、記憶領域割り当て処理11112−03−05のフローチャートである。
まず、ストレージモジュール11100において、プロセッサ11111が記憶領域割り当て処理11112−03−05を開始すると、開始後、ステップ11112−03−05−01に進む。ステップ11112−03−05−01では、プロセッサ11111が、容量プール構成管理テーブル11112−14の容量プール空き容量11112−14−06を参照し、容量プールの空き容量が枯渇するか否か、すなわち、容量プールに記憶領域の割り当てに必要な容量の空きがあるか否かを確認する。プロセッサ111111は、確認の結果、割り当てに必要な容量の空きが確認されたならばステップ11112−03−05−02へ進み、確認できなかった場合ステップ11112−03−05−04へ進む。
ステップ11112−03−05−02では、プロセッサ11111は、容量プール構成管理テーブル11112−14から、記憶領域割り当て対象の仮想ボリュームに関連付けられた容量プールに対応するRAIDグループを特定し、特定したRAIDグループの中から適切なRAIDグループを選択し、当該RAIDグループに対応するレコードの空き領域情報11112−14−03より適当な記憶領域のアドレスを選択し、該選択された記憶領域のアドレスを空き領域情報11112−14−03から削除する。
その後、プロセッサ11111は、仮想ボリューム割り当て領域管理テーブル11112−13の記憶領域割り当て元番号11112−13−01から対象のデータに割り当てる仮想ボリュームの記憶領域番号を選択し、当該記憶領域番号を含むレコードの記憶領域割り当て先RAIDグループ番号11112−13−02に選択した記憶領域に関するRAIDグループ番号を格納し、当該レコードの記憶領域割り当て先番号11112−13−03に、選択した記憶領域の先頭アドレスを格納し、当該レコードの更新有無情報11112−13−04に“有”を格納する。その後、ステップ11112−03−05−03へ進む。
ステップ11112−03−05−03では、プロセッサ11111は、容量プール構成管理テーブル11112−14の容量プール空き容量11112−14−06が予め定められた閾値未満であるか否かを確認することによって、容量プールの空き容量が枯渇すると予想されるか否かを確認する。尚、該閾値は、対象モジュール内の仮想ボリュームの総容量や、モジュールの容量プールからの比率に応じて動的に変更するようにしても良い。プロセッサ11111は、確認の結果、閾値未満である場合には、容量プールが枯渇する可能性が高いことを意味しているので、ステップ11112−03−05−04へ進み、閾値以上である場合、記憶領域割り当て処理11112−03−05を終了する。
ステップ11112−03−05−04では、プロセッサ11111は、容量プールの空き容量を増加させる為、移動対象の仮想ボリューム及び移動先のストレージモジュールを選択する。移動対象の仮想ボリュームとしては、例えば、割当てられた容量プールの記憶領域のサイズが大きい、アクセス頻度が高くない、要求されるI/O性能が大きくない等といった特徴を持つものを選択するのが望ましい。また、移動先のストレージモジュールとしては、移動先となり得る複数のストレージモジュールが存在する場合には、容量プールの空き容量が大きいという特徴を持つストレージモジュールを選択することが望ましい。この後、ステップ11112−03−05−05へ進む
ステップ11112−03−05−05では、プロセッサ11111は、ステップ11112−03−05−04で選択した仮想ボリュームを、選択したストレージモジュールへ移動するための“仮想ボリューム移動”コマンドを自己宛に発行する。その後、プロセッサ11111は、記憶領域割り当て処理11112−03−05を終了する。
図23は、記憶領域解放処理11112−03−06のフローチャートである。
まず、ストレージモジュール11100において、プロセッサ11111が記憶領域解放処理11112−03−06を開始すると、開始後、ステップ11112−03−06−01に進む。ステップ11112−03−06−01では、プロセッサ11111は、キャッシュ領域管理テーブル11112−15において管理される、記憶領域解放対象のボリュームに対応した制御情報を無効化することで、キャッシュ領域11112−20に格納していた当該ボリュームのキャッシュデータの破棄を行う。その後、ステップ11112−03−06−02へ進む。
ステップ11112−03−06−02では、プロセッサ11111は、記憶領域解放対象のボリュームに対応する仮想ボリューム割り当て領域管理テーブル11112−13の記憶領域割り当て先RAIDグループ番号11112−13−02及び記憶領域割り当て先番号11112−13−03に、記憶領域を割り当てた情報が格納されていないかを確認する。プロセッサ11111は、確認の結果、割り当てた情報がある場合はステップ11112−03−06−03へ進み、割り当てた情報がない場合は、記憶領域解放処理11112−03−06を終了する。
ステップ11112−03−06−03では、プロセッサ11111は、ステップ11112−03−06−02で検出した記憶領域の情報に対する操作を行う。すなわち、プロセッサ11111は、はじめに、記憶領域解放対象の記憶領域に対する対応関係を削除する為、仮想ボリューム割り当て領域管理テーブル11112−13の当該対象の記憶領域に対応するレコードの記憶領域割り当て先RAIDグループ番号11112−13−02及び記憶領域割り当て先番号11112−13−03に無効値を格納する。次に、プロセッサ11111は、対象の記憶領域を容量プールに返却する為、容量プール構成管理テーブル11112−14から、RAIDグループ番号11112−14−01が記憶領域割り当て先RAIDグループ番号11112−13−02に格納されていたRAIDグループとなっているレコードを検索し、当該レコードの空き領域情報11112−14−03に記憶領域割り当て先番号11112−13−03に格納されていた記憶領域を登録し、当該登録した記憶領域に対応する空き容量を、対応する容量プールのレコードの容量プール空き容量11112−14−06に加算する。これによって、割り当てられていた記憶領域が空き領域となり、容量プールにおける記憶領域の割り当てに利用できるようになる。この後、ステップ11112−03−06−02へ進む。
図24は、データ複製処理11112−03−07のフローチャートである。
まず、ストレージモジュール11100において、プロセッサ11111がデータ複製処理11112−03−07を開始すると、開始後、ステップ11112−03−07−01に進む。ステップ11112−03−07−01では、プロセッサ11111は、仮想ボリューム割り当て領域管理テーブル11112−13のコピー元ボリュームに対応する更新有無情報11112−13−04を全て“有”とすることにより初期化する。その後、ステップ11112−03−07−02へ進む。
ステップ11112−03−07−02では、プロセッサ11111は、コピー元ボリュームに対応する更新有無情報11112−13−04を調査し、“有”があるか否か、すなわち、差分があるか否かを確認する。プロセッサ11111は、確認の結果、更新有無情報11112−13−04に“有”が無いならばデータ複製処理11112−03−07を終了し、“有”があるならばステップ11112−03−07−03へ進む。
ステップ11112−03−07−03では、プロセッサ11111は、ステップ11112−03−07−02で検出した“有”が対応付けられている記憶領域をコピー元として定め、その後、ステップ11112−03−07−04へ進む。
ステップ11112−03−07−04では、プロセッサ11111は、ステップ11112−03−07−03でコピー元と定めた記憶領域について、記憶領域割り当て先RAIDグループ番号11112−13−02及び記憶領域割り当て先番号11112−13−03を参照し、記憶領域の割り当てがあるかを確認する。プロセッサ11111は、確認の結果、記憶領域の割り当てが無いならばステップ11112−03−07−10へ進み、記憶領域の割り当てがあるならばステップ11112−03−07−05へ進む。
ステップ11112−03−07−05では、プロセッサ11111は、キャッシュ領域管理テーブル11112−15を検索することで、コピー元記憶領域のデータがキャッシュ領域11112−20上に格納されているかを確認する。プロセッサ11111は、確認の結果、キャッシュ領域11112−20上に格納されているならばステップ11112−03−07−09へ進み、格納されていないならばステップ11112−03−07−06へ進む。
ステップ11112−03−07−06では、プロセッサ11111は、キャッシュ領域管理テーブル11112−15を検索し、空いているキャッシュ領域11112−20の領域を確保し、その後、ステップ11112−03−07−07へ進む。
ステップ11112−03−07−07では、プロセッサ11111は、記憶領域割り当て先RAIDグループ番号11112−13−02及び記憶領域割り当て先番号11112−13−03を参照することで、HDD11161上のデータ格納位置を特定する。その後、ステップ11112−03−07−08へ進む。
ステップ11112−03−07−08では、プロセッサ11111は、コピー元の記憶領域が格納されたHDD11161上のデータを、ステップ11112−03−07−07で確保したキャッシュ領域11112−20上の領域へ転送する。その後、ステップ11112−03−07−09へ進む。
ステップ11112−03−07−09では、プロセッサ11111は、キャッシュ領域11112−20上に格納されたコピー元記憶領域のデータを、コピー先ボリュームのストレージモジュール上のキャッシュ領域11112−20へ、ストレージモジュール間接続インタフェース11113及びストレージモジュール間接続インタフェース11213を結ぶケーブルを介して転送する。これにより、転送先のストレージモジュールにおいて、後述する図29の処理が実行されることにより、コピー元の記憶領域のデータがストレージモジュールの容量プールの記憶領域に割り当てられて格納され、仮想ボリュームのデータ位置に対して、新たに割り当てられたRAIDグループ番号及び割り当てられた記憶領域の識別情報が対応付けられた仮想ボリューム割り当て領域管理テーブル11112−13が作成される。その後、ステップ11112−03−07−10へ進む。
ステップ11112−03−07−10では、プロセッサ11111は、仮想ボリューム割り当て領域管理テーブル11112−13におけるコピー元記憶領域に対応するレコードの更新有無情報11112−13−04に“無”を格納する。その後、ステップ11112−03−07−02へ戻る。
図25は、I/O停止処理11112−04−01のフローチャートである。
まず、ストレージモジュール11100において、プロセッサ11111がI/O停止処理11112−04−01を開始すると、開始後、ステップ11112−04−01−01に進む。ステップ11112−04−01−01では、プロセッサ11111は、ボリューム管理テーブル11112−12から、ボリューム番号11112−12−01が対象のボリュームに対応するボリューム番号であるレコードを検索し、当該レコードのI/O停止判別情報11112−12−05に“ON”を格納する。その後、プロセッサ11111は、I/O停止処理11112−04−01を終了する。
図26は、I/O開始処理11112−04−02の処理手順を示すフローチャートである。
まず、ストレージモジュール11100において、プロセッサ11111がI/O開始処理11112−04−02を開始すると、開始後、ステップ11112−04−02−01に進む。ステップ11112−04−02−01では、プロセッサ11111は、ボリューム管理テーブル11112−12から、ボリューム番号11112−12−01が対象のボリュームに対応するボリューム番号であるレコードを検索し、当該レコードのI/O停止判別情報11112−12−05に“OFF”を格納する。その後。プロセッサ11111は、I/O開始処理11112−04−02を終了する。
図27は、書き込みI/O処理11112−04−03のフローチャートである。
まず、ストレージモジュール11100において、プロセッサ11111が書き込みI/O処理11112−04−03を開始すると、開始後、ステップ11112−04−03−01に進む。ステップ11112−04−03−01では、プロセッサ11111は、I/O処理の実行可否を判断する為、ボリューム管理テーブル11112−12の対象のボリュームに対応するレコードのI/O停止判別情報11112−12−05を確認する。プロセッサ11111は、確認の結果、“OFF”が格納されていた場合、I/O処理実行の為にステップ11112−04−03−02へ進む。一方、“ON”が格納されていた場合、プロセッサ11111は、“OFF”に変わるまで次の処理を待つ。
ステップ11112−04−03−02では、プロセッサ11111は、キャッシュ領域11112−20上にデータ格納領域が既に確保されているか、キャッシュ領域管理テーブル11112−15を検索することで確認する。プロセッサ11111は、確認の結果、データ格納領域が未確保の場合はステップ11112−04−03−03へ進み、確保済みの場合はステップ11112−04−03−04へ進む。
ステップ11112−04−03−03では、プロセッサ11111は、キャッシュ領域管理テーブル11112−15からキャッシュ領域11112−20の空き領域を検索し、当該空き領域を確保し、その後、ステップ11112−04−03−04に進む。
ステップ11112−04−03−04では、プロセッサ11111は、仮想ボリューム割り当て管理テーブル11112−12における当該書き込み処理により書き込むデータ位置に対応するレコードの更新有無情報11112−13−04に対して“ON”の情報を格納する。その後、ステップ11112−04−03−05に進む。
ステップ11112−04−03−05では、プロセッサ11111は、ホストコンピュータ10000から転送されたデータをキャッシュ領域11112−20に格納する。その後、プロセッサ11111は、書き込みI/O処理11112−04−03を終了する。
図28は、読み出しI/O処理11112−04−04のフローチャートである。
まず、ストレージモジュール11100において、プロセッサ11111が読み出しI/O処理11112−04−04を開始すると、開始後、ステップ11112−04−04−01に進む。ステップ11112−04−04−01では、プロセッサ11111は、I/O処理の実行可否を判断する為、ボリューム管理テーブル11112−12の対象のボリュームに対応するレコードのI/O停止判別情報11112−12−05を確認する。プロセッサ11111は、確認の結果、“OFF”が格納されている場合、I/O処理実行の為にステップ11112−04−04−02へ進む。プロセッサ11111は、“ON”が格納されていた場合、“OFF”に変わるまで処理を待つ。
ステップ11112−04−04−02では、プロセッサ11111は、キャッシュ領域11112−20上に読み出し対象のデータが格納されているか、キャッシュ領域管理テーブル11112−15を検索することで確認する。プロセッサ11111は、確認の結果、データ格納済みの場合はステップ11112−04−04−03へ進み、データ未格納の場合はステップ11112−04−04−07へ進む。
ステップ11112−04−04−03では、プロセッサ11111は、キャッシュ領域管理テーブル11112−15よりキャッシュ領域11112−20の空き領域を検索し、空き領域を確保する。その後、ステップ11112−04−04−04に進む。
ステップ11112−04−04−04では、プロセッサ11111は、仮想ボリューム割り当て領域管理テーブル11112−13から記憶領域割り当て元番号11112−13−01がI/O対象領域の番号となっているレコードを検索し、当該レコードの記憶領域割り当て先RAIDグループ番号11112−13−02及び記憶領域割り当て先番号11112−13−03に値が格納されているか否かを確認する。プロセッサ11111は、確認の結果、値が格納されていない場合は記憶領域が未割り当てであるとしてステップ11112−04−04−05へ進み、値が格納されている場合は記憶領域が割り当て済みであるとしてステップ11112−04−04−06へ進む。
ステップ11112−04−04−05では、プロセッサ11111は、ステップ11112−04−04−03で確保したキャッシュ領域11112−20の領域を“0”データで満たす。その後、ステップ11112−04−04−07に進む。
ステップ11112−04−04−06では、プロセッサ11111は、ステップ11112−04−04−04で検出した記憶領域に対応するHDD11161から、ステップ11112−04−04−03で確保したキャッシュ領域11112−20の領域へデータ転送を行う。その後、ステップ11112−04−04−07に進む。
ステップ11112−04−04−07では、プロセッサ11111は、キャッシュ領域11112−20に格納されたデータをホストコンピュータ10000に転送する。その後、プロセッサ11111は、読み出しI/O処理11112−04−04を終了する。
図29は、HDD操作プログラム11112−05のフローチャートである。
HDD操作プログラム11112−05は、例えば、所定の時間毎にプロセッサ11111によって実行が開始される。
まず、ストレージモジュール11100において、プロセッサ11111がHDD操作プログラム11112−05を開始すると、開始後、ステップ11112−05−01に進む。ステップ11112−05−01では、プロセッサ11111は、パワースイッチオフ等に伴うプログラム終了要求がないかを判断する。プロセッサ11111は、終了要求があった場合、処理を終了する。一方、終了要求がなければ、ステップ11112−05−02へ進む。
ステップ11112−05−02では、プロセッサ11111は、キャッシュ領域管理テーブル11112−15から、キャッシュ領域11112−20上に格納されたデータと、対応するHDD11161上のデータとの不一致が生じているデータを検索する。プロセッサ11111は、該当データが存在しなければステップ11112−05−01に戻り、存在すればステップ11112−05−03へ進む。
ステップ11112−05−03では、プロセッサ11111は、ステップ11112−05−02で検出したデータが仮想ボリュームのデータであるかを、ボリューム管理テーブル11112−12の当該データのボリューム番号に対応するレコードのプール番号11112−12−02に容量プール識別子が格納されているか否かにより確認する。プロセッサ11111は、確認の結果、容量プール識別子が格納されているならばステップ11112−05−04へ進み、格納されていないならばステップ11112−05−06へ進む。
ステップ11112−05−04では、プロセッサ11111は、対象のデータ領域に対して記憶領域の割り当てが既に実行されているかを、仮想ボリューム割り当て領域管理テーブル11112−13の当該データ領域に対応する記憶領域割り当て元番号に対応するレコードの記憶領域割り当て先RAIDグループ番号11112−13−02及び記憶領域割り当て先番号11112−13−03の値により確認する。プロセッサ11111は、確認の結果、値が格納されているならばステップ11112−05−06へ進み、格納されていないならばステップ11112−05−05へ進む。
ステップ11112−05−05では、プロセッサ11111は、図22に示す記憶領域割り当て処理11112−03−05を実行し、その後、ステップ11112−05−06に進む。
ステップ11112−05−06では、プロセッサ11111は、キャッシュ領域11112−20からデータ書き込み対象のHDD11161へデータを転送する。また同時に、プロセッサ11111は、キャッシュ領域管理テーブル11112−15に対し、キャッシュ領域11112−20とHDD11161上のデータとが一致した旨を登録する。その後、プロセッサ11111は、HDD操作プログラム11112−05の実行を終了する。
図30は、ストレージ管理端末11010のユーザインタフェース11014の出力画面である。
ストレージ管理端末11010のプロセッサ11011は、任意の容量プールの状態取得の為、各ストレージモジュール11100に対して“容量プール状態取得”コマンドを発行する。また、プロセッサ11011は、該コマンドの応答として、各容量プールの総容量及び総空き容量を取得し、図30に示すように、容量プールID11014−1に、容量プールのIDを表示させ、容量プール総容量11014−2に対応する容量プールの総容量を表示させ、容量プール総空き容量11014−3に対応する容量プールの総空き容量を表示させる。尚、ユーザインタフェース11014には詳細情報を取得したいユーザの為に、個々のモジュールについての容量及び空き容量を表示する画面を別途用意して、プロセッサ11011は、当該画面を表示させるようにしてもよい。
上記した第1実施形態によると、容量プールが枯渇することを検出した場合には、容量プールのデータを他のストレージモジュールの容量プールに移動することにより、容量プールの空き容量を増加させることができ、容量プールの枯渇を適切に防止することができ、例えば、容量プールの枯渇に伴う業務停止を防止することができる。また、容量プールの枯渇が予想される場合に、容量プールの空き容量を増加することができるので、以降の時点において容量プールが枯渇することをより効果的に防止することができる。
<第2実施形態>
次に、本発明の第2実施形態に係る計算機システムについて説明する。なお、第2実施形態の図面及び説明部分においては、第1実施形態と同様な部分には、同一の番号を付すこととし、第1実施形態との差異を中心に説明することとする。
図31は、本発明の第2実施形態に係る計算機システムの構成例を示す図である。
第2実施形態に係るストレージモジュール11100は、メディアユニット11160及びコントローラ11110に加えて、スイッチ11170を備えている。また、ストレージモジュール11200は、メディアユニット11260及びコントローラ11210に加え、スイッチ11270を備えている。
スイッチ11170は、HDD接続インタフェース11114及びハードディスクドライブ11161に接続される。スイッチ11260は、HDD接続インタフェース11214及びハードディスクドライブ11161に接続される。更にスイッチ11160とスイッチ11260とは相互に接続されている。このような構成によって、コントローラ11110からスイッチ11170及び11270を介してメディアユニット11260のハードディスクドライブ11261へ、また、コントローラ11210からスイッチ11270及び11170を介してメディアユニット11160のハードディスクドライブ11161へのアクセスが可能となっている。
第2実施形態においては、ストレージモジュール11100及びストレージモジュール11200は、RAIDグループ管理テーブル11112−11として同一内容のものを保持し、HDD番号リスト11112−11−03には、いずれのストレージモジュールに備えられているHDD11161、11261の番号を格納することもできるようになっている。これによって、一のストレージモジュールが、他のストレージモジュールに備えられているRAIDグループに属するHDDを把握することができるようになっている。
図32は、第2実施形態に係るプール操作プログラム11112−02を構成する処理の構成図である。尚、第1実施形態に係る図8に示すプール操作プログラム11112−02との差異を中心に説明する。
第2実施形態に係るプール操作プログラム11112−02は、容量プール作成制御処理11112−02−01、容量プール作成処理11112−02−02、容量プール容量追加処理11112−02−03、容量プール状態取得処理11112−02−06、及び容量プール状態収集制御11112−02−07に加えて、容量プール空き領域移動制御11112−02−04と容量プール空き領域送信処理11112−02−05とを備えている。
容量プール空き領域移動制御11112−02−04は、自ストレージモジュールで管理する容量プールに対して他ストレージモジュールで管理する容量プールの空き領域を追加する為の制御処理である。容量プール空き領域送信処理11112−02−05は、自ストレージモジュールで管理する容量プールの空き領域を、他ストレージモジュールに対して通知する処理である。
図33は、第二の実施例におけるコマンド処理プログラム11112−00の処理手順を示すフローチャートである。尚、第1実施形態に係る図11に示すコマンド処理プログラム11112−00の処理手順との差異を中心に説明する。
ステップ11112−00−09では、プロセッサ11111は、要求されたコマンドが“容量プール状態取得”であるか判断する。プロセッサ11111は、“容量プール状態取得”であったならばステップ11112−00−10へ進み、違うならばステップ11112−00−51へ進む。
ステップ11112−00−51では、プロセッサ11111は、要求されたコマンドが“容量プール空き領域移動”であるか判断する。プロセッサ11111は、“容量プール空き領域移動”であったならばステップ11112−00−52へ進み、違うならば図12のステップ11112−00−15へ進む。尚、ステップ11112−00−15へ進むのではなく、図11のステップ11112−00−13へ進むようにしてもよい。
ステップ11112−00−51では、プロセッサ11111は、図32及び図35に示すプール空き領域移動制御11112−02−04を実行する。その後、ステップ11112−00−01へ戻る。
図34は、第2実施形態に係るメッセージ受信処理プログラム11112−01の処理手順を示すフローチャートである。尚、第1実施形態に係る図13に示すメッセージ受信処理プログラム11112−01の処理手順との差異を中心に説明する。
ステップ11112−01−03では、プロセッサ11111は、受信したメッセージが“容量プール作成要求”であるか判断する。プロセッサ11111は、“容量プール作成要求”であったならばステップ11112−01−04へ進み、違うならばステップ11112−01−51へ進む。
ステップ11112−01−51では、プロセッサ11111は、受信したメッセージが“容量プール空き領域送信要求”であるか判断する。プロセッサ11111は、“容量プール空き領域送信要求”であったならばステップ11112−01−52へ進み、違うならばステップ11112−01−09へ進む。尚、ステップ11112−01−09へ進むのではなく、図13のステップ11112−01−07へ進むようにしてもよい。
ステップ11112−01−52では、プロセッサ11111は、図33及び図36に示す容量プール空き領域送信処理11112−02−05を実行する。その後、ステップ11112−01−01へ戻る。
図35は、容量プール空き領域移動制御11112−02−04のフローチャートである。
まず、ストレージモジュール11100において、プロセッサ11111が容量プール空き領域移動制御11112−02−04を開始すると、開始後、ステップ11112−02−04−01に進む。ステップ11112−02−04−01では、プロセッサ11111は、送信先のストレージモジュールを選択し、当該ストレージモジュールに対して“容量プール空き領域送信要求”メッセージを送信する。尚、メッセージの送信先のストレージモジュールとしては、通信可能な複数のストレージモジュールが存在する場合には、容量プールの空き容量が大きいストレージモジュールを選択するようにしてもよい。その後、ステップ11112−02−04−02へ進む。
ステップ11112−02−04−02では、プロセッサ11111は、ステップ11112−02−04−01にて送信したメッセージに対する完了の返信の到着を待つ。プロセッサ11111は、返信到着後、ステップ11112−02−04−03へ進む。
ステップ11112−02−04−03では、プロセッサ11111は、ステップ11112−02−04−02において受信した返信メッセージに付随する、後述する空き領域情報を容量プール構成管理テーブル11112−14に格納する。すなわち、プロセッサ11111は、空き領域情報中の空き領域のRAIDグループ番号をRAIDグループ番号11112−14−01に格納し、空き領域を追加した容量プールの番号を容量プール番号11112−14−02に格納し、空き領域を示すアドレスを空き領域情報11112−14−03に格納し、追加した容量を容量プール空き容量11112−14−06に格納されている容量に追加して格納する。これによって、他のストレージモジュール11200に備えられているHDD11261の記憶領域を容量プールにおける割当先の記憶領域として利用できるようになる。本実施形態では、このように利用可能となったHDD11261に対して、プロセッサ11111がスイッチ11170及び11270を介してアクセスする。その後、プロセッサ11111は、容量プール空き領域移動制御11112−02−04の処理を終了する。
図36は、容量プール空き領域送信処理11112−02−05の処理手順を示すフローチャートである。まず、ストレージモジュール11100において、プロセッサ11111が容量プール空き領域送信処理11112−02−05を開始すると、開始後、ステップ11112−02−05−01に進む。ステップ11112−02−05−01では、プロセッサ11111は、自モジュールの容量プール構成管理テーブル11112−14を調査し、適当な大きさの空き領域をいずれかのRAIDグループから確保し、確保した空き領域を示すアドレスを容量プール構成管理テーブル11112−14の当該RAIDグループに対応するレコードの空き領域情報11112−14−03から削除するとともに、当該レコードの容量プール空き容量11112−14−06から確保した容量を減ずる。その後、ステップ11112−02−05−02へ進む。
ステップ11112−02−05−02では、プロセッサ11111は、ステップ11112−02−05−01において確保した空き領域の情報、例えば、RAIDグループ番号、容量プール番号、アドレス、及び容量の情報を、図35に示すステップ11112−02−04−01にて“容量プール空き領域送信要求”メッセージを発行したストレージモジュールに対して返信メッセージに付随して送信する。その後、プロセッサ11111は、容量プール空き領域送信処理11112−02−05を終了する。
図37は、第2実施形態に係る記憶領域割り当て処理11112−03−05のフローチャートである。尚、第1実施形態に係る図22に示す記憶領域割り当て処理11112−03−05との差異を中心に説明する。第2実施形態に係る記憶領域割り当て処理11112−03−05は、図29のステップ11112−04−05−05において、図22に示す記憶領域割り当て処理11112−03−05に代わって実行される。
ステップ11112−03−05−03では、プロセッサ11111は、容量プール構成管理テーブル11112−14の容量プール空き容量11112−14−06が予め定められた閾値未満であるか否かを確認する。プロセッサ11111は、確認の結果、閾値未満である場合には、容量プールが枯渇する可能性が高いことを意味しているので、ステップ11112−03−05−14へ進み、閾値以上である場合、記憶領域割り当て処理11112−03−05を終了する。
ステップ11112−03−05−14では、プロセッサ11111は、容量プールの空き容量を増加させる為、容量プール空き容量の移動元(提供元)となる適当な他のストレージモジュールを選択する。ここで、移動元のストレージモジュールとしては、“容量プールの空き容量が大きい”といった特徴を持つストレージモジュールを選択することが望ましい。その後、ステップ11112−03−05−15へ進む。
ステップ11112−03−05−15では、プロセッサ11111は、ステップ11112−03−05−14で選択したストレージモジュール内の容量プールの空き領域を移動するための“容量プール空き領域移動”コマンドを自モジュール宛に発行する。これにより、以降において図35の容量プール空き領域移動制御11112−02−04が開始されることとなる。その後、プロセッサ11111は、記憶領域割り当て処理11112−03−05を終了する。
上記した第2実施形態によると、或るモジュールの容量プールが枯渇することを検出した場合には、他のストレージモジュールの容量プールの空き容量を取得することにより、当該或るモジュールの容量プールの空き容量を増加させることができ、容量プールの枯渇を適切に防止することができ、例えば、容量プールの枯渇に伴う業務停止を防止することができる。また、容量プールの枯渇が予想される場合に、容量プールの空き容量を増加することができるので、以降の時点において容量プールが枯渇することをより効果的に防止することができる。また、第2実施形態によると、容量プールに属する仮想ボリュームで管理するデータ自体を、他のストレージモジュールに送信する必要がないので、迅速に容量プールの空き容量を増加させることができる。また、第2実施形態によると、ホストコンピュータ10000は、格納先のストレージモジュールを意識することなく、常に一のストレージモジュールに対してアクセス要求を出すことにより容量プールに属する仮想ボリュームのデータにアクセスすることができる。
以上、本発明を複数の実施形態に基づいて説明したが、本発明は上述した実施形態に限られず、他の様々な態様に適用可能である。
例えば、上記第1実施形態においては、一のストレージモジュールが自己に対するコマンドでない場合に、他のストレージモジュールに送信することにより、他のストレージモジュールに移動された仮想ボリュームのデータにアクセスできるようになっていたが、本発明はこれに限られず、例えば、移動させた仮想ボリュームの移動先のストレージモジュールをホストコンピュータに通知し、ホストコンピュータが通知されたストレージモジュールに仮想ボリュームへのアクセス要求を発生するようにしてもよい。
また、上記第2実施形態おいては、ストレージモジュール11100のコントローラ11110と、他のストレージモジュール11210のメディアユニット11260とをスイッチ11170及びスイッチ11270を介して接続することにより、ストレージモジュール11100のコントローラ11110がストレージモジュール11200のコントローラ11210を介さずに、直接メディアユニット11260のHDD11261にアクセスできるようにしているため、コントローラ11210への負荷の増加や、コントローラ11210の故障等の影響を適切に防止できるようにしていたが、本発明はこれに限られず、例えば、コントローラ11110からコントローラ11210を経由してメディアユニット11260にアクセスするようにしてもよく、このようにしても、仮想ボリュームで管理するデータ自体を送信する必要がないので、容量プールの空き容量を迅速に増加させることができる。
本発明の第1実施形態に係る計算機システムの構成例を示す図である。 メモリ11112内の構造を示す図である。 メモリ11212内の構造を示す図である。 RAIDグループ管理テーブル11112−11の構造を示す図である。 ボリューム管理テーブル11112−12の構造を示す図である。 仮想ボリューム割り当て領域管理テーブル11112−13の構造を示す図である。 容量プール構成管理テーブル11112−14の構造を示す図である。 容量プール操作プログラム11112−02を構成する処理の構造を示す図である。 ボリューム操作プログラム11112−03を構成する処理の構造を示す図である。 I/O処理プログラム11112−04を構成する処理の構造を示す図である。 コマンド処理プログラム11112−00により実行される処理手順を示すフローチャートである。 コマンド処理プログラム11112−00により実行される処理手順を示すフローチャートであり、図11の続きである。 メッセージ受信処理プログラム11112−01により実行される処理手順を示すフローチャートである。 容量プール作成制御処理11112−02−01のフローチャートである。 容量プール作成処理11112−02−02のフローチャートである。 容量プール容量追加処理11112−02−03のフローチャートである。 容量プール状態取得処理11112−02−06のフローチャートである。 容量プール状態収集制御11112−02−07の処理手順を示すフローチャートである。 仮想ボリューム作成処理11112−03−02のフローチャートである。 仮想ボリューム移動制御11112−03−03の処理手順を示すフローチャートである。 仮想ボリューム削除処理11112−03−04のフローチャートである。 記憶領域割り当て処理11112−03−05のフローチャートである。 記憶領域解放処理11112−03−06のフローチャートである。 データ複製処理11112−03−07のフローチャートである。 I/O停止処理11112−04−01のフローチャートである。 I/O開始処理11112−04−02のフローチャートである。 書き込みI/O処理11112−04−03のフローチャートである。 読み出しI/O処理11112−04−04のフローチャートである。 HDD操作プログラム11112−05により実行される処理手順を示すフローチャートである。 ストレージ管理端末11010のユーザインタフェース11014の出力画面を示す図である。 本発明の第2実施形態に係る計算機システムの構成例を示す図である。 容量プール操作プログラム11112−02を構成する処理の構造を示す図である。 コマンド処理プログラム11112−00により実行される処理手順を示すフローチャートである。 メッセージ受信処理プログラム11112−01により実行される処理手順を示すフローチャートである。 容量プール空き領域移動制御11112−02−04のフローチャートである。 容量プール空き領域送信処理11112−02−05のフローチャートである。 記憶領域割り当て処理11112−03−05のフローチャートである。
符号の説明
10000…ホストコンピュータ、11000…ストレージサブシステム、11100…ストレージモジュール、11110…コントローラ、11111…プロセッサ、11112…メモリ、11112−00…コマンド処理プログラム、11112−01…メッセージ受信処理プログラム、11112−02…プール操作プログラム、11112−03…ボリューム操作プログラム、11112−04…I/O処理プログラム、11112−05…HDD操作プログラム、11112−11…RAIDグループ管理テーブル、11112−12…ボリューム管理テーブル、11112−13…仮想ボリューム割り当て領域管理テーブル、11112−14…容量プール構成管理テーブル、11112−15…キャッシュ領域管理テーブル、11112−20…キャッシュ領域、11113…ストレージモジュール間接続インタフェース、11114…HDD接続インタフェース、11115…ストレージネットワークインタフェース、11116…管理端末接続インタフェース、11160…ストレージユニット、11161…ハードディスクドライブ、11200…ストレージモジュール、11210…コントローラ、11211…プロセッサ、11212…メモリ、11213…ストレージモジュール間接続インタフェース、11214…HDD接続インタフェース、11215…ストレージネットワークインタフェース、11216…管理端末接続インタフェース、11260…ストレージユニット、11261…ハードディスクドライブ、11010…ストレージ管理端末、11013…管理端末接続インタフェース、11014…ユーザインタフェース、12000…ストレージネットワーク。

Claims (10)

  1. 複数のデータ記憶媒体の少なくとも一部の記憶領域を含む容量プールを管理するストレージモジュールにおいて、
    前記容量プールの前記記憶領域の少なくとも一部を複数の仮想ボリュームに割り当てる記憶領域割当部と、
    前記容量プールと、前記容量プールの前記記憶領域が割り当てられた仮想ボリュームとを対応付けて管理するボリューム管理テーブルと、
    前記容量プールの前記記憶領域の空き記憶領域を管理する容量プール管理テーブルと、
    前記容量プールの前記空き記憶領域の容量が所定の閾値以下であるか否かにより、前記容量プールの空き記憶領域の容量が枯渇することが予測されるか否かを判定する調整判定部と、
    前記調整判定部により前記容量プールの空き記憶領域の容量が枯渇することが予測されると判定された場合に、前記複数の仮想ボリュームのうちの第1の仮想ボリュームを選択し、前記ストレージモジュールと異なる何れかの他のストレージモジュールを選択し、前記他のストレージモジュールに対し第2の仮想ボリュームの作成を要求する仮想ボリューム作成部と、
    前記他のストレージモジュールから第2の仮想ボリュームの作成終了通知を受信すると、前記第1の仮想ボリュームに割り当てられた記憶領域のデータを単位として前記他のストレージモジュールの管理下にあり、前記第2の仮想ボリュームに割り当てられたデータ記憶媒体の記憶領域に移動させる仮想ボリューム移動部と、
    前記仮想ボリューム移動部により、前記第1の仮想ボリュームのデータが前記他のストレージモジュールの管理下にある記憶領域に移動されると、前記ボリューム管理テーブルにおける前記第1の仮想ボリュームと前記容量プールとの対応付けを解消し、前記容量プールの前記空き記憶領域の容量を増加させる空き容量増加部と、を有するストレージモジュール。
  2. 前記仮想ボリューム作成部は、前記複数の仮想モジュールに割り当てられた記憶領域の容量に基づいて、前記第1の仮想モジュールを選択する請求項に記載のストレージモジュール。
  3. 前記仮想ボリューム作成部は、前記複数の仮想モジュールに対するアクセス頻度に基づいて、前記第1の仮想モジュールを選択する請求項に記載のストレージモジュール。
  4. 前記仮想ボリューム作成部は、前記複数の仮想モジュールに対して要求される入出力性能に基づいて、前記第1の仮想モジュールを選択する請求項に記載のストレージモジュール。
  5. 前記仮想ボリューム作成部は、前記ストレージモジュールと異なる他のストレージモジュールのうち、空き記憶領域の大きい他のストレージモジュールを選択する請求項1乃至請求項4のいずれか一項に記載のストレージモジュール。
  6. 前記調整判定部は、前記容量プールの前記記憶領域の一部を何れかの仮想ボリュームに割り当てる際に、判定を行う請求項1に記載のストレージモジュール。
  7. 通信可能な他のストレージモジュールから容量プールの空き記憶領域の容量の値を収集する収集部と、
    前記ストレージモジュールの空き記憶領域の容量の値と、前記他のストレージモジュールから収集した空き記憶領域の容量の値とを集計する集計部と、
    集計結果を外部装置に送信する送信部とを更に有する請求項1に記載のストレージモジュール。
  8. 複数のデータ記憶媒体の少なくとも一部の記憶領域を含む容量プールを管理するストレージモジュールによる容量プール空き容量調整方法であって、
    前記容量プールの前記記憶領域の少なくとも一部を複数の仮想ボリュームに割り当て、
    前記容量プールと、前記容量プールの前記記憶領域が割り当てられた仮想ボリュームとを対応付けて管理し、
    前記容量プールの前記記憶領域の空き記憶領域を管理し、
    前記容量プールの前記空き記憶領域の容量が所定の閾値以下であるか否かにより、前記容量プールの空き記憶領域の容量が枯渇することが予測されるか否かを判定し、
    前記容量プールの空き記憶領域の容量が枯渇することが予測されると判定された場合に、前記複数の仮想ボリュームのうちの第1の仮想ボリュームを選択し、
    前記ストレージモジュールと異なる何れかの他のストレージモジュールを選択し、
    前記他のストレージモジュールに対し第2の仮想ボリュームの作成を要求し、
    前記他のストレージモジュールから第2の仮想ボリュームの作成終了通知を受信すると、前記第1の仮想ボリュームに割り当てられた記憶領域のデータを単位として前記他のストレージモジュールの管理下にあり、前記第2の仮想ボリュームに割り当てられたデータ記憶媒体の記憶領域に移動させ、
    前記第1の仮想ボリュームのデータが前記他のストレージモジュールの管理下にある記憶領域に移動されると、前記第1の仮想ボリュームと前記容量プールとの対応付けを解消し、前記容量プールの前記空き記憶領域の容量を増加する容量プール空き容量調整方法。
  9. 複数のデータ記憶媒体の少なくとも一部の記憶領域を含む容量プールを管理する第1ストレージモジュールと、複数のデータ記憶媒体を管理する第2ストレージモジュールと、を備えるストレージシステムであって、
    前記第1ストレージモジュールは、
    前記容量プールの前記記憶領域の少なくとも一部を複数の仮想ボリュームに割り当てる記憶領域割当部と、
    前記容量プールと、前記容量プールの前記記憶領域が割り当てられた仮想ボリュームとを対応付けて管理するボリューム管理テーブルと、
    前記容量プールの前記記憶領域の空き記憶領域を管理する容量プール管理テーブルと、
    前記容量プールの前記空き記憶領域の容量が所定の閾値以下であるか否かにより、前記容量プールの空き記憶領域の容量が枯渇することが予測されるか否かを判定する判定部と、
    前記判定部により、前記容量プールの空き記憶領域の容量が枯渇することが予測されると判定された場合に、前記複数の仮想ボリュームのうちの第1の仮想ボリュームを選択し、前記第2ストレージモジュールに対し第2の仮想ボリュームの作成を要求する仮想ボリューム作成部と、
    前記第2ストレージモジュールから第2の仮想ボリュームの作成終了通知を受信すると、前記第1の仮想ボリュームに割り当てられた記憶領域のデータを単位として前記第2ストレージモジュールの管理下の前記第2の仮想ボリュームに割り当てられた前記データ記憶媒体の記憶領域に移動させる仮想ボリューム移動部と、
    前記仮想ボリューム移動部により、前記第一の仮想ボリュームのデータが前記他のストレージモジュールの管理下にある記憶領域に移動されると、前記ボリューム管理テーブルにおける前記第一の仮想ボリュームと前記容量プールとの対応付けを解消し、前記容量プールの空き記憶領域の容量を増加させる空き容量増加部と
    を有するストレージシステム。
  10. 複数のデータ記憶媒体の少なくとも一部の記憶領域を含む容量プールを管理する第1ストレージモジュール及び第2ストレージモジュールを備えるストレージシステムであって、
    前記第1ストレージモジュールは、
    前記第2ストレージモジュールに接続される第1インタフェースと、前記第1インタフェースに接続される第1プロセッサと、前記第1プロセッサに接続される第1メモリと、データを格納する第1データ記憶媒体と、を備え、
    前記第2ストレージモジュールは、
    前記第1ストレージモジュールに接続される第2インタフェースと、前記第2インタフェースに接続される第2プロセッサと、前記第2プロセッサに接続される第2メモリと、データを格納する第2データ記憶媒体と、を備え、
    前記第1メモリは、前記第1ストレージモジュールにおける前記容量プールにまとめられている前記第1データ記憶媒体の前記記憶領域の空き記憶領域を管理する容量プール管理テーブルを記憶し
    前記第1プロセッサは、前記第1ストレージモジュールにおける容量プールの空き記憶領域の容量が枯渇するか又は所定の閾値未満であるかを判定し、空き記憶領域の容量が枯渇する場合又は所定の閾値未満であると判定した場合に、記第1ストレージモジュールの前記容量プールの記憶領域が割り当てられている複数の仮想ボリュームのうちの第1の仮想ボリュームを選択し、前記第2ストレージモジュールに前記第1インタフェースを介して第2の仮想ボリュームの作成を要求し、前記第2ストレージモジュールから第2の仮想ボリュームの作成終了通知を受信すると、前記第1インタフェースを介して前記第1の仮想ボリュームのデータを前記第2ストレージモジュールに送信させ、前記第1の仮想ボリュームのデータが前記第2ストレージモジュールの前記第2メモリに移動された後に、前記第1の仮想ボリュームに割り当てられていた前記第1データ記憶媒体の記憶領域を空き記憶領域として前記容量プール管理テーブルに登録し、
    前記第2プロセッサは、前記第2インタフェースを介して、前記第1ストレージモジュールから第2の仮想ボリュームの作成要求を受信すると第2の仮想ボリュームを作成し、前記第2インタフェースを介して作成終了を前記第1ストレージモジュールに通知し、前記第1ストレージモジュールから前記第2インタフェースを介してデータを受信すると、当該データを前記第2ストレージモジュールにおける容量プールにまとめられている前記第2データ記憶媒体の記憶領域のうち前記第2の仮想モジュールに割り当てられた記憶領域に格納するストレージシステム。
JP2007018142A 2007-01-29 2007-01-29 ストレージモジュール及び容量プール空き容量調整方法 Expired - Fee Related JP5069011B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007018142A JP5069011B2 (ja) 2007-01-29 2007-01-29 ストレージモジュール及び容量プール空き容量調整方法
CN200710153523XA CN101236480B (zh) 2007-01-29 2007-09-20 存储装置、容量池空闲容量调整方法以及存储系统
EP08250048A EP1953636A3 (en) 2007-01-29 2008-01-07 Storage module and capacity pool free capacity adjustment method
US11/972,024 US20080184000A1 (en) 2007-01-29 2008-01-10 Storage module and capacity pool free capacity adjustment method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007018142A JP5069011B2 (ja) 2007-01-29 2007-01-29 ストレージモジュール及び容量プール空き容量調整方法

Publications (3)

Publication Number Publication Date
JP2008186172A JP2008186172A (ja) 2008-08-14
JP2008186172A5 JP2008186172A5 (ja) 2009-08-06
JP5069011B2 true JP5069011B2 (ja) 2012-11-07

Family

ID=39295973

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007018142A Expired - Fee Related JP5069011B2 (ja) 2007-01-29 2007-01-29 ストレージモジュール及び容量プール空き容量調整方法

Country Status (4)

Country Link
US (1) US20080184000A1 (ja)
EP (1) EP1953636A3 (ja)
JP (1) JP5069011B2 (ja)
CN (1) CN101236480B (ja)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009043055A (ja) 2007-08-09 2009-02-26 Hitachi Ltd 計算機システム、ストレージ装置及びデータ管理方法
JP4316648B2 (ja) 2008-01-30 2009-08-19 株式会社東芝 映像再生装置および制御方法
US8838928B2 (en) * 2008-02-08 2014-09-16 Freescale Semiconductor, Inc. Memory management and method for allocation using free-list
US8443011B2 (en) * 2008-04-30 2013-05-14 Netapp, Inc. Graphical storage system visualization, timeline based event visualization, and storage system configuration visualization
JP2010072753A (ja) * 2008-09-16 2010-04-02 Hitachi Ltd 自動拡張ボリューム及び省電力機能を備えたストレージシステム
JP5234342B2 (ja) * 2008-09-22 2013-07-10 株式会社日立製作所 計算機システム及びその制御方法
JP2010086424A (ja) * 2008-10-01 2010-04-15 Hitachi Ltd ストレージ装置の管理装置
JP5056747B2 (ja) 2008-12-25 2012-10-24 富士通株式会社 記憶領域管理装置、記憶領域管理方法
US8572346B2 (en) * 2009-02-20 2013-10-29 Hitachi, Ltd. Storage system and method for efficiently utilizing storage capacity within a storage system
JP5214502B2 (ja) * 2009-03-12 2013-06-19 株式会社日立製作所 ストレージ装置を管理する計算機及び方法
JP5235154B2 (ja) * 2009-03-31 2013-07-10 富士通株式会社 管理装置および管理プログラム
US8583893B2 (en) * 2009-05-28 2013-11-12 Marvell World Trade Ltd. Metadata management for virtual volumes
US8402214B2 (en) 2009-09-16 2013-03-19 Hitachi, Ltd. Dynamic page reallocation storage system management
US8566550B2 (en) * 2009-09-22 2013-10-22 Hitachi, Ltd. Application and tier configuration management in dynamic page reallocation storage system
WO2011045838A1 (en) * 2009-10-15 2011-04-21 Hitachi,Ltd. Storage system, storage apparatus, and optimization method of storage areas of storage system
US8793290B1 (en) * 2010-02-24 2014-07-29 Toshiba Corporation Metadata management for pools of storage disks
JP5451875B2 (ja) * 2010-04-30 2014-03-26 株式会社日立製作所 計算機システム及びその記憶制御方法
JP5080611B2 (ja) * 2010-05-14 2012-11-21 株式会社日立製作所 ThinProvisioningが適用されたストレージ装置
WO2012007999A1 (en) 2010-07-16 2012-01-19 Hitachi, Ltd. Storage control apparatus and storage system comprising multiple storage control apparatuses
US8356147B2 (en) 2010-08-20 2013-01-15 Hitachi, Ltd. Tiered storage pool management and control for loosely coupled multiple storage environment
CN102143206A (zh) * 2010-12-17 2011-08-03 浪潮(北京)电子信息产业有限公司 集群存储系统中存储池的调整方法、装置及系统
WO2012093417A1 (en) 2011-01-05 2012-07-12 Hitachi, Ltd. Storage system comprising multiple storage control apparatus units for processing an i/o command from a host
US10360150B2 (en) * 2011-02-14 2019-07-23 Suse Llc Techniques for managing memory in a multiprocessor architecture
US8639900B2 (en) * 2011-05-25 2014-01-28 International Business Machines Corporation Defragmentation of data storage pools
US8489845B2 (en) 2011-06-14 2013-07-16 Hitachi, Ltd. Storage system comprising multiple storage control apparatus
CN102291450B (zh) * 2011-08-08 2014-01-15 浪潮电子信息产业股份有限公司 一种集群存储系统内部的数据在线分级存储方法
US8930568B1 (en) * 2011-12-20 2015-01-06 Emc Corporation Method and apparatus for enabling access to storage
US9304912B1 (en) * 2012-01-06 2016-04-05 Marvell International Ltd. Systems and methods for building redundancy data in a RAID system
US20130238852A1 (en) * 2012-03-07 2013-09-12 Hitachi, Ltd. Management interface for multiple storage subsystems virtualization
US11379354B1 (en) * 2012-05-07 2022-07-05 Amazon Technologies, Inc. Data volume placement techniques
JP6056856B2 (ja) 2012-06-25 2017-01-11 富士通株式会社 ストレージ制御装置、情報処理装置、ストレージ制御プログラム、及びストレージ制御方法
JP6114397B2 (ja) 2013-03-18 2017-04-12 株式会社日立製作所 複合型ストレージシステム及び記憶制御方法
WO2014162586A1 (ja) 2013-04-05 2014-10-09 株式会社日立製作所 ストレージシステムおよびストレージシステム制御方法
CN103970641A (zh) * 2014-05-15 2014-08-06 浪潮电子信息产业股份有限公司 一种基于容量预测技术的设备扩容方法
JP6361390B2 (ja) * 2014-09-10 2018-07-25 富士通株式会社 ストレージ制御装置および制御プログラム
WO2017149581A1 (ja) 2016-02-29 2017-09-08 株式会社日立製作所 仮想ストレージシステム
US10241865B2 (en) * 2017-02-15 2019-03-26 International Business Machines Corporation Handling storage unit failure in a dispersed storage network
US10402361B2 (en) * 2017-04-28 2019-09-03 Hitachi, Ltd. Storage system
CN111813322B (zh) * 2019-04-11 2023-06-13 杭州海康威视系统技术有限公司 存储池的创建方法、装置、设备及存储介质
JP7140807B2 (ja) * 2020-09-23 2022-09-21 株式会社日立製作所 仮想ストレージシステム
US11892983B2 (en) 2021-04-29 2024-02-06 EMC IP Holding Company LLC Methods and systems for seamless tiering in a distributed storage system
US11922071B2 (en) 2021-10-27 2024-03-05 EMC IP Holding Company LLC Methods and systems for storing data in a distributed system using offload components and a GPU module
US11677633B2 (en) 2021-10-27 2023-06-13 EMC IP Holding Company LLC Methods and systems for distributing topology information to client nodes
US11762682B2 (en) 2021-10-27 2023-09-19 EMC IP Holding Company LLC Methods and systems for storing data in a distributed system using offload components with advanced data services
US20230127387A1 (en) * 2021-10-27 2023-04-27 EMC IP Holding Company LLC Methods and systems for seamlessly provisioning client application nodes in a distributed system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08221372A (ja) * 1995-02-10 1996-08-30 Fuji Facom Corp 分散処理システムにおける空き資源管理装置
JP2002222061A (ja) * 2001-01-25 2002-08-09 Hitachi Ltd 記憶領域を設定する方法、記憶装置およびプログラム記憶媒体
JP4175788B2 (ja) * 2001-07-05 2008-11-05 株式会社日立製作所 ボリューム制御装置
US7028158B1 (en) * 2001-11-02 2006-04-11 Beatty And Company Computing, Inc. Storage virtualization engine
JP2003316522A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
JP4139675B2 (ja) * 2002-11-14 2008-08-27 株式会社日立製作所 仮想ボリュームの記憶領域割当方法、その装置及びプログラム
JP2004178253A (ja) * 2002-11-27 2004-06-24 Hitachi Ltd 記憶デバイス制御装置および記憶デバイス制御装置の制御方法
JP4438457B2 (ja) 2003-05-28 2010-03-24 株式会社日立製作所 記憶領域割当方法、システム及び仮想化装置
US7305520B2 (en) * 2004-01-30 2007-12-04 Hewlett-Packard Development Company, L.P. Storage system with capability to allocate virtual storage segments among a plurality of controllers
JP2005276017A (ja) * 2004-03-26 2005-10-06 Hitachi Ltd ストレージシステム
JP4387261B2 (ja) * 2004-07-15 2009-12-16 株式会社日立製作所 計算機システム、および、記憶装置システムの移行方法
US7694097B2 (en) * 2004-11-15 2010-04-06 International Business Machines Corporation System and method for managing an electronic storage volume
US7130960B1 (en) * 2005-04-21 2006-10-31 Hitachi, Ltd. System and method for managing disk space in a thin-provisioned storage subsystem
JP4699808B2 (ja) * 2005-06-02 2011-06-15 株式会社日立製作所 ストレージシステム及び構成変更方法

Also Published As

Publication number Publication date
EP1953636A3 (en) 2011-11-09
CN101236480B (zh) 2012-05-16
CN101236480A (zh) 2008-08-06
US20080184000A1 (en) 2008-07-31
EP1953636A2 (en) 2008-08-06
JP2008186172A (ja) 2008-08-14

Similar Documents

Publication Publication Date Title
JP5069011B2 (ja) ストレージモジュール及び容量プール空き容量調整方法
JP4993928B2 (ja) 記憶システム及び記憶領域解放方法並びにストレージシステム
JP5341184B2 (ja) ストレージシステム及びストレージシステムの運用方法
JP5595530B2 (ja) データ移行システム及びデータ移行方法
US7441096B2 (en) Hierarchical storage management system
JP4920976B2 (ja) データ移動方法及びストレージシステム
JP4438457B2 (ja) 記憶領域割当方法、システム及び仮想化装置
US8161262B2 (en) Storage area dynamic assignment method
US7152149B2 (en) Disk array apparatus and control method for disk array apparatus
US7467275B2 (en) Capacity expansion volume migration method
JP4896500B2 (ja) 機器停止を伴う仮想ボリューム制御方法
US8650381B2 (en) Storage system using real data storage area dynamic allocation method
US20050091455A1 (en) Automated on-line capacity expansion method for storage device
JP2009043030A (ja) ストレージシステム
JP2009230742A (ja) 高可用性、低容量のシン・プロビジョニング
JP2013531283A (ja) ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステム
JP2010073095A (ja) 計算機システム及びその制御方法
JP2007102760A (ja) ストレージエリアネットワークにおけるボリュームの自動割り当て
JPWO2011117925A1 (ja) ストレージ装置及びその制御方法
JP5183363B2 (ja) 論理ボリュームのデータ移動方法とストレージシステムおよび管理計算機
US8572347B2 (en) Storage apparatus and method of controlling storage apparatus
JP2005321913A (ja) ファイル共有装置を有する計算機システム、および、ファイル共有装置の移行方法
JP5272185B2 (ja) 計算機システム及びストレージシステム
JP5597266B2 (ja) ストレージシステム
US11474750B2 (en) Storage control apparatus and storage medium

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090622

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120217

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

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

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

Free format text: PAYMENT UNTIL: 20150824

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees