JP2010186284A - ファイル入出力方法 - Google Patents

ファイル入出力方法 Download PDF

Info

Publication number
JP2010186284A
JP2010186284A JP2009029300A JP2009029300A JP2010186284A JP 2010186284 A JP2010186284 A JP 2010186284A JP 2009029300 A JP2009029300 A JP 2009029300A JP 2009029300 A JP2009029300 A JP 2009029300A JP 2010186284 A JP2010186284 A JP 2010186284A
Authority
JP
Japan
Prior art keywords
input
output
processor
computer
file
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
JP2009029300A
Other languages
English (en)
Other versions
JP5241550B2 (ja
Inventor
Toshiyuki Ukai
敏之 鵜飼
Takeshi Tanaka
剛 田中
Takashi Yasui
隆 安井
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
Priority to JP2009029300A priority Critical patent/JP5241550B2/ja
Priority to US12/538,546 priority patent/US20100205329A1/en
Publication of JP2010186284A publication Critical patent/JP2010186284A/ja
Application granted granted Critical
Publication of JP5241550B2 publication Critical patent/JP5241550B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 複数のディスク装置を備える単一のコンピュータシステムで,一つのファイルに対する入出力スループット性能の最適化を実現する。
【解決手段】 一つのファイル入出力要求を前記複数のストレージに対する入出力要求に分割する機能を備える計算機システムにおいて,計算機のプロセッサの構成情報と,分割格納されるファイルの構成情報を利用し,単一のファイルに対する単一の入出力要求に対して,所定の条件が満たされるか否かを判定した結果に基づいて、所定数の複数の入出力スレッドを生成,または,選択して,複数のストレージが保持する,単一ファイルの分割データに対して,前記複数の入出力スレッドがそれぞれ入出力する。
【選択図】 図1

Description

本願明細書で開示される技術は、ストレージシステムが有するディスクへの入出力制御方法またはシステムに関し、特に、複数のディスク装置を接続した単一のサーバにおいて、接続されたディスク装置の構成に応じた入出力制御方法を実現するファイルシステムに関する。
単一のディスク装置の入出力スループット性能は、ホストコンピュータのプロセッサで行うソフトウェアのファイル入出力処理に比較して遅い。単一のディスク装置だけでなく、ディスクアレイ装置でも同様である。
ディスクアレイ装置は、RAID(Redundant Arrays of Inexpensive Disks)とも呼ばれ、アレイ状に配置された複数のディスク装置及びそれらを制御する制御部とを有するストレージシステムである。ディスクアレイ装置では、計算機からの一つの入出力要求を、ディスク装置におけるの並列動作により高速に処理する。
一方、複数のディスク装置(LU、以下、特に断らない限り、物理的に単一なディスク装置と論理ディスク装置は区別しない)を用いて、トータルで入出力スループット性能を向上する技術がある(特許文献1参照)。特許文献1によれば、各LUに、それぞれ異なるファイルを格納し、マルチプロセス/マルチスレッドで各ファイルに対する入出力を実行することで、ディスク装置に並列にアクセスする。
また、複数のLUに単一のファイルをストライピングして格納することにより、単一のファイルの入出力性能を向上できる技術もある。特許文献2では、複数のLUを論理的に単一のディスク装置(論理ボリューム)として扱うことを可能にする、LVM(Logical Volume Manager:論理ボリュームマネージャ)の技術を利用している。この技術によれば、単一のファイルを論理ボリュームに格納することで、特にUAP(User Application Program)が特に意識することなく、複数のLUに分割格納される。この論理ボリュームに対するファイル入出力要求は、LU台数を考慮した入出力制御を行う。
さらに、ホストコンピュータを、入出力サーバとして複数利用して、トータルの入出力性能を向上する並列ファイルシステム技術もある(特許文献3参照)。特許文献3によれば、演算サーバ(ホストコンピュータ)上の並列ファイルシステムクライアントと複数入出力サーバ上の並列ファイルシステムサーバの間で、それぞれで動作する通信用スレッドを介してデータをやり取りする。複数の入出力サーバを並列に動作させる。
特開平7−248949号公報 特開2004−265110号公報 特開2002−182953号公報 米国特許公開2008/0022286号公報
並列プログラムではない、単一のUAPの場合、単一ホストコンピュータでLVMを利用して複数のLUを統合しても、LUの数に応じたスケーラブルな性能を引き出すことができない。 これは入出力要求を発行するUAPが1プロセス(1スレッド)の場合、OSの構造に起因して、入出力発行処理までそのUAPのプロセスのコンテキストで走行しきるためである。これにより、UAPのコンテキストが一つしかない場合、一つのプロセッサのみで入出力処理が実行される。
また、上述した特許文献では、ホストコンピュータにLUが複数接続された場合、ある程度の数まではLUの数に応じた入出力スループット性能向上を考慮した入出力制御が開示されているが、ソフトウェアの入出力処理を実行するプロセッサ(CPU)がネックとなり、それ以上入出力スループット性能性能を引き出せなくなる。
このプロセッサネックを入出力処理に伴うメモリコピー処理を例に考えると次のようになる。プロセッサの動作クロックが5GHz、かつ、理想的に1クロックで8バイトのロード、または、ストアが可能と仮定したとき、単純にロード/ストアを繰り返したとしても20GByte/秒(5GHz×8Byte÷2(ロードおよびストア))が最大性能となる。実際は他の処理も行うため、単一スレッドのジョブで期待できるデータ処理能力は、高々20GByte/秒の数分の1程度となる。
一方、並列ファイルシステムでは、演算サーバと入出力サーバ間の通信を複数の通信用スレッドが行うため、通信部分は複数のプロセッサを使用して、並列に動作することが可能である。
しかし、単一のUAPでは、LVMの場合と同様、演算サーバの入出力処理で利用するプロセッサは単一である。また、この通信用スレッドは、演算サーバと入出力サーバ間の通信路として利用されるのみであり、ファイルの構成(ストライピング数)を考慮しておらず、接続されているディスク装置の数に応じた最適化は行えない。
さらに、現在、高多重マルチプロセッササーバはNUMA(Non−Uniform Memory Access)構成が主流である。NUMAは、複数プロセッサが共有するメインメモリおよび入出力装置へのアクセスコストが、メモリ領域とプロセッサに依存して均一でないアーキテクチャである(特許文献4参照)。仮に上記通信用スレッドを入出力スレッドとして多重に入出力処理を行わせたケースで、スレッドが動作するプロセッサと、入出力装置やメモリの位置関係は任意となる。 この場合、ホストコンピュータ内の低スループットの経路を経由することにより、十分な入出力性能を引き出すことができない。
上記課題の少なくともひとつを解決するために、本発明の一形態は、計算機と、前記計算機にネットワークを介して接続される複数のストレージと、を備える計算機システムであって、前記計算機は、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え前記計算機は,一つのファイルのデータを、前記複数のストレージに分割して格納し,一つのファイル入出力要求を前記複数のストレージに対する入出力要求に分割する機能を備える計算機システムであって,前記計算機は、前記計算機のプロセッサの構成情報と,前記分割格納されるファイルの構成情報を保持し,単一のファイルに対する単一の入出力要求に対して,所定の条件が満たされるか否かを判定した結果に基づいて、所定数の複数の入出力スレッドを生成,または,選択して,前記複数のストレージが保持する,前記単一ファイルの分割データに対して,前記複数の入出力スレッドがそれぞれ入出力することを特徴とする。
本発明の別の形態によれば、前記単一ホストコンピュータがNUMA構成であっても、入出力処理を行うプロセッサと、入出力対象データを格納するディスク装置を選択する、ことを特徴とする。または、プロセッサとディスク装置のほかに、入出力対象データを格納するメモリ領域を選択することを特徴とする。
本発明の一形態によれば、複数のLU(ディスク装置)を接続した単一ホストコンピュータにおいて、一つのファイルを複数のLUに分割格納するファイルシステムで、ディスク装置の数に応じて入出力性能を向上することができる。
また、本発明の別の形態によれば、前記単一ホストコンピュータがNUMA構成であっても、入出力処理を行うプロセッサと、入出力対象データを格納するディスク装置を選択することにより、ディスク装置の数に応じて入出力性能を向上することができる。
また、本発明の別の形態によれば、前記単一ホストコンピュータがNUMA構成であっても、入出力処理を行うプロセッサと、入出力対象データを格納するディスク装置と、入出力対象データを格納するメモリ領域を選択することにより、ディスク装置の数に応じて入出力性能を向上することができる。
本発明の実施例の計算機システムの構成を示すブロック図である。 本発明の実施例のプロセッサ構成情報の説明図である。 本発明の実施例の論理ファイル構成情報の説明図である。 本発明の実施例の入出力スレッド指定情報の説明図である。 本発明の実施例において、入出力スレッド生成および入出力処理実行部が実行する処理を示すフローチャートである。 本発明の実施例において、入出力スレッド数決定処理を示すフローチャートである。 本発明の実施例において、入出力スレッド動作プロセッサ決定処理を示すフローチャートである。 本発明の実施例において、入出力スレッド動作プロセッサ決定処理(均等化処理)を示すフローチャートである。 本発明の実施例において、ファイル入出力起動処理を示すフローチャートである。 本発明の実施例において、ファイル入出力完了処理を示すフローチャートである。 本発明の実施例のファイルシステムプログラムが実行する論理ファイル作成部を示すフローチャートである。 本発明の実施例のファイルシステムプログラムが実行する論理ファイル入出力部を示すフローチャートである。 本発明の実施例の計算機システムの構成を示すブロック図である。 本発明の実施例のプロセッサ構成情報の説明図である。 本発明の実施例の接続デバイス情報の説明図である。 本発明の実施例のファイルシステム構成情報の説明図である。 本発明の実施例において、入出力スレッド動作プロセッサ決定処理を示すフローチャートである。 本発明の実施例において、入出力スレッド動作プロセッサ決定処理(NUMA処理)を示すフローチャートである。 本発明の実施例の計算機システムの構成を示すブロック図である。 本発明の実施例において、CPUボード毎メモリ割り当て処理実行部を示すフローチャートである。 本発明の実施例のメモリとサブデータ対応情報の説明図である。 本発明の実施の例における問題点の概略説明図である。 本発明の実施の例におけるシステムの概略説明図である
以下、本発明の実施例を、図面を参照して説明する。
図1は、本実施例の計算機システムの構成を示すブロック図である。
本実施例の計算機システムは、ホストコンピュータ101、ディスク装置102及びを備える。ホストコンピュータ101は、ストレージネットワーク103を介して、ディスク装置102と接続される。
ホストコンピュータ101は、LU102を使用して種々のアプリケーションを実現する計算機である。本実施例のホストコンピュータ101は、相互に接続されたプロセッサ111、メモリ112、インターフェース(I/F)113を備える。
プロセッサ111は、メモリ112に格納されたプログラムを実行するプロセッサである。以下の説明において各プログラムが実行する処理は、実際にはプロセッサ111によって実行される。
メモリ112は、プロセッサ111によって実行されるプログラム及びプロセッサ111によって参照されるデータ等を格納する記憶装置である。メモリ112が例えばDRAMのような半導体メモリである場合、上記のプログラム及びデータ等は、ハードディスクドライブ(図示省略)に格納され、必要に応じてそれらの全部又は一部がメモリ112にコピーされてもよい。本実施例のメモリ112は、少なくとも、ファイルシステムプログラム121、及び、マルチスレッド入出力プログラム122を格納する。メモリ112には、さらに、任意の機能をユーザに提供するユーザアプリケーションプログラム(図示省略)が格納されてもよい。
マルチスレッド入出力プログラム122は、ホストコンピュータ101に接続された複数のLUに対して、マルチスレッド入出力を行うプログラムである。マルチスレッド入出力プログラム122は、入出力スレッド生成および入出力処理実行部141、プロセッサ構成情報131、論理ファイル構成情報132、入出力スレッド指定情報133を含む。これらについては後で詳細に説明する。
ファイルシステムプログラム121は、オペレーティングシステム(OS)(図示省略)の一部として提供されるファイルシステムプログラムであってもよいし、ユーザアプリケーション(図示省略)によって使用される入出力ライブラリであってもよい。以下の説明は、ファイルシステムプログラム121が入出力ライブラリである場合にも適用することができる。
マルチスレッド入出力プログラム122は、図ではファイルシステムプログラム121と別に示しているが、ファイルシステムプログラム121の一部として提供されても良い。
I/F113は、ストレージネットワーク103に接続され、ストレージネットワーク103を介してLU102と通信するインターフェースである。
LU102は、ホストコンピュータ101によって書き込まれたデータを格納する。LUは、ホストコンピュータに提供される、ホストコンピュータが利用可能なデータを格納可能な記憶部(storage unit)であり、それぞれディスク装置により構成される。また複数のディスク装置からRAID構成により構成されたものであってもよい。
本実施例では、ストレージネットワーク103においてファイバーチャネル(FC)プロトコルが使用される。しかし、これらのネットワークは上記以外のいかなるプロトコルを使用するものであってもよい。上記以外のプロトコルが使用される場合、I/F113は、それぞれ、それらに接続されるネットワークに適合するインターフェースによって置き換えられる。上記以外のプロトコルが使用される場合、I/F113は、それぞれ、それらに接続されるネットワークに適合するインターフェースによって置き換えられる。
図2は、本実施例のプロセッサ構成情報131の説明図である。
プロセッサ構成情報131は、ホストコンピュータのプロセッサ数を示すプロセッサ数情報201を含む。ここでいうプロセッサ数は、物理的なプロセッサの数でも、論理的なプロセッサ数でも、どちらでもよい。論理的なプロセッサとは、同時マルチスレッディング(Simultaneous Multithreading:SMT)機能を持つプロセッサで、仮想的に見えるプロセッサのことで、アプリケーションに提供されるプロセッサである。SMTは、単一の物理プロセッサの中に複数の仮想的なスレッド実行単位を持つことによって、単一のプロセッサながら、ソフトウェアからみると、論理的に複数のプロセッサが存在するように見える。
図3は、本実施例の論理ファイル構成情報132の説明図である。
論理ファイル構成情報132は、例えば各LU102に分割されて格納されるサブデータ152を単一の論理的なファイルとして扱えるようにする情報を格納する。
論理ファイル構成情報132は、サブデータ152の数を表すストライプ数情報301と、サブデータにストライピングするときのストライピング単位(サイズ)をあらわすストライプサイズ情報302と、サブデータの位置を特定するための情報であるサブデータ情報303を含む。
このほかに、例えば、論理的なファイルの名前や、複数の論理的なファイルをツリー構造で管理するための情報を保持してもよい。
図4は、本実施例の入出力スレッド指定情報133の説明図である。
入出力スレッド指定情報133は、ファイル入出力処理に伴い、入出力スレッドを生成する、または、あらかじめ作成した中から選択する際に利用する情報を格納する。
入出力スレッド指定情報133は、生成、または、選択する入出力スレッド数の上限を示す入出力スレッド数上限401と、実際のファイル入出力処理のとき、入出力スレッド数上限に達しない範囲で、使用する入出力スレッド数を決定するための情報を表す入出力決定項目402、生成、または、選択した入出力スレッドをどのプロセッサにバインドするか決定するための情報を表す入出力スレッドバインド指定情報403を含む。
入出力スレッド数決定情報402は、具体的には、論理ファイルのサブデータの数を基に入出力スレッド数を決定することを示す「サブデータ数」や、ホストコンピュータ101が備えるプロセッサ111の数を示す「プロセッサ数」を表す値が登録される。
入出力スレッド数決定情報402は、必ずしも値が登録されていなくてもよい。また、入出力スレッド指定情報133に、入出力スレッド数決定情報402自体がなくてもよい。その場合、あらかじめシステムで決められた動作に従い、入出力スレッド数を決定する。
図5は、本実施例において、入出力スレッド生成および入出力処理実行部141が実行する処理を示すフローチャートである。
入出力スレッド生成および入出力処理実行部141は、指定されたファイルはストライピングファイル(論理ファイル)か否かを判定する(ステップ501)。この判定は、ファイルを含むディレクトリがどのようなファイルを保持するかの情報や、ファイルの属性情報、ファイルのメタデータが論理ファイル構成情報を参照しているかなどの判定により実行される。
ステップ501において、ストライピングファイルであると判定された場合、入出力スレッド生成および入出力処理実行部141は、プロセッサ構成情報131、および、論理ファイル構成情報132に基づき、指定されたファイルの入出力を行う入出力スレッド数を決定する(ステップ502)。指定されたファイルの入出力を行う入出力スレッド数を決定する処理については、図6を参照して後述する。
次に、入出力スレッド生成および入出力処理実行部141は、ステップ502で決定した入出力スレッド数と、プロセッサ構成情報131から入出力スレッドを動作させるプロセッサを決定し、入出力スレッドを生成、または、選択し、各入出力スレッドを決定したプロセッサで動作させる(ステップ503)。ステップ503の具体的な処理については、図7を参照して後述する。
次に、生成、または、選択した、各入出力スレッドに対して、入出力対象とするサブデータに対する入出力を起動する(ステップ504)。ステップ504の入出力を起動する処理については、図9を参照して後述する。一方、ステップ501において、ストライピングファイルでないと判定された場合、処理を終える。以上で、入出力スレッド生成および入出力処理実行部141が実行する処理が終了する。
図6は、本実施例の入出力スレッド生成および入出力処理実行部141で実行される、入出力スレッド数を決定する処理(ステップ502)を示すフローチャートである。
入出力スレッド数決定処理は、入出力スレッド指定情報133の入出力スレッド数決定情報402を参照し、ホストコンピュータ101が備えるプロセッサ111の数を示す「プロセッサ数」を表す値が登録されているか否かを判定する(ステップ601)。
ステップ601において、「プロセッサ数」を表す値が登録されていると判定された場合、入出力スレッド数決定処理は、ファイルのサブデータ数がプロセッサ数以上か否かを判定する(ステップ602)。
ステップ602において、ファイルのサブデータ数がプロセッサ数以上であると判定された場合、変数「仮入出力スレッド数」にプロセッサ数の値をセットする(ステップ603)。
また、ステップ602において、ファイルのサブデータ数がプロセッサ数以上でないと判定された場合、変数「仮入出力スレッド数」にサブデータ数の値をセットする(ステップ604)。
一方、ステップ601において、「プロセッサ数」を表す値が登録されていないと判定された場合、入出力スレッド指定情報133の入出力スレッド数決定情報402を参照し、指定されたファイルのサブデータの数を示す「サブデータ数」を表す値が登録されているか否かを判定する(ステップ605)
ステップ605において、「サブデータ数」を表す値が登録されていると判定された場合、入出力スレッド数決定処理は、ファイルのサブデータ数がプロセッサ数以上か否かを判定する(ステップ606)。
ステップ606において、ファイルのサブデータ数がプロセッサ数以上であると判定された場合、変数「仮入出力スレッド数」にサブデータ数の値をセットする(ステップ607)。
また、ステップ606において、ファイルのサブデータ数がプロセッサ数以上でないと判定された場合、変数「仮入出力スレッド数」にプロセッサ数の値をセットする(ステップ608)。
一方、ステップ605において、「サブデータ数」を表す値が登録されていないと判定された場合、変数「仮入出力スレッド数」にサブデータ数の値をセットする(ステップ609)。
次に、入出力スレッド数決定処理は、入出力スレッド指定情報133の入出力スレッド数上限情報401を参照し、変数「仮入出力スレッド数」の値が入出力スレッド数上限情報401の値以上か否かを判定する(ステップ610)。
ステップ610において、変数「仮入出力スレッド数」の値が入出力スレッド数上限情報401の値以上であると判定された場合、入出力スレッド数を入出力スレッド数上限情報401の値にすることを決定する(ステップ611)。
一方、ステップ610において、変数「仮入出力スレッド数」の値が入出力スレッド数上限情報401の値以上でないと判定された場合、入出力スレッド数として、変数「仮入出力スレッド数」の値にすることを決定する(ステップ612)。
以上で、入出力スレッド数決定処理が終了する。
図7は、本実施例の入出力スレッド生成および入出力処理実行部141で実行される、入出力スレッド動作プロセッサ決定処理(ステップ503)を示すフローチャートである。
入出力スレッド動作プロセッサ決定処理は、入出力スレッド指定情報133の入出力スレッドバインド指定情報403を参照し、「プロセッサ番号指定」を表す値が登録されているか否かを判定する(ステップ701)。
ステップ701において、「プロセッサ番号指定」を表す値が登録されていると判定された場合、入出力スレッド動作プロセッサ決定処理は、図6で示した入出力スレッド数決定処理で決定した「入出力スレッド数」分の入出力スレッドを生成、または、選択し、指定された各プロセッサにバインドする(ステップ702)。ここでいうバインドは、入出力スレッドと動作させるプロセッサを対応付け、対応付けられたプロセッサ上で入出力スレッドを実際に動作させることである。
なお、このとき、各プロセッサの指定方法については、特に図示しないが、システムパラメータや環境変数によるプロセッサ番号を羅列により行う。具体的には、プロセッサ番号順に順に割り当てる場合には「0、1、2、3、4、5、…」、三つおきに順に割り当てる場合には「0、4、8、…、1、5、9、…」のように行う。なお、プロセッサ番号をしていできれば指定方法はシステムパラメータや環境変数以外でもよい。
一方、ステップ701において、「プロセッサ番号指定」を表す値が登録されていないと判定された場合、入出力スレッド指定情報133の入出力スレッドバインド指定情報403を参照し、「全体均等」を表す値が登録されているか否かを判定する(ステップ703)。
ステップ703において、「全体均等」を表す値が登録されていると判定された場合、図8を参照して後述する、入出力スレッド動作プロセッサ決定処理(均等化処理)を実行する(ステップ704)。この均等化処理を実行する際、変数「仮入出力スレッド数」に「入出力スレッド数」をセット、変数「一時プロセッサ数」にシステム全体のプロセッサ数をセットして実行する。
一方、ステップ703において、「全体均等」を表す値が登録されていないと判定された場合、ステップ705で示す、デフォルト動作を実行する。このデフォルト動作は、この例では「全体均等」を表す値が登録されているときと同じ処理を実行する。ステップ705では、結果的にステップ704と同じ処理を実行するが、別の処理をデフォルト動作とする場合、ステップ705はその処理で置き換えてよい。
以上で、入出力スレッド動作プロセッサ決定処理が終了する。
図8は、図7で示した入出力スレッド動作プロセッサ決定処理で実行される、均等化処理(ステップ704)を示すフローチャートである。
まず、図7のステップ704で指定された、変数「仮入出力スレッド数」と変数「一時プロセッサ数」を得る(ステップ801)。
次に、変数「仮入出力スレッド数」の値が変数「一時プロセッサ数」より大きいか否かを判定する(ステップ802)。
ステップ802において、変数「仮入出力スレッド数」の値が変数「一時プロセッサ数」より大きいと判定された場合、「一時プロセッサ数」分の入出力スレッドを生成、または、選択し、各プロセッサにバインドする。また、「仮入出力スレッド数」から「一時プロセッサ数」を引いた数字を新たな「仮入出力スレッド数」とする(ステップ803)。
ステップ803を実行後、再びステップ802を実行する。
一方、ステップ802において、変数「仮入出力スレッド数」の値が変数「一時プロセッサ数」より小さいか、または、同じと判定された場合、「仮入出力スレッド数」分の入出力スレッドを生成、または、選択し、全プロセッサに対して、なるべく均等に分散するようにプロセッサを選択してバインドする(ステップ804)。
以上で、入出力スレッド動作プロセッサ決定処理(均等化処理)が終了する。
図9は、本実施例の入出力スレッド生成および入出力処理実行部141で実行される、入出力起動処理(ステップ504)を示すフローチャートである。
まず、変数「仮サブデータ数」にファイルのサブデータ数をセットする(ステップ901)。
次に、入出力処理を実行していない入出力スレッドに入出力対象のサブデータを指定し、起動し(ステップ902)、変数「仮サブデータ数」をデクリメントする(ステップ903)。
次に、変数「仮サブデータ数」は0より大きいか否かを判定する(ステップ904)。
ステップ904で、変数「仮サブデータ数」は0より大きいと判定された場合、まだ入出力を実行していないサブデータがあることを意味する。このため、入出力処理を実行していない入出力スレッドがなければ少なくとも一つの入出力スレッドの入出力が完了するのを待ち(ステップ905)、再度ステップ902を実行する。
ステップ904で、変数「仮サブデータ数」は0以下と判定された場合、まだ入出力を実行していないサブデータがないことを意味するため、入出力起動処理が終了する。
図10は、入出力起動処理で起動された入出力を完了するファイル入出力完了処理を示すフローチャートである。
まず、サブファイルの入出力完了を一つずつ待つ(ステップ1001)。次に全サブデータの入出力が完了したか否かを判定する(ステップ1002)。ステップ1002で、全サブデータの入出力が完了していないと判定した場合、再度ステップ1001を実行する。
一方、ステップ1002で全サブデータの入出力が完了したと判定した場合、ファイル入出力完了処理が終了する。
図11に示す処理は、ファイルシステムプログラム121内の論理ファイル作成部(図
示省略)によって実行される。
最初に、論理ファイル作成部は、ファイルシステム構成定義情報(図示省略)に基づいて、使用すべきサブデータを決定する(ステップ1101)。次に、論理ファイル作成部は、ホストコンピュータ101に接続されるLU上に、論理ファイル構成情報(図示省略)を作成する(ステップ1102)。論理ファイル構成情報は、論理ファイルの名称に基づいて一意に決定される。この論理ファイル構成情報は、論理ファイルの部分内容を保持するために、使用すべき各LU内に作成されるサブファイル(図示省略)を一意に決定する情報を含む。LU上の論理ファイル構成情報を読み出して、メモリ122に配置することにより、論理ファイル構成情報132が利用可能になる。
次に、論理ファイル作成部は、使用すべきLUに、論理ファイルの部分内容を保持するためのサブデータを作成する(ステップ1103)。
図12は、本実施例のファイルシステムプログラム121が実行する論理ファイル入出力処理を示すフローチャートである。図12に示す処理は、ファイルシステムプログラム121内の論理ファイル入出力部(図示省略)によって実行される。
最初に、論理ファイル入出力部は、ファイルシステム構成定義情報の内容によって決定されるサブデータの情報を取得する(ステップ1201)。
次に、論理ファイル入出力部は、取得したサブデータの情報に基づいて、サブデータに対する読み出し又は書き込みを実行する(ステップ1202)。
以上、本実施例によれば、複数のLU(ディスク装置)を接続したホストコンピュータにおいて、一つのファイルを複数のLUに分割格納するファイルシステムで、ディスク装置の数に応じて入出力性能を向上することができる。
以下、本発明の実施例2を、図面を参照して説明する。図13は、本実施例の計算機システムの構成を示すブロック図である。
本実施例と実施例1との主な相違点は、本実施例では、ホストコンピュータがNUMA(Non−Uniform Memory Access)構成となっていることである。なお、対象の符号の番号が実施例1と同じものは、実施例1と同様の内容である。NUMAは、複数プロセッサが共有するメインメモリおよび入出力装置へのアクセスコストが、メモリ領域とプロセッサの性能に依存して均一でないアーキテクチャである(特許文献4参照)。NUMA構成のホストコンピュータにおいては、実施例1では、ホストコンピュータ内の低スループットの経路を経由することにより、十分な入出力スループット性能を引き出すことができない場合がある。
実施例2では、サブデータを格納するLUの接続I/Fの位置を意識して、入出力スレッドをバインドするプロセッサを決定することでNUMA構成のホストコンピュータにおいて、入出力スループット性能を向上する。
本実施例の計算機システムは、ホストコンピュータ1301、ディスク装置102を備える。ホストコンピュータ1301は、ストレージネットワーク103を介して、ディスク装置102と接続される。
ホストコンピュータ1301は、内部的に複数のCPUボード1304とCPUボードを接続するCPUボード間ネットワーク1307からなる。
CPUボード1304は、相互に接続されたプロセッサ111、メモリ112、インターフェース(I/F)113、I/F113、CPUボード内ネットワーク1306、CPUボード間ネットワークI/F1305を備える。 CPUボード間ネットワークI/F1305は、CPUボード間ネットワーク1307を介して、他のCPUボードと通信するインターフェースである。
本実施例のメモリ112は、少なくとも、ファイルシステムプログラム121、及び、マルチスレッド入出力プログラム1322を格納する。マルチスレッド入出力プログラム1322は、ホストコンピュータ101に接続された複数のLUに対して、マルチスレッド入出力を行うプログラムである。マルチスレッド入出力プログラム1322は、入出力スレッド生成および入出力処理実行部1341、プロセッサ構成情報1331、論理ファイル構成情報132、入出力スレッド指定情報133、接続デバイス情報1334を含む。これらについては後で詳細に説明する。
ファイルシステムプログラム121は、オペレーティングシステム(OS)(図示省略)の一部として提供されるファイルシステムプログラムであってもよいし、ユーザアプリケーション(図示省略)によって使用される入出力ライブラリであってもよい。以下の説明は、ファイルシステムプログラム121が入出力ライブラリである場合にも適用することができる。マルチスレッド入出力プログラム1322は、図ではファイルシステムプログラム121と別に示しているが、ファイルシステムプログラム121の一部として提供されても良い。I/F113は、ストレージネットワーク103に接続され、ストレージネットワーク103を介してLU102と通信するインターフェースである。
LU102は、ホストコンピュータ101によって書き込まれたデータを格納する。
CPUボード間ネットワーク1307の性能は、CPUボード内ネットワーク1306性能と異なる。一般的には、 CPUボード間ネットワーク1307の性能は、CPUボード内ネットワーク1306性能のスループット性能は低い。
図14は、本実施例のプロセッサ構成情報1331の説明図である。プロセッサ構成情報1331は、ホストコンピュータのプロセッサ数を示すプロセッサ数情報1401、ホストコンピュータのメモリアーキテクチャを示すメモリアーキテクチャ情報1402、CPUボード数情報1403、CPUボード個別情報1404を含む。
CPUボード個別情報1404は、各CPUボードの個別情報を示す構造体へのポインタを用意している。CPUボードの個別情報は、CPUボードの識別情報1411とCPUボード内のプロセッサ数情報1412、CPUボード内の入出力パス情報1413を備える。
図15は、本実施例の接続デバイス情報1334の説明図である。接続デバイス情報1334は、CPUボードと、そのCPUボードが備えるI/F113、または、ストレージネットワーク103の接続位置から決まるネットワーク識別情報1501と、ネットワークに接続されているLU102の識別情報1502を管理する。
図16は、図14で図示省略しているが、本実施例のLU102の識別情報とサブデータの格納LUを対応付けるファイルシステム構成情報の説明図である。サブデータを格納するマウントポイントのディレクトリ名1601と、対応するLUの識別情報1602を格納する。
図17は、本実施例の入出力スレッド生成および入出力処理実行部1341で実行される、入出力スレッド動作プロセッサ決定処理(ステップ503)を示すフローチャートである。
入出力スレッド動作プロセッサ決定処理は、入出力スレッド指定情報133の入出力スレッドバインド指定情報403を参照し、「プロセッサ番号指定」を表す値が登録されているか否かを判定する(ステップ1701)。ステップ1701において、「プロセッサ番号指定」を表す値が登録されていると判定された場合、入出力スレッド動作プロセッサ決定処理は、図6で示した入出力スレッド数決定処理で決定した「入出力スレッド数」分の入出力スレッドを生成、または、選択し、指定された各プロセッサにバインドする(ステップ1702)。ここでいうバインドは、入出力スレッドと動作させるプロセッサを対応付け、対応付けられたプロセッサ上で入出力スレッドを実際に動作させることである。
なお、このとき、各プロセッサの指定方法については、特に図示しないが、システムパラメータや環境変数によるプロセッサ番号を羅列により行う。具体的には、プロセッサ番号順に順に割り当てる場合には「0、1、2、3、4、5、…」、三つおきに順に割り当てる場合には「0、4、8、…、1、5、9、…」のように行う。なお、プロセッサ番号をしていできれば指定方法はシステムパラメータや環境変数以外でもよい。
一方、ステップ1701において、「プロセッサ番号指定」を表す値が登録されていないと判定された場合、入出力スレッド指定情報133の入出力スレッドバインド指定情報403を参照し、「全体均等」を表す値が登録されているか否かを判定する(ステップ1703)。
ステップ1703において、「全体均等」を表す値が登録されていると判定された場合、図18を参照して後述する、入出力スレッド動作プロセッサ決定処理(均等化処理)を実行する。この均等化処理を実行する際、変数「仮入出力スレッド数」に「入出力スレッド数」をセット、変数「仮プロセッサ数」にシステム全体のプロセッサ数をセットして実行する(ステップ1704)。
一方、ステップ1703において、「全体均等」を表す値が登録されていると判定された場合、プロセッサ構成情報1331のメモリアーキテクチャ情報1402を参照し、「NUMA」を表す値が登録されているか否かを判定する(ステップ1705)。
ステップ1705において、「NUMA」を表す値が登録されていると判定された場合、図18を参照して後述する、入出力スレッド動作プロセッサ決定処理(NUMA処理)を実行する(ステップ1706)。
一方、ステップ1703において、「全体均等」を表す値が登録されていないと判定された場合、ステップ1707で示す、デフォルト動作を実行する。このデフォルト動作は、この例では「全体均等」を表す値が登録されているときと同じ処理を実行する。ステップ1707では、結果的にステップ1704と同じ処理を実行するが、別の処理をデフォルト動作とする場合、ステップ1707はその処理で置き換えてよい。以上で、入出力スレッド動作プロセッサ決定処理が終了する。
図18は、図17で示した入出力スレッド動作プロセッサ決定処理で実行される、NUMA処理(ステップ1706)を示すフローチャートである。
入出力スレッド動作プロセッサ決定処理(NUMA処理)は、入出力スレッド指定情報133の入出力スレッドバインド指定情報403を参照し、「IOアフィニティ」を表す値が登録されているか否かを判定する(ステップ1801)。ステップ1801において、「IOアフィニティ」を表す値が登録されていると判定された場合、論理ファイル構成情報132と、プロセッサ構成情報1331と、接続デバイス情報1334から、ホストコンピュータ内CPUボードごとに、CPUボードに接続されているLUに格納されているサブデータの数を集計する(ステップ1802)。
次に、プロセッサ構成情報1331からCPUボードごとのプロセッサ数を特定する(ステップ1803)。さらに、CPUボードごとに、入出力スレッド動作プロセッサ決定処理(均等化処理)を実行する(ステップ1804)。この均等化処理を実行する際、変数「仮入出力スレッド数」に「CPUボードごとのサブデータ数」と「入出力スレッド数」のうちの小さい数をセット、かつ、変数「一時プロセッサ数」にCPUボードのプロセッサ数をセットして実行する。
一方、ステップ1801で、「IOアフィニティ」を表す値が登録されていないと判定された場合、入出力スレッド動作プロセッサ決定処理(均等化処理)を実行する(ステップ1805)。この均等化処理を実行する際、変数「仮入出力スレッド数」に「入出力スレッド数」をセット、変数「一時プロセッサ数」にシステム全体のプロセッサ数をセットして実行する。
以上で、入出力スレッド動作プロセッサ決定処理(NUMA処理)が終了する。
本実施例によれば、NUMA構成のホストコンピュータにおいて、入出力処理を行うプロセッサと、入出力対象データを格納するディスク装置を選択することにより、一つのファイルを複数のLUに分割格納するファイルシステムで、ディスク装置の数に応じて入出力性能を向上することができる。
以下、本発明の実施例3を、図面を参照して説明する。図19は、本実施例の計算機システムの構成を示すブロック図である。本実施例は、実施例2の構成とほぼ同様となる。対象の番号が実施例2と同じものは、実施例2と同様の内容である。実施例2は、NUMA構成のホストコンピュータにおいて、入出力スループット性能を引き出すことが可能になる。しかし、複数のLUの総合入出力スループット性能が、NUMAの低スループットの経路のスループット性能に比べて高い場合は、やはり、十分な入出力スループット性能を引き出すことができない。
図22を参照して問題の概要を説明する。図22は本実施例の計算機システムの構成と、LUに格納されるサブデータ、および、各CPUボード内の任意のプロセッサに一つずつ入出力スレッドがバインドされることを模式的に表している。
一般に単一のユーザプログラム(図示省略)はいずれかのCPUボード内のいずれかのプロセッサで実行されている。ユーザプログラムからのメモリ割り当て要求はOSのメモリアフィニティ制御により、ユーザプログラムが実行されているプロセッサを備えるCPUボード内で確保される。この例ではCPUボード2内のメモリにバッファが確保されたことを示している。図22に示すとおり、各CPUボードに接続されたLUとの間で入出力される複数のサブデータは、CPUボード2に接続されているLUに格納されるサブデータ2を除き、CPUボード間の低スループットの経路を経由して入出力される。
このケースでは、複数のLUの総合入出力スループット性能が、NUMAの低スループットの経路のスループット性能に比べて高い場合は、複数のLUの総合入出力スループット性能が引き出せないことになる。すなわち、LUに接続されるCPUボード内のスループット性能がいくら高くても、CPUボード間の低スループットの経路を経由して、CPUボード2内のメモリとのアクセスが生じるため、ファイルの入出力要求に対するスループット性能が低下する。本実施例では、実施例2に加えて、サブデータを格納するメモリの位置を意識して入出力することで、NUMA構成のホストコンピュータにおいて、複数のLUの総合入出力スループット性能が、NUMAの低スループットの経路のスループット性能に比べて高い場合でも入出力スループット性能を引き出す。実施例2に対する主な相違点は、マルチスレッド入出力プログラム1922に、CPUボード毎メモリ割り当て処理実行部1942、および、メモリとサブデータ対応表1935を含む点である。これらについては後で詳細に説明する。
図20は、本実施例のCPUボード毎メモリ割り当て処理実行部1942で実行される、CPUボード毎メモリ割り当て処理実行部を示すフローチャートである。CPUボード毎メモリ割り当て処理実行部は、ファイル入出力の前段階として、データを入出力するためのメモリ確保要求を受け付ける(ステップ2001)。
この要求に対して、プロセッサ構成情報1331を参照して、CPUボードごとに、メモリ割り当てスレッドを生成、または、あらかじめ作成している中から選択する(ステップ2002)。
次に、ファイル構成情報、およびプロセッサ構成情報に基づき、CPUボードごとに割り当てるメモリ量を決定する(ステップ2003)。CPUボードごとに割り当てられるメモリ量は、サブデータを格納するLUが接続されているCPUボードに、該サブデータを格納するメモリを、該CPUボード内のメモリにとるようにする。このCPUボードを指定してのメモリ確保は、通常のNUMA構成のホストコンピュータで動作するOSのメモリアフィニティ機能を有効にした通常のメモリ割り当てで可能である。
最後に、各CPUボードで動作するメモリ割り当てスレッドが、ステップ2003で決定した量のメモリを割り当てる。このとき、確保したメモリとサブデータとを対応付け、メモリとサブデータ対応情報1935に登録して処理を終了する。
図21は、本実施例のメモリとサブデータ対応情報の説明図である。サブデータの名称などサブデータを識別する情報2101と、該サブデータ用に割り当てたメモリのアドレス2101を対応付けて格納する。上記のように割り当てたサブデータに対応するメモリに対して、入出力を起動する処理で、OSバッファを経由せず、ユーザバッファに、直接、入出力データを転送する(一般的なダイレクト入出力機能)ことにより、NUMAの低スループットの経路をサブデータの入出力で経由しない。
図23は本実施例の計算機システムの構成と、LUに格納されるサブデータ、および、各CPUボード内の任意のプロセッサに、一つずつメモリ割り当てスレッドと入出力スレッドがバインドされることを模式的に表している。図23に示すとおり、各CPUボードに接続されたLUとの間で入出力される複数のサブデータは、各サブデータが、該サブデータを格納するLUが接続されているCPUボード内のバッファとの間での転送が発生するだけであるため、CPUボード間の低スループットの経路を経由しない。このため、複数のLUの総合入出力スループット性能が、NUMAの低スループットの経路のスループット性能に比べて高い場合でも、複数のLUの総合入出力スループット性能が引き出すことが可能となる。
本実施例によれば、NUMA構成の単一ホストコンピュータにおいて、入出力処理を行うプロセッサと、入出力対象データを格納するディスク装置と、入出力対象データに対応するメモリ領域の割り当て位置を選択することにより、一つのファイルを複数のLUに分割格納するファイルシステムで、ディスク装置の数に応じて入出力性能を向上することができる。
101、1301 ホストコンピュータ
102 LU(ディスク装置)
103 ストレージネットワーク
111 プロセッサ
112、1312 メモリ
113 インターフェース(I/F)
121 ファイルシステムプログラム
122、1322 マルチスレッド入出力プログラム
1304 CPUボード
1305 CPUボード間ネットワークI/F
1306 CPUボード内ネットワーク
1307 CPUボード間ネットワーク

Claims (17)

  1. 計算機と、前記計算機にネットワークを介して接続される複数のストレージ装置と、を備える計算機システムであって、
    前記ストレージ装置は、前記計算機が利用する 一つのファイルのデータが分割された分割データを格納し、
    前記計算機は、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
    前記計算機は,
    前記計算機は、
    前記計算機のプロセッサの構成情報と,
    前記分割格納されるファイルの構成情報を保持し,
    ファイルに対する入出力要求に対して,前記複数のストレージ装置に対する入出力要求に分割し、
    所定の条件が満たされるか否かを判定し、
    判定結果に基づいて、前記分割された複数の入出力要求に所定数の複数の入出力スレッドを割り当て、
    前記プロセッサは、前記複数のストレージが保持する,前記ファイルの分割データに対して,前記割り当てられた複数の入出力スレッドを用いてそれぞれ入出力することを特徴とする計算機システム。
  2. 前記計算機は、前記計算機が備えるプロセッサ数であるか否かに基づいて、前記所定の条件が満たされるか否かを判定することを特徴とする請求項1に記載の計算機システム。
  3. 前記計算機は、前記一つのファイルデータの分割数であるか否かに基づいて、前記所定の条件が満たされるか否かを判定することを特徴とする請求項1に記載の計算機システム。
  4. 前記計算機は、所定の方法により,前記複数の入出力スレッドを,動作させるプロセッサを決定することを特徴とする請求項2および3に記載の計算機システム。
  5. 前記計算機は、前記所定の方法が,プロセッサ番号を指定されているか否かに基づいて,前記複数の入出力スレッドを動作させるプロセッサとして決定する請求項4に記載の計算機システム。
  6. 前記計算機は、前記所定の方法が,複数のプロセッサに分散するように指定されているか否かに基づいて,前記複数の入出力スレッドを動作させるプロセッサとして決定する請求項4に記載の計算機システム。
  7. 計算機と、前記計算機にネットワークを介して接続される複数のストレージと、を備える計算機システムであって、
    前記ストレージは、前記計算機が利用可能な一つのファイルのデータを、複数に分割し分割データとして格納し,
    前記計算機は、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリとを備える複数のプロセッサユニットと、
    前記プロセッサユニット間を接続するプロセッサユニット間ネットワークと,
    前記プロセッサユニット間ネットワークと,前記プロセッサユニットを接続するプロセッサユニット間インターフェースと,を備え,
    前記計算機のプロセッサの構成情報と,
    前記分割格納されるファイルの構成情報と
    前記各々のプロセッサユニットに接続するストレージの情報を保持し,
    ファイルに対する入出力要求を複数の入出力要求に分割する場合、所定の条件が満たされるか否かを判定し、
    判定結果、所定の条件が満たされる場合は、所定数の複数の入出力スレッド及びプロセッサユニットを前記分割された複数の入出力要求に割り当て,
    前記複数のストレージが保持する,前記単一ファイルの分割データに対して,前記複数の入出力スレッドを用いてそれぞれ入出力することを特徴とする計算機システム。
  8. 前記計算機は、前記計算機が備えるプロセッサ数であるか否かに基づいて、前記所定の条件が満たされるか否かを判定することを特徴とする請求項7に記載の計算機システム。
  9. 前記計算機は、前記一つのファイルデータの分割数であるか否かに基づいて、前記所定の条件が満たされるか否かを判定することを特徴とする請求項7に記載の計算機システム。
  10. 前記計算機は、前記計算機のメモリ構成が,前記計算機の備えるプロセッサからメモリへのアクセス経路が、プロセッサユニット間ネットワークを介するか否かに基づいて、前記所定の条件が満たされるか否かを判定することを特徴とする請求項7に記載の計算機システム。
  11. 前記計算機は、所定の方法により,前記複数の入出力スレッドを,動作させるプロセッサを決定することを特徴とする請求項8に記載の計算機システム。
  12. 前記計算機は、前記所定の方法が,前記プロセッサユニットの構成に基づいて,前記複数の入出力スレッドを動作させるプロセッサとして決定する請求項11に記載の計算機システム。
  13. 前記計算機は,
    前記単一のファイルのデータを格納するためのメモリの割り当て要求に対して,
    前記単一ファイルの分割データの分割数に応じた数のメモリ領域を割り当て,
    前記メモリ領域を,
    前記各分割データを格納するストレージが接続されるプロセッサユニットに割り当て, 前記各分割データと前記各割り当てたメモリ領域の対応情報を保持して,
    前記複数の入出力スレッドがそれぞれ入出力する場合に,
    前記分割データを対応するメモリ領域を使うことを特徴とする請求項7に記載の計算機システム。
  14. 前記計算機は、前記計算機のメモリ構成が,前記計算機の備えるプロセッサからメモリへのアクセス経路がプロセッサユニット間ネットワークを介するか否かに基づいて、前記所定の条件が満たされるか否かを判定することを特徴とする請求項13に記載の計算機システム。
  15. 計算機と、前記計算機にネットワークを介して接続される複数のストレージと、を備える計算機システムを制御する方法であって、
    前記ストレージは、計算機が利用可能なファイルのデータが、複数に分割された分割データいずれか一の分割データを格納し,
    前記計算機は、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、

    前記方法は、
    前記計算機のプロセッサの構成情報と,
    前記分割格納されるファイルの構成情報を保持し,
    ファイルに対する入出力要求を複数のストレージに入出力要求に分割する場合、所定の条件が満たされるか否かを判断し、
    前記判定した結果に基づいて、
    所定数の複数の入出力スレッドを一以上のプロセッサに割当てる第1手順と,
    前記複数のストレージが保持する,前記単一ファイルの分割データに対して,前記複数の入出力スレッドがそれぞれ入出力する第2手順と,を含むことを特徴とする方法。
  16. 計算機と、前記計算機にネットワークを介して接続される複数のストレージと、を備える計算機システムを制御する方法であって、
    前記計算機は、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
    前記計算機は,前記プロセッサと前記メモリと前記インターフェースとを有する複数のプロセッサユニットと複数のプロセッサユニットを接続するプロセッサユニット間ネットワークと,前記プロセッサユニット間ネットワークと,プロセッサユニットを接続するプロセッサユニット間インターフェースと,を備え,
    前記方法は,
    前記計算機のプロセッサの構成情報と,前記分割格納されるファイルの構成情報と
    前記各々のプロセッサユニットに接続するストレージの情報を保持し,
    一つのファイルのデータを、前記複数のストレージに分割して格納し,
    単一のファイルに対する単一の入出力要求に対して,
    一つのファイル入出力要求を前記複数のストレージに対する入出力要求に分割する場合、所定の条件が満たされるか否かを判定し、前記判定結果所定の条件が満たされている場合は、所定数の複数の入出力スレッドを生成,または,選択する第1手順と,
    前記複数のストレージが保持する,前記単一ファイルの分割データに対して,前記複数の入出力スレッドがそれぞれ入出力する弟2手順と,を含むことを特徴とする計算機システム。
  17. 前記方法は,
    前記単一のファイルのデータを格納するためのメモリの割り当て要求に対して,
    前記単一ファイルの分割データの分割数に応じた数のメモリ領域を割り当て,
    前記メモリ領域を,
    前記各分割データを格納するストレージが接続されるプロセッサユニットに割り当て, 前記各分割データと前記各割り当てたメモリ領域の対応情報を保持して,
    前記複数の入出力スレッドがそれぞれ入出力する場合に,
    前記分割データを対応するメモリ領域を使う弟3手順と,を含むことを特徴とする請求項16に記載の計算機システム。
JP2009029300A 2009-02-12 2009-02-12 ファイル入出力方法 Expired - Fee Related JP5241550B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009029300A JP5241550B2 (ja) 2009-02-12 2009-02-12 ファイル入出力方法
US12/538,546 US20100205329A1 (en) 2009-02-12 2009-08-10 File input/output method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009029300A JP5241550B2 (ja) 2009-02-12 2009-02-12 ファイル入出力方法

Publications (2)

Publication Number Publication Date
JP2010186284A true JP2010186284A (ja) 2010-08-26
JP5241550B2 JP5241550B2 (ja) 2013-07-17

Family

ID=42541301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009029300A Expired - Fee Related JP5241550B2 (ja) 2009-02-12 2009-02-12 ファイル入出力方法

Country Status (2)

Country Link
US (1) US20100205329A1 (ja)
JP (1) JP5241550B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843677B2 (en) 2012-06-27 2014-09-23 International Business Machines Corporation Optimizing an operating system I/O operation that pertains to a specific program and file

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102312632B1 (ko) * 2014-06-11 2021-10-15 삼성전자주식회사 전자 장치 및 전자 장치의 파일 저장 방법

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03171249A (ja) * 1989-11-30 1991-07-24 Nec Corp プロセッサ数制限方式
JPH05204875A (ja) * 1992-01-27 1993-08-13 Mitsubishi Electric Corp スレッドのスケジュール方式
JPH07248949A (ja) * 1994-03-10 1995-09-26 Hitachi Ltd 入出力実行方法
JP2004139379A (ja) * 2002-10-18 2004-05-13 Jmnet Inc ネットワーク型記憶装置及びその制御装置
JP2004265110A (ja) * 2003-02-28 2004-09-24 Hitachi Ltd メタデータ配置方法、プログラムおよびディスク装置
JP2004295692A (ja) * 2003-03-27 2004-10-21 Sanyo Electric Co Ltd データ入出力方法、およびその方法を利用可能な記憶装置およびホスト装置
JP2005293594A (ja) * 2004-04-02 2005-10-20 Seagate Technology Llc 管理された信頼性記憶システムと方法
JP2006024180A (ja) * 2004-06-10 2006-01-26 Hitachi Ltd 計算機システム及びその資源割当て方法
JP2007122167A (ja) * 2005-10-25 2007-05-17 Fujitsu Ltd データ転送プログラム、データ転送方法およびデータ転送装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2008A (en) * 1841-03-18 Gas-lamp eok conducting gas pkom ah elevated buhner to one below it
US2004A (en) * 1841-03-12 Improvement in the manner of constructing and propelling steam-vessels
US6219693B1 (en) * 1997-11-04 2001-04-17 Adaptec, Inc. File array storage architecture having file system distributed across a data processing platform
US6295571B1 (en) * 1999-03-19 2001-09-25 Times N Systems, Inc. Shared memory apparatus and method for multiprocessor systems
EP1317711A1 (en) * 2000-08-11 2003-06-11 3Ware, Inc. Architecture for providing block-level storage access over a computer network
US20040158663A1 (en) * 2000-12-21 2004-08-12 Nir Peleg Interconnect topology for a scalable distributed computer system
JP4606142B2 (ja) * 2004-12-01 2011-01-05 株式会社ソニー・コンピュータエンタテインメント スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム
US7870317B2 (en) * 2005-04-29 2011-01-11 Network Appliance, Inc. Storage processor for handling disparate requests to transmit in a storage appliance
US7761687B2 (en) * 2007-06-26 2010-07-20 International Business Machines Corporation Ultrascalable petaflop parallel supercomputer
US7836226B2 (en) * 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03171249A (ja) * 1989-11-30 1991-07-24 Nec Corp プロセッサ数制限方式
JPH05204875A (ja) * 1992-01-27 1993-08-13 Mitsubishi Electric Corp スレッドのスケジュール方式
JPH07248949A (ja) * 1994-03-10 1995-09-26 Hitachi Ltd 入出力実行方法
JP2004139379A (ja) * 2002-10-18 2004-05-13 Jmnet Inc ネットワーク型記憶装置及びその制御装置
JP2004265110A (ja) * 2003-02-28 2004-09-24 Hitachi Ltd メタデータ配置方法、プログラムおよびディスク装置
JP2004295692A (ja) * 2003-03-27 2004-10-21 Sanyo Electric Co Ltd データ入出力方法、およびその方法を利用可能な記憶装置およびホスト装置
JP2005293594A (ja) * 2004-04-02 2005-10-20 Seagate Technology Llc 管理された信頼性記憶システムと方法
JP2006024180A (ja) * 2004-06-10 2006-01-26 Hitachi Ltd 計算機システム及びその資源割当て方法
JP2007122167A (ja) * 2005-10-25 2007-05-17 Fujitsu Ltd データ転送プログラム、データ転送方法およびデータ転送装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843677B2 (en) 2012-06-27 2014-09-23 International Business Machines Corporation Optimizing an operating system I/O operation that pertains to a specific program and file
US8843676B2 (en) 2012-06-27 2014-09-23 International Business Machines Corporation Optimizing an operating system I/O operation that pertains to a specific program and file

Also Published As

Publication number Publication date
US20100205329A1 (en) 2010-08-12
JP5241550B2 (ja) 2013-07-17

Similar Documents

Publication Publication Date Title
US8135921B2 (en) Automated paging device management in a shared memory partition data processing system
JP6231207B2 (ja) リソースの負荷バランシング
JP4235220B2 (ja) 計算機システムおよびデータ移行方法
US9229656B1 (en) Managing settings and queries in host-based data migration
JP4884198B2 (ja) ストレージネットワークの性能管理方法、並びに、その方法を用いた計算機システム及び管理計算機
JP4921054B2 (ja) 負荷分散制御システム及び負荷分散制御方法
US9256382B2 (en) Interface for management of data movement in a thin provisioned storage system
JP4464378B2 (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
KR20200017363A (ko) 호스트 스토리지 서비스들을 제공하기 위한 NVMe 프로토콜에 근거하는 하나 이상의 호스트들과 솔리드 스테이트 드라이브(SSD)들 간의 관리되는 스위칭
US20080294698A1 (en) Foresight data transfer type hierachical storage system
JP5416860B2 (ja) 計算機システムおよびその制御方法
WO2014108933A1 (en) Resource management system and resource management method of a computer system
Costa et al. The case for workflow-aware storage: An opportunity study
JP2009053921A (ja) ストレージシステム、計算機及び計算機システム
US10826848B2 (en) Balanced, opportunistic multicore I/O scheduling from non-SMP applications
US10817205B2 (en) Computer system and storage device
WO2018158808A1 (ja) 情報システム、管理プログラム及び情報システムのプログラム交換方法
JP2009512948A (ja) ストレージサーバにおけるスループットを増加させる方法および装置
JP2008102672A (ja) 計算機システム、管理計算機、操作制御情報の設定方法
JP2007233834A (ja) I/oコマンドをキューイングするストレージシステム及びその制御方法
JP5241550B2 (ja) ファイル入出力方法
US20150277765A1 (en) Storage subsystem and method for controlling the storage subsystem
JP2012079245A (ja) 仮想計算機のボリューム割当て方法およびその方法を用いた計算機システム
Zou et al. DirectNVM: Hardware-accelerated NVMe SSDs for high-performance embedded computing
Chang et al. The performance analysis of cache architecture based on Alluxio over virtualized infrastructure

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121023

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121220

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130402

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5241550

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees