JP2021131752A - 情報処理装置及び情報処理プログラム - Google Patents
情報処理装置及び情報処理プログラム Download PDFInfo
- Publication number
- JP2021131752A JP2021131752A JP2020027060A JP2020027060A JP2021131752A JP 2021131752 A JP2021131752 A JP 2021131752A JP 2020027060 A JP2020027060 A JP 2020027060A JP 2020027060 A JP2020027060 A JP 2020027060A JP 2021131752 A JP2021131752 A JP 2021131752A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- access
- data
- unit
- movement
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/217—Hybrid disk, e.g. using both magnetic and solid state storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/225—Hybrid cache memory, e.g. having both volatile and non-volatile portions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal 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)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】第1メモリと第1メモリとは処理性能の異なる第2メモリとに対するアクセスを制御するMC(メモリコントローラ)、を有するプロセッサを備える情報処理装置における、処理性能の低下を抑制する。【解決手段】前記第1メモリ3−前記第2メモリ4間で移動するデータに関する移動要求を出力する移動決定部52と、前記MC53を経由した前記第1メモリ3及び前記第2メモリ4に対する1以上の第1アクセスの状況と、前記移動要求に応じた第2アクセスであって、前記MC53を経由する前記第1メモリ3及び前記第2メモリ4に対する前記第2アクセスで移動されるデータ量とに基づき、前記第2アクセスの実行タイミングを制御する移動制御部52aと、制御された前記実行タイミングで前記第2アクセスを実行する移動実行部52、53と、を備える。【選択図】図8
Description
本発明は、情報処理装置及び情報処理プログラムに関する。
サーバやPC(Personal Computer)等の情報処理装置においては、CPU(Central Processing Unit)等のプロセッサ(処理部)により、主記憶装置、例えばDRAM(Dynamic Random Access Memory)等のメモリに対するアクセスが行なわれる。
プロセッサは、1以上のCPUコア(単に「コア」と称されてもよい)と、メモリコントローラとを備える。コアは、例えばプロセス(「プログラム」と称されてもよい)の実行によりメモリに格納されたデータにアクセスし、メモリコントローラは、コアによるアクセス対象であるメモリへのアクセスを制御する。
近年、次世代メモリ技術を採用したメモリが登場している。このようなメモリとしては、例えば、3D XPoint(登録商標)技術を採用したIntel Optane DC Persistent Memory(以下、「PM」と表記する場合がある)(登録商標)が知られている。
PMは、DRAMと比較して、処理性能が低い(特に書込性能が、一例として10分の1程度である)ものの、安価で大容量(一例として10倍程度)である。
PMは、DRAMと同様に、例えばDIMM(Dual Inline Memory Module)スロット等のメモリスロットに搭載可能であり、メモリコントローラは、DRAM及びPMの双方に対するアクセスを制御する。換言すれば、第1メモリの一例であるDRAMと、DRAMとは処理性能(処理速度)の異なる第2メモリの一例であるPMとが、構成上で同一の記憶(メモリ)階層に混在することになる。
一方で、情報処理装置は、性能上の階層が互いに異なるDRAM及びPMを備える階層ストレージ装置と捉えることもできる。
DRAMとPMとの間でデータの置換を行なう場合、DRAMと、HDD(Hard Disk Drive)又はSSD(Solid State Drive)等の記憶装置との間でデータの置換を行なう場合とは異なり、メモリコントローラがDRAM及びPMの双方を制御することになる。
例えば、情報処理装置のプロセッサ(コア)が実行するアプリケーションによるPMへの書込アクセスと、DRAMとPMとの間のデータ置換とが並行して実行されることが想定される。この場合、メモリコントローラにおいて、アプリケーションによるアクセス処理及びデータ置換の処理の競合が発生し、メモリコントローラにおける処理時間(処理遅延)が増加して、アプリケーションのアクセス性能が低下する可能性がある。
1つの側面では、本発明は、第1メモリと、第1メモリとは処理性能の異なる第2メモリとに対するアクセスを制御するメモリコントローラ、を有するプロセッサを備える情報処理装置における、処理性能の低下を抑制することを目的の1つとする。
1つの側面では、情報処理装置は、第1メモリと、前記第1メモリとは処理速度の異なる第2メモリと、プロセッサと、を備えてよい。前記プロセッサは、前記第1メモリ及び前記第2メモリと接続され、前記第1メモリ及び前記第2メモリに対するアクセスを制御するメモリコントローラ、を有するプロセッサを備えてよい。また、前記プロセッサは、移動決定部と、移動制御部と、移動実行部と、を備えてよい。前記移動決定部は、前記第1メモリから前記第2メモリに移動するデータ、又は、前記第2メモリから前記第1メモリに移動するデータ、に関する移動要求を出力してよい。前記移動制御部は、前記メモリコントローラを経由した前記第1メモリ及び前記第2メモリに対する1以上の第1アクセスの状況と、前記移動要求に応じた第2アクセスであって、前記メモリコントローラを経由する前記第1メモリ及び前記第2メモリに対する前記第2アクセスで移動されるデータ量とに基づき、前記第2アクセスの実行タイミングを制御してよい。前記移動実行部は、制御された前記実行タイミングで前記第2アクセスを実行してよい。
1つの側面では、第1メモリと、第1メモリとは処理性能の異なる第2メモリとに対するアクセスを制御するメモリコントローラ、を有するプロセッサを備える情報処理装置における、処理性能の低下を抑制することができる。
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
〔1〕一実施形態
〔1−1〕DRAM及びPMを用いたハイブリッドストレージシステムについて
図1は、サーバやPC等の情報処理装置が備える各コンポーネント(モジュール)110〜150の処理速度(処理性能)、及び、コンポーネントが記憶装置の場合にはその記憶容量、の一例を示す図である。
〔1−1〕DRAM及びPMを用いたハイブリッドストレージシステムについて
図1は、サーバやPC等の情報処理装置が備える各コンポーネント(モジュール)110〜150の処理速度(処理性能)、及び、コンポーネントが記憶装置の場合にはその記憶容量、の一例を示す図である。
図1に例示するように、コンポーネントを処理速度の高い順に並べると、CPU110、DRAM120、PM130、SSD140、HDD150となる。コンポーネントを記憶容量の大きい順に並べると、HDD150、SSD140、PM130、DRAM120となる。DRAM120をSSD140と比較すると、処理速度は1000倍程度であり、記憶容量は1000分の1程度となる。PM130は、処理速度及び記憶容量の観点ではDRAM120とSSD140との間に位置し、DRAM120をPM130と比較すると、処理速度は10倍程度であり、記憶容量は10分の1程度となる。
このように、PM130は、DRAM120と比較して、処理性能(特に書込性能)が低く、また、書込耐性が低いものの、安価で大容量である。また、PM130は、DRAM120と同様に、バイト単位のアクセスが可能であり、例えばDIMMスロット等のメモリスロットに搭載可能である。さらに、PM130は、DRAM120とは異なり不揮発性であるため、電源遮断時にデータが消失しない。これらの理由から、DRAM120及びPM130の双方をメモリ(主記憶装置)として搭載する情報処理装置が普及することが想定される。
図2は、DRAM120及びPM130の双方をメモリとして搭載する、情報処理装置の一例としてのサーバ100の構成例を示すブロック図である。図2に示すように、サーバ100は、例示的に、CPU110、複数のDRAM120、及び、複数のPM130を備え、DRAM120及びPM130を用いてハイブリッドストレージシステム(HSS)を構成する。HSSは、性能上の階層が互いに異なるDRAM120及びPM130を備える階層ストレージ装置としての機能を提供する。
CPU110は、コア(図示省略)とメモリコントローラ(図2では「MC」と表記)113とを備え、アプリケーション111(図2では「APP」と表記)及びHSS112のそれぞれの機能がコアにより実行される。
以下、APP111及びHSS112から認識される1つのストレージボリュームをLUN(Logical Unit Number)と表記する。さらに、LUNを予め決められたサイズで分割した1単位(単位領域)をサブLUN(sub−LUN)と表記する。サブLUNのサイズは、例えば、MB(MegaByte)〜GB(GigaByte)のオーダで適宜変更して実施することができる。サブLUNはセグメントと称されてもよい。
APP111は、MC113による制御下で、DRAM120又はPM130に対して、例えばサブLUN単位でアクセスを行なう。HSS112は、DRAM120とPM130との間で、例えばサブLUN単位でデータの置換を行なう。MC113は、APP111及びHSS112からDRAM120及びPM130へのアクセスを制御する。
図2の例では、APP111は、DRAM120のサブLUN120a、及び、PM130のサブLUN130aにアクセスを行なう。MC113は、図2の例ではAPP111によるアクセスを制御すればよいため、サーバ100では、APP111は遅延なくDRAM120及びPM130の各々にアクセスを行なうことができる。
図3は、DRAM120及びPM130に対して、APP111によるアクセスと、HSS112によるデータ置換とが発生した場合を説明する図である。
図3の例では、HSS112は、DRAM120のサブLUN120bから、PM130のサブLUN130bにデータの置換(例えば移動)を行なう。図3に示すように、APP111によるDRAM120及びPM130へのアクセスと、HSS112によるDRAM120及びPM130へのアクセスは、いずれもMC113を経由する。
このため、HSS112によるデータの置換量が増加すると、APP111によるアクセスの遅延が増加することになる。HSS112は、DRAM120及びPM130におけるアクセス状況とは無関係にデータ置換を実行するためである。上述したように、PM130は、DRAM120と比較して、処理性能、特に書込性能が低い(例えば10分の1程度である)ため、APP111によるアクセスの遅延の増加が顕著となる。
このように、APP111によるDRAM120又はPM130へのアクセスと、HSS112によるDRAM120又はPM130へのアクセスとが並行して実行されると、MC113において処理の競合が発生する場合がある。この場合、MC113での処理時間(処理遅延)が増加し、CPU110のメモリアクセス性能が低下する可能性がある。
従って、同一のMC113によりアクセスが制御されるDRAM120及びPM130に対する、APP111からのアクセスとHSS112からのアクセスとが競合しないように制御する手法が望まれる。
そこで、一実施形態では、APP111からのメモリアクセス性能を損なうことなく、DRAM120とPM130との間でデータの移動を行なう手法を説明する。
〔1−2〕一実施形態のハードウェア構成例
図4は、一実施形態に係るサーバ1のハードウェア(HW)構成例を示すブロック図である。サーバ1は情報処理装置の一例である。情報処理装置としては、サーバに代えて、例えば、PC、メインフレーム等の種々のコンピュータが挙げられる。サーバ1は、HW構成として、例示的に、プロセッサ1a、メモリ1b、記憶部1c、IF(Interface)部1d、IO(Input / Output)部1e、及び、読取部1fを備えてよい。
図4は、一実施形態に係るサーバ1のハードウェア(HW)構成例を示すブロック図である。サーバ1は情報処理装置の一例である。情報処理装置としては、サーバに代えて、例えば、PC、メインフレーム等の種々のコンピュータが挙げられる。サーバ1は、HW構成として、例示的に、プロセッサ1a、メモリ1b、記憶部1c、IF(Interface)部1d、IO(Input / Output)部1e、及び、読取部1fを備えてよい。
プロセッサ1aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ1aは、サーバ1内の各ブロックとバス1iで相互に通信可能に接続されてよい。一実施形態において、プロセッサ1aは、複数のプロセッサ(例えば複数のCPU)を含むマルチプロセッサであってよい。また、複数のプロセッサの各々は、複数のプロセッサコアを有するマルチコアプロセッサであってよい。
図5は、一実施形態に係るサーバ1のプロセッサ1a及びメモリ1bに着目したHW構成例を示すブロック図である。図5に例示するように、図4に示すプロセッサ1aは、1以上(図5の例では1つ)のプロセッサ2であってよい。プロセッサ2は、複数のコア(「C」と表記)2a、及び、MC2bを備えてよい。
MC2bは、1以上(図5の例では3つ)のDRAM3、及び、1以上(図5の例では3つ)のPM4と、メモリチャネル2cを介して接続され、DRAM3及びPM4の双方を管理する。例えば、MC2bは、メモリチャネル2c−1を介して、DRAM#0及びPM#0のセットと縦続接続(カスケード接続)される。同様に、MC2bは、メモリチャネル2c−2を介して、DRAM#1及びPM#1のセットと縦続接続され、メモリチャネル2c−3を介して、DRAM#2及びPM#2のセットと縦続接続される。
MC2bは、各メモリチャネル2cのDRAM3及びPM4のそれぞれに、互いに異なるアドレス範囲を対応付けて、DRAM3及びPM4に対するアクセスを制御してよい。例えば、MC2bは、コア2aから指定されたメモリアドレスに応じて、DRAM3及びPM4で共有されるメモリチャネル2cを介して、DRAM3又はPM4に択一的にアクセスしてよい。
なお、プロセッサ1aとしては、CPUに代えて、MPU、GPU、APU、DSP、ASIC、FPGA等の集積回路(IC:Integrated Circuit)が用いられてもよい。MPUはMicro Processing Unitの略称である。GPUはGraphics Processing Unitの略称であり、APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。
図4の説明に戻り、メモリ1bは、種々のデータやプログラム等の情報を格納するHWの一例である。メモリ1bとしては、例えばDRAM等の揮発性メモリ、及び、PM等の不揮発性メモリの双方が挙げられる。すなわち、一実施形態に係るサーバ1は、DRAM3及びPM4を用いるハイブリッドストレージシステムを実現してよい。
なお、DRAM3は、第1メモリの一例であり、PM4は、第1メモリとは処理速度の異なる(例えば低速である)第2メモリの一例である。
記憶部1cは、種々のデータやプログラム等の情報を格納するHWの一例である。記憶部1cとしては、例えばSSD(Solid State Drive)等の半導体ドライブ装置、HDD(Hard Disk Drive)等の磁気ディスク装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。
また、記憶部1cは、サーバ1の各種機能の全部若しくは一部を実現するプログラム1gを格納してよい。例えば、サーバ1のプロセッサ1aは、記憶部1cに格納されたプログラム1g(情報処理プログラム)をメモリ1bに展開して実行することにより、処理部5(図6参照)又は階層ストレージ制御装置10(図11参照)の機能を実現できる。
IF部1dは、図示しないネットワークとの間の接続及び通信の制御等を行なう通信IFの一例である。例えば、IF部1dは、インフィニバンド(登録商標)、イーサネット(登録商標)等のLAN(Local Area Network)、或いは、光通信(例えばFC(Fibre Channel:ファイバチャネル))等に準拠したアダプタを含んでよい。例えば、プログラム1gは、当該通信IFを介して、ネットワークからサーバ1にダウンロードされ、記憶部1cに格納されてもよい。
IO部1eは、マウス、キーボード、又は操作ボタン等の入力部、並びに、タッチパネルディスプレイ、LCD(Liquid Crystal Display)等のモニタ、プロジェクタ、又はプリンタ等の出力部、の一方又は双方を含んでよい。
読取部1fは、記録媒体1hに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部1fは、記録媒体1hを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部1fとしては、例えば、USB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体1hにはプログラム1gが格納されてもよく、読取部1fが記録媒体1hからプログラム1gを読み出して記憶部1cに格納してもよい。
記録媒体1hとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。
上述したサーバ1のHW構成は例示である。従って、サーバ1内でのHWの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。
〔1−3〕一実施形態について
まず、図6〜図10を参照して、一実施形態に係る構成例及び動作例を簡単に説明する。図6に示すように、サーバ1は、例示的に、複数(図6では4つ)のDRAM3、複数(図6では4つ)のPM4、処理部5、チップセット6及びSSD7を備えてよい。
まず、図6〜図10を参照して、一実施形態に係る構成例及び動作例を簡単に説明する。図6に示すように、サーバ1は、例示的に、複数(図6では4つ)のDRAM3、複数(図6では4つ)のPM4、処理部5、チップセット6及びSSD7を備えてよい。
DRAM3及びPM4は、それぞれ、図2に例示するDRAM120及びPM130と同様である。処理部5は、サーバ1における種々の処理を実行するものであり、図5に示すプロセッサ2により実現される機能の一例である。チップセット6は、プロセッサ2と周辺機器とを接続する。SSD7は、チップセット6に接続され、プログラムやデータ等の種々の情報を記憶する。SSD7は、サブLUN7a及び7bを含んでよい。
処理部5は、例示的に、APP51、HSS52、制御部53、及び、統計情報モニタ54の機能を備えてよい。APP51、HSS52及び統計情報モニタ54は、それぞれ、図5に例示するプロセッサ2のコア2aにより実現される機能の一例であり、制御部53は、図5に例示するプロセッサ2のMC2bにより実現される機能の一例である。
APP51は、DRAM3のサブLUN3a及びPM4のサブLUN4aの一方又は双方にアクセスするソフトウェアであり、他のアプリケーションやOSとともに、アクセス部の一例である。
HSS52は、DRAM3のサブLUN3bと、PM4のサブLUN4bとの間でデータ置換を行なう。
DRAM3及びPM4に対する、APP51によるアクセスは第1アクセスの一例であり、HSS52によるアクセス(データの移動)は第2アクセスの一例である。なお、サブLUN3a、3b、4a、4bは、それぞれ、図6に示す位置及び数に限られるものではない。
制御部53は、DRAM3及びPM4に対するアクセスを制御する。
統計情報モニタ54は、制御部53(例えばMC2b)が処理する所定時間ごとのアクセス数を監視する監視部の一例であり、制御部53で処理される、DRAM3及びPM4に対するメモリアクセスの数(アクセス数)をモニタする。
HSS52は、置換判定部52aを備えてよい。置換判定部52aは、統計情報モニタ54を参照することで、DRAM3及びPM4に対するアクセス数を監視し、監視の結果に基づき、HSS52によるデータ置換の実施(指示)タイミングを制御してよい。
例えば、置換判定部52aは、データ置換の要求が発生すると、統計情報モニタ54を監視し、アクセス数が、DRAM3又はPM4が高アクセス頻度であることを示す場合、データ置換を保留してよい。高アクセス頻度であることを示す場合とは、例えば、アクセス数が所定の閾値以上である場合である。
図7の符号Aに示すグラフのように、制御部53が処理するアクセス数は、時間の経過に伴い変化する。置換判定部52aは、アクセス数の推移を、例えば1ミリ秒間隔で監視する。図7の例では、現在時刻におけるアクセス数が、例えば所定の閾値を下回る符号Bで示す破線領域に含まれないため、置換判定部52aは、アクセス数が小さくなるまでデータ置換を保留する。
図8の符号Cに示すグラフのように、現在時刻におけるアクセス数が小さくなり、符号Bで示す破線領域に含まれるようになると、置換判定部52aは、アクセス数が破線領域に含まれる状態が継続する継続時間(符号D参照)を推定してよい。そして、置換判定部52aは、継続時間内にデータ置換が完了する場合に、データ置換を実行すると判定してよい。HSS52は、置換判定部52aがデータ置換を実行すると判定すると、置換指示を発行する。処理部5は、置換指示に応じて、制御部53により、DRAM3のサブLUN3bからPM4のサブLUN4bへのデータ置換を実行する。
ところで、例えば、サーバ1において、DRAM3及びPM4に対する将来のアクセス数を純粋に予知することは困難である。しかしながら、サーバ1のシステムにおいて、同じような作業(例えば業務)が繰り返し実行される場合、DRAM3及びPM4に対するアクセスも、同様の傾向が繰り返される場合がある。このようなアクセスの傾向を利用すると、例えば、サーバ1は、DRAM3及びPM4に対する過去のアクセス傾向に基づき、今後の(例えば比較的近い将来の)アクセス傾向を推定することが可能となる。
そこで、一実施形態においては、DRAM3及びPM4に対して同様のアクセス傾向が繰り返されることを想定する(例えば前提とする)。サーバ1は、例えば、このような想定の元に、DRAM3及びPM4に対する過去のアクセスの継続時間に基づき、現在のアクセスがどの程度の期間に亘って継続し得るかを推定し、推定した継続時間に基づき、データ置換の実行タイミングを制御するのである。
なお、図9に例示するように、HSS52は、データ置換の要求が発生したときに、置換対象のデータをSSD7に移動させてもよい。図9の例では、HSS52は、DRAM3のサブLUN3bからSSD7のサブLUN7bへのデータの置換指示を発行する。この場合においても、置換判定部52aは、統計情報モニタ54を監視し、図7及び図8を参照して説明した判定と同様の判定を行なってよい。
図10に例示するように、HSS52は、置換判定部52aが統計情報モニタ54の監視によりデータ置換を実行すると判定した場合、SSD7からDRAM3又はPM4へのデータの置換指示を発行してよい。処理部5は、置換指示に応じて、制御部53により、SSD7のサブLUN7bからPM4のサブLUN4bへのデータ置換を実行する。
このように、HSS52は、DRAM3からPM4に移動するデータ、又は、PM4からDRAM3に移動するデータ、に関する移動要求を出力する移動決定部の一例である。また、HSS52及び制御部53は、移動要求に応じて置換判定部52aにより制御された実行タイミングでデータ移動を実行する移動実行部の一例である。さらに、置換判定部52aは、APP51による制御部53(MC2b)を経由したDRAM3及びPM4に対する1以上のアクセスの状況に基づき、移動要求に応じた、制御部53を経由するDRAM3及びPM4に対するデータ移動の実行タイミングを制御する移動制御部の一例である。
以上のように、一実施形態に係るサーバ1によれば、第1アクセスの状況に基づき、例えば、アクセス数が少ないことを検出したタイミングで第2アクセスの実行を制御する。換言すれば、置換判定部52aは、DRAM3及びPM4に対するアクセス数が多い間は、DRAM3及びPM4間におけるデータ転送を保留するのである。
これにより、サーバ1は、構成上で同一の記憶階層であるが性能上で互いに異なる記憶階層に属するDRAM3及びPM4に対する、APP51からのアクセスとHSS52によるデータ転送とが競合しないような制御を実現できる。従って、サーバ1は、サーバ1上でAPP51及びHSS52を実行する場合であっても、メモリへのアクセス状況に鑑みたデータ転送の実行タイミングの制御によって、APP51の性能を損なうことなく、HSS52によるデータ置換を実行することができる。
〔1−4〕一実施形態の機能構成例
次に、上述した一実施形態に係るサーバ1の詳細について説明する。図11は、一実施形態に係るサーバ1の機能構成例を示すブロック図である。サーバ1は、階層ストレージ装置の一例である。図11に示すように、サーバ1は、一実施形態に係るアクセス制御に関する機能に着目すると、例示的に、階層ストレージ制御装置10、DRAM3、及び、PM4を備えてよい。
次に、上述した一実施形態に係るサーバ1の詳細について説明する。図11は、一実施形態に係るサーバ1の機能構成例を示すブロック図である。サーバ1は、階層ストレージ装置の一例である。図11に示すように、サーバ1は、一実施形態に係るアクセス制御に関する機能に着目すると、例示的に、階層ストレージ制御装置10、DRAM3、及び、PM4を備えてよい。
DRAM3及びPM4は、それぞれ、記憶領域に種々のデータ(プログラムを含む)を記憶してよい。DRAM3及びPM4は、以下の第1及び第2の動作モードのいずれの動作モードとして動作してもよく、或いは、双方の動作モードにより動作してもよい。
第1の動作モードは、APP等のプログラムを少なくともDRAM3の記憶領域(プログラム領域)に配置し、データをPM4の記憶領域の少なくとも一部(ストレージ領域)に配置する動作モードである。第2の動作モードは、DRAM3をキャッシュとして利用し、PM4を主記憶装置(メモリ)として利用する動作モードである。
DRAM3及びPM4の各々は、サブLUN(単位領域)のデータを格納可能な記憶領域を含んでよい。階層ストレージ制御装置10は、サブLUN単位で、DRAM3とPM4との間のデータ置換(換言すれば、領域移動)を制御してよい。
なお、図11では、サーバ1がDRAM3及びPM4を1つずつ備えるものとしているが、これに限定されるものではなく、図5及び図6に例示するように、DRAM3及びPM4をそれぞれ複数備えてもよい。
階層ストレージ制御装置10は、サーバ1における種々の処理を実行する。階層ストレージ制御装置10は、階層ストレージ装置としてのサーバ1における処理部5(図6参照)の一例であって、図5に示すプロセッサ2により実現される機能の一例である。図6に示すように、階層ストレージ制御装置10は、例示的に、階層管理部11、階層ドライバ12、DIMMドライバ13、NVM(Non Volatile Memory)ドライバ14、APP15、及び、統計情報モニタ16の機能を備えてよい。
一実施形態においては、階層ストレージ制御装置10は、例えば、Linux(登録商標) device−mapperの機能を用いるものとする。device−mapperがDRAM3及びPM4をサブLUN単位で監視し、サブLUNのデータをDRAM3及びPM4間で移動することでIOアクセス(以下、単に「アクセス」と表記する場合がある)を処理する。device−mapperはコンピュータプログラムとして実装されてよい。
階層管理部11及びAPP15は、例えば、ユーザ空間で実行されるプログラムとして実現されてよい。階層ドライバ12、DIMMドライバ13、NVMドライバ14及び統計情報モニタ16は、例えば、OS空間で実行されるプログラムとして実現されてよい。
階層ドライバ12は、APP15からのDRAM3又はPM4に対するIO要求をDIMMドライバ13又はNVMドライバ14に振り分け、DIMMドライバ13又はNVMドライバ14からのIOレスポンスをユーザに返す。
階層ドライバ12は、移動指示部11dからサブLUN移動指示(セグメント移動指示)を受け取ると、DRAM3又はPM4の移動対象の単位領域に記憶されたデータをPM4又はDRAM3に移動する移動処理を実行する。なお、階層ドライバ12によるDRAM3−PM4間のデータ移動は、既知の手法により実現することができ、その説明は省略する。
DIMMドライバ13は、階層ドライバ12からの指示に基づいてDRAM3へのアクセスを制御する。NVMドライバ14は、階層ドライバ12からの指示に基づいてPM4へのアクセスを制御する。階層ドライバ12、DIMMドライバ13、及び、NVMドライバ14は、図6に示す制御部53の一例であり、図2に示すMC2bにより実現される機能の一例である。
APP15は、図6に示すAPP51の一例であり、DRAM3又はPM4に対して、サブLUN単位でアクセスを行なってよい。なお、APP15は、例えば、ネットワーク(図示省略)を介してサーバ1に接続された他のコンピュータ、例えばクライアントPCからの要求に応じて、DRAM3又はPM4へのアクセスを行なってもよい。
統計情報モニタ16は、監視部の一例であり、制御部53(例えばMC2b)、例えば、階層ドライバ12、又は、DIMMドライバ13及びNVMドライバ14で処理される、DRAM3及びPM4に対するメモリアクセスの数(アクセス数)をモニタする。メモリアクセスは、APP15や他のアプリケーション、OS等の種々のアクセス元によるDRAM3及びPM4に対するアクセスを含んでよい。換言すれば、APP15を含むアプリケーションやOSは、DRAM3及びPM4にアクセスするアクセス部の一例である。
例えば、統計情報モニタ16は、制御部53が実行する、DRAM3及びPM4に対するアクセス処理を計数するカウンタを用いて、アクセス数を計数してもよい。また、統計情報モニタ16は、計数したアクセス数をモニタ結果として格納するレジスタ等の記憶領域を含んでよい。モニタ結果としてのアクセス数は、所定時間、例えば一定時間間隔(T)ごとにリセット(初期化)可能であってよい。なお、(T)は、例えば、1ミリ秒程度の時間間隔であってよい。
階層管理部11は、図6に示すHSS52の一例である。階層管理部11は、サブLUNに対するIOアクセスを分析することで、DRAM3及びPM4間でデータを移動させるサブLUNの特定(移動候補抽出)、及び、移動タイミングの制御を行なってよい。また、階層管理部11は、DRAM3からPM4に対して、又は、PM4からDRAM3に対して、制御した移動タイミングにおいて、サブLUNのデータを移動させてよい。
図11に示すように、階層管理部11は、例示的に、データ収集部11a、ワークロード分析部11b、データ置換判定部11c、及び、移動指示部11dの機能を備えてよい。
データ収集部11aは、DRAM3及びPM4に対するIOアクセスの情報(IOアクセス情報)を収集する。例えば、データ収集部11aは、Linux(登録商標)のblktraceを用いてDRAM3及びPM4についてトレースされたIOの情報を所定間隔(例えば1分間隔)で収集する。データ収集部11aは、IOトレースにより、例えばtimestamp、LBA(Logical Block Addressing)、r/w(read / write)、length等の情報を採取する。LBAからはサブLUN IDを求めることができる。
blktraceは、ブロックIOレベルでのIOをトレースするコマンドである。トレースされたIOアクセスの情報は、トレース情報と称されてもよい。なお、データ収集部11aは、blktraceに代えて、ディスクIOの利用状況を確認するコマンドであるiostat等の他の手法を用いてIOアクセス情報を収集してもよい。blktrace及びiostatはOS空間で実行されてよい。なお、IOアクセス情報は、APP15や他のアプリケーション、OS等の種々のアクセス元によるDRAM3及びPM4に対するIOアクセスの情報を含んでよい。
データ収集部11aは、収集した情報に基づいて、サブLUNごとのIOアクセス数を集計する。データ収集部11aは、一定時間間隔(t)ごとにサブLUN単位でIOアクセスに関する情報を収集する。例えば、階層管理部11が1分間隔でサブLUNの移動判定を行なう場合には、この一定時間間隔(t)は1分に設定される。
ワークロード分析部11bは、データ収集部11aによって収集されたIOアクセス情報に基づき、DRAM3又はPM4におけるデータの移動元となるサブLUNを選択し、選択したサブLUNに関する情報を含む置換問合せをデータ置換判定部11cに渡す。置換問合せは、移動要求の一例である。サブLUNに関する情報は、例えば、置換(移動)の対象となるサブLUN(換言すれば、領域)の先頭アドレスの情報と、置換対象のデータサイズの情報とを含んでよい。
例えば、ワークロード分析部11bは、IOアクセス情報に基づき、IOアクセス集中やIOアクセス集中の終息の検出及び監視を行ない、検出されたIOアクセス集中に関する情報をデータベース(DB)(図示省略)に蓄積する。
ここで、IOアクセス集中とは、例えば、DRAM3及び/又はPM4の全記憶容量の所定%(例えば、0.1%程度〜数%)までの範囲領域に全IOアクセスの半分以上が集まった状態をいう。IOアクセス集中の終息とは、例えば、今までIOアクセスが集中していた範囲領域に関して、IOアクセス数が、上述した閾値未満となった状態をいう。
ワークロード分析部11bは、DBに蓄積した情報に基づきワークロードを分析し、ワークロードに応じて、DRAM3−PM4間におけるデータ置換の要否、及び、データ置換を行なう場合は置換するデータ(換言すればサブLUN)に関する情報を決定する。なお、「ワークロード」は、サーバ1の処理(作業)負荷やリソースの利用状況を示す情報(例えば指標)であり、APP15やクライアントからのIOアクセスの傾向に相関のある(例えばIOアクセスの傾向に応じて変化する)情報である。
例えば、ワークロード分析部11bは、PM4においてIOアクセスが集中発生する領域のデータを、アクセス速度がより高速であるDRAM3に移動させると判定することで、IOアクセスの集中による性能低下を抑制する。また、例えば、ワークロード分析部11bは、IOアクセスの頻度が小さい領域、例えばIOアクセス集中が終息する領域のデータを、アクセス速度がより低速であるPM4に移動させると判定することで、高速なDRAM3の効率的な利用を図ることができる。
このように、ワークロード分析部11bは、DRAM3からPM4に移動するデータ、又は、PM4からDRAM3に移動するデータ、に関する移動要求を出力する移動決定部の一例である。
移動指示部11dは、後述するデータ置換判定部11c(判定処理部26)からのデータ置換指示に従って、階層ドライバ12に、選択されたサブLUNのデータの、DRAM3からPM4への移動、又は、PM4からDRAM3への移動を指示する。
このように、移動指示部11d、階層ドライバ12、DIMMドライバ13及びNVMドライバ14は、データ置換判定部11cにより制御された実行タイミング、例えばデータ置換判定部11cからデータ置換指示を受信したタイミングでデータ移動を実行する移動実行部の一例である。
データ収集部11a、ワークロード分析部11b及び移動指示部11dの各機能の少なくとも一部は、既知の種々の手法により実現可能である。例えば、これらの機能の少なくとも一部として、上記特許文献3に記載されたデータ収集部11a、ワークロード分析部11b及び移動指示部11cの機能が採用されてもよい。
データ置換判定部11cは、図6に示す置換判定部52a、換言すれば移動制御部の一例であり、ワークロード分析部11bから受け取る置換問合せ、換言すればデータ置換の要求に基づき、データ置換の実行タイミングを制御する。例えば、データ置換判定部11cは、算出部20及び判定処理部26を備えてよい。
算出部20は、判定処理部26による判定に用いられる情報を算出する。例えば、算出部20は、統計情報モニタ16からIOアクセス数を、例えば一定時間間隔(T)ごとに受信し、IOアクセス数に基づき、以下のように、分布表23、閾値24及び平均データ置換速度25の情報を算出する。なお、分布表23、閾値24及び平均データ置換速度25は、DRAM3又はPM4等のメモリの記憶領域に、DB、配列又はテーブル等の種々の形式で格納されてもよい。
判定処理部26は、算出部20が算出した情報に基づき、置換問合せにおいて要求されたサブLUNの置換の実行タイミングを制御する。例えば、判定処理部26は、データ置換で移動されるデータ量が、移動可能データ量以下である場合、移動指示部11cにデータ置換の実行を指示してよい。なお、移動可能データ量は、一定時間間隔(T)ごとのAPP15による1以上のアクセス数が閾値(E)未満である状態が継続すると推定される継続時間内に、DRAM3とPM4との間で移動可能なデータ量の一例である。閾値(E)は、算出部20により算出されてよい。
ここで、上述したように、一実施形態においては、DRAM3及びPM4に対して同様のアクセス傾向が繰り返されることを想定する。従って、以下の説明では、例えば、サーバ1の運用システムのワークロードにおいて、DRAM3及びPM4に対する直近のアクセス傾向が継続する場合がある、という前提条件を考慮する。
算出部20が算出する分布表23は、DRAM3及びPM4に対する一定時間間隔(T)ごとのIOアクセス数が連続して閾値(E)を下回った回数(連続数)を記録した情報である。換言すれば、分布表23は、閾値(E)を下回ったIOアクセスが継続する継続時間の統計値である。
例えば、判定処理部26は、直近の複数の統計値を用いて、現在発生している、閾値(E)を下回るアクセスが、これからどの程度の期間に亘って継続するのかを示す「残り継続数」を推定する。残り継続数とは、現在を起点として、現在発生している、閾値(E)を下回るアクセスが継続する回数を意味する。
残り継続数を推定できれば、継続数が1回の場合の継続時間(一定時間間隔(T);所定期間)が決まっているため、判定処理部26は、残り継続時間を推定することができる。また、DRAM3とPM4との間における平均データ置換速度、換言すれば、単位時間当たりのデータの移動可能量は、実測値又は仕様等から得られるため、判定処理部26は、残り継続時間及び平均データ置換速度から、移動可能データ量を算出できる。なお、平均データ置換速度は、算出部20により算出されてよい。
以上のように、判定処理部26は、分布表23に基づき算出した移動可能データ量と、移動指示に係るデータ量とを比較し、データ量が移動可能データ量以下である場合、移動指示部11cにデータ置換の実行を指示するのである。
以下、算出部20及び判定処理部26の詳細を説明する。まず、算出部20による分布表23、閾値24及びデータ置換速度25の算出手法の一例を説明する。
(分布表23の算出例)
算出部20は、一定時間間隔(T)ごとのIOアクセス数が連続して閾値(E)を下回った回数(連続数)を回数DB21に蓄積する。閾値(E)は、閾値24として算出される値である。閾値(E)の初期値は、一定時間間隔(T)に応じて設定されてよい。
算出部20は、一定時間間隔(T)ごとのIOアクセス数が連続して閾値(E)を下回った回数(連続数)を回数DB21に蓄積する。閾値(E)は、閾値24として算出される値である。閾値(E)の初期値は、一定時間間隔(T)に応じて設定されてよい。
例えば、算出部20は、連続数(C)の初期値を0として、一定時間間隔(T)ごとに、入力されたIOアクセス数が閾値(E)を下回っていた場合、連続数(C)に1を加算する。一方、算出部20は、IOアクセス数が閾値(E)以上の場合、連続数(C)の値を回数DB21に書き込み、連続数(C)を0に初期化する。
そして、算出部20は、回数DB21に蓄積された連続数(C)のデータ数が所定個数(L)に達した場合に、分布表23を作成する。例えば、算出部20は、連続数(C)のデータ数が所定個数(L)に達した場合に、連続数(C)の値ごとに回数DB21に蓄積された連続数(C)のデータ数(個数)を集計して、分布表23を作成し、回数DB21のデータをクリアする。所定個数(L)は、数十から数百或いは数千まで程度の値であってよい。
図12は、分布表23の一例を示す図である。図12に示すように、分布表23は、例示的に、連続数(C)、及び、サンプリング数の項目を含んでよい。例えば、図12の例では、連続数(C)=1として回数DB21に蓄積されたデータ数が100個であり、連続数(C)=2として回数DB21に蓄積されたデータ数が77個であることを示す。このように、図12の例では、1回連続して閾値24を下回ったアクセスの回数から、15回連続して閾値24を下回ったアクセスの回数までの各回数が、判定処理部26による判定に利用される分布表23にサンプル数として蓄積される。
以上のように、算出部20は、一定時間間隔(T)ごとのアクセス数が1以上の一定時間間隔(T)に亘って連続して閾値24を下回った回数を、連続した回数である連続数(C)と対応付けて集計する集計部の一例である。
(閾値24の算出例)
算出部20は、入力されたIOアクセス数を、タイムスタンプとともにアクセス数DB22に蓄積する。
算出部20は、入力されたIOアクセス数を、タイムスタンプとともにアクセス数DB22に蓄積する。
そして、算出部20は、分布表23の生成タイミングで、換言すれば、連続数(C)のデータ数が所定個数(L)に達した場合に、閾値24を算出する。
例えば、算出部20は、アクセス数DB22に蓄積されたデータ(アクセス数)を全て読み出し、アクセス数の四分位数を算出する。アクセス数の四分位数は、アクセス数の分布を示す情報の一例である。算出部20は、算出した四分位数のうちの第一四分位数(下から25%)を閾値(E)に決定し、閾値24を更新する。また、算出部20は、アクセス数DB22のデータをクリアする。
このように、算出部20は、アクセス数の分布に基づき、APP15への影響が少ないポイントを閾値(E)に決定する。
(平均データ置換速度25の算出例)
算出部20は、DRAM3−PM4間で実行されたデータ置換におけるデータ置換速度(データ移動速度)を取得する。例えば、算出部20は、データ置換速度を、図11に示すように移動指示部11dから取得してもよい。或いは、算出部20は、トレース情報に基づきデータ収集部11aにより算出されたデータ置換速度をデータ収集部11aから取得してもよいし、階層ドライバ12から取得してもよい。
算出部20は、DRAM3−PM4間で実行されたデータ置換におけるデータ置換速度(データ移動速度)を取得する。例えば、算出部20は、データ置換速度を、図11に示すように移動指示部11dから取得してもよい。或いは、算出部20は、トレース情報に基づきデータ収集部11aにより算出されたデータ置換速度をデータ収集部11aから取得してもよいし、階層ドライバ12から取得してもよい。
例えば、算出部20は、データ置換速度を図示しないDBに蓄積し、DBに蓄積されたデータ置換速度のデータ数(個数)が所定個数(Z)に達した場合に、DBに蓄積されたデータ置換速度の平均値を算出して、平均データ置換速度25を更新してよい。所定個数(Z)は、数十から数百或いは数千まで程度の値であってよい。
以上のように、算出部20は、分布表23、閾値24及び平均データ置換速度25を算出する。
判定処理部26は、算出部20により算出された情報と、データ置換により移動されるデータ量とに基づき、APP15による1以上のアクセスの状況が、当該1以上のアクセスと、データ移動と、の実行によるMC2bでのアクセス競合を抑制するための条件を満たす場合、移動指示部11dにデータ移動の実行を指示する。判定処理部26は、図11に例示するように、受付部27、判定部28及び推定部29を備えてよい。
受付部27は、統計情報モニタ16からIOアクセス数の情報を受け取る。また、受付部27は、ワークロード分析部11bから置換問合せを受け付けると、置換問合せを判定部28に渡し、算出部20が算出した分布表23、閾値24及び平均データ置換速度25に基づく置換判定処理を指示する。
判定部28は、置換判定処理の指示に応じてデータ置換を行なうか否かを判定する。例えば、判定部28は、MC2bでのアクセス競合を抑制するための条件として、データ移動で移動されるデータ量(M)が、移動可能データ量(K)以下であること、を検出した場合に、データ置換を行なうと判定する。
例えば、判定部28は、連続数(C)が0よりも大きい場合に、推定部29に対して、現在の連続数(C)に基づき残り連続数(J)を推定させ、推定結果と、平均データ置換速度25とに基づき、移動可能データ量(K)を算出してよい。
判定部28は、例えば、回数DB21を参照することで、連続数(C)を取得してもよいし、或いは、算出部20と同様の手法により、統計情報モニタ16から入力されるIOアクセス数に基づき連続数(C)を取得(更新)してもよい。
推定部29は、判定部28から入力される現在の連続数(C)と、分布表23とに基づいて、残り継続数(J)を推定(算出)し、推定した残り継続数(J)を判定部28に通知する。このように、推定部29は、現在の連続数(C)の監視結果を、図12に示す分布表23の情報と照らし合わせることで、残り継続数(J)を推定する。
例えば、現在の連続数C=2である場合、図12に示す分布表23において、連続数C=2の時点は既に過ぎてしまっている。そこで、推定部29は、分布表23における連続数C=3以降のデータを用いて、現在のIOアクセスが後どれだけの期間に亘って継続するのかを推定する。
以下の説明において、判定部28から入力される現在の連続数(C)を連続数(C2)と表記する。例えば、現在の連続数C=2である上記の例の場合、C2=2と表記する。なお、C2=0は、アクセス数が閾値(E)を上回っている状態(残り継続数(J)を推定できない状態)を意味する。
図13は、残り連続数(J)の推定手法の一例を示す図である。図13には、C2=2の場合を示す。例えば、推定部29は、分布表23の内容に、連続数(C)から連続数(C2)を減算した(C3)の項目、及び、サンプリング数(S)に(C3)を乗算した(S×C3)の項目、を追加した残り継続数算出テーブルを生成する。(C3)は、判定部28から連続数(C2)を入力された時点で既に連続していた分を連続数(C)から控除する(対象外とする)ために求められる。すなわち、連続数C3=C−C2となる。
そして、推定部29は、残り継続数算出テーブルのうち、(C3)が0以下のエントリは使用せず、(C3)が1以上のエントリを対象として、(S×C3)の総和から、(C3)の総和を除算することで、残り継続数(推定値)(J)を算出してよい。図13の例では、推定部29は、(S×C3)の総和として30+64+・・・+0=1102を算出し、(C3)の総和として1+2+・・・+13=91を算出し、(S×C3)の総和/(C3)の総和=1102/91=12.1を残り継続数(J)として算出する。
このように、推定部29は、現在の連続数(C3)が今後どの程度継続するかを示す残り継続数(J)を、直前のサーバ1の利用形態に基づく分布表23における、連続数C3=1以降の連続数(C)の平均を算出することで求めることができる。換言すれば、推定部29は、同様のアクセス傾向が繰り返されるワークロードにおける過去のアクセス傾向に基づく「確率」を用いることで、現在の連続数(C3)が今後連続する可能性の高い回数である残り継続数(J)を推定する。
以上のように、推定部29は、直近のアクセス数の連続数(C2)と、算出部20による集計の結果である分布表23とに基づき、直近のアクセス数が閾値24未満である状態が継続する継続数(J)を推定する。
判定部28は、平均データ置換速度25、推定部29により推定された残り継続数(J)、及び、IOアクセス数が入力される時間間隔である一定時間間隔(T)に基づき、残り継続数(J)の間に置換できるデータ量(K)を算出する。
平均データ置換速度25を(I)とすると、判定部28は、例えば、(I)×(J)×(T)を算出することで、データ量(K)を算出してよい。(J)×(T)は、アクセス数が継続して少ないと推定された推定時間であり、DRAM3及びPM4に対する1以上の第1アクセスの所定時間(T)におけるアクセス数が閾値24未満である状態が継続すると推定される期間(継続時間)の一例である。データ量(K)は、当該推定時間内に最大で置換可能なデータ量(最大データ置換量)である。換言すれば、データ量(K)は、DRAM3及びPM4に対する1以上の第1アクセスの所定時間(T)におけるアクセス数が閾値24未満である状態が継続すると推定される期間内にDRAM3とPM4との間で移動可能な移動可能データ量の一例である。
そして、判定部28は、データ量(K)がデータ置換量(M)以上である場合に、データ置換を実行すると判定し、移動指示部11dに対して、置換するサブLUNに関する情報(アドレス及びサイズの情報)を含む置換指示を発行する。一方、データ量(K)がデータ置換量(M)未満の場合には、判定部28は、置換指示の発行を保留し、次のIOアクセス数の受信(次の(T)の到来)まで待機する。なお、データ置換量(M)は、置換するサブLUNのデータ量(例えばサブLUN数×1サブLUNのサイズ)である。
以上のように、階層管理部11では、IOアクセス数に基づき、データ置換を行なうタイミングを制御することで、APP15からのアクセスと階層管理部11によるデータ転送とが競合しないような制御を実現できる。従って、サーバ1は、サーバ1上でAPP15及び階層管理部11を実行する場合であっても、メモリへのアクセス状況に鑑みたデータ転送の実行タイミングの制御によって、APP15の性能を損なうことなく、HSSによるデータ置換を実行することができる。
〔1−5〕動作例
次に、図14〜図19を参照して、上述の如く構成された一実施形態に係るサーバ1の動作例を説明する。以下、図14〜図16を参照して、階層管理部11(データ置換判定部11c)の算出部20による分布表23、閾値24及び平均データ置換速度25の算出処理の動作例を説明し、図17〜図19を参照して、判定処理部26の動作例を説明する。
次に、図14〜図19を参照して、上述の如く構成された一実施形態に係るサーバ1の動作例を説明する。以下、図14〜図16を参照して、階層管理部11(データ置換判定部11c)の算出部20による分布表23、閾値24及び平均データ置換速度25の算出処理の動作例を説明し、図17〜図19を参照して、判定処理部26の動作例を説明する。
〔1−5−1〕分布表作成処理の動作例
まず、図14を参照して、分布表23の作成処理の動作例を説明する。図14に例示するように、算出部20は、連続数(C)、及び、データ数(NOD:NumOfData)をそれぞれ0に初期化し(ステップA1)、新たなアクセス数の入力を待ち受ける(ステップA2、ステップA2でNO)。
まず、図14を参照して、分布表23の作成処理の動作例を説明する。図14に例示するように、算出部20は、連続数(C)、及び、データ数(NOD:NumOfData)をそれぞれ0に初期化し(ステップA1)、新たなアクセス数の入力を待ち受ける(ステップA2、ステップA2でNO)。
統計情報モニタ16から新たなアクセス数が入力されると(ステップA2でYES)、算出部20は、入力されたアクセス数が閾値(E)を下回った否かを判定する(ステップA3)。アクセス数が閾値(E)を下回った場合(ステップA3でYES)、算出部20は、連続数(C)に1を加算し(ステップA4)、処理がステップA2に移行する。
アクセス数が閾値(E)を下回らない場合(ステップA3でNO)、換言すれば、アクセス数が閾値(E)以上である場合、算出部20は、連続数(C)の値を回数DB21に書き込む。また、算出部20は、連続数(C)を0に初期化し、データ数(NOD)に1を加算して(ステップA5)、処理がステップA6に移行する。
ステップA6において、算出部20は、データ数(NOD)が所定個数(L)以上か否かを判定する。データ数(NOD)が所定個数(L)以上ではない場合(ステップA6でNO)、処理がステップA2に移行する。データ数(NOD)が所定個数(L)以上である場合(ステップA6でYES)、算出部20は、回数DB21に蓄積した連続数(C)を読み出し、連続数(C)ごとの個数を集計して分布表23を作成する(ステップA7:図12参照)。
そして、算出部20は、回数DB21をクリアし、データ数(NOD)を0に初期化して(ステップA8)、処理がステップA2に移行する。
〔1−5−2〕閾値算出処理の動作例
次に、図15を参照して、閾値24の算出処理の動作例を説明する。図15に例示するように、算出部20は、新たなアクセス数の入力を待ち受ける(ステップB1、ステップB1でNO)。
次に、図15を参照して、閾値24の算出処理の動作例を説明する。図15に例示するように、算出部20は、新たなアクセス数の入力を待ち受ける(ステップB1、ステップB1でNO)。
統計情報モニタ16から新たなアクセス数が入力されると(ステップB1でYES)、算出部20は、入力されたアクセス数とタイムスタンプとをアクセス数DB22に書き込む(ステップB2)。
算出部20は、連続数(C)のデータ数(NOD)が所定個数(L)以上か否かを判定する(ステップB3)。データ数(NOD)が所定個数(L)以上ではない場合(ステップB3でNO)、処理がステップB1に移行する。
データ数(NOD)が所定個数(L)以上である場合(ステップB3でYES)、算出部20は、アクセス数DB22に蓄積したデータを全て読み出し、アクセス数の四分位数を算出し、第一四分位数を閾値(E)として閾値24を更新する(ステップB4)。そして、算出部20は、アクセス数DB22をクリアし(全エントリを削除し)(ステップB5)、処理がステップB1に移行する。
なお、ステップB3は、図14に示すステップA6と同一の(共通する)処理であるため、ステップB4の処理は、図14に示すステップA7の処理と並行して(或いは前後して)実行されてよい。
〔1−5−3〕平均データ置換速度算出処理の動作例
次に、図16を参照して、平均データ置換速度25の算出処理の動作例を説明する。図16に例示するように、算出部20は、新たなデータ置換速度の入力を待ち受ける(ステップC1、ステップC1でNO)。
次に、図16を参照して、平均データ置換速度25の算出処理の動作例を説明する。図16に例示するように、算出部20は、新たなデータ置換速度の入力を待ち受ける(ステップC1、ステップC1でNO)。
移動指示部11d、データ収集部11a或いは階層ドライバ12等から新たなデータ置換速度が入力されると(ステップC1でYES)、算出部20は、入力された値をDBに蓄積する(ステップC2)。
算出部20は、蓄積された値の数が所定個数(Z)に達したか否かを判定する(ステップC3)。蓄積された値の数が所定個数(Z)に達していない場合(ステップC3でNO)、処理がステップC1に移行する。
蓄積された値の数が所定個数(Z)に達した場合(ステップC3でYES)、算出部20は、蓄積された値を用いて平均データ置換速度(I)を算出し、平均データ置換速度25を更新する(ステップC4)。そして、算出部20は、DBに蓄積された値を全てクリアし(全エントリを削除し)(ステップC5)、処理がステップC1に移行する。
〔1−5−4〕データ置換処理の動作例
次に、図17を参照して、階層管理部11によるデータ置換処理の動作例を説明する。図17に例示するように、階層管理部11のワークロード分析部11bは、データ収集部11aによるトレース情報の収集結果に基づき、データ置換判定部11cに置換問合せを送信する(ステップS1)。置換問合せには、サブLUNに関する情報、例えば置換領域の先頭アドレス(F−LBA)及びデータ置換量(M)の情報が含まれてよい。
次に、図17を参照して、階層管理部11によるデータ置換処理の動作例を説明する。図17に例示するように、階層管理部11のワークロード分析部11bは、データ収集部11aによるトレース情報の収集結果に基づき、データ置換判定部11cに置換問合せを送信する(ステップS1)。置換問合せには、サブLUNに関する情報、例えば置換領域の先頭アドレス(F−LBA)及びデータ置換量(M)の情報が含まれてよい。
データ置換判定部11cは、置換問合せの受信に応じて、置換判定処理を実行する(ステップS2)。
移動指示部11dは、置換判定処理の完了に応じてデータ置換判定部11cから送信された置換指示を受信すると、置換指示に応じて、階層ドライバ12にデータ移動を指示し(ステップS3)、処理が終了する。なお、データ移動の指示には、先頭アドレス(F−LBA)及びデータ置換量(M)の情報が含まれてよい。
〔1−5−5〕データ置換判定処理の動作例
次に、図18を参照して、図17のステップS2において実行される、階層管理部11のデータ置換判定部11cによるデータ置換判定処理の動作例を説明する。図18に示すように、判定処理部26は、連続数(C2)を0に初期化する(ステップS11)。
次に、図18を参照して、図17のステップS2において実行される、階層管理部11のデータ置換判定部11cによるデータ置換判定処理の動作例を説明する。図18に示すように、判定処理部26は、連続数(C2)を0に初期化する(ステップS11)。
判定処理部26の受付部27は、ワークロード分析部11bからデータ置換量(M)を含むデータ置換問合せの受信を待ち合わせる(ステップS12、ステップS12でNO)。
データ置換問合せを受信した場合(ステップS12でYES)、判定部28は、新たなアクセス数の入力を待ち受ける(ステップS13、ステップS13でNO)。
統計情報モニタ16から新たなアクセス数が入力されると(ステップS13でYES)、判定部28は、入力されたアクセス数が閾値(E)を下回ったか否かを判定する(ステップS14)。入力されたアクセス数が閾値(E)を下回らない場合(ステップS14でNO)、処理がステップS11に移行する。
入力されたアクセス数が閾値(E)を下回った場合(ステップS14でYES)、判定部28は、C2に1を加算し(ステップS15)、C2を引数として、推定部29に残り継続数推定処理を実行させ(ステップS16)、残り継続数(J)を取得する。
判定部28は、平均データ置換速度(I)、残り継続数(J)及び一定時間間隔(T)を乗じることで最大データ置換量(データ量)(K)を算出し(ステップS17)、データ置換量(M)が最大データ置換量(K)以下か否かを判定する(ステップS18)。
データ置換量(M)が最大データ置換量(K)以下ではない場合(ステップS18でNO)、残り継続数(J)の間にデータ置換が完了しないため、判定部28は、データ置換を保留する。例えば、処理がステップS13に移行する。
データ置換量(M)が最大データ置換量(K)以下である場合(ステップS18でYES)、残り継続数(J)の間にデータ置換が完了するため、判定部28は、移動指示部11dに対して、データ置換指示を送信し(ステップS19)、処理が終了する。
〔1−5−6〕残り継続数推定処理の動作例
次に、図19を参照して、図18のステップS16に示す推定部29による残り継続数推定処理の動作例を説明する。図19に示すように、推定部29は、判定部28から、現在の連続数(C2)の入力を受け付ける(ステップS21)。
次に、図19を参照して、図18のステップS16に示す推定部29による残り継続数推定処理の動作例を説明する。図19に示すように、推定部29は、判定部28から、現在の連続数(C2)の入力を受け付ける(ステップS21)。
推定部29は、分布表23の連続数(C)ごとに、C3=C−C2を計算する(ステップS22)。
また、推定部29は、C3の値が正となった行(図13の例では連続数(C)が3以降の行)に関して、以下の式(1)〜式(3)による計算を行ない、式(3)により残り継続数(J)を取得する(ステップS23)。
C3sum = ΣC3 (1)
SC3sum = Σ(S × C3) (2)
残り継続数(J) = SC3sum / C3sum (3)
SC3sum = Σ(S × C3) (2)
残り継続数(J) = SC3sum / C3sum (3)
そして、推定部29は、残り継続数(J)を判定部28に出力し(ステップS24)、処理が終了する。
〔1−6〕一実施形態の変形例
図20は、一実施形態の変形例に係る機能構成例を示すブロック図である。図9及び図10に例示したように、サーバ1は、データ置換の要求が発生すると、置換対象のデータをSSD7に移動させ、データ置換を実行すると判定した場合、SSD7からDRAM3又はPM4にデータを移動させてもよい。
図20は、一実施形態の変形例に係る機能構成例を示すブロック図である。図9及び図10に例示したように、サーバ1は、データ置換の要求が発生すると、置換対象のデータをSSD7に移動させ、データ置換を実行すると判定した場合、SSD7からDRAM3又はPM4にデータを移動させてもよい。
図20に示すように、変形例に係るデータ置換処理に利用される構成として、サーバ1はSSD7を備えるとともに、階層ストレージ制御装置10はSSDドライバ17を備えてよい。SSDドライバ17は、階層ドライバ12からの指示に基づいてSSD7へのアクセスを制御してよく、例えば、OS空間で実行されるプログラムとして実現されてよい。また、判定処理部26は、受付部27及び判定部28とは異なる受付部27A及び判定部28Aを備えてよい。
受付部27Aは、図21に例示するように、ワークロード分析部11bから置換問合せを受信すると、SSD7の空き領域を確保し、置換対象のサブLUNを確保した空き領域に置換する置換(移動)指示を移動指示部11dに発行する(ステップS31)。例えば、受付部27Aは、置換問合せに含まれるサブLUNの情報に基づき、置換対象のデータの先頭アドレス(F−LBA)からデータ置換量(M)分のデータ(サブLUN)を読み出す置換指示を発行してよい。移動指示部11dは、階層ドライバ12を介して、置換対象のDRAM3又はPM4からSSD7へのデータ置換を行なう。
判定部28Aは、図21に例示するように、ステップS2における置換判定処理においてデータ置換を行なうと判定した場合、SSD7に移動させた置換対象のデータを、置換先(本来の置換領域)に移動させる置換指示を発行する。これにより、移動指示部11dは、置換指示に応じて、階層ドライバ12にSSD7からDRAM3又はPM4の本来の置換領域へのデータ移動を指示することができる。
以上のように、変形例に係る手法によっても一実施形態と同様の効果を奏することができるほか、ワークロード分析部11bからの置換問合せの発行後にDRAM3又はPM4から速やかに置換対象のデータをSSD7に待避できる。これにより、DRAM3又はPM4の記憶領域から置換対象のデータを速やかに解放でき、DRAM3又はPM4の限られた記憶領域を有効活用することができる。特に、DRAM3上のアクセス数の低下したサブLUNをPM4に移動させる場合、データ置換判定部11cによる置換可能の判定を待たずにDRAM3の記憶領域からサブLUNを解放できるため、サーバ1の処理性能の向上を図ることができる。
〔2〕その他
上述した一実施形態及び変形例に係る技術は、以下のように変形、変更して実施することができる。
上述した一実施形態及び変形例に係る技術は、以下のように変形、変更して実施することができる。
例えば、図6に示すサーバ1において、処理部5内のHSS52、制御部53及び統計情報モニタ54の機能は、任意の組み合わせで併合してもよく、それぞれ分割してもよい。また、図11及び図21に示すサーバ1において、階層管理部11内のデータ収集部11a、ワークロード分析部11b、データ置換判定部11c及び移動指示部11dの機能は、任意の組み合わせで併合してもよく、それぞれ分割してもよい。さらに、図11及び図21に示すサーバ1において、データ置換判定部11c内の算出部20及び判定処理部26の機能は、併合してもよく、それぞれ分割してもよい。また、図11及び図21に示すサーバ1において、判定処理部26内の受付部27又は27A、判定部28又は28A、並びに、推定部29の機能は、任意の組み合わせで併合してもよく、それぞれ分割してもよい。
〔3〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
第1メモリと、
前記第1メモリとは処理速度の異なる第2メモリと、
前記第1メモリ及び前記第2メモリと接続され、前記第1メモリ及び前記第2メモリに対するアクセスを制御するメモリコントローラ、を有するプロセッサと、を備え、
前記プロセッサは、
前記第1メモリから前記第2メモリに移動するデータ、又は、前記第2メモリから前記第1メモリに移動するデータ、に関する移動要求を出力する移動決定部と、
前記メモリコントローラを経由した前記第1メモリ及び前記第2メモリに対する1以上の第1アクセスと、前記移動要求に応じた第2アクセスであって、前記メモリコントローラを経由する前記第1メモリ及び前記第2メモリに対する前記第2アクセスで移動されるデータ量とに基づき、前記第2アクセスの実行タイミングを制御する移動制御部と、
制御された前記実行タイミングで前記第2アクセスを実行する移動実行部と、を備える、情報処理装置。
第1メモリと、
前記第1メモリとは処理速度の異なる第2メモリと、
前記第1メモリ及び前記第2メモリと接続され、前記第1メモリ及び前記第2メモリに対するアクセスを制御するメモリコントローラ、を有するプロセッサと、を備え、
前記プロセッサは、
前記第1メモリから前記第2メモリに移動するデータ、又は、前記第2メモリから前記第1メモリに移動するデータ、に関する移動要求を出力する移動決定部と、
前記メモリコントローラを経由した前記第1メモリ及び前記第2メモリに対する1以上の第1アクセスと、前記移動要求に応じた第2アクセスであって、前記メモリコントローラを経由する前記第1メモリ及び前記第2メモリに対する前記第2アクセスで移動されるデータ量とに基づき、前記第2アクセスの実行タイミングを制御する移動制御部と、
制御された前記実行タイミングで前記第2アクセスを実行する移動実行部と、を備える、情報処理装置。
(付記2)
前記移動制御部は、前記第2アクセスで移動されるデータ量が、所定時間における前記1以上の第1アクセスのアクセス数が閾値未満である状態が継続すると推定される期間内に前記第1メモリと前記第2メモリとの間で移動可能な移動可能データ量以下である場合、前記移動実行部に前記第2アクセスの実行を指示する、
付記1に記載の情報処理装置。
前記移動制御部は、前記第2アクセスで移動されるデータ量が、所定時間における前記1以上の第1アクセスのアクセス数が閾値未満である状態が継続すると推定される期間内に前記第1メモリと前記第2メモリとの間で移動可能な移動可能データ量以下である場合、前記移動実行部に前記第2アクセスの実行を指示する、
付記1に記載の情報処理装置。
(付記3)
前記プロセッサは、前記メモリコントローラが処理する前記所定時間ごとのアクセス数を監視する監視部を備え、
前記移動制御部は、
前記監視部が監視する前記所定時間ごとのアクセス数が1以上の前記所定時間に亘って連続して前記閾値を下回った回数を、前記連続した回数である連続数と対応付けて集計する集計部と、
前記監視部が監視する直近のアクセス数の連続数と、前記集計部による前記集計の結果とに基づき、前記直近のアクセス数が前記閾値未満である状態が継続する継続数を推定する推定部と、を備える、
付記2に記載の情報処理装置。
前記プロセッサは、前記メモリコントローラが処理する前記所定時間ごとのアクセス数を監視する監視部を備え、
前記移動制御部は、
前記監視部が監視する前記所定時間ごとのアクセス数が1以上の前記所定時間に亘って連続して前記閾値を下回った回数を、前記連続した回数である連続数と対応付けて集計する集計部と、
前記監視部が監視する直近のアクセス数の連続数と、前記集計部による前記集計の結果とに基づき、前記直近のアクセス数が前記閾値未満である状態が継続する継続数を推定する推定部と、を備える、
付記2に記載の情報処理装置。
(付記4)
前記移動制御部は、前記第1メモリ及び前記第2メモリ間のデータ移動の平均速度を取得し、前記平均速度と、前記継続数とに基づき、前記移動可能データ量を算出する、
付記3に記載の情報処理装置。
前記移動制御部は、前記第1メモリ及び前記第2メモリ間のデータ移動の平均速度を取得し、前記平均速度と、前記継続数とに基づき、前記移動可能データ量を算出する、
付記3に記載の情報処理装置。
(付記5)
前記移動制御部は、前記監視部が監視する前記所定時間ごとのアクセス数の分布に基づき、前記閾値を決定する、
付記3又は付記4に記載の情報処理装置。
前記移動制御部は、前記監視部が監視する前記所定時間ごとのアクセス数の分布に基づき、前記閾値を決定する、
付記3又は付記4に記載の情報処理装置。
(付記6)
記憶装置を備え、
前記移動制御部は、前記移動要求の受信に応じて、移動対象のデータを、移動元である前記第1メモリ又は前記第2メモリから前記記憶装置に移動する移動指示を前記移動実行部に出力し、前記第2アクセスで移動されるデータ量が前記移動可能データ量以下である場合、前記移動実行部に、前記移動対象のデータを、前記記憶装置から移動先である前記第2メモリ又は前記第1メモリに移動する前記第2アクセスの実行を指示する、
付記2〜付記5のいずれか1項に記載の情報処理装置。
記憶装置を備え、
前記移動制御部は、前記移動要求の受信に応じて、移動対象のデータを、移動元である前記第1メモリ又は前記第2メモリから前記記憶装置に移動する移動指示を前記移動実行部に出力し、前記第2アクセスで移動されるデータ量が前記移動可能データ量以下である場合、前記移動実行部に、前記移動対象のデータを、前記記憶装置から移動先である前記第2メモリ又は前記第1メモリに移動する前記第2アクセスの実行を指示する、
付記2〜付記5のいずれか1項に記載の情報処理装置。
(付記7)
コンピュータに、
第1メモリから前記第1メモリとは処理速度の異なる第2メモリに移動するデータ、又は、前記第2メモリから前記第1メモリに移動するデータ、に関する移動要求を出力し、
前記第1メモリ及び前記第2メモリと接続されたメモリコントローラであって、前記第1メモリ及び前記第2メモリに対するアクセスを制御するメモリコントローラを経由した前記第1メモリ及び前記第2メモリに対する1以上の第1アクセスの状況と、前記移動要求に応じた第2アクセスであって、前記メモリコントローラを経由する前記第1メモリ及び前記第2メモリに対する前記第2アクセスで移動されるデータ量とに基づき、前記第2アクセスの実行タイミングを制御し、
制御された前記実行タイミングで前記第2アクセスを実行する、
処理を実行させる、情報処理プログラム。
コンピュータに、
第1メモリから前記第1メモリとは処理速度の異なる第2メモリに移動するデータ、又は、前記第2メモリから前記第1メモリに移動するデータ、に関する移動要求を出力し、
前記第1メモリ及び前記第2メモリと接続されたメモリコントローラであって、前記第1メモリ及び前記第2メモリに対するアクセスを制御するメモリコントローラを経由した前記第1メモリ及び前記第2メモリに対する1以上の第1アクセスの状況と、前記移動要求に応じた第2アクセスであって、前記メモリコントローラを経由する前記第1メモリ及び前記第2メモリに対する前記第2アクセスで移動されるデータ量とに基づき、前記第2アクセスの実行タイミングを制御し、
制御された前記実行タイミングで前記第2アクセスを実行する、
処理を実行させる、情報処理プログラム。
(付記8)
前記実行タイミングの制御は、前記第2アクセスで移動されるデータ量が、所定時間における前記1以上の第1アクセスのアクセス数が閾値未満である状態が継続すると推定される期間内に前記第1メモリと前記第2メモリとの間で移動可能な移動可能データ量以下である場合、前記第2アクセスの実行指示を出力し、
前記第2アクセスの実行は、出力された前記実行指示に応じて前記第2アクセスを実行する、
付記7に記載の情報処理プログラム。
前記実行タイミングの制御は、前記第2アクセスで移動されるデータ量が、所定時間における前記1以上の第1アクセスのアクセス数が閾値未満である状態が継続すると推定される期間内に前記第1メモリと前記第2メモリとの間で移動可能な移動可能データ量以下である場合、前記第2アクセスの実行指示を出力し、
前記第2アクセスの実行は、出力された前記実行指示に応じて前記第2アクセスを実行する、
付記7に記載の情報処理プログラム。
(付記9)
前記コンピュータに、
前記メモリコントローラが処理する前記所定時間ごとのアクセス数を監視する、
処理を実行させ、
前記実行タイミングの制御は、
前記監視する前記所定時間ごとのアクセス数が1以上の前記所定時間に亘って連続して前記閾値を下回った回数を、前記連続した回数である連続数と対応付けて集計し、
前記監視する直近のアクセス数の連続数と、前記集計の結果とに基づき、前記直近のアクセス数が前記閾値未満である状態が継続する継続数を推定する、
付記8に記載の情報処理プログラム。
前記コンピュータに、
前記メモリコントローラが処理する前記所定時間ごとのアクセス数を監視する、
処理を実行させ、
前記実行タイミングの制御は、
前記監視する前記所定時間ごとのアクセス数が1以上の前記所定時間に亘って連続して前記閾値を下回った回数を、前記連続した回数である連続数と対応付けて集計し、
前記監視する直近のアクセス数の連続数と、前記集計の結果とに基づき、前記直近のアクセス数が前記閾値未満である状態が継続する継続数を推定する、
付記8に記載の情報処理プログラム。
(付記10)
前記実行タイミングの制御は、前記第1メモリ及び前記第2メモリ間のデータ移動の平均速度を取得し、前記平均速度と、前記継続数とに基づき、前記移動可能データ量を算出する、
付記9に記載の情報処理プログラム。
前記実行タイミングの制御は、前記第1メモリ及び前記第2メモリ間のデータ移動の平均速度を取得し、前記平均速度と、前記継続数とに基づき、前記移動可能データ量を算出する、
付記9に記載の情報処理プログラム。
(付記11)
前記実行タイミングの制御は、前記監視する前記所定時間ごとのアクセス数の分布に基づき、前記閾値を決定する、
付記9又は付記10に記載の情報処理プログラム。
前記実行タイミングの制御は、前記監視する前記所定時間ごとのアクセス数の分布に基づき、前記閾値を決定する、
付記9又は付記10に記載の情報処理プログラム。
(付記12)
前記コンピュータに、
前記移動要求の受信に応じて、移動対象のデータを、移動元である前記第1メモリ又は前記第2メモリから記憶装置に移動する移動指示を出力し、
前記移動指示に応じて、前記移動対象のデータを前記移動元から前記記憶装置に移動する、
処理を実行させ、
前記実行タイミングの制御は、前記第2アクセスで移動されるデータ量が前記移動可能データ量以下である場合、前記移動対象のデータを、前記記憶装置から移動先である前記第2メモリ又は前記第1メモリに移動する前記第2アクセスの前記実行指示を出力し、
前記第2アクセスの実行は、出力された前記実行指示に応じて、前記移動対象のデータを、前記記憶装置から前記移動先に移動する前記第2アクセスを実行する、
付記8〜付記11のいずれか1項に記載の情報処理プログラム。
前記コンピュータに、
前記移動要求の受信に応じて、移動対象のデータを、移動元である前記第1メモリ又は前記第2メモリから記憶装置に移動する移動指示を出力し、
前記移動指示に応じて、前記移動対象のデータを前記移動元から前記記憶装置に移動する、
処理を実行させ、
前記実行タイミングの制御は、前記第2アクセスで移動されるデータ量が前記移動可能データ量以下である場合、前記移動対象のデータを、前記記憶装置から移動先である前記第2メモリ又は前記第1メモリに移動する前記第2アクセスの前記実行指示を出力し、
前記第2アクセスの実行は、出力された前記実行指示に応じて、前記移動対象のデータを、前記記憶装置から前記移動先に移動する前記第2アクセスを実行する、
付記8〜付記11のいずれか1項に記載の情報処理プログラム。
1 サーバ
10 階層ストレージ制御装置
11 階層管理部
11a データ収集部
11b ワークロード分析部
11c データ置換判定部
11d 移動指示部
12 階層ドライバ
13 DIMMドライバ
14 NVMドライバ
15、51 APP
16、54 統計情報モニタ
17 SSDドライバ
2 プロセッサ
2a コア
2b MC
2c、2c−1〜2c−3 メモリチャネル
20 算出部
21 回数DB
22 アクセス数DB
23 分布表
24 閾値
25 平均データ置換速度
26 判定処理部
27、27A 受付部
28、28A 判定部
29 推定部
3 DRAM
3a、3b、4a、4b、7a、7b サブLUN
4 PM
5 処理部
52 HSS
52a 置換判定部
53 制御部
6 チップセット
7 SSD
10 階層ストレージ制御装置
11 階層管理部
11a データ収集部
11b ワークロード分析部
11c データ置換判定部
11d 移動指示部
12 階層ドライバ
13 DIMMドライバ
14 NVMドライバ
15、51 APP
16、54 統計情報モニタ
17 SSDドライバ
2 プロセッサ
2a コア
2b MC
2c、2c−1〜2c−3 メモリチャネル
20 算出部
21 回数DB
22 アクセス数DB
23 分布表
24 閾値
25 平均データ置換速度
26 判定処理部
27、27A 受付部
28、28A 判定部
29 推定部
3 DRAM
3a、3b、4a、4b、7a、7b サブLUN
4 PM
5 処理部
52 HSS
52a 置換判定部
53 制御部
6 チップセット
7 SSD
Claims (7)
- 第1メモリと、
前記第1メモリとは処理速度の異なる第2メモリと、
前記第1メモリ及び前記第2メモリと接続され、前記第1メモリ及び前記第2メモリに対するアクセスを制御するメモリコントローラ、を有するプロセッサと、を備え、
前記プロセッサは、
前記第1メモリから前記第2メモリに移動するデータ、又は、前記第2メモリから前記第1メモリに移動するデータ、に関する移動要求を出力する移動決定部と、
前記メモリコントローラを経由した前記第1メモリ及び前記第2メモリに対する1以上の第1アクセスの状況と、前記移動要求に応じた第2アクセスであって、前記メモリコントローラを経由する前記第1メモリ及び前記第2メモリに対する前記第2アクセスで移動されるデータ量とに基づき、前記第2アクセスの実行タイミングを制御する移動制御部と、
制御された前記実行タイミングで前記第2アクセスを実行する移動実行部と、を備える、情報処理装置。 - 前記移動制御部は、前記第2アクセスで移動されるデータ量が、所定時間における前記1以上の第1アクセスのアクセス数が閾値未満である状態が継続すると推定される期間内に前記第1メモリと前記第2メモリとの間で移動可能な移動可能データ量以下である場合、前記移動実行部に前記第2アクセスの実行を指示する、
請求項1に記載の情報処理装置。 - 前記プロセッサは、前記メモリコントローラが処理する前記所定時間ごとのアクセス数を監視する監視部を備え、
前記移動制御部は、
前記監視部が監視する前記所定時間ごとのアクセス数が1以上の前記所定時間に亘って連続して前記閾値を下回った回数を、前記連続した回数である連続数と対応付けて集計する集計部と、
前記監視部が監視する直近のアクセス数の連続数と、前記集計部による前記集計の結果とに基づき、前記直近のアクセス数が前記閾値未満である状態が継続する継続数を推定する推定部と、を備える、
請求項2に記載の情報処理装置。 - 前記移動制御部は、前記第1メモリ及び前記第2メモリ間のデータ移動の平均速度を取得し、前記平均速度と、前記継続数とに基づき、前記移動可能データ量を算出する、
請求項3に記載の情報処理装置。 - 前記移動制御部は、前記監視部が監視する前記所定時間ごとのアクセス数の分布に基づき、前記閾値を決定する、
請求項3又は請求項4に記載の情報処理装置。 - 記憶装置を備え、
前記移動制御部は、前記移動要求の受信に応じて、移動対象のデータを、移動元である前記第1メモリ又は前記第2メモリから前記記憶装置に移動する移動指示を前記移動実行部に出力し、前記第2アクセスで移動されるデータ量が前記移動可能データ量以下である場合、前記移動実行部に、前記移動対象のデータを、前記記憶装置から移動先である前記第2メモリ又は前記第1メモリに移動する前記第2アクセスの実行を指示する、
請求項2〜請求項5のいずれか1項に記載の情報処理装置。 - コンピュータに、
第1メモリから前記第1メモリとは処理速度の異なる第2メモリに移動するデータ、又は、前記第2メモリから前記第1メモリに移動するデータ、に関する移動要求を出力し、
前記第1メモリ及び前記第2メモリと接続されたメモリコントローラであって、前記第1メモリ及び前記第2メモリに対するアクセスを制御する前記メモリコントローラを経由した前記第1メモリ及び前記第2メモリに対する1以上の第1アクセスの状況と、前記移動要求に応じた第2アクセスであって、前記メモリコントローラを経由する前記第1メモリ及び前記第2メモリに対する前記第2アクセスで移動されるデータ量とに基づき、前記第2アクセスの実行タイミングを制御し、
制御された前記実行タイミングで前記第2アクセスを実行する、
処理を実行させる、情報処理プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020027060A JP2021131752A (ja) | 2020-02-20 | 2020-02-20 | 情報処理装置及び情報処理プログラム |
US17/114,553 US20210263845A1 (en) | 2020-02-20 | 2020-12-08 | Information processing apparatus to control memory access and computer-readable recording medium having stored therein information processing program to control memory access |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020027060A JP2021131752A (ja) | 2020-02-20 | 2020-02-20 | 情報処理装置及び情報処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021131752A true JP2021131752A (ja) | 2021-09-09 |
Family
ID=77366928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020027060A Pending JP2021131752A (ja) | 2020-02-20 | 2020-02-20 | 情報処理装置及び情報処理プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20210263845A1 (ja) |
JP (1) | JP2021131752A (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6401156B1 (en) * | 1999-08-23 | 2002-06-04 | Advanced Micro Devices, Inc. | Flexible PC/AT-compatible microcontroller |
US9697266B1 (en) * | 2013-09-27 | 2017-07-04 | EMC IP Holding Company LLC | Management of computing system element migration |
JP6394313B2 (ja) * | 2014-11-19 | 2018-09-26 | 富士通株式会社 | ストレージ管理装置、ストレージ管理方法及びストレージ管理プログラム |
JP6558090B2 (ja) * | 2015-06-15 | 2019-08-14 | 富士通株式会社 | ストレージ管理装置、ストレージ管理方法及びストレージ管理プログラム |
-
2020
- 2020-02-20 JP JP2020027060A patent/JP2021131752A/ja active Pending
- 2020-12-08 US US17/114,553 patent/US20210263845A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20210263845A1 (en) | 2021-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11422722B2 (en) | Intelligent wide port PHY usage | |
US10747440B2 (en) | Storage system and storage system management method | |
WO2015015550A1 (ja) | 計算機システム及び制御方法 | |
GB2496807B (en) | Computer system, management method of the computer system, and program | |
EP2494436A1 (en) | Allocating storage memory based on future use estimates | |
US11281509B2 (en) | Shared memory management | |
US20180121237A1 (en) | Life cycle management of virtualized storage performance | |
US10788996B2 (en) | Computer system and process execution method | |
WO2014165456A1 (en) | Detection of user behavior using time series modeling | |
US9817583B2 (en) | Storage system and method for allocating virtual volumes based on access frequency | |
JP2019191886A (ja) | 情報処理装置,情報処理方法およびプログラム | |
CN103502925A (zh) | 一种监控记录管理方法与装置 | |
KR101105127B1 (ko) | 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치 | |
TW202215248A (zh) | 操作儲存系統的方法、以及對儲存資源的層級進行分區的方法 | |
US10168944B2 (en) | Information processing apparatus and method executed by an information processing apparatus | |
JP6199782B2 (ja) | 計算機システム | |
JP2021131752A (ja) | 情報処理装置及び情報処理プログラム | |
US10585622B2 (en) | Data writing device and method | |
JP6497233B2 (ja) | ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法 | |
Hwang | Towards even lower total cost of ownership of data center it infrastructure | |
US11249666B2 (en) | Storage control apparatus | |
US11079951B2 (en) | Multi-tier storage and mirrored volumes | |
CN110874192B (zh) | 存储管理设备和存储管理方法 | |
US9176854B2 (en) | Presenting enclosure cache as local cache in an enclosure attached server | |
JP2021082096A (ja) | 情報処理装置及び情報処理プログラム |