JP2015114808A - ストレージ制御装置、制御方法、及びプログラム - Google Patents

ストレージ制御装置、制御方法、及びプログラム Download PDF

Info

Publication number
JP2015114808A
JP2015114808A JP2013255859A JP2013255859A JP2015114808A JP 2015114808 A JP2015114808 A JP 2015114808A JP 2013255859 A JP2013255859 A JP 2013255859A JP 2013255859 A JP2013255859 A JP 2013255859A JP 2015114808 A JP2015114808 A JP 2015114808A
Authority
JP
Japan
Prior art keywords
storage
unit
area
storage area
lba
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013255859A
Other languages
English (en)
Inventor
淳 高倉
Atsushi Takakura
淳 高倉
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013255859A priority Critical patent/JP2015114808A/ja
Priority to US14/532,164 priority patent/US20150160871A1/en
Publication of JP2015114808A publication Critical patent/JP2015114808A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

【課題】アクセス性能の低下を抑制すること。【解決手段】1つ又は複数の記録媒体に割り当てられた複数の第1記憶領域Rd1、Rd2、Rd3にそれぞれ対応付けられ、対応する第1記憶領域Rd1、Rd2、Rd3に対してアクセス制御を行う複数の制御部21、22と、制御部21、22毎に設けられ、対応する1つ又は複数の第1記憶領域Rd1、Rd2、Rd3内で確保された単位記憶領域Ch1、Ch2、…が割り当てられる第2記憶領域23Aが配置される複数の記憶部23と、を有するストレージ制御装置20が提供される。制御部21、22は、第2記憶領域23Aに単位記憶領域ChNを割り当てる際、同じ制御部に対応する複数の単位記憶領域が第2記憶領域23A内で連続して配置されるように、第2記憶領域23Aにおける単位記憶領域Ch1、Ch2、…、ChNの配置を変更する。【選択図】図1

Description

