JP2019212161A - コントローラおよびデータ転送方法 - Google Patents

コントローラおよびデータ転送方法 Download PDF

Info

Publication number
JP2019212161A
JP2019212161A JP2018109531A JP2018109531A JP2019212161A JP 2019212161 A JP2019212161 A JP 2019212161A JP 2018109531 A JP2018109531 A JP 2018109531A JP 2018109531 A JP2018109531 A JP 2018109531A JP 2019212161 A JP2019212161 A JP 2019212161A
Authority
JP
Japan
Prior art keywords
address
storage medium
area
transfer
host
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.)
Granted
Application number
JP2018109531A
Other languages
English (en)
Other versions
JP7251056B2 (ja
Inventor
勝吾 貞野
Shogo Sadano
勝吾 貞野
周吾 小川
Shugo Ogawa
周吾 小川
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2018109531A priority Critical patent/JP7251056B2/ja
Publication of JP2019212161A publication Critical patent/JP2019212161A/ja
Application granted granted Critical
Publication of JP7251056B2 publication Critical patent/JP7251056B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】ホストのメモリアドレス空間上の記憶領域と、仮想記憶媒体にマッピングされた記憶媒体の記憶領域間のデータ転送の性能を向上することができるコントローラを提供する。【解決手段】コントローラを、アクセス要求受信手段1と、転送領域算出手段2と、記憶媒体選択手段3と、転送処理内容通知手段4を備える構成とする。転送領域算出手段2は、ホストから受信した仮想的な記憶領域上の領域を指定する第1のアドレスに対応する記憶媒体上の領域を指定する第3のアドレスを算出する。記憶媒体選択手段3は、記憶媒体の負荷を監視し、最も負荷の小さい第2の記憶媒体を選択する。新たに第2の記憶媒体が選択されたとき、転送領域算出手段2は、第2の記憶媒体上の第3のアドレスを算出する。転送処理内容通知手段4は、第2のアドレスと第3のアドレスを転送処理内容通知として出力する。第2のアドレスは、データの転送を行うホストの領域を指定する。【選択図】 図1

Description

本発明は、データ転送技術に関するものであり、特に、仮想記憶媒体にマッピングされた記憶媒体とホストとの間で直接、データ転送を行う技術に関するものである。
計算機システムにおいて、HDD(Hard Disk Drive)に代えてSSD(Solid State Drive)を用いることによるアクセス性能の向上が広く行われている。また、ストレージの性能や信頼性を向上させる手段として、RAID(Redundant Array of Inexpensive Disks)によるストライピングやミラーリングが用いられる。RAIDでは、複数の記憶媒体の記憶領域を単一の仮想的な記憶媒体または記憶領域のような仮想記憶媒体にマッピングすることでストライピングやミラーリングが実現される。アクセス元であるホストは、RAIDによって提供される仮想記憶媒体にアクセスを行うことで、マッピングを意識せずにストレージの性能や信頼性を向上することができる。
RAIDを実現するコントローラは、ホストに対して仮想記憶媒体として動作するため、ホストから仮想記憶媒体に対するアクセス要求に応じて、ホストと記憶媒体との間におけるデータ転送の制御を行う。そのため、コントローラを用いてホストが仮想記憶媒体にアクセスして行われるホストのメモリアドレス空間上の記憶領域と記憶媒体の記憶領域間のデータ転送における性能の向上を図るための技術の開発が行われている。そのような、ホストが仮想記憶媒体にアクセスして行われるホストのメモリアドレス空間上の記憶領域と記憶媒体の記憶領域間のデータ転送の性能を向上する技術としては、例えば、特許文献1および特許文献2のような技術が開示されている。
特許文献1は、複数の記憶媒体それぞれの負荷状態を監視し、記憶媒体の変更が必要と判断されたときに記憶媒体の変更を行うストレージ制御方法に関するものである。特許文献1のストレージ装置は、書き込み先として不適な記憶媒体が生じたときに、負荷状態の条件を満たす他の記憶媒体に書き込み先の変更を行っている。特許文献2にも、同様に、負荷の高い記憶媒体から負荷の低い記憶媒体にデータの書き込み先を変更する技術が開示されている。
また、非特許文献1には、記憶媒体のアクセス規格であるNVM Express(登録商標)(Non-Volatile Memory Express)が示されている。非特許文献1の技術に基づいた記憶媒体は、データ転送を行うメモリのアドレスと記憶媒体上のLBA(Logical Block Address)の範囲をReadとWriteの各コマンドで指定することで、メモリと記憶媒体との間でDMA(Direct Memory Access)に相当する動作を行う。
国際公開第2016/013202号 特開2004−005634号公報
"NVM Express 1.3 Specification"、[Online]、2017年5月1日、NVM Express、[2018年4月12日検索]、インターネット<URL:http://www.nvmexpress.org/wp-content/uploads/NVM_Express_Revision_1.3.pdf>
しかしながら、特許文献1および特許文献2の技術は次のような点で十分ではない。特許文献1および特許文献2では、ホストと記憶媒体の間でコントローラを介してデータ転送を行う際に、コントローラと記憶媒体との間の接続帯域やコントローラの処理能力がボトルネックになり得る。また、非特許文献1の技術では、SSDを用いている記憶媒体へのアクセス時にホストのメモリとの間で直接データ転送を行う場合には、物理記憶媒体に対するLBAの指定が必要である。しかし、仮想記憶媒体に対するアクセスでは、仮想記憶媒体が記憶媒体の構成や記憶媒体に対するデータの配置を管理し、これらの情報をアクセス元であるホストやホストで実行されるコンピュータプログラムから隠蔽する。そのため、非特許文献1の技術では、仮想記憶媒体にアクセスする際にホスト側からデータ転送を行う相手となる記憶媒体およびアクセス先となるLBAの特定が困難である。よって、特許文献1、特許文献2および非特許文献1の技術では、仮想記憶媒体を介したホストと記憶媒体間のデータ転送の性能を向上するための技術としては十分ではない。
本発明は、上記の課題を解決するため、ホストのメモリ空間上の記憶領域と、仮想記憶媒体にマッピングされた記憶媒体の記憶領域間のデータ転送の性能を向上することができるコントローラを提供することを目的としている。
上記の課題を解決するため、本発明のコントローラは、アクセス要求受信手段と、転送領域算出手段と、記憶媒体選択手段と、転送処理内容通知手段を備えている。アクセス要求受信手段は、接続先のホストから、仮想的な記憶領域へのアクセス要求と、第1のアドレスと、第2のアドレスを受信する。第1のアドレスは、仮想的な記憶領域上のアクセス先の領域を指定する。第2のアドレスは、複数の記憶媒体のうち第1のアドレスに対応する記憶媒体上の領域との間でデータの転送を行うホストのメモリアドレス空間上の領域を指定する。転送領域算出手段は、第1のアドレスに基づいて、第1のアドレスに対応する記憶媒体を選択し、選択した記憶媒体上の領域を指定する第3のアドレスを算出する。記憶媒体選択手段は、記憶媒体のそれぞれの負荷を監視し、最も負荷の小さい記憶媒体を第2の記憶媒体として選択する。転送処理内容通知手段は、アクセス要求の種類と、記憶媒体上の第3のアドレスに対応する領域と、ホストのメモリアドレス空間上の第2のアドレスに対応する領域との間のデータ転送を実行する要求を、第2のアドレスおよび第3のアドレスとともに転送処理内容通知として出力する。また、転送領域算出手段が選択した記憶媒体と、記憶媒体選択手段が選択した第2の記憶媒体が異なっていたときに、転送領域算出手段は、第2の記憶媒体上における領域を指定するアドレスを第3のアドレスとして算出する。転送処理内容通知手段は、第2の記憶媒体上における領域を指定する第3のアドレスを転送処理内容通知として出力する。
本発明のデータ転送方法は、接続先のホストから、仮想的な記憶領域へのアクセス要求と、第1のアドレスと、第2のアドレスを受信する。第1のアドレスは、仮想的な記憶領域上のアクセス先の領域を指定する。第2のアドレスは、複数の記憶媒体のうち第1のアドレスに対応する記憶媒体上の領域との間でデータの転送を行うホストのメモリアドレス空間上の領域を指定する。本発明のデータ転送方法は、第1のアドレスに基づいて、第1のアドレスに対応する記憶媒体上の領域を指定するアドレスを第3のアドレスとして算出する。本発明のデータ転送方法は、記憶媒体のそれぞれの負荷を監視し、最も負荷の小さい記憶媒体を第2の記憶媒体として選択する。本発明のデータ転送方法は、アクセス要求の種類と、第2の記憶媒体上の記第3のアドレスに対応する領域と、ホストのメモリアドレス空間上の第2のアドレスに対応する領域との間のデータ転送を実行する要求を、第2のアドレスおよび前記第3のアドレスとともに転送処理内容通知として出力する。
本発明によると、ホストのメモリアドレス空間上の記憶領域と、仮想記憶媒体にマッピングされた記憶媒体の記憶領域間のデータ転送の性能を向上することができる。
本発明の第1の実施形態の構成の概要を示す図である。 本発明の第2の実施形態の構成の概要を示す図である。 本発明の第2の実施形態のコントローラの構成を示す図である。 本発明の第2の実施形態のマッピングテーブルの構成の例を示す図である。 本発明の第2の実施形態における記憶領域上のアドレスの計算方法を模式的に示した図である。 本発明の第2の実施形態におけるマッピングテーブルの一部を示す図である。 本発明の第2の実施形態のコントローラの動作フローを示す図である。 本発明の第2の実施形態のデータ転送実行部の動作フローを示す図である。 本発明の第2の実施形態における情報の流れの例を模式的に示す図である。 本発明の第2の実施形態における情報の流れの例を模式的に示す図である。 本発明の第3の実施形態の構成の概要を示す図である。 本発明の第3の実施形態のコントローラの構成を示す図である。 本発明の第3の実施形態における記憶領域上のアドレスの計算方法を模式的に示した図である。 本発明の第3の実施形態のコントローラの動作フローを示す図である。 本発明の第3の実施形態のコントローラの動作フローを示す図である。 本発明の第3の実施形態のデータ転送実行部の動作フローを示す図である。 本発明の第3の実施形態における情報の流れの例を模式的に示す図である。 本発明の第3の実施形態における情報の流れの例を模式的に示す図である。 本発明の各実施形態におけるコントローラおよびデータ転送実行部の処理を行うコンピュータの構成の例を示す図である。
(第1の実施形態)
本発明の第1の実施形態について図を参照して詳細に説明する。本実施形態のコントローラは、アクセス要求受信手段1と、転送領域算出手段2と、記憶媒体選択手段3と、転送処理内容通知手段4を備えている。アクセス要求受信手段1は、接続先のホストから、仮想的な記憶領域へのアクセス要求と、第1のアドレスと、第2のアドレスを受信する。第1のアドレスは、仮想的な記憶領域上のアクセス先の領域を指定する。第2のアドレスは、複数の記憶媒体のうち第1のアドレスに対応する記憶媒体上の領域との間でデータの転送を行うホストのメモリアドレス空間上の領域を指定する。転送領域算出手段2は、第1のアドレスに基づいて、第1のアドレスに対応する記憶媒体を選択し、選択した記憶媒体上の領域を指定する第3のアドレスを算出する。記憶媒体選択手段3は、記憶媒体のそれぞれの負荷を監視し、最も負荷の小さい記憶媒体を第2の記憶媒体として選択する。転送処理内容通知手段4は、アクセス要求の種類と、記憶媒体上の第3のアドレスに対応する領域と、ホストのメモリアドレス空間上の第2のアドレスに対応する領域との間のデータ転送を実行する要求を、第2のアドレスおよび第3のアドレスとともに転送処理内容通知として出力する。また、転送領域算出手段2が選択した記憶媒体と、記憶媒体選択手段3が選択した第2の記憶媒体が異なっていたときに、転送領域算出手段2は、第2の記憶媒体上における領域を指定するアドレスを第3のアドレスとして算出する。転送処理内容通知手段4は、第2の記憶媒体上における領域を指定する第3のアドレスを転送処理内容通知として出力する。
本実施形態のコントローラのアクセス要求受信手段1は、接続先のホストから、仮想的な記憶領域である仮想記憶媒体へのアクセス要求と、第1のアドレスと、第2のアドレスを受信する。転送領域算出手段2は、第1のアドレスに基づいて、第1のアドレスに対応する記憶媒体上の領域を指定する第3のアドレスを特定している。記憶媒体選択手段3は、記憶媒体のそれぞれの負荷を監視し、最も負荷の小さい記憶媒体を第2の記憶媒体として選択している。また、転送領域算出手段2は、自ユニットが選択した記憶媒体と第2の記憶媒体が異なっていたときに、第2の記憶媒体上において第3のアドレスを計算している。転送処理内容通知手段4は、アクセス要求の種類と、第2のアドレスおよび第3のアドレスを転送処理内容通知として出力している。そのため、転送処理内容通知を基にホストと記憶媒体間でコントローラを介さずにデータ転送を行うことが可能になるので、コントローラの負荷が低減し、コントローラに起因するデータ転送の性能を向上することができる。また、記憶媒体選択手段3によって低負荷の記憶媒体を選択してデータ転送を行うのでデータ転送に要する時間も抑制することができる。その結果、本実施形態のコントローラを用いることで、ホストのメモリアドレス空間上の記憶領域と、仮想記憶媒体にマッピングされた記憶媒体の記憶領域間のデータ転送における性能を向上することができる。
(第2の実施形態)
本発明の第2の実施形態について図を参照して詳細に説明する。図2は、本実施形態の計算機システムの構成の概要を示したものである。本実施形態の計算機システムは、ホスト10と、コントローラ20と、データ転送実行部30と、記憶媒体40を備えている。
本実施形態の計算機システムは、複数の記憶媒体40の記憶領域を、単一の仮想的な記憶媒体である仮想記憶媒体にマッピングし、ホストから仮想記憶媒体を介して記憶媒体40にアクセスするRAID(Redundant Array of Inexpensive Disks)等の記憶領域の管理を行うシステムによって構成されている。本実施形態の計算機システムは、データ転送の実行をデータ転送実行部30が行い、データ転送時は、ホスト10のメモリアドレス空間上の記憶領域と、仮想記憶媒体にマッピングされた記憶媒体との間でコントローラ20を介さずにデータ転送を行う。
ホスト10の構成について説明する。ホスト10は、メモリ11と、アプリケーション実行部12を備えている。
メモリ11は、ホスト10の主記憶領域としての機能を有する。メモリ11は、例えば、DRAM(Dynamic Random Access Memory)を用いて構成される。メモリ11は、DRAM以外の記憶デバイスを用いて構成されていてもよい。アプリケーション実行部12は、メモリ11にアクセスし、データの書き込みおよびデータの読み出しを行う。また、メモリ11は、記憶媒体40の間で互いにデータ転送を行う。メモリ11は、ホスト10に直接またはネットワークを介して接続され、ホスト10のメモリアドレス空間を経由して入出力を行うGPU(Graphics Processing Units)やFPGA(Field Programmable Gate Array)等の半導体装置であってもよい。
アプリケーション実行部12は、アプリケーションプログラムを実行し各処理を行う。アプリケーション実行部12は、コントローラ20を介して仮想記憶媒体100にアクセスし、各処理を行う際に必要なデータの読み出しや処理結果の書き込みを行う。アプリケーション実行部12は、ホスト10上の1個または複数のCPU(Central Processing Unit)と、アプリケーションプログラムを記憶する記憶装置等によって構成されている。アプリケーション実行部12は、アプリケーションプログラムをCPU等の汎用にプロセッサによって実行する構成に代えて、GPUでアプリケーションを実行する構成や、FPGA等のあらかじめ設定された回路を用いて各処理を実行する構成であってもよい。
アプリケーション実行部12は、コントローラ20にアクセス要求を行うことでストレージである仮想記憶媒体に対してアクセスする。アプリケーション実行部12は、仮想記憶媒体にアクセスする際に、アクセス要求の種類と、仮想記憶媒体上のアクセス対象の領域を指し示すアドレスと、ホスト10のメモリアドレス空間上のアドレスをアクセス要求としてコントローラ20に送る。
アクセス要求の種類は、ReadとWriteのいずれの動作を行うのかを示す情報である。仮想記憶媒体上のアクセス対象の領域を指し示すアドレスは、LBA(Logical Block Address)等の形式で表されている。ホスト10のメモリアドレス空間上のアドレスは、書き込みまたは読み出しを行うデータを格納するホスト10のメモリアドレス空間上の領域を指し示すアドレスである。
コントローラ20の構成について説明する。図3は、本実施形態のコントローラ20の構成を示したものである。本実施形態のコントローラ20は、アクセス要求受信部21と、転送ストレージ領域算出部22と、転送処理内容通知部23と、性能平準化制御部24と、マッピングテーブル記憶部25を備えている。
アクセス要求受信部21は、ホスト10のアプリケーション実行部12から仮想記憶媒体100へのアクセス要求を受け取る。アクセス要求は、アクセス要求の種類、仮想記憶媒体100上のアクセス対象の領域を指し示すアドレスおよびメモリ11上のアクセス対象の領域に対応するホスト10のメモリアドレス空間上の領域を指し示すアドレスの情報によって構成されている。アクセス要求の種類は、ReadまたはWriteのいずれであるかを表す情報である。アクセス要求受信部21は、アクセス要求に含まれる情報のうちアドレスに関する情報を転送ストレージ領域算出部22に送る。また、アクセス要求受信部21は、アクセス要求に含まれる情報のうちアクセス要求の種類の情報を転送処理内容通知部23に送る。本実施形態のアクセス要求受信部21の機能は、第1の実施形態のアクセス要求受信手段1に相当する。
転送ストレージ領域算出部22は、アクセス要求で指定された仮想記憶媒体のメモリアドレス空間上のアドレスから、対応する記憶媒体40上の記憶領域のアドレスを転送ストレージ領域として算出する機能を有する。転送ストレージ領域算出部22は、マッピングテーブル記憶部25を参照し、仮想記憶媒体100のアドレス空間に対応する記憶媒体40のアドレスを示した情報であるマッピング情報を基に転送ストレージ領域を算出する。転送ストレージ領域が複数の記憶媒体40や記憶領域に跨る場合には、転送ストレージ領域算出部22は、転送ストレージ領域をそれぞれ特定するとともに、アクセス対象の領域全体において対応する位置を示すオフセットを算出する。
転送ストレージ領域算出部22は、アクセス要求で指定されたホスト10のメモリアドレス空間上の領域を指し示すアドレスから、転送ストレージ領域に対応するホスト10のアドレスを転送メモリ領域としてオフセットを用いて算出する。転送ストレージ領域に対応する転送メモリ領域が断片化している場合には、転送ストレージ領域算出部22は、各断片に対応するホスト10のメモリアドレス空間上のアドレスを、オフセットを用いて算出する。
転送ストレージ領域算出部22は、選択された記憶媒体が、既に転送ストレージ領域に対して割り当てられた記憶媒体と異なる場合、マッピングテーブルに含まれる転送ストレージ領域に対応するマッピングエントリの情報を更新する。また、本実施形態の転送ストレージ領域算出部22の機能は、第1の実施形態の転送領域算出手段2に相当する。
転送処理内容通知部23は、転送ストレージ領域算出部22が算出した転送ストレージ領域および転送メモリ領域の情報を、アクセス要求の種類の情報とともに転送処理内容通知としてデータ転送実行部30に性能平準化制御部24を介して送る。転送処理内容通知部23は、転送ストレージ領域を含む記憶媒体40の識別子、転送ストレージ領域の記憶媒体40上のアドレス、転送メモリ領域のアドレスおよびアクセス要求の種類の情報を転送処理内容通知としてデータ転送実行部30に送る。
転送ストレージ領域算出部22は、性能平準化制御部24によって選択された記憶媒体40が、既に転送ストレージ領域に対して割り当てられた記憶媒体40と異なる場合、マッピングテーブルに含まれるマッピングエントリの情報を更新する。
転送処理内容通知部23は、データ転送実行部30に転送処理内容通知を送信する際に、性能平準化制御部24を介さずにデータ転送実行部30に送信してもよい。そのような構成とする場合、性能平準化制御部24は、転送処理内容通知部23が出力する転送処理内容通知で示されるデータ転送処理の実行内容を監視することで各記憶媒体40の負荷の情報を取得することができる。また、本実施形態の転送処理内容通知部23の機能は、第1の実施形態の転送処理内容通知手段4に相当する。
性能平準化制御部24は、各記憶媒体40のI/O(Input / Output)性能やI/Oコマンドの待機数を監視し、負荷が低い記憶媒体40を特定する。性能平準化制御部24は、転送ストレージ領域算出部22からの問い合わせに対して、負荷が低い記憶媒体40の識別子の情報を転送ストレージ領域算出部22に通知する。性能平準化制御部24は、たとえば、各記憶媒体40の負荷が平準化されるように、アクセス先に対応する転送ストレージ領域として利用可能な記憶媒体40から、最も低負荷の記憶媒体を選択する。性能平準化制御部24は、各記憶媒体40の負荷を、例えば、データ転送の完了待ちのサイズやコマンド数を基に判断する。また、本実施形態の性能平準化制御部24の機能は、第1の実施形態の記憶媒体選択手段3に相当する。
マッピングテーブル記憶部25は、マッピングテーブルを保存している。マッピングテーブルは、仮想記憶媒体100上の各領域に対してマッピングされる記憶媒体40の識別子および記憶媒体40におけるアドレスの対応関係の情報を含むデータテーブルである。
図4は、マッピングテーブルの構成の例を示した図である。図4に示すマッピングテーブルは、仮想記憶媒体100上の領域毎にマッピング先の記憶媒体40の識別子および記憶媒体40におけるアドレスの対応関係を記録したマッピングエントリ300を含む情報によって構成されている。マッピングエントリ300は、論理アドレス301と、記憶媒体識別子302と、物理アドレス303と、マッピングサイズ304の情報が互いに関連づけられている。論理アドレス301は、仮想記憶媒体100の各領域の先頭アドレスの情報である。記憶媒体識別子302は、論理アドレス301の指す領域のマッピング先である記憶媒体40の識別子の情報である。物理アドレス303は、記憶媒体識別子302の表す記憶媒体40におけるマッピング先の記憶領域のアドレスである。マッピングサイズ304は、マッピングされる記憶領域のサイズを示す情報である。マッピングテーブルの形式は、図4に示した形式以外であってもよい。例えば、各マッピングエントリ300が、仮想記憶媒体100の領域を先頭から一定サイズ毎に区切った領域に対応する場合は、論理アドレス301およびマッピングサイズ304は、不要である。また、仮想記憶媒体100と記憶媒体40のマッピングにRAIDを用いる場合は、RAIDの構成情報を除いたマッピングテーブルの各エントリの情報は不要である。RAIDの場合には、例えば、RAID0であればストライプを構成する記憶媒体40の数量および各記憶媒体40に対して連続的にマッピングされた領域であるチャンクのサイズから仮想記憶媒体100に対応するマッピング先を算出することができるためである。
図5は、転送ストレージ領域算出部22において算出される仮想記憶媒体100上のアクセス対象の領域を指し示すアドレスと、算出される転送ストレージ領域の対応関係の例を示す図である。また、図6は、図5の例に対応するマッピングテーブルの構成を示している。図5の例では、仮想記憶媒体100上のアクセス対象の領域は、記憶媒体40の記憶領域42に対してマッピングされている。転送ストレージ領域算出部22は、仮想記憶媒体100上のアクセス対象の領域を指し示すアドレスと、マッピングテーブルの情報を基に、転送ストレージ領域43が含まれる記憶媒体40の識別子を特定し、先頭アドレスを算出する。ここで、図5の例において、仮想記憶媒体100上のアクセス対象の領域を指し示す論理アドレスをLa、記憶領域41の論理アドレスと物理アドレスをそれぞれLb、Pbとする。そのように設定すると、転送ストレージ領域43の先頭アドレスPaは、Pa=Pb+(La−Lb)のように算出することができる。
データ転送実行部30は、転送ストレージ領域と転送メモリ領域の間で、アクセス要求の種類に基づいたデータ転送を行う。データ転送実行部30は、コントローラ20から転送ストレージ領域と転送メモリ領域の間で行うデータ転送処理の要求を転送処理内容通知として受け取る。転送処理内容通知には、アクセス要求の種類と、転送元と転送先のアドレスの情報が含まれている。
アクセス要求の種類がReadである場合には、転送ストレージ領域から転送メモリ領域にデータの転送が行われる。すなわち、アクセス要求の種類がReadである場合には、仮想記憶媒体100にマッピングされている記憶媒体40からデータが読み出され、メモリ11に書き込まれる。また、アクセス要求の種類がWriteである場合には、転送メモリ領域から転送ストレージ領域にデータの転送が行われる。すなわち、アクセス要求の種類がWriteである場合には、メモリ11のデータが仮想記憶媒体100にマッピングされている記憶媒体40に書き込まれる。
データ転送実行部30は、コントローラ20を介さずに転送ストレージ領域と転送メモリ領域の間のデータ転送を実行する。データ転送実行部30は、転送ストレージ領域と転送メモリ領域に対するアクセスを個別に行わずに、ホスト10のDMA(Direct Memory Access)コントローラに転送ストレージ領域と転送メモリ領域のアドレスを通知してデータ転送を行ってもよい。また、記憶媒体40がNVM Expessに対応したSSD(Solid State Drive)の場合には、データ転送実行部30は、記憶媒体40に転送ストレージ領域と転送メモリ領域のアドレスを通知してデータ転送を行ってもよい。NVM Expessに対応したSSDは、指定したホスト10のメモリアドレスと、SSDのLBA(Logical Block Address)が指し示す領域との間でDMA転送によるデータ転送を行う。
データ転送の実行時は、ボトルネックとなり得るコントローラ20を介さずに実行される。コントローラ20は、ホスト10から透過である。また、データ転送実行部30からコントローラ20にデータ転送処理の完了を通知するようにしてもよい。そのような構成の場合には、コントローラ20は、アクセス要求に対応する全てのデータ転送が完了した際に、アプリケーション実行部12に仮想記憶媒体100へのアクセス要求に対する処理が完了したことを通知してもよい。
コントローラ20およびデータ転送実行部30における各処理は、それぞれ、FPGA等の半導体装置を用いて行われもよく、また、CPUとメモリ等によって構成されるコンピュータ上でプログラムを実行することで行われてもよい。
データ転送実行部30は、コントローラ20と独立した状態で、バスやネットワークを介してホスト10に接続された構成のモジュールでなくてもよい。例えば、データ転送実行部30は、コントローラ20と同一のデバイスに形成されていてもよい。また、データ転送実行部30は、コンピュータプログラムをホスト10またはホスト10とネットワークまたはバスを介して接続された他のノード上で実行することで各処理を行う構成であってもよい。
記憶媒体40は、コントローラ20を介さずにホスト10と接続された記憶装置である。記憶媒体40は、ホスト10に複数、接続されている。記憶媒体40は、ホストとネットワークを介して接続されたノードにバスやネットワークを介して直接アクセスが可能な状態で接続されていてもよい。記憶媒体40は、例えば、NAND Flashのような不揮発性メモリによって構成されるSSDや、DRAMまたはその他のメモリによって構成されるDIMM(Dual Inline Memory Module)のような記憶装置である。記憶媒体40にはHDD等の記憶装置またはそれらの記憶装置との組み合わせによって構成されていてもよい。また、記憶媒体40は、複数の記憶装置によって構成されていてもよい。
仮想記憶媒体100は、コントローラ20によって記憶媒体40の記憶領域をマッピングすることで構築されている。アプリケーション実行部12から仮想記憶媒体100へのアクセス要求は、コントローラ20が受け取り、データ転送実行部30によってアクセス処理が実行される。
本実施形態の計算機システムの動作について説明する。図7は、本実施形態のコントローラ20の動作フローを示したものである。図8は、本実施形態のデータ転送実行部30の動作フローを示したものである。また、図9および図10は、データ転送処理が実行される際の各ユニット間での情報の流れを模式的に示した図である。
コントローラ20のアクセス要求受信部21は、ホスト10のアプリケーション実行部12から仮想記憶媒体100に対するアクセス要求を受信する(ステップS11)。アクセス要求は、アクセス要求の種類と、仮想記憶媒体100上のアクセス対象の領域を指し示すアドレスと、メモリ11上のアクセス対象の領域に対応するホスト10のメモリ空間上の領域を指し示すアドレスの情報によって構成されている。
アクセス要求受信部21は、アクセス要求に含まれる情報のうち、ホスト10のメモリアドレス空間上の領域を示すアドレスと、仮想記憶媒体100上のアクセス対象の領域を指し示すアドレスの情報を転送ストレージ領域算出部22に送る。また、アクセス要求受信部21は、アクセス要求に含まれる情報のうち、アクセス要求の種類の情報を転送処理内容通知部23に送る。
仮想記憶媒体100上のアクセス対象の領域を指し示すアドレスを受け取ると、転送ストレージ領域算出部22は、マッピングテーブル記憶部25に保存されているマッピングテーブルを参照して、転送ストレージ領域を含む記憶媒体40を特定する。また、転送ストレージ領域算出部22は、記憶媒体40上における転送ストレージ領域のアドレスを算出する(ステップS12)。
アクセス要求の種類の情報を受け取ると、転送処理内容通知部23は、アクセス要求の種類がWriteであるかReadであるかを確認する。アクセス要求の種類がWriteである場合(ステップS13でYes)、転送処理内容通知部23は、アクセス要求の種類がWriteであることを示す情報を性能平準化制御部24に通知する。アクセス要求の種類がWriteであることを示す情報を受け取ると、性能平準化制御部24は、複数の記憶媒体40の中から最も低負荷な記憶媒体40を選択する(ステップS14)。最も低負荷な記憶媒体40を選択すると、性能平準化制御部24は、選択した記憶媒体40の識別子の情報を転送ストレージ領域算出部22に送る。
記憶媒体40の識別子の情報を受け取ると、転送処理内容通知部23は、性能平準化制御部24が選択した記憶媒体40と、仮想記憶媒体100上のアクセス対象の領域を指し示すアドレスから割り当てた記憶媒体40とが同じであるかを確認する。
性能平準化制御部24が選択した記憶媒体40が、割り当て済みの記憶媒体40と異なる場合(ステップS15でYes)、転送ストレージ領域算出部22は、新たに割り当てられた低負荷の記憶媒体40上における転送ストレージ領域のアドレスを再度、算出する。転送ストレージ領域算出部22は、仮想記憶媒体100上のアクセス対象の領域を指し示すアドレスから性能平準化制御部24が選択した記憶媒体40上における転送ストレージ領域のアドレスを算出する。再度、転送ストレージ領域のアドレスを算出すると、転送ストレージ領域算出部22は、算出したアドレスを基にマッピングテーブル記憶部25のマッピングテーブルを更新する。マッピングテーブルを更新すると、転送ストレージ領域算出部22は、転送ストレージ領域に対応する記憶媒体40の識別子と記憶媒体40上のアドレスの情報を転送処理内容通知部23に送る。
また、転送ストレージ領域算出部22は、アクセス要求受信部21を介して受け取るホスト10のメモリアドレス空間上の領域のアドレスを、アクセス要求に対応する転送メモリ領域の先頭アドレスとして設定し、転送処理内容通知部23に送る(ステップS16)。
転送ストレージ領域のアドレス等を受け取ると、転送処理内容通知部23は、データ転送処理の実行内容を示す情報を転送処理内容通知としてデータ転送実行部30に送る(ステップS17)。転送処理内容通知部23は、転送処理内容通知として、アクセス要求の種類と、メモリ11における転送メモリ領域の先頭アドレス、転送ストレージ領域に対応する記憶媒体40の識別子および転送ストレージ領域のアドレスを、データ転送実行部30に送る。
ステップS13においてアクセス要求の種類がWriteである場合(ステップS13でNo)、転送処理内容通知部23は、ステップS16からの動作を行う。
コントローラ20から転送処理内容通知が送信されると、データ転送実行部30は、コントローラ20から転送処理内容通知を受信する(ステップS21)。転送処理内容通知を受け取ると、データ転送実行部30は、アクセス要求の種類がReadであるかWriteであるかを確認する。
アクセス要求の種類がReadである場合(ステップS22でYes)、データ転送実行部30は、転送処理内容通知の情報に基づいて記憶媒体40の転送ストレージ領域からメモリ11の転送メモリ領域へのデータ転送を実行する(ステップS23)。
アクセス要求の種類がWriteである場合(ステップS22でNo)、データ転送実行部30は、転送処理内容通知の情報に基づいて、メモリ11の転送メモリ領域から記憶媒体40の転送ストレージ領域へのデータ転送を実行する(ステップS24)。
以上の動作により、アプリケーション実行部12から仮想記憶媒体100に対するアクセス要求の処理が完了する。上記の各ステップの処理の順序は、図7および図8に示した順序でなくてもよい。例えば、ステップS12、ステップS13およびステップS14の処理は、同時期に実行または順序を入れ替えて実行されてもよい。また、データ転送実行部30がデータ転送処理の完了の情報を、コントローラ20を介してアプリケーション実行部12に送信し、仮想記憶媒体100に対するアクセス要求の完了をアプリケーション実行部12に通知する構成としてもよい。
本実施形態の計算機システムは、コントローラ20において記憶媒体40の負荷を監視し、負荷の小さい記憶媒体40の記憶領域と、ホスト10のメモリアドレス空間上でのデータ転送を行っている。そのため、データ転送処理時における記憶媒体40における処理時間を短縮することができる。また、データ転送実行部30は、ホスト10またはコントローラ20から転送処理内容通知を受け取った際に、受け取った転送処理内容通知に基づいてコントローラ20を介さずに記憶媒体40とホスト10のメモリ空間上でのデータ転送を実行する。そのため、本実施形態の計算機システムは、アクセス要求が発生した際のコントローラ20へのアクセス回数を抑制することでコントローラ20の負荷を低減し、データ転送の遅延を抑制することができる。その結果、本実施形態の計算機システムは、ホスト10のメモリアドレス空間上の記憶領域と、仮想記憶媒体にマッピングされた記憶媒体40の記憶領域間のデータ転送の性能を向上することができる。
(第3の実施形態)
本発明の第3の実施形態について図を参照して詳細に説明する。図11は、本実施形態の計算機システムの構成の概要を示したものである。本実施形態の計算機システムは、ホスト10と、コントローラ50と、データ転送実行部60と、記憶媒体40を備えている。
第2の実施形態の計算機システムは、アクセス対象となる領域の先頭のアドレスを指定することでデータ転送の対象となる記憶領域の情報が通知されている。そのような構成に対し、本実施形態の計算機システムは、領域のサイズの情報によってアクセス領域の範囲の情報を通知することを特徴とする。
また、本実施形態の計算機システムは、第2の実施形態と同様に複数の記憶媒体40の記憶領域を単一の仮想的な記憶媒体である仮想記憶媒体にマッピングし、ホストから仮想記憶媒体を介して記憶媒体にアクセスするRAIDシステムによって構成されている。本実施形態の計算機システムは、データ転送の実行をデータ転送実行部60が行い、データ転送の実行時は、ホスト10のメモリアドレス空間上の記憶領域と、仮想記憶媒体にマッピングされた記憶媒体との間でコントローラ50を介さずにデータ転送を行う。
ホスト10の構成は、第2の実施形態と同様である。すなわち、ホスト10は、メモリ11と、アプリケーション実行部12を備えている。本実施形態のアプリケーション実行部12が出力するアクセス要求は、アクセス要求の種類、仮想記憶媒体100上のアクセス対象の領域を指定するアドレス、メモリ11上のアクセス対象の領域に対応するホスト10のメモリアドレス空間上の領域を指定するアドレスおよびアクセス要求範囲によって構成されている。アクセス要求範囲には、アクセス要求の範囲を大きさで示すアクセスサイズまたはアクセス要求の末尾を指し示すアドレスの情報が用いられる。
コントローラ50の構成について説明する。図12は、本実施形態のコントローラ50の構成を示したものである。コントローラ50は、アクセス要求受信部51と、転送ストレージ領域算出部52と、転送処理内容通知部53と、性能平準化制御部54と、マッピングテーブル記憶部55と、転送領域算出制御部56を備えている。
本実施形態のアクセス要求受信部51、転送ストレージ領域算出部52、転送処理内容通知部53、性能平準化制御部54およびマッピングテーブル記憶部55の構成と機能は、第2の実施形態の同名称の部位と同様である。また、本実施形態のアクセス要求受信部51は、アクセス要求に含まれる情報のうちアドレスに関する情報とアクセスサイズ等のアクセス要求の範囲を示す情報を転送領域算出制御部56に送る。また、アクセス要求受信部51は、アクセス要求に含まれる情報のうちアクセスの種類の情報を転送処理内容通知部53に送る。
転送領域算出制御部56は、アクセス要求で指し示される仮想記憶媒体100上のアドレスを基に、対応する記憶媒体40を特定し、記憶媒体40上のアドレスを転送ストレージ領域のアドレスとして算出する。転送領域算出制御部56は、記憶媒体40の複数の記憶領域に分散した転送ストレージ領域について、転送ストレージ領域を示す記憶媒体40内のアドレスの範囲または先頭アドレスおよび領域のサイズを算出する。また、転送領域算出制御部56は、転送ストレージ領域に対応するメモリ11上のアドレスを転送メモリ領域のアドレスとして算出する。
図13は、転送ストレージ領域と転送メモリ領域の先頭アドレスの対応関係の例を模式的に示した図である。図の例では、仮想記憶媒体100上のアクセス対象の領域であるアクセス対象領域81が、先頭から順番に記憶媒体40a、40b、40cの記憶領域82a、82b、82cにマッピングされる。また、ここで記憶領域82a、82bのサイズは、それぞれSa、Sbであるとする。そのとき、記憶領域82a、82b、82cに対応する転送メモリ領域83のアドレスMa、Mb、Mcは、アクセス要求で指し示される領域の先頭アドレスをMとした場合、それぞれ、Ma=M、Mb=M+Sa、Mc=M+Sa+Sbと計算できる。
本実施形態の計算機システムの動作について説明する。図14および図15は、本実施形態のコントローラ50の動作フローを示したものである。図16は、本実施形態のデータ転送実行部60の動作フローを示したものである。また、図17および図18は、データ転送処理が実行される際の各ユニット間での情報の流れを模式的に示した図である。
コントローラ50のアクセス要求受信部51は、ホスト10のアプリケーション実行部12から仮想記憶媒体100に対するアクセス要求を受信する(ステップS31)。アクセス要求は、アクセス要求の種類と、仮想記憶媒体100上のアクセス対象の領域を指し示すアドレスと、アクセス対象の領域のサイズと、メモリ11上のアクセス対象の領域に対応する、ホスト10のメモリアドレス空間上の領域を指し示すアドレスの情報によって構成されている。
アクセス要求受信部51は、アクセス要求に含まれる情報のうち、ホスト10のメモリアドレス空間上の領域を示すアドレスと、仮想記憶媒体100上のアクセス対象の領域を指し示すアドレスと、アクセス対象の領域のサイズの情報を転送領域算出制御部56に送る。また、アクセス要求受信部51は、アクセス要求に含まれる情報のうち、アクセス要求の種類の情報を転送処理内容通知部53に送る。
アドレス等の情報を受け取ると、転送領域算出制御部56は、転送ストレージ領域および転送メモリ領域における着目点を表すオフセットを0に設定して初期化する。また、転送領域算出制御部56は、データ転送実行部60に対して通知を行うデータ転送対象のリストを空にして初期化する(ステップS32)。
初期化が完了すると、各アドレスの算出が行われる。転送領域算出制御部56は、仮想記憶媒体100におけるアクセス対象の領域の先頭アドレスにオフセットの値を加えることで、仮想記憶媒体100上の着目点のアドレスを算出する(ステップS33)。初期状態では、オフセットは0である。
仮想記憶媒体100上の着目点のアドレスを算出すると、転送領域算出制御部56は、算出したアドレスを転送ストレージ領域算出部52に送る。仮想記憶媒体100上の着目点のアドレスを受け取ると、転送領域算出制御部56は、対応する転送ストレージ領域が含まれる記憶媒体40の識別子を特定し、転送ストレージ領域における着目点のアドレスを算出する(ステップS34)。
アクセス要求の種類の情報を受け取ると、転送処理内容通知部53は、アクセス要求の種類がReadであるかWriteであるかを確認する。
アクセス要求の種類がWriteである場合(ステップS35でYes)、転送処理内容通知部53は、アクセス要求の種類がWriteであることを示す情報を性能平準化制御部54に送る。アクセス要求の種類がWriteであることを示す情報を受け取ると、性能平準化制御部54は、アクセス先として選択可能な記憶媒体40の中から最も低負荷な記憶媒体40を選択する(ステップS36)。最も低負荷な記憶媒体40を選択すると、性能平準化制御部54は、選択した記憶媒体40の識別子の情報を転送ストレージ領域算出部52に送る。
新たに割り当てられた記憶媒体40と、割り当て済みの記憶媒体40が異なる場合(ステップS37でYes)、転送ストレージ領域算出部52は、新たに割り当てられた低負荷の記憶媒体40上における転送ストレージ領域のアドレスを算出する(ステップS38)。転送ストレージ領域算出部52は、仮想記憶媒体100上のアクセス対象の領域を指し示すアドレスから性能平準化制御部54が選択した記憶媒体40上における転送ストレージ領域のアドレスを算出する。転送ストレージ領域のアドレスを算出すると、転送ストレージ領域算出部52は、算出したアドレスを基にマッピングテーブル記憶部55のマッピングテーブルを更新する(ステップS39)。マッピングテーブルを更新すると、転送ストレージ領域算出部52は、転送ストレージ領域に対応する記憶媒体40の識別子と記憶媒体40上のアドレスの情報を転送処理内容通知部53に送る。
転送ストレージ領域の算出が行われると、転送領域算出制御部56は、ホスト10のメモリアドレス空間上の転送メモリ領域における着目点のアドレスを算出する(ステップS40)。
ステップS35において、アクセス要求の種類がReadである場合(ステップS35でNo)、転送領域算出制御部56は、ホスト10のメモリアドレス空間上の転送メモリ領域における着目点のアドレスを算出する(ステップS40)。また、ステップS37において、新たに割り当てられた記憶媒体40と、割り当て済みの記憶媒体40が同じ場合(ステップS37でNo)、転送領域算出制御部56は、ホスト10のメモリアドレス空間上の転送メモリ領域における着目点のアドレスを算出する(ステップS40)。
転送領域算出制御部56は、ホスト10のメモリアドレス空間におけるアクセス対象の領域の先頭アドレスにオフセットの値を加えることでホスト10のメモリアドレス空間上の転送メモリ領域における着目点のアドレスを算出する。
転送メモリ領域における着目点のアドレスを算出すると、転送領域算出制御部56は、マッピングテーブルを参照し、仮想記憶媒体100上の着目点のアドレスから連続領域にマッピングされるサイズを算出する。転送領域算出制御部56は、着目点のアドレスと、対応するマッピングエントリの論理アドレスの差分を計算する。差分を算出すると、転送領域算出制御部56は、差分を対応するマッピングエントリのマッピングサイズから差し引いて、連続領域にマッピングされるサイズを算出する(ステップS41)。
連続領域にマッピングされるサイズを算出すると、転送領域算出制御部56は、アクセス対象の領域のサイズからオフセットを差し引いた値を算出し、連続領域にマッピングされるサイズと比較する。転送領域算出制御部56は、比較した値のうち小さい方を記憶媒体40の識別子と転送ストレージ領域における着目点のアドレスおよび転送メモリ領域における着目点のアドレスとの組み合わせで用いられるデータ転送のサイズとする(ステップS42)。
データ転送のサイズを設定すると、転送領域算出制御部56は、記憶媒体40の識別子、転送ストレージ領域における着目点のアドレス、転送メモリ領域における着目点のアドレスおよび転送のサイズの組み合わせ関連づけてデータ転送対象のリストに追加する(ステップS43)。
データ転送対象のリストを追加すると、転送領域算出制御部56は、連続した領域にマッピングされるサイズの値をオフセットの値に加える(ステップS44)。連続した領域にマッピングされるサイズの値をオフセットの値に加えると、転送領域算出制御部56は、オフセットの値とアクセス対象の領域のサイズとを比較する。
オフセットの値がアクセス対象の領域のサイズ未満の場合(ステップS45でNo)、転送領域算出制御部56は、ステップS33からの処理を再度、実行する。
オフセットの値がアクセス対象の領域のサイズ以上の場合(ステップS45でYes)、転送領域算出制御部56は、データ転送対象のリストを転送処理内容通知部53に送る。データ転送対象のリストを受け取ると、転送処理内容通知部53は、データ転送対象のリストと、アクセス要求受信部51から受け取ったアクセス要求の種類の情報を転送処理内容通知としてデータ転送実行部60に送る(ステップS46)。
データ転送実行部60は、コントローラ50から転送処理内容通知を受信する(ステップS51)。転送処理内容通知を受け取ると、データ転送実行部60は、アクセス要求の種類がReadかWriteかを確認する。
アクセス要求の種類がReadである場合(ステップS52でYes)、データ転送実行部60は、転送処理内容通知に基づいて、記憶媒体40の転送ストレージ領域からメモリ11の転送メモリ領域へのデータ転送を実行する(ステップS53)。
アクセス要求の種類がWriteである場合(ステップS52でNo)、データ転送実行部60は、転送処理内容通知に基づいて、メモリ11の転送メモリ領域から記憶媒体40の転送ストレージ領域へのデータ転送を実行する(ステップS54)。
以上の処理によって、アプリケーション実行部12から仮想記憶媒体100に対するアクセス要求の処理の動作が完了する。上記の各ステップの処理の順序は、図に示した順序でなくてもよい。例えば、ステップS33からS34、並びに、ステップS35からS38、ステップS39およびS40の各処理は同時期に実行されてもよく、また、順序を入れ替えて実行されてもよい。また、データ転送実行部60がデータ転送処理の完了を、コントローラ50を介してアプリケーション実行部12に送ることで、アプリケーション実行部12に仮想記憶媒体100に対するアクセス要求の完了の情報が通知される構成としてもよい。
本実施形態の計算機システムは、第2の実施形態の計算機システムと同様の効果を有する。また、本実施形態の計算機システムは、ホスト10から仮想記憶媒体100へのアクセス要求を行う際に、アクセス対象領域のサイズを示すアクセスサイズの情報を付加して行っている。そのため、コントローラ50におけるデータ転送に関する各処理をより効率的に行うことができる。
第2の実施形態および第3の実施形態におけるコントローラおよびデータ転送実行部で実行される各処理は、コンピュータプログラムをコンピュータで実行することによって行われてもよい。図19は、コントローラおよびデータ転送実行部で実行される各処理を行うコンピュータプログラムを実行するコンピュータ90の構成の例を示したものである。コンピュータ90は、CPU91と、メモリ92と、記憶装置93と、I/F(Interface)部94を備えている。
CPU91は、記憶装置93から各処理を行うコンピュータプログラムを読み出して実行する。メモリ92は、DRAM等によって構成され、CPU91が実行するコンピュータプログラムや処理中のデータが一時保存される。記憶装置93は、CPU91が実行するコンピュータプログラム、処理結果および外部から取得した情報等が保存される。記憶装置93は、例えば、不揮発性の半導体記憶装置によって構成されている。記憶装置93には、HDD等の他の記憶装置が用いられてもよい。I/F部94は、ホストや記憶媒体等の他の装置との間でデータの入出力を行うインタフェースである。I/F部94は、アクセス要求やデータ転送処理通知の入出力、および、ホストや記憶媒体間におけるデータ転送処理における制御信号の入出力を行うインタフェースとして機能する。
また、各処理に行うコンピュータプログラムは、記録媒体に格納して頒布することもできる。記録媒体としては、例えば、データ記録用磁気テープや、ハードディスクなどの磁気ディスクを用いることができる。また、記録媒体としては、CD-ROM(Compact Disc Read Only Memory)やDVD(Digital Versatile Disc)などの光ディスクを用いることもできる。不揮発性の半導体メモリを記録媒体として用いてもよい。
1 アクセス要求受信手段
2 転送領域算出手段
3 記憶媒体選択手段
4 転送処理内容通知手段
10 ホスト
11 メモリ
12 アプリケーション実行部
20 コントローラ
21 アクセス要求受信部
22 転送ストレージ領域算出部
23 転送処理内容通知部
24 性能平準化制御部
25 マッピングテーブル記憶部
30 データ転送実行部
40 記憶媒体
50 コントローラ
51 アクセス要求受信部
52 転送ストレージ領域算出部
53 転送処理内容通知部
54 性能平準化制御部
55 マッピングテーブル記憶部
56 転送領域算出制御部
60 データ転送実行部
90 コンピュータ
91 CPU
92 メモリ
93 記憶装置
94 I/F部
100 仮想記憶媒体

Claims (10)

  1. 接続先のホストから、仮想的な記憶領域へのアクセス要求と、前記仮想的な記憶領域上のアクセス先の領域を指定する第1のアドレスと、複数の記憶媒体のうち前記第1のアドレスに対応する前記記憶媒体上の領域との間でデータの転送を行う前記ホストのメモリアドレス空間上の領域を指定する第2のアドレスとを受信するアクセス要求受信手段と、
    前記第1のアドレスに基づいて、前記第1のアドレスに対応する前記記憶媒体を選択し、選択した前記記憶媒体上の領域を指定する第3のアドレスを算出する転送領域算出手段と、
    前記記憶媒体のそれぞれの負荷を監視し、最も負荷の小さい前記記憶媒体を第2の記憶媒体として選択する記憶媒体選択手段と、
    前記アクセス要求の種類と、前記記憶媒体上の前記第3のアドレスに対応する領域と、前記ホストのメモリアドレス空間上の第2のアドレスに対応する領域との間のデータ転送を実行する要求を、前記第2のアドレスおよび前記第3のアドレスとともに転送処理内容通知として出力する転送処理内容通知手段と
    を備え、
    前記転送領域算出手段が選択した前記記憶媒体と、前記記憶媒体選択手段が選択した前記第2の記憶媒体が異なっていたときに、前記転送領域算出手段は、前記第2の記憶媒体上における領域を指定するアドレスを前記第3のアドレスとして算出し、
    前記転送処理内容通知手段は、前記第2の記憶媒体上における領域を指定する前記第3のアドレスを前記転送処理内容通知として出力することを特徴とするコントローラ。
  2. 前記アクセス要求受信手段は、前記第2のアドレスとして前記ホストのメモリアドレス空間に対応する物理メモリ上の位置を示す情報を受信することを特徴とする請求項1に記載のコントローラ。
  3. 前記記憶媒体上の前記第3のアドレスに対応する領域と、前記ホストのメモリアドレス空間上の前記第2のアドレスに対応する領域との間のデータ転送が完了した際に、前記アクセス要求に対応する処理が完了したことを示す情報を完了通知として前記ホストに通知する完了通知手段をさらに備えることを特徴とする請求項1または2に記載のコントローラ。
  4. 前記転送領域算出手段は、前記第1のアドレスに対応する前記記憶媒体上の領域が複数の前記記憶媒体に分散して存在している際に、前記記憶媒体ごとに前記第3のアドレスとして指し示されている領域との間でデータ転送を行う前記ホストのメモリアドレス空間上の領域を指し示す第4のアドレスを前記第2のアドレスを基に特定することを特徴とする請求項1から3いずれかに記載のコントローラ。
  5. 前記第1のアドレスと、前記第1のアドレスに対応する前記記憶媒体の識別子と、前記記憶媒体上の前記第3のアドレスを関連づけた情報をマッピングテーブルとして記憶しているマッピングテーブル記憶手段をさらに備え、
    前記転送領域算出手段は、前記第2の記憶媒体上における領域を指定する前記第3のアドレスを算出したときに、算出した前記第2の記憶媒体の識別子と前記第3のアドレスの情報を基に前記マッピングテーブルを更新することを特徴とする請求項1から4いずれかに記載のコントローラ。
  6. 請求項1から5いずれかに記載のコントローラと、
    前記コントローラの要求に基づいて、仮想的な記憶領域のデータを保存している記憶媒体と、前記ホストとの間で前記コントローラを介さずにデータ転送を行うデータ転送手段を有するデータ転送手段と
    を備え、
    前記データ転送手段は、前記コントローラから出力される前記転送処理内容通知に基づいて、前記記憶媒体上の前記第3のアドレスに対応する領域と、前記ホストのメモリアドレス空間上の前記第2のアドレスに対応する領域との間で、前記コントローラを介さずにデータ転送を行うことを特徴とする計算機システム。
  7. 前記データ転送手段は、前記コントローラまたは前記ホストから通知された記憶媒体に対して、前記第2のアドレスおよび前記第3のアドレスを通知し、前記第2のアドレスが示す前記ホストのメモリアドレス空間上の領域と、前記記憶媒体上の前記第3のアドレスが指し示す記憶領域との間における、DMA転送に基づくデータ転送を制御することを特徴とする請求項6に記載の計算機システム。
  8. 接続先のホストから、仮想的な記憶領域へのアクセス要求と、前記仮想的な記憶領域上のアクセス先の領域を指定する第1のアドレスと、複数の記憶媒体のうち前記第1のアドレスに対応する前記記憶媒体上の領域との間でデータの転送を行う前記ホストのメモリアドレス空間上の領域を指定する第2のアドレスとを受信し、
    前記第1のアドレスに基づいて、前記第1のアドレスに対応する前記記憶媒体上の領域を指定する指定するアドレスを前記第3のアドレスとして算出し、
    記記憶媒体のそれぞれの負荷を監視し、最も負荷の小さい前記記憶媒体を第2の記憶媒体として選択し、
    前記アクセス要求の種類と、前記第2の記憶媒体上の前記第3のアドレスに対応する領域と、前記ホストのメモリアドレス空間上の第2のアドレスに対応する領域との間のデータ転送を実行する要求を、前記第2のアドレスおよび前記第3のアドレスとともに転送処理内容通知として出力することを特徴とするデータ転送方法。
  9. 前記第1のアドレスに対応する前記記憶媒体上の領域が複数の前記記憶媒体に分散して存在している際に、前記記憶媒体ごとに前記第3のアドレスとして指し示されている領域との間でデータ転送を行う前記ホストのメモリアドレス空間上の領域を指し示す第4のアドレスを前記第2のアドレスを基に特定することを特徴とする請求項8に記載のデータ転送方法。
  10. 接続先のホストから、仮想的な記憶領域へのアクセス要求と、前記仮想的な記憶領域上のアクセス先の領域を指定する第1のアドレスと、複数の記憶媒体のうち前記第1のアドレスに対応する前記記憶媒体上の領域との間でデータの転送を行う前記ホストのメモリアドレス空間上の領域を指定する第2のアドレスとを受信する処理と、
    前記第1のアドレスに基づいて、前記第1のアドレスに対応する前記記憶媒体上の領域を指定するアドレスを前記第3のアドレスとして算出する処理と、
    前記記憶媒体のそれぞれの負荷を監視し、最も負荷の小さい前記記憶媒体を第2の記憶媒体として選択する処理と、
    前記アクセス要求の種類と、前記第2の記憶媒体上の前記第3のアドレスに対応する領域と、前記ホストのメモリアドレス空間上の第2のアドレスに対応する領域との間のデータ転送を実行する要求を、前記第2のアドレスおよび前記第3のアドレスとともに転送処理内容通知として出力する処理と
    をコンピュータに実行させることを特徴とする転送制御プログラム。
JP2018109531A 2018-06-07 2018-06-07 コントローラ、計算機システム、データ転送方法および転送制御プログラム Active JP7251056B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018109531A JP7251056B2 (ja) 2018-06-07 2018-06-07 コントローラ、計算機システム、データ転送方法および転送制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018109531A JP7251056B2 (ja) 2018-06-07 2018-06-07 コントローラ、計算機システム、データ転送方法および転送制御プログラム

Publications (2)

Publication Number Publication Date
JP2019212161A true JP2019212161A (ja) 2019-12-12
JP7251056B2 JP7251056B2 (ja) 2023-04-04

Family

ID=68846821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018109531A Active JP7251056B2 (ja) 2018-06-07 2018-06-07 コントローラ、計算機システム、データ転送方法および転送制御プログラム

Country Status (1)

Country Link
JP (1) JP7251056B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0954658A (ja) * 1995-06-08 1997-02-25 Sanyo Electric Co Ltd 並列二次記憶装置およびそのアクセス方法
JP2007004710A (ja) * 2005-06-27 2007-01-11 Nec Corp ストレージアクセス方式、データ転送装置、ストレージアクセス方法、及びプログラム
WO2015121912A1 (ja) * 2014-02-12 2015-08-20 株式会社日立製作所 データ記憶装置
US20170132172A1 (en) * 2015-06-08 2017-05-11 Excelero Storage Ltd. System and method for providing a client device seamless access to a plurality of remote storage devices presented as a virtual device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0954658A (ja) * 1995-06-08 1997-02-25 Sanyo Electric Co Ltd 並列二次記憶装置およびそのアクセス方法
JP2007004710A (ja) * 2005-06-27 2007-01-11 Nec Corp ストレージアクセス方式、データ転送装置、ストレージアクセス方法、及びプログラム
WO2015121912A1 (ja) * 2014-02-12 2015-08-20 株式会社日立製作所 データ記憶装置
US20170132172A1 (en) * 2015-06-08 2017-05-11 Excelero Storage Ltd. System and method for providing a client device seamless access to a plurality of remote storage devices presented as a virtual device

Also Published As

Publication number Publication date
JP7251056B2 (ja) 2023-04-04

Similar Documents

Publication Publication Date Title
US9760497B2 (en) Hierarchy memory management
US9092141B2 (en) Method and apparatus to manage data location
US20150262632A1 (en) Grouping storage ports based on distance
JP6190898B2 (ja) サーバに接続されるシステム及び仮想マシンが動作しているサーバに接続されたシステムによる方法
JP6540363B2 (ja) ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
US9836223B2 (en) Changing storage volume ownership using cache memory
US8447947B2 (en) Method and interface for allocating storage capacities to plural pools
US8683120B2 (en) Method and apparatus to allocate area to virtual volume
JP2014041471A (ja) ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US9335935B2 (en) Enhanced interface to firmware operating in a solid state drive
US11294812B2 (en) Obtaining cache resources for expected writes to tracks in a write set after the cache resources were released for the tracks in the write set
JP7067256B2 (ja) データ転送装置およびデータ転送方法
US9921753B2 (en) Data replication across host systems via storage controller
JP5594647B2 (ja) ストレージ装置及びその制御方法
WO2019244656A1 (ja) ストレージ装置
US10437478B1 (en) Replication based on a differential multiple write command
JP7251056B2 (ja) コントローラ、計算機システム、データ転送方法および転送制御プログラム
JP2007323557A (ja) ディスクアレイ装置及びその負荷分散方法
JP2013125437A (ja) 制御装置、プログラムおよびストレージ装置
JP2023068287A (ja) ストレージシステム及びその制御方法
JP2018106636A (ja) 情報処理装置、情報処理方法およびデータ管理プログラム
JP2019159735A (ja) コントローラおよびデータ転送方法
US8943280B2 (en) Method and apparatus to move page between tiers
JP7000712B2 (ja) データ転送装置およびデータ転送方法
JP6427913B2 (ja) ストレージシステム、制御装置、ストレージ装置、入出力制御方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210517

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20211013

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221024

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230306

R151 Written notification of patent or utility model registration

Ref document number: 7251056

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151