[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5797848B1 - 階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラム - Google Patents

階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラム Download PDF

Info

Publication number
JP5797848B1
JP5797848B1 JP2014534841A JP2014534841A JP5797848B1 JP 5797848 B1 JP5797848 B1 JP 5797848B1 JP 2014534841 A JP2014534841 A JP 2014534841A JP 2014534841 A JP2014534841 A JP 2014534841A JP 5797848 B1 JP5797848 B1 JP 5797848B1
Authority
JP
Japan
Prior art keywords
file
block
hierarchical
storage
extent
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.)
Active
Application number
JP2014534841A
Other languages
English (en)
Other versions
JPWO2015132873A1 (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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Application granted granted Critical
Publication of JP5797848B1 publication Critical patent/JP5797848B1/ja
Publication of JPWO2015132873A1 publication Critical patent/JPWO2015132873A1/ja
Active 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0692Multiconfiguration, e.g. local and global addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • 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
    • 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/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

実施形態によれば、ストレージコントローラは、モード切替部と、データ入出力制御部と、データ配置制御部とを含む。モード切替部は、階層配置ルールに基づくホスト機器からのモード切替要求に応じて、階層化ブロックストレージシステムを第1のモードから第2のモードに切り替える。前記データ入出力制御部は、前記階層配置ルールの示す第1のファイルを構成する第1のブロック列が格納された論理アドレス範囲へのアクセスが前記ホスト機器から要求された場合、前記要求された論理アドレス範囲内の前記第1のブロック列にアクセスする。前記データ配置制御部は、前記第2のモードにおいてアクセスされた論理アドレス範囲内のブロック列を含むエクステント内のデータを、前記階層配置ルールによって指定される階層の記憶領域に移動する。

Description

本発明の実施形態は、階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラムに関する。
近年、ストレージ階層化技術を利用した種々のストレージ装置、いわゆる階層化ブロックストレージ装置が開発されている。ストレージ階層化技術は、アクセス応答性能の異なる複数種類のストレージ装置の物理的な記憶領域(以下、物理ボリュームと称する)を束ねる。これによりストレージ階層化技術は、複数の物理ボリュームを実体として有する少なくとも1つの仮想的な記憶領域(以下、論理ボリュームと称する)を構成する。論理ボリュームは論理ディスクとも呼ばれ、ホスト機器(コンピュータ)から認識可能である。
ストレージ階層化技術では、同種類のストレージ装置(物理ボリューム)の集合は、「階層」と呼ばれる。一般にアクセス応答性能が高いストレージ装置ほど、上位の階層に割り当て(位置付け)られる。つまり、階層化ブロックストレージ装置は、階層の異なる複数種類のストレージ装置を備え、論理ディスクは、このような階層の異なるストレージ装置の物理ボリュームを用いて構成される。
階層化ブロックストレージ装置を備えたコンピュータシステムでは、指定のファイルが指定の階層に配置されることが要求される。一般に、階層化ブロックストレージ装置は、ファイルを認識することはできない。そこで従来技術では、階層化ブロックストレージ装置に特別なファイルシステム(ファイルシステムプログラム)が設けられる。この特別なファイルシステムは、ホスト機器によって利用されるファイルと、当該ファイルを構成するブロックの論理ディスク上の位置とを対応付ける。これにより階層化ブロックストレージ装置(より詳細には、階層化ブロックストレージ装置のストレージコントローラ)は、指定のファイルを構成するブロックを特定して、当該特定されたブロックを指定の階層に配置することができる。
特開2004−295457号公報 特開2010−257094号公報
上述したように、従来技術は、指定のファイルを指定の階層に配置する機能を、階層化ブロックストレージ装置に設けられた特別のファイルシステムにより実現している。つまり、従来技術では、階層化ブロックストレージ装置は、特別のファイルシステムを必要とする。
本発明が解決しようとする課題は、階層化ブロックストレージ装置側にファイルシステムを必要とすることなく、指定のファイルを指定の階層に配置することができる、コンピュータシステム、ストレージコントローラ、及びプログラムを提供することにある。
実施形態によれば、コンピュータシステムは、階層化ブロックストレージシステムと、ホスト機器とを備える。前記ホスト機器は、前記階層化ブロックストレージシステムにアクセスする。前記階層化ブロックストレージシステムは、階層化ブロックストレージ装置と、ストレージコントローラとを備える。前記階層化ブロックストレージ装置は、アクセス応答性能の異なる複数種類のストレージ装置を備える。前記複数種類のストレージ装置は、前記アクセス応答性能にそれぞれ対応した階層に割り当てられる。前記複数種類のストレージ装置の少なくとも2種類のストレージ装置のそれぞれ少なくとも一部の記憶領域は、第1のサイズの複数のブロックを備えた論理ディスクに割り当てられる。前記論理ディスクは、前記ホスト機器によって利用されるファイルを格納するのに用いられる。前記ストレージコントローラは、モード切替部と、データ入出力制御部と、データ配置制御部とを備える。前記ホスト機器は、ファイルシステムと、ルール入力部と、階層配置指示部と、ファイル指定部とを備える。前記モード切替部は、前記ホスト機器からの要求に応じて、前記階層化ブロックストレージシステムの動作モードを第1のモードから第2のモードに切り替える。前記データ入出力制御部は、前記ホスト機器からのアクセス要求に応じて前記論理ディスクにアクセスする。前記ファイルシステムは、前記論理ディスクに格納されるファイル毎に、対応するファイルを示すファイルパスと当該対応するファイルが格納されている論理アドレス範囲との対応を管理する。前記ファイルシステムは更に、前記ファイル指定部から、ファイルを構成するブロック列が格納された論理アドレス範囲へのアクセスが要求された場合、前記要求された論理アドレス範囲内のブロック列に前記データ入出力制御部を介してアクセスする。前記ルール入力部は、外部からの要求に基づいて、ファイルを指定するためのファイルパス情報と、当該ファイルが配置されるべき階層を指定するため階層情報と、開始時刻情報とを含む階層配置ルールを入力する。前記階層配置指示部は、前記階層配置ルール内の前記開始時刻情報によって示される開始時刻の到来に応じて、前記第2のモードへの切り替えを前記ストレージコントローラに要求する。前記ファイル指定部は、前記階層配置ルール内の前記ファイルパス情報によって示される第1のファイルを構成する第1のブロック列が格納された論理アドレス範囲へのアクセスを前記ファイルシステムに要求する。前記データ配置制御部は、前記第2のモードにおいてアクセスされた論理アドレス範囲内のブロック列を含むエクステントであって、論理アドレスが連続する第2の数のブロックから構成されるエクステント内のデータを、前記階層配置ルールによって指定される階層の記憶領域に移動する。
図1は、1つの実施形態に係るコンピュータシステムの典型的なハードウェア構成を示すブロック図である。 図2は、図1に示される階層化ストレージシステム及びホスト機器の典型的な機能構成を主として示すブロック図である。 図3は、同実施形態におけるエクステント管理テーブルのデータ構造の例を示す図である。 図4は、同実施形態におけるファイル−論理アドレス管理テーブルのデータ構造の例を示す図である。 図5は、同実施形態における階層配置ルールリストのデータ構造の例を示す図である。 図6は、同実施形態におけるファイルパスリストのデータ構造の例を示す図である。 図7は、同実施形態においてホスト機器側で実行される階層配置処理の典型的な手順を説明するためのフローチャートである。 図8は、図7に示される階層配置処理に含まれているブロックアクセス処理の典型的な手順を説明するためのフローチャートである。 図9は、同実施形態において階層化ストレージシステム側で実行される階層配置処理の典型的な手順を説明するためのフローチャートである。 図10は、同実施形態の第1の変形例におけるファイル配置処理の概要を説明するための図である。 図11は、同第1の変形例においてホスト機器側で実行されるファイル配置処理の典型的な手順を説明するためのフローチャートである。 図12は、同実施形態の第2の変形例における部分リード処理の概要を説明するための図である。 図13は、第2の変形例においてホスト機器側で実行される部分リード処理の典型的な手順を説明するためのフローチャートである。
以下、種々の実施の形態につき図面を参照して説明する。
図1は、1つの実施形態に係るコンピュータシステムの典型的なハードウェア構成を示すブロック図である。コンピュータシステムは、階層化ストレージシステム10及びホスト機器20から構成される。階層化ストレージシステム10(より詳細には、階層化ストレージシステム10のストレージコントローラ12)は、ファイバチャネル(FC)、スモールコンピュータシステムインタフェース(SCSI)、シリアルアタッチドSCSI(SAS)、インターネットSCSI(iSCSI)、イーサネット(登録商標)、或いはシリアルATアタッチメント(SATA)のようなホストインタフェースバス30を介してホスト機器20と接続されている。ホスト機器20は、階層化ストレージシステム10を外部ストレージ装置として利用する。なお、階層化ストレージシステム10が、ストレージエリアネットワーク(SAN)、インターネット或いはイントラネットのようなネットワークを介してホスト機器20と接続されていても良い。更に、階層化ストレージシステム10が、ホスト機器20を含む複数のホスト機器と接続されていても良い。
階層化ストレージシステム10は、階層化ブロックストレージ装置11と、ストレージコントローラ12とから構成される。階層化ブロックストレージ装置11は、高速ストレージ装置(第1の種類のストレージ装置)111と、低速ストレージ装置(第2の種類のストレージ装置)112とを備えている。高速ストレージ装置111及び低速ストレージ装置112は、FC、SCSI、SAS、iSCSI、イーサネット、或いはSATAのようなストレージインタフェースバス13を介してストレージコントローラ12と接続されている。
高速ストレージ装置111は、例えば、フラッシュアレイのような、アクセス応答性能に優れた(つまり、アクセス速度が高速な)フラッシュストレージ装置から構成される。フラッシュストレージ装置は、複数のフラッシュメモリボードを用いて実現される。フラッシュメモリボードの各々は、フラッシュメモリの集合を含む。本実施形態では、複数のフラッシュメモリボードの各々はハードディスクドライブ(HDD)との互換性を有していないものとする。しかし、複数のフラッシュメモリボードに代えて、HDDとの互換性を有する複数のソリッドステートドライブ(SSD)が用いられても構わない。
一方、低速ストレージ装置112は、例えば、高速ストレージ装置111(フラッシュストレージ装置)と比較してアクセス応答性能が低い(つまり、アクセス速度が低速な)ハードディスクドライブ(HDD)アレイから構成される。HDDアレイは、例えば、複数のHDDを備えたRAID(Redundant Arrays of Inexpensive DisksまたはRedundant Arrays of Independent Disks)構成のストレージ装置である。なお、高速ストレージ装置111及び低速ストレージ装置112が必ずしもアレイ構成を有している必要はない。
高速ストレージ装置111及び低速ストレージ装置112は、第1のサイズのデータの塊を最小単位としてアクセスが可能である。この第1のサイズのデータの塊はブロックと呼ばれる。このため、高速ストレージ装置111及び低速ストレージ装置112は、ブロックストレージ装置と呼ばれる。
上述のように、図1に示される階層化ストレージシステム10(階層化ブロックストレージ装置11)には、アクセス応答性能(アクセス速度)の異なる2つ(2種類)のストレージ装置(つまり、高速ストレージ装置111及び低速ストレージ装置112)が存在する。この場合、高速ストレージ装置111は上位階層(高速階層、第1の階層)に、低速ストレージ装置112は下位階層(低速階層、第2の階層)に、それぞれ割り当てられる。なお、階層化ストレージシステム10が、例えば磁気テープ装置のような、低速ストレージ装置112よりも更に低速(低階層、第3の階層)のストレージ装置(第3の階層のストレージ装置)を備えていても良い。
ストレージコントローラ12は、ホストインタフェースコントローラ(以下、HIFCと称する)120と、ストレージインタフェースコントローラ(以下、SIFCと称する)121と、メモリ122と、HDD123と、CPU124とを備えている。
HIFC120は、ホスト機器20との間のデータ転送(データ転送プロトコル)を制御する。HIFC120は、ホスト機器20からの論理ボリュームに対するデータアクセス要求(リード要求またはライト要求)を受信し、当該データアクセス要求に対する応答を返信する。HIFC120は、ホスト機器20からデータアクセス要求を受信すると、当該要求を、CPU124に伝達する。データアクセス要求を受け取ったCPU124は、当該データアクセス要求を処理する。
SIFC121は、CPU124が受信したホスト機器20からのデータアクセス要求(論理ボリュームに対するライト要求またはリード要求)に基づく入出力(I/O)要求を受信する。SIFC121は、受信されたI/O要求に応じて、高速ストレージ装置111または低速ストレージ装置112へのアクセスを実行する。
メモリ122は、DRAMのような書き換えが可能な揮発性メモリである。メモリ122の一部の領域は、HDD123からロードされるストレージ制御プログラムを格納するのに用いられる。メモリ122の他の一部の領域は、CPU124のためのワーク領域として用いられる。
HDD123には、ストレージ制御プログラムが格納されている。CPU124は、ストレージコントローラ12が起動されたときにイニシャルプログラムローダ(IPL)を実行することにより、HDD123に格納されているストレージ制御プログラムをメモリ122にロードする。IPLは、読み出し専用メモリ(ROM)またはフラッシュROM(FROM)のような不揮発性メモリに格納されている。
CPU124は、メモリ122にロードされたストレージ制御プログラムに従い、後述のモード切替部125、データ入出力制御部126及びデータ配置制御部127として機能する。つまりCPU124は、メモリ122に格納されているストレージ制御プログラムを実行することで、階層化ストレージシステム10全体(特にストレージコントローラ12内の各部)を制御する。
ホスト機器20は、SIFC(インタフェースコントローラ)201と、メモリ202と、HDD203と、CPU204とを備えている。SIFC201は、階層化ストレージシステム10のストレージコントローラ12(より詳細には、ストレージコントローラ12のHIFC120)との間のデータ転送を制御する。SIFC201は、CPU204からのデータアクセス要求をストレージコントローラ12に送信し、当該データアクセス要求に対するストレージコントローラ12からの応答を受信する。SIFC201は、ストレージコントローラ12からの応答を受信すると、当該応答を、CPU204に伝達する。
メモリ202は、メモリ122と同様に、DRAMのような書き換えが可能な揮発性メモリである。メモリ202の一部の領域は、HDD203からロードされるオペレーティングシステム(OS)及び種々のプログラムを格納するのに用いられる。メモリ202の他の一部の領域は、CPU204のためのワーク領域として用いられる。
HDD203には、OS及び複数のプログラムが格納されている。複数のプログラムは、アプリケーションプログラム(以下、アプリケーションと称する)及びユーティリティプログラムを含む。CPU204は、ホスト機器20が起動されたときに、ROMまたはFROMのような不揮発性メモリ格納されているIPLを実行することにより、HDD203に格納されているOSをメモリ202にロードする。またCPU204は、HDD203に格納されているプログラムを適宜メモリ202にロードする。
CPU204は、メモリ202にロードされた特定のプログラム(例えば、特定のユーティリティプログラム)及びOSに従い、後述のルール入力部21、階層配置指示部22、ファイル抽出部23、ファイル指定部24、ファイルシステム25(より詳細には、ファイルシステム25のファイルアクセス制御部251)、及びファイル配置部26として機能する。本実施形態では、CPU204は、特定のユーティリティプログラムに従い、ルール入力部21、階層配置指示部22、ファイル抽出部23及びファイル配置部26として機能し、OSに従い、ファイル指定部24及びファイルシステム25(ファイルアクセス制御部251)として機能する。
図2は、図1に示される階層化ストレージシステム10及びホスト機器20の典型的な機能構成を主として示すブロック図である。階層化ストレージシステム10の階層化ブロックストレージ装置11は、論理ディスク110を備えている。本実施形態では、説明の簡略化のために、階層化ブロックストレージ装置11が1つの論理ディスク(110)を備えている場合を想定している。しかし、階層化ブロックストレージ装置11が、複数の論理ディスクを備えていても構わない。
論理ディスク110は、論理ボリュームとも呼ばれ、仮想的な記憶領域(いわゆる、論理アドレス空間)を有する。この仮想的な記憶領域は、管理のために第1のサイズの複数の論理ブロックに分割される。つまり、論理ディスク110は、複数の論理ブロックを備えている。複数の論理ブロックはそれぞれ論理ブロックアドレス(LBA)で指定される。仮想的な記憶領域は更に、管理のために第2のサイズの複数の論理エクステントにも分割される。第2のサイズは、Nを1より大きい整数とすると、第1のサイズのN倍である。つまり、論理エクステントの各々は、N個の連続するLBAで指定されるN個の論理ブロックから構成される。本実施形態において、Nは8,192である。しかし、Nが8,192以外の1より大きい整数であっても構わない。なお、以下の説明では、論理ブロック及び論理エクステントが、それぞれ単にブロック及びエクステントと称されることもある。
論理ディスク110の仮想的な記憶領域の一部には、高速ストレージ装置111の少なくとも一部の記憶領域(つまり物理ボリューム)が割り当てられる(つまりマッピングされる)。また、この仮想的な記憶領域の他の一部には、低速ストレージ装置112の少なくとも一部の記憶領域が割り当てられる。このように、論理ディスク110は、階層の異なる複数の物理ボリューム(ここでは、上位階層の物理ボリューム及び下位階層の物理ボリューム)を実体として有する。つまり論理ディスク110(より詳細には論理ディスク110の実体)は、高速ストレージ装置111及び低速ストレージ装置112内の物理ボリューム(第1及び第2の物理ボリューム)を組み合わせて構成される。第1及び第2の物理ボリュームの各々は、論理ブロックと同一サイズ(第1のサイズ)の複数の物理ブロックを備えている。論理ディスク110には、例えばホスト機器20によって利用されるファイルが格納される。このファイルは、1つ以上のブロックから構成される。
階層化ストレージシステム10のストレージコントローラ12は、モード切替部125、データ入出力制御部126及びデータ配置制御部127を備えている。これらの機能要素125乃至127は、図1に示されるストレージコントローラ12のCPU124がストレージ制御プログラムを実行することにより実現されるソフトウェアモジュールである。しかし、機能要素125乃至127の少なくとも1つがハードウェアモジュールによって実現されても構わない。
モード切替部125は、階層化ストレージシステム10の動作モードを切り替える。本実施形態において、階層化ストレージシステム10のストレージコントローラ12は、少なくとも通常モード(第1のモード)及び領域配置モード(第2のモード)でそれぞれ動作可能である。通常モードとは、ホスト機器20によって要求された論理ディスク110内の1つ以上のブロックへのアクセスを実行するための動作モードを指す。以下の説明では簡略化のために、特に断らない限り、1つを超えるブロックへのアクセスを前提とする。領域配置モードとは、ホスト機器20によって要求されたブロックへのアクセスに加えて、主として次の第1及び第2の動作を実行するための動作モードを指す。第1の動作は、アクセスされたブロックを含むエクステントに対応付けられた階層移動フラグをオンすることを含む。階層移動フラグについては後述する。第2の動作は、ホスト機器20によって領域配置モードの終了が指定された場合に、オン状態にある階層移動フラグに対応する全てのエクステントを指定の階層の記憶領域に配置して、しかる後に、階層化ストレージシステム10の動作モードを領域配置モードから通常モードに切り替えることを含む。
データ入出力制御部126は、ホスト機器20によって要求された論理ディスク110内のブロックにアクセスする。データ配置制御部127は、上述の階層移動フラグを操作し、且つオン状態にある階層移動フラグに対応する全てのエクステントを指定の階層の記憶領域に配置する。
ストレージコントローラ12は、エクステント管理テーブル128を更に備える。エクステント管理テーブル128は、図1に示されるストレージコントローラ12のHDD123に保存されており、必要に応じて(例えば、当該ストレージコントローラ12の起動時に)HDD123からメモリ122にロードされる。
図3は、エクステント管理テーブル128のデータ構造の例を示す。エクステント管理テーブル128は、論理ディスク110のエクステントにそれぞれ対応付けられたエントリを有する。エクステント管理テーブル128の各エントリは、エクステント識別子(ID)フィールド、LBAフィールド、物理ストレージIDフィールド、物理ストレージアドレスフィールド、及び階層移動フラグフィールドを含む。階層移動フラグフィールドは、対応するエクステントが指定の階層に移動されるべきかを示す階層移動フラグを保持するのに用いられる。
エクステントIDフィールドは、対応するエクステントを識別するためのID(エクステントID)を保持するのに用いられる。LBAフィールドは、対応するエクステントを構成するN個の連続するブロック(論理ブロック)に関するLBA情報を保持するのに用いられる。本実施形態では、LBA情報は、対応するエクステントの先頭ブロック及び最終ブロックのそれぞれLBAを含む。つまり、LBA情報は、対応するエクステントのLBA範囲を示す。
物理ストレージIDフィールドは、対応するエクステント内のN個の連続するブロックに割り当てられたN個の物理ブロックを含む記憶装置(物理ストレージ装置)を識別するためのID(物理ストレージID)を保持するのに用いられる。物理ストレージアドレスフィールドは、対応するエクステント内のN個の連続する論理ブロック(つまり、N個の論理ブロックの列)に割り当てられたN個の物理ブロックに関する物理ストレージアドレス情報を保持するのに用いられる。
本実施形態では、N個の物理ブロックは対応する物理ストレージ装置において連続している。物理ストレージアドレス情報は、この連続するN個の物理ブロックの先頭物理ブロック及び最終物理ブロックのそれぞれ物理ストレージアドレスを含む。つまり、物理ストレージアドレス情報は、対応するエクステントの物理アドレス範囲を示す。
このように、エクステント管理テーブル128のエントリの各々には、対応するエクステントを管理するのに用いられるエクステント情報が保持される。このエクステント情報は、エクステントID、LBA情報、物理ストレージID、物理ストレージアドレス情報及び階層移動フラグを含む。
なお、階層化ブロックストレージ装置11が複数の論理ディスクを備えている場合、当該複数の論理ディスクにそれぞれ対応付けて、当該複数の論理ディスクと同数のエクステント管理テーブル128が用意されれば良い。また、エクステント管理テーブル128の各エントリに、論理ディスクIDフィールドを追加するならば、当該エクステント管理テーブル128を、複数の論理ディスクに共通に用いることも可能である。これらは、例えば、後述のファイル−論理アドレス管理テーブル252においても同様である。
ホスト機器20は、図2に示されているように、ルール入力部21、階層配置指示部22、ファイル抽出部23、ファイル指定部24、ファイルシステム25、及びファイル配置部26を備えている。ファイルシステム25は、ファイルアクセス制御部251を含む。前述したように、これらの機能要素21乃至26(より詳細には、機能要素21乃至24,26及び251)は、図1に示されるホスト機器20のCPU204が特定のプログラム及びOSを実行することにより実現されるソフトウェアモジュールである。しかし、機能要素機能要素21乃至26の少なくとも1つがハードウェアモジュールによって実現されても構わない。ファイルシステム25は、ファイル−論理アドレス管理テーブル252を更に含む。
ホスト機器20はまた、階層配置ルールリスト27、ファイルパスリスト28及びアプリケーション29を備えている。階層配置ルールリスト27、ファイルパスリスト28、アプリケーション29及びファイル−論理アドレス管理テーブル252は、図1に示されるホスト機器20のHDD203に保存されており、必要に応じて(例えば、当該当ホスト機器20の起動時に)HDD203からメモリ202にロードされる。
ルール入力部21は、ホスト機器20の外部から階層配置ルール(より詳細には、階層配置ルールが記述された階層配置ルール情報)を入力する。階層配置ルールとは、指定のファイルを構成するブロックを含むエクステントを、指定階層に移動(配置)するためのルールを指す。階層配置ルールの詳細については後述する。ルール入力部21によって入力された階層配置ルールは、階層配置ルールリスト27に保持される。
階層配置指示部22は、階層配置ルールリスト27内の階層配置ルールで指定されたファイルを構成するブロックを含むエクステントを当該ルールで指定された階層に移動するために、ストレージコントローラ12内のモード切替部125と、ホスト機器20内のファイル抽出部23、ファイル指定部24及びファイル配置部26とを制御する。ファイル抽出部23は、階層配置ルールによって示されるファイルパスを全て抽出する。抽出されたファイルパスはファイルパスリスト28に保持される。
ファイル指定部24は、ファイルパスリスト28に保持されているファイルパス毎に、対応するファイルパスで指定されるファイルへのアクセスを、ファイルシステム25のファイルアクセス制御部251に対して要求する。ファイルシステム25は、階層化ブロックストレージ装置11内の論理ディスク(図2の例では、論理ディスク110)に格納されるファイルと当該ファイルを構成するブロックの集合(より詳細には、1つ以上のブロック列)との対応を管理し、且つ当該論理ディスクへのアクセスを制御する周知の機能を有する。一方、階層化ストレージシステム10(より詳細には、階層化ストレージシステム10のストレージコントローラ12)は、論理ディスク内のいずれのブロックの集合がいずれのファイルに対応付けられているかを考慮しない。
ファイルシステム25のファイルアクセス制御部251は、ファイル指定部24によって要求されたファイルを構成するブロックに、ストレージコントローラ12のデータ入出力制御部126を介してアクセスする。ファイル配置部26は、ファイルパスリスト28に保持されているファイルパスで指定されるファイルを構成するブロックの集合が論理ディスク110内で連続するように再配置する。ファイル配置部26は、後述の第1の変形例で用いられる。
図4は、ファイル−論理アドレス管理テーブル252のデータ構造の例を示す。ファイル−論理アドレス管理テーブル252は、ファイルシステム25によって管理されるファイルにそれぞれ対応付けられたエントリを有する。ファイル−論理アドレス管理テーブル252の各エントリは、ファイルパスフィールド、及びLBAフィールドを含む。
ファイルパスフィールドは、対応するファイルのファイルパス(より詳細には、ファイルパスを示す情報)を保持するのに用いられる。LBAフィールドは、対応するファイルを構成するブロックの集合に関するLBA情報を保持するのに用いられる。ここで、対応するファイルを構成するブロックの全てが、論理ディスク110(より詳細には、論理ディスク110の仮想的な記憶領域)において連続しているものとする。この場合、LBA情報は、前記連続するブロック(つまり、LBAが連続するブロックの列)内の先頭ブロック及び最終ブロックのそれぞれLBAを含む。つまりLBA情報は、前記連続するブロックのLBA範囲を示す。このLBA範囲が、前記連続するブロック内の先頭ブロックのLBAと、当該連続するブロックの数(または当該連続するブロック全体のサイズ)とにより示されても構わない。なお、対応するファイルが1つのブロックから構成されていても構わない。この場合、LBA情報に含まれる先頭ブロック及び最終ブロックのLBAは一致する。
次に、対応するファイルが断片化を起こして、当該対応するファイルを構成するブロックの集合が、階層化ストレージシステム10において複数のセグメントに分断されているものとする。複数のセグメントの各々は、論理ディスク110において連続するブロック(つまり、ブロックの列)から構成される。この場合、LBA情報は、セグメント毎に、対応するセグメントの先頭ブロック及び最終ブロックのそれぞれLBAを含む。つまりLBA情報は、セグメント毎に、対応するセグメントのLBA範囲を示す。なお、複数のセグメントの少なくとも1つが、1つのブロックから構成されていても構わない。
以下の説明では、ファイルを構成するブロックの全てが論理ディスク110において連続している場合にも、当該ブロックの集合を便宜的にセグメントと称する。つまり以下の説明では、ファイルは、1つ以上のセグメントから構成されるものとする。
図5は、階層配置ルールリスト27のデータ構造の例を示す。階層配置ルールリスト27の各要素(つまり、階層配置ルール)は、ルールID、階層情報、ルール種別、ルール内容、及び開始時刻情報及び打切時刻情報を含む。ルールIDは、対応する階層配置ルールに固有のIDを示す。階層情報は、データが配置されるべき階層を示す。ルール種別は、階層配置ルールの種別、例えばファイル指定(第1の種別)であるか、或いはアプリケーション連携(第2の種別)であるかを示す。ファイル指定とは、階層情報によって示される階層(つまり指定階層)に配置されるべきデータとして、ファイルが指定されることを示す。アプリケーション連携とは、指定階層に配置されるべきデータが、予め定められたプログラム(以下、連携プログラムと称する)によって起動される特定のアプリケーションによりアクセスされるブロックであることを示す。以下の説明では、ルール種別がファイル指定である階層配置ルールを、ファイル指定配置ルールと称し、ルール種別がアプリケーション連携である階層配置ルールを、アプリケーション連携配置ルールと称する。
ルール内容は、ルール種別に依存する。ルール種別がファイル指定の場合、ルール内容(第1のルール内容)として、ファイルパスが記述される。ファイルパスには、例えば*のような特別の記号を用いた、正規表現またはワイルドカードの指定も可能である。つまり、ファイル指定配置ルールは、ルール内容で指定されたファイルを構成するブロック(ブロックの集合)を含むエクステントを、指定階層に移動(配置)するルールを指す。一方、ルール種別がアプリケーション連携の場合、ルール内容(第2のルール内容)として、連携プログラムを指定するプログラム情報が記述される。つまり、アプリケーション連携配置ルールは、ルール内容で指定された連携プログラムによって起動された特定のアプリケーション(本実施形態では、アプリケーション29)がアクセスしたブロックを含むエクステントを、指定階層に移動するルールを指す。第2のルール内容として、バッチファイル(バッチプログラム)或いはスクリプトのようなプログラムを指定する情報が記述されても良い。
開始時刻情報は、対応する階層配置ルールが適用される階層配置処理が開始される時刻を示す。打切時刻情報は、対応する階層配置処理が打ち切られる時刻を示す。なお、開始時刻情報が、対応する階層配置処理が開始される日時を示し、打切時刻情報が、対応する階層配置処理が打ち切られる日時を示しても良い。
図6は、ファイルパスリスト28のデータ構造の例を示す。ファイルパスリスト28は、ファイル抽出部23によって抽出されたファイルパスを保持するのに用いられる。ファイルパスリスト28の各要素は、ファイルパスID、及びファイルパス(ファイルパス情報)を含む。ファイルパスIDは、対応するファイルパスのIDを示す。
次に、本実施形態における、(1)階層配置ルールの登録、及び(2)階層配置処理について順に説明する。
(1)階層配置ルールの登録
まず、階層配置ルールの登録について説明する。今、ホスト機器20の外部から当該ホスト機器20に対して、階層配置ルールの登録が要求されたものとする。ここでは、階層配置ルールの登録が、ユーザの操作に従って要求されたものとする。この場合、ホスト機器20のルール入力部21は、ユーザの操作によって指定された階層配置ルールを当該ホスト機器20の外部から入力し、当該入力された階層配置ルールを階層配置ルールリスト27に追加する。なお、ユーザの操作は、例えば、ホスト機器20に接続されたキーボード、或いは当該ホスト機器20にネットワークを介して接続された端末のような外部機器を用いて行われる。
(2)階層配置処理
次に、階層配置処理について、図7乃至図9を参照して説明する。図7は、ホスト機器20側で実行される階層配置処理(以下、第1の階層配置処理と称する)の典型的な手順を説明するためのフローチャート、図8は図7に示される第1の階層配置処理に含まれているブロックアクセス処理の典型的な手順を説明するためのフローチャートである。図9は、図7に示される第1の階層配置処理で発行されるモード切替命令に応じて階層化ストレージシステム10側で実行される階層配置処理(以下、第2の階層配置処理と称する)の典型的な手順を説明するためのフローチャートである。
まず階層配置指示部22は、階層配置ルールリスト27に保持されている全ての階層配置ルールの開始時刻を監視して、開始時刻が到来したかを判定する(ステップS1)。ここでは、ルールIDが1の階層配置ルールの開始時刻(0:00)が到来したものとする(ステップS1のYes)。この場合、階層配置指示部22は、開始時刻が到来した階層配置ルールの適用を開始するために、ステップS2に進む。
ステップS2において階層配置指示部22は、階層化ストレージシステム10を通常モードから領域配置モードに切り替えることを指示するモード切替命令を、当該階層化ストレージシステム10のストレージコントローラ12に発行する。このモード切替命令は、領域配置モードにおいて、オン状態に設定された階層移動フラグに対応する全てのエクステントが配置されるべき階層をも指定する。
階層配置指示部22によって発行されたモード切替命令は、ストレージコントローラ12のモード切替部125によって受信される。するとストレージコントローラ12では、図9のフローチャートで示される第2の階層配置処理が次のように開始される。まずモード切替部125は、階層化ストレージシステム10を通常モードから領域配置モードに切り替える(ステップS31)。そしてモード切替部125は、モード切替に成功したかを判定する(ステップS32)。もし、モード切替に成功したならば(ステップS32のYes)、モード切替部125は、モード切替命令に対する応答として、モード切替成功をホスト機器20に通知する(ステップS33)。これに対し、モード切替に失敗したならば(ステップS32のNo)、モード切替部125は、モード切替失敗をホスト機器20に通知する(ステップS34)。この場合、第2の階層配置処理は終了する。
モード切替部125からホスト機器20に返された通知は階層配置指示部22によって受信される。すると階層配置指示部22は、モード切替成功通知であるかを判定する(ステップS3)。もし、モード切替失敗通知であるならば(ステップS3のNo)、第1の階層配置処理は終了する。これに対してモード切替成功通知であるならば(ステップS3のYes)、ブロックアクセス処理(ステップS4)が、図8に示されるフローチャートに従って次のように実行される。
まず階層配置指示部22は、開始時刻が到来した階層配置ルールのルール種別が、ファイル指定またはアプリケーション連携のいずれであるかを判定する(ステップS11)。以下、2a)ファイル指定の場合のブロックアクセス処理、及び2b)アプリケーション連携の場合のブロックアクセス処理について順に説明する。
2a)ファイル指定の場合のブロックアクセス処理
ステップS11においてルール種別がファイル指定であると判定された場合、階層配置指示部22は、ファイル抽出部23にファイル抽出命令を発行する。このファイル抽出命令は、開始時刻が到来した階層配置ルールのルール内容、つまりファイルパス情報を含む。ファイル抽出部23は、階層配置指示部22によって発行されたファイル抽出命令を受信する。するとファイル抽出部23は、受信されたファイル抽出命令に含まれているファイルパス情報の示すファイルパス(つまり、階層配置ルールによって示されるファイルパス)を、ファイル−論理アドレス管理テーブル252から全て抽出する(ステップS12)。この階層配置ルールのルールIDが1である場合、ルール内容は、ファイルパス/var/log/*.logを含む。ここでは、例えば、ファイルパス/var/log/message.logを含むファイルパスの集合が抽出されたものとする。抽出されたファイルパスの集合はファイルパスリスト28に保持される。
このように、階層配置ルールによって示される全てのファイルパスがファイル抽出部23によって抽出されて、当該抽出されたファイルパスがファイルパスリスト28に保持されたものとする(ステップS12)。この場合、階層配置指示部22は、抽出されたファイルパスで示されるそれぞれのファイルの集合へのアクセスを指示するアクセス命令を、ファイル指定部24に発行する。
するとファイル指定部24は、ファイルパスリスト28から1つの未選択のファイルパスを選択する(ステップS13)。そしてファイル指定部24は、選択されたファイルパスに対応付けられているLBA(論理ブロックアドレス)範囲を、ファイルアクセス制御部251に問い合わせる。
この問い合わせに応じて、ファイルアクセス制御部251はファイル−論理アドレス管理テーブル252を参照して、選択されたファイルパスに対応付けられているLBA範囲を全て特定する(ステップS14)。ファイルアクセス制御部251は、特定されたLBA範囲を全てファイル指定部24に通知する。
するとファイル指定部24は、通知されたLBA範囲から1つのLBA範囲を選択する(ステップS15)。そしてファイル指定部24は、選択されたLBA範囲内のブロック(ブロックの列)へのアクセスをファイルアクセス制御部251に要求する。
この要求に応じてファイルアクセス制御部251は、階層化ブロックストレージ装置11内の論理ディスク110に存在し、且つ選択されたLBA範囲内のブロック(より詳細には、LBAが連続するブロックの列、つまりセグメント)に、ストレージコントローラ12のデータ入出力制御部126を介してアクセスする(ステップS16)。本実施形態では、このアクセスはリードアクセスであり、選択されたLBA範囲内のブロックのデータが読み出される。
選択されたLBA範囲内のブロックへのアクセス(ステップS16)が完了すると、ファイル指定部24は、特定されたLBA範囲の中に未選択のLBA範囲があるかを判定する(ステップS17)。もし、未選択のLBA範囲があるならば(ステップS17のYes)、ファイル指定部24はステップS15に戻って、未選択の1つのLBA範囲を選択する。ファイルアクセス制御部251は、ファイル指定部24によって選択されたLBA範囲内のブロックにデータ入出力制御部126を介してアクセスする(ステップS16)。
このとき、階層化ストレージシステム10は、モード切替部125によって領域配置モードに設定されている(ステップS31乃至S33)。データ入出力制御部126は、モード切替部125によってモード切替成功がホスト機器20に通知された場合(ステップS33)、ホスト機器20のファイルアクセス制御部251からのアクセス(つまりブロックアクセス)を、例えば第1の時間を上限に監視する(ステップS35)。領域配置モードにおいて、この第1の時間が経過する前に、ファイルアクセス制御部251によってブロックアクセスが行われた場合(ステップS35のYes)、データ入出力制御部126は、アクセスされたLBA範囲内のブロックを含むエクステントに対応する階層移動フラグをオンするように、データ配置制御部127に要求する。
この要求に応じて、データ配置制御部127は第1の動作を実行する。即ちデータ配置制御部127は、エクステント管理テーブル128を参照して、アクセスされたLBA範囲内のブロックを含むエクステントを特定し、当該特定されたエクステントに対応付けられた階層移動フラグをオンする(ステップS36)。そしてデータ配置制御部127はモード切替部125に制御を渡す。するとモード切替部125は、領域配置モード終了命令を受信しているかを判定する(ステップS37)。もし、モード切替部125が領域配置モード終了命令を受信していないならば(ステップS37のNo)、当該モード切替部125はデータ入出力制御部126に制御を渡す。
するとデータ入出力制御部126は、第1の時間を上限に次のブロックアクセスを待つ(ステップS35)。もし、第1の時間が経過する前に、ファイルアクセス制御部251によって次のブロックアクセスが行われたならば(ステップS35のYes)、データ入出力制御部126は、上述したように階層移動フラグをオンするように、データ配置制御部127に要求する。
ここで、ファイルアクセス制御部251が、特定された全てのLBA範囲内のブロックにアクセスしたものとする。この場合、未選択のLBA範囲がないことから(ステップS17のNo)、ファイル指定部24は、選択されたファイルパスで指定されるファイルへのアクセスが完了したと判定する。そしてファイル指定部24は、ファイルパスリスト28内に未選択のファイルパスがあるかを判定する(ステップS18)。
もし、未選択のファイルパスがあるならば(ステップS18のYes)、ファイル指定部24はステップS13に戻り、未選択の1つのファイルパスを選択する。そしてファイル指定部24は、前述したように、選択されたファイルパスに対応付けられているLBA範囲を、ファイルアクセス制御部251に問い合わせる。するとファイルアクセス制御部251は、選択されたファイルパスに対応付けられているLBA範囲を全て特定する(ステップS14)。そして、特定された全てのLBA範囲について、ステップS15乃至S17が実行される。即ち選択されたファイルパスで示されるファイルがアクセスされる。
このようにして、ファイルパスリスト28内の全てのファイルパスで示されるファイルへのアクセスが完了し、これによりファイルパスリスト28内に未選択のファイルパスがなくなったものとする(ステップS18のNo)。この場合、ブロックアクセス処理(ステップS4)は終了する。
すると階層配置指示部22は、領域配置モードの終了を指示する領域配置モード終了命令をストレージコントローラ12に発行する(ステップS5)。これにより、ホスト機器20における第1の階層配置処理は終了する。階層配置指示部22によって発行された領域配置モード終了命令は、ストレージコントローラ12のモード切替部125によって受信される。
さてストレージコントローラ12では、上述の第1の時間が経過しても次のブロックアクセスが行われなかった場合(ステップS35のNo)、モード切替部125に制御が渡される。また、階層移動フラグがオンされた場合にも(ステップS36)、前述のようにモード切替部125に制御が渡される。このような場合、モード切替部125は、領域配置モード終了命令を受信しているかを判定する(ステップS37)。
もし、モード切替部125が領域配置モード終了命令を受信していたならば(ステップS37のYes)、当該モード切替部125はデータ配置制御部127に制御を渡す。するとデータ配置制御部127は、第2の動作を実行する。即ちデータ配置制御部127は、エクステント管理テーブル128を参照して、現在オン状態にある階層移動フラグに対応する全てのエクステントを特定し、当該特定された全てのエクステント(より詳細には、特定された全てのエクステント内のデータ)を指定の階層の物理ストレージの記憶領域に配置(移動)する(ステップS38)。
ステップS38においてデータ配置制御部127は、例えば、指定階層の物理ストレージにエクステントが配置される都度、エクステント管理テーブル128の対応するエントリの物理ストレージIDフィールド及び物理ストレージアドレスフィールドの内容を更新する。ここで、指定階層の物理ストレージが高速ストレージ装置111であり当該高速ストレージ装置111の第1の物理ストレージアドレス範囲に第1のエクステントが配置されたものとする。この場合、データ配置制御部127は、第1のエクステントに対応するエクステント管理テーブル128のエントリの物理ストレージIDフィールド及び物理ストレージアドレスフィールドの内容を、高速ストレージ装置111のID及び第1の物理ストレージアドレス範囲に更新する。またデータ配置制御部127は、上述の対応エントリ内の階層移動フラグをオフする。
ところでデータ配置制御部127は、第1のエクステントの配置先を、高速ストレージ装置111(指定階層の物理ストレージ)内の空きエクステントの集合から選択する。もし、第1のエクステントの配置に用いることが可能な空きエクステントが高速ストレージ装置111内に存在しないならば、データ配置制御部127は第1のエクステントを配置する前に、高速ストレージ装置111から低速ストレージ装置112にデータが移動される(追い出される)べき第2のエクステントを選択する。そしてデータ配置制御部127は、第2のエクステントのデータを低速ストレージ装置112に移動することにより、第1のエクステントの配置に用いることが可能な空きエクステントを確保する。第2のエクステントは、例えば、高速ストレージ装置111に配置されている全てのエクステントのうち、アクセス頻度が最も低いエクステントである。
一方、未選択のLBA範囲がないならば(ステップS17のNo)、ファイル指定部24はステップS18に進む。ステップS13で選択されたファイルパスが、例えば/var/log/message.logである場合、図4に示されるファイル−論理アドレス管理テーブル252から明らかなように、1つのLBA範囲000−015のみが特定される。この場合、LBA範囲000−015内のブロックがアクセスされると(ステップS16)、未選択のLBA範囲がないことから(ステップS17のNo)、ファイル指定部24はステップS18に進む。
特定された全てのエクステントが指定階層の物理ストレージに配置されたならば(ステップS38)、その旨をモード切替部125に通知する。するとモード切替部125は、領域配置モードを終了させて、階層化ストレージシステム10の動作モードを通常モードに戻す(ステップS39)。これにより、階層化ストレージシステム10(ストレージコントローラ12)における第2の階層配置処理は終了する。
2b)アプリケーション連携の場合のブロックアクセス処理
次に、開始時刻が到来した階層配置ルールのルール種別がアプリケーション連携であるとステップS11で判定された場合のブロックアクセス処理について説明する。この場合、階層配置指示部22は、開始時刻が到来した階層配置ルールのルール内容の示す連携プログラムを起動する(ステップS19)。即ち階層配置指示部22は、連携プログラムを実行する。すると連携プログラムは、当該連携プログラムと連携するように予め定められた特定のアプリケーション、例えばアプリケーション29を起動する(ステップS20)。
階層配置指示部22は、連携プログラムによってアプリケーション29が起動されると(ステップS20)、当該連携プログラムの終了を待つ(ステップS21)。一方、アプリケーション29は、当該アプリケーション29の動作状態において、適宜階層化ストレージシステム10(より詳細には、階層化ストレージシステム10内の論理ディスク110)へのブロックアクセス(リードアクセスまたはライトアクセス)を要求する。ファイルアクセス制御部251は、アプリケーション29からブロックアクセスが要求される都度(ステップS22のYes)、要求されたLBA範囲内のブロック(ブロックの列)に、ストレージコントローラ12のデータ入出力制御部126を介してアクセスする(ステップS23)。
このとき、階層化ストレージシステム10は、領域配置モードに設定されている(ステップS31乃至S33)。領域配置モードにおいてファイルアクセス制御部251によってブロックアクセスが行われた場合(ステップS35のYes)、前述したようにデータ配置制御部127は、アクセスされたLBA範囲内のブロックを含むエクステントを特定し、当該特定されたエクステントに対応付けられた階層移動フラグをオンする(ステップS36)。
やがて、連携プログラムによってアプリケーション29が終了させられ、しかる後に当該連携プログラムの実行が終了したものとする(ステップS21のYes)。この場合、ブロックアクセス処理(ステップS4)は終了する。以降の動作は、ルール種別がファイル指定の場合と同様である。即ち、階層配置指示部22は、領域配置モード終了命令をストレージコントローラ12に発行する(ステップS5)。この場合(ステップS37のYes)、ストレージコントローラ12のデータ配置制御部127は、現在オン状態にある階層移動フラグに対応する全てのエクステントを特定し、当該特定された全てのエクステントを指定の階層の物理ストレージの記憶領域に配置する(ステップS38)。
なお、現在適用されている階層配置ルールの打切時刻が、ブロックアクセス処理(ステップS4)の途中で到来した場合、階層配置指示部22は当該ブロックアクセス処理(ステップS4)を終了する。より詳細には、現在実行中のブロックアクセスの終了を待って、階層配置指示部22はブロックアクセス処理(ステップS4)を終了する。そして、階層配置指示部22は領域配置モード終了命令をストレージコントローラ12に発行する(ステップS5)。
上述のように本実施形態においてホスト機器20は、指定のファイルを、階層化ストレージシステム10内の指定の階層の記憶領域に配置するために、モード切替部125によって階層化ストレージシステム10を領域配置モードに設定させる(ステップS2)。この状態においてホスト機器20は、通常のファイルアクセスの場合と同様に、ファイルシステム25に基づいて指定のファイルを構成するブロックを特定する(ステップS13及びS14)。そしてホスト機器20は、指定のファイルの配置に必要な、階層化ストレージシステム10内の当該特定されたブロックとエクステントとの対応関係を認識することなく、当該特定されたブロックにアクセスする(ステップS15及びS16)。
一方、階層化ストレージシステム10のストレージコントローラ12は、ブロックとエクステントとの対応関係をエクステント管理テーブル128を用いて管理する。そしてストレージコントローラ12は、領域配置モードにおけるホスト機器20からのブロックアクセスに応じて、アクセスされたブロックを含むエクステントを特定し、特定されたエクステントに対応付けられた階層移動フラグをオン状態(つまり、階層移動指示状態)に設定する(ステップS35及びS36)。
上述の指定ファイル(より詳細には、ファイルパス)は、階層配置ルールに記述されている。ホスト機器20は、開始時刻が到来した階層配置ルールに基づいて指定ファイルを特定し、当該指定ファイルを構成するブロックにアクセスする。ここで、階層配置ルールに記述されるファイルが、当該階層配置ルールの示す開始時刻が到来した場合にホスト機器20によって利用されることが予定されているファイルであっても良い。この場合、階層配置ルールに記述されたファイルをホスト機器20が利用すると同時に、階層化ブロックストレージ装置11における指定階層の記憶領域に配置することができる。なお、階層配置ルールに基づくブロックアクセスが、一種のダミーアクセスであっても良い(階層配置ルールの種別がファイル指定の場合)。より詳細には、階層配置ルールに基づくブロックアクセスが、アクセスされるブロックを含むエクステント(つまり、指定階層に配置されるべきエクステント)を指定して、当該エクステントに対応付けられた階層移動フラグをオン状態に設定するためのトリガとして用いられても良い。この場合、アクセスされたブロックのデータがホスト機器20で利用されずに捨てられても構わない。
ホスト機器20は、全ての指定ファイルをそれぞれ構成するブロックにアクセスすると、領域配置モード終了命令をストレージコントローラ12に発行する。するとストレージコントローラ12は、オン状態にある階層移動フラグに対応付けられたエクステントを全て階層化ブロックストレージ装置11内の指定階層の記憶領域に配置する(ステップS37及びS38)。このように本実施形態によれば、ストレージコントローラ12は、指定の階層に配置されるべきファイル(指定ファイル)を、特別なファイルシステムを必要とすることなく、当該指定の階層の記憶領域に配置することができる。ここで、ホスト機器20は、ブロックとエクステントとの対応関係を扱う必要がなく、ストレージコントローラ12はホスト機器20内のファイルシステム25にアクセスする必要がない。
また本実施形態によれば、階層配置ルールのルール種別がアプリケーション連携の場合、連携プログラムによって起動されたアプリケーション29(つまり、特定のアプリケーション)から要求されたブロックへのアクセスに応じて、ストレージコントローラ12は当該アクセスされたブロックを含むエクステントに対応付けられた階層移動フラグをオン状態に設定する(ステップS35及びS36)。したがって本実施形態によれば、アプリケーション29からのブロックアクセス要求に応じて、要求されたブロックを含むエクステントを、指定階層の記憶領域に配置することができる。
さて本実施形態において、階層化ストレージシステム10が領域配置モードに設定されている状態で、ホスト機器20上で動作する通常のアプリケーションからファイルアクセス制御部251に対してブロックアクセスが要求されたものとする。この要求に応じてファイルアクセス制御部251は、要求されたブロックにデータ入出力制御部126を介してアクセスする。この場合、アクセスされたブロックを含むエクステントに対応する階層移動フラグがオンされる。つまり通常のアプリケーションからアクセスされたブロックを含むエクステントも、現在の領域配置モードで適用されている階層配置ルールで指定される階層の記憶領域に配置される。そこで、領域配置モードの期間、通常のアプリケーションからのアクセス要求が待たされるようにしても構わない。
<第1の変形例>
次に、前記実施形態の第1の変形例について説明する。まず前記実施形態において、指定ファイルのサイズが小さく、当該指定ファイルを構成するブロックが、対応するエクステントのごく一部だけを占めているものとする。このような場合、指定階層の記憶領域に配置(つまり移動)されるエクステント内の殆どのブロックは、指定ファイルとは無関係である。つまり、前記実施形態では、指定ファイルとは無関係のブロックのデータも指定階層の記憶領域に移動される。したがって、指定階層が上位階層である場合、当該上位階層(高速ストレージ装置111)の記憶領域の利用効率が低下する。
そこで、第1の変形例は、上位階層の記憶領域の利用効率の低下を防止するために、指定ファイルを構成するブロック(ブロックの集合)を、同一エクステントに予め配置するための処理(以下、ファイル配置処理と称する)を適用する。図10は、このファイル配置処理の概要を説明するための図である。図10において、ブロックBa,Bb,Bc,Bd.Be,Bf,Bg及びBhは、指定ファイルを構成するものとする。図10の例では、ブロックBa及びBbはエクステントEXTa1に、ブロックBc及びBdはエクステントEXTa2に、それぞれ含まれている。またブロックBeはエクステントEXTa3に、ブロックBf及びBgはエクステントEXTa4に、それぞれ含まれている。そしてブロックBhはエクステントEXTa5に含まれている。なお図10では、作図の都合で、1エクステントが8個のブロックから構成される場合(つまり、N=8)を想定している。
前記実施形態では、エクステントEXTa1乃至EXTa5が、指定階層の記憶領域に配置される。これに対して第1の変形例では、まずブロックBa,Bb,Bc,Bd.Be,Bf,Bg及びBhが、図10に示されるようにエクステントEXTbに配置される。そして、このエクステントEXTbが指定階層の記憶領域に配置される。したがって図10の例では、指定階層の記憶領域に配置されるエクステントの数が、前記実施形態と比較して、5から1に低減される。
上述のファイル配置処理は、例えば図8に示されるフローチャートのステップS12及びS13の間で実行される。以下、このファイル配置処理の手順について、図11を参照して説明する。図11は、ホスト機器20側で実行されるファイル配置処理の典型的な手順を説明するためのフローチャートである。
今、ファイル抽出部23が、階層配置ルールによって示されるファイルパスを、ファイル−論理アドレス管理テーブル252から全て抽出したものとする(ステップS12)。この場合、階層配置指示部22は、抽出されたファイルパスで示されるファイルの集合へのアクセスを指示するアクセス命令をファイル指定部24に発行する前に、ファイル配置命令をファイル配置部26に発行する。このファイル配置命令は、ファイルを構成するブロックを、できる限り同一エクステントに配置することを指示する。
ファイル配置部26は、階層配置指示部22からのファイル配置命令に従い、ファイル配置処理を次のように実行する。まずファイル配置部26は、ファイルパスリスト28から1つの未選択のファイルパスを選択する(ステップS41)。そしてファイル配置部26は、選択されたファイルパスで示されるファイル(つまり、指定ファイル)を構成するブロック(ブロックの集合)を、ストレージコントローラ12のデータ入出力制御部126を介して、論理ディスク110内のLBAが連続する領域に複製する(ステップS42)。
ステップS42について、詳細に説明する。まずファイル配置部26は、指定ファイルを構成するブロックを、論理ディスク110内のLBAが連続する領域に複製することを、ファイルシステム25のファイルアクセス制御部251を介してストレージコントローラ12のデータ入出力制御部126に要求する。するとデータ入出力制御部126は、要求されたブロックを、論理ディスク110内の空きエクステントに複製する。最初のステップS42において、この複製に用いられる領域は、空きエクステントの先頭から始まる領域である。この複製により、指定ファイルを構成するブロック(ブロックの集合)が同一エクステントに配置される可能性が高くなる。
なお、エクステント管理テーブル128によって示されるエクステントのうちのいずれが空きエクステントであるかを管理する手法は従来からよく知られている。このような手法の1つに、空きエクステントのIDの集合が保持される空きエクステントリストを用いる手法がある。また、エクステント管理テーブル128の各エントリに、対応するエクステントが空きエクステントであるかを示すフラグフィールドを用意しても良い。
データ入出力制御部126は要求されたブロックを、論理ディスク110内の空きエクステントに複製すると、当該ブロックが複製された領域のLBA範囲をファイル配置部26に通知する。するとファイル配置部26は、仮のファイルパスを複製先のファイルパスとして用い、当該複製先のファイルパスと通知されたLBA範囲との対を含むエントリを、ファイルアクセス制御部251を介して、ファイル−論理アドレス管理テーブル252に追加する。
次にファイル配置部26は、複製先(仮)のファイルパスを、ファイルアクセス制御部251を介して、複製元と同じファイルパス名(ファイル名)にリネーム(上書き)する(ステップS43)。このリネームに際し、ファイル配置部26は、複製元のファイルパスを含むエントリを、ファイルアクセス制御部251を介して、ファイル−論理アドレス管理テーブル252から削除する。ファイル配置部26は、上述の動作(ステップS41乃至S43)を、ファイルパスリスト28内に未選択のファイルパスがなくなるまで繰り返す(ステップS44)。
ここで、ファイルパスリスト28内のファイルパスで示されるファイルの集合が第1及び第2のファイルを含むものとする。また、第1のファイルを構成する第1のブロック(第1のブロックの集合)が、最初のステップS42において、第1のエクステントの先頭から始まる第1の領域に複製されたものとする。更に、この状態で、第1のエクステントに空きがあり、且つ第1のエクステントの残りの領域が、第2のファイルを構成する第2のブロック(第2のブロックの集合)のサイズよりも大きいものとする。このような場合、2回目のステップS42において、第2のブロックの集合が、第1のエクステントの第1の領域に後続する第2の領域に複製されると良い。一方、第1のエクステントの残りの領域が第2のブロックの集合のサイズよりも小さい場合、第2のブロックの集合の一部が、第1のエクステントの前記残りの領域に複製され、第2のブロックの集合の例えば残りが、第1のエクステントとは別の第2のエクステントの先頭から始まる領域に複製されると良い。
ファイル配置部26は、ステップS41乃至S43を、ファイルパスリスト28内に未選択のファイルパスがなくなるまで繰り返すと(ステップS44のNo)、ファイル配置処理の完了を階層配置指示部22に通知する。すると階層配置指示部22は、前記実施形態において階層配置ルールによって示されるファイルパスが全て抽出された場合(ステップS12)と同様に、抽出されたファイルパスで示されるファイルの集合へのアクセスを指示するアクセス命令を、ファイル指定部24に発行する。これにより前記実施形態と同様に、ステップS13から始まる処理が実行される。
第1の変形例によれば、指定階層の記憶領域に配置されるべきファイルに含まれるブロックの集合が、可能な限り同一のエクステントに配置される。これにより、指定階層が上位階層である場合に、上位階層(つまり高速ストレージ装置111)に配置されるエクステントに、指定ファイルに含まれないブロックが紛れ込む確率が少なくなる。よって第1の変形例によれば、高速ストレージ装置111の記憶領域の利用効率を高めることができる。
<第2の変形例>
次に、前記実施形態の第2の変形例について説明する。まず前記実施形態において、指定ファイルのサイズが大きいものとする。このような場合、指定ファイルを構成する全てのブロックのデータをリードするのに多大な時間を要し、階層化ストレージシステム10のスループットが低下する。一方、階層配置ルールに基づくブロックアクセスがダミーアクセスであるならば(階層配置ルールの種別がファイル指定の場合)、指定ファイルを構成するブロックを必ずしも全てリードする必要はない。
そこで、第2の変形例は、指定ファイルを構成するブロック(ブロックの集合)のうちの一部のブロックのみをリードするための処理(以下、部分リード処理)を適用する。つまり第2の変形例では、階層配置ルールに基づくブロックアクセスに、部分リード処理が適用される。この部分リード処理はダミーアクセス処理であり、アクセスされたブロックを含むエクステントに対応付けられた階層移動フラグをオン状態に設定するためのトリガとして用いられる。
ここで、指定ファイルが複数のセグメントから構成され、当該複数のセグメントがそれぞれ複数のエクステントにまたがっているものとする。この場合、部分リード処理では、セグメント毎に、対応するセグメントが存在する複数のエクステントからそれぞれ1つずつブロックが選択される。そして1つのブロックが選択される毎に、当該選択されたブロック(ブロックのデータ)がリードされる。第2の変形例では、この選択の効率化のために、セグメントは、当該セグメントの先頭からエクステントのサイズN(ここでは、エクステントを構成するブロックの数)で小セグメントに分割される。この場合、最終の小セグメントのサイズ(ブロックの数)は、N以下となる。そして小セグメント毎に、対応する小セグメント内の先頭ブロックが選択される。更に、セグメント内の最終ブロックを含む最終の小セグメントの場合、当該最終の小セグメント内の最終ブロックも選択される。なお、セグメントのサイズ(ブロックの数)がN以下である場合、当該セグメント内の先頭ブロック及び最終ブロックが選択されれば良い。
図12は、第2の変形例における部分リード処理の概要を説明するための図である。図12において、エクステントEXTc1乃至EXTc8は、論理ディスク110において連続するものとする。また、セグメントSEGa及びSEGbは、指定ファイルを構成するものとする。セグメントSEGaは、ブロックBa1乃至Ba23から構成され、エクステントEXTc1乃至EXTc4にまたがって存在する。セグメントSEGbは、ブロックBb1乃至Bb13から構成され、エクステントEXTc5及びEXTc6にまたがって存在する。なお図12では、作図の都合で、1エクステントが8個のブロックから構成される場合(つまり、N=8)を想定している。
図12の例では、セグメントSEGa内の先頭(1番目)のブロックBa1、9番目のブロックBa9、17番目のブロックBa17、及び最終(23番目)のブロックBa23が、リードされるべきブロックとして選択される。同様に、セグメントSEGb内の先頭(1番目)のブロックBb1、9番目のブロックBb9、及び最終(13番目)のブロックBb13が、リードされるべきブロックとして選択される。これらのセグメントSEGa及びSEGbから選択されるブロックは、図12において黒四角で示されており、セグメントSEGa及びSEGbから選択されないブロックは、図12において白四角で示されている。
前記実施形態では、セグメントSEGa及びSEGbを構成する合計36個のブロック(即ち、ブロックBa1乃至Ba23及びBb1乃至Bb13)がリードされる。これに対して、第2の変形例では、セグメントSEGa及びSEGbから選択された7個のブロック(即ち、ブロックBa1,Ba9,Ba17,Ba23,Bb1,Bb9及びBb13)のみがリードされる。
そして、ブロックBa1,Ba9,Ba17,Ba23及びBb1のリードに応じて、エクステントEXTc1,EXTc2,EXTc3,EXTc4及びEXTc5にそれぞれ対応付けられた階層移動フラグがオンされる。また、ブロックBb9及びBb13のリードに応じて、エクステントEXTc6に対応付けられた階層移動フラグがオンされる。その後、エクステントEXTc1乃至EXTc6は、指定階層に配置される。
このように、第2の変形例は、ファイル内の一部のブロックをリードするだけで、ファイルが存在する全てのエクステントにそれぞれ対応付けられた階層移動フラグをオンして、当該全てのエクステントを指定階層に配置することができる。つまり第2の変形例によれば、最小限のブロックリードで、ファイルが存在する全てのエクステントにアクセスすることができる。
上述の部分リード処理は、例えば図8に示されるフローチャートのステップS13乃至S18に代えて実行される。以下、この部分リード処理の手順について、図13を参照して説明する。図13は、ホスト機器20側で実行される部分リード処理の典型的な手順を説明するためのフローチャートである。
今、ファイル抽出部23が、階層配置ルールによって示されるファイルパスを、ファイル−論理アドレス管理テーブル252から全て抽出したものとする(ステップS12)。この場合、階層配置指示部22は、抽出されたファイルパスで示されるファイルの集合へのアクセスを指示するアクセス命令を、ファイル指定部24に発行する
するとファイル指定部24は、ファイルパスリスト28から1つの未選択のファイルパスを選択する(ステップS51)。そしてファイル指定部24は、選択されたファイルパスに対応付けられているLBA(論理ブロックアドレス)範囲を、ファイルアクセス制御部251に問い合わせる。
この問い合わせに応じて、ファイルアクセス制御部251は、選択されたファイルパスに対応付けられているLBA範囲を全て特定する(ステップS52)。ファイルアクセス制御部251は、特定されたLBA範囲を全てファイル指定部24に通知する。ファイル指定部24は、通知されたLBA範囲から1つのLBA範囲を選択する(ステップS53)。上述のステップS51乃至S53は、図8に示されるステップ13乃至S15と同様である。
次にファイル指定部24は、ポインタPを初期値1に設定する(ステップS54)。ポインタPは、選択されたLBA範囲(つまりセグメント)におけるアクセスされるべきブロックの相対位置を指す。ポインタPが1の場合、当該ポインタは、選択されたLBA範囲内の先頭(1番目)のブロックを指す。また、ステップS54においてファイル指定部24は、パラメータN及びMとして、それぞれエクステントのサイズ(より詳細には、エクステントを構成するブロックの数)及び選択されたLBA範囲のサイズ(より詳細には、選択されたLBA範囲内のブロックの数)を設定する。図12のセグメントSEGaの例では、N=8、M=23である。
次にファイル指定部24は、選択されたLBA範囲の先頭ブロックのLBA(以下、LBA_1と称する)とポインタPとに基づいて、選択されたLBA範囲のP番目のブロックのLBA(以下、LBA_Pと称する)を、次式に従って算出する。
LBA_P=LBA_1+(P−1)
次にファイル指定部24は、選択されたLBA範囲内のP番目のブロックへのアクセスをファイルアクセス制御部251に要求する。即ちファイル指定部24は、LBAがLBA_Pであるブロックへのアクセスをファイルアクセス制御部251に要求する。するとファイルアクセス制御部251は、論理ディスク110に存在し、且つ選択されたLBA範囲内のP番目のブロックに、データ入出力制御部126を介してアクセスする(ステップS55)。即ちファイルアクセス制御部251は、論理ディスク110内のLBA_Pに位置するブロックに、ストレージコントローラ12のデータ入出力制御部126を介してアクセスする。ストレージコントローラ12のデータ配置制御部127は、このブロックアクセスに応じて(ステップS35のYes)、アクセスされたブロックを含むエクステントに対応する階層移動フラグをオンする(ステップS36)。
一方、ファイル指定部24は、選択されたLBA範囲内のP番目のブロックへのアクセス(ステップS55)が完了すると、ポインタPをNだけインクリメントする(ステップS56)。インクリメントされたポインタPは、インクリメントされる前のポインタPの指すブロックよりもLBAが増加する方向に、Nブロックだけ先のブロックを指す。例えば、インクリメントされる前のポインタPが、図12に示されるブロックBa1を指している場合、インクリメントされたポインタPはブロックBa9を指す。次にファイル指定部24は、インクリメントされたポインタPの値がM以上であるかを判定する(ステップS57)。
もし、インクリメントされたポインタPの値がM未満であるならば(ステップS57のNo)、ファイル指定部24は、選択されたLBA範囲の最終ブロックにポインタPが到達していないと判定する。この場合、ファイル指定部24は、インクリメントされたポインタPの指すブロックへのアクセスをファイルアクセス制御部251に要求する。するとファイルアクセス制御部251は、論理ディスク110に存在し、且つ選択されたLBA範囲内のP番目のブロックに、データ入出力制御部126を介してアクセスする(ステップS55)。
これに対し、インクリメントされたポインタPの値がM以上であるならば(ステップS57のYes)、ファイル指定部24は、ポインタPが、選択されたLBA範囲の最終ブロックに到達したか、或いは当該最終ブロックを通過したものと判定する。この場合、ファイル指定部24は、選択されたLBA範囲の最終ブロックへのアクセスをファイルアクセス制御部251に要求する。するとファイルアクセス制御部251は、論理ディスク110に存在し、且つ選択されたLBA範囲内の最終ブロックに、データ入出力制御部126を介してアクセスする(ステップS58)。
例えば、インクリメントされる前のポインタPが、図12に示されるブロックBa17を指している場合(P=17)、インクリメントされたポインタPの値(P=25)は、M=23を超える(ステップS57のYes)。この場合、セグメントSEGa内の最終ブロックBa23がアクセスされる(ステップS58)。そして、ブロックBa23を含むエクステントEXTc4に対応する階層移動フラグがオンされる(ステップS36)
選択されたLBA範囲内の最終ブロックへのアクセス(ステップS58)が完了すると、ファイル指定部24は、特定されたLBA範囲の中に未選択のLBA範囲があるかを判定する(ステップS59)。もし、未選択のLBA範囲があるならば(ステップS59のYes)、ファイル指定部24はステップS53に戻って、未選択の1つのLBA範囲を選択する。これに対し、未選択のLBA範囲がないならば(ステップS59のNo)、ファイル指定部24は、ファイルパスリスト28内に未選択のファイルパスがあるかを判定する(ステップS60)。
もし、未選択のファイルパスがあるならば(ステップS60のYes)、ファイル指定部24はステップS51に戻る。これに対し、未選択のファイルパスがないならば(ステップS60のNo)、ブロックアクセス処理(ステップS4)は終了する。
このように第2の変形例では、指定ファイルを構成するブロックのうちの一部のブロックのみがリードされ、リードされたブロックを含むエクステントに対応するそれぞれの階層移動フラグがオンされる。つまり第2の変形例では、指定階層に配置されるべきエクステントを指定するためのブロックアクセスに部分リード処理が適用される。したがって第2の変形例によれば、指定階層に配置されるべきエクステントを指定するためのブロックアクセスに要する時間を短縮でき、且つ当該ブロックアクセスによって階層化ストレージシステム10のスループットが低下するのを防止できる。
以上説明した少なくとも1つの実施形態によれば、階層化ブロックストレージ装置側にファイルシステムを必要とすることなく、指定のファイルを指定の階層に配置することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。

Claims (11)

  1. 階層化ブロックストレージシステムと、前記階層化ブロックストレージシステムにアクセスするホスト機器とを備えるコンピュータシステムにおいて、
    前記階層化ブロックストレージシステムは、階層化ブロックストレージ装置と、ストレージコントローラとを備え、
    前記階層化ブロックストレージ装置は、アクセス応答性能の異なる複数種類のストレージ装置であって、前記アクセス応答性能にそれぞれ対応した階層に割り当てられた複数種類のストレージ装置を備え、
    前記複数種類のストレージ装置の少なくとも2種類のストレージ装置のそれぞれ少なくとも一部の記憶領域は、第1のサイズの複数のブロックを備えた論理ディスクであって、前記ホスト機器によって利用されるファイルを格納するのに用いられる論理ディスクに割り当てられ、
    前記ストレージコントローラは、モード切替部と、データ入出力制御部と、データ配置制御部とを備え、
    前記ホスト機器は、ファイルシステムと、ルール入力部と、階層配置指示部と、ファイル指定部とを備え、
    前記モード切替部は、前記ホスト機器からの要求に応じて、前記階層化ブロックストレージシステムの動作モードを第1のモードから第2のモードに切り替え、
    前記データ入出力制御部は、前記ホスト機器からのアクセス要求に応じて前記論理ディスクにアクセスし、
    前記ファイルシステムは、前記論理ディスクに格納されるファイル毎に、対応するファイルを示すファイルパスと当該対応するファイルが格納されている論理アドレス範囲との対応を管理し、前記ファイル指定部から、ファイルを構成するブロック列が格納された論理アドレス範囲へのアクセスが要求された場合、前記要求された論理アドレス範囲内のブロック列に前記データ入出力制御部を介してアクセスし、
    前記ルール入力部は、外部からの要求に基づいて、ファイルを指定するためのファイルパス情報と、当該ファイルが配置されるべき階層を指定するため階層情報と、開始時刻情報とを含む階層配置ルールを入力し、
    前記階層配置指示部は、前記階層配置ルール内の前記開始時刻情報によって示される開始時刻の到来に応じて、前記第2のモードへの切り替えを前記ストレージコントローラに要求し、
    前記ファイル指定部は、前記階層配置ルール内の前記ファイルパス情報によって示される第1のファイルを構成する第1のブロック列が格納された論理アドレス範囲へのアクセスを前記ファイルシステムに要求し、
    前記データ配置制御部は、前記第2のモードにおいてアクセスされた論理アドレス範囲内のブロック列を含むエクステントであって、論理アドレスが連続する第2の数のブロックから構成されるエクステント内のデータを、前記階層配置ルールによって指定される階層の記憶領域に移動する
    コンピュータシステム。
  2. 前記第1のファイルへのアクセスがリードアクセスである請求項1記載のコンピュータシステム。
  3. 前記ファイル指定部は、前記第1のファイルを構成する第1のブロック列から一部のブロックを選択し、当該選択されたブロックが格納された論理アドレス範囲へのリードアクセスを、前記ファイルシステムを介して前記データ入出力制御部に要求する請求項2記載のコンピュータシステム。
  4. 前記ファイル指定部は、前記第1のファイルを構成する前記第1のブロック列から、前記第2の数のブロック毎に先頭のブロックを選択し、且つ前記第1のブロック列の最終のブロックを選択する請求項3記載のコンピュータシステム。
  5. 前記第1のファイルが断片化を起こしているために、当該第1のファイルが複数のセグメントから構成され、且つ前記複数のセグメントの各々が、論理アドレスが連続するブロック列から構成されている場合、前記ファイル指定部は、前記複数のセグメントのそれぞれから、前記第2の数のブロック毎に先頭のブロックを選択し、且つ対応するセグメントの最終のブロックを選択する請求項4記載のコンピュータシステム。
  6. 前記ホスト機器は、前記第1のファイルを構成する前記第1のブロック列を、前記論理ディスク内の論理アドレスが連続する記憶領域に前記ファイルシステムによって複製させるファイル配置部を更に具備し、
    前記ファイル指定部は、前記複製の後に、前記複製されたファイルを構成する前記第1のブロック列が格納された論理アドレス範囲へのリードアクセスを前記ファイルシステムを介して前記データ入出力制御部に要求する
    請求項2記載のコンピュータシステム。
  7. 前記階層配置ルールは、当該階層配置ルールの種別が第1の種別であるか、或いは第2の種別であるかを示すルール種別を含み、
    前記階層配置ルールの種別が前記第1の種別である場合、前記階層配置ルールは前記ファイルパス情報を含み、前記階層配置ルールの種別が前記第2の種別である場合、前記階層配置ルールは、特定のアプリケーションを起動する第1のプログラムを指定するプログラム指定情報を含み、
    前記階層配置指示部は、前記階層配置ルールの種別が前記第2の種別である場合、前記プログラム指定情報によって指定される第1のプログラムを起動し、
    前記ファイルシステムは、前記第1のプログラムによって前記特定のアプリケーションが起動されて、前記特定のアプリケーションから前記論理ディスクへのアクセスが要求された場合、要求された論理アドレス範囲内のブロック列に前記データ入出力制御部を介してアクセスする
    請求項1記載のコンピュータシステム。
  8. 前記ストレージコントローラは、前記第2の数のブロックから構成されるそれぞれのエクステントに対応付けられたエントリを含むエクステント管理テーブルを更に備え、
    前記エントリの各々にはエクステント情報が保持され、
    前記エクステント情報は、対応するエクステントの論理アドレス範囲及び物理アドレス範囲を示すアドレス情報と、当該対応するエクステントが移動されるべき階層を指定する階層情報と、当該対応するエクステントが指定の階層に移動されるべきかを示す階層移動フラグとを含み、
    前記データ配置制御部は、前記第2のモードにおいて、前記データ入出力制御部が前記ホスト機器からのアクセス要求に応じて前記論理ディスクにアクセスした場合、前記アクセスされた論理アドレス範囲内のブロック列を含むエクステントに対応付けられた、前記エクステント管理テーブルのエントリ内の前記階層移動フラグを、当該エクステントが指定の階層に移動されるべきであることを示す第1の状態に設定し、
    前記データ配置制御部は、前記階層配置指示部によって前記第2のモードから前記第1のモードへの切り替えが要求された場合、前記エクステント管理テーブルを参照し、前記第1の状態に設定されている階層移動フラグを含むエントリに対応するエクステントを、指定される階層に移動されるべきエクステントと特定する
    請求項1記載のコンピュータシステム
  9. 前記ホスト機器は、ファイル抽出部を更に備え、
    前記階層配置指示部は、前記階層配置ルールに基づいてファイルパスの抽出を前記ファイル抽出部に要求し、
    前記ファイル抽出部は、前記ファイルパス抽出要求に応じて、前記階層配置ルール内の前記ファイルパス情報の示すファイルパスを前記ファイルシステムから抽出し、
    前記第1のファイルは、前記抽出されたファイルパスによって示される
    請求項1記載のコンピュータシステム。
  10. アクセス応答性能の異なる複数種類のストレージ装置であって、前記アクセス応答性能にそれぞれ対応した階層に割り当てられた複数種類のストレージ装置を備え、前記複数種類のストレージ装置の少なくとも2種類のストレージ装置のそれぞれ少なくとも一部の記憶領域が、第1のサイズの複数のブロックを備えた論理ディスクであって、ホスト機器によって利用されるファイルを格納するのに用いられる論理ディスクに割り当てられる階層化ブロックストレージ装置を具備する階層化ストレージシステムにおいて、前記ホスト機器からのアクセス要求を処理するストレージコントローラにおいて、
    前記ホスト機器への外部からの要求に基づいて、ファイルを指定するためのファイルパス情報と、当該ファイルが配置されるべき階層を指定するため階層情報と、開始時刻情報とを含む階層配置ルールが前記ホスト機器に入力され、前記階層配置ルール内の前記開始時刻情報によって示される開始時刻の到来に応じて、前記ホスト機器から前記ストレージコントローラに第1のモードから第2のモードへの切り替えが要求された場合、前記階層化ブロックストレージシステムの動作モードを前記第1のモードから前記第2のモードに切り替えるモード切替部と、
    前記階層配置ルール内の前記ファイルパス情報によって示される第1のファイルを構成する第1のブロック列が格納された論理アドレス範囲へのアクセスが、前記ホスト機器から前記ストレージコントローラに要求された場合、前記論理ディスクの前記要求された論理アドレス範囲内の前記第1のブロック列にアクセスするデータ入出力制御部と、
    前記第2のモードにおいてアクセスされた論理アドレス範囲内のブロック列を含むエクステントであって、論理アドレスが連続する第2の数のブロックから構成されるエクステント内のデータを、前記階層配置ルールによって指定される階層の記憶領域に移動するデータ配置制御部と
    を具備するストレージコントローラ。
  11. アクセス応答性能の異なる複数種類のストレージ装置であって、前記アクセス応答性能にそれぞれ対応した階層に割り当てられた複数種類のストレージ装置を備え、前記複数種類のストレージ装置の少なくとも2種類のストレージ装置のそれぞれ少なくとも一部の記憶領域が、第1のサイズの複数のブロックを備えた論理ディスクであって、ホスト機器によって利用されるファイルを格納するのに用いられる論理ディスクに割り当てられる階層化ブロックストレージ装置を具備する階層化ストレージシステムにおいて、前記ホスト機器からのアクセス要求を処理するストレージコントローラに、
    前記ホスト機器への外部からの要求に基づいて、ファイルを指定するためのファイルパス情報と、当該ファイルが配置されるべき階層を指定するため階層情報と、開始時刻情報とを含む階層配置ルールが前記ホスト機器に入力され、前記階層配置ルール内の前記開始時刻情報によって示される開始時刻の到来に応じて、前記ホスト機器から前記ストレージコントローラに第1のモードから第2のモードへの切り替えが要求された場合、前記階層化ブロックストレージシステムの動作モードを前記第1のモードから前記第2のモードに切り替えることと、
    前記階層配置ルール内の前記ファイルパス情報によって示される第1のファイルを構成する第1のブロック列が格納された論理アドレス範囲へのアクセスが、前記ホスト機器から前記ストレージコントローラに要求された場合、前記論理ディスクの前記要求された論理アドレス範囲内の前記第1のブロック列にアクセスすることと、
    前記第2のモードにおいてアクセスされた論理アドレス範囲内のブロック列を含むエクステントであって、論理アドレスが連続する第2の数のブロックから構成されるエクステント内のデータを、前記階層配置ルールによって指定される階層の記憶領域に移動すること
    を実行させるためのプログラム。
JP2014534841A 2014-03-04 2014-03-04 階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラム Active JP5797848B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/055424 WO2015132873A1 (ja) 2014-03-04 2014-03-04 階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラム

Publications (2)

Publication Number Publication Date
JP5797848B1 true JP5797848B1 (ja) 2015-10-21
JPWO2015132873A1 JPWO2015132873A1 (ja) 2017-03-30

Family

ID=54054713

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014534841A Active JP5797848B1 (ja) 2014-03-04 2014-03-04 階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラム

Country Status (4)

Country Link
US (1) US9594508B2 (ja)
JP (1) JP5797848B1 (ja)
CN (1) CN105074675B (ja)
WO (1) WO2015132873A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6067819B1 (ja) * 2015-10-21 2017-01-25 株式会社東芝 階層化ストレージシステム、ストレージコントローラ、並びに重複排除及びストレージ階層化のための方法
US10235071B2 (en) 2016-11-29 2019-03-19 Kabushiki Kaisha Toshiba Tiered storage system, storage controller and tiering control method

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11789631B2 (en) * 2010-11-29 2023-10-17 Pure Storage, Inc. Utilizing metadata storage trees in a vast storage network
JP6307962B2 (ja) * 2014-03-19 2018-04-11 日本電気株式会社 情報処理システム、情報処理方法、及び、情報処理プログラム
JP6165909B1 (ja) * 2016-03-16 2017-07-19 株式会社東芝 階層化ストレージシステム、ストレージコントローラ、及び階層化制御方法
JP6814020B2 (ja) * 2016-10-26 2021-01-13 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
WO2020000275A1 (zh) 2018-06-27 2020-01-02 华为技术有限公司 一种存储系统及存储系统的工作模式的切换方法
US11650742B2 (en) 2019-09-17 2023-05-16 Micron Technology, Inc. Accessing stored metadata to identify memory devices in which data is stored
US11269780B2 (en) 2019-09-17 2022-03-08 Micron Technology, Inc. Mapping non-typed memory access to typed memory access
US11494311B2 (en) 2019-09-17 2022-11-08 Micron Technology, Inc. Page table hooks to memory types
US10963396B1 (en) 2019-09-17 2021-03-30 Micron Technology, Inc. Memory system for binding data to a memory namespace

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004310621A (ja) * 2003-04-10 2004-11-04 Hitachi Ltd 記憶装置システムにおけるファイルアクセス方法及びファイルアクセスのためのプログラム
JP2005108239A (ja) * 2003-10-01 2005-04-21 Hewlett-Packard Development Co Lp 階層的データ構造体にデータを記憶する記憶システム
JP2007305012A (ja) * 2006-05-15 2007-11-22 Fujitsu Ltd Hsm制御プログラム、hsm制御装置、hsm制御方法
JP2009251751A (ja) * 2008-04-02 2009-10-29 Fujitsu Ltd データ管理方法及びスイッチ装置
JP2014500542A (ja) * 2010-10-27 2014-01-09 エンモータス・インコーポレイテッド データ管理を有する階層データ記憶システムおよびその操作方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4322031B2 (ja) 2003-03-27 2009-08-26 株式会社日立製作所 記憶装置
JP2005228170A (ja) * 2004-02-16 2005-08-25 Hitachi Ltd 記憶装置システム
JP2010257094A (ja) 2009-04-23 2010-11-11 Hitachi Ltd 階層ストレージ管理システムにおける移動候補ファイルの抽出方法
US8402205B2 (en) * 2010-03-18 2013-03-19 Seagate Technology Llc Multi-tiered metadata scheme for a data storage array
US8639899B2 (en) * 2011-04-26 2014-01-28 Hitachi, Ltd. Storage apparatus and control method for redundant data management within tiers
WO2013065081A1 (en) * 2011-10-31 2013-05-10 Hitachi, Ltd. Storage apparatus and data management method
US9703500B2 (en) * 2012-04-25 2017-07-11 International Business Machines Corporation Reducing power consumption by migration of data within a tiered storage system
US9092461B1 (en) * 2012-06-30 2015-07-28 Emc Corporation System and method for tiering data storage

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004310621A (ja) * 2003-04-10 2004-11-04 Hitachi Ltd 記憶装置システムにおけるファイルアクセス方法及びファイルアクセスのためのプログラム
JP2005108239A (ja) * 2003-10-01 2005-04-21 Hewlett-Packard Development Co Lp 階層的データ構造体にデータを記憶する記憶システム
JP2007305012A (ja) * 2006-05-15 2007-11-22 Fujitsu Ltd Hsm制御プログラム、hsm制御装置、hsm制御方法
JP2009251751A (ja) * 2008-04-02 2009-10-29 Fujitsu Ltd データ管理方法及びスイッチ装置
JP2014500542A (ja) * 2010-10-27 2014-01-09 エンモータス・インコーポレイテッド データ管理を有する階層データ記憶システムおよびその操作方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6067819B1 (ja) * 2015-10-21 2017-01-25 株式会社東芝 階層化ストレージシステム、ストレージコントローラ、並びに重複排除及びストレージ階層化のための方法
US10235071B2 (en) 2016-11-29 2019-03-19 Kabushiki Kaisha Toshiba Tiered storage system, storage controller and tiering control method

Also Published As

Publication number Publication date
CN105074675A (zh) 2015-11-18
US9594508B2 (en) 2017-03-14
JPWO2015132873A1 (ja) 2017-03-30
WO2015132873A1 (ja) 2015-09-11
CN105074675B (zh) 2017-11-07
US20160371001A1 (en) 2016-12-22

Similar Documents

Publication Publication Date Title
JP5797848B1 (ja) 階層化ブロックストレージ装置を有するコンピュータシステム、ストレージコントローラ、及びプログラム
US7574577B2 (en) Storage system, storage extent release method and storage apparatus
JP4869368B2 (ja) ストレージ装置及び仮想化装置
US8639899B2 (en) Storage apparatus and control method for redundant data management within tiers
US7975115B2 (en) Method and apparatus for separating snapshot preserved and write data
US8392685B2 (en) Arrangements for managing metadata of an integrated logical unit including differing types of storage media
US8639876B2 (en) Extent allocation in thinly provisioned storage environment
JP4990828B2 (ja) ストレージ装置及びこれの制御方法
WO2015162758A1 (ja) ストレージシステム
JP2004295457A (ja) 記憶装置
US7343465B2 (en) Storage system
JP5944001B2 (ja) ストレージシステム、管理計算機、ストレージ装置及びデータ管理方法
US8849966B2 (en) Server image capacity optimization
JP2005228170A (ja) 記憶装置システム
WO2018051505A1 (ja) ストレージシステム
JP4409521B2 (ja) 記憶装置
US10089125B2 (en) Virtual machines accessing file data, object data, and block data
JP5910596B2 (ja) ストレージ管理システム、ストレージ管理方法、プログラム、および、情報処理システム
JP5355603B2 (ja) ディスクアレイ装置及び論理ボリュームアクセス方法
JP6343716B2 (ja) 計算機システム及び記憶制御方法
JP2016053796A (ja) ストレージ制御装置及びプログラム
JP2020027433A (ja) 情報システム
WO2017212515A1 (ja) ストレージシステム、計算機、およびストレージ制御方法
JP2015141508A (ja) データ記憶制御装置、データ記憶制御方法、及び、データ記憶制御プログラム

Legal Events

Date Code Title Description
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: 20150721

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150819

R150 Certificate of patent or registration of utility model

Ref document number: 5797848

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350