本発明は、ストレージ制御装置、制御方法、及びプログラムに関する。
業務サーバなどのコンピュータ(以下、サーバ)が扱う大量のデータは、複数のHDD(Hard Disk Drive)を有する信頼性の高いRAID(Redundant Arrays of Inexpensive Disks)装置などのストレージ装置を用いて管理される。最近では、SAN(Storage Area Network)と呼ばれるネットワークでサーバと複数のストレージ装置とを接続したストレージシステムなども広く利用されている。
ストレージ装置の記憶領域(以下、物理領域)は、論理的な記憶領域の単位(以下、LU:Logical Unit)に分割され、LU単位でサーバに認識される。例えば、各LUにはLUN(Logical Unit Number)と呼ばれる識別情報が付されており、サーバは、LUNを参照して各LUを認識することができる。なお、RAIDグループ毎に設定したLUをRLU(RAID LU)と呼ぶ場合がある。
近年、ストレージの仮想化に注目が集まっている。ストレージの仮想化は、ストレージ装置とサーバとの間に仮想化エンジンを設け、サーバに対して仮想化エンジンを1台の仮想的なストレージ装置に見せる技術である。仮想化エンジンは、物理領域を分割したLU(以下、物理LU)とは異なる仮想的なLU(以下、仮想LU)を用意し、1つ又は複数の物理LUから選定した記憶領域を仮想LUに割り当てる。
仮想LUの導入により、サーバが認識する記憶領域と物理領域との関係が高度に抽象化され、利用効率や運用形態の柔軟性などを向上させる効果が期待できる。ストレージの仮想化を適用した場合、サーバは、データを読み書きする場合、仮想LUにアクセスする。つまり、サーバは、仮想化エンジンを介して物理LUへのアクセスを実現する。このような仕組みを有するストレージシステムに関し、信頼性向上のためにサーバから物理LUへのアクセスパスを冗長化したマルチパス環境を構築する方法が提案されている。
マルチパス環境では一部のアクセスパスに障害が発生しても正常なアクセスパスを利用して運用を継続することができるため、ストレージシステムの信頼性向上に寄与する。マルチパス環境におけるアクセスパスの選定は、例えば、RTPG(REPORT TARGET PORT GROUPS)コマンドを利用して実現することができる。なお、RTPGコマンドは、SCSI(Small Computer System Interface)コマンドの1つである。サーバがRTPGコマンドを発行すると、RTPGコマンドを受けたストレージ装置は、推奨するアクセスパス(以下、推奨パス)をサーバに通知する。そして、サーバは、通知を受けた推奨パスを利用してデータを読み書きする。
ところで、仮想化したストレージシステムにおける物理領域の利用率を高める技術の1つにシンプロビジョニングと呼ばれる技術がある。通常、仮想LUには、サーバから要求されたサイズの物理領域が割り当てられる。一方、シンプロビジョニングを適用したストレージシステムでは、要求サイズの仮想LU(以下、TPV(Thin Provisioning Volume))が設定されるものの、要求サイズを上限として利用量に応じたサイズの物理領域が割り当てられる。そのため、現実の運用に即したストレージ容量で運用することが可能になり、利用率の向上や運用開始時のコスト低減などの効果が期待できる。
なお、仮想化したストレージシステムに関し、フラグメンテーションの回避及び物理領域の使用効率向上を目的として仮想LUへの物理領域の割り当てを好適に制御する方法が提案されている。また、TPVへの物理領域の割り当てに関し、未割り当ての物理領域を管理情報から特定し、特定された未割り当ての物理領域を複数のサブ領域に分割し、TPV内で規則的に並んだ連続領域にサブ領域を割り当てる方法が提案されている。
特開2007−157089号公報 特開2004−164370号公報 特開2008− 59353号公報
上記のように、マルチパス環境におけるアクセスパスの選定は、ストレージ装置からサーバへと推奨パスを通知することにより実現される。1つの物理LUに対して推奨パスが1つに定まる場合、上述したようにRTPGコマンドを利用した推奨パスの通知が可能である。推奨パスが1つに定まらない場合(例えば、TPVを利用する場合)には、RR(REPORT REFERRALS)コマンドを利用することで仮想LUのLBA(Logical Block Addressing)範囲毎に推奨パスの通知を受けることが可能である。なお、RRコマンドは、SCSIコマンドの1つである。
LBA範囲毎に推奨パスを管理すると、1つの物理LUに関する管理対象の推奨パス数が2以上となる可能性があり、物理LU毎に推奨パスを管理する場合に比べて管理情報のデータサイズが大きくなる。管理情報のデータサイズは、1つの推奨パスに対応する分断されたLBA範囲の数に応じて大きくなる。管理情報のデータサイズ又は管理対象となるLBA範囲の数が制限されている場合、管理対象から洩れたLBA範囲へのアクセスについて推奨パスとは異なるアクセスパスが利用される可能性がある。推奨パスとは異なるアクセスパスが利用されるとアクセス性能の低下が生じうる。
そこで、1つの側面によれば、本発明の目的は、アクセス性能の低下を抑制することが可能なストレージ制御装置、制御方法、及びプログラムを提供することにある。
本開示の1つの側面によれば、1つ又は複数の記録媒体に割り当てられた複数の第1記憶領域にそれぞれ対応付けられ、対応する第1記憶領域に対してアクセス制御を行う複数の制御部と、制御部毎に設けられ、対応する1つ又は複数の第1記憶領域内で確保された単位記憶領域が割り当てられる第2記憶領域が配置される複数の記憶部と、を有し、制御部は、第2記憶領域に単位記憶領域を割り当てる際、同じ制御部に対応する複数の単位記憶領域が第2記憶領域内で連続して配置されるように、第2記憶領域における単位記憶領域の配置を変更するストレージ制御装置が提供される。
また、本開示の他の1つの側面によれば、1つ又は複数の記録媒体に割り当てられた複数の第1記憶領域にそれぞれ対応付けられ、対応する第1記憶領域に対してアクセス制御を行う複数の制御部と、制御部毎に設けられ、対応する1つ又は複数の第1記憶領域内で確保された単位記憶領域が割り当てられる第2記憶領域が配置される複数の記憶部と、を有するコンピュータの制御部が、第2記憶領域に単位記憶領域を割り当てる際、同じ制御部に対応する複数の単位記憶領域が第2記憶領域内で連続して配置されるように、第2記憶領域における単位記憶領域の配置を変更する制御方法が提供される。
また、本開示の他の1つの側面によれば、1つ又は複数の記録媒体に割り当てられた複数の第1記憶領域にそれぞれ対応付けられ、対応する第1記憶領域に対してアクセス制御を行う複数の制御部と、制御部毎に設けられ、対応する1つ又は複数の第1記憶領域内で確保された単位記憶領域が割り当てられる第2記憶領域が配置される複数の記憶部と、を有するコンピュータに、制御部が第2記憶領域に単位記憶領域を割り当てる際、同じ制御部に対応する複数の単位記憶領域が第2記憶領域内で連続して配置されるように、第2記憶領域における単位記憶領域の配置を変更する処理を実行させるプログラムが提供される。
以上説明したように本発明によれば、アクセス性能の低下を抑制することが可能になる。
第1実施形態に係るストレージシステムについて説明するための図である。 第2実施形態に係るストレージシステムについて説明するための第1の図である。 第2実施形態に係るストレージシステムについて説明するための第2の図である。 第2実施形態に係るサーバが有する機能を実現することが可能なハードウェアの一例を示した図である。 第2実施形態に係るストレージ制御装置が有する機能について説明するための図である。 第2実施形態に係るストレージ制御装置が保持する平準化用情報の一例を示した図である。 第2実施形態に係るストレージ制御装置によるRLU領域の割り当て処理について説明するための図である。 第2実施形態に係るストレージ制御装置が保持する推奨パス情報の一例を示した図である。 第2実施形態に係るストレージ制御装置が保持するセグメント情報の一例を示した図である。 第2実施形態に係るストレージ制御装置が保持する閾値情報の一例を示した図である。 第2実施形態に係るストレージ制御装置によるRLU領域の割り当て処理とセグメント数について説明するための第1の図である。 第2実施形態に係るストレージ制御装置によるRLU領域の割り当て処理とセグメント数について説明するための第2の図である。 第2実施形態に係るストレージ制御装置によるRLU領域の割り当て処理とセグメント数について説明するための第3の図である。 第2実施形態に係るストレージ制御装置が実行する処理の流れについて説明するための第1の図である。 第2実施形態に係るストレージ制御装置が実行する処理の流れについて説明するための第2の図である。
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
<1.第1実施形態>
図1を参照しながら、第1実施形態について説明する。なお、図1は、第1実施形態に係るストレージシステムについて説明するための図である。
図1に示すように、第1実施形態に係るストレージシステムは、サーバ10、ストレージ制御装置20、及びストレージ装置30を含む。
サーバ10は、ストレージ制御装置20を介して、ストレージ装置30が有する1つ又は複数の記録媒体にアクセスする。記録媒体としては、例えば、HDDや磁気テープなどの磁気記録媒体、光ディスクなどの光記録媒体、SSD(Solid State Drive)などの半導体メモリが利用可能である。RAID装置は、ストレージ装置30の一例である。
ストレージ制御装置20は、制御部21、22と、記憶部23とを有する。なお、図1の例では、ストレージ制御装置20が有する制御部の数は2つ(制御部21、22)であるが、3つ以上の制御部がストレージ制御装置20に設けられていてもよい。また、図1の例では、制御部21をCM#1と表記し、制御部22をCM#2と表記している。
記憶部23は、RAM(Random Access Memory)などの揮発性記憶装置、或いは、HDDやフラッシュメモリなどの不揮発性記憶装置である。制御部21、22は、例えば、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサである。但し、制御部21、22は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路であってもよい。制御部21、22は、例えば、記憶部23又は他のメモリに記憶されたプログラムを実行する。
制御部21、22は、ストレージ制御装置30が有する1つ又は複数の記録媒体に割り当てられた複数の第1記憶領域Rd1、Rd2、Rd3にそれぞれ対応付けられている。なお、上述した物理LUやRLUは、第1記憶領域の一例である。また、複数の第1記憶領域Rd1、Rd2、Rd3は、制御部21、22が管理するストレージプール23Bに登録されている。図1の例では、ストレージプール23Bに登録されている第1記憶領域の数が3つ(第1記憶領域Rd1、Rd2、Rd3)であるが、ストレージプール23Bに登録可能な第1記憶領域の数は2以下又は4以上であってもよい。
制御部21、22は、それぞれ自身に対応する第1記憶領域Rd1、Rd2、Rd3に対してアクセス制御を行う。図1の例では、制御部21(CM#1)と第1記憶領域Rd1、Rd2とが対応付けられ、制御部22(CM#2)と第1記憶領域Rd3とが対応付けられている。従って、制御部21は、第1記憶領域Rd1、Rd2に対するアクセスを制御する。また、制御部22は、第1記憶領域Rd3に対するアクセスを制御する。
記憶部23には、ストレージプール23Bの情報、及びストレージプール23Bに登録された第1記憶領域Rd1、Rd2、Rd3の情報が格納される。また、記憶部23には、第2記憶領域23Aの情報が格納される。第2記憶領域23Aは、論理的な記憶領域(論理ボリューム)である。上述したTPVは、第2記憶領域の一例である。なお、図1の例では1つの第2記憶領域23Aしか記載されていないが、2以上の第2記憶領域23Aを設けることも可能である。
第2記憶領域23Aには、設定したサイズの単位記憶領域Ch1、Ch2、…が割り当てられる。また、単位記憶領域Ch1、Ch2、…のそれぞれには、第1記憶領域Rd1、Rd2、Rd3が有する物理領域の一部又は全部が割り当てられる。図1の例では、第1記憶領域Rd1、Rd2が有する物理領域の一部又は全部が単位記憶領域Ch1に割り当てられている。また、第1記憶領域Rd3が有する物理領域の一部又は全部が単位記憶領域Ch2に割り当てられている。なお、上述したTPVに割り当てられる単位ブロック(チャンク)は、単位記憶領域の一例である。
上記のように、第2記憶領域23Aには、制御部21、22毎に、対応する1つ又は複数の第1記憶領域Rd1、Rd2、Rd3内で確保された単位記憶領域Ch1、Ch2、…が割り当てられる。
図1の例では、制御部21がアクセス可能な第1記憶領域Rd1、Rd2内で確保された単位記憶領域Ch1、及び制御部22がアクセス可能な第1記憶領域Rd3内で確保された単位記憶領域Ch2が第2記憶領域23A内で混在している。つまり、ストレージ制御装置20は、制御部21を経由するアクセスパスを与える単位記憶領域Ch1と、制御部22を経由するアクセスパスを与える単位記憶領域Ch2とが1つの第2記憶領域23Aに混在する状態を許容する。
制御部21、22は、第2記憶領域23Aに単位記憶領域ChNを割り当てる際、同じ制御部に対応する複数の単位記憶領域が第2記憶領域23A内で連続して配置されるように単位記憶領域Ch1、Ch2、…、ChNの配置を変更する。
例えば、第2記憶領域23AのLBA範囲(LBA#B−LBA#C)が未割り当て領域であり、第1記憶領域Rd3内で確保された単位記憶領域ChNを当該未割り当て領域に割り当てた場合について考える。図1(A)は単位記憶領域ChNを割り当て直後の状態であり、図1(B)は単位記憶領域Ch1、Ch2、…、ChNの配置を変更した後の状態である。なお、図1(A)及び(B)には、各LBA範囲と、各LBA範囲に割り当てた単位記憶領域に対応する第1記憶領域との関係を示した。
図1(A)の例では、LBA範囲(LBA#0−LBA#A)に第1記憶領域Rd1内の単位記憶領域が割り当てられ、LBA範囲(LBA#A−LBA#B)には第1記憶領域Rd2内の単位記憶領域が割り当てられている。また、LBA範囲(LBA#B−LBA#C)に第1記憶領域Rd3内の単位記憶領域が割り当てられ、LBA範囲(LBA#C−LBA#D)には第1記憶領域Rd1内の単位記憶領域が割り当てられている。また、LBA範囲(LBA#D−LBA#E)に第1記憶領域Rd1内の単位記憶領域が割り当てられ、LBA範囲(LBA#E−LBA#F)には第1記憶領域Rd3内の単位記憶領域が割り当てられている。
制御部21を経由する第1のアクセスパスと制御部22を経由する第2のアクセスパスとをLBA範囲毎に管理する場合、管理情報は次のようになる。図1(A)の場合、管理情報は、LBA範囲(LBA#0−LBA#B)を第1のアクセスパスに対応付け、LBA範囲(LBA#B−LBA#C)を第2のアクセスパスに対応付ける情報を含む。さらに、この管理情報は、LBA範囲(LBA#C−LBA#E)を第1のアクセスパスに対応付け、LBA範囲(LBA#C−LBA#E)を第1のアクセスパスに対応付ける情報を含む。この場合、管理対象となるLBA範囲の数(セグメント数)は4つとなる。
図1(B)の場合、管理情報は、LBA範囲(LBA#0−LBA#D)を第1のアクセスパスに対応付け、LBA範囲(LBA#D−LBA#F)を第2のアクセスパスに対応付ける情報を含む。この場合、管理対象となるLBA範囲の数(セグメント数)は2つとなる。このように、セグメント数が少なくなると管理情報の情報量を小さくすることができる。
例えば、サーバ10が管理できるセグメント数が3の場合、図1(A)の状態ではアクセスパスの管理対象から漏れる単位記憶領域が生じるが、図1(B)の状態ではアクセスパスの管理対象から漏れる単位記憶領域が生じない。アクセスパスの管理対象から漏れた単位記憶領域へアクセスする場合、サーバ10は、任意のアクセスパスを選定する。例えば、サーバ10は、第1記憶領域Rd3に対応する単位記憶領域Ch2へのアクセス要求を制御部21に通知することも考えられる。この場合、制御部21は、制御部22を介して第1記憶領域Rd3へアクセス(クロスアクセス)することになる。
そこで、制御部21、22は、セグメント数が少なくなるように第2記憶領域23Aにおける単位記憶領域Ch1、Ch2、…、ChNの配置を変更する。この変更により、管理対象から漏れる単位記憶領域Ch1、Ch2、…、ChNの数を低減することが可能になり、クロスアクセスの発生頻度を低減することが可能になる。クロスアクセスの発生頻度が低減することでアクセス性能の低下が抑制される。
以上、第1実施形態について説明した。
<2.第2実施形態>
次に、第2実施形態について説明する。
[2−1.システム]
まず、図2及び図3を参照しながら、第2実施形態に係るストレージシステムについて説明する。なお、図2は、第2実施形態に係るストレージシステムについて説明するための第1の図である。また、図3は、第2実施形態に係るストレージシステムについて説明するための第2の図である。
図2に示すように、第2実施形態に係るストレージシステムは、サーバ100、ストレージ制御装置200、及びディスクアレイ301、302を含む。
サーバ100は、ストレージ制御装置200を介してディスクアレイ301、302にアクセスする。ディスクアレイ301は、複数の記録媒体D1、D2、D3、D4を有する。また、ディスクアレイ302は、複数の記録媒体D5、D6、D7、D8を有する。記録媒体としては、例えば、HDDや磁気テープなどの磁気記録媒体、光ディスクなどの光記録媒体、SSDなどの半導体メモリが利用可能である。RAID装置は、ディスクアレイ301、302の一例である。
ストレージ制御装置200は、コントローラ201、202を有する。なお、図2の例では、ストレージ制御装置200が有するコントローラの数は2つ(コントローラ201、202)であるが、3つ以上のコントローラがストレージ制御装置200に設けられていてもよい。また、以下では、コントローラ201をCM#1と表記し、コントローラ202をCM#2と表記する場合がある。
図3に示すように、サーバ100は、ストレージ制御装置200を介してディスクアレイ301、302の物理領域へとアクセスするためのアクセスパスを管理するマルチパスドライバ101を有する。サーバ100には複数のホストバスアダプタ(HBA:Host Bus Adapter)が設けられており、それぞれがストレージ制御装置200のコントローラ201、202に設けられたポート(Port)に接続される。マルチパスドライバ101は、HBAを介してコントローラ201、202にアクセスする。また、マルチパスドライバ101は、物理領域へとアクセスする際に用いる好適なアクセスパス(推奨パス)の情報を管理する。
コントローラ201、202は、サーバ100に提供される論理的な記憶領域を格納する論理ボリューム、及び、ディスクアレイ301、302の物理領域を割り当てるディスクプールを管理する。以下、簡単のために、コントローラ201、202により管理される論理ボリュームがTPVである場合について考える。また、ディスクアレイ301、302の物理領域をグループ分けしたRAIDグループR1、R2、R3がディスクプールに登録されている場合について考える。以下、RAIDグループRk(k=1,2,3)の物理領域をRLU領域Rkと表記する。
コントローラ201はRLU領域R1、R2に対してアクセス可能に設定され、コントローラ202はRLU領域R3にアクセス可能に設定されているものとする。つまり、コントローラ201はRLU領域R1、R2の担当コントローラであり、コントローラ202はRLU領域R3の担当コントローラである場合について考える。以下、担当コントローラを担当CMと表記する場合がある。
TPVには、チャンクと呼ばれる論理的な記憶領域の単位が割り当てられる。チャンクには、RLU領域の一部又は全部が割り当てられる。図3の例では、TPVにチャンクC1、C2、C3、…が割り当てられ、チャンクC1にRLU領域R1、チャンクC2にRLU領域R2、チャンクC3にRLU領域R3が割り当てられている。
チャンクは、コントローラ201、202がサーバ100からデータの書き込みを要求するコマンド(Writeコマンド)を受けた場合に生成される。例えば、既存のチャンクに割り当てられたRLU領域を超えてデータの書き込みが行われる場合、新たなチャンクが生成され、そのチャンクに割り当てられたRLU領域に対してデータの書き込みが行われる。
サーバ100は、TPVのデータにアクセスする場合、マルチパスドライバ101によりアクセスパスの選定処理を実行する。例えば、コントローラ202が担当するRLU領域R3を割り当てたチャンクC3へのアクセス要求をコントローラ201に送信すると、コントローラ201がコントローラ202を介してRLU領域R3へとアクセスするクロスアクセスが発生する。そのため、マルチパスドライバ101は、チャンクC3へのアクセス要求がコントローラ202へと送信されるようなアクセスパス(推奨パス)を選定し、クロスアクセスの発生を抑制する。
マルチパスドライバ101は、例えば、RRコマンドを利用してTPVのLBA範囲毎に推奨パスの情報を取得する。マルチパスドライバ101は、取得した推奨パスの情報を保持し、保持している推奨パスの情報をアクセスパスの選定に利用する。このようにLBA範囲毎に推奨パスの情報を管理することで、RLU領域の担当CMが異なる複数のチャンクが1つのTPV内に混在してもマルチパスドライバ101による推奨パスの選定が可能になる。
以上、第2実施形態に係るストレージシステムについて説明した。
[2−2.ハードウェア]
次に、図4を参照しながら、サーバ100のハードウェアについて説明する。図4は、第2実施形態に係るサーバが有する機能を実現することが可能なハードウェアの一例を示した図である。
サーバ100が有する機能は、例えば、図4に示す情報処理装置のハードウェア資源を用いて実現することが可能である。つまり、サーバ100が有する機能は、コンピュータプログラムを用いて図4に示すハードウェアを制御することにより実現される。
図4に示すように、このハードウェアは、主に、CPU902と、ROM(Read Only Memory)904と、RAM906と、ホストバス908と、ブリッジ910とを有する。さらに、このハードウェアは、外部バス912と、インターフェース914と、入力部916と、出力部918と、記憶部920と、ドライブ922と、接続ポート924と、通信部926とを有する。
CPU902は、例えば、演算処理装置又は制御装置として機能し、ROM904、RAM906、記憶部920、又はリムーバブル記録媒体928に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM904は、CPU902に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。RAM906には、例えば、CPU902に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
これらの要素は、例えば、高速なデータ伝送が可能なホストバス908を介して相互に接続される。一方、ホストバス908は、例えば、ブリッジ910を介して比較的データ伝送速度が低速な外部バス912に接続される。また、入力部916としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、ボタン、スイッチ、及びレバーなどが用いられる。さらに、入力部916としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラが用いられることもある。
出力部918としては、例えば、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、又はELD(Electro-Luminescence Display)などのディスプレイ装置が用いられる。また、出力部918として、スピーカやヘッドホンなどのオーディオ出力装置、又はプリンタなどが用いられることもある。つまり、出力部918は、情報を視覚的又は聴覚的に出力することが可能な装置である。
記憶部920は、各種のデータを格納するための装置である。記憶部920としては、例えば、HDDなどの磁気記憶デバイスが用いられる。また、記憶部920として、SSD(Solid State Drive)やRAMディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
ドライブ922は、着脱可能な記録媒体であるリムーバブル記録媒体928に記録された情報を読み出し、又はリムーバブル記録媒体928に情報を書き込む装置である。リムーバブル記録媒体928としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。
接続ポート924は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)、RS−232Cポート、又は光オーディオ端子など、外部接続機器930を接続するためのポートである。外部接続機器930としては、例えば、プリンタなどが用いられる。
通信部926は、ネットワーク932に接続するための通信デバイスである。通信部926としては、例えば、有線又は無線LAN(Local Area Network)用の通信回路、WUSB(Wireless USB)用の通信回路、光通信用の通信回路やルータ、ADSL(Asymmetric Digital Subscriber Line)用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられる。通信部926に接続されるネットワーク932は、有線又は無線により接続されたネットワークであり、例えば、インターネット、LAN、放送網、衛星通信回線などを含む。
以上、サーバ100のハードウェアについて説明した。なお、ストレージ制御装置200が有する機能も、図4に例示したハードウェアの一部又は全部を用いて実現することができる。そのため、ストレージ制御装置200のハードウェアについては説明を省略する。
[2−3.ストレージ制御装置の機能]
次に、図5を参照しながら、ストレージ制御装置200が有する機能について説明する。なお、図5は、第2実施形態に係るストレージ制御装置が有する機能について説明するための図である。
図5に示すように、ストレージ制御装置200は、記憶部211と、物理ボリューム管理部212と、論理ボリューム管理部213と、コマンド実行部214とを有する。
なお、記憶部211の機能は、上述したRAM906や記憶部920などを用いて実現できる。物理ボリューム管理部212、論理ボリューム管理部213、及びコマンド実行部214の機能は、上述したCPU902などを用いて実現できる。
(記憶部211)
記憶部211には、プール情報211A、TPV情報211B、平準化用情報211C、推奨パス情報211D、セグメント情報211E、及び閾値情報211Fが格納される。プール情報211Aは、管理対象のディスクプールに関する情報及びディスクプールに登録されたRLU領域に関する情報を含む。また、プール情報211Aは、RLU領域と担当CMとを対応付ける情報を含む。TPV情報211Bは、管理対象のTPVに関する情報及びTPVに割り当てられたチャンクに関する情報を含む。また、TPV情報211Bは、チャンクとRLU領域とを対応付ける情報を含む。
ここで、図6〜図10を参照しながら、平準化用情報211C、推奨パス情報211D、セグメント情報211E、及び閾値情報211Fのそれぞれについて説明する。
なお、図6は、第2実施形態に係るストレージ制御装置が保持する平準化用情報の一例を示した図である。また、図7は、第2実施形態に係るストレージ制御装置によるRLU領域の割り当て処理について説明するための図である。また、図8は、第2実施形態に係るストレージ制御装置が保持する推奨パス情報の一例を示した図である。また、図9は、第2実施形態に係るストレージ制御装置が保持するセグメント情報の一例を示した図である。また、図10は、第2実施形態に係るストレージ制御装置が保持する閾値情報の一例を示した図である。
(平準化用情報211C)
平準化用情報211Cは、チャンクに対してRLU領域を割り当てる際に利用される。平準化用情報211Cは、1つのディスクプールに登録された各RAIDグループについてチャンク割り当て数が均等になるように管理するための割り当て管理情報である。例えば、図6に示した平準割り当て用テーブルは、平準化用情報211Cの一例である。
図6に示すように、平準割り当て用テーブルは、ディスクプールを識別するための識別情報(Pool No.)と、RAIDグループと、チャンク割り当て数とを対応付ける。なお、チャンク割り当て数は、各RAIDグループのRLU領域が割り当てられたチャンクの数である。チャンクに対してRLU領域を割り当てる際には、ディスクプール毎に、チャンク割り当て数が同じになるようにサイクリックに割り当て対象のRAIDグループが選択され、選択されたRAIDグループのRLU領域がチャンクに割り当てられる。
図6の例では、Pool No.1のディスクプールに含まれるRAIDグループR1、R2、R3のチャンク割り当て数がそれぞれN1となっており、RAIDグループの割り当てが平準化されている。チャンク割り当て数は、TPVにチャンクが登録され、チャンクにRLU領域が割り当てられた場合に加算される。一方、TPVからチャンクが削除された場合、そのチャンクに割り当てられていたRLU領域のRAIDグループに対応するチャンク割り当て数が減算される。
(推奨パス情報211D)
推奨パス情報211Dは、推奨パスを管理するためのパス管理情報である。上記のように、各RLU領域には担当CMが存在する。担当CMを経由してRLU領域へアクセスするアクセスパスが推奨パスである。TPVにチャンクを割り当てる際、チャンクにはRLU領域が割り当てられる。そのため、図7に示すように、チャンクが割り当てられたLBA範囲と、そのチャンクに割り当てたRLU領域とが対応付けられる。さらに、RLU領域と担当CMとの関係から、LBA範囲と担当CM(推奨パス)とが対応付けられる。
図7の例では、LBA範囲(LBA#0−LBA#A)にRLU領域R1を割り当てたチャンクが存在し、LBA範囲(LBA#A−LBA#B)にRLU領域R1を割り当てたチャンクが存在する。また、LBA範囲(LBA#B−LBA#C)は未割り当て領域である。また、LBA範囲(LBA#C−LBA#E)にRLU領域R1を割り当てたチャンクが存在し、LBA範囲(LBA#E−LBA#F)にRLU領域R3を割り当てたチャンクが存在する。この場合、LBA範囲と推奨パスとの対応関係は、図8のようになる。図8に例示した推奨パステーブルは、推奨パス情報211Dの一例である。
ここで、同じ推奨パスに対応する連続したLBA範囲をセグメントと呼ぶ。図8の例では、LBA範囲(LBA#0−#B)がCM#1を経由する推奨パスに対応し、セグメント#1を成している。また、LBA範囲(LBA#C−#E)がCM#1を経由する推奨パスに対応し、セグメント#3を成している。また、未割り当て領域がセグメント#2を成し、LBA範囲(LBA#E−LBA#F)がCM#2を経由する推奨パスに対応し、セグメント#4を成している。このように、LBA範囲と推奨パスとを対応付ける推奨パス情報211Dは、TPV毎にセグメントに関する情報を与える。
(セグメント情報211E)
セグメント情報211Eは、TPV毎のセグメント数を管理するための管理用情報である。図9に例示したTPV管理テーブルは、セグメント情報211Eの一例である。上述したように、推奨パス情報211Dを参照することで、TPV毎にセグメント数をカウントすることができる。そのカウント結果をまとめたものがTPV管理テーブルである。図9に示すように、TPV管理テーブルは、TPVを識別するための識別情報(TPV No.)とセグメント数とを対応付ける。セグメント情報211Eは、TPVへチャンクを割り当てた場合など、推奨パス情報211Dの内容が変更された場合に更新される。
(閾値情報211F)
閾値情報211Fは、サーバ100が保持可能な推奨パスの数を管理するための管理用情報である。図10に例示した閾値管理テーブルは、閾値情報211Fの一例である。閾値管理テーブルは、サーバ100を識別するサーバ識別情報と推奨パス数閾値とを対応付ける。図10の例では、サーバ識別子x001001のサーバ100が保持可能な推奨パスの数(推奨パス数閾値)は3に設定されている。また、サーバ識別子x001002のサーバ100が保持可能な推奨パスの数(推奨パス数閾値)は4に設定されている。なお、サーバ100は、推奨パスの情報をセグメント単位で保持する。つまり、推奨パス数閾値は、サーバ100毎に管理可能なセグメント数の上限値を表す。
(物理ボリューム管理部212)
再び図5を参照する。物理ボリューム管理部212は、プール情報211Aを管理する。例えば、物理ボリューム管理部212は、ディスクプールに対してRLU領域を登録する処理や、RLU領域の利用状況を管理する処理などを実行する。
(論理ボリューム管理部213)
論理ボリューム管理部213は、TPV情報211Bを管理する。例えば、論理ボリューム管理部213は、TPVにチャンクを登録する処理、チャンクへRLU領域を割り当てる処理、及びTPVに登録されたチャンクの配置を変更する処理などを実行する。また、論理ボリューム管理部213は、平準化用情報211C、推奨パス情報211D、及びセグメント情報211Eの更新処理なども実行する。
上記のような処理を実行するため、論理ボリューム管理部213は、割り当て部231、及び検証部232を有する。割り当て部231は、TPVにチャンクを登録する処理や、チャンクへRLU領域を割り当てる処理などを実行する。検証部232は、TPVに登録されたチャンクの配置を変更する処理などを実行する。
以下、図11〜図13の例を参照しながら、割り当て部231及び検証部232の機能について、さらに説明する。
なお、図7及び図8に例示したTPVの状態を想定して説明を進める。図11は、第2実施形態に係るストレージ制御装置によるRLU領域の割り当て処理とセグメント数について説明するための第1の図である。また、図12は、第2実施形態に係るストレージ制御装置によるRLU領域の割り当て処理とセグメント数について説明するための第2の図である。また、図13は、第2実施形態に係るストレージ制御装置によるRLU領域の割り当て処理とセグメント数について説明するための第3の図である。
図11を参照する。図11(A)の例では、LBA範囲(LBA#0−LBA#A)にRLU領域R1を割り当てたチャンクが存在し、LBA範囲(LBA#A−LBA#B)にRLU領域R1を割り当てたチャンクが存在する。また、LBA範囲(LBA#B−LBA#C)は未割り当て領域である。また、LBA範囲(LBA#C−LBA#E)にRLU領域R1を割り当てたチャンクが存在し、LBA範囲(LBA#E−LBA#F)にRLU領域R3を割り当てたチャンクが存在する。この場合、TPVのセグメント数は4となる。
ここで、RLU領域R2を割り当てたチャンクCNを未割り当て領域のLBA範囲(LBA#B−LBA#C)に対して割り当てる場合について考える。この場合、チャンクの割り当て状況、及び、LBA範囲と推奨パスとの対応関係は図11(B)のようになる。図11(B)上側には、各LBA範囲とRLU領域との対応関係を示している。
割り当て部231は、RLU領域R2を割り当てたチャンクCNを未割り当て領域のLBA範囲(LBA#B−LBA#C)に対して割り当てる。チャンクCNをTPVに割り当てたことで、図11(B)上側に示すように、LBA範囲(LBA#B−LBA#C)に対してRLU領域R2が対応付けられる。検証部232は、図11(B)下側に示すように、各LBA範囲と推奨パスとの関係を示す推奨パス情報211Dを更新する。
図11の例では、LBA範囲(LBA#B−LBA#C)にチャンクCNが割り当てられたことで、LBA範囲(LBA#0−#E)に対応する推奨パスが同じ担当CM(CM#1)を経由するアクセスパスとなる。検証部232は、同じ担当CMを経由する推奨パスに対応付けられた連続するLBA範囲(セグメント)を抽出し、抽出したセグメントの数をカウントする。また、検証部232は、カウントしたセグメント数に基づいてセグメント情報211Eを更新する。なお、図11の例では、セグメント数が2となる。
検証部232は、閾値情報211Fを参照し、チャンクCNが割り当てられたTPVにアクセスするサーバ100の推奨パス数閾値を取得する。さらに、検証部232は、取得した推奨パス数閾値と、更新後のセグメント情報211Eに記載のセグメント数とを比較する。セグメント数が推奨パス数閾値よりも大きい場合、検証部232は、TPVにおけるチャンクの配置を変更する。例えば、推奨パス数閾値が3である場合、図11の例ではセグメント数が2であるため、チャンクの配置変更は行われない。一方、図12に示すように、チャンクCNがRLU領域R3に割り当てられる場合は状況が異なる。
図12を参照する。図12の例において、割り当て部231は、RLU領域R3を割り当てたチャンクCNを未割り当て領域のLBA範囲(LBA#B−LBA#C)に対して割り当てる。チャンクCNをTPVに割り当てたことで、図12(B)上側に示すように、LBA範囲(LBA#B−LBA#C)に対してRLU領域R3が対応付けられる。検証部232は、図12(B)下側に示すように、各LBA範囲と推奨パスとの関係を示す推奨パス情報211Dを更新する。
図12の例では、LBA範囲(LBA#B−LBA#C)にチャンクCNが割り当てられた後、LBA範囲(LBA#0−#B)に対応する推奨パスが同じ担当CM(CM#1)を経由するアクセスパスとなる。また、LBA範囲(LBA#B−#C)に対応する推奨パスが同じ担当CM(CM#2)を経由するアクセスパスとなる。また、LBA範囲(LBA#C−#E)に対応する推奨パスが同じ担当CM(CM#1)を経由するアクセスパスとなる。また、LBA範囲(LBA#E−#F)に対応する推奨パスが同じ担当CM(CM#2)を経由するアクセスパスとなる。
検証部232は、同じ担当CMを経由する推奨パスに対応付けられた連続するLBA範囲(セグメント)を抽出し、抽出したセグメントの数をカウントする。また、検証部232は、カウントしたセグメント数に基づいてセグメント情報211Eを更新する。なお、図12の例では、セグメント数が4となる。
検証部232は、閾値情報211Fを参照し、チャンクCNが割り当てられたTPVにアクセスするサーバ100の推奨パス数閾値を取得する。さらに、検証部232は、取得した推奨パス数閾値と、更新後のセグメント情報211Eに記載のセグメント数とを比較する。推奨パス数閾値が3である場合、図12の例ではセグメント数が4であるため、検証部232は、図13に示すように、TPVにおけるチャンクの配置を変更する。図13(A)には、RLU領域R3が割り当てられたチャンクCNをTPVに対して割り当てた場合の割り当て状況が示されている。
チャンクCNに割り当てたRLU領域R3の担当CMはCM#2である。チャンクCNを割り当てたLBA範囲(LBA#B−LBA#C)の前に位置するRLU領域(LBA#0−LBA#B)には、担当CMがCM#1のRLU領域R1、R2が割り当てられている。また、チャンクCNを割り当てたLBA範囲(LBA#B−LBA#C)の後に続くLBA範囲(LBA#C−LBA#E)には、担当CMがCM#1のRLU領域R1が割り当てられている。
つまり、チャンクCNの担当CMがCM#2であることにより、同じ担当CMに対応する連続したLBA範囲(LBA#0−LBA#B)及びLBA範囲(LBA#C−LBA#E)がチャンクCNの割り当てにより連結されず、セグメントが分断される。その結果、セグメント数が大きくなる。そこで、検証部232は、同じ担当CMに対応する連続したLBA範囲が長くなるようにLBA範囲の割り当てを変更する。
例えば、検証部232は、図13(B)に示すように、LBA範囲(LBA#C−LBA#D)に割り当てられていたチャンクをLBA範囲(LBA#B−LBA#C)へと移動する。また、検証部232は、LBA範囲(LBA#D−LBA#E)に割り当てられていたチャンクをLBA範囲(LBA#C−LBA#D)へと移動する。さらに、検証部232は、LBA範囲(LBA#B−LBA#C)に割り当てられていたチャンクをLBA範囲(LBA#D−LBA#E)へと移動する。つまり、検証部232は、TPV情報211Bを更新する。
上記のようなチャンクの配置変更により、LBA範囲(LBA#0−LBA#D)が同じ担当CM(CM#1)に対応する連続したLBA範囲となる。さらに、LBA範囲(LBA#D−LBA#F)が同じ担当CM(CM#2)に対応する連続したLBA範囲となる。検証部232は、配置変更後の内容で推奨パス情報211Dを更新する。また、検証部232は、セグメントの数をカウントする。さらに、検証部232は、カウントしたセグメント数に基づいてセグメント情報211Eを更新する。図13の例では、セグメント数が2となる。
検証部232は、閾値情報211Fを参照して推奨パス数閾値を取得する。さらに、検証部232は、取得した推奨パス数閾値と、更新後のセグメント情報211Eに記載のセグメント数とを再び比較する。セグメント数が推奨パス数閾値よりも大きい場合、検証部232は、再びTPVにおけるチャンクの配置を変更する。図13の例では、セグメント数が2であるため、検証部232は、チャンクCNの割り当てに伴う配置変更の処理を完了する。そして、検証部232は、マルチパスの再構築を要求するセンスをサーバ100へと通知する。なお、マルチパスの再構築時に、検証部232は、更新後の推奨パス情報211Dに基づく推奨パスの情報をサーバ100へ提供する。
(コマンド実行部214)
再び図5を参照する。コマンド実行部214は、サーバ100から受けたコマンドを実行する。例えば、コマンド実行部214は、サーバ100からWriteコマンドを受けた場合、TPV情報211Bを参照し、データの書き込み対象となるチャンクに割り当てられたRLU領域を認識する。そして、コマンド実行部214は、認識したRLU領域にデータを書き込む。
また、サーバ100からReadコマンドを受けた場合、コマンド実行部214は、TPV情報211Bを参照し、データの読み出し対象となるチャンクに割り当てられたRLU領域を認識する。そして、コマンド実行部214は、認識したRLU領域からデータを読み出す。また、コマンド実行部214は、サーバ100からRRコマンドを受けた場合、推奨パス情報211Dを参照し、LBA範囲毎に推奨パスの情報をサーバ100に提供する。
以上、ストレージ制御装置200が有する機能について説明した。
[2−4.処理フロー]
次に、図14及び図15を参照しながら、ストレージ制御装置200が実行する処理の流れについて説明する。ここでは、主にチャンクの割り当てに関する処理の流れについて説明する。
なお、図14は、第2実施形態に係るストレージ制御装置が実行する処理の流れについて説明するための第1の図である。また、図15は、第2実施形態に係るストレージ制御装置が実行する処理の流れについて説明するための第2の図である。また、図14及び図15に示した一連の処理を開始する段階でインデックスnは0に設定されている。なお、チャンクnはn番目のチャンクを表す。
(S101)コマンド実行部214は、サーバ100からWriteコマンドを受信したか否かを判定する。コマンド実行部214がWriteコマンドを受信した場合、処理はS102へと進む。一方、コマンド実行部214がWriteコマンドを受信していない場合、図14及び図15に示した一連の処理は終了する。この場合、例えば、コマンドの処理やステータスの応答処理などが実行される。
(S102)論理ボリューム管理部213は、TPVに新たなチャンクを設けて、そのチャンクにRLU領域を割り当てるか否かを判定する。例えば、サーバ100から受信したWriteコマンドに応じてデータを書き込むには既存のチャンクに割り当てたRLU領域のデータサイズが小さすぎる場合、新たなチャンクが設けられる。
論理ボリューム管理部213がTPVに新たなチャンクを設けて新規にRLU領域を割り当てる場合、処理はS103へと進む。一方、論理ボリューム管理部213がTPVに新たなチャンクを設けない場合、図14及び図15に示した一連の処理は終了する。この場合、例えば、コマンドの処理やステータスの応答処理などが実行される。
(S103)論理ボリューム管理部213は、セグメント数が推奨パス数閾値を上回るか否かを判定する。例えば、論理ボリューム管理部213は、新たなチャンクをTPVに割り当てて推奨パス情報211Dを更新する。また、論理ボリューム管理部213は、更新後の推奨パス情報211Dを参照し、同じ担当CMに対応する連続したLBA範囲の数をカウントしてセグメント数を計算する。そして、論理ボリューム管理部213は、計算したセグメント数に基づいてセグメント情報211Eを更新する。
また、論理ボリューム管理部213は、更新後のセグメント情報211Eに記載のセグメント数と閾値情報211Fに記載の推奨パス数閾値とを比較する。論理ボリューム管理部213によりセグメント数が推奨パス数閾値を上回ると判定した場合、処理はS104へと進む。一方、論理ボリューム管理部213によりセグメント数が推奨パス数閾値を上回らないと判定した場合、図14及び図15に示した一連の処理は終了する。この場合、例えば、コマンドの処理やステータスの応答処理などが実行される。
(S104)論理ボリューム管理部213は、チャンクnに割り当てられたRLU領域の担当CMと、新たなチャンクに割り当てたRLU領域の担当CMとが異なるか否かを判定する。チャンクnに割り当てられたRLU領域の担当CMと新たなチャンクに割り当てたRLU領域の担当CMとが異なる場合、処理はS105へと進む。一方、チャンクnに割り当てられたRLU領域の担当CMと新たなチャンクに割り当てたRLU領域の担当CMとが同じ場合、処理はS108へと進む。
(S105)論理ボリューム管理部213は、チャンクn+1、n−1に割り当てられたRLU領域の担当CMと、新たなチャンクに割り当てたRLU領域の担当CMとが同じか否かを判定する。チャンクn+1、n−1に割り当てられたRLU領域の担当CM及び新たなチャンクに割り当てたRLU領域の担当CMが同じである場合、処理は図15に示したS110へと進む。一方、チャンクn+1、n−1に割り当てられたRLU領域の担当CM及び新たなチャンクに割り当てたRLU領域の担当CMが同じではない場合、処理はS106へと進む。
(S106)論理ボリューム管理部213は、次の第1条件を満たし、かつ、次の第2条件を満たすか否かを判定する。第1条件は、「チャンクn+1に割り当てられたRLU領域の担当CMと、新たなチャンクに割り当てたRLU領域の担当CMとが同じ」という条件である。第2条件は、「チャンクn、n−1に割り当てられたRLU領域の担当CMが異なる」という条件である。上記の第1条件を満たし、かつ、上記の第2条件を満たす場合、処理は図15に示したS110へと進む。一方、上記の第1条件又は上記の第2条件を満たさない場合、処理はS107へと進む。
(S107)論理ボリューム管理部213は、次の第3条件を満たし、かつ、次の第4条件を満たすか否かを判定する。第3条件は、「チャンクn−1に割り当てられたRLU領域の担当CMと、新たなチャンクに割り当てたRLU領域の担当CMとが同じ」という条件である。第4条件は、「チャンクn、n+1に割り当てられたRLU領域の担当CMが異なる」という条件である。上記の第3条件を満たし、かつ、上記の第4条件を満たす場合、処理は図15に示したS110へと進む。一方、上記の第3条件又は上記の第4条件を満たさない場合、処理はS108へと進む。
(S108)論理ボリューム管理部213は、インデックスnを1増加させる。つまり、論理ボリューム管理部213は、注目するチャンクを変更する。
(S109)論理ボリューム管理部213は、TPVの全範囲(TPV内に設けた全チャンク)をチェック(S104以降の処理を実行)したか否かを判定する。論理ボリューム管理部213がTPVの全範囲をチェックし終えた場合、図14及び図15に示した一連の処理は終了する。この場合、例えば、コマンドの処理やステータスの応答処理などが実行される。一方、論理ボリューム管理部213がTPVの全範囲をチェックし終えていない場合、処理はS104へと進む。
(S110)論理ボリューム管理部213は、チャンクnに割り当てられたRLU領域のデータ及び新たなチャンクに割り当てたRLU領域のデータと、管理情報とをスワップ(交換)する。つまり、論理ボリューム管理部213は、図13に例示したチャンクの入れ替え処理を実行する。
(S111)論理ボリューム管理部213は、スワップ後の内容で推奨パス情報211Dを更新する。また、論理ボリューム管理部213は、セグメントの数をカウントし、カウントしたセグメント数に基づいてセグメント情報211Eを更新する。
(S112)論理ボリューム管理部213は、セグメント数が推奨パス数閾値を上回るか否かを判定する。例えば、論理ボリューム管理部213は、閾値情報211Fを参照して推奨パス数閾値を取得する。さらに、論理ボリューム管理部213は、取得した推奨パス数閾値と、更新後のセグメント情報211Eに記載のセグメント数とを比較する。セグメント数が推奨パス数閾値を上回る場合、図14及び図15に示した一連の処理は終了する。この場合、例えば、コマンドの処理やステータスの応答処理などが実行される。一方、セグメント数が推奨パス数閾値を上回らない場合、処理はS113へと進む。
(S113)論理ボリューム管理部213は、マルチパスの再構築を要求するセンスをサーバ100へと通知する。S113の処理を終えると、図14及び図15に示した一連の処理は終了する。この場合、例えば、コマンドの処理やステータスの応答処理などが実行される。なお、マルチパスの再構築時に、論理ボリューム管理部213は、更新後の推奨パス情報211Dに基づく推奨パスの情報をサーバ100へ提供する。
以上、ストレージ制御装置200が実行する処理の流れについて説明した。
以上説明したように、ストレージ制御装置200は、新たなチャンクにRLU領域を割り当てる際、セグメント数が推奨パス数閾値より少なくなるようにTPVにおけるチャンクの配置を変更する機能を有する。この機能により、サーバ100が管理可能なセグメント数の範囲内に収まるようにTPVのチャンク配置が設定される。そのため、サーバ100の管理対象から漏れる推奨パスの数が低減される。その結果、推奨パス以外のアクセスパスを通じてRLU領域へとアクセスする機会が減少することにより、クロスアクセスの発生によるアクセス性能の低下を抑制することが可能になる。
以上、第2実施形態について説明した。
以上、添付図面を参照しながら好適な実施形態について説明したが、本発明は係る例に限定されない。当業者であれば、特許請求の範囲に記載された範疇内において、様々な変形例や修正例に想到し得ることは明らかであり、こうした変形例や修正例についても当然に本発明の技術的範囲に属することは言うまでもない。
<3.付記>
以上説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
1つ又は複数の記録媒体に割り当てられた複数の第1記憶領域にそれぞれ対応付けられ、対応する前記第1記憶領域に対してアクセス制御を行う複数の制御部と、
前記制御部毎に設けられ、対応する1つ又は複数の前記第1記憶領域内で確保された単位記憶領域が割り当てられる第2記憶領域が配置される複数の記憶部と、
を有し、
前記制御部は、前記第2記憶領域に前記単位記憶領域を割り当てる際、同じ前記制御部に対応する複数の前記単位記憶領域が前記第2記憶領域内で連続して配置されるように前記単位記憶領域の配置を変更する
ストレージ制御装置。
(付記2)
前記制御部は、前記第2記憶領域内で連続して配置された前記単位記憶領域の組をカウントし、設定した閾値よりもカウントした数が大きい場合に前記第2記憶領域における前記単位記憶領域の配置を変更する
付記1に記載のストレージ制御装置。
(付記3)
前記制御部は、複数の前記第1記憶領域について、前記第1記憶領域毎に確保される前記単位記憶領域の数が均等になるように前記第2記憶領域に割り当てる前記単位記憶領域を設定する
付記1又は2に記載のストレージ制御装置。
(付記4)
1つ又は複数の記録媒体に割り当てられた複数の第1記憶領域にそれぞれ対応付けられ、対応する前記第1記憶領域に対してアクセス制御を行う複数の制御部と、前記制御部毎に設けられ、対応する1つ又は複数の前記第1記憶領域内で確保された単位記憶領域が割り当てられる第2記憶領域が配置される複数の記憶部と、を有するコンピュータの前記制御部が、
前記第2記憶領域に前記単位記憶領域を割り当てる際、同じ前記制御部に対応する複数の前記単位記憶領域が前記第2記憶領域内で連続して配置されるように前記単位記憶領域の配置を変更する
制御方法。
(付記5)
前記制御部が、前記第2記憶領域内で連続して配置された前記単位記憶領域の組をカウントし、設定した閾値よりもカウントした数が大きい場合に前記第2記憶領域における前記単位記憶領域の配置を変更する
付記4に記載の制御方法。
(付記6)
前記制御部が、複数の前記第1記憶領域について、前記第1記憶領域毎に確保される前記単位記憶領域の数が均等になるように前記第2記憶領域に割り当てる前記単位記憶領域を設定する
付記4又は5に記載の制御方法。
(付記7)
1つ又は複数の記録媒体に割り当てられた複数の第1記憶領域にそれぞれ対応付けられ、対応する前記第1記憶領域に対してアクセス制御を行う複数の制御部と、前記制御部毎に設けられ、対応する1つ又は複数の前記第1記憶領域内で確保された単位記憶領域が割り当てられる第2記憶領域が配置される複数の記憶部と、を有するコンピュータに、
前記制御部が前記第2記憶領域に前記単位記憶領域を割り当てる際、同じ前記制御部に対応する複数の前記単位記憶領域が前記第2記憶領域内で連続して配置されるように前記単位記憶領域の配置を変更する
処理を実行させる、プログラム。
(付記8)
1つ又は複数の記録媒体に割り当てられた複数の第1記憶領域にそれぞれ対応付けられ、対応する前記第1記憶領域に対してアクセス制御を行う複数の制御部と、前記制御部毎に設けられ、対応する1つ又は複数の前記第1記憶領域内で確保された単位記憶領域が割り当てられる第2記憶領域が配置される複数の記憶部と、を有するコンピュータに、
前記制御部が前記第2記憶領域に前記単位記憶領域を割り当てる際、同じ前記制御部に対応する複数の前記単位記憶領域が前記第2記憶領域内で連続して配置されるように前記単位記憶領域の配置を変更する
処理を実行させるプログラムが記録された、コンピュータにより読み取り可能な記録媒体。
10 サーバ
20 ストレージ制御装置
21、22 制御部
23 記憶部
23A 第2記憶領域
23B ストレージプール
30 ストレージ装置
Ch1、Ch2、ChN 単位記憶領域
Rd1、Rd2、Rd3 第1記憶領域

Claims (5)

  1. 1つ又は複数の記録媒体に割り当てられた複数の第1記憶領域にそれぞれ対応付けられ、対応する前記第1記憶領域に対してアクセス制御を行う複数の制御部と、
    前記制御部毎に設けられ、対応する1つ又は複数の前記第1記憶領域内で確保された単位記憶領域が割り当てられる第2記憶領域が配置される複数の記憶部と、
    を有し、
    前記制御部は、前記第2記憶領域に前記単位記憶領域を割り当てる際、同じ前記制御部に対応する複数の前記単位記憶領域が前記第2記憶領域内で連続して配置されるように前記単位記憶領域の配置を変更する
    ストレージ制御装置。
  2. 前記制御部は、前記第2記憶領域内で連続して配置された前記単位記憶領域の組をカウントし、設定した閾値よりもカウントした数が大きい場合に前記第2記憶領域における前記単位記憶領域の配置を変更する
    請求項1に記載のストレージ制御装置。
  3. 前記制御部は、複数の前記第1記憶領域について、前記第1記憶領域毎に確保される前記単位記憶領域の数が均等になるように前記第2記憶領域に割り当てる前記単位記憶領域を設定する
    請求項1又は2に記載のストレージ制御装置。
  4. 1つ又は複数の記録媒体に割り当てられた複数の第1記憶領域にそれぞれ対応付けられ、対応する前記第1記憶領域に対してアクセス制御を行う複数の制御部と、前記制御部毎に設けられ、対応する1つ又は複数の前記第1記憶領域内で確保された単位記憶領域が割り当てられる第2記憶領域が配置される複数の記憶部と、を有するコンピュータの前記制御部が、
    前記第2記憶領域に前記単位記憶領域を割り当てる際、同じ前記制御部に対応する複数の前記単位記憶領域が前記第2記憶領域内で連続して配置されるように前記単位記憶領域の配置を変更する
    制御方法。
  5. 1つ又は複数の記録媒体に割り当てられた複数の第1記憶領域にそれぞれ対応付けられ、対応する前記第1記憶領域に対してアクセス制御を行う複数の制御部と、前記制御部毎に設けられ、対応する1つ又は複数の前記第1記憶領域内で確保された単位記憶領域が割り当てられる第2記憶領域が配置される複数の記憶部と、を有するコンピュータに、
    前記制御部が前記第2記憶領域に前記単位記憶領域を割り当てる際、同じ前記制御部に対応する複数の前記単位記憶領域が前記第2記憶領域内で連続して配置されるように前記単位記憶領域の配置を変更する
    処理を実行させる、プログラム。
JP2013255859A 2013-12-11 2013-12-11 ストレージ制御装置、制御方法、及びプログラム Pending JP2015114808A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013255859A JP2015114808A (ja) 2013-12-11 2013-12-11 ストレージ制御装置、制御方法、及びプログラム
US14/532,164 US20150160871A1 (en) 2013-12-11 2014-11-04 Storage control device and method for controlling storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013255859A JP2015114808A (ja) 2013-12-11 2013-12-11 ストレージ制御装置、制御方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2015114808A true JP2015114808A (ja) 2015-06-22

Family

ID=53271204

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013255859A Pending JP2015114808A (ja) 2013-12-11 2013-12-11 ストレージ制御装置、制御方法、及びプログラム

Country Status (2)

Country Link
US (1) US20150160871A1 (ja)
JP (1) JP2015114808A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104966528A (zh) * 2015-06-25 2015-10-07 广东工业大学 一种防止磁盘碎片产生的多路音视频流存储方法
US11157356B2 (en) 2018-03-05 2021-10-26 Samsung Electronics Co., Ltd. System and method for supporting data protection across FPGA SSDs
CN110413217B (zh) * 2018-04-28 2023-08-11 伊姆西Ip控股有限责任公司 管理存储系统的方法、设备和计算机程序产品

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4139675B2 (ja) * 2002-11-14 2008-08-27 株式会社日立製作所 仮想ボリュームの記憶領域割当方法、その装置及びプログラム
US7467168B2 (en) * 2003-06-18 2008-12-16 International Business Machines Corporation Method for mirroring data at storage locations
US20070067670A1 (en) * 2005-09-19 2007-03-22 Xiotech Corporation Method, apparatus and program storage device for providing drive load balancing and resynchronization of a mirrored storage system
JP4486921B2 (ja) * 2005-12-09 2010-06-23 富士通株式会社 ストレージ仮想化装置およびそれを用いたコンピュータシステム
JP4932390B2 (ja) * 2006-08-31 2012-05-16 株式会社日立製作所 仮想化システム及び領域割当て制御方法
US8417938B1 (en) * 2009-10-16 2013-04-09 Verizon Patent And Licensing Inc. Environment preserving cloud migration and management
WO2011161725A1 (en) * 2010-06-24 2011-12-29 Hitachi, Ltd. Storage apparatus and storage management method
US8356147B2 (en) * 2010-08-20 2013-01-15 Hitachi, Ltd. Tiered storage pool management and control for loosely coupled multiple storage environment
US8788753B2 (en) * 2011-01-14 2014-07-22 Lsi Corporation Systems configured for improved storage system communication for N-way interconnectivity

Also Published As

Publication number Publication date
US20150160871A1 (en) 2015-06-11

Similar Documents

Publication Publication Date Title
JP5439581B2 (ja) ストレージシステム、ストレージ装置、ストレージシステムの記憶領域の最適化方法
JP5512833B2 (ja) ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステム
US8612704B2 (en) Storage system with virtual areas and method for managing storage system
US8918613B2 (en) Storage apparatus and data management method for storage area allocation based on access frequency
JP5427630B2 (ja) 動的ページ再割当てストレージシステムにおけるアプリケーション及び階層構成の管理
JP5075761B2 (ja) フラッシュメモリを用いたストレージ装置
US9052823B2 (en) Storage system and data management method with application specific storage tiers
US8539142B2 (en) Storage system comprising nonvolatile semiconductor storage media
US8880804B2 (en) Storage apparatus and data management method
US8458424B2 (en) Storage system for reallocating data in virtual volumes and methods of the same
US20110320754A1 (en) Management system for storage system and method for managing storage system
US8560799B2 (en) Performance management method for virtual volumes
US8296543B2 (en) Computer system management apparatus and management method for the computer system
US9448740B2 (en) Storage apparatus and hierarchy control method
CN104636080A (zh) 存储系统及用于其的方法
US20150089136A1 (en) Interface for management of data movement in a thin provisioned storage system
US8650358B2 (en) Storage system providing virtual volume and electrical power saving control method including moving data and changing allocations between real and virtual storage areas
JP2017090951A (ja) ストレージ制御装置、および制御プログラム
US10049042B2 (en) Storage device, semiconductor memory device, and method for controlling same
EP3889785A1 (en) Stripe reconstruction method in storage system and striping server
JP2015114808A (ja) ストレージ制御装置、制御方法、及びプログラム
US20130111170A1 (en) Storage apparatus and method of controlling storage apparatus
US20120254583A1 (en) Storage control system providing virtual logical volumes complying with thin provisioning
US9015410B2 (en) Storage control apparatus unit and storage system comprising multiple storage control apparatus units
US9218131B2 (en) Method and apparatus to change tiers