JP6822274B2 - 情報処理システム、方法、及びプログラム - Google Patents

情報処理システム、方法、及びプログラム Download PDF

Info

Publication number
JP6822274B2
JP6822274B2 JP2017068585A JP2017068585A JP6822274B2 JP 6822274 B2 JP6822274 B2 JP 6822274B2 JP 2017068585 A JP2017068585 A JP 2017068585A JP 2017068585 A JP2017068585 A JP 2017068585A JP 6822274 B2 JP6822274 B2 JP 6822274B2
Authority
JP
Japan
Prior art keywords
storage device
data
ssd
scm
load
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
JP2017068585A
Other languages
English (en)
Other versions
JP2018169941A (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.)
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 JP2017068585A priority Critical patent/JP6822274B2/ja
Priority to US15/924,927 priority patent/US10860225B2/en
Publication of JP2018169941A publication Critical patent/JP2018169941A/ja
Priority to JP2020190611A priority patent/JP6969656B2/ja
Application granted granted Critical
Publication of JP6822274B2 publication Critical patent/JP6822274B2/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/065Replication mechanisms
    • 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/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、負荷分散される複数の記憶装置を備えたストレージ装置にアクセスする情報処理装置、方法、及びプログラムに関する。
複数の記憶装置を備え、ストレージ装置内で負荷分散する技術が知られている(例えば特許文献1に記載の技術)。
例えば、半導体素子メモリを用いた高速なSSD(Solid State Drive)と低速なHDD(Hard Disk Drive)を利用するストレージシステムが知られている。このようなストレージシステムにおいて、従来は、ストレージシステム内部に具備されたコントローラが、データのアクセス頻度に応じてSSDとHDD間でデータ移動を行う階層制御を行っていた。このようなストレージシステムでは、まずSSDにデータが書き込まれ、アクセス頻度が低いデータはHDDに移動させられる。その後、そのようなデータにアクセスがあった場合に、HDD内のデータがSSDに移動させられて使用される。
近年、従来のNAND型フラッシュメモリよりさらに高速な、Storage Class Memory(以下「SCM」と呼ぶ)を採用したSSD(以下「SCM SSD」と呼ぶ)を、ストレージシステムに利用することが期待されている。
特許公開平9−44381号公報
しかし、ストレージシステムでSCM SSDが採用される場合、従来技術のように、システム内部のコントローラによりその中に閉じた負荷分散を行うと、レイテンシが悪化するため、SCMの高速性を十分に活かせないという課題があった。
そこで、本発明の1つの側面では、ストレージシステムに搭載されたSCM SSDの高速性を活かすことのできる情報処理装置を提供することを目的とする。
態様の一例では、第1の記憶装置と、第1の記憶装置よりもアクセス速度が速い第2の記憶装置にアクセス可能情報処理装置における、第2の記憶装置へのリクエスト中のリクエストに関する情報を保持する保持部と、リクエストに関する情報に基づいて、第2の記憶装置の負荷を判定する判定部と、第2の記憶装置のデータを読み出したときに、判定部が第2の記憶装置の負荷が第1の閾値に比較して高いと判定した場合に、第2の記憶装置から読み出したデータを第1の記憶装置に移動し、第1の記憶装置のデータを読み出したときに、判定部が第2の記憶装置の負荷が第2の閾値に比較して低いと判定した場合に、第1の記憶装置から読み出したデータを第2の記憶装置に移動する制御を行う制御部と、を具備する。
ストレージシステムに搭載されたSCM SSDの高速性を活かすことのできる情報処理装置を提供することが可能となる。
実施形態が採用するストレージシステムの構成例を示す図である。 実施形態が採用するストレージシステムの構成で一般的に考えられる制御手法とその課題を説明する図である。 第1の実施形態の構成及び制御方式の説明図である。 第1の実施形態におけるデータ読出し時の制御動作の説明図である。 第1の実施形態におけるデータ書込時の制御動作の説明図である。 第2の実施形態の制御動作の説明図である。 第3の実施形態の制御動作の説明図である。 第4の実施形態の制御動作の説明図である。 第1及び第2の実施形態のシステム構成例を示す図である。 負荷状態保持部が保持する負荷状態に関する情報のデータ構成例を示す図である。 第1の実施形態におけるマスタサーバの制御処理例を示すフローチャートである。 第1の実施形態におけるデータ読出し時の制御処理例を示すフローチャートである。 第1の実施形態におけるデータ書込み時の第1の制御処理例を示すフローチャートである。 第1の実施形態におけるデータ書込み時の第2の制御処理例を示すフローチャートである。 第2の実施形態におけるデータ書込み時の制御処理例を示すフローチャートである。 第2の実施形態におけるデータ読出し時の第1の制御処理例を示すフローチャートである。 第2の実施形態におけるデータ読出し時の制御処理例(その2)を示すフローチャートである。 第3の実施形態のシステム構成例を示す図である。 第3の実施形態におけるデータ読出し時の第1の制御処理例を示すフローチャートである。 第3の実施形態におけるデータ書込み時の第1の制御処理例を示すフローチャートである。 第3の実施形態におけるデータ書込み時の第2の制御処理例を示すフローチャートである。 第3の実施形態におけるデータ読出し時の第2の制御処理例を示すフローチャートである。 第3の実施形態におけるデータ読出し時の第3の制御処理例を示すフローチャートである。 第4の実施形態のシステム構成例を示す図である。 第4の実施形態における各サーバによる負荷情報受信及び負荷状態更新の制御処理例を示すフローチャートである。 第4の実施形態におけるデータ読出し時の第1の制御処理例を示すフローチャートである。 第4の実施形態におけるデータ書込み時の第1の制御処理例を示すフローチャートである。 第4の実施形態におけるデータ書込み時の第2の制御処理例を示すフローチャートである。 第4の実施形態におけるデータ読出し時の第2の制御処理例を示すフローチャートである。 第4の実施形態におけるデータ読出し時の第3の制御処理例を示すフローチャートである。 複数SSDでRAIDを構成する実施形態の構成例を示す図である。 各実施形態による情報処理装置をソフトウェア処理として実現できるコンピュータのハードウェア構成の一例を示す図である。
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。図1は、後述する各実施形態が採用するストレージシステムの構成例を示す図である。この構成例では、サーバ103が、スイッチ(以下「Pcie switch」と呼ぶ)104を介して、NAND型フラッシュメモリを使用したSSD(以下「NAND SSD」と呼ぶ)102と、SCM SSD102にアクセスすることが可能である。NAND SSD101は第1の記憶装置として動作し、SCM SSD102はNAND SSD101よりもアクセス速度が速い第2の記憶装置として動作する。サーバ103は、#1から#N(Nは任意の自然数)の1台以上から構成される。Pcie switch104は、拡張バスの一種であるPCI Expressシリアルインタフェースをサポートするスイッチである。この構成例では、NAND SSD101とSCM SSD102へのデータの振分け制御を行う専用のコントローラは置かれず、サーバ103が直接、NAND SSD102とSCM SSD102とを制御する。
図2は、図1に例示されるストレージシステムの構成で一般的に考えられる制御手法とその課題を説明する図である。一般的に考えられる制御手法は、図2(a)に示されるものである。各サーバ103からのデータ書込み(write)及びデータ読出し(read)は速度の速い方のSCM SSD102に対して行われる。そして、アクセス頻度が低いデータは、SCM SSD102から、速度の遅い方のNAND SSD101に移動させられる。
上記制御手法で、SCM SSD102に対する負荷が低い場合、例えばSCM SSD102へのリクエストキューに積まれているリクエストが1個で、NAND SSD101へのリクエストキューに積まれているリクエストも1個のような場合を考える。この場合、図2(b)の不等号記号として示されるように、SCM SSD102のレイテンシ=例えば10μs(マイクロ秒)は、NAND SSD101のレイテンシ=例えば60μsよりも大幅に小さく、SCM SSD102へのアクセス性能の方が高い。
一方、SCM SSD102に対する負荷の方が高くなる場合、例えばSCM SSD102へのリクエストキューに積まれているリクエストが10個で、NAND SSD101へのリクエストキューに積まれているリクエストも1個のような場合を考える。この場合には、図2(c)の不等号記号として示されるように、SCM SSD102のレイテンシ=例えば100μsの方が、NAND SSD101のレイテンシ=例えば60μsよりも大きくなってしまい、両者のアクセス性能が逆転してしまう。このように、上記一般的な制御手法では、SCM SSD102の大容量化により、SCM SSD102上のデータが増えると、SCM SSD102へのアクセスが増加する。その結果、SCM SSD102のコマンドの実行時間が遅くなり、SCM SSD102へのアクセス速度がNAND SSD101へのアクセス速度よりも遅くなるという課題がある。
図3は、上記課題を解決するための、図1の構成例を前提とする第1の実施形態の構成例と、その制御方式の説明図である。図3(a)は、第1の実施形態の構成例を示す図である。図3(a)において、図1の場合と同じ番号が付された部分は、図1の場合と同じものである。第1の実施形態の構成例は、図1の構成例に加えて、NAND SSD101及びSCM SSD102にアクセスする#1から#Nのサーバ103とは異なるマスタサーバ301を具備する。マスタサーバ301は、図3(a)の302として示されるように、SCM SSD102の負荷情報を#1から#Nの各サーバ103から集約し、SCM SSD102の負荷の大小(負荷状態)を判定する。各サーバ103は、マスタサーバ301からの通知に基づいてSCM SSD102の負荷状態を参照する。そして、各サーバ103は、図3(a)の303として示されるように、負荷状態に応じてデータをSCM SSD102とNAND SSD101間で移動することにより、SCM SSD102への負荷集中を軽減する。
負荷情報とは、各サーバ103においてSCM SSD102に対して発行されるリクエスト中のリクエストに関する情報であり、例えば、各サーバ103がSCM SSD102へのアクセスキューに蓄積しているコマンドの推定実行時間である。すなわち、負荷が高いことは、コマンドの推定実行時間が遅いことで判断し、負荷が低いことは、コマンドの推定実行時間が速いことで判断する。この推定実行時間は、下記数1式で示される演算により算出される。
Figure 0006822274
上記数1式において、「Ti 」は、#iのサーバ103(1≦i≦N)のSCM I/Oキューに蓄積されているコマンドの推定実行時間である。SCM I/Oキューとは、サーバ103内に実装され、SCM SSD102に対して発行されるコマンド(読出しコマンド、書込みコマンド等)を、それらの実行を待ち合わせるために先入れ先出しのリスト構造で保持するバッファメモリである。「M」は、SCM I/Oキューに蓄積されているコマンド数である。「Tcj」は、SCM I/Oキューに蓄積されているj番目のコマンドのコマンド処理時間である。「Tdj」は、SCM I/Oキューに蓄積されているj番目のコマンドのデータ転送時間である。
図3(b)は、1つのサーバ103において、SCM I/Oキューにキューイングされているコマンドと推定実行時間Ti との関係を示す説明図である。例えば「Read 8KB」、「Read 16KB」、及び「Read 64B」はそれぞれ、8KB(8キロバイト)、16KB、及び64B(64バイト)のデータを読み出すリード命令である。また、「Write 16KB」は、16KBのデータを書き込むライト命令である。SCM I/Oキューにキューイングされているこれらのコマンド毎に、コマンド処理時間Tcjとコマンド転送時間Tdjとが、図3(b)の右図に示されるように累算されることにより、1つのサーバ103における推定実行時間Ti が算出される。
マスタサーバ301は、#1から#Nの各サーバ103の推定実行時間Ti を合計した結果に基づいてSCM SSD102の負荷状態を判定し、負荷状態の大小が変化した場合に、その負荷状態を#1から#Nの各サーバ103にプッシュ通知する。この場合に、マスタサーバ301は、推定実行時間Ti の合計値が所定の閾値より小さければ負荷状態=負荷小、大きければ負荷状態=負荷大と判定する。この閾値は、システム要件(許容最大遅延時間)により決定され、例えば100μsである。
図4は、図3(a)の構成を有する第1の実施形態におけるデータ読出し時の制御動作の説明図である。
まず、図4(a)に示されるように、例えばサーバ103(#1)が、SCM SSD102のデータを読み出したとする(図4(a)のSTEP1)。このとき、サーバ103(#1)は、マスタサーバ301からのプッシュ通知により、SCM SSD102の負荷状態の判定結果を参照する。サーバ103(#1)は、SCM SSD102の負荷状態が所定の閾値に比較して高い場合、SCM SSD102から読み出したデータをNAND SSD101に移動して書き込む(図4(a)のSTEP2)。この場合、サーバ103(#1)は、SCM SSD102上にあった上記読み出したデータを削除(無効化)する。
一方、図4(b)に示されるように、例えばサーバ103(#1)が、NAND SSD101のデータを読み出したとする(図4(b)のSTEP1)。このときも、サーバ103(#1)は、マスタサーバ301からのプッシュ通知により、SCM SSD102の負荷状態の判定結果を参照する。サーバ103(#1)は、SCM SSD102の負荷状態が所定の閾値に比較して低い場合には、NAND SSD101から読み出したデータをSCM SSD102に移動して書き込む(図4(b)のSTEP2)。この場合、サーバ103(#1)は、NAND SSD101上にあった上記読み出したデータを削除(無効化)する。
図5(a)は、図3(a)の構成を有する第1の実施形態におけるデータ書込時の第1の制御動作の説明図である。例えばサーバ103(#1)は、マスタサーバ301からのプッシュ通知により、SCM SSD102の負荷状態の判定結果を参照する。サーバ103(#1)は、SCM SSD102の負荷状態が所定の閾値に比較して低い場合、データをSCM SSD102に書き込む(図5(a)のSTEP1)。一方、サーバ103(#1)は、SCM SSD102の負荷状態が所定の閾値に比較して高いと判定した場合、データをNAND SSD101に書き込む(図5(a)のSTEP2)。
図5(b)は、図3(a)の構成を有する第1の実施形態におけるデータ書込時の第2の制御動作の説明図である。例えばサーバ103(#1)は、書き込むべきデータのサイズが所定の閾値に比較して大きい場合には、データをNAND SSD101に書き込む(図5(b)のSTEP1)。一方、サーバ103(#1)は、書き込むべきデータのサイズが所定の閾値に比較して小さい場合には、マスタサーバ301からのプッシュ通知により、SCM SSD102の負荷状態の判定結果を参照する。サーバ103(#1)は、書き込むべきデータのサイズが小さく、かつSCM SSD102の負荷状態が所定の閾値に比較して低い場合には、データをSCM SSD102に書き込む(図5(b)のSTEP2)。サーバ103(#1)は、書き込むべきデータのサイズが小さく、かつSCM SSD102の負荷状態が所定の閾値に比較して高いと判定した場合には、データをNAND SSD101に書き込む(図5(b)のSTEP3)。
図2で前述したように、アクセス頻度が低いデータをSCM SSD102からNAND SSD101に移動させる一般的な制御方式では、SCM SSD102にアクセスが集中した場合に、SCM SSD102の性能低下を防止できない。
これに対して、図3から図5により説明した第1の実施形態では、SCM SSD102の負荷状態が判定される。そして、SCM SSD102に対して過度に集中しているデータが、集中していないNAND SSD101の方に移動させられる。このように、アクセス速度が遅いNAND SSD101の方にあえて負荷を分散させることで、NAND SSD101とSCM SSD102を合わせた平均のアクセス速度を上げることができるようになる。これにより、アクセス速度が速いSCM SSD102の方に負荷が集中しすぎてその性能が発揮できなくなるという状況を回避することが可能となる。
例えば図2(b)の例では、SCM SSD102に10個のリクエストが集中してレイテンシが100μsかかっていたところを、アクセスをNAND SSD101に分散させることにより、両者を併せたレイテンシを60μsにすることが可能となる。
このように、第1の実施形態では、SCM SSD102へのリクエスト中のリクエストに関する情報に基づいてSCM SSD102の負荷状態を判定することにより、ストレージシステムに搭載されたSCM SSD102の高速性を活かすことが可能となる。
また、第1の実施形態では、マスタサーバ301が、#1から#Nの各サーバ103におけるSCM SSD102に対する負荷情報を受け取る。そして、マスタサーバ301が、SCM SSD102に対する全体の負荷状態を判定し、その判定結果を各サーバ103にプッシュ通知する。これにより、NAND SSD101とSCM SSD102とからなるストレージシステムに対する効率的なアクセス制御が可能となる。
図6は、第2の実施形態の制御動作の説明図である。第2の実施形態の構成は、第1の実施形態に係る図3(a)の構成と同様であり、図1の構成例に加えて、NAND SSD101及びSCM SSD102にアクセスする#1から#Nのサーバ103とは異なるマスタサーバ301を具備する。第1の実施形態の場合と同様に、マスタサーバ301は、#1から#Nの各サーバ103の推定実行時間Ti を合計した結果に基づいてSCM SSD102の負荷状態を判定する(前述した数1式参照)。そして、マスタサーバ301は、負荷状態の大小が変化した場合に、その負荷状態を#1から#Nの各サーバ103にプッシュ通知する。各サーバ103は、データの書込み時には、NAND SSD101にデータを書き込むが、SCM SSD102の負荷状態に応じてSCM SSD102にコピーを作成する。各サーバ103は、データの読出し時には、SCM SSD102及びNAND SSD101から同時にデータを読み出し、又はSCM SSD102の負荷状態に応じてどちらか一方のデータを選択する。
第2の実施形態におけるデータ書込み時の具体的な制御動作について以下に説明する。サーバ103は、マスタサーバ301からのプッシュ通知によりSCM SSD102の負荷状態の判定結果を参照する。サーバ103は、SCM SSD102の負荷が所定の閾値に比較して低い場合に、NAND SSD101及びSCM SSD102の両方に同一のデータを書き込む。なお、データは、いったんSCM SSD102に書き込まれてから、NAND SSD101に転送されてもよい。一方、サーバ103は、SCM SSD102の負荷が所定の閾値に比較して高い場合に、NAND SSD101のみにデータを書き込む。
次に、第2の実施形態において、読み出すべきデータがNAND SSD101及びSCM SSD102の両方に記憶されている場合の、データ読出し時の具体的な第1の制御動作について以下に説明する。サーバ103は、マスタサーバ301からのプッシュ通知によりSCM SSD102の負荷状態の判定結果を参照する。サーバ103は、SCM SSD102の負荷が所定の閾値に比較して低い場合に、SCM SSD102からデータを読み出す。一方、サーバ103は、SCM SSD102の負荷が所定の閾値に比較して高い場合に、NAND SSD101からデータを読み出す。
続いて、第2の実施形態において、読み出すべきデータがNAND SSD101及びSCM SSD102の両方に記憶されている場合の、データ読出し時の具体的な第2の制御動作について以下に説明する。サーバ103は、NAND SSD101及びSCM SSD102の両方から同じデータを読み出して、速く読み出されたほうのデータを採用する。サーバ103は、NAND SSD101からのデータの読出しのほうが速かった場合には、SCM SSD102に記憶されている上記データを削除する。
更に、第2の実施形態において、読み出すべきデータがNAND SSD101のみに記憶されている場合の、データ読出し時の制御動作について以下に説明する。サーバ103は、マスタサーバ301からのプッシュ通知によりSCM SSD102の負荷状態の判定結果を参照する。サーバ103は、SCM SSD102の負荷が所定の閾値に比較して低い場合に、データをNAND SSD101から読み出した後に、その読み出したデータをSCM SSD102にコピーする。
以上の図6により説明した第2の実施形態では、第1の実施形態と同様に判定されたSCM SSD102の負荷状態に基づいて、NAND SSD101とSCM SSD102の両方又はNAND SSD101のみに対して、データの書込みが行われる。また、データの読出し時には、読出しが速い方のデータが採用される。更に、SCM SSD102の負荷が下がったら、SCM SSD102にもデータがコピーされる。このような制御動作により、第1の実施形態と同様に、アクセス速度が速いSCM SSD102の方に負荷が集中しすぎてその性能が発揮できなくなるという状況を回避することが可能となる。
図7は、第3の実施形態の制御動作の説明図である。第3の実施形態の構成は、第1又は第2の実施形態に係る図3(a)又は図6の構成とは異なり、マスタサーバ301は用意されない。そして、図7の701(#1)から701(#N)として示されるように、#1から#Nの各サーバ103が個別に、SCM SSD102に関する負荷情報を収集し、自装置でSCM SSD102の負荷状態を判定する。SCM SSD102の負荷状態の判定結果に基づく制御動作としては、第1の実施形態で説明した制御動作、又は第2の実施形態で説明した制御動作を採用することができる。
図8は、第4の実施形態の制御動作の説明図である。第4の実施形態の構成は、第3の実施形態の場合と同様に、マスタサーバ301は用意されない。そして、図8の802として示されるサーバ間通信により、図8の801(#1)から801(#N)として示されるように、#1から#Nの各サーバ103が、SCM SSD102に関する負荷情報を共有する。そして、#1から#Nの各サーバ103が、上記共有した負荷情報801に基づいて、自装置でSCM SSD102の負荷状態を判定する。SCM SSD102の負荷状態の判定結果に基づく制御動作としては、第1の実施形態で説明した制御動作、又は第2の実施形態で説明した制御動作を採用することができる。
図9は、図3(a)の第1及び第2の実施形態の構成に対応するシステム構成例を示す図である。図9において、NAND SSD101、SCM SSD102、#1から#Nのサーバ103、Pcie switch104、及びマスタサーバ301はそれぞれ、図3(a)の場合の同じ参照番号を有する各部分に対応する。
マスタサーバ301は、負荷状態保持部901、負荷状態判定部902、負荷情報受信部903、及び負荷状態通知部904を有する。
負荷状態保持部901は、SCM SSD102の負荷状態に関する情報を保持する。負荷状態判定部902は、#1から#Nの各サーバ103から負荷情報受信部903を介してSCM SSD102の負荷情報を受信し、負荷判定を行い、判定結果が変化した場合に、負荷状態を負荷状態通知部904を介して各サーバ103に通知する。
負荷情報受信部903は、#1から#Nの各サーバ103からSCM SSD102の負荷情報を受信し、負荷状態判定部902に引き渡す。
負荷状態通知部904は、負荷状態判定部902からの指示により、#1から#Nの各サーバ103に、負荷状態をプッシュ通知する。
次に、#1から#Nのサーバ103は、アプリケーション実行部910、アクセス制御部911、NAND I/Oキュー912、SCM I/Oキュー913、Pcie I/F914、負荷情報通知部915、及び負荷状態受信部916を具備する。
アプリケーション実行部910は、NAND SSD101及びSCM SSD102へのアクセスを伴う処理を実行する。第1の実施形態の場合において、アクセス制御部911は、負荷状態受信部916を介してマスタサーバ301から受信したSCM SSD102の負荷状態に基づいて、データ書込み先の決定と、データの移動を行う。また、アクセス制御部911は、SCM I/Oキュー913の状態が変化したときに、前述の数1式で示される演算に基づいて推定実行時間を算出し、負荷情報通知部915を介してマスタサーバ301に、その推定実行時間を負荷情報として通知する。第2の実施形態におけるアクセス制御部911の動作については、後述する。
NAND I/Oキュー912は、NAND SSD101に対して発行されるコマンド(読出しコマンド、書込みコマンド等)を、それらの実行を待ち合わせるために先入れ先出しのリスト構造で保持するバッファである。
SCM I/Oキュー913も同様に、前述したように、SCM SSD102に対して発行されるコマンドを、それらの実行を待ち合わせるために先入れ先出しのリスト構造で保持するバッファである。
負荷状態受信部916は、マスタサーバ301内の負荷状態通知部904から、SCM SSD102の負荷状態を受信し、保持する。
負荷情報通知部915は、アクセス制御部911から取得したSCM SSD102の負荷情報を、マスタサーバ301内の負荷情報受信部903に通知する。
Pcie I/F914は、NAND I/Oキュー912から発行されるコマンドデータを、Pcie switch104を介してNAND SSD101に転送するための、PCI Expressシリアルインタフェース回路である。
図10は、図9の負荷状態保持部901が保持する負荷状態に関する情報のデータ構成例を示す図である。負荷状態保持部901は、#1から#Nのサーバ103が数1式で示される演算で算出し通知してきた負荷情報である推定時間Ti (1≦i≦N)と、それらの合計値(負荷情報合計値)を保持する。そして、負荷状態保持部901は、負荷状態判定部902が上記負荷情報合計値をシステム要件(許容最大遅延時間)により決定される閾値(例えば100μs)と比較した結果(大、等しい、小)を、負荷状態として保持する。負荷状態判定部902は、判定タイミング毎に、この負荷状態の値が変化したか否かを監視し、発生した変化を新たな負荷状態として、負荷状態通知部904を介して#1から#Nの各サーバ103内の負荷状態受信部916にプッシュ通知する。
図11は、図9に例示される第1の実施形態のシステム構成例における図9のマスタサーバ301の制御処理例を示すフローチャートである。
マスタサーバ301内の負荷情報受信部903が、任意のサーバiから負荷情報である推定時間Ti を受信するまで待機する(ステップS1101の判定がNOの繰返し)。
負荷情報受信部903は、上記負荷情報を受信すると(ステップS1101の判定がYESになると)、受信したサーバiの負荷情報である推定時間Ti を、負荷状態保持部901に図10に例示されるデータ形式で格納する(ステップS1102)。
次に、マスタサーバ301内の負荷状態判定部902は、負荷状態保持部901内の負荷情報合計値(図10参照)を再計算し、閾値と大小比較を行い、その判定結果を新たな負荷状態とする(ステップS1103)。
負荷状態判定部902は、ステップS1103で再計算した新たな負荷状態が判定前の負荷状態から変化したか否かを判定する(ステップS1104)。
ステップS1104の判定がYESならば、負荷状態判定部902は、負荷状態保持部901にステップS1103で新たに取得した負荷状態を図10に例示されるデータ形式で格納する。そして、負荷状態判定部902は、SCM SSD102に関する上記負荷状態を、図9の負荷状態通知部904を介して#1から#Nの各サーバ103内の負荷状態受信部916に通知する(ステップS1105)。
ステップS1104の判定がNOならば、負荷状態判定部902は、ステップS1105の処理はスキップする。
その後、マスタサーバ301の制御が、ステップS1101の負荷情報受信部903の待機処理に戻る。
図12は、図9に例示される第1の実施形態のシステム構成例における#1から#Nの各サーバ103内のアクセス制御部911によるデータ読出し時の制御処理例を示すフローチャートである。この制御処理例は、図4で説明した第1の実施形態におけるデータ読出し時の制御動作に対応する。
まず、アクセス制御部911は、図9のアプリケーション実行部910から要求された読出しデータ(読み出されるべきデータ)が、SCM SSD102にあるか否かを判定する(ステップS1201)。ここで、アクセス制御部911は、読み出すべき各データがNAND SSD101に記憶されているかSCM SSD102に記憶されているかを管理できているものとする。
読出しデータがSCM SSD102にあると判定した(ステップS1201の判定がYESである)場合、アクセス制御部911は、SCM I/Oキュー913に、Readリクエスト(読出し要求)を発行する。続いて、アクセス制御部911は、SCM I/Oキュー913の状態から前述した数1式の演算により負荷情報である推定時間Ti (サーバ103の番号を#iとする)を算出する。そして、アクセス制御部911は、算出した負荷情報を、自装置内の負荷情報通知部915を介してマスタサーバ301内の負荷情報受信部903に通知する(以上、ステップS1202)。
次に、アクセス制御部911は、SCM SSD102から読出しデータを読み出す(ステップS1203)。
次に、アクセス制御部911は、マスタサーバ301から負荷状態受信部916を介して受信している(プッシュ通知されている)負荷状態に基づいて、SCM SSD102が高負荷状態にあるか否かを判定する(ステップS1204)。
SCM SSD102が高負荷状態にあると判定した(ステップS1204の判定がYESである)場合には、アクセス制御部911は、次の動作を実行する。アクセス制御部911は、NAND I/Oキュー912にWriteリクエスト(書込み要求)を発行することにより、ステップS1203でSCM SSD102から読み出したデータをNAND SSD101に書き込む。また、アクセス制御部911は、SCM SSD102に記憶されている上記読み出したデータは、削除(無効化)する(以上、ステップS1205)。
SCM SSD102が低負荷状態にあると判定した(ステップS1204の判定がNOである)場合には、アクセス制御部911は、ステップS1205の処理はスキップする。
その後、アクセス制御部911は、図12のフローチャートで例示される今回のデータ読出しの制御処理を終了する。
以上のステップS1202からS1205の一連の処理は、図4(a)で説明した動作に対応する。
一方、読出しデータがNAND SSD101にあると判定した(ステップS1201の判定がNOである)場合、アクセス制御部911は、NAND I/Oキュー912に、Readリクエストを発行する(ステップS1206)。
次に、アクセス制御部911は、NAND SSD101から読出しデータを読み出す(ステップS1207)。
次に、アクセス制御部911は、マスタサーバ301から負荷状態受信部916を介して受信している負荷状態に基づいて、SCM SSD102が高負荷状態にあるか否かを判定する(ステップS1208)。
SCM SSD102が低負荷状態にあると判定した(ステップS1208の判定がNOである)場合には、アクセス制御部911は、SCM I/Oキュー913にWriteリクエストを発行することにより、ステップS1207でNAND SSD101から読み出したデータをSCM SSD102に書き込む。また、アクセス制御部911は、NAND SSD101に記憶されている上記読み出したデータは、削除(無効化)する(以上、ステップS1209)。
SCM SSD102が高負荷状態にあると判定した(ステップS1208の判定がYESである)場合には、アクセス制御部911は、ステップS1209の処理はスキップする。
その後、アクセス制御部911は、図12のフローチャートで例示される今回のデータ読出しの制御処理を終了する。
以上のステップS1206からS1209の一連の処理は、図4(b)で説明した動作に対応する。
図13は、図9に例示される第1の実施形態のシステム構成例における#1から#Nの各サーバ103内のアクセス制御部911によるデータ書込み時の第1の制御処理例を示すフローチャートである。この制御処理例は、図5(a)で説明した第1の実施形態におけるデータ書込み時の第1の制御動作に対応する。
まず、アクセス制御部911は、マスタサーバ301から負荷状態受信部916を介して受信している負荷状態に基づいて、SCM SSD102が高負荷状態にあるか否かを判定する(ステップS1301)。
SCM SSD102が低負荷状態にあると判定した(ステップS1301の判定がNOである)場合には、アクセス制御部911は、SCM I/Oキュー913にWriteリクエストを発行する。続いて、アクセス制御部911は、SCM I/Oキュー913の状態から前述した数1式の演算により負荷情報である推定時間Ti を算出する。そして、アクセス制御部911は、算出した負荷情報を、自装置内の負荷情報通知部915を介してマスタサーバ301内の負荷情報受信部903に通知する(以上、ステップS1302)。
アクセス制御部911は、SCM SSD102に、図9のアプリケーション実行部910から引き渡されたデータを書き込む(ステップS1303)。その後、アクセス制御部911は、図13のフローチャートで例示される今回のデータ書込みの制御処理を終了する。
SCM SSD102が高負荷状態にあると判定した(ステップS1301の判定がYESである)場合には、アクセス制御部911は、NAND I/Oキュー912にWriteリクエストを発行する(ステップS1304)。
続いて、アクセス制御部911は、NAND SSD101にデータを書き込む(ステップS1305)。その後、アクセス制御部911は、図13のフローチャートで例示される今回のデータ書込みの制御処理を終了する。
図14は、図9に例示される第1の実施形態のシステム構成例における#1から#Nの各サーバ103内のアクセス制御部911によるデータ書込み時の第2の制御処理例を示すフローチャートである。この制御処理例は、図5(b)で説明した第1の実施形態におけるデータ書込み時の第2の制御動作に対応する。図14において、図13の場合と同じステップ番号を付した処理は、図13の場合と同じ処理である。図14が図13と異なる点は、ステップS1401である。
アクセス制御部911は、図9のアプリケーション実行部910から引き渡された書込みデータ(書き込まれるべきデータ)は、データサイズが所定の閾値以上であるか否かを判定する(ステップS1401)。
書込みデータのサイズが閾値以上であると判定した(ステップS1401の判定がYESである)場合には、アクセス制御部911は、図13で説明したステップS1304及びS1305の処理を実行して、データをNAND SSD101に書き込む。
一方、書込みデータのサイズが閾値以上ではないと判定した(ステップS1401の判定がNOである)場合には、アクセス制御部911は、図13で説明したステップS1301以上の処理を実行する。即ち、アクセス制御部911は、書込みデータのサイズが小さく、かつSCM SSD102が低負荷状態であれば、データをSCM SSD102に書き込む(ステップS1301→S1302、S1303)。一方、アクセス制御部911は、書込みデータのサイズが小さく、かつSCM SSD102が高負荷状態であれば、データをNAND SSD101に書き込む(ステップS1301→S1304、S1305)。
次に、第2の実施形態の詳細について説明する。第2の実施形態のシステム構成例は、第1の実施形態の場合と同様に、図9に例示される構成を有する。
図6の説明で前述したように、第2の実施形態の場合において、アクセス制御部911は、データ書込み時は、NAND SSD101にデータを書き込み、SCM SSD102の負荷が低い場合には、同一のデータをSCM SSD102にも書き込む。アクセス制御部911は、データ読出し時には、SCM SSD102の負荷状態により、データ読込み元を決定し、そこからデータを読み出す。
図15は、第2の実施形態におけるデータ書込み時の制御処理例を示すフローチャートである。この制御処理例は、図6で説明した第2の実施形態におけるデータ書込み時の制御動作に対応する。
まず、アクセス制御部911は、マスタサーバ301から負荷状態受信部916を介して受信している負荷状態に基づいて、SCM SSD102が高負荷状態にあるか否かを判定する(ステップS1501)。
SCM SSD102が低負荷状態にあると判定した(ステップS1501の判定がNOである)場合には、アクセス制御部911は、NAND I/Oキュー912にWriteリクエストを発行し、また、SCM I/Oキュー913にもWriteリクエストを発行する。続いて、アクセス制御部911は、SCM I/Oキュー913の状態から前述した数1式の演算により負荷情報である推定時間Ti を算出する。そして、アクセス制御部911は、算出した負荷情報を、自装置内の負荷情報通知部915を介してマスタサーバ301内の負荷情報受信部903に通知する(以上、ステップS1502)。
アクセス制御部911は、NAND SSD101とSCM SSD102の両方に、図9のアプリケーション実行部910から引き渡されたデータを書き込む(ステップS1503)。その後、アクセス制御部911は、図15のフローチャートで例示される今回のデータ書込みの制御処理を終了する。
SCM SSD102が高負荷状態にあると判定した(ステップS1501の判定がYESである)場合には、アクセス制御部911は、NAND I/Oキュー912にWriteリクエストを発行する(ステップS1504)。
続いて、アクセス制御部911は、NAND SSD101のみにデータを書き込む(ステップS1505)。その後、アクセス制御部911は、図15のフローチャートで例示される今回のデータ書込みの制御処理を終了する。
図16は、第2の実施形態におけるデータ読出し時の第1の制御処理例を示すフローチャートである。この制御処理例は、図6で説明した第2の実施形態におけるデータ読出し時の第1の制御動作に対応する。
まず、アクセス制御部911は、アプリケーション実行部910から要求された読出しデータが、NAND SSD101のほかにSCM SSD102にもあるか否かを判定する(ステップS1601)。これは、図15のフローチャートのデータ書込みの制御処理により、NAND SSD101とSCM SSD102の両方にデータが書き込まれている場合に対応する判定処理である。
読出しデータがSCM SSD102にもある(ステップS1601の判定がYESである)場合、アクセス制御部911は、マスタサーバ301から負荷状態受信部916を介して受信している負荷状態に基づいて、SCM SSD102が高負荷状態にあるか否かを判定する(ステップS1602)。
SCM SSD102が低負荷状態にあると判定した(ステップS1602の判定がNOである)場合には、SCM SSD102から読出しを行った方が速いので、アクセス制御部911は、SCM I/Oキュー913に、Readリクエストを発行する。続いて、アクセス制御部911は、SCM I/Oキュー913の状態から前述した数1式の演算により負荷情報である推定時間Ti を算出する。そして、アクセス制御部911は、算出した負荷情報を、自装置内の負荷情報通知部915を介してマスタサーバ301内の負荷情報受信部903に通知する(以上、ステップS1603)。
次に、アクセス制御部911は、SCM SSD102から読出しデータを読み出す(ステップS1604)。
次に、アクセス制御部911は、マスタサーバ301から負荷状態受信部916を介して受信している負荷状態すなわちコマンドの推定実行時間に基づいて、SCM SSD102が高負荷状態になったか否かを判定する(ステップS1605)。
SCM SSD102が高負荷状態にあると判定した(ステップS1605の判定がYESである)場合には、アクセス制御部911は、SCM SSD102から読み出したデータを、削除(無効化)する(以上、ステップS1606)。その後、アクセス制御部911は、図16のフローチャートで例示されるデータ読出しの制御処理を終了する。
読出しデータがSCM SSD102にはない(ステップS1601の判定がNOである)場合には、アクセス制御部911は、次の動作を実行する。また、読出しデータがSCM SSD102にあっても、SCM SSD102が高負荷状態にあると判定した(ステップS1602の判定がYESである)場合にも、負荷分散のために、アクセス制御部911は、次の動作を実行する。これらの場合、アクセス制御部911は、NAND I/Oキュー912に、Readリクエストを発行する(ステップS1607)。
次に、アクセス制御部911は、NAND SSD101から読出しデータを読み出す(ステップS1608)。
その後、アクセス制御部911は、マスタサーバ301から負荷状態受信部916を介して受信している負荷状態に基づいて、SCM SSD102が低負荷状態で、かつSCM SSD102に読出しデータが無いか否かを判定する(ステップS1609)。これは、ステップS1601の判定がNOとなった場合である。
ステップS1609の判定がYESの場合、アクセス制御部911は、SCM I/Oキュー913にWriteリクエストを発行することにより、読出しデータをSCM SSD102にコピーして書き込む(ステップS1610)。NAND SSD101にのみデータがあり、SCM SSD102が低負荷状態となっているときには、次回からは高速なSCM SSD102の方からデータが読み出せるようにするために、この処理が実行される。その後、アクセス制御部911は、図16のフローチャートで例示される読出し制御の処理を終了する。
図17は、第2の実施形態におけるデータ読出し時の第2の制御処理例を示すフローチャートである。この制御処理例は、図6で説明した第2の実施形態におけるデータ読出し時の第2の制御動作に対応する。
まず、アクセス制御部911は、アプリケーション実行部910から要求された読出しデータが、NAND SSD101のほかにSCM SSD102にもあるか否かを判定する(ステップS1701)。これは、図15のフローチャートのデータ書込みの制御処理により、NAND SSD101とSCM SSD102の両方にデータが書き込まれている場合に対応する判定処理である。
読出しデータがSCM SSD102にもある(ステップS1601の判定がYESである)場合、アクセス制御部911は、アクセス制御部911は、SCM I/Oキュー913に、Readリクエストを発行する。続いて、アクセス制御部911は、SCM I/Oキュー913の状態から前述した数1式の演算により負荷情報である推定時間Ti を算出する。そして、アクセス制御部911は、算出した負荷情報を、自装置内の負荷情報通知部915を介してマスタサーバ301内の負荷情報受信部903に通知する。更に、アクセス制御部911は、NAND I/Oキュー912にも、同じReadリクエストを発行する(以上、ステップS1702)。即ち、アクセス制御部911は、NAND SSD101とSCM SSD102の両方に対して同じデータの読出しを行う。
アクセス制御部911は、ステップS1702でのリクエスト処理の結果、先にSCM SSD102からデータ読出しが完了したか否かを判定する(ステップS1703)。
SCM SSD102からではなくNAND SSD101から先にデータ読出しが完了したと判定した(ステップS1703の判定がNOである)場合、アクセス制御部911は、SCM SSD102から読み出したデータを削除する(ステップS1704)。
先にSCM SSD102からデータ読出しが完了したと判定した(ステップS1703の判定がYESである)場合には、アクセス制御部911は、ステップS1704の処理はスキップする。
その後、アクセス制御部911は、図17のフローチャートで例示される今回のデータ読出しの制御処理を終了する。
読出しデータがSCM SSD102にはない(ステップS1701の判定がNOである)場合には、アクセス制御部911は、NAND I/Oキュー912に、Readリクエストを発行する(ステップS1705)。
次に、アクセス制御部911は、NAND SSD101から読出しデータを読み出す(ステップS1706)。
その後、アクセス制御部911は、マスタサーバ301から負荷状態受信部916を介して受信している負荷状態に基づいて、SCM SSD102が低負荷状態であるか否かを判定する(ステップS1707)。
ステップS1707の判定がYESの場合、アクセス制御部911は、SCM I/Oキュー913にWriteリクエストを発行することにより、読出しデータをSCM SSD102にコピーして書き込む(ステップS1708)。NAND SSD101にのみデータがあり、SCM SSD102が低負荷状態となっているときには、次回からは高速なSCM SSD102の方からデータが読み出せるようにするために、この処理が実行される。その後、アクセス制御部911は、図17のフローチャートで例示される読出し制御の処理を終了する。
図18は、第3の実施形態のシステム構成例を示す図である。図7の説明で前述したように、第3の実施形態の構成では、マスタサーバ301は用意されない。このため、図18では、図9の第1又は第2の実施形態の構成から、マスタサーバ301と、マスタサーバ301と通信を行うための各サーバ103内の負荷情報通知部915及び負荷状態受信部916を除いた構成を有する。図18において、図9の場合と同じ参照番号が付されている部分は、図9の場合と同じものである。
図19は、図18に例示される第3の実施形態のシステム構成例における#1から#Nの各サーバ103内のアクセス制御部911によるデータ読出し時の第1の制御処理例を示すフローチャートである。このフローチャートは、第1の実施形態に係る前述した図12の制御処理に対応しており、図12の場合と同じ参照番号が付された処理は、図12の場合と同じ処理である。即ち、この制御処理例は、図4で説明した第1の実施形態におけるデータ読出し時の制御動作を、マスタサーバ301を用いずに各サーバ103が個別に実行する動作に対応する。
図19のフローチャートが、図12のフローチャートと異なる部分は、図12のステップS1202、S1204、及びS1208にそれぞれ対応するステップS1901、S1902、及びS1903である。
図12と同じ図19のステップS1201で、読出しデータがSCM SSD102にあると判定した場合、アクセス制御部911は、図12のステップS1202に対応する図19のステップS1901の処理を実行する。ステップS1901において、アクセス制御部911は、図12のステップS1202の場合と同様に、SCM I/Oキュー913に、Readリクエストを発行する。これと共に、アクセス制御部911は、図12のステップS1202の場合と同様に、SCM I/Oキュー913の状態から前述した数1式の演算により負荷情報である推定時間Ti を算出する。その後、アクセス制御部911は、図12のステップS1202の場合とは異なり、算出した負荷情報を自装置内の特には図示しないメモリ等に保持する。
また、図12のステップS1204及びS1208にそれぞれ対応する図19のステップS1902又はS1903で、アクセス制御部911は、次の処理を実行する。アクセス制御部911は、SCM SSD102の負荷状態が高負荷状態であるか否かを判定する場合には、図12の場合とは異なり、自装置内に保持されているSCM SSD102の負荷情報により負荷状態の判定を行う。
図20は、図18に例示される第3の実施形態のシステム構成例における#1から#Nの各サーバ103内のアクセス制御部911によるデータ書込み時の第1の制御処理例を示すフローチャートである。このフローチャートは、第1の実施形態に係る前述した図14の制御処理に対応しており、図14の場合と同じ参照番号が付された処理は、図14の場合と同じ処理である。即ち、この制御処理例は、図5(b)で説明した第1の実施形態におけるデータ書込み時の第2の制御動作を、マスタサーバ301を用いずに各サーバ103が個別に実行する動作に対応する。
図20のフローチャートが、図14のフローチャートと異なる部分は、図14のステップS1301及びS1302にそれぞれ対応するステップS2001及びS2002である。
図14のステップS1301に対応するステップS2001で、アクセス制御部911は、SCM SSD102の負荷状態が高負荷状態であるか否かを判定する場合、自装置内に保持されているSCM SSD102の負荷情報により負荷状態を判定する。
また、図14のステップS1302に対応する図20のステップS2002において、アクセス制御部911は、ステップS2001でSCM SSD102が低負荷状態にあると判定した場合に、次の処理を実行する。アクセス制御部911は、図14のステップS1302の場合と同様に、SCM I/Oキュー913にWriteリクエストを発行する。これと共に、アクセス制御部911は、図14のステップS1302の場合と同様に、SCM I/Oキュー913の状態から前述した数1式の演算により負荷情報である推定時間Ti を算出する。その後、アクセス制御部911は、図14のステップS1302の場合とは異なり、算出した負荷情報を自装置内の特には図示しないメモリ等に保持する。
図21は、図18に例示される第3の実施形態のシステム構成例における#1から#Nの各サーバ103内のアクセス制御部911によるデータ書込み時の第2の制御処理例を示すフローチャートである。このフローチャートは、第2の実施形態に係る前述した図15の制御処理に対応しており、図15の場合と同じ参照番号が付された処理は、図15の場合と同じ処理である。即ち、この制御処理例は、図6で説明した第2の実施形態におけるデータ書込み時の制御動作を、マスタサーバ301を用いずに各サーバ103が個別に実行する動作に対応する。
図21のフローチャートが、図15のフローチャートと異なる部分は、図15のステップS1501及びS1502にそれぞれ対応するステップS2101及びS2102である。
図15のステップS1501に対応するステップS2101で、アクセス制御部911は、SCM SSD102の負荷状態が高負荷状態であるか否かを判定する場合、自装置内に保持されているSCM SSD102の負荷情報により負荷状態を判定する。
また、図15のステップS1502に対応する図21のステップS2102において、アクセス制御部911は、ステップS2101でSCM SSD102が低負荷状態にあると判定した場合に、次の処理を実行する。アクセス制御部911は、図15のステップS1502の場合と同様に、NAND I/Oキュー912及びSCM I/Oキュー913の両方にWriteリクエストを発行する。これと共に、アクセス制御部911は、図15のステップS1502の場合と同様に、SCM I/Oキュー913の状態から前述した数1式の演算により負荷情報である推定時間Ti を算出する。その後、アクセス制御部911は、図15のステップS1502の場合とは異なり、算出した負荷情報を自装置内の特には図示しないメモリ等に保持する。
図22は、図18に例示される第3の実施形態のシステム構成例における#1から#Nの各サーバ103内のアクセス制御部911によるデータ読出し時の第2の制御処理例を示すフローチャートである。このフローチャートは、第2の実施形態に係る前述した図16の制御処理に対応しており、図16の場合と同じ参照番号が付された処理は、図16の場合と同じ処理である。即ち、この制御処理例は、図6で説明した第2の実施形態におけるデータ読出し時の第1の制御動作を、マスタサーバ301を用いずに各サーバ103が個別に実行する動作に対応する。
図22のフローチャートが、図16のフローチャートと異なる部分は、図16のステップS1602、S1603、S1605、及びS1609にそれぞれ対応するステップS2201、S2202、S2203、及びS2204である。
図16のステップS1602、S1605、及びS1609にそれぞれ対応する図22のステップS2201、S2203、及びS2204で、アクセス制御部911は、次の処理を実行する。アクセス制御部911は、SCM SSD102の負荷状態を判定する場合には、図16の場合とは異なり、自装置内に保持されているSCM SSD102の負荷情報により負荷状態の判定を行う。
また、図16のステップS1603に対応する図22のステップS2202において、アクセス制御部911は、ステップS2201でSCM SSD102が低負荷状態にあると判定した場合に、次の処理を実行する。アクセス制御部911は、図16のステップS1603の場合と同様に、SCM I/Oキュー913に、Readリクエストを発行する。これと共に、アクセス制御部911は、図16のステップS1603の場合と同様に、SCM I/Oキュー913の状態から前述した数1式の演算により負荷情報である推定時間Ti を算出する。その後、アクセス制御部911は、図16のステップS1603の場合とは異なり、算出した負荷情報を自装置内の特には図示しないメモリ等に保持する。
図23は、図18に例示される第3の実施形態のシステム構成例における#1から#Nの各サーバ103内のアクセス制御部911によるデータ読出し時の第3の制御処理例を示すフローチャートである。このフローチャートは、第2の実施形態に係る前述した図17の制御処理に対応しており、図17の場合と同じ参照番号が付された処理は、図17の場合と同じ処理である。即ち、この制御処理例は、図6で説明した第2の実施形態におけるデータ読出し時の第2の制御動作を、マスタサーバ301を用いずに各サーバ103が個別に実行する動作に対応する。
図23のフローチャートが、図17のフローチャートと異なる部分は、図17のステップS1702及びS1707にそれぞれ対応するステップS2301及びS2302である。
図17と同じ図23のステップS1701で、読出しデータがSCM SSD102にあると判定した場合、アクセス制御部911は、図17のステップS1702に対応する図23のステップS2301の処理を実行する。ステップS2301において、アクセス制御部911は、図17のステップS1702の場合と同様に、SCM I/Oキュー913に、Readリクエストを発行する。これと共に、アクセス制御部911は、図17のステップS1702の場合と同様に、SCM I/Oキュー913の状態から前述した数1式の演算により負荷情報である推定時間Ti を算出する。その後、アクセス制御部911は、図17のステップS1702の場合とは異なり、算出した負荷情報を自装置内の特には図示しないメモリ等に保持する。
また、図17のステップS1707に対応する図23のステップS2302で、アクセス制御部911は、次の処理を実行する。アクセス制御部911は、SCM SSD102の負荷状態が低負荷状態であるか否かを判定する場合には、図17の場合とは異なり、自装置内に保持されているSCM SSD102の負荷情報により負荷状態の判定を行う。
図24は、第4の実施形態のシステム構成例を示す図である。図8の説明で前述したように、第4の実施形態の構成では、マスタサーバ301は用意されず、#1から#Nの各サーバ103間の通信によりSCM SSD102に関する負荷情報が共有される。
このため、図24では、図18の第3の実施形態のシステム構成例において、各サーバ103は、負荷情報通知部2401、負荷情報受信部2402、負荷状態判定部2403、及び負荷状態保持部2404を具備する。
アクセス制御部911は、SCM SSD102の負荷状態によりデータ書込み先の決定と、データの移動を行う。アクセス制御部911は、SCM I/Oキュー913の状態が変化したときに負荷情報を算出し、その負荷情報を負荷情報通知部2401を介して自装置を含む各サーバ103に通知する。負荷状態判定部2403は、各サーバ103から負荷情報受信部2402を介してSCM SSD102の負荷情報を受信し、負荷判定を行う。そして、負荷状態判定部2403は、判定結果である負荷状態と、各サーバ103からの負荷情報を、前述した図10と同様のデータ形式で負荷状態保持部2404に格納する。
アクセス制御部911は、負荷状態を判定するときに、負荷状態保持部2404に格納されている負荷状態を参照する。
図25は、図24に例示される第4の実施形態のシステム構成例における#1から#Nの各サーバ103による負荷情報受信及び負荷状態更新の制御処理例を示すフローチャートである。
負荷情報受信部2402が、自装置を含む任意のサーバiから負荷情報である推定時間Ti を受信するまで待機する(ステップS2501の判定がNOの繰返し)。
負荷情報受信部2402は、上記負荷情報を受信すると(ステップS2501の判定がYESになると)、受信したサーバiの負荷情報である推定時間Ti を、負荷状態保持部2404に図10に例示されるデータ形式で格納する(ステップS2502)。
次に、負荷状態判定部2403は、負荷状態保持部2404内の負荷情報合計値(図10参照)を再計算し、閾値と大小比較を行い、負荷状態を判定する。そして、負荷状態判定部2403は、その判定結果を新たな負荷状態として、負荷状態保持部2404に、図10に例示されるデータ形式で格納する(ステップS2503)。その後、各サーバ103における負荷情報及び負荷状態の制御が、ステップS2501の負荷情報受信部2402の待機処理に戻る。
図26は、図24に例示される第4の実施形態のシステム構成例における#1から#Nの各サーバ103内のアクセス制御部911によるデータ読出し時の第1の制御処理例を示すフローチャートである。このフローチャートは、第1の実施形態に係る前述した図12の制御処理に対応しており、図12の場合と同じ参照番号が付された処理は、図12の場合と同じ処理である。即ち、この制御処理例は、図4で説明した第1の実施形態におけるデータ読出し時の制御動作を、各サーバ103がSCM SSD102に関する負荷情報を相互に通信しながら実行する動作に対応する。
図26のフローチャートが、図12のフローチャートと異なる部分は、図12のステップS1202、S1204、及びS1208にそれぞれ対応するステップS2601、S2602、及びS2603である。
図12と同じ図26のステップS1201で、読出しデータがSCM SSD102にあると判定した場合、アクセス制御部911は、図12のステップS1202に対応する図26のステップS2601の処理を実行する。ステップS2601において、アクセス制御部911は、図12のステップS1202の場合と同様に、SCM I/Oキュー913に、Readリクエストを発行する。これと共に、アクセス制御部911は、図12のステップS1202の場合と同様に、SCM I/Oキュー913の状態から前述した数1式の演算により負荷情報である推定時間Ti を算出する。その後、アクセス制御部911は、図12のステップS1202の場合とは異なり、算出した負荷情報を図24の自装置内の負荷情報通知部2401を介して自装置を含む各サーバ103に通知する。
また、図12のステップS1204及びS1208にそれぞれ対応する図26のステップS2602又はS2603で、アクセス制御部911は、次の処理を実行する。アクセス制御部911は、SCM SSD102の負荷状態が高負荷状態であるか否かを判定する場合には、図12の場合とは異なり、自装置内の負荷状態保持部2404に保持されているSCM SSD102の負荷情報により負荷状態の判定を行う。
図27は、図24に例示される第4の実施形態のシステム構成例における#1から#Nの各サーバ103内のアクセス制御部911によるデータ書込み時の第1の制御処理例を示すフローチャートである。このフローチャートは、第1の実施形態に係る前述した図14の制御処理に対応しており、図14の場合と同じ参照番号が付された処理は、図14の場合と同じ処理である。即ち、この制御処理例は、図5(b)で説明した第1の実施形態におけるデータ書込み時の第2の制御動作を、各サーバ103がSCM SSD102に関する負荷情報を相互に通信しながら実行する動作に対応する。
図27のフローチャートが、図14のフローチャートと異なる部分は、図14のステップS1301及びS1302にそれぞれ対応するステップS2701及びS2702である。
図14のステップS1301に対応するステップS2701で、アクセス制御部911は、SCM SSD102の負荷状態が高負荷状態であるか否かを判定する場合、自装置内の負荷状態保持部2404に保持されているSCM SSD102の負荷情報により負荷状態を判定する。
また、図14のステップS1302に対応する図27のステップS2702において、アクセス制御部911は、ステップS2701でSCM SSD102が低負荷状態にあると判定した場合に、次の処理を実行する。アクセス制御部911は、図14のステップS1302の場合と同様に、SCM I/Oキュー913にWriteリクエストを発行する。これと共に、アクセス制御部911は、図14のステップS1302の場合と同様に、SCM I/Oキュー913の状態から前述した数1式の演算により負荷情報である推定時間Ti を算出する。その後、アクセス制御部911は、図14のステップS1302の場合とは異なり、算出した負荷情報を図24の負荷情報通知部2401を介して自装置を含む各サーバ103に通知する。
図28は、図24に例示される第4の実施形態のシステム構成例における#1から#Nの各サーバ103内のアクセス制御部911によるデータ書込み時の第2の制御処理例を示すフローチャートである。このフローチャートは、第2の実施形態に係る前述した図15の制御処理に対応しており、図15の場合と同じ参照番号が付された処理は、図15の場合と同じ処理である。即ち、この制御処理例は、図6で説明した第2の実施形態におけるデータ書込み時の制御動作を、各サーバ103がSCM SSD102に関する負荷情報を相互に通信しながら実行する動作に対応する。
図28のフローチャートが、図15のフローチャートと異なる部分は、図15のステップS1501及びS1502にそれぞれ対応するステップS2801及びS2802である。
図15のステップS1501に対応するステップS2801で、アクセス制御部911は、SCM SSD102の負荷状態が高負荷状態であるか否かを判定する場合、自装置内の負荷状態保持部2404に保持されているSCM SSD102の負荷情報により負荷状態を判定する。
また、図15のステップS1502に対応する図28のステップS2802において、アクセス制御部911は、ステップS2801でSCM SSD102が低負荷状態にあると判定した場合に、次の処理を実行する。アクセス制御部911は、図15のステップS1502の場合と同様に、NAND I/Oキュー912及びSCM I/Oキュー913の両方にWriteリクエストを発行する。これと共に、アクセス制御部911は、図15のステップS1502の場合と同様に、SCM I/Oキュー913の状態から前述した数1式の演算により負荷情報である推定時間Ti を算出する。その後、アクセス制御部911は、図15のステップS1502の場合とは異なり、算出した負荷情報を図24の負荷情報通知部2401を介して自装置を含む各サーバ103に通知する。
図29は、図24に例示される第4の実施形態のシステム構成例における#1から#Nの各サーバ103内のアクセス制御部911によるデータ読出し時の第2の制御処理例を示すフローチャートである。このフローチャートは、第2の実施形態に係る前述した図16の制御処理に対応しており、図16の場合と同じ参照番号が付された処理は、図16の場合と同じ処理である。即ち、この制御処理例は、図6で説明した第2の実施形態におけるデータ読出し時の第1の制御動作を、各サーバ103がSCM SSD102に関する負荷情報を相互に通信しながら実行する動作に対応する。
図29のフローチャートが、図16のフローチャートと異なる部分は、図16のステップS1602、S1603、S1605、及びS1609にそれぞれ対応するステップS2901、S2902、S2903、及びS2904である。
図16のステップS1602、S1605、及びS1609にそれぞれ対応する図29のステップS2901、S2903、及びS2904で、アクセス制御部911は、次の処理を実行する。アクセス制御部911は、SCM SSD102の負荷状態を判定する場合には、図16の場合とは異なり、自装置内の負荷状態保持部2404に保持されているSCM SSD102の負荷情報により負荷状態の判定を行う。
また、図16のステップS1603に対応する図29のステップS2902において、アクセス制御部911は、ステップS2901でSCM SSD102が低負荷状態にあると判定した場合に、次の処理を実行する。アクセス制御部911は、図16のステップS1603の場合と同様に、SCM I/Oキュー913に、Readリクエストを発行する。これと共に、アクセス制御部911は、図16のステップS1603の場合と同様に、SCM I/Oキュー913の状態から前述した数1式の演算により負荷情報である推定時間Ti を算出する。その後、アクセス制御部911は、図16のステップS1603の場合とは異なり、算出した負荷情報を図24の負荷情報通知部2401を介して自装置を含む各サーバ103に通知する。
図30は、図24に例示される第4の実施形態のシステム構成例における#1から#Nの各サーバ103内のアクセス制御部911によるデータ読出し時の第3の制御処理例を示すフローチャートである。このフローチャートは、第2の実施形態に係る前述した図17の制御処理に対応しており、図17の場合と同じ参照番号が付された処理は、図17の場合と同じ処理である。即ち、この制御処理例は、図6で説明した第2の実施形態におけるデータ読出し時の第2の制御動作を、各サーバ103がSCM SSD102に関する負荷情報を相互に通信しながら実行する動作に対応する。
図30のフローチャートが、図17のフローチャートと異なる部分は、図17のステップS1702及びS1707にそれぞれ対応するステップS3001及びS3002である。
図17と同じ図30のステップS1701で、読出しデータがSCM SSD102にあると判定した場合、アクセス制御部911は、図17のステップS1702に対応する図30のステップS3001の処理を実行する。ステップS3001において、アクセス制御部911は、図17のステップS1702の場合と同様に、SCM I/Oキュー913に、Readリクエストを発行する。これと共に、アクセス制御部911は、図17のステップS1702の場合と同様に、SCM I/Oキュー913の状態から前述した数1式の演算により負荷情報である推定時間Ti を算出する。その後、アクセス制御部911は、図17のステップS1702の場合とは異なり、算出した負荷情報を図24の負荷情報通知部2401を介して自装置を含む各サーバ103に通知する。
また、図17のステップS1707に対応する図30のステップS3002で、アクセス制御部911は、次の処理を実行する。アクセス制御部911は、SCM SSD102の負荷状態が低負荷状態であるか否かを判定する場合には、図17の場合とは異なり、自装置内の負荷状態保持部2404に保持されているSCM SSD102の負荷情報により負荷状態の判定を行う。
図31は、複数SSDでRAIDを構成する実施形態の構成例を示す図である。図1、図3(a)、図7、図8、図9、図18、又は図24で説明した各実施形態の構成例では、1台のNAND SSD101と1台のSCM SSD102が実装されるものとして説明したが、実施形態はこれに限られるものではない。図31に示されるようなRAID(Redundant Arrays of Inexpensive Disks)構成のもとで本発明を実施することも可能である。この場合、複数台のNAND SSDに対するRAID構成により、各サーバ103側からは1台のNAND SSD3101が動作しているように見える。同様に、複数台のSCM SSDに対するRAID構成により、各サーバ103側からは1台のSCM SSD3102が動作しているように見える。
また、SCM SSDとしては、MRAM、RERAM、PCM、3DXPoint、又はNRAM等の、各種のものが採用できる。また、NAND SSDとしては、3DNAND、TLC、又はNLC等の、各種のものを採用できる。
上述の実施形態は、SCM SSDとNAND SSDの組合せに限定される必要はなく、アクセス速度が異なる異種の半導体記憶装置の組合せが可能である。
図32は、各実施形態による情報処理装置をソフトウェア処理として実現できるコンピュータのハードウェア構成の一例を示す図である。図32に示されるコンピュータは、Central Processing Unit(CPU)3201、メモリ3202、入力装置3203、出力装置3204、補助情報記憶装置3205、可搬型記録媒体3209が挿入される媒体駆動装置3206、及びネットワーク接続装置3207を有する。これらの構成要素は、バス3208により相互に接続されている。同図に示される構成は上記情報処理装置を実現できるコンピュータの一例であり、そのようなコンピュータはこの構成に限定されるものではない。
メモリ3202は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。
CPU(プロセッサ)3201は、例えば、メモリ3202を利用してプログラムを実行することにより、図9、図18、又は図24に示されるサーバ103やマスタサーバ301の901〜904、910〜913、915、916、2401〜2404などの各処理部として動作する。
入力装置3203は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示又は情報の入力に用いられる。出力装置3204は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータ又はユーザへの問合せ又は処理結果の出力に用いられる。
補助情報記憶装置3205は、例えば、ハードディスク記憶装置、磁気ディスク記憶装置、光ディスク装置、光磁気ディスク装置、テープ装置、又は半導体記憶装置である。各実施形態の情報処理装置は、補助情報記憶装置3205にプログラム及びデータを格納しておき、それらをメモリ3202にロードして使用することができる。
媒体駆動装置3206は、可搬型記録媒体3209を駆動し、その記録内容にアクセスする。可搬型記録媒体3209は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体3209は、Compact Disk Read Only Memory(CD−ROM)、Digital Versatile Disk(DVD)、Universal Serial Bus(USB)メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体3209にプログラム及びデータを格納しておき、メモリ3202にロードして使用することができる。
このように、各実施形態の情報処理装置の処理に用いられるプログラム及びデータを格納するコンピュータ読取り可能な記録媒体は、メモリ3202、補助情報記憶装置3205、又は可搬型記録媒体3209のような、物理的な(非一時的な)記録媒体である。
ネットワーク接続装置3207は、例えばLocal Area Network(LAN)等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。ネットワーク接続装置3207は、図9、図18、又は図24に示されるサーバ103やマスタサーバ301の903、904、915、916、2401、又は2402などの各処理部の一部として動作する。各実施形態の情報処理装置は、プログラム又はデータを外部の装置からネットワーク接続装置3207を介して受信し、それらをメモリ3202にロードして使用することができる。
なお、各実施形態の情報処理装置が図32の全ての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、オペレータ又はユーザからの指示又は情報を入力する必要がない場合は、入力装置3203が省略されてもよい。可搬型記録媒体3209又は通信ネットワークを利用しない場合は、媒体駆動装置3206又はネットワーク接続装置3207が省略されてもよい。
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができる。
以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が速い第2の記憶装置にアクセス可能な情報処理装置において、情報処理装置における、前記第2の記憶装置へのリクエスト中のリクエストに関する情報を保持する保持部と、
前記リクエストに関する情報に基づいて、前記第2の記憶装置の負荷を判定する判定部と、
を具備することを特徴とする情報処理装置。
(付記2)
前記情報処理装置は、前記第2の記憶装置のデータを読み出したときに、前記判定部が前記第2の記憶装置の負荷が第1の閾値に比較して高いと判定した場合に、前記第2の記憶装置から読み出したデータを前記第1の記憶装置に移動し、前記第1の記憶装置のデータを読み出したときに、前記判定部が前記第2の記憶装置の負荷が第2の閾値に比較して低いと判定した場合に、前記第1の記憶装置から読み出したデータを前記第2の記憶装置に移動する、ことを特徴とする付記1に記載の情報処理装置。
(付記3)
前記情報処理装置は、前記判定部が前記第2の記憶装置の負荷が第3の閾値に比較して低いと判定した場合に書き込むべきデータを前記第2の記憶装置に書き込み、前記判定部が前記第2の記憶装置の負荷が前記第3の閾値に比較して高いと判定した場合に前記書き込むべきデータを前記第1の記憶装置に書き込む、ことを特徴とする付記2に記載の情報処理装置。
(付記4)
前記情報処理装置は、書き込むべきデータのサイズが第4の閾値に比較して大きい場合には、前記書き込むべきデータを前記第1の記憶装置に書き込み、前記書き込むべきデータのサイズが前記第4の閾値に比較して小さい場合において更に前記判定部が前記第2の記憶装置の負荷が第5の閾値に比較して低いと判定した場合に前記書き込むべきデータを前記第2の記憶装置に書き込み、前記書き込むべきデータのサイズが前記第4の閾値に比較して小さい場合において更に前記判定部が前記第2の記憶装置の負荷が前記第5の閾値に比較して高いと判定した場合に前記書き込むべきデータを前記第1の記憶装置に書き込む、ことを特徴とする付記2に記載の情報処理装置。
(付記5)
前記情報処理装置は、前記判定部が前記第2の記憶装置の負荷が第6の閾値に比較して低いと判定した場合に、前記第1の記憶装置及び前記第2の記憶装置の両方に同一の書き込むべきデータを書き込み、前記判定部が前記第2の記憶装置の負荷が前記第6の閾値に比較して高いと判定した場合に、前記第1の記憶装置のみに前記書き込むべきデータを書き込む、ことを特徴とする付記1に記載の情報処理装置。
(付記6)
前記情報処理装置は、読み出すべきデータが前記第1の記憶装置及び前記第2の記憶装置の両方に記憶されている場合において、前記判定部が前記第2の記憶装置の負荷が第7の閾値に比較して低いと判定した場合に、前記第2の記憶装置から前記読み出すべきデータを読み出し、前記判定部が前記第2の記憶装置の負荷が前記第7の閾値に比較して高いと判定した場合に、前記第1の記憶装置から前記読み出すべきデータを読み出す、ことを特徴とする付記5に記載の情報処理装置。
(付記7)
前記情報処理装置は、読み出されるすデータが前記第1の記憶装置及び前記第2の記憶装置の両方に記憶されている場合において、前記第1の記憶装置及び前記第2の記憶装置の両方から前記読み出すべきデータを読み出して速く読み出されたほうの前記読み出すべきデータを採用し、前記第1の記憶装置からの前記読み出すべきデータの読出しのほうが速かった場合には、前記第2の記憶装置に記憶されている前記読み出すべきデータを削除する、ことを特徴とする付記5に記載の情報処理装置。
(付記8)
前記情報処理装置は、読み出すべきデータが前記第1の記憶装置のみに記憶されている場合において、前記判定部が前記第2の記憶装置の負荷が第8の閾値に比較して低いと判定した場合に、前記読み出すべきデータを前記第1の記憶装置から読み出した後に前記読み出したデータを前記第2の記憶装置にコピーする、ことを特徴とする付記5乃至7の何れかに記載の情報処理装置。
(付記9)
前記第1の記憶装置及び前記第2の記憶装置にアクセスする情報処理装置とは異なる情報処理装置に前記保持部及び前記判定部を具備する、ことを特徴とする付記1乃至8の何れかに記載の情報処理装置。
(付記10)
前記第1の記憶装置及び前記第2の記憶装置にアクセスする情報処理装置に、前記保持部及び前記判定部を具備する、ことを特徴とする付記1乃至8の何れかに記載の情報処理装置。
(付記11)
前記保持部を具備する情報処理装置間で前記リクエストに関する情報を共有する、ことを特徴とする付記10に記載の情報処理装置。
(付記12)
第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が速い第2の記憶装置にアクセス可能な情報処理装置における、前記第2の記憶装置へのリクエスト中のリクエストに関する情報を保持し、
前記リクエストに関する情報に基づいて、前記第2の記憶装置の負荷を判定する、
ことを特徴とする情報処理方法。
(付記13)
第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が速い第2の記憶装置にアクセス可能な情報処理装置における、前記第2の記憶装置へのリクエスト中のリクエストに関する情報を保持するステップと、
前記リクエストに関する情報に基づいて、前記第2の記憶装置の負荷を判定するステップと、
をコンピュータに実行させるためのプログラム。
101 NAND SSD
102 SCM SSD
103 サーバ
104 Pcie switch
301 マスタサーバ
302 SCM SSDの負荷情報
901、2404 負荷状態保持部
902、2403 負荷状態判定部
903、2402 負荷情報受信部
904 負荷状態通知部
910 アプリケーション実行部
911 アクセス制御部
912 NAND I/Oキュー
913 SCM I/Oキュー
914 Pcie I/F
915、2401 負荷情報通知部
916 負荷状態受信部
3101 RAID構成のNAND SSD
3102 RAID構成のSCM SSD
3201 CPU
3202 メモリ
3203 入力装置
3204 出力装置
3205 補助情報記憶装置
3206 媒体駆動装置
3207 ネットワーク接続装置
3208 バス
3209 可搬記録媒体

Claims (8)

  1. 第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が速い第2の記憶装置にアクセス可能情報処理装置における、前記第2の記憶装置へのリクエスト中のリクエストに関する情報を保持する保持部と、
    前記リクエストに関する情報に基づいて、前記第2の記憶装置の負荷を判定する判定部と、
    前記第2の記憶装置のデータを読み出したときに、前記判定部が前記第2の記憶装置の負荷が第1の閾値に比較して高いと判定した場合に、前記第2の記憶装置から読み出したデータを前記第1の記憶装置に移動し、前記第1の記憶装置のデータを読み出したときに、前記判定部が前記第2の記憶装置の負荷が第2の閾値に比較して低いと判定した場合に、前記第1の記憶装置から読み出したデータを前記第2の記憶装置に移動する制御を行う制御部と、
    を具備することを特徴とする情報処理システム
  2. 前記制御部は、前記判定部が前記第2の記憶装置の負荷が第3の閾値に比較して低いと判定した場合に書き込むべきデータを前記第2の記憶装置に書き込み、前記判定部が前記第2の記憶装置の負荷が前記第3の閾値に比較して高いと判定した場合に前記書き込むべきデータを前記第1の記憶装置に書き込む制御を行う、ことを特徴とする請求項に記載の情報処理システム
  3. 前記制御部は、書き込むべきデータのサイズが第4の閾値に比較して大きい場合には、前記書き込むべきデータを前記第1の記憶装置に書き込み、前記書き込むべきデータのサイズが前記第4の閾値に比較して小さい場合において更に前記判定部が前記第2の記憶装置の負荷が第5の閾値に比較して低いと判定した場合に前記書き込むべきデータを前記第2の記憶装置に書き込み、前記書き込むべきデータのサイズが前記第4の閾値に比較して小さい場合において更に前記判定部が前記第2の記憶装置の負荷が前記第5の閾値に比較して高いと判定した場合に前記書き込むべきデータを前記第1の記憶装置に書き込む制御を行う、ことを特徴とする請求項に記載の情報処理システム
  4. 前記情報処理システムは、前記情報処理装置を含む複数の情報処理装置を具備し、
    前記保持部及び前記判定部は、前記複数の情報処理装置のうちの、前記第1の記憶装置及び前記第2の記憶装置にアクセスする情報処理装置とは異なる情報処理装置具備する、ことを特徴とする請求項1乃至の何れかに記載の情報処理システム
  5. 前記情報処理装置、前記保持部前記判定部、及び前記制御部を具備する、ことを特徴とする請求項1乃至3の何れかに記載の情報処理システム
  6. 前記情報処理システムは、前記情報処理装置複数具備し、複数の前記情報処理装置間で前記リクエストに関する情報を共有
    複数の前記情報処理装置の各々では、自装置の具備する前記判定部が、共有する前記リクエストに関する情報に基づいて前記判定を行い、該判定の結果に基づいた前記制御を自装置の具備する前記制御部が行うことを特徴とする請求項に記載の情報処理システム
  7. 第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が速い第2の記憶装置にアクセス可能な情報処理装置を具備する情報処理システムが行う情報処理方法であって、
    前記情報処理システムが具備する保持部が、前記情報処理装置における、前記第2の記憶装置へのリクエスト中のリクエストに関する情報を保持し、
    前記情報処理システムが具備する判定部が、前記リクエストに関する情報に基づいて、前記第2の記憶装置の負荷を判定
    前記第2の記憶装置のデータを読み出したときに、前記判定部が前記第2の記憶装置の負荷が第1の閾値に比較して高いと判定した場合に、前記第2の記憶装置から読み出したデータを前記第1の記憶装置に移動し、前記第1の記憶装置のデータを読み出したときに、前記判定部が前記第2の記憶装置の負荷が第2の閾値に比較して低いと判定した場合に、前記第1の記憶装置から読み出したデータを前記第2の記憶装置に移動する制御を、前記情報処理システムが具備する制御部が行う、
    ことを特徴とする情報処理方法。
  8. 第1の記憶装置と、前記第1の記憶装置よりもアクセス速度が速い第2の記憶装置にアクセス可能な情報処理装置における、前記第2の記憶装置へのリクエスト中のリクエストに関する情報を保持するステップと、
    前記リクエストに関する情報に基づいて、前記第2の記憶装置の負荷を判定するステップと、
    前記第2の記憶装置のデータを読み出したときに、前記判定するステップにおいて前記第2の記憶装置の負荷が第1の閾値に比較して高いと判定した場合に、前記第2の記憶装置から読み出したデータを前記第1の記憶装置に移動し、前記第1の記憶装置のデータを読み出したときに、前記判定するステップにおいて前記第2の記憶装置の負荷が第2の閾値に比較して低いと判定した場合に、前記第1の記憶装置から読み出したデータを前記第2の記憶装置に移動する制御を行うステップと、
    前記情報処理装置に実行させるためのプログラム。
JP2017068585A 2017-03-30 2017-03-30 情報処理システム、方法、及びプログラム Active JP6822274B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017068585A JP6822274B2 (ja) 2017-03-30 2017-03-30 情報処理システム、方法、及びプログラム
US15/924,927 US10860225B2 (en) 2017-03-30 2018-03-19 Apparatus and method for routing access based on device load
JP2020190611A JP6969656B2 (ja) 2017-03-30 2020-11-17 情報処理システム、方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017068585A JP6822274B2 (ja) 2017-03-30 2017-03-30 情報処理システム、方法、及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020190611A Division JP6969656B2 (ja) 2017-03-30 2020-11-17 情報処理システム、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2018169941A JP2018169941A (ja) 2018-11-01
JP6822274B2 true JP6822274B2 (ja) 2021-01-27

Family

ID=63669472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017068585A Active JP6822274B2 (ja) 2017-03-30 2017-03-30 情報処理システム、方法、及びプログラム

Country Status (2)

Country Link
US (1) US10860225B2 (ja)
JP (1) JP6822274B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102631380B1 (ko) * 2018-05-17 2024-02-01 에스케이하이닉스 주식회사 데이터 연산을 수행할 수 있는 다양한 메모리 장치를 포함하는 반도체 시스템
JP2021086583A (ja) 2019-11-29 2021-06-03 キヤノン株式会社 情報処理装置、制御装置および制御装置の制御方法
KR20210077230A (ko) * 2019-12-17 2021-06-25 에스케이하이닉스 주식회사 메모리 시스템의 동작 방법 및 장치
US11487592B2 (en) * 2020-01-22 2022-11-01 EMC IP Holding Company LLC Dynamic application migration across storage platforms
US11579800B2 (en) * 2020-05-29 2023-02-14 EMC IP Holding Company LLC Input / output load balancing in a data storage system
CN112631682A (zh) * 2020-12-28 2021-04-09 北京百度网讯科技有限公司 小程序处理方法、装置、设备及存储介质
US11720284B2 (en) * 2021-04-29 2023-08-08 Micron Technology, Inc. Low latency storage based on data size

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0944381A (ja) 1995-07-31 1997-02-14 Toshiba Corp データ格納方法およびデータ格納装置
JP4318914B2 (ja) * 2002-12-26 2009-08-26 富士通株式会社 ストレージシステム及びその動的負荷管理方法
WO2009032712A2 (en) * 2007-08-29 2009-03-12 Nirvanix, Inc. Method and system for moving requested files from one storage location to another
JP2013164822A (ja) * 2012-02-13 2013-08-22 Fujitsu Ltd 負荷閾値算出プログラム、負荷閾値算出装置および負荷閾値算出方法
US9003150B2 (en) * 2012-04-26 2015-04-07 Hitachi, Ltd. Tiered storage system configured to implement data relocation without degrading response performance and method
US9015111B2 (en) * 2013-04-05 2015-04-21 Hitachi, Ltd. Storage system and storage system control method
JP6269257B2 (ja) * 2014-03-31 2018-01-31 富士通株式会社 情報処理装置、情報処理システム、情報処理装置の制御プログラム、および情報処理装置の制御方法
US10002025B2 (en) * 2014-08-29 2018-06-19 Hitachi, Ltd. Computer system and load leveling program

Also Published As

Publication number Publication date
US20180285012A1 (en) 2018-10-04
US10860225B2 (en) 2020-12-08
JP2018169941A (ja) 2018-11-01

Similar Documents

Publication Publication Date Title
JP6822274B2 (ja) 情報処理システム、方法、及びプログラム
US20180349030A1 (en) Storage control device, storage control program, and storage system
US9747044B2 (en) Interleaving read and write requests to reduce latency and maximize throughput in a flash storage device
US7536505B2 (en) Storage system and method for controlling block rearrangement
US10649667B2 (en) Mitigating GC effect in a RAID configuration
US9128855B1 (en) Flash cache partitioning
KR102363519B1 (ko) 솔리드 스테이트 드라이브 및 그것의 동작 방법
Dong et al. Data elevator: Low-contention data movement in hierarchical storage system
JP5052278B2 (ja) 記憶装置を制御する装置及び方法
US8904119B2 (en) Method and structures for performing a migration of a logical volume with a serial attached SCSI expander
US11128535B2 (en) Computer system and data management method
WO2018171296A1 (zh) 一种文件合并方法及控制器
US10678431B1 (en) System and method for intelligent data movements between non-deduplicated and deduplicated tiers in a primary storage array
JP2009087282A (ja) 並列計算システムおよび並列計算方法
US20130262904A1 (en) Storage apparatus and method of determining device to be activated
Huffman et al. The nonvolatile memory transformation of client storage
US20180181316A1 (en) Apparatus and method to store de-duplicated data into storage devices while suppressing latency and communication load
US20070245081A1 (en) Storage system and performance tuning method thereof
US10705733B1 (en) System and method of improving deduplicated storage tier management for primary storage arrays by including workload aggregation statistics
US8938596B2 (en) Storage apparatus, control apparatus, and storage apparatus control method
JP6969656B2 (ja) 情報処理システム、方法、及びプログラム
JP2005202942A (ja) 情報記録媒体、データ処理装置及びデータ処理方法
US10671307B2 (en) Storage system and operating method thereof
US8972634B2 (en) Storage system and data transfer method
JP2020177274A (ja) ストレージ装置、ストレージシステムおよびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190910

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201117

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20201117

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20201117

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201221

R150 Certificate of patent or registration of utility model

Ref document number: 6822274

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150