JP5695126B2 - 計算機システム、サーバモジュール及びストレージモジュール - Google Patents

計算機システム、サーバモジュール及びストレージモジュール Download PDF

Info

Publication number
JP5695126B2
JP5695126B2 JP2013101842A JP2013101842A JP5695126B2 JP 5695126 B2 JP5695126 B2 JP 5695126B2 JP 2013101842 A JP2013101842 A JP 2013101842A JP 2013101842 A JP2013101842 A JP 2013101842A JP 5695126 B2 JP5695126 B2 JP 5695126B2
Authority
JP
Japan
Prior art keywords
data
memory
module
transfer
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.)
Expired - Fee Related
Application number
JP2013101842A
Other languages
English (en)
Other versions
JP2014222426A (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
Priority to JP2013101842A priority Critical patent/JP5695126B2/ja
Priority to US14/045,631 priority patent/US8868865B1/en
Priority to EP14163093.9A priority patent/EP2804109B1/en
Priority to US14/453,729 priority patent/US8959302B2/en
Publication of JP2014222426A publication Critical patent/JP2014222426A/ja
Priority to US14/596,577 priority patent/US9189418B2/en
Application granted granted Critical
Publication of JP5695126B2 publication Critical patent/JP5695126B2/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
    • 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/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • 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]

Description

本発明は、サーバモジュールとストレージモジュールとの間の高速なデータ転送を実現するシステム、サーバモジュール及びストレージモジュールに関する。
サーバ及び当該サーバがアクセスするストレージ装置を接続する計算機システムとしては、以下のようなシステムが知られている。
一つの計算機システムとしては、SAN等のネットワークを介してサーバ及びストレージが接続された計算機システムが知られている(例えば、特許文献1参照)。
特許文献1には、「アプリケーションをローカルに実行するための少なくとも一つのアプリケーション・サーバ、およびI/O伝送のため該少なくとも一つのアプリケーション・サーバと通信している、一つ以上のストレージ・サーバを包含可能なストレージ・アプライアンス・システム」が記載されている。
前述した計算機システムは、大規模な計算機システムに用いられる利用形態である。当該計算機システムは、システム構成の柔軟性が高いという利点があるが、SAN等のネットワークを構成する装置のコスト、及び運用コストが高いという問題がある。
また、他の計算機システムとしては、複数のサーバのそれぞれがディスクインタフェースを用いて接続される計算機システムが知られている(例えば、特許文献2参照)。
特許文献2には、「複数のサーバモジュールと1以上のストレージモジュール及び装置全体を管理する管理モジュールをスロットに搭載し、それら相互の信号伝達を可能とするバックプレーンによってブレードサーバ装置を構成し、サーバモジュールとストレージモジュールを互いにバックプレーンを介してディスクインターフェースで接続する。それぞれのサーバモジュール及びストレージモジュールはモジュール内の電源を制御するモジュール管理部を備え、モジュール管理部は管理モジュールから送信される電源制御信号に従ってサーバモジュール及びストレージモジュールの電源を制御する」システムが記載されている。
前述した計算機システムは、小規模な計算機システムに用いられる利用形態である。当該計算機システムは、サーバの高密度化が可能であるが、システムの柔軟性が低いという問題がある。
近年、一つの筐体内にサーバ及びストレージ装置を有する計算機システムの利用が増加している。当該計算機システムは、コストを抑えつつ、柔軟性なシステム及び高性能のシステムを実現する。同一筐体内のサーバ及びストレージ装置は、バックプレーンを介して互いに接続される。
特開2012−118973号公報 特開2006−309477号公報
サーバ及びストレージ装置はバックプレーンを介して接続されるため、高速な通信が可能となる。しかし、サーバ及びストレージ装置が扱うコマンドの形式は異なり、また、データの形式も異なる。そのため、サーバ及びストレージ装置は、それぞれ、コマンドの形式及びデータの形式の変換処理等を行う必要がある。
したがって、サーバ及びストレージ装置において、前述した処理によってオーバヘッドが発生するため、高速なデータ転送を実現すること、すなわち、性能限界値までスループットを向上させることが難しい。
また、従来技術では、サーバのメモリとストレージ装置のメモリとの間の高速なデータ転送を実現するモジュールは提供されていない。
本発明は、前述した課題に鑑みてなされた発明である。すなわち、サーバ及びストレージ装置における高速なデータ転送の実現を目的とする。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、サーバモジュール、ストレージモジュール及び転送モジュールを備える計算機システムであって、前記サーバモジュールは、第1のプロセッサ、第1のメモリ、他の装置と接続するための第1のインタフェース、並びに、前記第1のプロセッサ、前記第1のメモリ及び前記第1のインタフェースを接続する第1の接続線を有し、前記ストレージモジュールは、第2のプロセッサ及び第2のメモリを含むコントローラ、記憶装置、他の装置と接続するための第2のインタフェース、並びに、前記コントローラ、前記記憶装置及び前記第2のインタフェースを接続する第2の接続線を有し、前記転送モジュールは、前記第1の接続線及び前記第2の接続線と接続され、前記サーバモジュールは、前記第1のメモリに転送対象のデータを格納し、又は前記第1のメモリから前記転送対象のデータを読み出す場合に用いられるアドレス及びアドレス長を含む第1の転送リストを生成し、前記第1のメモリと前記第2のメモリとの間のI/O要求を前記転送モジュールに送信し、前記ストレージモジュールは、前記転送モジュールから前記I/O要求を受信し、前記第2のメモリに前記転送対象のデータを格納し、又は前記第2のメモリから前記転送対象のデータを読み出す場合に用いられるアドレス及びアドレス長を含む第2の転送リストを生成し、前記転送モジュールにデータ転送要求を送信し、前記転送モジュールは、前記ストレージモジュールから前記データ転送要求を受信した場合、前記第1の転送リスト及び前記第2の転送リストを参照して、前記第1のメモリ又は前記第2のメモリから前記転送対象のデータを取得し、前記第1の転送リスト及び前記第2の転送リストを参照して、取得された前記転送対象のデータを前記第1のメモリ又は前記第2のメモリに転送することを特徴とする。
本発明によれば、サーバモジュールのプロセッサ及びストレージモジュールのプロセッサを介することなく高速なデータ転送を実行する転送モジュールを提供することができる。
上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
本発明の実施例1の計算機システムの構成例を示すブロック図である。 本発明の実施例1のサーバモジュールのソフトウェア構成を説明するブロック図である。 本発明の実施例1のストレージモジュールのソフトウェア構成を説明するブロック図である。 本発明の実施例1の転送モジュールの構成例を説明するブロック図である。 本発明の実施例1におけるデータ転送処理の一例を説明するシーケンス図である。 本発明の実施例1におけるデータ転送処理の一例を説明するシーケンス図である。 本発明の実施例2の計算機システムの構成例を示すブロック図である。 本発明の実施例3の計算機システムの構成例を示すブロック図である。
以下、本発明の実施形態について図面を参照して詳細に説明する。
図1は、本発明の実施例1の計算機システムの構成例を示すブロック図である。
実施例1の計算機システムは、サーバ装置100、サーバモジュール200、及びストレージモジュール300から構成される。
サーバ装置100は、複数のサーバモジュール200、一つのストレージモジュール300、バックプレーン400を備える。図1に示す例では、サーバ装置100は、サーバモジュール200−1、サーバモジュール200−2、及びストレージモジュール300−1を備える。
サーバモジュール200は、所定の業務を実行する計算機である。ストレージモジュール300は、サーバモジュール200が利用するデータを格納する計算機である。本実施例では、ストレージモジュール300は、各サーバモジュール200にLU(Logical Unit)を提供する。
サーバモジュール200は、プロセッサ210、メモリ220、転送モジュール230、HBA240、NIC250、及びI/F260を有する。サーバモジュール200が有する各構成は、I/Oバスを介して互いに接続される。I/Oバスには、PCIバス、PCIeバス、及びシステムバス等が含まれる。なお、本発明は、各構成を接続するI/Oバスの種別に限定されない。
プロセッサ210は、メモリ220に格納されるプログラムを実行する。プロセッサ210がメモリ220に格納されるプログラムを実行することによって、サーバモジュール200が有する機能を実現できる。
メモリ220は、プロセッサ210によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。メモリ220に格納されるプログラム及び情報については、図2を用いて後述する。
なお、メモリ220に格納されるプログラム及び情報は、ストレージモジュール300によって提供されるLU等に格納されてもよい。この場合、プロセッサ210が、LU等のプログラムが格納される記憶領域からプログラム及び情報を取得し、取得されたプログラム及び情報をメモリ220にロードする。
転送モジュール230は、サーバモジュール200とストレージモジュール300との間のデータ転送を制御する。転送モジュール230の詳細な構成については、図4を用いて後述する。
HBA240は、SAN(Storage Area Network)等のネットワークを介して外部の装置と接続するためのインタフェースである。NIC250は、LAN(Local Area Network)等のネットワークを介して外部の装置と接続するためのインタフェースである。I/F260は、バックプレーン400と接続するためのコネクタである。
なお、転送モジュール230の搭載方法としては、サーバモジュール200の基板上のチップ(LSI)として搭載する方法、又は、HBA、NIC等のアダプタに搭載する方法が考えられる。ただし、本発明は、転送モジュール230の搭載方法に限定されない。
ストレージモジュール300は、ディスクコントローラ310、TBA(Target Bus Adapter)350、I/F360、及び記憶装置370を有する。ストレージモジュール300が有する各構成は、I/Oバスを介して互いに接続される。I/Oバスには、PCIバス、PCIeバス、SAS(Serial Attached SCSI)インターフェース、及びシステムバス等が含まれる。なお、本発明は、各構成を接続するI/Oバスの種別に限定されない。
ディスクコントローラ310は、記憶領域の管理、及びサーバモジュール200と記憶領域との対応関係等を制御する。ディスクコントローラ310は、プロセッサ320及びメモリ330を有する。
本実施例では、ストレージモジュール300は、ディスクコントローラ310−1、及びディスクコントローラ310−2の二つのディスクコントローラを有する。これは、ディスクコントローラを冗長化することによって、耐障害性を向上させるためである。
ディスクコントローラ310−1はI/F360−1と接続され、ディスクコントローラ310−2はI/F360−2と接続される。また、ディスクコントローラ310−1、310−2は、それぞれ、TBA350及び記憶装置370に接続される。
プロセッサ320は、メモリ330に格納されるプログラムを実行する。プロセッサ320がメモリ330に格納されるプログラムを実行することによって、ストレージモジュール300が有する機能を実現できる。
メモリ330は、プロセッサ320によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。メモリ330に格納されるプログラム及び情報については、図3を用いて後述する。
なお、メモリ330に格納されるプログラム及び情報は、記憶装置370等に格納されてもよい。この場合、プロセッサ320が、記憶装置370等からプログラム及び情報を取得し、取得されたプログラム及び情報をメモリ330にロードする。
TBA350は、SAN等のネットワークを介して外部の装置と接続するためのインタフェースである。I/F360は、バックプレーン400と接続するためのコネクタである。
記憶装置370は、データを格納するための装置であり、例えば、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等が考えられる。
本実施例では、ストレージモジュール300は、複数の記憶装置を用いてRAIDを構成し、RAIDボリュームからLUを生成し、さらに、サーバモジュール200にLUを提供する。なお、LUには、OS221(図2参照)及びアプリケーション223(図2参照)等のプログラム及びプログラムの実行に必要な情報が格納される。
バックプレーン400は、サーバモジュール200及びストレージモジュール300を接続する。バックプレーン400は、サーバモジュール200及びストレージモジュール300を接続するためのI/F410を複数有する。また、バックプレーン400は、各I/F410を接続するI/Oバスを有する。
ここで、計算機システムにおける接続関係について説明する。
サーバ装置100のサーバモジュール200-1とバックプレーン400との間は二つの接続線を介して接続される。サーバモジュール200-1は、当該二つの接続線を介して、ストレージモジュール300のI/F360−1及びI/F360−2にそれぞれ接続される。
ストレージモジュール300の各I/F360は、異なるディスクコントローラ310と接続されるように構成されており、I/F360−1はディスクコントローラ310−1と接続され、I/F360−2はディスクコントローラ310−2と接続される。したがって、サーバモジュール200-1は、二つのディスクコントローラ310−1、310−2と一対一に接続される。
本実施例では、二つのディスクコントローラ310−1、310−2は、いずれもアクティブな状態となっている。そのため、二つのディスクコントローラ310−1、310−2のそれぞれがI/O処理を実行することによって処理性能を向上させている。また、ディスクコントローラ310−1に障害が発生した場合であっても、ディスクコントローラ310−2がI/O処理を継続することができる。これによって、業務を継続できる。
サーバ装置100内のサーバモジュール200−1、200−2は、LAN600を介して、外部のサーバモジュール200-3と接続され、また、SAN500を介して外部のストレージモジュール300−2と接続される。
サーバ装置100内のストレージモジュール300は、SAN500を介して外部のサーバモジュールと接続される。
図2は、本発明の実施例1のサーバモジュール200のソフトウェア構成を説明するブロック図である。
メモリ220は、OS221及びアプリケーション223を実現するためのプログラムを格納する。また、メモリ220は転送リスト224を格納する。
OS221は、サーバモジュール200を管理する。OS221は、サーバモジュール200とストレージモジュール300との間のアクセスを制御するストレージアクセス部222を有する。ストレージアクセス部222は、例えば、転送モジュール230を操作するデバイスドライバを用いて実現する方法が考えられる。
なお、OS221は、図示しないファイルシステム等の機能を有しているが、公知のものであるため省略している。
アプリケーション223は、所定の業務を実行する。本発明はアプリケーションの種別に限定されない。
転送リスト224は、プロセッサ210を介することなく、サーバモジュール200のメモリ220と、ストレージモジュールのメモリ330との間のデータ転送に用いられる情報である。本実施例では、転送リスト224として、DMA転送に用いられるSGL(Scatter Gather List)を用いるものとする。
SGLは、アドレス及びアドレス長を含む。アドレスは、対象となるデータが格納されるメモリ220上の記憶領域の先頭アドレスである。アドレス長は、メモリ220条の記憶領域に対応するアドレスの範囲を示す値である。
なお、転送リスト224は、データ転送時に一時的に保持される情報である。
図3は、本発明の実施例1のストレージモジュール300のソフトウェア構成を説明するブロック図である。
図3では、ディスクコントローラ310−1が有するメモリ330を例に説明する。なお、ディスクコントローラ310−2が有するメモリ330も同一のソフトウェア構成である。
メモリ330は、ストレージ制御部331を実現するプログラムを格納する。また、メモリ330は転送リスト334を格納する。
ストレージ制御部331は、サーバモジュール200とストレージモジュール300との間のI/O処理を制御する。ストレージ制御部331は、I/O処理部332、及び記憶装置制御部333を有する。
I/O処理部332は、サーバモジュール200からI/O要求を受信し、当該I/O要求に基づいて、書込処理及び読出処理を制御する。記憶装置制御部333は、記憶装置370に対する書込処理及び読出処理を制御する。
なお、I/O処理部332は、例えば、転送モジュール230を操作するデバイスドライバを用いて実現することが考えられる。また、記憶装置制御部333は、記憶装置370を操作するデバイスドライバを用いて実現することが考えられる。
転送リスト334は、プロセッサ320を介することなく、サーバモジュール200のメモリ220と、ストレージモジュールのメモリ330との間のデータ転送に用いられる情報である。本実施例では、転送リスト334として、DMA転送に用いられるSGLを用いるものとする。
なお、転送リスト224は、データ転送時に一時的に保持される情報である。
図4は、本発明の実施例1の転送モジュール230の構成例を説明するブロック図である。
転送モジュール230は、データ転送部231、プロトコルエンジン234、ブリッジ235、及び複数の接続ポート236を備える。
データ転送部231は、サーバモジュール200のメモリ220とストレージモジュール300のメモリ330との間のデータ転送を制御する。本実施例のデータ転送部231は、DMAコントローラ232、及びデータ検査部233を含む。
DMAコントローラ232は、サーバモジュール200のメモリ220とストレージモジュール300のメモリ330との間のDMA転送を制御する。データ検査部233は、データ保証コードの付加及び削除を行う。また、データ検査部233は、保証コードに基づいて、データの整合性を確認する。なお、データ保証コードは、DIF(Data Integrity Field)を用いることが考えられる。
一般的な計算機システムでは、サーバモモジュールは512バイト単位のデータを扱い、また、ストレージモジュールは、当該データにデータ保証コードを付与した520バイト単位のデータを扱う。本実施例のサーバモジュール200及びストレージモジュール300が扱うデータは、一般的な計算機システムと同様のものとする。
プロトコルエンジン234は、サーバモジュール200が使用するコマンド及びストレージモジュール300が使用するコマンドを変換する。
ブリッジ235は、接続ポートを介して接続されるデバイス間の通信を制御する。例えば、ブリッジ235は、レーン数が異なる信号間を変換する。ブリッジ235は、前述したDMA転送が不要な場合に用いられる。
接続ポート236は、他のデバイスに接続するためのポートである。本実施例では、接続ポート236−1は、プロセッサ210と接続され、接続ポート236−2、236−3は、I/F260と接続される。例えば、デバイス間を接続するI/OバスがPCIeバスである場合、接続ポート236としてPCIeポートが用いられる。
図5及び図6は、本発明の実施例1におけるデータ転送処理の一例を説明するシーケンス図である。
図5は、サーバモジュール200がストレージモジュール300からデータを読み出す場合に実行される読出処理の流れを示す。図6は、サーバモジュール200がストレージモジュール300に対してデータを書き込む場合に実行される書込処理の流れを示す。以下の説明では、ストレージモジュール300のディスクコントローラ310−1に対するI/O要求が発行された場合を例に説明する。
まず、データ読出処理について説明する。
OS221は、アプリケーション223からストレージモジュール300に格納されるデータの読出要求を受け付けた場合、ストレージアクセス部222を呼び出す。
ストレージアクセス部222は、読出対象のデータを一時的に格納するためのバッファをメモリ220に設定する(ステップS101)。また、ストレージアクセス部222は、転送リスト224を生成し、生成された転送リスト224をメモリ220に書き込む(ステップS102)。転送リスト224には、ストレージモジュール300から読み出されたデータをバッファに格納するためのアドレス、及びアドレス長等が含まれる。
さらに、ストレージアクセス部222は、ディスクコントローラ310−1のストレージ制御部331に対して読出要求を送信する(ステップS103)。当該読出要求は、サーバモジュール200において使用されるコマンドである。したがって、ストレージモジュール300において使用されるコマンドとは異なる形式のコマンドである。すなわち、サーバモジュール200及びストレージモジュール300が扱うプロトコルが異なる。
以下の説明では、サーバモジュール200が使用するコマンドをサーバコマンドと記載し、ストレージモジュール300が使用するコマンドをストレージコマンドと記載する。
転送モジュール230は、ストレージアクセス部222から読出要求(サーバコマンド)を受信すると、当該読出要求をストレージコマンドに変換し、変換された読出要求(ストレージコマンド)をストレージ制御部331に送信する(ステップS104)。具体的には、以下のような処理が実行される。
データ転送部231は、受信した読出要求(サーバコマンド)を解析する。データ転送部231は、受信した読出要求(サーバコマンド)がストレージモジュール300に送信されるサーバコマンドであるため、プロトコルエンジン234にコマンドの変換を指示する。
プロトコルエンジン234は、受信した読出要求(サーバコマンド)をサーバコマンドからストレージコマンドに変換し、変換された読出要求(ストレージコマンド)をデータ転送部231に出力する。
データ転送部231は、入力された読出要求(ストレージコマンド)をストレージモジュール300のストレージ制御部331に送信する。
以上がステップS104の処理の説明である。
ストレージ制御部331は、読出要求(ストレージコマンド)を受信すると、読出対象のデータを記憶装置370から読み出し、読み出されたデータをメモリ330にコピーする(ステップS105)。具体的には、以下のような処理が実行される。
I/O処理部332は、読出要求(ストレージコマンド)に基づいて、記憶装置370に対する読出要求を発行し、記憶装置制御部333を呼び出す。
呼び出された記憶装置制御部333は、発行された読出要求に基づいて、記憶装置370から所定のデータを読み出し、当該データをI/O処理部332に出力する。
I/O処理部332は、入力されたデータをメモリ330にコピーする。
本実施例では、読出要求(ストレージコマンド)は転送モジュールによって予めストレージコマンドに変換されているため、I/O処理部332は、コマンドの変換処理を実行する必要がない。
以上が、ステップS105の処理の説明である。
ストレージ制御部331は、転送リスト334を生成し、生成された転送リスト334をメモリ330に書き込む(ステップS106)。転送リスト334には、メモリ330にコピーされたデータを読み出すためのアドレス、及びアドレス帳等が含まれる。
次に、ストレージ制御部331は、転送モジュール230に、DMA転送要求を送信する(ステップS107)。
転送モジュール230は、DMA転送要求を受信すると、サーバモジュール200のメモリ220から転送リスト224を読み出し(ステップS108)、また、ストレージモジュール300のメモリ330から転送リスト334を読み出す(ステップS109)。
具体的には、データ転送部231のDMAコントローラ232が、サーバモジュール200のメモリ220に格納される転送リスト224にアクセスするためのアドレスを取得し、また、ストレージモジュール300のメモリ330に格納される転送リスト334にアクセスするためのアドレスを取得する。なお、DMAコントローラ232は、転送リスト224、334そのものを取得してもよい。DMAコントローラ232は、取得されたアドレス又は転送リスト224、334を一時的に保持する。
以下の説明では、サーバモジュール200のメモリ220に格納される転送リスト224にアクセスするためのアドレスを第1アドレスと記載し、ストレージモジュール300のメモリ330に格納される転送リスト334にアクセスするためのアドレスを第2アドレスとも記載する。
転送モジュール230は、ストレージモジュール300のメモリ330に格納される転送リスト334を参照し、当該メモリ330にコピーされたデータを読み出す(ステップS110)。
具体的には、データ転送部231のDMAコントローラ232が、第2アドレスに基づいて、ストレージモジュールのメモリ330に格納される転送リスト334を参照し、当該メモリ330にコピーされたデータを読み出す。なお、DMAコントローラ232は、所定のデータ単位毎にデータを読み出すものとする。例えば、520バイト単位のデータが読み出される。
次に、転送モジュール230は、読み出されたデータをサーバモジュール200のメモリ220に書き込む(ステップS111)。具体的には、以下のような処理が実行される。
データ転送部231のデータ検査部233は、読み出されたデータをサーバモジュール200側のデータの形式に変換する。例えば、データ検査部233は、読み出されたデータに付与されるデータ保証コードを削除する。これによって、サーバモジュール200が扱う512バイトのデータに変換される。
データ転送部231は、第1アドレスに基づいてサーバモジュール200のメモリ220に格納される転送リスト224を参照し、また、第2アドレスに基づいてストレージモジュール300のメモリ330に格納される転送リスト334を参照する。
データ転送部231は、転送リスト224、334に基づいて、変換されたデータを書き込むメモリ220の記憶領域を特定する。さらに、データ転送部231のDMAコントローラ232は、特定されたメモリ220の記憶領域に、変換されたデータを書き込む。
例えば、データ転送部231は、アライメントを調整して、メモリ220の記憶領域を特定する。これは、サーバモジュール200が扱うデータとストレージモジュール300が扱うデータのアドレス長が異なるため、各メモリ220、330に格納する記憶領域のアドレスを調整する必要があるためである。
データ転送部231は、読出対象のデータが全て読み出されるまで前述した処理を繰り返し実行する。
なお、データ転送部231は、データ保証コードに基づいて、読み出されたデータの整合性を確認してもよい。読み出されたデータに誤りが検出された場合、データ転送部231は、再度ストレージモジュール300のメモリ330からデータを読み出してもよいし、ストレージ制御部331にデータの誤りが検出されたことを通知してもよい。
以上が、ステップS111の処理の説明である。
次に、転送モジュール230は、読出対象のデータを全てメモリ220に書き込んだ後、ストレージ制御部331にDMA転送の完了通知を送信する(ステップS112)。
ストレージ制御部331は、DMA転送の完了通知を受信した後、OS221に対して完了通知(ストレージコマンド)を送信する(ステップS113)。
転送モジュール230は、完了通知(ストレージコマンド)を受信した後、当該完了通知(ストレージコマンド)をストレージコマンドからサーバコマンドに変換し、変換された完了通知(サーバコマンド)をOS221に送信する(ステップS114)。なお、コマンドの変換処理は、ステップS104と同一の処理であるため説明を省略する。
なお、ステップS108及びステップS109において、転送リスト224、334そのものが読み出された場合、転送モジュール230は、転送リスト224、334を参照し、アライメントを調整してデータを格納するための変換リストを生成する。この場合、データ転送部231は、ステップS111において、当該変換リストに基づいて、変換されたデータを書き込むメモリ220上の記憶領域を特定する。さらに、DMAコントローラ232は、特定されたメモリ220上の記憶領域に変換されたデータを書き込む。
変換リストは、例えば、転送リスト224のアドレスと、転送リスト334のアドレスとを対応づけたリストが考えられる。
次に、データ書込処理について説明する。
OS221は、アプリケーション223からストレージモジュール300へのデータの書込要求を受け付けた場合、ストレージアクセス部222を呼び出す。
ストレージアクセス部222は、書込対象のデータをメモリ220にコピーする(ステップS201)。また、ストレージアクセス部222は、転送リスト224を生成し、生成された転送リスト224をメモリ220に書き込む(ステップS202)。転送リスト224には、メモリ220にコピーされたデータを読み出すためのアドレス、及びアドレス長等が含まれる。
ストレージアクセス部222は、ストレージ制御部331に対して書込要求(サーバコマンド)を送信する(ステップS203)。
転送モジュール230は、書込要求(サーバコマンド)を受信すると、当該書込要求(サーバコマンド)をサーバコマンドからストレージコマンドに変換し、変換された書込要求(ストレージコマンド)をストレージ制御部331に送信する(ステップS204)。具体的には、以下のような処理が実行される。
データ転送部231は、受信した書込要求(サーバコマンド)を解析する。データ転送部231は、受信した書込要求(サーバコマンド)がストレージモジュール300に送信されるサーバコマンドであるため、プロトコルエンジン234にコマンドの変換を指示する。
プロトコルエンジン234は、受信した書込要求(サーバコマンド)をサーバコマンドからストレージコマンドに変換し、変換された書込要求(ストレージコマンド)をデータ転送部231に出力する。
データ転送部231は、入力された書込要求(ストレージコマンド)をストレージモジュール300のストレージ制御部331に送信する。
以上がステップS204の処理の説明である。
ストレージ制御部331は、書込要求(ストレージコマンド)を受信すると、書込対象のデータを一時的に格納するためのバッファを設定する(ステップS205)。また、ストレージ制御部331は、転送リスト334を生成し、生成された転送リスト334をメモリ330に書き込む(ステップS206)。転送リスト334には、書込対象のデータをバッファに格納するためのアドレス、及びアドレス長等が含まれる。
次に、ストレージ制御部331は、転送モジュール230に、DMA転送要求を送信する(ステップS207)。
転送モジュール230は、DMA転送要求を受信すると、サーバモジュール200のメモリ220から転送リスト224を読み出し(ステップS208)、また、ストレージモジュール300のメモリ330から転送リスト334を読み出す(ステップS209)。
具体的には、データ転送部231のDMAコントローラ232が、サーバモジュール200から第1アドレスを取得し、また、ストレージモジュール300から第2アドレスを取得する。なお、DMAコントローラ232は、転送リスト224、334そのものを取得してもよい。DMAコントローラ232は、取得されたアドレス又は転送リスト224、334を一時的に保持する。
転送モジュール230は、サーバモジュール200のメモリ220に格納される転送リスト224を参照し、当該メモリ220にコピーされたデータを読み出す(ステップS210)。
具体的には、データ転送部231のDMAコントローラ232が、第1アドレスに基づいて、サーバモジュール200のメモリ220に格納される転送リスト224を参照し、当該メモリ220にコピーされたデータを読み出す。なお、DMAコントローラ232は、所定のデータ単位毎にデータを読み出すものとする。例えば、512バイト単位のデータが読み出される。
次に、転送モジュール230は、読み出されたデータをストレージモジュール300のメモリ330に書き込む(ステップS211)。具体的には、以下のような処理が実行される。
データ転送部231のデータ検査部233は、読み出されたデータをストレージモジュール側のデータの形式に変換する。例えば、データ検査部233は、読み出されたデータにデータ保証コードを付与する。これによって、ストレージモジュール300が扱う520バイトのデータに変換される。
データ転送部231は、第1アドレスに基づいてサーバモジュール200のメモリ220に格納される転送リスト224を参照し、また、第2アドレスに基づいてストレージモジュール300のメモリ330に格納される転送リスト334を参照する。
データ転送部231は、転送リスト224、334に基づいて、変換されたデータを書き込むメモリ220の記憶領域を特定する。さらに、データ転送部231のDMAコントローラ232は、特定されたメモリ220の記憶領域に、変換されたデータを書き込む。
例えば、データ転送部231は、アライメントを調整して、メモリ330の記憶領域を特定する。
データ転送部231は、書込対象のデータが全て書き込まれるまで前述した処理を繰り返し実行する。
以上が、ステップS211の処理の説明である。
次に、転送モジュール230は、書込対象のデータを全てメモリ330に書き込んだ後、ストレージ制御部331にDMA転送の完了通知を送信する(ステップS212)。
ストレージ制御部331は、DMA転送の完了通知を受信した後、OS221に対して完了通知(ストレージコマンド)を送信する(ステップS213)。
転送モジュール230は、完了通知(ストレージコマンド)を受信した後、当該完了通知(ストレージコマンド)をストレージコマンドからサーバコマンドに変換し、変換された完了通知(サーバコマンド)をOS221に送信する(ステップS214)。なお、コマンドの変換処理は、ステップS204と同一の処理であるため説明を省略する。
なお、ステップS208及びステップS209において、転送リスト224、334そのものが読み出された場合、転送モジュール230は、転送リスト224、334を参照し、アライメントを調整してデータを格納するための変換リストを生成する。この場合、転送モジュール230は、ステップS211において、当該変換リストに基づいて、変換されたデータを書き込むメモリ330上の記憶領域を特定する。さらに、DMAコントローラ232は、特定されたメモリ330上の記憶領域に変換されたデータを書き込む。
変換リストは、例えば、転送リスト224のアドレスと、転送リスト334のアドレスとを対応づけたリストが考えられる。
なお、実施例1では、サーバモジュール200が転送モジュール230を搭載していたが本発明はこれに限定されない。例えば、バックプレーン400が転送モジュール230を搭載してもよい。すなわち、転送モジュール230の搭載位置に限定されず、サーバモジュール200のI/Oバスとストレージモジュール300のI/Oバスとを接続できればよい。
実施例1では、二つのディスクコントローラ310を用いて、ストレージ制御部331を冗長化していたが、本発明はこれに限定されない。例えば一つのディスクコントローラ310を論理的に分割することによって二つのストレージ制御部331を実現してもよい。この場合、二つのI/F360は、一つのディスクコントローラに接続される。
以上説明したように、実施例1では、転送モジュール230が、サーバモジュール200のメモリ220とストレージモジュール300のメモリ330との間のデータ転送を行う。
従来の計算機システムにおけるデータ転送では、サーバモジュール200のエンドポイント及びストレージモジュールのエンドポイントのそれぞれでプロトコル変換が行われる。例えば、従来の読出処理では、サーバモジュール200のHBA240等がプロトコルを変換して、ストレージモジュール300に読出要求を送信し、ストレージモジュール300のTBA350等がプロトコルを変換して、データを読み出していた。
一方、本願発明では、サーバモジュール200及びストレージモジュール300がプロトコル変換されていないコマンドを転送モジュール230に送信し、転送モジュール230がプロトコルを変換する。
具体的には、サーバモジュール200はサーバコマンドをそのまま転送モジュール230に送信し、転送モジュール230が、受信したサーバコマンドをストレージコマンドに変換し、変換されたコマンドをストレージモジュール300に送信する。また、ストレージモジュール300は、ストレージコマンドをそのまま転送モジュール230に送信し、転送モジュール230は、受信したストレージコマンドをサーバコマンドに変換し、変換されたコマンドをサーバモジュール200に送信する。
したがって、プロトコル変換によるデータ転送のオーバヘッドを低減するという効果がある。
また、転送モジュール230は、サーバモジュール200のメモリ220、及びストレージモジュール300のメモリ330に直接アクセスするため、サーバモジュール200のプロセッサ210及びストレージモジュール300のプロセッサ320を介することなく、各メモリ間の高速なデータ転送を実現できる。
実施例1では、サーバモジュール200に転送モジュール230を搭載することによって高性能のデータ転送が実現できる。すなわち、サーバモジュール200のソフトウェア構成を変更する必要がなく、ストレージモジュール300のハードウェア構成及びソフトウェア構成を変更する必要がない。したがって、低コストで実施例1に示す計算機システムを実現することができる。
また、実施例1では、サーバモジュール200が転送モジュール230を有する理由は、ストレージモジュール300に転送モジュール230を搭載する場合、一つのサーバモジュール200に対して一つの転送モジュール230が必要であるためである。すなわち、接続可能なサーバモジュール200の最大数分だけ転送モジュール230をストレージモジュール300に搭載するのは、物理的に困難である場合があるためである。
実施例1では、同一の筐体内にサーバモジュール200及びストレージモジュール300を含むサーバ装置100であったが、実施例2では、サーバモジュール200及びストレージモジュール300がそれぞれ独立した筐体である点が異なる。以下、実施例1との差異を中心に実施例2について説明する。
図7は、本発明の実施例2の計算機システムの構成例を示すブロック図である。
実施例2の計算機システムは、複数のサーバモジュール200及び複数のストレージモジュール300から構成される。
サーバモジュール200及びストレージモジュール300のハードウェア構成及びソフトウェア構成は、実施例1と同一であるため説明を省略する。
実施例2のサーバモジュール200−1及びストレージモジュール300−1は、メタルケーブル等の接続線を介して直接接続される点が実施例1と異なる。サーバモジュール200のI/F260には2本の接続線が接続され、各接続線は、ストレージモジュール300の異なるI/F360に接続される。その他の接続関係は実施例1と同一であるため説明を省略する。
実施例2の転送モジュール230が実行する処理は、実施例1の図5及び図6に示すものと同一であるため説明を省略する。
実施例2によれば、サーバモジュール200及びストレージモジュール300が異なる筐体であっても、高速なデータ転送を実現することができる。
実施例3では、サーバモジュール200及びストレージモジュール300がそれぞれ独立した筐体であり、それぞれが転送モジュールを有する点が実施例1と異なる。なお、実施例3では、ストレージモジュール300が必要な数だけ転送モジュールを搭載可能な場合を想定する。
サーバモジュール200のみが転送モジュール230を有する場合、ストレージモジュール300は、ディスクコントローラ310から転送モジュール230までのI/Oバスを自身のI/O接続領域として管理する。
そのため、サーバモジュール200とストレージモジュール300との間の接続線に障害が発生した場合、ストレージモジュール300は、I/O接続領域の障害発生と認識するため、ストレージモジュール300全体が停止する可能性がある。そのため、ストレージモジュール300における冗長化の構成が適切に反映されない。
したがって、実施例3では、ストレージモジュール300が転送モジュール380を有する。この場合、ストレージモジュール300は、ディスクコントローラ310から自身の転送モジュール380までのI/Oバスを自身のI/O接続領域として管理する。
以下、実施例1との差異を中心に実施例3について説明する。
図8は、本発明の実施例3の計算機システムの構成例を示すブロック図である。
実施例3の計算機システムは、複数のサーバモジュール200及び複数のストレージモジュール300から構成される。
実施例3のサーバモジュール200のハードウェア構成及びソフトウェア構成は実施例1と同一であるため説明を省略する。
実施例3のストレージモジュール300は、新たに転送モジュール380−1、380−2を有する。転送モジュール380−1はディスクコントローラ310−1に接続され、転送モジュール380−2はディスクコントローラ310−2に接続される。実施例3のストレージモジュール300のソフトウェア構成は実施例1と同一であるため説明を省略する。
また、転送モジュール380−1、380−2の構成は、転送モジュール230と同一であるため説明を省略する。
実施例3では、サーバモジュール200の転送モジュール230は、ブリッジとして機能する。すなわち、転送モジュール230内では、データ転送部231を介さず、ブリッジ235を介して接続ポート236間でデータが転送される。したがって、サーバモジュール200は、転送モジュール230の代わりに一般的なブリッジを有していてもよい。
実施例3では、ストレージモジュール300の転送モジュール380−1、380−2が図5及び図6に示すデータ転送処理を実行する。転送モジュール380−1、380−2は、それぞれ独立したデータ転送処理を実行する。
また、転送モジュール380は、サーバモジュール200とストレージモジュール300とを接続する接続線に障害が発生した場合に、転送モジュール380が接続されるディスクコントローラ310の状態をスタンバイ状態に移行させる。これによって、接続線の障害の影響範囲を最小限に抑えることができる。
例えば、サーバモジュール200−1とディスクコントローラ310−1とを接続する接続線に障害が発生した場合、転送モジュール380−1は、ディスクコントローラ310−1をスタンバイ状態に移行させる。このとき、転送モジュール380−2が、データ転送処理を継続する。したがって、一つのサーバモジュール200とストレージモジュール300とを接続する接続線に障害が発生した場合であっても、他のサーバモジュール200に当該障害の影響が及ぶのを抑止することができる。
なお、サーバモジュール200内のI/Oバスに障害が発生した場合には、以下のような処理が実行される。サーバモジュール200が有するチップセット(図示省略)のルートコンプレックスが、障害発生したI/Oバスの切離し等の縮退処理を実行する。ストレージモジュール300内のI/Oバスに障害が発生した場合も同様の処理が実行される。
サーバモジュール200の転送モジュール230をブリッジとして設定する方法としては、以下のようなものが考えられる。
サーバモジュール200及びストレージモジュール300を接続線で接続したときに、サーバモジュール200のOS221は、ストレージモジュール300が転送モジュール380を有するか否かを問い合わせる。OS221は、ストレージモジュール300が転送モジュール380を有する旨の応答を受信した場合、自身の転送モジュール230をブリッジとして設定する。
他の設定方法としては、システム管理者又はユーザが予め、サーバモジュール200の転送モジュール230をブリッジとして設定する。
図8に示す例では、I/F360毎に異なる転送モジュール380が接続されているが本発明はこれに限定されない。例えば、転送モジュール380は一つであってもよい。この場合、一つの転送モジュール380がそれぞれ異なるI/Oバスを介してI/F360−1、360−2に接続される。また、転送モジュール380は、各機能部を論理的に分割することによって、I/O処理を並列実行する。
実施例3によれば、耐障害性を高め、かつ、高速なデータ転送を実現することができる。なお、実施例1においても、実施例3と同様の構成をとることが可能である。すなわち、ストレージモジュール300−1が、転送モジュール380を備えていてもよい。
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
100 サーバ装置
200 サーバモジュール
210 プロセッサ
220 メモリ
221 OS
222 ストレージアクセス部
223 アプリケーション
224 転送リスト
230 転送モジュール
231 データ転送部
232 DMAコントローラ
233 データ検査部
234 プロトコルエンジン
235 ブリッジ
236 接続ポート
240 HBA
250 NIC
260 I/F
300 ストレージモジュール
310 ディスクコントローラ
320 プロセッサ
330 メモリ
331 ストレージ制御部
332 I/O処理部
333 記憶装置制御部
334 転送リスト
350 TBA
360 I/F
370 記憶装置
380 転送モジュール
400 バックプレーン
410 I/F
500 SAN
600 LAN

