JP2022142843A - 制御装置及びデータ読出方法 - Google Patents

制御装置及びデータ読出方法 Download PDF

Info

Publication number
JP2022142843A
JP2022142843A JP2021043071A JP2021043071A JP2022142843A JP 2022142843 A JP2022142843 A JP 2022142843A JP 2021043071 A JP2021043071 A JP 2021043071A JP 2021043071 A JP2021043071 A JP 2021043071A JP 2022142843 A JP2022142843 A JP 2022142843A
Authority
JP
Japan
Prior art keywords
read
data
obj
recording medium
request
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
JP2021043071A
Other languages
English (en)
Inventor
武俊 吉田
Taketoshi Yoshida
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 JP2021043071A priority Critical patent/JP2022142843A/ja
Priority to US17/541,323 priority patent/US20220300191A1/en
Publication of JP2022142843A publication Critical patent/JP2022142843A/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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more 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/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/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
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/0673Single storage device
    • G06F3/0682Tape device
    • 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/0686Libraries, e.g. tape libraries, jukebox

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)
  • Library & Information Science (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Figure 2022142843000001
【課題】可搬型の記録媒体に格納された複数のデータの読出時間の増加を抑制する。
【解決手段】複数のデータを記録する記録媒体に対するアクセスを制御する制御装置2は、前記複数のデータのそれぞれの前記記録媒体における記録位置に関する情報と、前記複数のデータのそれぞれが前記記録媒体から読み出された読出時刻とを含む第1情報43に基づき、前記記録媒体に対する第1読出要求の読出対象となる第1データと、前記第1データと共起関係にある第2データとを、前記記録媒体からそれぞれ読み出して記憶領域42に格納し、前記記録媒体に対する第2読出要求であって、前記第2データを読出対象とする前記第2読出要求が発生した場合、前記記憶領域42に格納した前記第2データを読み出して前記第2読出要求の送信元6aに送信する。
【選択図】図4

Description

本発明は、制御装置及びデータ読出方法に関する。
データを記憶するストレージシステム、例えば、オブジェクトを取り扱うオブジェクトストレージシステムでは、階層化制御が行なわれることがある。階層化制御は、アプリケーションからオブジェクトへのアクセス頻度に応じて、例えばアクセス頻度が高いオブジェクトを低遅延(Low Latency)層に配置し、アクセス頻度が低いオブジェクトを高遅延(High Latency)層に配置する制御である。
低遅延層は、例えば、アクセス性能が高い(高速である)ものの容量単価(保存コスト)が高い、HDD(Hard Disk Drive)等の磁気ディスク装置及びSSD(Solid State Drive)等の半導体ドライブ装置の一方又は双方を含むストレージ装置である。
高遅延層は、アクセス性能が低い(低速である)ものの容量単価(保存コスト)が低い、磁気テープカートリッジ等の物理ボリューム(PV;Physical Volume)を収容するテープ装置を利用するストレージ装置である。PVは、「テープボリューム」又は「可搬型の記録媒体」の一例である。
以下、便宜上、低遅延層を「HDD層」又は「HDDストレージ層」と表記し、高遅延層を「テープ層」又は「テープストレージ層」と表記し、低遅延層及び高遅延層を総称して「ストレージ層」と表記する場合がある。
オブジェクトストレージシステムにおいて、制御装置は、例えば、HDD層に配置されたアクセス頻度の低いオブジェクトの移行要求をアプリケーションから受信すると、移行要求に応じて、階層制御により、当該オブジェクトをHDD層からテープ層に移行する。
また、制御装置は、アプリケーションからオブジェクトの読出(読込)要求を受信すると、読出要求の受信順にストレージ層からオブジェクトを読み出してアプリケーションに応答する読出処理を行なう。
特開2020-119145号公報 特開平8-329090号公報
複数の読出要求に係る複数のオブジェクトがテープ層の或るPVに格納されている場合を想定する。当該PVにおいて、読出要求の受信順(オブジェクトの読出順)とオブジェクトの格納順とが相違する場合、テープ層においてPVへのデータの読み出し及び書き込み等のアクセスを行なうドライブ装置により、PVのテープの巻き戻しが行なわれる。
巻き戻しでは、ドライブ装置は、テープへのアクセスを行なうヘッドが、読出対象のオブジェクトの先頭に位置するように、モータ等の駆動機構によってPVのテープを走行方向とは逆方向に送る(移動させる)位置合わせ処理を実行する。
位置合わせ処理が発生すると、読出要求の受信順とオブジェクトの格納順とが一致する場合と比較して、読出処理の処理性能(読出性能)が低下し、読出時間、換言すれば読出要求に対する応答時間が増加することがある。
1つの側面では、本発明は、可搬型の記録媒体に格納された複数のデータの読出時間の増加を抑制することを目的とする。
1つの態様では、制御装置は、複数のデータを記録する記録媒体に対するアクセスを制御する制御装置であってよい。前記制御装置は、前記複数のデータのそれぞれの前記記録媒体における記録位置に関する情報と、前記複数のデータのそれぞれが前記記録媒体から読み出された読出時刻とを含む第1情報に基づき、前記記録媒体に対する第1読出要求の読出対象となる第1データと、前記第1データと共起関係にある第2データとを、前記記録媒体からそれぞれ読み出して記憶領域に格納してよい。前記制御装置は、前記記録媒体に対する第2読出要求であって、前記第2データを読出対象とする前記第2読出要求が発生した場合、前記記憶領域に格納した前記第2データを読み出して前記第2読出要求の送信元に送信してよい。
1つの側面では、可搬型の記録媒体に格納された複数のデータの読出時間の増加を抑制することができる。
オブジェクトストレージシステムにおける位置合わせ処理の一例を説明するための図である。 一実施形態に係るシステムのハードウェア(HW)構成例を示すブロック図である。 コンピュータのHW構成例を示すブロック図である。 一実施形態に係るシステムの機能構成例を示すブロック図である。 読出時刻データベース(DB)の一例を示す図である。 テープオブジェクト(OBJ)管理DBの一例を示す図である。 共起関係検出処理の説明に用いるテープOBJ管理DBの一例を示す図である。 OBJと読出時刻との関係の一例を示す図である。 OBJリストの一例を示す図である。 テープにおける読み飛ばしと連続読出時間との比率の一例を示す図である。 読出時刻管理処理及び移行指示処理の動作例を説明するフローチャートである。 読出時刻管理処理の一例を説明するシーケンス図である。 移行指示処理及び書込処理の一例を説明するシーケンス図である。 書込処理及び読出処理の動作例を説明するフローチャートである。 読出処理の一例を説明するシーケンス図である。
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
〔1〕一実施形態
図1は、オブジェクトストレージシステム100における位置合わせ処理の一例を説明するための図である。図1に示すように、オブジェクトストレージシステム100において、テープ層110に含まれるPV120に格納されたオブジェクト(以下、「OBJ」と表記する場合がある)の読出要求が発行された場合を想定する。
なお、図1の例では、HDD層の図示を省略している。例えば、テープ層110は、図示しないアプリケーションから発行された読出要求を、HDD層を経由して受信してよい。読出要求は、テープ層110を制御する制御装置、又は、HDD層及びテープ層の双方を制御する制御装置により処理されてよい。
図1に例示するように、PV120において、テープの走行方向にOBJ#0、#1、#2、・・・#N(Nは1以上の整数)が格納されているものとする。テープ層110は、OBJ#2の読出要求#0、OBJ#1の読出要求#1、OBJ#0の読出要求#2の受信に応じて、PV120から読出要求の受信順に、読出対象のOBJ#2、#1、#0のそれぞれの読出処理を実行する。そして、テープ層110は、読み出したOBJ#2、#1、#0のそれぞれを読出結果#0、#1、#2として応答する。
図1に示すように、テープ層110は、OBJ#2の読出処理後、OBJ#1の読出処理の前に、PV120に対して、テープの走行方向とは逆の巻戻方向にヘッドを移動させて、OBJ#1の先頭にヘッドを位置させる位置合わせ(location)処理を実行する。また、テープ層110は、OBJ#1の読出処理後、OBJ#0の読出処理の前に、PV120に対して、巻戻方向にヘッドを移動させて、OBJ#0の先頭にヘッドを位置させる位置合わせ処理を実行する。
ところで、複数の読出要求#0~#2の読出対象となるオブジェクトOBJ#2~#0には、共起関係が存在する場合がある。「共起関係」とは、或る(第1の)オブジェクトが読み出されると、別の(第2の)オブジェクトが読み出される関係である。この場合、或るオブジェクトと、別のオブジェクトとは共起関係にあるといえる。共起関係にある複数のオブジェクトは、相互的に又は一方的に関連するオブジェクトであってよく、例えば、オブジェクトどうしが関係付けられていてもよいし、アプリケーションにおける所定の処理において適宜又は順次読み出されるオブジェクトであってもよい。以下の説明において、「共起関係」には、当該共起関係にあるオブジェクト間におけるアクセス順序(例えば読出順序)、一例として、読出要求の受信順序についての関係が含まれるものとする。
共起関係にある複数のオブジェクトを読出対象とする複数の読出要求は、同じ読出順で再び発行される、換言すれば再現性を有する場合がある。このため、(所定の読出順序である)共起関係にある複数のオブジェクトが、PV120においてテープの走行方向に従って記録されていない場合、当該複数の読出要求を受信する都度、位置合わせ処理が発生することになる。このため、読出性能が低下し、読出時間が増加し得る。
例えば、オブジェクトストレージシステム100では、数十キロバイトから百メガバイト単位のオブジェクトを大量に取り扱い、数百ギガバイトから数テラバイト単位で複数のオブジェクトへの読出要求又は書込要求を処理することがある。このように、取り扱われるオブジェクト数が増加するほど、共起関係を有するオブジェクト数が増加し、PV120での格納順がテープの走行方向に従わない可能性が高まるため、位置合わせ処理に伴い読出時間が増加する可能性が高まる。
そこで、一実施形態においては、PVに格納された複数のオブジェクトの読出時間の増加を抑制する手法について説明する。
〔1-1〕オブジェクトストレージシステムの構成例
以下、一実施形態の一例としてのオブジェクトストレージシステム1(図2参照)について説明する。オブジェクトストレージシステム1は、階層化制御を行なう階層化ストレージシステムであってよく、ストレージシステム又は情報処理システムの一例である。以下、オブジェクトストレージシステム1を単に「システム1」と表記する場合がある。
(ハードウェア(HW)構成例)
まず、一実施形態に係るシステム1のHW構成例を説明する。図2は、一実施形態に係るシステム1のHW構成例を示すブロック図である。図2に示すように、システム1は、HW構成として、例示的に、階層化ストレージ装置2、テープ装置5、及び、ホスト装置6を備えてよい。
階層化ストレージ装置2は、例示的に、1以上のコンピュータ2a及び1以上の記憶装置2bを備えてよい。なお、図2の例では、階層化ストレージ装置2が1つのコンピュータ2aを備えるものとしたが、これに限定されるものではなく、冗長化構成として複数のコンピュータ2aを備えてもよい。
コンピュータ2aは、制御装置又は情報処理装置の一例であり、階層化ストレージ装置2におけるHDD層及びテープ層に関する種々の制御を行なう。一実施形態では、コンピュータ2aは、HDD層及びテープ層の双方における動作(処理)を制御するものとするが、これに限定されるものではない。例えば、階層化ストレージ装置2は、HDD層における動作(処理)を制御するコンピュータ2a、及び、テープ層における動作(処理)を制御するコンピュータ2aを備えてもよい。この場合、HDD層及びテープ層は、互いに別体の「ストレージ装置」であってもよく、例えば、HDD層及びテープ層のそれぞれのコンピュータ2aが協働して動作することで、階層化ストレージ装置2を実現してよい。
記憶装置2bは、例えば、HDD層を実現するための記憶装置の一例であり、1以上のHDD等の磁気ディスク装置、及び、1以上のSSD等の半導体ドライブ装置の一方又は双方を含んでよい。
テープ装置5は、階層化ストレージ装置2に接続され、テープ層を実現するための記憶装置の一例であり、例示的に、ドライブ装置5a、ロボット5b、及び、コントローラ5dを備えてよい。なお、テープ装置5は、複数のドライブ装置5aを備えてもよく、また、複数のロボット5bを備えてもよい。
ドライブ装置5aは、可搬型の記録媒体の一例としてのPV5cに対するデータの記録及び再生等のアクセスを行なう媒体処理装置の一例であり、PV5cにアクセスするアクセス部の一例である。ロボット5bは、PV5cの媒体カートリッジのピックアップ、搬送、ドライブ装置5aへの挿入等を行なう運搬装置の一例である。PV5cは、複数のオブジェクトのデータを記録する可搬型の複数の記録媒体の一例である。PV5cとしては、データをブロック(BK)単位で記録するLTO(Linear Tape Open)カートリッジ等の磁気テープ等が挙げられる。
コントローラ5dは、テープ装置5における種々の制御を行なう。例えば、コントローラ5dは、階層化ストレージ装置2から受信した指示(例えばコマンド)に応じて、ドライブ装置5a及びロボット5bの動作を制御してよく、コマンドに対する応答を階層化ストレージ装置2に送信してよい。
ホスト装置6は、階層化ストレージ装置2に対して、HDD層又はテープ層へのアクセスを行なう処理装置又は上位装置の一例である。ホスト装置6としては、例えば、PC(Personal Computer)、サーバ、或いは、メインフレーム等が挙げられる。
階層化ストレージ装置2とテープ装置5との間は、例えば、FC(Fibre Channel)ケーブル等を介したSAN(Storage Area Network)等のネットワークにより相互に通信可能に接続されてよい。階層化ストレージ装置2とホスト装置6との間は、例えば、LAN(Local Area Network)等のネットワークにより相互に通信可能に接続されてよい。
図3は、コンピュータ10のHW構成例を示すブロック図である。コンピュータ10は、図2に示すコンピュータ2aの一例である。
図3に示すように、コンピュータ10は、例示的に、プロセッサ10a、メモリ10b、記憶部10c、及び、読取部10eを備えてよい。また、例えば、コンピュータ10は、IF(Interface)として、テープIF10d-1、IO(Input / Output)IF10d-2、ホストIF10d-3、及び、ディスクIF10d-4を備えてよい。
プロセッサ10aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ10aは、各ブロック10b~10eとバス10iで相互に通信可能に接続されてよい。プロセッサ10aとしては、例えば、CPU、MPU、DSP、ASIC、PLD(例えばFPGA)等の集積回路(IC;Integrated Circuit)のうちのいずれか1つ、又は、これらの集積回路のうちの2以上の組み合わせが挙げられる。CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称であり、DSPはDigital Signal Processorの略称である。また、ASICはApplication Specific Integrated Circuitの略称であり、PLDはProgrammable Logic Deviceの略称であり、FPGAはField Programmable Gate Arrayの略称である。
メモリ10bは、種々のデータやプログラムを格納するHWの一例である。メモリ10bとしては、揮発性メモリ、例えば、DRAM(Dynamic Random Access Memory)等のRAMが挙げられる。
記憶部10cは、種々のデータやプログラム等を格納するHWの一例である。例えば、記憶部10cは、コンピュータ10の二次記憶装置として使用されてよい。記憶部10cには、OS(Operating System)、ファームウェア又はアプリケーション等のプログラム、及び、各種データが格納されてよい。記憶部10cとしては、例えば、HDD等の磁気ディスク装置、SSD等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM(Storage Class Memory)、PM(Persistent Memory)、ROM(Read Only Memory)等が挙げられる。記憶部10cは、コンピュータ10の各種機能の全部若しくは一部を実現するプログラム10fを格納してもよい。
テープIF10d-1、IOIF10d-2、ホストIF10d-3、及び、ディスクIF10d-4は、それぞれ、テープ装置5、IO装置10g、ホスト装置6、及び、記憶装置2bとの間の接続及び通信の制御等を行なう通信IFの一例である。IO装置10gは、例えば、マウス、キーボード、タッチパネル、操作ボタン等の入力部、及び、ディスプレイやプリンタ等の出力部、の一方又は双方を含んでよい。
なお、コンピュータ10は、管理者の管理端末との間の接続及び通信の制御等を行なう通信IFを備えてもよく、当該通信IFを用いて、図示しないネットワークからプログラム10fをダウンロードしてもよい。
読取部10eは、記録媒体10hに記録されたデータやプログラムを読み出しプロセッサ10aに出力するリーダの一例である。読取部10eは、記録媒体10hを接続又は挿入可能な接続端子又は装置を含んでもよい。読取部10eとしては、例えばUSB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体10hにはプログラム10fが格納されてもよい。
記録媒体10hとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。
上述したコンピュータ10のHW構成は例示である。従って、コンピュータ10内でのHWの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
記憶装置2bは、図3に示すように、例示的に、コントローラ2c、及び、複数の記憶部2dを備えてよい。コントローラ2cは、複数の記憶部2dに対するアクセスに関する種々の制御を行なってよい。記憶部2dは、記憶部10cと同様のHW構成であってよい。
なお、コントローラ2c、及び、図2に示すコントローラ5dの一方又は双方は、例えば、プロセッサ、メモリ、記憶部等のHW構成を備えてよく、これらの少なくとも一部が集積回路として実装されてもよい。
(機能構成例)
次に、一実施形態に係るシステム1の機能構成(ソフトウェア(SW)構成)の一例を説明する。図4は、一実施形態に係るシステム1の機能構成例を示すブロック図である。
図4に示すシステム1において、ホスト装置6は、階層化ストレージ装置2に対するアクセスを行なう所定のアプリケーション(以下、「APP」と表記する場合がある)6aを実行してよい。
APP6aは、例えば、階層化ストレージ装置2に対して、オブジェクト(以下、「OBJ」と表記する場合がある)の読出要求又は書込要求を送信し、読出結果又は書込結果を階層化ストレージ装置2から受信してよい。また、APP6aは、階層化ストレージ装置2に対して、HDD層3に格納されたOBJをテープ層4に移動させる階層移動(移行)要求を送信してよい。
読出要求には、例えば、読出対象のOBJを識別するための識別情報が含まれてよい。読出結果には、読出要求で指定されたOBJが含まれてよい。一実施形態に係るAPP6aは、例えば、互いに共起関係にある複数のOBJを対象とした複数の読出要求を階層化ストレージ装置2に送信するものとする。移行要求には、例えば、移行対象のOBJを識別するための識別情報が含まれてよい。
階層化ストレージ装置2は、複数のデータを記録する記録媒体に対するアクセスを制御する制御装置の一例であり、ホスト装置6からの読出要求又は書込要求、或いは、移行要求の受信に応じて、HDD層3又はテープ層4に対して種々の制御を行なう。
図4に例示するように、階層化ストレージ装置2は、機能構成として、HDD層3及びテープ層4を備えてよい。HDD層3及びテープ層4は、階層化ストレージ装置2のコンピュータ2aによって実現される制御部20の機能の一例である。
(HDD層3の説明)
HDD層3は、低遅延層、例えば、HDD又はSSD等の記憶装置を利用するストレージ装置の一例であり、図4に例示するように、OBJ格納部31、読出時刻DB32、OBJ移行部33、及び、読出時刻管理部34を備えてよい。
OBJ格納部31は、PV5cよりもアクセス速度の高い記憶装置の一例であり、HDD層3上でアクセスされるOBJを格納する。例えば、OBJ格納部31には、書込要求によりHDD層3に書き込まれるOBJ等のデータが格納されてよい。OBJ格納部31は、例えば、図2に示す記憶装置2bの記憶領域の少なくとも一部により実現されてよい。
例えば、システム1では、階層化ストレージ装置2に書き込まれるOBJの既定の格納先がHDD層3である。このため、書込要求に応じてOBJ格納部31に書き込まれたOBJは、当該OBJの移行要求に応じてテープ層4に移行されるまで、HDD層3のOBJ格納部31において読み出し及び書き込みが行なわれる。
読出時刻DB32は、HDD層3におけるOBJの読出時刻を管理するDBである。読出時刻は、例えば、APP6aから受信した読出要求の発生時刻(例えば、APP6aからの送信時刻)、読出要求の受信時刻、又は、OBJがOBJ格納部31から読み出された時刻であってよい。以下、読出時刻は、APP6aからの送信時刻であるものとする。
図5は、読出時刻DB32の一例を示す図である。図5に示すように、読出時刻DB32は、例示的に、OBJの識別情報の一例である「OBJID」(OBJ Identifier)、及び、「読出時刻」の項目を含んでよい。読出時刻DB32には、例えば、OBJIDで識別されるOBJごとに、最新(例えば1つ)の読出時刻、又は、直近の複数の読出時刻が記録されてよい。また、読出時刻DB32には、OBJのデータサイズ等の、OBJに関するメタデータのうちの読出時刻以外の情報が格納されてもよい。
OBJ移行部33は、APP6aから受信したHDD層3からテープ層4への移行要求に応じて、移行対象のOBJに関する情報をHDD層3からテープ層4に移行(移動)する移行処理を行なう。移行対象のOBJに関する情報には、移行要求において指定された移行対象のOBJと、当該OBJに関するメタデータとが含まれてよい。
例えば、OBJ移行部33は、移行処理において、移行対象のOBJに関する情報をテープ層4の読書要求制御部41に送信してよい。また、OBJ移行部33は、移行処理において、移行対象のOBJに関する情報のうちのOBJをOBJ格納部31から削除してよく、当該OBJの読出時刻のエントリを読出時刻DB32から削除してもよい。「削除」とは、データの格納領域を解放可能に管理することを含んでよい。
読出時刻管理部34は、読出時刻DB32に基づき、OBJの読出時刻を管理する。例えば、読出時刻管理部34は、OBJの読出時刻を取得すると、取得したOBJの読出時刻をOBJに対応付けて読出時刻DB32に格納してよい。
(テープ層4の説明)
テープ層4は、高遅延層、例えば、磁気ディスクカートリッジ等のPV5cを利用するストレージ装置の一例である。図4に例示するように、テープ層4は、例示的に、読書要求制御部41、キャッシュ部42、テープOBJ管理DB43、共起関係検出部44、読出OBJ最適化部46、読出実行部47、及び、読出結果返信部48を備えてよい。
読書要求制御部41は、APP6aから受信する、テープ層4のOBJに対する読出要求又は書込要求に関する種々の制御を行なう。以下、APP6aからテープ層4の互いに異なる複数のOBJを読出対象とする複数の(第1)読出要求を受信した場合を例に挙げて説明する。
例えば、読書要求制御部41は、APP6aから受信した複数の読出要求の発生時刻をテープOBJ管理DB43に記録するとともに、複数の読出要求で指定された読出対象のOBJを引数として共起関係検出部44及び読出結果返信部48に出力してよい。読出対象のOBJ(読出対象OBJ)は、PV5cに対する第1読出要求の読出対象となる第1データの一例である。
また、例えば、読書要求制御部41は、読出対象のOBJがキャッシュ部42に格納されている場合、読出結果返信部48に対して、当該読出対象のOBJをキャッシュ部42から読出要求の送信元、例えばAPP6aに読出結果として応答(返信)させてよい。
さらに、例えば、読書要求制御部41は、読出対象のOBJがキャッシュ部42に格納されている場合、複数の読出対象のOBJのうちの、キャッシュ部42に格納されている読出対象のOBJ以外のOBJを共起関係検出部44に出力してよい。換言すれば、読書要求制御部41は、共起関係検出部44に出力する引数から、キャッシュ部42に格納されている読出対象のOBJを除外してよい。
キャッシュ部42は、OBJのデータを記憶する記憶領域の一例であり、例えば、読出実行部47によりテープ装置5のPV5cから読み出されたOBJを蓄積する。キャッシュ部42は、例えば、記憶装置2b、並びに、コンピュータ2aのメモリ10b及び記憶部10c(図2及び図3参照)の少なくとも1つが有する記憶領域により実現されてよい。
テープOBJ管理DB43は、例えば、テープ装置5におけるOBJの格納位置及び読出時刻を管理するDBである。テープOBJ管理DB43は、複数のデータのそれぞれのPV5cにおける記録位置に関する情報と、複数のデータのそれぞれがPV5cから読み出された読出時刻とを含む第1情報の一例である。
図6は、テープOBJ管理DB43の一例を示す図である。図6に示すように、テープOBJ管理DB43は、例示的に、PV5cにおける「テープ走行方向」、「OBJID」、及び、「読出時刻」の項目を含んでよい。「テープ走行方向」は、PV5cにおけるOBJの格納場所を示す情報の一例であり、例えば、OBJが格納される論理アドレスであってよい。なお、テープOBJ管理DB43には、OBJのデータサイズ等の、OBJに関するメタデータのうちの読出時刻以外の情報が格納されてもよい。
テープOBJ管理DB43には、例えば、PV5cに格納されている全てのOBJについて、PV5cにおける格納順序(格納位置)、及び、読出時刻が対応付けられて格納されてよい。テープOBJ管理DB43は、PV5cごとに生成及び管理されてもよいし、複数のPV5cについてまとめて生成及び管理されてもよい。後者の場合、「テープ走行方向」には、PV5cを識別可能な情報が含まれてよい。
一実施形態では、テープ層4にOBJが格納されるタイミングの1つとして、HDD層3からテープ層4へのOBJの移行要求に基づくOBJ移行部33による移行処理が挙げられる。移行処理が行なわれる場合、移行先のPV5cに係るテープOBJ管理DB43には、PV5cのテープ走行方向に対応付けて(論理アドレス順に)、OBJIDと、読出時刻DB32から読み出された(HDD層3での)読出時刻とが記録される。
このように、OBJ移行部33及び読書要求制御部41は、例えば、OBJ格納部31からPV5cへの複数のデータの移行要求が発生した場合、複数のデータをPV5cに格納するのである。また、OBJ移行部33及び読書要求制御部41は、読出時刻DB32に格納された、OBJ格納部31における複数のデータのそれぞれの読出時刻を、PV5cにおける複数のデータのそれぞれの読出時刻の初期値としてテープOBJ管理DB43に記録するのである。
なお、読書要求制御部41は、例えば、テープ層4における読出処理の実行後等の所定のタイミングで、テープOBJ管理DB43における読出対象のOBJの読出時刻を更新してよい。
共起関係検出部44は、読出要求で指定される読出対象のOBJの共起関係を検出する。例えば、共起関係検出部44は、或るOBJが読み出される際に、当該OBJの(直近の)読出時刻に近い読出時刻を持つ1以上のOBJも読み出される傾向にある場合、当該或るOBJと共起関係にあるOBJとして、当該1以上のOBJを検出してよい。
読出対象のOBJと共起関係にあるOBJは、例えば、テープOBJ管理DB43において、読出時刻が、読出対象のOBJの読出時刻と同時刻帯のOBJである。「同時刻帯」とは、例えば、注目する(基準とする)OBJの読出時刻(基準時刻)に対して前後所定時間の範囲以内、換言すれば、基準時刻の所定時間前から、基準時刻の所定時間後の間の期間内であってよい。所定時間とは、例えば、数秒~数時間、一例として数分等であってよいが、これらに限定されるものではない。
例えば、共起関係検出部44は、テープOBJ管理DB43において、読出対象のOBJの読出時刻と同時刻帯に読み出されたOBJをテープOBJ管理DB43から抽出し、OBJリスト45を生成してよい。なお、共起関係検出部44は、OBJリスト45の生成に代えて、OBJそのもの、又は、テープOBJ管理DB43に対して、共起関係にあるOBJどうしを識別可能な情報(例えばフラグ等)を付加してもよい。
以下、図7~図9を参照して、共起関係検出部44による共起関係検出処理の一例を説明する。図7は、共起関係検出処理の説明に用いるテープOBJ管理DB43の一例を示す図であり、図8は、OBJと読出時刻との関係の一例を示す図であり、図9は、OBJリスト45の一例を示す図である。
例えば、以下の説明において、複数のOBJが共起関係にあると判断する時間誤差(所定時間)をxとする。また、例えば、図7において、読出時刻のT1-T2間、T2-T3間及びT3-T4間のそれぞれの時間誤差(差分)は、x以下であるものとする。なお、読出時刻T1~Tnのそれぞれは、所定の時間幅を有してもよい。
また、一実施形態に係るシステム1においては、APP6aからのOBJの読出要求は、例えば、1秒あたり数件~数百件或いはそれ以上の数(頻度)で発行され得る。一方、テープ層4においてテープ装置5からOBJを読み出すため読出処理時間は、例えば、1つのOBJあたり4s/GB~5s/GB程度である。
このため、システム1では、テープ層4において、1つの読出対象のOBJに対する読出処理の実行中に、例えば数十個程度の読出要求が発生する可能性がある。一実施形態では、第1のOBJに対する読出処理時間内、換言すれば、時間誤差“±x”内に発生する読出要求の対象となる1以上の第2のOBJを、第1のOBJと共起関係にあるOBJと判定してよい。
ここで、OBJID“6”及び“1”(「OBJ6」及び「OBJ1」)の読出要求が発生した場合を想定する。共起関係検出部44は、読出対象のOBJ6及びOBJ1のそれぞれについて、テープOBJ管理DB43から、読出時刻の時間誤差が“±x”の関係にあるOBJを抽出する。
例えば、共起関係検出部44は、テープOBJ管理DB43を参照して、OBJ6の読出時刻T2と時間誤差“±x”の関係にあるOBJ3、OBJ2、OBJ4、OBJ1を抽出する。OBJ1及びOBJ4の各読出時刻T1は、図8の符号Xで示すように、OBJ6の読出時刻T2と時間誤差が“-x”の関係にあるOBJである。OBJ2の読出時刻T2は、図8の符号Yで示すように、OBJ6の読出時刻T2と時間誤差が“±0”の関係にあるOBJである。OBJ3の読出時刻T3は、図8の符号Zで示すように、OBJ6の読出時刻T2と時間誤差が“+x”の関係にあるOBJである。
また、例えば、共起関係検出部44は、テープOBJ管理DB43を参照して、OBJ1の読出時刻T1と時間誤差“±x”の関係にあるOBJ4、OBJ2、OBJ6を抽出する。OBJ2及びOBJ6の各読出時刻T2は、図8の符号Yで示すように、OBJ1の読出時刻T1と時間誤差が“+x”の関係にあるOBJである。OBJ4の読出時刻T1は、図8の符号Xで示すように、OBJ1の読出時刻T1と時間誤差が“±0”の関係にあるOBJである。
共起関係検出部44は、例えば、図9に示すように、読出対象のOBJと、当該読出対象のOBJと共起関係にあるOBJとを対応付けたOBJリスト45を生成してよい。図9に例示するOBJリスト45において、1番目のエントリは読出対象のOBJ6と共起関係にあるOBJのリストであり、2番目のエントリは読出対象のOBJ1と共起関係にあるOBJのリストである。
読出OBJ最適化部46は、共起関係検出部44が抽出したOBJリスト45から、冗長性を排除したOBJを取得する。
例えば、読出OBJ最適化部46は、読出対象のOBJ6及びOBJ1について、OBJリスト45の共起関係OBJを統合したOBJID“3,2,4,1,4,2,6”から、重複するOBJIDを排除したOBJIDのリスト“3,2,4,1,6”を取得してよい。
読出実行部47は、読出OBJ最適化部46が冗長性を排除したOBJのリスト“3,2,4,1,6”を、テープOBJ管理DB43に基づきPV5cのテープ上の記録順、換言すれば論理アドレスの若い順となるように並べ替える。例えば、読出実行部47は、冗長性を排除したOBJのリスト“3,2,4,1,6”を、図7に例示するテープ走行方向に基づき“1,2,3,4,6”にソートしてよい。
そして、読出実行部47は、並び替えたリストの順に、PV5cからOBJを読み出し、読み出したOBJをキャッシュ部42に格納し、読出結果返信部48に対して、読み出したOBJのうちの読出対象のOBJをAPP6aに応答することを指示する。
このとき、読出実行部47は、並び替えたリストのうちの、PV5cからOBJを読み出すOBJを、PV5cのテープ上における、複数の読出対象のOBJを始点及び終点とした範囲内に位置するOBJに制限してもよい。
例えば、読出対象のOBJがOBJ1及びOBJ6である場合、読出実行部47は、PV5cからOBJを読み出すOBJを、OBJ1からOBJ6、換言すれば、論理アドレスA1~A6(図7参照)の範囲内に記録されたOBJに制限してよい。以下、便宜上、読出対象の複数のOBJのうち、論理アドレスが最も小さいOBJ1を「始点OBJ」、論理アドレスが最も大きいOBJを「終点OBJ」と表記する場合がある。
このように、読出実行部47は、PV5cのテープの走行方向における始点OBJ及び終点OBJを端点とした範囲を読出範囲とするのである。
一例として、読出実行部47は、並び替えたリストに、始点OBJ1よりも論理アドレスの小さいOBJ、又は、終点OBJ6よりも論理アドレスの大きいOBJが含まれる場合、これらのOBJについては、PV5cからの読み出しを抑制してよい。
これにより、読出対象のOBJと共起関係にあるOBJであっても、読出範囲外に格納されるOBJについては、PV5cからの読み出しが抑制されるため、読出時間の増加を抑制することができる。
以上のように、共起関係検出部44及び読出実行部47は、テープOBJ管理DB43に基づき、読出対象データ(OBJ)と、読出対象データと共起関係にある第2データ(OBJ)とを、PV5cからそれぞれ読み出してキャッシュ部42に格納するといえる。第2データは、例えば、読出対象OBJと共起関係にあるOBJのうちの読出実行部47によりPV5cからキャッシュ部42に読み出されるOBJである。
これにより、読出対象OBJと共起関係にあるOBJを投機的にキャッシュ部42に読み出しておくことができるため、当該共起関係にあるOBJを読出対象とした読出要求が発生した場合に、キャッシュ部42に読み出したOBJを応答できる。すなわち、テープ装置5へのアクセスの発生を抑制でき、応答時間を短縮することができる。
このとき、共起関係検出部44は、第2データ(の候補)として、テープOBJ管理DB43を参照して、読出対象OBJの読出時刻との時間誤差が所定時間内の読出時刻であるOBJを検出してよい。
また、読出実行部47は、第2データ(の候補)として、テープOBJ管理DB43を参照して、PV5cにおける記録位置が、PV5cのデータ記録順序において、複数の読出対象OBJの記録位置を両端とする範囲内であるOBJを検出してよい。
さらに、読出実行部47は、テープOBJ管理DB43を参照して、PV5cのデータ記録順序に基づく順序で、読出対象OBJと複数の第2データとしての複数のOBJとをPV5cからそれぞれ読み出してキャッシュ部42に格納してよい。
これらにより、読出対象OBJと共起関係にあるOBJをPV5cから効率的に(例えば高速に)キャッシュ部42に読み出すことができ、階層化ストレージ装置2における処理負荷の低減、及び、読出対象OBJの応答時間の増加の抑制を実現できる。
読出結果返信部48は、読書要求制御部41又は読出実行部47からの要求に応じて、キャッシュ部42に読出対象OBJが存在する場合に、当該読出対象OBJを読出要求に対する応答(読出結果)としてAPP6aに送信する。
換言すれば、読出結果返信部48は、PV5cに対する第2読出要求であって、上述した第2データを読出対象とする第2読出要求が発生した場合、キャッシュ部42に格納した第2データを読み出して第2読出要求の送信元、例えばAPP6aに送信してよい。
以上のように、一実施形態に係るシステム1によれば、読出要求における読出対象のOBJと共起関係にあるOBJがキャッシュ部42に格納される。これにより、PV5cに格納された複数の共起関係にあるOBJに対する読出要求を受信した場合、読出順がPV5cのテープにおける記録方向と一致していない場合であっても、キャッシュ部42からOBJを読み出して応答できる。従って、読出時間の増加を抑制できる。
また、読出OBJ最適化部46及び読出実行部47により、共起関係にあるOBJをテープの記録方向に沿ってPV5cから読み出すため、読出時間を短縮することができる。例えば、数KBから数十MB程度の比較的小さなOBJに対する読出要求が、テープの記録方向とは異なる順に発生した場合を想定する。この場合、階層化ストレージ装置2は、一実施形態に係る手法によれば、そのままの順で(読出要求の受信順に)読み出す場合の読出時間よりも2倍以上短い時間(1/2以下の時間)でPV5cからOBJを読み出すことができる。
図10は、テープにおける読み飛ばしと連続読出時間との比率の一例を示す図である。図10のグラフにおいて、横軸は、距離(MB)を示し、縦軸は、読み飛ばしにかかる時間(“1”とする)に対する、連続読み出しにかかる時間の比率を示す。図10では、テープの記録方向に対する、1MBの2個のOBJ間の読出時間の測定例を示す。
図10において、破線は、1MBのOBJを1つ分読み飛ばして次の1MBのOBJを読み出すための読出時間を示す。実線は、1MBのOBJを1つ分読み飛ばして次の1MBのOBJを読み出すための読出時間と、読み飛ばさずに連続で読み出した場合の読出時間との比率を示す。
図10に例示するように、読み飛ばしには、テープ装置5における、PV5cのテープからの読出位置の位置合わせに係る時間が発生する。このため、例えば、符号Aで示す一点鎖線の領域内のように、読み飛ばしを行なうよりも連続して読み出した方が、読出時間が短くなる(読み出しが高速になる)。例えば、数十個のOBJに対する読出要求を階層化ストレージ装置2が受信した場合、20倍以上の読出時間短縮となる。さらに、読出要求の受信順がテープの記録順とは異なる場合、受信順に読み出すと位置合わせ処理が発生するが、一実施形態に係る手法によれば、位置合わせ処理の発生を抑制できるため、さらに数倍から数十倍の読出時間短縮を図ることができる。
〔1-2〕動作例
次に、一実施形態に係るシステム1の動作例を説明する。
〔1-2-1〕読出時刻管理処理及び移行指示処理の動作例
まず、図11~図13を参照して、HDD層3及びテープ層4による読出時刻管理処理及び移行指示処理の動作例を説明する。図11は、読出時刻管理処理及び移行指示処理の動作例を説明するフローチャートであり、図12は、読出時刻管理処理の一例を説明するシーケンス図であり、図13は、移行指示処理及び書込処理の一例を説明するシーケンス図である。
図11に例示するように、階層化ストレージ装置2のHDD層3は、APP6aからHDD層3宛ての要求を受信すると(ステップS1)、当該要求が読出処理か否かを判定する(ステップS2)。
読出要求である場合(ステップS2でYES;図12の処理P1)、読出時刻管理部34は、読出時刻DB32に読出要求発生時刻をOBJIDとともに記録し(ステップS3;図12の処理P2)、処理が終了する。
受信した要求が読出要求ではない場合(ステップS2でNO)、移行要求か否かを判定する(ステップS4)。移行要求である場合(ステップS4でYES;図13の処理P11)、OBJ移行部33は、OBJ及び当該OBJの読出時刻のデータを、書込要求としてテープ層4の読書要求制御部41に送信し(ステップS5;図13の処理P12)、処理が終了する。図13の処理P13(P13-1~P13-3)の処理は後述する。
なお、受信した要求が移行要求ではない場合(ステップS4でNO)、要求は例えば書込要求である。この場合、HDD層3は、書込要求に応じた処理を実行してよい。書込要求に応じたHDD層3の処理としては、既知の種々の手法が利用されてよく、その説明を省略する。
〔1-2-2〕書込処理及び読出処理の動作例
次に、図13(処理P13)と図14及び図15とを参照して、テープ層4による書込処理及び読出処理の動作例を説明する。図14は、書込処理及び読出処理の動作例を説明するフローチャートであり、図15は、読出処理の一例を説明するシーケンス図である。
図14に例示するように、階層化ストレージ装置2のテープ層4は、APP6a又はHDD層3からテープ層4宛ての要求を受信すると(ステップS11)、当該要求が読出処理か否かを判定する(ステップS12)。
読出要求ではない場合(ステップS12でNO)、例えばHDD層3からの書込要求(移行要求)である場合(図13の処理P12)、読書要求制御部41は、HDD層3から書込(移行)対象のOBJと読出時刻とを取得する。読書要求制御部41は、例えば、PV5c及びキャッシュ部42のそれぞれに書込対象のOBJのデータを書き込み、テープOBJ管理DB43に書込対象のOBJのOBJID及び読出時刻を記録する(ステップS13;図13の処理P13、P13-1~P13-3)。そして、読書要求制御部41は、HDD層3に書込完了応答を送信し(ステップS14)、処理が終了する。
受信した要求が読出要求である場合(ステップS12でYES;図15の処理P21)、読書要求制御部41は、読出対象OBJがキャッシュ部42に存在するか否かを判定する(ステップS15;図15の処理P22)。
読出対象OBJがキャッシュ部42に存在する場合(ステップS15でYES;図15の処理P22でYES)、読書要求制御部41は、読出結果返信部48に対して、キャッシュ部42に存在する読出対象OBJのリストを送信する(図15の処理P23)。
読出結果返信部48は、キャッシュ部42に存在する読出対象OBJのリストに基づき、キャッシュ部42から読出対象OBJを読み出す(図15の処理P24)。そして、読出結果返信部48は、読み出したOBJを、要求の送信元(例えばAPP6a)に読出結果として送信(応答)する(ステップS16;図15の処理P25)。
また、読書要求制御部41は、受信した読出要求における読出対象のOBJについて、テープOBJ管理DB43の読出時刻を更新し(ステップS17)、処理が終了する。
一方、読出対象OBJがキャッシュ部42に存在しない場合(ステップS15でNO;図15の処理P22でNO)、読書要求制御部41は、キャッシュ部42を参照して、キャッシュ部42に存在しない読出対象OBJのリストを取得(生成)する。読書要求制御部41は、当該リストを共起関係検出部44に通知する(ステップS18;図15の処理P26)。
共起関係検出部44は、通知されたリストのOBJと共起関係にあるOBJを検出する(図15の処理P27)。例えば、共起関係検出部44は、テープOBJ管理DB43から、リストのOBJごとに時間誤差x以内のOBJを抽出してOBJリスト45を生成する。そして、共起関係検出部44は、OBJリスト45を読出OBJ最適化部46に出力する(ステップS19;図15の処理P28)。
読出OBJ最適化部46は、OBJリスト45から冗長性を排除したリストを読出実行部47に出力する(ステップS20;図15の処理P29)。
読出実行部47は、テープOBJ管理DB43に基づき、位置合わせ(location)処理の実行を抑制するように、リスト内のOBJをPV5cのテープ上の記録順に並び替える(ステップS21;図15の処理P30)。
読出実行部47は、並び替えたリストのうちの、テープ上位置で両端となる読出対象OBJの範囲内にあるOBJを抽出する(ステップS22)。そして、読出実行部47は、抽出したOBJ順に、PV5cからOBJを読み出し(図15の処理P31)、読み出したOBJをキャッシュ部42に書き込む(登録する)(図15の処理P32)。
読出実行部47は、PV5cからキャッシュ部42にOBJを読み出したことを読出結果返信部48に通知する(ステップS23;図15の処理P33)。
読出結果返信部48は、キャッシュ部42から読出対象OBJを読み出し、読出対象OBJを要求の送信元(例えばAPP6a)に読出結果として送信(応答)し(ステップS24;図15の処理P34)、処理がステップS17に移行する。
〔2〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
例えば、図4に示す階層化ストレージ装置2の各機能ブロックは、それぞれ任意の組み合わせで併合してもよく、分割してもよい。
また、一実施形態に係る階層化ストレージ装置2は、例えば、仮想マシン(VM;Virtual Machine)であってもよいし、物理マシンであってもよい。また、HDD層3及びテープ層4のそれぞれの機能は、1台のコンピュータ2aにより実現されてもよいし、2台以上のコンピュータ2aにより実現されてもよい。さらに、HDD層3及びテープ層4のそれぞれの機能のうちの少なくとも一部は、クラウド環境により提供されるHWリソース及びNW(Network)リソースを用いて実現されてもよい。
〔3〕付記
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
複数のデータを記録する記録媒体に対するアクセスを制御する制御装置であって、
前記複数のデータのそれぞれの前記記録媒体における記録位置に関する情報と、前記複数のデータのそれぞれが前記記録媒体から読み出された読出時刻とを含む第1情報に基づき、前記記録媒体に対する第1読出要求の読出対象となる第1データと、前記第1データと共起関係にある第2データとを、前記記録媒体からそれぞれ読み出して記憶領域に格納し、
前記記録媒体に対する第2読出要求であって、前記第2データを読出対象とする前記第2読出要求が発生した場合、前記記憶領域に格納した前記第2データを読み出して前記第2読出要求の送信元に送信する、
制御部を備える、制御装置。
(付記2)
前記制御部は、前記格納する処理において、前記第1情報を参照して、前記第1データの読出時刻との時間誤差が所定時間内の読出時刻であるデータを前記第2データとして検出する、
付記1に記載の制御装置。
(付記3)
前記制御部は、
互いに異なる複数の前記第1データを読出対象とする複数の前記第1読出要求を受信し、
前記格納する処理において、前記第1情報を参照して、前記記録媒体における記録位置が、前記記録媒体のデータ記録順序において、前記複数の第1データの記録位置を両端とする範囲内であるデータを前記第2データとして検出する、
付記2に記載の制御装置。
(付記4)
前記制御部は、前記格納する処理において、前記第1情報を参照して、前記記録媒体のデータ記録順序に基づく順序で、前記第1データと複数の前記第2データとを前記記録媒体からそれぞれ読み出して前記記憶領域に格納する、
付記2又は付記3に記載の制御装置。
(付記5)
前記制御部は、前記格納する処理において、前記記憶領域に格納した前記第1データを読み出して前記第1読出要求の送信元に送信する、
付記1~付記4のいずれか1項に記載の制御装置。
(付記6)
前記制御部は、
前記記録媒体よりもアクセス速度の高い記憶装置に前記複数のデータを格納し、
前記記憶装置から前記記録媒体への前記複数のデータの移行要求が発生した場合、前記複数のデータを前記記録媒体に格納し、前記記憶装置における前記複数のデータのそれぞれの読出時刻を、前記記録媒体における前記複数のデータのそれぞれの読出時刻の初期値として前記第1情報に記録する、
付記1~付記5のいずれか1項に記載の制御装置。
(付記7)
複数のデータを記録する記録媒体に対するアクセスを制御するコンピュータが、
前記複数のデータのそれぞれの前記記録媒体における記録位置に関する情報と、前記複数のデータのそれぞれが前記記録媒体から読み出された読出時刻とを含む第1情報に基づき、前記記録媒体に対する第1読出要求の読出対象となる第1データと、前記第1データと共起関係にある第2データとを、前記記録媒体からそれぞれ読み出して記憶領域に格納し、
前記記録媒体に対する第2読出要求であって、前記第2データを読出対象とする前記第2読出要求が発生した場合、前記記憶領域に格納した前記第2データを読み出して前記第2読出要求の送信元に送信する、
処理を実行する、データ読出方法。
(付記8)
前記格納する処理は、前記第1情報を参照して、前記第1データの読出時刻との時間誤差が所定時間内の読出時刻であるデータを前記第2データとして検出する処理を含む、
付記7に記載のデータ読出方法。
(付記9)
互いに異なる複数の前記第1データを読出対象とする複数の前記第1読出要求を受信する、
処理を前記コンピュータが実行し、
前記格納する処理は、前記第1情報を参照して、前記記録媒体における記録位置が、前記記録媒体のデータ記録順序において、前記複数の第1データの記録位置を両端とする範囲内であるデータを前記第2データとして検出する処理を含む、
付記8に記載のデータ読出方法。
(付記10)
前記格納する処理は、前記第1情報を参照して、前記記録媒体のデータ記録順序に基づく順序で、前記第1データと複数の前記第2データとを前記記録媒体からそれぞれ読み出して前記記憶領域に格納する処理を含む、
付記8又は付記9に記載のデータ読出方法。
(付記11)
前記格納する処理は、前記記憶領域に格納した前記第1データを読み出して前記第1読出要求の送信元に送信する処理を含む、
付記7~付記10のいずれか1項に記載のデータ読出方法。
(付記12)
前記記録媒体よりもアクセス速度の高い記憶装置に前記複数のデータを格納し、
前記記憶装置から前記記録媒体への前記複数のデータの移行要求が発生した場合、前記複数のデータを前記記録媒体に格納し、前記記憶装置における前記複数のデータのそれぞれの読出時刻を、前記記録媒体における前記複数のデータのそれぞれの読出時刻の初期値として前記第1情報に記録する、
処理を前記コンピュータが実行する、
付記7~付記11のいずれか1項に記載のデータ読出方法。
1 オブジェクトストレージシステム(システム)
2 階層化ストレージ装置
2a、10 コンピュータ
2b 記憶装置
2c、5d コントローラ
2d 記憶部
20 制御部
3 HDD層
31 OBJ格納部
32 読出時刻DB
33 OBJ移行部
34 読出時刻管理部
4 テープ層
41 読書要求制御部
42 キャッシュ部
43 テープOBJ管理DB
44 共起関係検出部
45 OBJリスト
46 読出OBJ最適化部
47 読出実行部
48 読出結果返信部
5 テープ装置
5a ドライブ装置
5b ロボット
5c PV
6 ホスト装置
6a アプリケーション(APP)

Claims (7)

  1. 複数のデータを記録する記録媒体に対するアクセスを制御する制御装置であって、
    前記複数のデータのそれぞれの前記記録媒体における記録位置に関する情報と、前記複数のデータのそれぞれが前記記録媒体から読み出された読出時刻とを含む第1情報に基づき、前記記録媒体に対する第1読出要求の読出対象となる第1データと、前記第1データと共起関係にある第2データとを、前記記録媒体からそれぞれ読み出して記憶領域に格納し、
    前記記録媒体に対する第2読出要求であって、前記第2データを読出対象とする前記第2読出要求が発生した場合、前記記憶領域に格納した前記第2データを読み出して前記第2読出要求の送信元に送信する、
    制御部を備える、制御装置。
  2. 前記制御部は、前記格納する処理において、前記第1情報を参照して、前記第1データの読出時刻との時間誤差が所定時間内の読出時刻であるデータを前記第2データとして検出する、
    請求項1に記載の制御装置。
  3. 前記制御部は、
    互いに異なる複数の前記第1データを読出対象とする複数の前記第1読出要求を受信し、
    前記格納する処理において、前記第1情報を参照して、前記記録媒体における記録位置が、前記記録媒体のデータ記録順序において、前記複数の第1データの記録位置を両端とする範囲内であるデータを前記第2データとして検出する、
    請求項2に記載の制御装置。
  4. 前記制御部は、前記格納する処理において、前記第1情報を参照して、前記記録媒体のデータ記録順序に基づく順序で、前記第1データと複数の前記第2データとを前記記録媒体からそれぞれ読み出して前記記憶領域に格納する、
    請求項2又は請求項3に記載の制御装置。
  5. 前記制御部は、前記格納する処理において、前記記憶領域に格納した前記第1データを読み出して前記第1読出要求の送信元に送信する、
    請求項1~請求項4のいずれか1項に記載の制御装置。
  6. 前記制御部は、
    前記記録媒体よりもアクセス速度の高い記憶装置に前記複数のデータを格納し、
    前記記憶装置から前記記録媒体への前記複数のデータの移行要求が発生した場合、前記複数のデータを前記記録媒体に格納し、前記記憶装置における前記複数のデータのそれぞれの読出時刻を、前記記録媒体における前記複数のデータのそれぞれの読出時刻の初期値として前記第1情報に記録する、
    請求項1~請求項5のいずれか1項に記載の制御装置。
  7. 複数のデータを記録する記録媒体に対するアクセスを制御するコンピュータが、
    前記複数のデータのそれぞれの前記記録媒体における記録位置に関する情報と、前記複数のデータのそれぞれが前記記録媒体から読み出された読出時刻とを含む第1情報に基づき、前記記録媒体に対する第1読出要求の読出対象となる第1データと、前記第1データと共起関係にある第2データとを、前記記録媒体からそれぞれ読み出して記憶領域に格納し、
    前記記録媒体に対する第2読出要求であって、前記第2データを読出対象とする前記第2読出要求が発生した場合、前記記憶領域に格納した前記第2データを読み出して前記第2読出要求の送信元に送信する、
    処理を実行する、データ読出方法。
JP2021043071A 2021-03-17 2021-03-17 制御装置及びデータ読出方法 Pending JP2022142843A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021043071A JP2022142843A (ja) 2021-03-17 2021-03-17 制御装置及びデータ読出方法
US17/541,323 US20220300191A1 (en) 2021-03-17 2021-12-03 Control apparatus and method for reading data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021043071A JP2022142843A (ja) 2021-03-17 2021-03-17 制御装置及びデータ読出方法

Publications (1)

Publication Number Publication Date
JP2022142843A true JP2022142843A (ja) 2022-10-03

Family

ID=83284696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021043071A Pending JP2022142843A (ja) 2021-03-17 2021-03-17 制御装置及びデータ読出方法

Country Status (2)

Country Link
US (1) US20220300191A1 (ja)
JP (1) JP2022142843A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11934699B2 (en) * 2022-03-21 2024-03-19 International Business Machines Corporation Linear tape file system unoptimized read detection

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10397368B2 (en) * 2015-06-25 2019-08-27 International Business Machines Corporation Data prefetching for large data systems
CN110226158B (zh) * 2017-12-29 2021-06-29 华为技术有限公司 一种数据预取方法、装置和存储设备

Also Published As

Publication number Publication date
US20220300191A1 (en) 2022-09-22

Similar Documents

Publication Publication Date Title
US10430286B2 (en) Storage control device and storage system
KR100962883B1 (ko) 소스 데이터를 타겟 데이터로 이전하는 방법, 시스템 및제조물
EP1769329B1 (en) Dynamic loading of virtual volume data in a virtual tape server
US9971527B2 (en) Apparatus and method for managing storage for placing backup data into data blocks based on frequency information
JP4402103B2 (ja) データ記憶装置、そのデータ再配置方法、プログラム
WO2017148242A1 (zh) 一种访问叠瓦式磁记录smr硬盘的方法及服务器
US8549243B2 (en) Regeneration of deleted data
US11543989B2 (en) Storage system and control method thereof
US20160246587A1 (en) Storage control device
CN110147296B (zh) 数据处理方法、装置、设备及可读存储介质
US8359439B2 (en) Backup apparatus, backup method, and file reading apparatus
JP2017211920A (ja) ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US9372633B2 (en) Indication of a destructive write via a notification from a disk drive that emulates blocks of a first block size within blocks of a second block size
JP2022142843A (ja) 制御装置及びデータ読出方法
US11474750B2 (en) Storage control apparatus and storage medium
US10365846B2 (en) Storage controller, system and method using management information indicating data writing to logical blocks for deduplication and shortened logical volume deletion processing
US11010091B2 (en) Multi-tier storage
KR100925523B1 (ko) 저장 장치의 오류 발생 방법 및 오류 발생 위치의 선택방법
US20230236865A1 (en) Locating Virtual Tape File Systems on a Virtual Tape Emulator
US20220091746A1 (en) Storage device and storage control method
JP4644446B2 (ja) 関係に関する追加動作を実行する時にターゲット・ボリュームとソース・ボリュームとの間の関係に関する情報を管理する方法、システム、およびプログラム
CN115016733A (zh) 一种脏数据删除方法、装置及电子设备
JP2022166986A (ja) ストレージ制御装置およびストレージ制御方法
JP4075790B2 (ja) 複合計算機システムおよび複合i/oシステム
CN114461135A (zh) 一种自组织网络的边缘云迁移的数据清理方法