JPWO2017056310A1 - 計算機および計算機の制御方法 - Google Patents

計算機および計算機の制御方法 Download PDF

Info

Publication number
JPWO2017056310A1
JPWO2017056310A1 JP2017542654A JP2017542654A JPWO2017056310A1 JP WO2017056310 A1 JPWO2017056310 A1 JP WO2017056310A1 JP 2017542654 A JP2017542654 A JP 2017542654A JP 2017542654 A JP2017542654 A JP 2017542654A JP WO2017056310 A1 JPWO2017056310 A1 JP WO2017056310A1
Authority
JP
Japan
Prior art keywords
area
virtual storage
cache
memory
processor
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
JP2017542654A
Other languages
English (en)
Other versions
JP6653710B2 (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2017056310A1 publication Critical patent/JPWO2017056310A1/ja
Application granted granted Critical
Publication of JP6653710B2 publication Critical patent/JP6653710B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/10Program control for peripheral devices
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • 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/28DMA
    • G06F2213/2806Space or buffer allocation for DMA transfers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

OS上で実行される仮想ストレージ装置に、物理的に連続するメモリ領域を割り当てることにより、仮想ストレージ装置の性能を保証する。
プロセッサは、OSを実行し、プロセッサは、OS上で複数のプロセスを実行し、複数のプロセスは、第一仮想ストレージ装置を含み、第一仮想ストレージ装置は、IO処理を実行し、IO処理されるデータを格納するキャッシュを含み、プロセッサは、計算機内のリソースを、複数のプロセスに割り当て、プロセッサは、メモリのうち、プロセスに割り当てられている物理アドレスを示す領域情報を作成し、プロセッサは、領域情報に基づいて、メモリから、物理的に連続する領域である連続領域を選択し、連続領域をキャッシュに割り当てる。

Description

本発明は、計算機に関する。
クラウド環境では、複数のテナントの性能を管理する性能管理機能が知られている。また、テナントにより用いられる仮想ストレージが知られている。
Linux(登録商標)等の汎用OSにおいて、OS上で稼働するプロセスに割り当てるリソースを制御する技術としてはコンテナ技術が知られている。
仮想ストレージに割り当てるメモリ領域の割当量を制御する技術として特許文献1が知られている。
特許第4808747号
仮想ストレージに対し、物理的に連続するメモリ領域を割り当てることにより、データ転送の性能を保証することができる。
しかし、仮想ストレージが汎用OS上のプロセスとして実行される場合、OSがプロセスに割り当てるメモリは仮想メモリであり、仮想メモリ領域に対応する物理メモリ領域が連続である保証はない。
そのため、OSにより提供されるリソース割当量制御技術を用いても、物理的に連続したメモリ領域の割り当てを制御することはできず、仮想ストレージの性能を保証することはできない。
特許文献1のような技術では、汎用OS上の仮想ストレージに割り当てられるリソースを制御することができない。
上記課題を解決するために、本発明の一態様である計算機は、メモリと、前記メモリに接続されるプロセッサと、を備える。前記プロセッサは、OSを実行し、前記プロセッサは、前記OS上で複数のプロセスを実行し、前記複数のプロセスは、第一仮想ストレージ装置を含み、前記第一仮想ストレージ装置は、IO処理を実行し、前記IO処理されるデータを格納するキャッシュを含み、前記プロセッサは、前記計算機内のリソースを、前記複数のプロセスに割り当て、前記プロセッサは、前記メモリのうち、プロセスに割り当てられている物理アドレスを示す領域情報を作成し、前記プロセッサは、前記領域情報に基づいて、前記メモリから、物理的に連続する領域である連続領域を選択し、前記連続領域を前記キャッシュに割り当てる。
OS上で実行される仮想ストレージ装置に、物理的に連続するメモリ領域を割り当てることにより、仮想ストレージ装置の性能を保証することができる。
本発明の実施例に係る計算機システムの物理構成を示す。 実施例1の計算機101内の物理リソースを示す。 実施例1の計算機101の論理構成を示す。 仮想ストレージ111の構成を示す。 クライアント103の構成を示す。 連続領域使用プログラム301内の、リソース割当テーブル314と連続領域テーブル315を示す。 計算機101内の、連続領域管理テーブル403と連続領域割当管理テーブル404とリソース割当管理テーブル214とを示す。 クライアント103内のリソース割当設定テーブル513を示す。 クライアント103によるリソース設定処理を示す。 仮想ストレージ111によるリソース割当処理を示す。 仮想ストレージ111によるキャッシュサイズ変更処理を示す。 連続領域管理プログラム213によるリソース割当管理処理を示す。 仮想ストレージ111によるキャッシュサイズ変更依頼処理を示す。 設定ウィンドウ1401を示す。 実施例2の計算機101の論理構成を示す。 メモリ割当テーブル1502を示す。 確保処理を示す。
以下、図面を参照して本発明の実施形態を説明する。
以下の説明では、「×××テーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「×××テーブル」を「×××情報」と呼ぶことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
また、以下の説明では、要素の識別情報として、IDが使用されるが、それに代えて又は加えて他種の識別情報が使用されてもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号又は参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用又は参照符号に代えてその要素に割り振られたIDを使用することがある。
また、以下の説明では、I/O(Input/Output)要求は、ライト要求又はリード要求であり、アクセス要求と呼ばれてもよい。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又はインターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理又はシステムとしてもよい。また、プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサ(例えばCPU)と記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムとを記憶してよい。そして、プログラム配布サーバのプロセッサが配布プログラムを実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布してよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
また、以下の説明では、管理システムは、一以上の計算機を含んでいてもよい。具体的には、例えば、管理計算機が情報を表示する場合(具体的には、例えば、管理計算機が自分の表示デバイスに情報を表示する、或いは、管理計算機が表示用情報を遠隔の表示用計算機に送信する場合)、管理計算機が管理システムである。また、例えば、複数の計算機で管理計算機と同等の機能が実現されている場合は、当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機を含んでよい)が、管理システムである。管理計算機(例えば管理システム)は、表示システムを含むI/Oシステムに接続されたインタフェースデバイスと、記憶資源(例えばメモリ)と、インタフェースデバイス及び記憶資源に接続されたプロセッサとを有してよい。表示システムは、管理計算機が有する表示デバイスでもよいし、管理計算機に接続された表示用計算機でもよい。I/Oシステムは、管理計算機が有するI/Oデバイス(例えばキーボード及びポインティングデバイス、タッチパネル)でもよいし、管理計算機に接続された表示用計算機又は別の計算機でもよい。管理計算機が「表示用情報を表示する」ことは、表示システムに表示用情報を表示することであり、これは、管理計算機が有する表示デバイスに表示用情報を表示することであってもよいし、管理計算機が表示用計算機に表示用情報を送信することであってもよい(後者の場合は表示用計算機によって表示用情報が表示される)。また、管理計算機が情報を入出力するとは、管理計算機が有するI/Oデバイスとの間で情報の入出力を行うことであってもよいし、管理計算機に接続された遠隔の計算機(例えば表示用計算機)との間で情報の入出力を行うことであってもよい。情報の出力は、情報の表示であってもよい。
以下、本発明の実施例の計算機システムの構成について説明する。
図1は、本発明の実施例に係る計算機システムの物理構成を示す。
計算機システムは、1台以上の計算機101、ネットワーク102、1台以上のクライアント103を含む。
計算機101は、物理メモリ121と、CPU(Central Processing Device)122と、ネットワークIF123と、ドライブIF124と、ドライブ125とを含む。CPU122は、コア131と、DMA(Direct Memory Access)コントローラ132とを含む。物理メモリ121と、CPU122と、ネットワークIF123と、ドライブIF124とは、バスを介して互いに接続されている。
物理メモリ121は、プログラムやデータを格納する。ネットワークIF123は、ネットワーク102に接続され、ネットワーク102を介してクライアント103と通信する。ドライブIF124は、ドライブ125に接続され、ドライブ125と通信する。ドライブ125は、データを格納する。コア131は、物理メモリ121に格納されたプログラムに従って処理を実行する。DMAコントローラ132は、コア131からの指示に従って、データのDMA転送を実行する。物理メモリ121は、複数の物理メモリを含んでいてもよい。
図2は、実施例1の計算機101内の物理リソースを示す。
計算機101内の物理リソースは、OS201により管理されるOS管理物理リソース202と、計算機101に搭載されているがOS201により管理されないOS管理外物理リソース203とを含む。
OS管理物理リソース202は、CPU122と、物理メモリ121の一部である物理メモリA222とを含む。OS管理外物理リソース203は、物理メモリ121のうち物理メモリA222以外の部分である物理メモリB231を含む。
計算機101において、OS201を起動させる場合、ユーザは、OS201のブートオプションとして、OS201により使用される物理メモリ量であるOS管理メモリ量を設定することができる。OS管理メモリ量は、物理メモリ121の容量以下であればよい。これにより、物理メモリA222は、物理メモリ121のうち、物理アドレスの先頭からOS管理メモリ量までの領域である。物理メモリB231は、物理メモリ121のうち、物理メモリA222の領域の直後の物理アドレスから物理メモリ121の終端の物理アドレスまでの領域である。
OS201により使用可能な領域として、物理メモリA222を設定することにより、物理メモリB231がOS201に使用されることがなく、物理メモリB231内の連続領域を仮想ストレージのキャッシュに割り当てることができる。
図3は、実施例1の計算機101の論理構成を示す。
計算機101の論理構成は、OS201と、連続領域管理プログラム213と、1台以上の仮想ストレージ(仮想ストレージ装置)111と、リソース割当管理テーブル214とを含む。これらは、物理メモリ121に格納される。各仮想ストレージ111は、OS201によりプロセスとして管理される。計算機101の論理構成は、仮想ストレージ111以外のプロセスを含んでいてもよい。OS201は、物理メモリA222を使用することができる。連続領域管理プログラム213は、物理メモリB231を使用することができる。なお、連続領域管理プログラム213は、OS201に含まれていてもよい。
OS201は、複数のプロセスを統合管理するコンテナ技術を用いて、OS管理物理リソース202から仮想ストレージ111のプロセスを構築する。コンテナ技術は、CPU割当調整プログラム211およびメモリ割当調整プログラム212を含むリソース分割機能である。OS201は、このようなリソース分割機能を有している技術であれば、コンテナ技術以外の技術を用いて、仮想ストレージ111のプロセスを構築しても良い。CPU割当調整プログラム211は、OS上で実行されるプロセスに対してCPU122のリソースを割り当てる。メモリ割当調整プログラム212は、OS201上で実行されるプロセスに対して物理メモリA222のリソースを割り当てる。OS201は更に、計算機101の他の物理リソースを制御するプログラム等を含んでもよい。
連続領域管理プログラム213は、仮想ストレージ通信部401と、領域調整管理部402と、連続領域管理テーブル403と、連続領域割当管理テーブル404とを含む。仮想ストレージ通信部401は、仮想ストレージ111と通信する。領域調整管理部402は、物理メモリ121のうち仮想ストレージ111に割り当てる領域を調整する。連続領域管理テーブル403は、物理メモリB231内の連続領域を示す。連続領域割当管理テーブル404は、各仮想ストレージに割り当てられた物理メモリB231内の連続領域を示す。
リソース割当管理テーブル214は、連続領域管理プログラム213及びOS201により作成され、各仮想ストレージ111に割り当てられたリソースの割当状況を示す。
計算機101は、仮想ストレージ111をクライアント103へ提供する。クライアント103は、1台以上の仮想ストレージ111を制御する。
図4は、仮想ストレージ111の構成を示す。
仮想ストレージ111は、連続領域使用プログラム301と、ストレージ制御プログラム302と、キャッシュ303と、デバイスプログラム304と、IOプログラム305とを含む。
連続領域使用プログラム301は、OS通信部311と、クライアント通信部312と、領域調整部313と、リソース割当テーブル314と、連続領域テーブル315とを含む。OS通信部311は、OS201と通信する。クライアント通信部312、クライアント103と通信する。領域調整部313は、当該仮想ストレージに割り当てられたキャッシュを管理する。リソース割当テーブル314は、当該仮想ストレージに割り当てられたリソースの割当状況を示す。連続領域テーブル315は、当該仮想ストレージに割り当てられた物理メモリB231内の連続領域を示す。
ストレージ制御プログラム302は、キャッシュ調整プログラム321と、キャッシュ設定IF322とを含む。キャッシュ調整プログラム321は、キャッシュ303を調整する。キャッシュ設定IF322は、連続領域使用プログラム301に対して、キャッシュ303の調整のためのIFを提供する。
デバイスプログラム304は、ネットワークIF123やドライブIF124等の物理デバイスを用いて、物理デバイスの機能を有する仮想デバイスを作成する。デバイスプログラム304は、デバイスドライバであってもよい。
IOプログラム342は、クライアント103からのライト要求やリード要求等のIO要求を処理する。
キャッシュ303は、連続領域使用プログラム301で管理される領域である。キャッシュ303は、デバイス用領域331と、IO用領域332とを含む。デバイスプログラム304は、仮想デバイスのバッファとしてデバイス用領域331を用いる。IOプログラム305は、IO処理のためのキャッシュとしてIO用領域332を用いる。
IOプログラム305は、IO処理において、DMAコントローラ132に対し、DMA転送の転送元及び転送先を示すDMA転送要求を発行する。例えば、DMAコントローラ132は、IOプログラム305からの指示に応じて、デバイス用領域331内のデータをIO用領域332へDMA転送したり、IO用領域332内のデータをデバイス用領域331へDMA転送したりすることができる。DMA転送されるデータは、ライト要求に応じてクライアント103から受信されるライトデータであってもよいし、リード要求に応じてドライブ125から読み出されるリードデータであってもよいし、リード要求時のキャッシュヒットによりIO用領域332から読み出されるリードデータであってもよい。なお、DMAコントローラ132によるDMA転送の転送元及び転送先の一方が、ネットワークIF123、ドライブIF124、ドライブ125等の物理デバイス内のメモリであってもよい。
連続領域使用プログラム301は、デバイス用領域331とIO用領域332の夫々に、物理的に連続するメモリ領域を割り当てる。DMA転送の転送元及び転送先の少なくとも一つをキャッシュ303内の領域とすることで、DMAコントローラ132は、データを連続して転送できるため、CPU121の負荷を抑えつつ、データを高速に転送することができる。これにより、仮想ストレージ111の性能を保証することができる。
図5は、クライアント103の構成を示す。
クライアント103は、メモリと、CPUと、ネットワーク102に接続されるネットワークIFと、ユーザからの入力を受け付ける入力装置と、情報を表示する表示装置とを含む。クライアント103において、メモリがプログラム及びデータを格納し、CPUがプログラムに従って処理を実行する。このメモリは、QoS設定プログラム501を格納する。
QoS設定プログラム501は、設定部511と、通知部512と、リソース割当設定テーブル513とを含む。設定部511は、ユーザから設定の入力を受け付ける。通知部512は、計算機101と通信する。リソース割当設定テーブル513は、リソース割当管理テーブル214と同様の情報を格納する。
図6は、連続領域使用プログラム301内の、リソース割当テーブル314と連続領域テーブル315を示す。
リソース割当テーブル314には、当該仮想ストレージへのCPU122の割当状況を示す割当CPU611と、当該仮想ストレージへの物理メモリA222の割当状況を示す割当非キャッシュ612と、当該仮想ストレージへの物理メモリB231の割当状況を示す割当キャッシュ613とが、格納されている。
物理メモリA222は、非キャッシュ用途のメモリとして仮想ストレージ111等のプロセスに割り当てられ、プロセスの実行に用いられる。物理メモリA222の領域は、仮想メモリ領域として非キャッシュに割り当てられる。仮想メモリ領域に対応する物理メモリ領域は、物理的に連続していなくてもよい。物理メモリB231は、キャッシュ用途のメモリとして仮想ストレージ111に割り当てられ、I/Oのデータの格納等、仮想ストレージ111のI/O処理に用いられる。
このリソース割当テーブル314の例のエントリ610は、当該仮想ストレージへ割り当てられたCPUリソースが計算機101の有するCPU122の50%であること、当該仮想ストレージへ割り当てられた非キャッシュが、計算機101の有する物理メモリA222の40%であること、当該仮想ストレージへ割り当てられたキャッシュが、計算機101の有する物理メモリB231の10%であることを示している。なお、本例では、割当率で割当状況を示しているが、割当時間や割当サイズによって割当状況を示してもよい。
連続領域テーブル315には、当該仮想ストレージに割り当てられている物理メモリB231内の連続領域の開始アドレス621と、その連続領域の終了アドレス622とが、格納されている。
この連続領域テーブル315の例のエントリ620は、当該仮想ストレージに割り当てられている連続領域の開始アドレスが100であり、終了アドレスが290であることを示している。
図7は、計算機101内の、連続領域管理テーブル403と連続領域割当管理テーブル404とリソース割当管理テーブル214とを示す。
連続領域管理テーブル710には、OS管理外物理リソース203である物理メモリB231の開始アドレス711と終了アドレス712が格納されている。この連続領域管理テーブル403の例のエントリ710は、物理メモリB231の開始アドレスが100であり、終了アドレスが2000であることを示している。
連続領域割当管理テーブル404には、仮想ストレージ111を識別する仮想ストレージ識別子721と、当該識別子により識別される仮想ストレージに割り当てた連続領域の開始アドレス722と終了アドレス723が格納されている。この連続領域割当管理テーブル404の例のエントリ720は、仮想ストレージAで識別される仮想ストレージに、開始アドレスが100であり終了アドレスが290である連続領域が割り当てられていることを示している。
リソース割当管理テーブル214には、OS201上で実行される各仮想ストレージのリソース割当テーブル314と同様の情報が格納されている。リソース割当管理テーブル214には、仮想ストレージ111を識別する仮想ストレージ識別子731、当該識別子により識別される仮想ストレージへのCPU割当状況を示す割当CPU732、当該仮想ストレージへの非キャッシュ用途のメモリの割当状況を示す割当非キャッシュ733、当該仮想ストレージへのキャッシュ用途のメモリの割当状況を示す割当キャッシュ734が格納されている。このリソース割当管理テーブル214の例のエントリ730は、仮想ストレージAへの割り当てCPUが計算機101の有するCPU122の50%であること、仮想ストレージAへの割り当て非キャッシュが、計算機101内の物理メモリA222の40%であること、仮想ストレージAへの割り当てキャッシュが、計算機101の有する物理メモリB231の10%であることを示している。なお、本例では、割当率で割当状況を示しているが、割当時間や割当サイズによって割当状況を示してもよい。
これらのテーブルによれば、計算機101は、物理メモリB231から、複数の仮想ストレージ111の夫々に割り当てる連続領域を管理することができる。
図8は、クライアント103内のリソース割当設定テーブル513を示す。
リソース割当設定テーブル513には、リソース割当管理テーブル214と同様の情報が格納されている。リソース割当設定テーブル513には、仮想ストレージ111を識別する仮想ストレージ識別子811、当該識別子により識別される仮想ストレージへのCPU割当状況を示す割当CPU812、当該仮想ストレージへの非キャッシュ用途のメモリの割当状況を示す割当非キャッシュ813、当該仮想ストレージへのキャッシュ用途のメモリの割当状況を示す割当キャッシュ814が格納される。このリソース割当設定テーブル513のエントリ810は、仮想ストレージAへの割り当てCPUが計算機101の有するCPU122の50%であり、仮想ストレージAへの割り当て非キャッシュが、計算機101の有する物理メモリA222の40%であり、仮想ストレージAへの割り当てキャッシュが、計算機101の有する物理メモリB231の10%であることを示している。なお、本例では、割当率で割当状況を示しているが、割当時間や割当サイズによって割当状況を示してもよい。
以下、本実施例の計算機システムの動作について説明する。
図9は、クライアント103によるリソース設定処理を示す。
本処理は、仮想ストレージ111にリソースを割り当てるために、ユーザからクライアント103へリソース割当量が入力される場合に、クライアント103により実施される。
設定部511は、ユーザから仮想ストレージ識別子と当該仮想ストレージに割り当てるCPU量、非キャッシュ量、キャッシュ量の要求を受ける(ステップ901)。
通知部512は、要求された仮想ストレージの識別子と、CPU量、非キャッシュ量、キャッシュ量を当該仮想ストレージに通知する(ステップ902)。通知を受けた仮想ストレージ111は、後述のリソース割当処理を実施する(ステップ903)。
通知部512は、仮想ストレージ111からリソース割当処理の結果として、仮想ストレージ識別子と、割当済CPU量、割当済非キャッシュ量、割当済キャッシュ量を受信し(ステップ904)。通知部512は、リソース割当設定テーブル513の当該仮想ストレージの割当CPU812、割当非キャッシュ813、割当キャッシュ814を、受信した割当済CPU量、割当済非キャッシュ量、割当済キャッシュ量に更新する(ステップ905)。
設定部511は、仮想ストレージ識別子と、当該仮想ストレージに割り当てたCPU量と、非キャッシュ量と、キャッシュ量を表示する(ステップ906)。
以上のリソース設定処理によれば、ユーザは、クライアント103を用いて仮想ストレージ111のリソース量を設定することができる。クライアント103の代わりに、管理計算機が用いられてもよい。
図10は、仮想ストレージ111によるリソース割当処理を示す。
本処理は、前述のリソース設定処理のステップ903で、仮想ストレージ111により実施される。なお、仮想ストレージ111は、予め設定されたCPU量、非キャッシュ量、キャッシュ量を用いて、起動時に、リソース割当処理を実行してもよい。
クライアント通信部312は、クライアント103から仮想ストレージ識別子と、当該仮想ストレージに割り当てを要求するCPU量、非キャッシュ量、キャッシュ量を受信する(ステップ1001)。OS通信部311は、受信した仮想ストレージ識別子と、当該ストレージに割り当てを要求するCPU量、非キャッシュ量、キャッシュ量を、連続領域管理プログラム213に通知する(ステップ1002)。通知を受けた連続領域管理プログラム213は、後述のリソース割当管理処理を実施する(ステップ1003)。
OS通信部311は、連続領域管理プログラム213から、リソース割当管理処理の結果として、仮想ストレージ識別子と当該仮想ストレージへの割当済CPU量、割当済非キャッシュ量、当該仮想ストレージにキャッシュ303として割り当てられた物理メモリB231の領域の開始アドレスと終了アドレスを受信する(ステップ1004)。
領域調整部313は、ステップ1005で受信したキャッシュ303の開始アドレスおよび終了アドレスが、連続領域テーブル315に格納されているアドレスから変更されているか否かを判定する。
ステップ1005において、アドレスが変更されている場合、領域調整部313は、ステップ1006でキャッシュ303の既存領域が拡大しているか縮小しているかを判定する。
ステップ1006において、領域が拡大している場合、領域調整部313は、拡大後のキャッシュ303の領域である拡大領域の開始アドレスと、拡大領域の終了アドレスと、当該要求が割当要求であることとを、キャッシュ設定IF322を用いてストレージ制御プログラム302に通知する(ステップ1007)。
ステップ1006において、領域が縮小している場合、領域調整部313は、縮小後のキャッシュ303の領域である縮小領域の開始アドレスと、縮小領域の終了アドレスと、当該要求が解放要求であることとを、キャッシュ設定IF322を用いてキャッシュ調整プログラム321に通知する(ステップ1007)。
ステップ1007実施後、キャッシュ調整プログラム321は、キャッシュサイズ変更処理を実施する(ステップ1008)。
領域調整部313は、キャッシュ調整プログラム321によるキャッシュサイズ変更処理の完了を、キャッシュ設定IF322を介して受信する(ステップ1009)。領域調整部313は、ステップ1004で受信したキャッシュ303の開始アドレスと終了アドレスを連続領域テーブル315に格納する(ステップ1010)。領域調整部313は、リソース割当テーブル314の割当CPU、割当非キャッシュを、それぞれステップ1004で受信した割当済CPU量、割当済非キャッシュ量に変更し、リソース割当テーブル314の割当キャッシュを、ステップ1009のキャッシュサイズ変更処理の結果から得られる割当済キャッシュ量に更新する(ステップ1011)。
クライアント通信部312は、リソース割当結果としてステップ1010で変更した割当CPU量、割当非キャッシュ量、割当キャッシュ量を、クライアント103へ通知する(ステップ1012)。
以上のリソース割当処理によれば、仮想ストレージ111は、クライアント103から要求に応じて、要求されたリソース量のリソースを取得することができる。
図11は、仮想ストレージ111によるキャッシュサイズ変更処理を示す。
本処理は、前述のリソース割当処理のステップ1008で、ストレージ制御プログラム302が通知を受けた際に、ストレージ制御プログラム302により実施される。
キャッシュ設定IF322がキャッシュサイズの変更要求として、変更領域の開始アドレスと、終了アドレスと、変更要求種別とを受信する(ステップ1101)。変更要求種別は、解放要求または割当要求のいずれかとする。
キャッシュ調整プログラム321は、変更要求種別が解放要求か割当要求かを判定する(ステップ1102)。
ステップ1102において要求種別が解放要求の場合、キャッシュ調整プログラム321は、当該アドレスで指定される領域のキャッシュをクリーン状態に遷移させ(ステップ1103)、当該領域を解放する(ステップ1104)。ここでキャッシュ調整プログラム321は、当該キャッシュ内にダーティ状態のデータがあれば、そのデータをドライブ125へデステージすることで、そのデータをクリーン状態に遷移させることができる。
ステップ1102において要求種別が割当要求の場合、キャッシュ調整プログラム321は、当該アドレスで指定される領域をキャッシュとして割り当てる(ステップ1105)。
ステップ1104またはステップ1105が完了すると、キャッシュ調整プログラム321は、キャッシュサイズ変更処理が完了したことを、キャッシュ設定IF322を用いて領域調整部313へ通知する(ステップ1106)。
以上のキャッシュサイズ変更処理によれば、仮想ストレージ111は、割り当てられた連続領域のサイズに応じて、キャッシュサイズを変更することができる。仮想ストレージ111のキャッシュに割り当てられた領域を変更することで、他の仮想ストレージのキャッシュのための連続領域を確保することができる。
図12は、連続領域管理プログラム213によるリソース割当管理処理を示す。
本処理は、前述のリソース割当処処理のステップ1003で、連続領域管理プログラム213により実施される。
連続領域管理プログラム213の仮想ストレージ通信部401は、仮想ストレージ111から、リソース割当を要求する仮想ストレージを識別する仮想ストレージ識別子と、要求されるCPU量、非キャッシュ量、及びキャッシュ量(要求キャッシュサイズ)とを受信する(ステップ1201)。
領域調整管理部402は、受信した要求キャッシュサイズの連続領域を確保可能か否かを判定する(ステップ1202)。具体的には、領域調整管理部402は、連続領域管理テーブル403および連続領域割当管理テーブル404を用いて、連続領域割当管理テーブル404に格納されている当該仮想ストレージへの割当領域と、それに連続する未割当領域とを合わせて、要求キャッシュサイズの連続領域が確保可能か否かを判定する。前述の連続領域管理テーブル403および連続領域割当管理テーブル404の例において、ステップ1201で連続領域管理プログラム213が仮想ストレージAから要求キャッシュサイズが900である割当要求を受けたことを想定する。仮想ストレージAにはすでに100から290までのアドレスで表される190のサイズの割当がされているため、新規に確保が必要なサイズは900−190=710である。この時、連続領域割当管理テーブル404によれば、仮想ストレージAが確保可能な連続領域が290から500までの210であり、領域調整管理部402は、要求キャッシュサイズの連続領域を確保できない。なお、領域調整管理部402は、当該仮想ストレージの起動時など、仮想ストレージのキャッシュに連続領域が割り当てられていない場合、未割当領域から連続領域を確保できるか否かを判定する。
ステップ1202において確保ができない場合、領域調整管理部402は、連続領域管理テーブル403および連続領域割当管理テーブル404を用いて、物理メモリB231の領域の内、仮想ストレージに割り当てられていない未割当領域のサイズを取得し、ステップ1201で受信した割り当て要求キャッシュサイズ以上の未割当領域があるか否かを判定する(ステップ1203)。前述の連続領域管理テーブル403および連続領域割当管理テーブル404の例において、未割当である領域は、290から500までのアドレスで表される210のサイズの領域と、1450から2000までのアドレスで表される550のサイズの領域であり、合計のサイズは760となる。要求キャッシュサイズは710であり、十分なサイズの未割当領域があると判定される。
ステップ1203において未割当領域が十分であった場合、領域調整管理部402は、各仮想ストレージに割り当てる連続領域が連続アドレスになるように、各仮想ストレージに割り当てる領域を変更する(ステップ1204)。前述のステップ1203の例において、領域調整管理部402は、仮想ストレージAに割り当てる領域を、100から290までのアドレスで表される領域から、100から1000までのアドレスで表される領域に変更し、仮想ストレージBに割り当てる領域を、500から1450までのアドレスで表される領域から、1000から1950までのアドレスで表される領域に変更する。
仮想ストレージ通信部401は、割り当てる領域が変更された結果、割り当て済領域を解放する必要のある仮想ストレージに対し、キャッシュサイズ変更依頼処理を要求する。この時、仮想ストレージ通信部401は、解放領域の開始アドレス及び終了アドレスと、当該要求が解放要求であることとを通知する(ステップ1205)。前述のステップ1204の例において、仮想ストレージ通信部401は、仮想ストレージBに対して、500(開始アドレス)から1000(終了アドレス)までのアドレスで表される領域の解放要求を通知する。
仮想ストレージ111は、依頼に応じて、前述のキャッシュサイズ変更依頼処理を実施する(ステップ1206)。
仮想ストレージ通信部401は、仮想ストレージからキャッシュサイズ変更依頼処理の完了通知を受信する(ステップ1207)。
仮想ストレージ通信部401は、ステップ1204で割り当てる領域が変更された結果、新規に領域を割り当てる必要のある仮想ストレージに対し、キャッシュサイズ変更依頼処理を要求する。この時、仮想ストレージ通信部401は、割当領域の開始アドレス及び終了アドレスと、当該要求が割当要求であることとを通知する(ステップ1208)。例えば仮想ストレージ通信部401は、仮想ストレージAに対して290から1000までのアドレスで表される領域の割当を要求し、仮想ストレージBに対して1450から1950までのアドレスで表される領域の割当を要求する。
仮想ストレージ111はキャッシュサイズ変更依頼処理を実施する(ステップ1209)。仮想ストレージ通信部は、仮想ストレージからキャッシュサイズ変更依頼処理の完了通知を受信する(ステップ1210)。
仮想ストレージ通信部401は、ステップ1204で変更した通りに連続領域割当管理テーブル404を更新する(ステップ1211)。例えば、仮想ストレージ通信部401は、連続領域割当管理テーブル404において、仮想ストレージAの開始アドレスを100に、終了アドレスを1000に変更し、仮想ストレージBの開始アドレスを1000に、終了アドレスを1950に変更する。
ステップ1202において確保可能な場合、仮想ストレージ通信部401は、確保した領域の開始アドレス、終了アドレスを用いて連続領域割当管理テーブル404を更新する(ステップ1211)。
仮想ストレージ通信部401は、ステップ1201の要求キャッシュサイズを用いて、リソース割当管理テーブル214の割当キャッシュ734を更新する(ステップ1212)。
OS201のCPU割当調整プログラム211は、ステップ1201で要求されたCPU量を当該仮想ストレージ111に設定する(ステップ1213)。
ステップ1203において未割り当て領域が不足する場合も、CPU割当調整プログラム211は、ステップ1213を実施する。
CPU割当調整プログラム211は、当該仮想ストレージからの割当済CPU量に基づき、リソース割当管理テーブル214の当該仮想ストレージに関する割当CPU732を更新する(ステップ1214)。
OS201のメモリ割当調整プログラム212は、ステップ1201で要求された非キャッシュ量を当該仮想ストレージに設定する(ステップ1215)。メモリ割当調整プログラムは、割当済非キャッシュ量に基づきリソース割当管理テーブル214の当該ストレージに関する割当非キャッシュ733を変更する(ステップ1216)。
仮想ストレージ通信部401は、リソース割当結果として、仮想ストレージ識別子と、リソース割当管理テーブル214から得られるCPU量及び非キャッシュ量と、連続領域割当管理テーブル404から得られる仮想ストレージ識別子から識別される開始アドレス及び終了アドレスとを、仮想ストレージに通知する(ステップ1217)。
以上のリソース割当管理処理によれば、連続領域管理プログラム213は、要求に応じて、仮想ストレージ111のキャッシュ303に連続領域を割り当てることができる。キャッシュに連続領域を割り当てることにより、仮想ストレージ111は、IO処理においてDMA転送を実行し、仮想ストレージ111の性能を向上させることができる。また、キャッシュサイズを設定することにより、各仮想ストレージ111の性能のバランスを制御することができる。連続領域管理プログラム213は、連続領域管理テーブル403および連続領域割当管理テーブル404を用いることにより、要求に応じて連続領域を選択することができる。連続領域管理プログラム213は、要求キャッシュサイズを有する連続領域が確保できないと判定された場合であっても、他の仮想ストレージに割り当てられた領域を物理メモリB232内で移動し、連続領域を確保することで、物理メモリB232を有効に利用することができる。
図13は、仮想ストレージ111によるキャッシュサイズ変更依頼処理を示す。
本処理は、リソース割当管理処理のステップ1206およびステップ1209に応じて、連続領域使用プログラム301により実施される。
OS通信部311は、キャッシュ割当を変更する領域の開始アドレスと終了アドレスと変更要求種別とを受信する(ステップ1301)。
領域調整部313は、キャッシュ設定IF322を用いて、ストレージ制御プログラム302に、キャッシュ割当を変更する領域の開始アドレスと終了アドレスと変更種別とを通知する(ステップ1302)。ストレージ制御プログラム302は、前述のキャッシュサイズ変更処理を実施する(ステップ1303)。
領域調整部313は、ストレージ制御プログラム302から、キャッシュサイズ変更処理の完了を受信する(ステップ1304)。領域調整部313は、ステップ1301で受信した開始アドレスと終了アドレスを用いて連続領域テーブル315を更新する(ステップ1305)。例えば、前述の連続領域テーブル315の例において、領域調整部313は、ステップ1301で開始アドレスが290であり終了アドレスが1000である割当要求を受けた場合、連続領域テーブル315の開始アドレス621を変更せずに、終了アドレス622を290から1000へ変更する。
領域調整部313は、リソース割当テーブル314の割当キャッシュ613を、サイズ変更後の情報に変更する(ステップ1306)。
OS通信部311が、キャッシュサイズ変更依頼処理の終了をOS201に通知する(ステップ1307)。
図14は、設定ウィンドウ1401を示す。
前述のリソース設定処理において、クライアント103内のQoS設定プログラム501の設定部511は、仮想ストレージ111へのリソース割当量を変更するために、設定ウィンドウ1401を表示装置に表示させる。
設定ウィンドウ1401は、リソース割当量変更部1411と、更新ボタン1412と、キャンセルボタン1413とを含む。
リソース割当量変更部1411は、仮想ストレージ識別子と、当該仮想ストレージへの、CPU、非キャッシュ、キャッシュの割当量とを表示する。更にリソース割当量変更部1411は、仮想ストレージ識別子と、各リソースの割当量との変更を受け付ける。
ユーザが更新ボタン1412を押下すると、設定部511が仮想ストレージ識別子と、当該仮想ストレージへの割当を要求する、CPU量、非キャッシュ量、キャッシュ量とを、入力装置から受信し、リソース設定処理のステップ901を実施する。
ユーザがキャンセルボタン1413を押下すると、設定部511はリソース割当処理を終了し、設定ウィンドウ1401を閉じる。
この設定ウィンドウ1401によれば、ユーザは、クライアント103を用いて、仮想ストレージ111に割り当てるリソース量の要求を発行することができる。CPU量、非キャッシュ量、キャッシュ量は、仮想ストレージ111の性能に影響を与えるため、これらを設定することにより、仮想ストレージ111の性能を保証することができる。また、複数の仮想ストレージの間でリソース量を設定することにより、仮想ストレージの性能のバランスを制御することができる。
本実施例によれば、OS201の機能を用いると共に、計算機101に連続領域管理プログラム213を追加することで、キャッシュに連続領域を割り当てることを実現できるため、プログラムの改変量を抑え、プログラムの開発コストを抑えることができる。
本実施例においては、実施例1と異なる部分を説明する。
実施例1と比較すると、本実施例の計算機101内の物理リソースは、OS管理外物理リソース203を含まない。即ち、本実施例のOS201は、物理メモリ121の全てを物理メモリA222として使用することができる。
図15は、実施例2の計算機101の論理構成を示す。
実施例1と比較すると、本実施例の計算機101は、連続領域管理テーブル403を含まず、連続領域確保プログラム1501およびメモリ割当テーブル1502を含む。連続領域確保プログラム1501は、キャッシュとして連続領域を確保する。メモリ割当テーブル1502は、各プロセスに割り当てられたメモリ領域を管理する。
この構成により、OS201が計算機101内のすべての物理リソースを管理する場合でも、物理メモリ121内の連続領域を確保することができる。
図16は、メモリ割当テーブル1502を示す。
メモリ割当テーブル1502には、物理メモリA222内の領域の物理アドレス1611と、当該アドレスにより識別される領域の割当先を識別する割当先識別子1612と、割当先に仮想アドレスを提供する場合の仮想アドレス1613とが格納されている。例えばプロセスには仮想アドレスが提供される。本実施例では、OS201が物理メモリ121を固定長で管理することを想定しているが、可変長で管理する場合、本テーブルは終了アドレスを含んでもよい。
このメモリ割当テーブル1502の例のエントリ1610は、100の物理アドレスで識別される領域が仮想ストレージAに割り当てられていることを示している。またエントリ1620は、120の物理アドレスで識別される領域が、仮想ストレージ以外のプロセスXに割り当てられており、当該領域はプロセスXに対し仮想アドレスが0である領域として提供されていることを示している。
本実施例の計算機101は、実施例1で示した連続領域管理テーブル403の代替として、本テーブルを使用する。
このメモリ割当テーブル1502によれば、物理メモリ121内で各プロセスに割り当てられている領域を管理することにより、連続領域を確保することができる。
実施例1と比較すると、本実施例は、リソース割当管理処理の一部が異なる。本実施例では、リソース割当管理処理のステップ1202の処理を、次に示す確保処理に代替する。
図17は、確保処理を示す。
リソース割当管理処理において、ステップ1201が実施された後、連続領域確保プログラム1501は、現在の割当状況において要求キャッシュサイズを確保可能か否かを判定する(ステップ1701)。
ステップ1701において要求キャッシュサイズを確保可能であると判定された場合、連続領域確保プログラム1501は、当該領域をピンダウンする(ステップ1702)。ピンダウンは、当該領域のデータがスワップアウトされ当該領域が解放されることを防ぐ。即ち、OS201は、ピンダウンにより、当該領域を固定して使用することができる。その後、仮想ストレージ通信部401は、リソース割当管理処理へ確保可であることを返す(ステップ1703)。これにより、リソース割当管理処理は、ステップ1211を実施する。
ステップ1701において要求キャッシュサイズを確保できないと判定された場合、連続領域確保プログラム1501は、未割当領域と物理連続である必要のない領域の入れ替えを行い、キャッシュを要求している仮想ストレージに割り当てることのできる未割当状態の物理連続な領域を拡張する(ステップ1704)。例えば、前述のメモリ割当テーブル1502の例において、仮想ストレージAに30のサイズのキャッシュを割り当てる割当要求が発行された場合を例に挙げる。仮想ストレージ以外のプロセスに割り当てるメモリ領域は物理連続である必要はないため、連続領域確保プログラム1501は、プロセスXに割り当てられている120の物理アドレスの領域を、未割当領域と入れ替える。そして、連続領域確保プログラム1501は、120の物理アドレスの領域に格納されているデータを、150の物理アドレスの未割当領域にコピーする。そして、連続領域確保プログラム1501は、プロセスXに0の仮想アドレスとして提供する領域を、120の物理アドレスの領域から150の物理アドレスの領域に変更する。
連続領域確保プログラム1501は、未割当状態の物理連続な領域を拡張した結果、要求キャッシュサイズのキャッシュの確保が可能か否かを判定する(ステップ1705)。
ステップ1705において、確保が可能な場合、連続領域確保プログラム1501は、前述のステップ1702を実施する。
ステップ1705において、確保ができない場合、領域調整管理部402は、リソース割当管理処理へ確保不可を返す(ステップ1706)。これにより、リソース割当管理処理は、ステップ1203を実施する。
以上の確保処理によれば、連続領域確保プログラム1501は、物理メモリ121のうち仮想ストレージ以外の特定プロセスに割り当てられている領域を変更することにより、仮想ストレージ111のための連続領域を確保するため、物理メモリ121を有効に利用することができる。また、連続領域確保プログラム1501は、特定プロセスに割り当てられている領域内のデータを未割当領域にコピーすることで、特定プロセスを継続でき、特定プロセスに割り当てる領域を未割当領域に変更することができる。連続領域確保プログラム1501は、確保された連続領域をピンダウンすることにより、割り当てる領域を固定し、その領域の解放を防ぐことができる。
本実施例によれば、計算機101は、物理メモリ121を、物理メモリA222と物理メモリB231に分けることなく、OS201と仮想ストレージ111のキャッシュに使用できるため、物理メモリ121を有効に利用することができる。
本発明の表現のための用語について説明する。領域情報は、連続領域管理テーブル403と連続領域割当管理テーブル404とリソース割当管理テーブル214とリソース割当テーブル314と連続領域テーブル315とであってもよいし、それらの情報の一部であってもよい。設定要求は、リソース設定処理のステップ901の要求であってもよい。特定サイズは、要求キャッシュサイズであってもよいし、キャッシュとして割り当て可能なメモリサイズに対する要求キャッシュサイズの割合であってもよい。
以上、本発明の実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲を上記構成に限定する趣旨ではない。本発明は、他の種々の形態でも実施する事が可能である。
101…計算機、 102…ネットワーク、 103…クライアント、 111…仮想ストレージ、 121…物理メモリ、 122…CPU、 123…ネットワークIF、 124…ドライブIF、 125…ドライブ、 131…コア、 132…DMAコントローラ、 201…OS