Claims (18)

  1. 1のメモリと当該第1のメモリへのデータの書込みおよび読出しを制御する第1のプロセッサと第1のインターフェースとを備え第1のデータ形式でデータを扱うサーバモジュールと、
    2のメモリと複数の記憶デバイスと前記第2のメモリへのデータの書込みおよび読出しを制御し前記複数の記憶デバイスを用いて前記サーバモジュールにRAID構成に基づくLUを提供する第2のプロセッサと第2のインターフェースとを備え第2のデータ形式でデータを扱うストレージモジュールと、を有する計算機システムであって、
    前記サーバモジュールと前記ストレージモジュールは、前記第1のインターフェースと前記第2のインターフェースを介して通信可能に接続され、
    前記サーバモジュールは、更に、前記第1のメモリと前記第2のメモリ間のDMA転送を制御する転送モジュールを有し
    記転送モジュールは、
    前記サーバモジュールの前記第1のプロセッサが読み出し要求を送信すると、
    当該読み出し要求に対応する前記ストレージモジュールの第2のメモリのアドレスを前記第2のプロセッサから取得し、当該アドレスに基づき前記第2のメモリから前記読み出し要求に対応するデータを読み出し、当該データから当該データの整合性を確認するための保証コードを削除することで当該データの形式を前記第2のデータ形式から前記第1のデータ形式に変換し、当該変換後のデータを前記サーバモジュールの第1のメモリへ書き込むことにより、前記第2のメモリから前記第1のメモリへのDMA転送を行う
    ことを特徴とする計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記サーバモジュールの前記第1のプロセッサが読み出し要求を送信すると、
    前記転送モジュールは、
    前記第1のプロセッサにより前記読み出し要求のために設定される前記第1のメモリ上の第1のアドレスを示す第1の転送リストを取得し、
    前記第2のプロセッサにより前記記憶デバイスから読みだされた前記読み出し要求に対応するデータを格納される前記第2のメモリ上の第2のアドレスを示す第2の転送リストを取得し、
    前記第1の転送リストと前記第2の転送リストとに基づいて、前記第1のアドレスと前記第2のアドレスを対応付ける変換リストを作成し、
    前記変換リストに従って、前記第2のメモリから前記第1のメモリへのDMA転送を実行し、
    前記第1のプロセッサは、前記DMA転送の完了に応じて、前記読み要求に対応する完了通知を受領する
    ことを特徴とする計算機システム。
  3. 1のメモリと当該第1のメモリへのデータの書込みおよび読出しを制御する第1のプロセッサと第1のインターフェースとを備え第1のデータ形式でデータを扱うサーバモジュールと
    2のメモリと複数の記憶デバイスと前記第2のメモリへのデータの書込みおよび読出しを制御し前記複数の記憶デバイスを用いて前記サーバモジュールにRAID構成に基づくLUを提供する第2のプロセッサと第2のインターフェースとを備え第2のデータ形式でデータを扱うストレージモジュールと、を有する計算機システムであって、
    前記サーバモジュールと前記ストレージモジュールは、前記第1のインターフェースと前記第2のインターフェースを介して通信可能に接続され、
    前記サーバモジュールは、更に、前記第1のメモリと前記第2のメモリ間のDMA転送を制御する転送モジュールを有し
    記転送モジュールは、
    前記サーバモジュールの前記第1のプロセッサが書き込み要求を送信すると、
    当該書込み要求に対応する前記ストレージモジュールの第2のメモリのアドレスを前記第2のプロセッサから取得し、前記サーバモジュールの第1のメモリから前記書込み要求に対応するデータを読み出し、当該データに当該データの整合性を確認するための保証コードを付与することで当該データを前記第1のデータ形式から前記第2のデータ形式に変換し、当該変換後のデータを前記アドレスに基づき前記第2のメモリに書き込むことにより、前記第1のメモリから前記第2のメモリへのDMA転送を行う
    ことを特徴とする計算機システム。
  4. 請求項3に記載の計算機システムであって、
    前記サーバモジュールの前記第1のプロセッサが書き込み要求を送信すると、
    前記転送モジュールは、
    前記第1のプロセッサにより前記書込み要求に対応するデータが格納される前記第1のメモリ上の第1のアドレスを示す第1の転送リストを取得し、
    前記第2のプロセッサにより前記書込み要求のために設定される前記第2のメモリ上の第2のアドレスを示す第2の転送リストを取得し、
    前記第1の転送リストと前記第2の転送リストとに基づいて、前記第1のアドレスと前記第2のアドレスを対応付ける変換リストを作成し、
    前記変換リストに従って、前記第1のメモリから前記第2のメモリへのDMA転送を実行し、
    前記第1のプロセッサは、前記DMA転送の完了に応じて、前記読み要求に対応する完了通知を受領する
    ことを特徴とする計算機システム。
  5. 請求項1乃至請求項4のいずれかに記載の計算機システムであって、
    前記サーバモジュールと前記ストレージモジュールは、PCIeプロトコルに基づいて通信を行うことを特徴とする計算機システム。
  6. 請求項1乃至請求項5のいずれかに記載の計算機システムであって、
    前記第2のプロセッサは、前記読み出し要求もしくは前記書込み要求に応じて、対応するデータを前記第2のメモリに一時的に格納することを特徴とする計算機システム。
  7. 請求項1乃至請求項6のいずれかに記載の計算機システムであって、
    前記ストレージモジュールは、
    前記記憶デバイスと接続され、前記第2のプロセッサと前記第2のメモリを備える第1のコントローラと、
    前記記憶デバイスと接続され、第3のプロセッサと第3のメモリを備える第2のコントローラと、を有し
    前記転送モジュールは、前記第1のコントローラおよび前記第2のコントローラと接続されることを特徴とする計算機システム。
  8. 請求項7に記載の計算機システムであって、
    前記計算機システムは、第4のプロセッサと第4のメモリと他の転送モジュールを備える他のサーバモジュールを更に有し、
    前記他の転送モジュールは、前記第1のコントローラおよび前記第2のコントローラと接続されることを特徴とする計算機システム。
  9. 第1のメモリと当該第1のメモリへのデータの書込みおよび読出しを制御する第1のプロセッサと第1のインターフェースとを備え、第1のデータ形式でデータを扱うサーバモジュールと、
    第2のメモリと複数の記憶デバイスと前記第2のメモリへのデータの書込みおよび読出しを制御し前記複数の記憶デバイスを用いて前記サーバモジュールにRAID構成に基づくLUを提供する第2のプロセッサと第2のインターフェースとを備え、第2のデータ形式でデータを扱うストレージモジュールと、を有する計算機システムにおける、データ転送方法であって、
    前記サーバモジュールと前記ストレージモジュールは、前記第1のインターフェースと前記第2のインターフェースを介して通信可能に接続され、
    前記サーバモジュールは、更に、前記第1のメモリと前記第2のメモリ間のDMA転送を制御する転送モジュールを有し、
    前記転送モジュールは、
    前記サーバモジュールの前記第1のプロセッサが読み出し要求を送信すると、
    当該読み出し要求に対応する前記ストレージモジュールの第2のメモリのアドレスを前記第2のプロセッサから取得し、当該アドレスに基づき前記第2のメモリから前記読み出し要求に対応するデータを読み出し、当該データから当該データの整合性を確認するための保証コードを削除することで当該データの形式を前記第2のデータ形式から前記第1のデータ形式に変換し、当該変換後のデータを前記サーバモジュールの第1のメモリへ書き込むことにより、前記第2のメモリから前記第1のメモリへのDMA転送を行う
    ことを特徴とするデータ転送方法。
  10. 第1のメモリと当該第1のメモリへのデータ書込みおよび読出しを制御する第1のプロセッサと第1のインターフェースとを備え、第1のデータ形式でデータを扱うサーバモジュールと、
    第2のメモリと複数の記憶デバイスと前記第2のメモリへのデータの書込みおよび読出しを制御し前記複数の記憶デバイスを用いて前記サーバモジュールにRAID構成に基づくLUを提供する第2のプロセッサと第2のインターフェースとを備え、第2のデータ形式でデータを扱うストレージモジュールと、を有する計算機システムにおける、データ転送方法であって、
    前記サーバモジュールと前記ストレージモジュールは、前記第1のインターフェースと前記第2のインターフェースを介して通信可能に接続され、
    前記サーバモジュールは、更に、前記第1のメモリと前記第2のメモリ間のDMA転送を制御する転送モジュールを有し、
    前記転送モジュールは、
    前記サーバモジュールの前記第1のプロセッサが書き込み要求を送信すると、
    当該書き込み要求に対応する前記ストレージモジュールの第2のメモリのアドレスを前記第2のプロセッサから取得し、当該アドレスに基づき前記第1のメモリから前記書込み要求に対応するデータを読み出し、当該データに当該データの整合性を確認するための保証コードを付与することで当該データの形式を前記第1のデータ形式から前記第2のデータ形式のデータに変換し、当該変換後のデータを前記アドレスに基づき前記第2のメモリに書き込むことにより、前記第1のメモリから前記第2のメモリへのDMA転送を行う
    ことを特徴とするデータ転送方法。
  11. 請求項9乃至請求項10のいずれかに記載のデータ転送方法であって、
    前記サーバモジュールと前記ストレージモジュールは、PCIeプロトコルに基づいて通信を行うことを特徴とするデータ転送方法。
  12. 請求項9乃至請求項11のいずれかに記載のデータ転送方法であって、
    前記ストレージモジュールは、
    前記記憶デバイスと接続され、前記第2のプロセッサと前記第2のメモリを備える第1のコントローラと、
    前記記憶デバイスと接続され、前記第3のプロセッサと前記第3のメモリを備える第2のコントローラと、を有し、
    前記転送モジュールは、前記第1のコントローラおよび前記第2のコントローラと接続されることを特徴とするデータ転送方法。
  13. 請求項12に記載のデータ転送方法であって、
    前記計算機システムは、第4のプロセッサと第4のメモリと他の転送モジュールを備える他のサーバモジュールを更に有し、
    前記他の転送モジュールは、前記第1のコントローラおよび前記第2のコントローラと接続されることを特徴とするデータ転送方法。
  14. 第1のメモリと当該第1のメモリへのデータの書込みおよび読出しを制御する第1のプロセッサと第1のインターフェースとを備え、第1のデータ形式でデータを扱うサーバモジュールに搭載され、
    第2のメモリと複数の記憶デバイスと前記第2のメモリへのデータの書込みおよび読出しを制御し前記複数の記憶デバイスを用いて前記サーバモジュールにRAID構成に基づくLUを提供する第2のプロセッサと第2のインターフェースとを備え、第2のデータ形式でデータを扱うストレージモジュールと接続する転送モジュールであって、
    前記サーバモジュールと前記ストレージモジュールは、前記第1のインターフェースと前記第2のインターフェースを介して通信可能に接続され、
    前記サーバモジュールの前記第1のプロセッサが読み出し要求を送信すると、
    当該読み出し要求に対応する前記ストレージモジュールの第2のメモリのアドレスを前記第2のプロセッサから取得し、当該アドレスに基づき前記第2のメモリから前記読み出し要求に対応するデータを読み出し、当該データから当該データの整合性を確認するための保証コードを削除することで当該データの形式を前記第2のデータ形式から前記第1のデータ形式に変換し、当該変換後のデータを前記サーバモジュールの第1のメモリへ書き込むことにより、前記第2のメモリから前記第1のメモリへのDMA転送を行うことを特徴とする転送モジュール。
  15. 第1のメモリと当該第1のメモリへのデータの書込みおよび読出しを制御する第1のプロセッサと第1のインターフェースをと備え、第1のデータ形式でデータを扱うサーバモジュールに搭載され、
    第2のメモリと複数の記憶デバイスと前記第2のメモリへのデータの書込みおよび読出しを制御し前記複数の記憶デバイスを用いて前記サーバモジュールにRAID構成に基づくLUを提供する第2のプロセッサと第2のインターフェースとを備え、第2のデータ形式でデータを扱うストレージモジュールと接続する転送モジュールであって、
    前記サーバモジュールと前記ストレージモジュールは、前記第1のインターフェースと前記第2のインターフェースを介して通信可能に接続され、
    前記サーバモジュールの前記第1のプロセッサが書き込み要求を送信すると、
    当該書込み要求に対応する前記ストレージモジュールの第2のメモリのアドレスを前記第2のプロセッサから取得し、前記サーバモジュールの前記第1のメモリから前記書込み要求に対応するデータを読み出し、当該データに当該データの整合性を確認するための保証コードを付与することで当該データの形式を前記第1のデータ形式から前記第2のデータ形式に変換し、当該変換後のデータを前記アドレスに基づき前記第2のメモリに書き込むことにより、前記第1のメモリから前記第2のメモリへのDMA転送を行う
    ことを特徴とする転送モジュール。
  16. 請求項14乃至請求項15のいずれかに記載の転送モジュールであって、
    前記サーバモジュールと前記ストレージモジュールは、PCIeプロトコルに基づいて通信を行うことを特徴とする転送モジュール。
  17. 請求項14乃至請求項16のいずれかに記載の転送モジュールであって、
    前記ストレージモジュールは、
    前記記憶デバイスと接続され、前記第2のプロセッサと前記第2のメモリを備える第1のコントローラと、
    前記記憶デバイスと接続され、前記第3のプロセッサと前記第3のメモリを備える第2のコントローラと、を有し、
    前記転送モジュールは前記第1のコントローラおよび前記第2のコントローラと接続されることを特徴とする転送モジュール。
  18. 請求項17に記載の転送モジュールであって、
    前記第1のコントローラおよび前記第2のコントローラは、第4のプロセッサと第4のメモリと他の転送モジュールとを備える他のサーバモジュールと接続されることを特徴とする転送モジュール。