Claims (12)

  1. 計算機であって、
    メモリと、
    前記メモリに接続されるプロセッサと、
    を備え、
    前記プロセッサは、OSを実行し、
    前記プロセッサは、前記OS上で複数のプロセスを実行し、前記複数のプロセスは、第一仮想ストレージ装置を含み、前記第一仮想ストレージ装置は、IO処理を実行し、前記IO処理されるデータを格納するキャッシュを含み、
    前記プロセッサは、前記計算機内のリソースを、前記複数のプロセスに割り当て、
    前記プロセッサは、前記メモリのうち、前記複数のプロセスに割り当てられている物理アドレスを示す領域情報を作成し、
    前記プロセッサは、前記領域情報に基づいて、前記メモリから、物理的に連続する領域である連続領域を選択し、前記連続領域を前記キャッシュに割り当てる、
    計算機。
  2. 前記メモリ及び前記プロセッサに接続されるDMAコントローラを更に備え、
    前記プロセッサは、DMA転送の転送元及び転送先を示すDMA転送要求を前記DMAコントローラへ発行し、前記転送元及び前記転送先の少なくとも一つは、前記キャッシュに含まれ、
    前記DMAコントローラは、前記DMA転送要求に応じて、前記転送元に格納されているデータを前記転送先へDMA転送する、
    請求項1に記載の計算機。
  3. 前記プロセッサは、前記キャッシュのサイズを特定サイズに設定するための設定要求を受けると、前記領域情報に基づいて、前記特定サイズを有する前記連続領域を確保できるか否かを判定し、
    前記特定サイズを有する前記連続領域を確保できると判定された場合、前記プロセッサは、前記領域情報に基づいて、前記メモリから前記特定サイズを有する前記連続領域を選択する、
    請求項2に記載の計算機。
  4. 前記プロセッサは、前記プロセッサの計算能力を前記複数のプロセスに割り当て、
    前記プロセッサは、前記メモリの容量の一部を、前記複数のプロセスのうち前記キャッシュ以外に割り当てる、
    請求項3に記載の計算機。
  5. 前記プロセッサは、前記メモリの一部である第一領域を前記OSに設定し、
    前記プロセッサは、前記第一領域内の領域を、前記複数のプロセスに割り当て、
    前記プロセッサは、前記メモリのうち前記第一領域と異なる第二領域から、前記連続領域を選択する、
    請求項4に記載の計算機。
  6. 前記複数のプロセスの一つは、第二仮想ストレージ装置であり、
    前記特定サイズを有する前記連続領域を確保できないと判定された場合、前記プロセッサは、前記第二領域のうち第一仮想ストレージ装置に割り当てられていない未割当領域のサイズが、前記特定サイズ以上であるか否かを判定し、
    前記未割当領域のサイズが前記特定サイズ以上であると判定された場合、前記プロセッサは、前記第二領域のうち前記第二仮想ストレージ装置に割り当てられている特定領域を、前記未割当領域内の領域に変更することで、前記特定サイズを有する前記連続領域を確保する、
    請求項5に記載の計算機。
  7. 前記未割当領域のサイズが前記特定サイズ以上であると判定された場合、前記プロセッサは、前記特定領域内のデータをクリーン状態に遷移させ、前記特定領域を解放し、前記未割当領域内の領域を前記第二仮想ストレージ装置に割り当てる、
    請求項6に記載の計算機。
  8. 前記特定サイズを有する前記連続領域を確保できないと判定された場合、前記プロセッサは、前記領域情報に基づいて、前記複数のプロセスのうち仮想ストレージ装置以外である特定プロセスに割り当てられている領域を、前記メモリのうちプロセスに割り当てられていない未割当領域内の領域に変更することで、前記特定サイズを有する前記連続領域を確保する、
    請求項4に記載の計算機。
  9. 前記特定サイズを有する前記連続領域を確保できないと判定された場合、前記プロセッサは、前記領域情報に基づいて、前記特定プロセスに割り当てられている領域を移動元領域として選択し、前記領域情報に基づいて、前記未割当領域内の領域を移動先領域として選択し、前記移動元領域内のデータを前記移動先領域へコピーし、前記特定プロセスに割り当てる領域を前記移動元領域から前記移動先領域へ変更することで、前記特定サイズを有する前記連続領域を確保する、
    請求項8に記載の計算機。
  10. 前記プロセッサは、前記連続領域をピンダウンする、
    請求項9に記載の計算機。
  11. 前記領域情報は、前記メモリのうち各プロセスに割り当てられている領域の物理アドレスを示す、
    請求項10に記載の計算機。
  12. メモリと前記メモリに接続されるプロセッサとを含む計算機の、制御方法であって、
    OSを実行し、
    前記OS上で複数のプロセスを実行し、前記複数のプロセスは、第一仮想ストレージ装置を含み、前記第一仮想ストレージ装置は、IO処理を実行し、前記IO処理されるデータを格納するキャッシュを含み、
    前記計算機内のリソースを、前記複数のプロセスに割り当て、
    前記メモリのうち、前記複数のプロセスに割り当てられている物理アドレスを示す領域情報を作成し、
    前記領域情報に基づいて、前記メモリから、物理的に連続する領域である連続領域を選択し、前記連続領域を前記キャッシュに割り当てる、
    ことを備える制御方法。
JP2017542654A 2015-10-02 2015-10-02 計算機および計算機の制御方法 Active JP6653710B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/078017 WO2017056310A1 (ja) 2015-10-02 2015-10-02 計算機および計算機の制御方法

Publications (2)

Publication Number Publication Date
JPWO2017056310A1 true JPWO2017056310A1 (ja) 2018-07-12
JP6653710B2 JP6653710B2 (ja) 2020-02-26

Family

ID=58423007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017542654A Active JP6653710B2 (ja) 2015-10-02 2015-10-02 計算機および計算機の制御方法

Country Status (3)

Country Link
US (1) US10496444B2 (ja)
JP (1) JP6653710B2 (ja)
WO (1) WO2017056310A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109521966A (zh) * 2018-11-15 2019-03-26 郑州云海信息技术有限公司 存储设备虚拟化方法、装置、终端及计算机可读存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11468201B2 (en) * 2019-07-31 2022-10-11 Dell Products L.P. System and method for slice virtual disk encryption
JP6972202B2 (ja) * 2020-02-14 2021-11-24 株式会社日立製作所 計算機システム及びメモリ管理方法
JP7143866B2 (ja) 2020-03-25 2022-09-29 カシオ計算機株式会社 キャッシュ管理プログラム、サーバ、キャッシュ管理方法、および情報処理装置
US20230098742A1 (en) * 2021-09-30 2023-03-30 Advanced Micro Devices, Inc. Processor Power Management Utilizing Dedicated DMA Engines

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03147013A (ja) * 1989-11-01 1991-06-24 Casio Comput Co Ltd データ更新装置
US7793067B2 (en) * 2005-08-12 2010-09-07 Globalfoundries Inc. Translation data prefetch in an IOMMU
US7739422B2 (en) * 2006-03-21 2010-06-15 International Business Machines Corporation Method to improve system DMA mapping while substantially reducing memory fragmentation
US20080126617A1 (en) * 2006-08-28 2008-05-29 Sean Thomas Brownlow Message Signaled Interrupt Management for a Computer Input/Output Fabric Incorporating Dynamic Binding
US8725914B2 (en) * 2006-08-28 2014-05-13 International Business Machines Corporation Message signaled interrupt management for a computer input/output fabric incorporating platform independent interrupt manager
WO2008149657A1 (ja) * 2007-06-05 2008-12-11 Nec Corporation 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
JP4808747B2 (ja) 2008-06-03 2011-11-02 株式会社日立製作所 ストレージサブシステム
JP2010009160A (ja) 2008-06-25 2010-01-14 Nec Corp 性能値算出装置
JP2011028537A (ja) 2009-07-27 2011-02-10 Buffalo Inc 外部記憶装置へのアクセスを高速化する方法および外部記憶システム
JP4886866B2 (ja) 2010-02-10 2012-02-29 株式会社バッファロー 主記憶装置へのアクセスを高速化する方法および記憶装置システム
JP5673210B2 (ja) * 2011-02-28 2015-02-18 日本電気株式会社 仮想計算機システム、仮想計算機システムのメモリ管理方法およびメモリ管理プログラム
US9237195B2 (en) * 2012-04-27 2016-01-12 Netapp, Inc. Virtual storage appliance gateway
US9384153B2 (en) * 2012-08-31 2016-07-05 Freescale Semiconductor, Inc. Virtualized local storage

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109521966A (zh) * 2018-11-15 2019-03-26 郑州云海信息技术有限公司 存储设备虚拟化方法、装置、终端及计算机可读存储介质

Also Published As

Publication number Publication date
WO2017056310A1 (ja) 2017-04-06
US10496444B2 (en) 2019-12-03
JP6653710B2 (ja) 2020-02-26
US20180203733A1 (en) 2018-07-19

Similar Documents

Publication Publication Date Title
KR102444832B1 (ko) 분산된 가상 명칭 공간 관리를 사용한 온-디맨드 스토리지 프로비져닝
CN107690622B (zh) 实现硬件加速处理的方法、设备和系统
US9760497B2 (en) Hierarchy memory management
WO2019237791A1 (zh) 虚拟化缓存的实现方法及物理机
US11269828B2 (en) Data placement and sharding
US10248346B2 (en) Modular architecture for extreme-scale distributed processing applications
WO2017056310A1 (ja) 計算機および計算機の制御方法
US10248460B2 (en) Storage management computer
JP5972363B2 (ja) デュアル動作システムに対する複数のリソースのためのリソース割り当て
JP2014175009A (ja) 仮想マシンをサポートするフラッシュ・ベースのキャッシング・ソリューションでの動的キャッシュ共有のためのシステム、方法、およびコンピュータ可読媒体
JP2019057151A (ja) メモリシステムおよび制御方法
JP2006244098A (ja) ストレージシステムにおける論理分割方法
CN115413338A (zh) 在计算环境中提供加速器与存储装置之间的直接数据访问
KR102469927B1 (ko) 분할 메모리 관리장치 및 방법
JP2018101334A (ja) メモリシステムおよび制御方法
JP2022035610A (ja) メモリシステムおよび制御方法
WO2022050998A1 (en) Pooled memory controller for thin-provisioning disaggregated memory
US9697047B2 (en) Cooperation of hoarding memory allocators in a multi-process system
US20190087181A1 (en) Storage system
JP2020532803A (ja) 同期入出を介して生成されたキャッシュ・ヒットに応答してメタデータ・トラックの非同期更新をする方法、システム、コンピュータ・プログラムおよび記憶制御装置
KR102146334B1 (ko) 동적 페이지 할당자 변경 방법 및 시스템
US11144473B2 (en) Quality of service for input/output memory management unit
US10228859B2 (en) Efficiency in active memory sharing
CN116324706A (zh) 分离式存储器池分配
US20230185632A1 (en) Management system, data rebalancing management method, and recording medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190607

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20191029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191125

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20191205

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200128

R150 Certificate of patent or registration of utility model

Ref document number: 6653710

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150