JP2013101842A 2013-05-14 2013-05-14 計算機システム、サーバモジュール及びストレージモジュール Expired - Fee Related JP5695126B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2013101842A JP5695126B2 (ja) 2013-05-14 2013-05-14 計算機システム、サーバモジュール及びストレージモジュール
US14/045,631 US8868865B1 (en) 2013-05-14 2013-10-03 Computer system, server module, and storage module
EP14163093.9A EP2804109B1 (en) 2013-05-14 2014-04-01 Computer system, server module, and storage module
US14/453,729 US8959302B2 (en) 2013-05-14 2014-08-07 Computer system, server module, and storage module
US14/596,577 US9189418B2 (en) 2013-05-14 2015-01-14 Computer system, server module, and storage module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013101842A JP5695126B2 (ja) 2013-05-14 2013-05-14 計算機システム、サーバモジュール及びストレージモジュール

Publications (2)

Publication Number Publication Date
JP2014222426A JP2014222426A (ja) 2014-11-27
JP5695126B2 true JP5695126B2 (ja) 2015-04-01

Family

ID=50473054

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013101842A Expired - Fee Related JP5695126B2 (ja) 2013-05-14 2013-05-14 計算機システム、サーバモジュール及びストレージモジュール

Country Status (3)

Country Link
US (3) US8868865B1 (ja)
EP (1) EP2804109B1 (ja)
JP (1) JP5695126B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9336134B2 (en) * 2013-11-12 2016-05-10 Skyera, Llc Apparatus and method for accessing a non-volatile memory blade using multiple controllers in a non-volatile memory based storage device
US9229855B2 (en) * 2013-11-12 2016-01-05 Skyera, Llc Apparatus and method for routing information in a non-volatile memory-based storage device
TWI533215B (zh) * 2014-10-30 2016-05-11 緯創資通股份有限公司 開機方法及相關伺服器裝置
US10437747B2 (en) * 2015-04-10 2019-10-08 Rambus Inc. Memory appliance couplings and operations
JP6453457B2 (ja) * 2015-06-04 2019-01-16 株式会社日立製作所 ストレージ装置
US10360119B2 (en) * 2015-10-06 2019-07-23 Netapp, Inc. Data recovery in a distributed storage system
JP2017130002A (ja) * 2016-01-20 2017-07-27 富士通株式会社 ストレージ制御装置および制御プログラム
JP6703600B2 (ja) * 2016-04-27 2020-06-03 株式会社日立製作所 計算機システム及びサーバ
CN106776430A (zh) * 2016-12-12 2017-05-31 英业达科技有限公司 服务器系统
CN109491954A (zh) * 2018-11-05 2019-03-19 郑州云海信息技术有限公司 一种刀片服务器装配方法与刀片服务器
CN111200640B (zh) * 2019-12-23 2023-03-24 合肥美的智能科技有限公司 基于客户端的上传方法以及客户端

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737638A (en) * 1995-07-14 1998-04-07 International Business Machines Corporation System for determining plurality of data transformations to be performed upon single set of data during single transfer by examining communication data structure
JP4254178B2 (ja) * 2002-09-11 2009-04-15 富士ゼロックス株式会社 分散格納制御装置及び方法
US7216196B2 (en) * 2003-12-29 2007-05-08 Micron Technology, Inc. Memory hub and method for memory system performance monitoring
JP2006127300A (ja) 2004-10-29 2006-05-18 Hitachi Global Storage Technologies Netherlands Bv ホストと記憶デバイスとの間における通信方法、記憶デバイス、ホスト、記憶デバイスとホストを備えるシステム
US8190796B2 (en) * 2004-11-02 2012-05-29 Standard Microsystems Corporation Hardware supported peripheral component memory alignment method
JP4591185B2 (ja) * 2005-04-28 2010-12-01 株式会社日立製作所 サーバ装置
JP4977583B2 (ja) * 2007-11-22 2012-07-18 株式会社日立製作所 記憶制御装置及び記憶制御装置の制御方法
US20090248910A1 (en) * 2008-04-01 2009-10-01 Apple Inc. Central dma with arbitrary processing functions
CN101685381B (zh) * 2008-09-26 2013-07-24 美光科技公司 固态大容量存储装置的数据串流
JP2010092493A (ja) * 2009-11-24 2010-04-22 Toshiba Storage Device Corp インターフェース装置及びパケット転送方法
JP5482230B2 (ja) * 2010-01-25 2014-05-07 富士通株式会社 通信装置、情報処理装置、通信装置の制御方法及び制御プログラム
JP5351340B2 (ja) * 2010-06-24 2013-11-27 株式会社日立製作所 データ転送システム及びデータ転送方法
US9571576B2 (en) 2010-11-30 2017-02-14 International Business Machines Corporation Storage appliance, application server and method thereof
JP5760556B2 (ja) * 2011-03-18 2015-08-12 富士通株式会社 ストレージ装置、制御装置およびストレージ装置制御方法
US8554963B1 (en) 2012-03-23 2013-10-08 DSSD, Inc. Storage system with multicast DMA and unified address space
US8825910B2 (en) * 2012-04-06 2014-09-02 International Business Machines Corporation Pass-through converged network adaptor (CNA) using existing ethernet switching device

Also Published As

Publication number Publication date
EP2804109A3 (en) 2015-04-29
US9189418B2 (en) 2015-11-17
EP2804109A2 (en) 2014-11-19
US8868865B1 (en) 2014-10-21
US20150127872A1 (en) 2015-05-07
JP2014222426A (ja) 2014-11-27
US20140351360A1 (en) 2014-11-27
EP2804109B1 (en) 2016-09-21
US8959302B2 (en) 2015-02-17

Similar Documents

Publication Publication Date Title
JP5695126B2 (ja) 計算機システム、サーバモジュール及びストレージモジュール
US9298648B2 (en) Method and system for I/O flow management using RAID controller with DMA capabilitiy to directly send data to PCI-E devices connected to PCI-E switch
US9052829B2 (en) Methods and structure for improved I/O shipping in a clustered storage system
KR102457091B1 (ko) Nvme-of 이더넷 ssd에서 데이터 복제를 제공하기 위한 시스템 및 방법
US8074105B2 (en) High data availability SAS-based RAID system
US8412869B2 (en) Redundant storage virtualization computer system
US8402189B2 (en) Information processing apparatus and data transfer method
WO2015080690A1 (en) Method and apparatus for storing data
US8260980B2 (en) Simultaneous intermediate proxy direct memory access
US20130275668A1 (en) Data processing method and device
US20110282963A1 (en) Storage device and method of controlling storage device
JP2006092535A (ja) ストレージネットワークにおける内部ミラーオペレーション
WO2021012169A1 (zh) 一种提高存储系统可靠性的方法和相关装置
JP5511546B2 (ja) フォールトトレラントの計算機システム、複数の物理サーバとストレージ装置とに接続されるスイッチ装置、及び、サーバ同期制御方法
US9304842B2 (en) Computer system, control method for computer system and coupling module
WO2019008654A1 (ja) ストレージシステム、コピー制御方法、及び計算機システム
JP6825263B2 (ja) ストレージ制御装置、およびストレージシステム
US10380044B2 (en) Control apparatus, storage apparatus and computer-readable recording medium having stored therein control program
WO2018198336A1 (ja) ストレージシステム及びストレージ制御装置
TWI766594B (zh) 伺服器與應用於伺服器的控制方法
US20200133764A1 (en) Software-assisted fine-grained data protection for non-volatile memory storage devices
JP5910745B2 (ja) データバックアップ方法、及びインタフェースカード
US20130132621A1 (en) Method and apparatus to share hardware resources across storage controllers within a system using resource sharing module
JP2005301350A (ja) フォールトトレラントサーバ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141110

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150205

R150 Certificate of patent or registration of utility model

Ref document number: 5695126

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees