JP2011164838A - Endpoint sharing system and data transfer method - Google Patents
Endpoint sharing system and data transfer method Download PDFInfo
- Publication number
- JP2011164838A JP2011164838A JP2010025509A JP2010025509A JP2011164838A JP 2011164838 A JP2011164838 A JP 2011164838A JP 2010025509 A JP2010025509 A JP 2010025509A JP 2010025509 A JP2010025509 A JP 2010025509A JP 2011164838 A JP2011164838 A JP 2011164838A
- Authority
- JP
- Japan
- Prior art keywords
- server
- endpoint
- pcie
- data
- shared memory
- 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
Links
- 238000012546 transfer Methods 0.000 title claims abstract description 114
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000015654 memory Effects 0.000 claims abstract description 253
- 238000012545 processing Methods 0.000 claims abstract description 51
- 230000006870 function Effects 0.000 claims description 103
- 230000005540 biological transmission Effects 0.000 claims description 60
- 238000003780 insertion Methods 0.000 claims description 28
- 230000037431 insertion Effects 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 21
- 230000002093 peripheral effect Effects 0.000 claims description 19
- 230000005055 memory storage Effects 0.000 claims description 11
- 239000004065 semiconductor Substances 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 description 40
- 238000004891 communication Methods 0.000 description 16
- 238000005315 distribution function Methods 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 10
- 230000004044 response Effects 0.000 description 10
- 230000010354 integration Effects 0.000 description 6
- 238000011835 investigation Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
本発明は、複数のCPU(Central Processing Unit)あるいはサーバが入出力装置としてのエンドポイント(End Point)を共有するためのデータ転送を行うエンドポイント共有システムおよびデータ転送方法に関する。本発明は特に拡張バスの一種であるピーシーアイエクスプレス(PCI Express)を使用してエンドポイントを共有するのに好適なエンドポイント共有システムおよびデータ転送方法に関する。 The present invention relates to an endpoint sharing system and a data transfer method in which a plurality of CPUs (Central Processing Units) or servers perform data transfer for sharing an endpoint as an input / output device. The present invention particularly relates to an endpoint sharing system and a data transfer method suitable for sharing an endpoint using PCI Express, which is a type of expansion bus.
ピーシーアイエクスプレスとは、PCI(Peripheral Component Interconnect)バスに代わって策定されたシリアル転送インタフェイスである。「PCI Express」は、「PCIe」と略して表記される。ピーシーアイエクスプレスでは、ポイント・ツー・ポイントのシリアル伝送を採用している。 PCI Express is a serial transfer interface formulated in place of a PCI (Peripheral Component Interconnect) bus. “PCI Express” is abbreviated as “PCIe”. PCI Express uses point-to-point serial transmission.
ピーシーアイエクスプレスを用いた通信システムは、サーバ側のCPUと複数のエンドポイントとで構成される。エンドポイントとは、LAN(Local Area Network)コントローラやストレージデバイス等のデータの入出力装置の総称である。 A communication system using PCI Express includes a server-side CPU and a plurality of endpoints. An endpoint is a general term for data input / output devices such as a LAN (Local Area Network) controller and a storage device.
ところで、ピーシーアイエクスプレスを用いた通信システムでは、従来からエンドポイントに接続できるCPUが1個に制限されている。したがって、信頼性が要求されるシステムを構築するためにCPUを二重化あるいは多重化する場合には、それぞれのCPUがエンドポイントを共有するための何らかの工夫が必要とされる。 By the way, in the communication system using PCI Express, conventionally, the number of CPUs that can be connected to the end point is limited to one. Therefore, when CPUs are duplicated or multiplexed in order to construct a system that requires reliability, some device is required for each CPU to share an endpoint.
そこで、複数のCPU(プロセッサ)がエンドポイントを共有するために、他のエンドポイントを介して目的のエンドポイントにアクセスする技術が本発明の第1の関連技術として提案されている(たとえば特許文献1参照)。 Therefore, a technique for accessing a target endpoint via another endpoint in order for a plurality of CPUs (processors) to share the endpoint has been proposed as a first related technique of the present invention (for example, Patent Documents). 1).
図20は、この第1の関連技術におけるエンドポイント共有システムの構成の概要を表わしたものである。このエンドポイント共有システム1000では、第1のプロセッサユニット1001が第1のホストブリッジ1002および第1の外部バス1003を経由して第1のエンドポイント1004に接続されている。同様に、第2のプロセッサユニット1011は第2のホストブリッジ1012および第2の外部バス1013を経由して第2のエンドポイント1014に接続されている。
FIG. 20 shows an outline of the configuration of the endpoint sharing system in the first related technology. In this
第1のエンドポイント1004と第2のエンドポイント1014は互いに異なる外部バス1003、1013に接続されている。このため、たとえば第1のプロセッサユニット1001がそのまま第2のエンドポイント1014を使用することができない。そこで、エンドポイント共有システム1000では、第1のエンドポイント1004と第2のエンドポイント1014の間に、これらの間を伝達される信号の変換を行う変換部1021と、変換部1021で変換に使用するデータを記憶するメモリ1022とを配置している。
The first endpoint 1004 and the
たとえば第1のプロセッサユニット1001から第2のプロセッサユニット1011の第2のエンドポイント1014へパケットを送信するものとする。この場合、そのパケットは、まず第1のエンドポイント1004に送信される。第1のエンドポイント1004に到達したパケットには、要求元のバス番号およびデバイス番号からなる要求元ID(identifier)が含まれる。第1のホストブリッジ1002のバス番号およびデバイス番号が要求元IDとなる。この要求元IDを変換部1021において変換し、第2のエンドポイント1014のバス番号およびデバイス番号とする。これにより、第2のプロセッサユニット1011配下のデバイスツリー内で有効なパケットが生成され、パケットを同ツリー内の所望のユニットあるいはデバイスへ到達させることができる。第2のプロセッサユニット1011のデバイスツリーから第1のプロセッサユニット1001のデバイスツリーに向けたパケット送信も同様である。
For example, a packet is transmitted from the
メモリ1022には、第1および第2のホストブリッジ1002、1012のバス番号およびデバイス番号を、パケットに与えられたタグと対応づけて要求元IDテーブルとして格納している。タグはあるアクセス確立のための要求および応答に対して一意に定められる識別番号である。
The
第1の関連技術によるエンドポイント共有システム1000では、第1プロセッサユニット1001が第2プロセッサユニット1011のエンドポイント1014を共有するために、変換部1021およびメモリ1022を接続した他のエンドポイント1004を介する必要がある。このためには、共有する1つのエンドポイントのために、第1プロセッサユニット1001と第2プロセッサユニット1011がそれぞれ1つずつのエンドポイント1004、1014を用意する必要がある。また、変換部1021とこの変換部1021の変換に必要な要求元IDテーブルを格納したメモリ1022を必要とし、システムの管理や運用が煩雑となる。
In the
そこで、本発明者は、他のエンドポイントの介在を必要とすることなく、1つのエンドポイントを複数のサーバが共有することのできる第2の関連技術を提案した。 Therefore, the present inventor has proposed a second related technology in which a plurality of servers can share one end point without requiring the intervention of another end point.
図21は、この第2の関連技術におけるエンドポイント共有システムの構成を表わしたものである。第2の関連技術のエンドポイント共有システム1100は、第0および第1のサーバ1110、1111を、統合エンドポイント(EP:End Point)1112に接続した構成となっている。ここで、第0および第1のサーバ1110、1111ならびに統合エンドポイント1112は、互いに物理的に分離した存在となっている。
FIG. 21 shows the configuration of the endpoint sharing system in the second related technology. The end
統合エンドポイント1112は、PCIプロシキ(Proxy)機能部1121と、第0〜第Nのエンドポイント(EP)11220〜1122N(ただし、Nは正の整数)から構成されている。ここで、PCIプロシキ機能部1121は、コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部である。PCIプロシキ機能部1121は、図示しないがCPUと、このCPUが実行する制御プログラムを格納したROM(Read Only Memory)等の記録媒体を有しており、次の各部を備えている。
The integrated
(a)第0のポート11310
第0のサーバ1110とPCIe(PCIExpress)ケーブル11320を介して接続される。
(b)第1のポート11311
第1のサーバ1111とPCIeケーブル11321を介して接続される。
(c)ACT(active)・SBY(standby)選択機能部1133
第0および第1のサーバ1110、1111の一方をACT(現用)系に、他方をSBY(待機系)系に選択する。
(d)第0の仮想PCIeコンフィグ(Configuration)レジスタ11340
各エンドポイント1122のPCIeコンフィグレジスタ情報を格納する。
(e)第1の仮想PCIeコンフィグ(Configuration)レジスタ11341
各エンドポイント1122のPCIeコンフィグレジスタ情報を格納する。
(f)コンフィグ(Configuration)制御部1135
第0の仮想PCIeコンフィグレジスタ11340および第1の仮想PCIeコンフィグレジスタ11341を管理する。
(g)アドレス変換テーブル1136
第0のサーバ1110と第1のサーバ1111のメモリ空間の差分情報としてのアドレス空間差分情報を保持する。
(h)アドレス変換部1137
第0のサーバ1110と第1のサーバ1111のメモリ空間へのアクセスが同一のアドレスになるように、アドレスを変換する。
(i)アドレス変換・振り分け機能部1138
第0および第1のサーバ1110、1111のうちのACT系のサーバと接続されたポートとの間でPCIeパケットを振り分ける。
(j)第0〜第NのPCIeポート(Port)11390〜1139N
第0〜第Nのエンドポイント(EP)11220〜1122Nをそれぞれ対応して接続する。
(A)
It is connected via a
(B)
The
(C) ACT (active) / SBY (standby)
One of the 0th and
(D) 0th virtual PCIe configuration register 1134 0
The PCIe configuration register information of each
(E) First virtual PCIe configuration register 1134 1
The PCIe configuration register information of each
(F)
The 0th virtual PCIe configuration register 1134 0 and the first virtual PCIe configuration register 1134 1 are managed.
(G) Address conversion table 1136
Address space difference information as difference information of the memory space between the
(H)
The addresses are converted so that the access to the memory space of the
(I) Address conversion /
The PCIe packet is distributed between a port connected to the ACT server of the 0th and
(J) 0th to Nth PCIe ports (Ports) 1139 0 to 1139 N
The 0th to Nth end points (EP) 1122 0 to 1122 N are connected correspondingly.
第2の関連技術のエンドポイント共有システム1100では、第0〜第Nのエンドポイント11220〜1122Nを、汎用サーバとしての第0および第1のサーバ1110、1111から共通に利用できるようになっている。ここで、第0〜第Nのエンドポイント11220〜1122Nは、前記したようにデータの入出力装置の総称である。第0および第1のサーバ1110、1111は、それぞれ図示しないがCPU(Central Processing Unit)を実装している。
In the
通常のPCIe(PCI Express)システムでは、データの入出力装置としてのエンドポイントは、通常、サーバ内に実装される。第2の関連技術のエンドポイント共有システム1100では、第0〜第Nのエンドポイント11220〜1122Nが第0および第1のサーバ1110、1111と物理的に独立した構成となっている。したがって、第0のサーバ1110と第0〜第Nのエンドポイント11220〜1122Nの間、あるいは第1のサーバ1111と同じく第0〜第Nのエンドポイント11220〜1122Nの間は、PCIe専用のケーブルで接続されている。ここで、汎用サーバと各エンドポイントをPCIe専用のケーブルで接続する手法は、すでに技術的に確立したものとなっている。
In a normal PCIe (PCI Express) system, an endpoint as a data input / output device is usually mounted in a server. In the
この第2の関連技術では、第0および第1のサーバ1110、1111の一方をACT(active)系、すなわち現用系として初期的に設定しており、このACT系のみが第0〜第Nのエンドポイント11220〜1122Nにアクセス可能となっている。そして、SBY(standby)系を用意しておくことで、サーバに搭載されたCPUを二重化している。
In the second related technology, one of the 0th and
また、第2の関連技術では、コンフィグレーションを電源投入時に実行するようにしており、サーバのACT系とSBY系の切り替え時にコンフィグレーションを不要としている。これにより、ACT系とSBY系それぞれのサーバに搭載したCPUの一方に障害が発生した場合のようにCPUの切り替えが必要な際に、エンドポイントを一旦停止することなく、CPUの系の切り替えを高速に実現可能である。 In the second related technology, the configuration is executed when the power is turned on, and the configuration is not required when the server is switched between the ACT system and the SBY system. As a result, when the CPU needs to be switched, such as when a failure occurs in one of the CPUs installed in the ACT and SBY servers, the CPU system can be switched without temporarily stopping the endpoint. It can be realized at high speed.
第2の関連技術の第0および第1のサーバ1110、1111は、それぞれ1個ずつPCIe拡張スロット1141、1142を有している。第0のサーバ1110は、PCIeケーブル11320を接続するためのPCIe NIC(Network Interface Card)1143を、PCIe拡張スロット1141に実装(装着)している。同様に、第1のサーバ1111は、PCIeケーブル11321を接続するためのPCIe NIC1144をPCIe拡張スロット1142に実装している。
Each of the 0th and
第0〜第Nのエンドポイント11220〜1122NとPCIプロシキ機能部1121における第0〜第NのPCIeポート11390〜1139Nの間には、それぞれPCIeバス11510〜1151Nが接続されている。
0th Between the
PCIプロキシ機能部1121は、第0のサーバ1110と接続するための第0のポート11310と、第1のサーバ1111と接続するための第1のポート11311を有する。また、PCIプロキシ機能部1121は、第0および第1の仮想PCIeコンフィグレジスタ11340、11341をそれぞれ管理するためのコンフィグ(Configuration)制御部1135を有する。コンフィグ制御部1135は、PCIプロキシ機能部1121に接続された第0〜第Nのエンドポイント11220〜1122Nが保持する、図示しないPCIeコンフィグレーションレジスタを制御する機能を有する。また、コンフィグ制御部1135は、第0および第1の仮想PCIeコンフィグレジスタ11340、11341に対して、各エンドポイント1122のPCIeコンフィグレジスタ情報の内容を反映させる機能も有する。
The PCI
第0のサーバ1110は、第0の仮想PCIeコンフィグ(Configuration)レジスタ11340に対して、PCIeコンフィグレーション情報のリード・ライト(Read/Write)を行う。第1のサーバ1111も、第1の仮想PCIeコンフィグレジスタ11341に対して、PCIeコンフィグレーション情報のリード・ライトを行う。このため、第0〜第Nのエンドポイント11220〜1122Nの前記したPCIeコンフィグレーションレジスタは、これらのサーバ1110、1111から直接制御されることはない。これらのPCIeコンフィグレーションレジスタは、コンフィグ制御部1135を経由してアクセスされることになる。
第0のポート11310と第1のポート11311は、PCIeパケットで転送されるACT制御信号を識別する。そして、ACT切替指示が第0のサーバ1110もしくは第1のサーバ1111から送付された場合には、ACT・SBY選択機能部1133に対してACT・SBY切替指示を出すようになっている。ACT・SBY選択機能部1133では、アドレス変換・振り分け機能部1138に対して、現用系としてのACT系サーバが第0および第1のサーバ1110、1111のどちらであるかを示す信号を送出する。アドレス変換・振り分け機能部1138は、この信号を受信すると、第0のポート11310と第1のポート11311のうちのACT系のサーバと接続されたポートとの接続を維持する。アドレス変換・振り分け機能部1138は、第0のポート11310と第1のポート11311のうちのSBY系のポートとのデータのやり取りは行わない。
The
コンフィグ制御部1135は、第0および第1の仮想PCIeコンフィグレジスタ11340、11341に設定されたPCIeコンフィグレーションレジスタ情報から第0および第1のサーバ1110、1111が保持するPCIeメモリ空間マップ情報を取得する。そして、各サーバ1110、1111でメモリ空間上に各エンドポイント1122をどのように配置したかを認識する。このとき、各サーバ1110、1111の設定値に差分がある場合には、第0のサーバ1110のメモリ空間に対して、第1のサーバ1111のメモリ空間の差分を計算し、差分情報をアドレス変換テーブル1136に転送する。
The
アドレス変換部1137は、アドレス変換テーブル1136から送信された第0および第1のサーバ1110、1111のアドレス空間差分情報を取得する。そして、第1のサーバ1111のメモリ空間へのアクセスを第0のサーバ1110のメモリ空間へのアクセスと同一のアドレスになるように、アドレス変換処理を実施する。その後、第1のサーバ1111と第0〜第Nのエンドポイント11220〜1122Nの間でアクセスが行われる際にPCIeパケットのやり取りを実施する。
The
アドレス変換・振り分け機能部1138は、第0〜第Nのエンドポイント11220〜1122Nに対するPCIeパケットの振分けを、PCIeパケットヘッダ内に格納されたアドレス情報を基にして実施する。
The address conversion /
なお、第0〜第Nのエンドポイント11220〜1122Nから第0あるいは第1のサーバ1110、1111の方向に流れるパケットについては、ACT・SBY選択機能部1133から送信されたACT情報を基にして、ACT系サーバと接続されたポート方向のみにパケットを送信する。
The packets flowing from the 0th to Nth
このエンドポイント共有システム1100にも見られるように、ネットワーク機器では、CPUをACT系とSBY系の双方に配置して、これらの2つの系で同期をとる一方、片方の系のCPUが配下のエンドポイントにアクセスしてデータの運用を行うことが望ましい。このため、ACT系とSBY系の合計2個のCPUとエンドポイントで構成するネットワーク機器の場合には、エンドポイントに対してACT系のCPUのみアクセス可能であればよい。しかしながら、障害が発生した時には、CPUの系切り替えを実施した後に、新しいACT系のCPUが、速やかにエンドポイントにアクセスできるための仕組みが必要となる。
As seen in this
既存のピーシーアイ(PCI)の仕組みを用いる場合には、ACT系のCPUがエンドポイントを管理している状態から、障害発生により、SBY系のCPUに切り替えたとき、エンドポイントがマッピングされるCPUメモリ空間が同一ではない。そこで、一般には、エンドポイントの物理的なリセットや設定データの再設定が必要となり、迅速な系の切り替えを実施することが困難になる。また、リセットや再設定処理の間、エンドポイントはデータ通信を行うことができない。この結果、ネットワーク機器の信頼性が低くなる。このため、信頼性が要求される通信機器では、エンドポイントに対するリセットやコンフィグレーション処理を実施することなく、CPUの切替処理が実現できることが望まれる。 When the existing PC eye (PCI) mechanism is used, the CPU to which the endpoint is mapped when the ACT CPU manages the endpoint and switches to the SBY CPU due to the occurrence of a failure. Memory space is not the same. In general, therefore, it is necessary to physically reset the endpoint and reset the setting data, and it is difficult to perform rapid system switching. In addition, during the reset or reset process, the endpoint cannot perform data communication. As a result, the reliability of the network device is lowered. For this reason, in a communication device that requires reliability, it is desired that CPU switching processing can be realized without performing reset or configuration processing for an endpoint.
以上説明した第2の関連技術では、汎用サーバ上に搭載されたCPUを系の切り替えに使用している。サーバ上のCPUは、通常、電源が投入された直後に、バイオス(BIOS:Basic Input/Output System)の指示に従ってPCIe配下のエンドポイントを検索して、自動的にメモリ空間上にエンドポイントのマッピング処理を実施する。このため、ユーザがどのアドレス空間にエンドポイントを配置するかという制御は、たとえばバイオスの変更を行わない限りは不可能である。このため、物理的に異なるサーバ上に搭載された2個のCPUが、同一のエンドポイントを同一のメモリ空間上にマッピングさせることは、困難となる。 In the second related technology described above, a CPU mounted on a general-purpose server is used for system switching. The CPU on the server normally searches for endpoints under PCIe according to BIOS (Basic Input / Output System) instructions immediately after the power is turned on, and automatically maps the endpoints in the memory space. Perform the process. For this reason, it is impossible to control in which address space the user places the endpoint unless the bios is changed, for example. For this reason, it is difficult for two CPUs mounted on physically different servers to map the same end point on the same memory space.
PCIe(PCI Express)では、エンドポイントをCPUのメモリ空間上にマッピングする場合に、ベースアドレス(Base Address)をエンドポイント1122のPCIeコンフィグレーションレジスタに対して設定し、メモリ空間における位置を確定させる。エンドポイントは設定されたベースアドレス情報に基づいたアドレス値が設定されたPCIeパケットのみを、自分が処理するPCIeパケットであると認識する。このため、2個のCPU間とのやり取りの際のエンドポイント1122のアドレス値は、PCIeコンフィグレーションレジスタに設定されている値である必要がある。この結果、エンドポイント1122のPCIeコンフィグレーション情報を再設定しないで、CPUの切り替えを実施する場合は、エンドポイント1122へアクセスするアドレスをエンドポイント1122の前段階で同一空間上になるように、変換する機能が必要となる。
In PCIe (PCI Express), when an end point is mapped on the memory space of the CPU, a base address (Base Address) is set in the PCIe configuration register of the
そこで、第2の関連技術では、電源投入直後のACT系サーバとしての第0のサーバ1110のメモリ空間にエンドポイント1122をマッピングするようにしている。そして、第0のサーバ1110から各エンドポイント1122へのアクセスについては、アドレス情報をそのまま使用する。障害発生によりACT系とSBY系の切り替えが発生したら、その後の電源投入直後のSBY系サーバとしての第1のサーバ1111から各エンドポイント1122のアクセスについては、アドレス変換を実施する。これにより、同一のエンドポイントに対して、2つのCPUがアクセスする機能を実現する。
Therefore, in the second related technology, the
このような第2の関連技術を使用すると、エンドポイント1122を複数のサーバ1110、1111で共有する仕組みを実現可能となる。また、エンドポイント1122側の処理が増加した場合には、エンドポイント1122を増設することで、拡張性のあるシステム構成を実現することができる。
When such a second related technology is used, it is possible to realize a mechanism for sharing the
しかしながら、サーバ1110、1111側の負荷が増えた際、第2の関連技術を使用した場合には、サーバ1110、1111の数をこれに応じて増設する手法を採用することができない。サーバ1110、1111の数を増設する手法を採用すると、ACT系のサーバ1110が増えてしまうことになるが、この場合、複数のACT系サーバがエンドポイント1122にアクセスすることは不可能だからである。そこで、第2の関連技術を使用する手法では、サーバ1110、1111側の負荷が増加した際にこれらサーバの数を増やさず、サーバ自体の能力を向上させる対処方法を採用することになる。しかしながら、サーバ1110、1111自体の能力を向上させるには、自ずと限界がある。
However, when the load on the
また、この第2の関連技術では、FC(Fibre Channel)を使用する記憶装置を用いることで、複数のサーバがメモリを共有可能なシステムを構築することも提案した。これにより、PCIeを用いて、複数のエンドポイントと複数のサーバを1つのシステムとして構成することが可能になる。 In the second related technique, it has also been proposed to construct a system in which a plurality of servers can share memory by using a storage device using FC (Fibre Channel). This makes it possible to configure a plurality of endpoints and a plurality of servers as one system using PCIe.
ところが、FCを使用する記憶装置およびネットワーク機器は高価であり、かつスループットの向上が、イーサネット(登録商標)、インフィニバンド(infiniband)等の他のインタフェイス仕様よりも劣ることが欠点となる。また、PCIeデータパケットを、FCプロトコルでカプセル化し、サーバと記憶装置間で転送するため、プロトコル処理部にオーバヘッドが生じ、CPU側の負荷が高くなり高速データ転送に影響が出ることが欠点と考えられる。 However, storage devices and network devices that use FC are expensive, and the improvement in throughput is inferior to other interface specifications such as Ethernet (registered trademark) and infiniband. In addition, since the PCIe data packet is encapsulated by the FC protocol and transferred between the server and the storage device, overhead is generated in the protocol processing unit, the load on the CPU side is increased, and high-speed data transfer is affected. It is done.
また、FCを用いたシステムでは、一般的には記憶媒体としてハードディスク(HD)が用いられる。ハードディスクはデータの蓄積に対して機械的な構造が必要不可欠であり、電気信号のみでデータの蓄積が可能である一般的なメモリと比較して、リードおよびライト(Read/Wirte)ともにスピードが遅いことが欠点となる。このため、ハードディスクを用いた場合にはリードおよびライトの高速化のためには、複数のディスクをパラレルに動作させることが一般的となる。これによりデータの読み書きの高速化を実現可能であるものの、多数のハードディスクが必要となるため、ディスク容量を必要としないシステムでは、コスト的に不利となる。 In a system using FC, a hard disk (HD) is generally used as a storage medium. A hard disk requires a mechanical structure for data storage, and both read and write (Read / Wirte) speeds are slower than a general memory that can store data using only electrical signals. This is a drawback. Therefore, when a hard disk is used, it is common to operate a plurality of disks in parallel in order to increase the reading and writing speed. Although this makes it possible to increase the speed of reading and writing data, a large number of hard disks are required, which is disadvantageous in terms of cost in systems that do not require disk capacity.
そこで本発明の目的は、サーバと記憶装置をPCIeで接続し、複数のサーバの中の特定のサーバと統合エンドポイントの間のデータ転送の高速化を図ったエンドポイント共有システムおよびデータ転送方法を提供することにある。 SUMMARY OF THE INVENTION An object of the present invention is to provide an endpoint sharing system and a data transfer method for connecting a server and a storage device by PCIe and accelerating data transfer between a specific server of a plurality of servers and an integrated endpoint. It is to provide.
本発明では、(イ)コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける所定のエンドポイントから現用系のサーバとしての主サーバにPCIeパケットを送信する統合エンドポイント側送信手段と、(ロ)この統合エンドポイント側送信手段の送信したPCIeパケットに格納されたデータを処理する拡張サーバを決定する拡張サーバ決定手段と、(ハ)この拡張サーバ決定手段で決定した拡張サーバのサーバ名を前記したPCIeパケットに挿入する拡張サーバ名挿入手段と、(ニ)この拡張サーバ名挿入手段でサーバ名を挿入したPCIeパケットを前記した主サーバから所定の記憶装置に送信する主サーバ側送信手段と、(ホ)この主サーバ側送信手段で送信したPCIeパケットを受信して前記した記憶装置内の1次共有メモリに書き込む1次共有メモリ書込手段と、(へ)この1次共有メモリ書込手段で前記した1次共有メモリに書き込んだPCIeパケットを、アクティブ系およびスタンバイ系の各サーバのそれぞれに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する2次共有メモリのうちの前記した拡張サーバ決定手段で決定した2次共有メモリに転送する2次共有メモリ転送手段とをエンドポイント共有システムが具備する。 In the present invention, (a) an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints (B) processing the data stored in the PCIe packet transmitted by the integrated endpoint side transmission means, which transmits the PCIe packet from the predetermined endpoint to the main server as the active server; Extended server determining means for determining an extended server; (c) extended server name inserting means for inserting the server name of the extended server determined by the extended server determining means into the PCIe packet; and (d) inserting the extended server name. Main server with PCIe packet with server name inserted by means Main server side transmitting means for transmitting to a predetermined storage device, and (e) a primary shared memory book for receiving the PCIe packet transmitted by the main server side transmitting means and writing it to the primary shared memory in the storage device. And (1) the PCIe packet written in the primary shared memory by the primary shared memory writing means is provided corresponding to each of the active and standby servers individually. The endpoint sharing system includes secondary shared memory transfer means for transferring to the secondary shared memory determined by the extended server determination means among the secondary shared memories used for individual transfer of data to and from.
また、本発明では、(イ)コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける特定のエンドポイントに対して任意の主サーバおよび拡張サーバがデータの送信を行うときそのPCIeパケットに前記した特定のエンドポイントを表わす識別情報を挿入する拡張サーバ側挿入手段と、(ロ)この拡張サーバ側挿入手段で前記した識別情報を挿入したPCIeパケットを、それぞれの主サーバおよび拡張サーバに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する複数の2次共有メモリのうちの送信元の前記した任意の主サーバおよび拡張サーバに対応する2次共有メモリに格納する2次共有メモリ格納手段と、(ハ)この2次共有メモリ格納手段が前記した2次共有メモリのいずれかにPCIeパケットを格納したとき前記した識別情報を読み出してこの識別情報から判別されるエンドポイント宛にPCIeパケットを送信するPCIeパケット送信手段とをエンドポイント共有システムが具備する。 In the present invention, (b) an integrated end composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of end points. An expansion server side insertion means for inserting identification information representing the specific endpoint described above into the PCIe packet when an arbitrary main server and expansion server transmit data to the specific endpoint at the point; A plurality of PCIe packets into which the above-described identification information is inserted by the extension server side inserting means are individually provided for each main server and extension server and used for individual transfer of data to and from these servers. For any of the primary servers and expansion servers of the transmission source in the next shared memory Secondary shared memory storage means for storing in the secondary shared memory; and (c) when the secondary shared memory storage means stores the PCIe packet in any of the secondary shared memories, and reads out the identification information. The endpoint sharing system includes PCIe packet transmitting means for transmitting a PCIe packet to the endpoint determined from the identification information.
更に本発明では、(イ)コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける所定のエンドポイントから現用系のサーバとしての主サーバにPCIeパケットを送信する統合エンドポイント側送信ステップと、(ロ)この統合エンドポイント側送信ステップで送信したPCIeパケットを受信した主サーバがこのPCIeパケットに格納されたデータを処理する拡張サーバを決定する拡張サーバ決定ステップと、(ハ)この拡張サーバ決定ステップで決定した拡張サーバのサーバ名を前記したPCIeパケットに挿入する拡張サーバ名挿入ステップと、(ニ)この拡張サーバ名挿入ステップでサーバ名を挿入したPCIeパケットを前記した主サーバから所定の記憶装置に送信する主サーバ側送信ステップと、(ホ)この主サーバ側送信ステップで送信したPCIeパケットを受信して前記した記憶装置内の1次共有メモリに書き込む1次共有メモリ書込ステップと、(へ)この1次共有メモリ書込ステップで前記した1次共有メモリに書き込んだPCIeパケットを、アクティブ系およびスタンバイ系の各サーバのそれぞれに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する2次共有メモリのうちの前記した拡張サーバ決定ステップで決定した2次共有メモリに転送する2次共有メモリ転送ステップとをデータ転送方法が具備する。 Furthermore, in the present invention, (a) an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints (B) The main server that has received the PCIe packet transmitted in the integrated endpoint side transmission step transmits the PCIe packet from the predetermined endpoint to the main server as the active server. An expansion server determination step for determining an expansion server for processing data stored in the PCIe packet; and (c) an expansion server name insertion step for inserting the server name of the expansion server determined in the expansion server determination step into the PCIe packet. And (d) this expansion server A main server side transmission step of transmitting the PCIe packet with the server name inserted in the insertion step from the main server to the predetermined storage device; and (e) receiving the PCIe packet transmitted in the main server side transmission step A primary shared memory write step for writing to the primary shared memory in the storage device; and (f) the PCIe packet written to the primary shared memory in the primary shared memory write step for the active and standby systems. Transfer to the secondary shared memory determined in the above-described extended server determination step among the secondary shared memories provided individually corresponding to each server and used for individual transfer of data to and from these servers 2 And a next shared memory transfer step.
更にまた本発明では、(イ)コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける特定のエンドポイントに対してデータの送信を行う任意の主サーバおよび拡張サーバがPCIeパケットに前記した特定のエンドポイントを表わす識別情報を挿入する拡張サーバ側挿入ステップと、(ロ)この拡張サーバ側挿入ステップで前記した識別情報を挿入したPCIeパケットを、それぞれの主サーバおよび拡張サーバに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する複数の2次共有メモリのうちの自サーバに対応する2次共有メモリに格納する2次共有メモリ格納ステップと、(ハ)この2次共有メモリ格納ステップで前記した2次共有メモリのいずれかにPCIeパケットが格納されたとき前記した識別情報を読み出してこの識別情報から判別されるエンドポイント宛にPCIeパケットを送信するPCIeパケット送信ステップとをデータ転送方法が具備する。 Furthermore, in the present invention, (a) an integrated end composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for a computer and a plurality of end points. An expansion server-side insertion step in which an arbitrary primary server and an expansion server that transmit data to a specific endpoint at a point insert identification information representing the specific endpoint described above into a PCIe packet; A plurality of secondary shares used for individually transferring data to and from each of the main servers and expansion servers provided with the PCIe packet in which the identification information is inserted in the server-side insertion step. The secondary shared memory stored in the secondary shared memory corresponding to its own server A memory storing step; and (c) when the PCIe packet is stored in any of the secondary shared memories described in the secondary shared memory storing step, the identification information is read out and addressed to the endpoint determined from the identification information The data transfer method includes a PCIe packet transmission step of transmitting a PCIe packet to the network.
以上説明したように本発明によれば、統合エンドポイント側から送出するPCIeパケットを記憶装置に送り、ここで主サーバ側からの転送先のサーバの選択結果の組み込み処理および転送先のサーバにデータを渡すための2次共有メモリへのデータの格納処理を行うことにした。これにより、主サーバに搭載されているCPUの負荷を軽減することができる。 As described above, according to the present invention, the PCIe packet sent from the integrated endpoint side is sent to the storage device, where the process of incorporating the transfer destination server selection result from the main server side and the data to the transfer destination server To store data in the secondary shared memory for passing the data. Thereby, the load on the CPU mounted on the main server can be reduced.
また、本発明によればサーバからエンドポイント側にデータを転送する場合、PCIeパケットに転送先のエンドポイントの識別情報を組み込んで複数の2次共有メモリのうちの送信元のサーバに対応する2次共有メモリに格納することにした。これにより、サーバに搭載されているCPUの負荷を軽減して宛先のエンドポイントにPCIeパケットを転送することができる。 Further, according to the present invention, when data is transferred from the server to the endpoint side, the identification information of the transfer destination endpoint is incorporated into the PCIe packet, and 2 corresponding to the transmission source server among the plurality of secondary shared memories. Next decided to store in shared memory. Thereby, it is possible to reduce the load on the CPU mounted on the server and transfer the PCIe packet to the destination endpoint.
図1は、本発明のエンドポイント共有システムのクレーム対応図を示したものである。本発明のエンドポイント共有システム10は、統合エンドポイント側送信手段11と、拡張サーバ決定手段12と、拡張サーバ名挿入手段13と、主サーバ側送信手段14と、1次共有メモリ書込手段15と、2次共有メモリ転送手段16を備えている。ここで、統合エンドポイント側送信手段11は、統合エンドポイントにおける所定のエンドポイントから現用系のサーバとしての主サーバにPCIeパケットを送信する。統合エンドポイントは、コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成されている。拡張サーバ決定手段12は、統合エンドポイント側送信手段11の送信したPCIeパケットに格納されたデータを処理する拡張サーバを決定する。拡張サーバ名挿入手段13は、拡張サーバ決定手段12で決定した拡張サーバのサーバ名を前記したPCIeパケットに挿入する。主サーバ側送信手段14は、拡張サーバ名挿入手段13でサーバ名を挿入したPCIeパケットを前記した主サーバから所定の記憶装置に送信する。1次共有メモリ書込手段15は、主サーバ側送信手段14で送信したPCIeパケットを受信して前記した記憶装置内の1次共有メモリに書き込む。2次共有メモリ転送手段16は、PCIeパケットを、アクティブ系およびスタンバイ系の各サーバのそれぞれに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する2次共有メモリのうちの前記した拡張サーバ決定手段12で決定した2次共有メモリに転送する。このPCIeパケットは、1次共有メモリ書込手段15で前記した1次共有メモリに書き込んだパケットである。
FIG. 1 is a diagram corresponding to claims of the endpoint sharing system of the present invention. The
図2は、本発明の他のエンドポイント共有システムのクレーム対応図を示したものである。本発明の他のエンドポイント共有システム20は、拡張サーバ側挿入手段21と、2次共有メモリ格納手段22と、PCIeパケット送信手段23を備えている。ここで、拡張サーバ側挿入手段21は、統合エンドポイントにおける特定のエンドポイントに対して任意の主サーバおよび拡張サーバがデータの送信を行うときそのPCIeパケットに前記した特定のエンドポイントを表わす識別情報を挿入する。統合エンドポイントは、コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成されている。2次共有メモリ格納手段22は、PCIeパケットを、それぞれの主サーバおよび拡張サーバに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する複数の2次共有メモリのうちの送信元の前記した任意の主サーバおよび拡張サーバに対応する2次共有メモリに格納する。このPCIeパケットは、拡張サーバ側挿入手段21で前記した識別情報を挿入したパケットである。PCIeパケット送信手段23は、2次共有メモリ格納手段22が前記した2次共有メモリのいずれかにPCIeパケットを格納したとき前記した識別情報を読み出してこの識別情報から判別されるエンドポイント宛にPCIeパケットを送信する。
FIG. 2 is a diagram corresponding to claims of another endpoint sharing system of the present invention. Another
図3は、本発明のデータ転送方法のクレーム対応図を示したものである。本発明のデータ転送方法30は、統合エンドポイント側送信ステップ31と、拡張サーバ決定ステップ32と、拡張サーバ名挿入ステップ33と、主サーバ側送信ステップ34と、1次共有メモリ書込ステップ35と、2次共有メモリ転送ステップ36を備えている。ここで、統合エンドポイント側送信ステップ31では、統合エンドポイントにおける所定のエンドポイントから現用系のサーバとしての主サーバにPCIeパケットを送信する。統合エンドポイントは、コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成されている。拡張サーバ決定ステップ32では、統合エンドポイント側送信ステップ31で送信したPCIeパケットを受信した主サーバがこのPCIeパケットに格納されたデータを処理する拡張サーバを決定する。拡張サーバ名挿入ステップ33では、拡張サーバ決定ステップ32で決定した拡張サーバのサーバ名を前記したPCIeパケットに挿入する。主サーバ側送信ステップ34では、拡張サーバ名挿入ステップ33でサーバ名を挿入したPCIeパケットを前記した主サーバから所定の記憶装置に送信する。1次共有メモリ書込ステップ35では、主サーバ側送信ステップ34で送信したPCIeパケットを受信して前記した記憶装置内の1次共有メモリに書き込む。2次共有メモリ転送ステップ36では、PCIeパケットを、アクティブ系およびスタンバイ系の各サーバのそれぞれに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する2次共有メモリのうちの前記した拡張サーバ決定ステップ32で決定した2次共有メモリに転送する。このPCIeパケットは、1次共有メモリ書込ステップ35で前記した1次共有メモリに書き込んだものである。
FIG. 3 is a diagram corresponding to claims of the data transfer method of the present invention. The
図4は、本発明のデータ転送方法のクレーム対応図を示したものである。本発明のデータ転送方法40は、拡張サーバ側挿入ステップ41と、2次共有メモリ格納ステップ42と、PCIeパケット送信ステップ43とを備えている。ここで、拡張サーバ側挿入ステップ41では、統合エンドポイントにおける特定のエンドポイントに対してデータの送信を行う任意の主サーバおよび拡張サーバがPCIeパケットに前記した特定のエンドポイントを表わす識別情報を挿入する。統合エンドポイントは、コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成されている。2次共有メモリ格納ステップ42では、拡張サーバ側挿入ステップ41で前記した識別情報を挿入したPCIeパケットを、それぞれの主サーバおよび拡張サーバに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する複数の2次共有メモリのうちの自サーバに対応する2次共有メモリに格納する。PCIeパケット送信ステップ43では、2次共有メモリ格納ステップ42で前記した2次共有メモリのいずれかにPCIeパケットが格納されたとき前記した識別情報を読み出してこの識別情報から判別されるエンドポイント宛にPCIeパケットを送信する。
FIG. 4 shows a claim correspondence diagram of the data transfer method of the present invention. The
<発明の実施の形態> <Embodiment of the Invention>
次に本発明の実施の形態を説明する。 Next, an embodiment of the present invention will be described.
図5は、本発明の実施の形態によるエンドポイント共有システムを表わしたものである。このエンドポイント共有システム100は、第1および第2の統合エンドポイント1011、1012を備えている。また、エンドポイント共有システム100はACT(active)系サーバ群として第0−0のサーバ(Server#0−0)103と、第0−1のサーバ(Server#0−1)1041、およびSBY(standby)系サーバ群としての第1−0のサーバ(Server#1−0)105と、第1−1のサーバ(Server#1−1)1061を備えている。更にエンドポイント共有システム100は、記憶装置107を備えている。記憶装置107と、第0−0、第0−1、第1−0および第1−1の各サーバ103〜1061は、直接接続される他、LAN(Local Area Network)108を介して接続されている。第1の統合エンドポイント1011と、第0−0のサーバ103および第1−0のサーバ105は直接接続されている。第2の統合エンドポイント1012と、第0−0のサーバ103および第1−0のサーバ105も同様に直接接続されている。
FIG. 5 shows an endpoint sharing system according to an embodiment of the present invention. The
第0−0のサーバ103および第1−0のサーバ105は、本明細書で主サーバと定義するもので、第1の統合エンドポイント1011における第0〜第Nのエンドポイント(EP#0〜EP#N)1110〜111Nへのアクセス機能を持っている。これに対して第0−1のサーバ1041および第1−1のサーバ1061は、本明細書で拡張サーバと定義するもので、第0〜第Nのエンドポイント(EP#0〜EP#N)1110〜111Nへのアクセス機能を持っていない。
The 0-0
本実施の形態ではACT系サーバ群の中に拡張サーバとして1台の第0−1のサーバ1041が配置され、SBY系サーバ群の中に拡張サーバとして1台の第1−1のサーバ1061が配置されている。ACT系サーバ群あるいはSBY系サーバ群に複数台ずつの拡張サーバが配置されるようになっていてもよい。
In the present embodiment, one 0-1
第0−0、第0−1、第1−0および第1−1の各サーバ103〜1061と第1および第2の統合エンドポイント1011、1012は、それぞれ物理的に分離されている。主サーバとしての第0−0のサーバ103と第1および第2の統合エンドポイント1011、1012の間、および同じく主サーバとしての第1−0のサーバ105と第1および第2の統合エンドポイント1011、1012の間は、PCIeケーブルを用いて接続されている。ここで「PCIe」は、「PCI(Peripheral Component Interconnect)Express」を略して表記したものである。
The 0-0, the 0-1, the 1-0 and 1-1 each server 103-106 1 and the first and second
主サーバとしての第0−0のサーバ103は、第1の統合エンドポイント1011とPCIeケーブルを用いて接続するためのPCIe NICカード(Network Interface Card)(PCIe NIC#001)121を実装している。また、第0−0のサーバ103は、第2の統合エンドポイント1012とPCIeケーブルを用いて接続するためのPCIe NICカード(PCIe NIC#002)122を実装している。更に第0−0のサーバ103は、第1および第2の統合エンドポイント1011、1012とのデータのやり取りを行うインタフェイスとしてPCIe NICカード(PCIe NIC#00E)123と、拡張サーバ間とのデータのやり取りに用いるPCIe NICカード(PCIe NIC#00S)124を有する。
The 0th to
同様に、主サーバとしての第1−0のサーバ105は、第1の統合エンドポイント1011とPCIeケーブルを用いて接続するためのPCIe NICカード(PCIe NIC#101)125を実装している。また、第1−0のサーバ105は、第2の統合エンドポイント1012とPCIeケーブルを用いて接続するためのPCIe NICカード(PCIe NIC#102)126を実装している。更に第1−0のサーバ105は、第1および第2の統合エンドポイント1011、1012とのデータのやり取りを行うインタフェイスとしてPCIe NICカード(PCIe NIC#10E)127と、拡張サーバ間とのデータのやり取りに用いるPCIe NICカード(PCIe NIC#10S)128を有する。
Similarly, the 1-0
一方、拡張サーバとしての第0−1および第1−1のサーバ1041、1061は記憶装置107と接続するために、1系統のPCIe NICカードを有する。すなわち第0−1のサーバ1041は、サーバ間のデータのやり取りに用いるPCIe NICカード(PCIe NIC#01S)131を有する。第1−1のサーバ1061は、サーバ間のデータのやり取りに用いるPCIe NICカード(PCIe NIC#11S)132を有する。
On the other hand, the 0-1st and 1-
次に第1および第2の統合エンドポイント1011、1012について説明する。ただし第2の統合エンドポイント1012は第1の統合エンドポイント1011と同一の構成となっているので、その具体的な構成の図示および説明は省略する。
Next, the first and second
第1の統合エンドポイント1011は、前記した第0〜第Nのエンドポイント(EP#0〜EP#N)1110〜111NとPCIプロシキ(Proxy)機能部141によって構成されている。PCIプロシキ機能部141と第0〜第Nのエンドポイント1110〜111Nの間は、それぞれPCIeバスを用いて接続されている。
The first
PCIプロシキ機能部141は、コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部である。PCIプロシキ機能部141は、図示しないがCPUと、このCPUが実行する制御プログラムを格納した同じく図示しないROM(Read Only Memory)等の記録媒体を有しており、次の各部を備えている。
The PCI
(a)第0のポート1510
第0−0のサーバ103とピーシーアイエクスプレスケーブル161を介して接続される。
(b)第1のポート1511
第1−0のサーバ105とピーシーアイエクスプレスケーブル162を介して接続される。
(c)ACT(active)・SBY(standby)選択機能部152
第0−0のサーバ103および第0−1のサーバ1041からなるACT系サーバ群と、第1−0のサーバ105と、第1−1のサーバ1061からなるSBY系サーバ群の一方をACT(現用)系に、他方をSBY(待機)系に選択する。
(d)第0の仮想PCIeコンフィグ(Configuration)レジスタ1540
各エンドポイント111のピーシーアイエクスプレスコンフィグレジスタ情報を格納する。
(e)第1の仮想PCIeコンフィグ(Configuration)レジスタ1541
各エンドポイント111のピーシーアイエクスプレスコンフィグレジスタ情報を格納する。
(f)コンフィグ(Configuration)制御部155
第0の仮想PCIeコンフィグレジスタ1540および第1の仮想PCIeコンフィグレジスタ1541を管理する。
(g)アドレス変換テーブル156
ACT系サーバ群とSBY系サーバ群のメモリ空間の差分情報としてのアドレス空間差分情報を保持する。
(h)アドレス変換部157
ACT系サーバ群とSBY系サーバ群のメモリ空間へのアクセスが同一のアドレスになるように、アドレスを変換する。
(i)アドレス変換・振り分け機能部158
ACT系サーバ群とSBY系サーバ群のうちのACT系のサーバと接続されたポートとの間でピーシーアイエクスプレスパケットを振り分ける。
(j)第0〜第NのPCIeポート(Port)1590〜159N
第0〜第Nのエンドポイント1110〜111Nをそれぞれ対応して接続する。
(A)
It is connected to the 0th-
(B)
The first 1-0
(C) ACT (active) / SBY (standby)
And ACT-based server
(D) 0th virtual
PC i Express Config register information of each
(E) First virtual
PC i Express Config register information of each
(F)
Zeroth managing virtual PCIe configuration registers 154 0 and the first virtual
(G) Address conversion table 156
Address space difference information is held as difference information of the memory space between the ACT server group and the SBY server group.
(H)
The address is converted so that the access to the memory space of the ACT server group and the SBY server group is the same address.
(I) Address conversion /
PC iExpress packets are distributed between the ACT server group and the port connected to the ACT server in the SBY server group.
(J) 0th to Nth PCIe ports (Port) 159 0 to 159 N
The 0th to
PCIプロシキ機能部141を更に具体的に説明する。第0のポート1510および第1のポート1511は、ピーシーアイエクスプレスパケットで転送されるACT制御信号を識別する。そして、ACT切替指示がACT系サーバ群もしくはSBY系サーバ群から送付された場合には、ACT・SBY選択機能部152に対してACT・SBY切替指示を出す。ACT・SBY選択機能部152は、アドレス変換・振り分け機能部158に対して、ACT系のサーバがACT系サーバ群もしくはSBY系サーバ群を示す信号を送出する。アドレス変換・振り分け機能部158は、ACT系のサーバと接続されたポートとの接続を維持し、SBY系のポートとのデータを交換しない。
The PCI
コンフィグ制御部155は、第0〜第Nのエンドポイント1110〜111Nが保持する、ピーシーアイエクスプレスコンフィグレーションレジスタ(図示せず)を制御する機能を有する。また、第0の仮想PCIeコンフィグ(Configuration)レジスタ1540および第1の仮想PCIeコンフィグ(Configuration)レジスタ1541に対して、各エンドポイント111のピーシーアイエクスプレスコンフィグレジスタ情報の内容を反映させる機能を有する。ACT系サーバ群とSBY系サーバ群は、第0の仮想PCIeコンフィグレジスタ1540および第1の仮想PCIeコンフィグレジスタ1541に対して、ピーシーアイエクスプレスコンフィグレーション情報のリード(Read)およびライト(Write)を行う。このため、第0−0のサーバ103、第0−1のサーバ1041、第1−0のサーバ105および第1−1のサーバ1061から各エンドポイント111のピーシーアイエクスプレスコンフィグレジスタレジスタが直接制御されることはない。各エンドポイント111のピーシーアイエクスプレスコンフィグレジスタレジスタは、コンフィグ制御部155を経由してアクセスする。
The
また、コンフィグ制御部155は、第0の仮想PCIeコンフィグレジスタ1540および第1の仮想PCIeコンフィグレジスタ1541に設定されたピーシーアイエクスプレスコンフィグレーションレジスタ情報から、ACT系サーバ群とSBY系サーバ群が保持しているピーシーアイエクスプレスメモリ空間マップ情報を取得する。そして、第0−0のサーバ103、第0−1のサーバ1041、第1−0のサーバ105および第1−1のサーバ1061がメモリ空間上に各エンドポイント111をどのように配置したかを認識する。差分がある場合には、ACT系サーバ群のメモリ空間に対して、SBY系サーバ群のメモリ空間の差分を計算し、得られた差分情報をアドレス変換テーブル156に転送する。
Further,
アドレス変換部157は、アドレス変換テーブル156から送信されるACT系サーバ群とSBY系サーバ群についてのアドレス空間差分情報を取得する。そして、SBY系サーバ群のメモリ空間へのアクセスをACT系サーバ群のメモリ空間へのアクセスと同一のアドレスになるように、アドレス変換処理を実施する。また、SBY系サーバ群と各エンドポイント111の間でのアクセスの際に、ピーシーアイエクスプレスパケットを交換する。
The
アドレス変換・振り分け機能部158は、各エンドポイント111に対するピーシーアイエクスプレスパケットの振り分けを、ピーシーアイエクスプレスパケットヘッダ内に格納されたアドレス情報を基にして実施する。各エンドポイント111からサーバ方向に流れるパケットは、ACT・SBY選択機能部152から送信されるACT情報を基にして、ACT系サーバ群と接続されたポート方向にのみにパケットを送信する。
The address conversion /
次に、記憶装置107について説明する。記憶装置107は、LAN108を介して第0−0のサーバ103、第0−1のサーバ1041、第1−0のサーバ105および第1−1のサーバ1061と接続されている。これにより、記憶装置107に格納されたデータを、第0−0のサーバ103、第0−1のサーバ1041、第1−0のサーバ105および第1−1のサーバ1061が共有可能となる。
Next, the
本実施の形態の記憶装置107は、DRAM(Dynamic Random Access Memory)、FRAM(FeRAM)等の汎用の半導体メモリを用いる。また、第0−0のサーバ103、第0−1のサーバ1041、第1−0のサーバ105および第1−1のサーバ1061と記憶装置107の間のデータ転送にはPCIeを用いる。これらの部品、データ転送規格は、汎用品および標準化された規格であり、安価に市場に出回っているものを使用可能である。
The
第0〜第Nのエンドポイント1110〜111Nにアクセス可能なサーバは、第0−0のサーバ103および第1−0のサーバ105のみである。第0−1のサーバ1041および第1−1のサーバ1061がエンドポイント111にアクセスする場合には、対象となるデータを記憶装置107に一旦転送する。そして、第0−0のサーバ103あるいは第1−0のサーバ105のうちの該当するものを経由してエンドポイント111にアクセスを実施する。
Only the 0-0
<動作説明>
次に、以上のような構成のエンドポイント共有システム100の動作を説明する。
<Description of operation>
Next, the operation of the
第0−0のサーバ103、第0−1のサーバ1041、第1−0のサーバ105および第1−1のサーバ1061は、図示しないがCPUを搭載している。これらのサーバに搭載されたCPUから第0〜第Nのエンドポイント1110〜111Nに対するピーシーアイエクスプレスアクセスは、大別すると、ピーシーアイエクスプレスコンフィグレーションレジスタ(コンフィグレジスタ)へのアクセスと、実データのアクセスの2種類が存在する。本実施の形態のエンドポイント共有システム100では、ピーシーアイエクスプレスコンフィグレーションレジスタへのアクセスはコンフィグ制御部155が中心となって処理を実行する。また、実データのアクセスは、アドレス変換部157と、アドレス変換・振り分け機能部158が中心となって、これらの処理を実行する。エンドポイント共有システム100では、ピーシーアイエクスプレスコンフィグレーションレジスタへのアクセスを、電源投入時に実行する。ピーシーアイエクスプレスコンフィグレーションレジスタが一旦設定された後は、第0−0のサーバ103、第0−1のサーバ1041、第1−0のサーバ105および第1−1のサーバ1061に切り替えが発生しても設定変更が行われない。
The 0-0
<コンフィグレーション処理> <Configuration processing>
図6は、サーバの電源投入後のアドレス変換テーブル作成までのコンフィグレーション処理の様子を示したものである。図5と共に説明する。 FIG. 6 shows how the configuration process is performed until the address conversion table is created after the server is turned on. This will be described with reference to FIG.
エンドポイント111へのコンフィグレーションを行うのは、第0−0のサーバ103と第1−0のサーバ105である。汎用サーバでは、その電源投入直後に、ピーシーアイエクスプレスバス配下のエンドポイントを検索し、PCIメモリ空間上にエンドポイントのマッピングを行う。本実施の形態のエンドポイント共有システム100では、第1の統合エンドポイント1011が第0−0のサーバ103(「Server#0−0)と第1−0のサーバ105(Server#1−0)からのピーシーアイエクスプレスコンフィグレジスタへのアクセスに対して、代理で応答する機能を有する。これにより、第0−0のサーバ103あるいは第1−0のサーバ105が第0〜第Nのエンドポイント1110〜111Nをメモリ空間上にマッピングすることを可能にする。
It is the 0-0
これを具体的に説明する。図6に示すように第0−0のサーバ103と第1−0のサーバ105の電源がある時刻t1にオン(On)になったとする。コンフィグ制御部155は、第1の統合エンドポイント1011に接続された第0〜第Nのエンドポイント1110〜111Nのピーシーアイエクスプレスコンフィグレーション空間を、第0−0のサーバ103あるいは第1−0のサーバ105に代わってリード(Read)する(ステップS201)。図6では、第Xのエンドポイント111Xを「EP#X」(ただし、Xは0〜Nの間の任意の整数。)と簡略化して表記している。以下の図でも同様である。
This will be specifically described. As shown in FIG. 6, it is assumed that the powers of the 0-0
図6に示した例では、まず時刻t2に第0のエンドポイント1110(「EP#0」)がリードされ、続いて第1のエンドポイント1111(「EP#1」)がリードされる。以下同様にして、第Nのエンドポイント111N(「EP#N」)までリードが実行される。
In the example shown in FIG. 6, first, the 0th endpoint 111 0 (“
コンフィグ制御部155は、このステップS201によるリードした結果を、第0および第1の仮想PCIeコンフィグレジスタ1540、1541に反映させる。これにより、第0−0のサーバ103と第1−0のサーバ105が、第0〜第Nのエンドポイント1110〜111Nのピーシーアイエクスプレスコンフィグレーションレジスタの内容を、コンフィグ制御部155経由でリードすることが可能になる。
The
ところで、時刻t1の電源投入時にACT(active)系サーバ群が現用系に設定されているとする。また、これを基にして第Nのエンドポイント111N(「EP#N」)までのリードが終了した後の時刻t3に第0のポート1510がACTの状態で、第1のポート1511がSBYの状態であるとする。時刻t3以後における第0−0のサーバ103と第1の統合エンドポイント1011の間でのコンフィグレーションデータの処理の様子を、図6ではステップS202として一括して示している。また、図6では、この場合における第1−0のサーバ105と第1の統合エンドポイント1011の間でのコンフィグレーションデータの処理の様子を、ステップS203として一括して示している。
By the way, it is assumed that the ACT (active) server group is set to the active system when the power is turned on at time t 1 . Further, this basis the N endpoint 111 N ( "EP # N") to the time t 3 after the previous read is finished in the state of the
最初に、ACT系の第0−0のサーバ103と第1の統合エンドポイント1011の間で行われるステップS202の処理について説明する。第0−0のサーバ103は、まず第0の仮想PCIeコンフィグレジスタ1540に格納された第0のエンドポイント1110(「EP#0」)の内容をリードし、第0のエンドポイント1110に書き込むコンフィグレーションデータを第0の仮想PCIeコンフィグレジスタ1540にライトする。コンフィグ制御部155は、第0−0のサーバ103から第0の仮想PCIeコンフィグレジスタ1540にデータがライトされると、このコンフィグレーションデータを第0のPCIeポート1590を経由して、第0のエンドポイント1110に対してライトを実施する。この第0のエンドポイント1110のピーシーアイエクスプレスコンフィグレーションレジスタへのライトは、図6で時刻t4に行われている。
First, the process of step S202 performed between the ACT 0-0
同様に、第0−0のサーバ103は、第0の仮想PCIeコンフィグレジスタ1540に格納された第1のエンドポイント1111(「EP#1」)の内容をリードし、第1のエンドポイント1111に書き込むコンフィグレーションデータを第0の仮想PCIeコンフィグレジスタ1540にライトする。コンフィグ制御部155は、第0−0のサーバ103から第0の仮想PCIeコンフィグレジスタ1540にデータがライトされると、このコンフィグレーションデータを第1のPCIeポート1591を経由して、第1のエンドポイント1111に対してライトを実施する。
Similarly, the 0th-
以下同様にして、第0−0のサーバ103は、第0の仮想PCIeコンフィグレジスタ1540に格納された第2のエンドポイント1112(「EP#2」(図示せず))以降の処理を順に行う。そして、第0の仮想PCIeコンフィグレジスタ1540に格納された第Nのエンドポイント111N(「EP#N」)の内容をリードすると、第Nのエンドポイントに書き込むコンフィグレーションデータを第0の仮想PCIeコンフィグレジスタ1540にライトする。コンフィグ制御部155は、第0−0のサーバ103から第0の仮想PCIeコンフィグレジスタ1540にデータがライトされると、このコンフィグレーションデータを第NのPCIeポート159Nを経由して、第Nのエンドポイント111Nに対してライトを実施する。
In the same manner, the 0-0
次に、SBY系の第1−0のサーバ105と第1の統合エンドポイント1011の間で行われるステップS203の処理について説明する。第1−0のサーバ105は、まず第1の仮想PCIeコンフィグレジスタ1541に格納された第0のエンドポイント1110(「EP#0」)の内容をリードし、第0のエンドポイントに書き込むコンフィグレーションデータを第1の仮想PCIeコンフィグレジスタ1541にライトする。しかしながら、この場合、コンフィグ制御部155は、代理で第0のエンドポイント1110に対してライトを実施することはない。
Next, a description is given of processing of step S203 which is performed between the first 1-0
以下同様にして、第1−0のサーバ105は、第1の仮想PCIeコンフィグレジスタ1540に格納された第1のエンドポイント1111(「EP#1」)以降の処理を順に行う。そして、第1の仮想PCIeコンフィグレジスタ1541に格納された第Nのエンドポイント111N(「EP#N」)の内容をリードすると、第Nのエンドポイントに書き込むコンフィグレーションデータを第1の仮想PCIeコンフィグレジスタ1541にライトする。しかしながら、この場合も、コンフィグ制御部155は、代理で第Nのエンドポイント111Nに対してライトを実施することはない。
In the same manner, the
以上説明したように、電源投入後は、第0−0のサーバ103が現用系サーバとして固定されている。この状態で、第1の統合エンドポイント1011は、第0−0のサーバ103からのピーシーアイエクスプレスコンフィグレーションに対するリードおよびライト処理のみ、第0〜第Nのエンドポイント1110〜111Nに反映させる(ステップS202)。待機系サーバである第1−0のサーバ105からのアクセスについては、第1の統合エンドポイント1011内部でデータを保持し、第0〜第Nのエンドポイント1110〜111Nへの反映は実施しない(ステップS203)。
As described above, after power-on, the 0-0
ところで、第1−0のサーバ105によるピーシーアイエクスプレスコンフィグレーションレジスタの設定内容は、第0−0のサーバ103によるコンフィグレーションレジスタの設定内容と異なる値に設定される場合がある。このため、コンフィグ制御部155では、第0−0のサーバ103と第1−0のサーバ105の双方のピーシーアイエクスプレスコンフィグレーションレジスタの設定値を保持するようになっている。
By the way, the setting contents of the PC Express configuration register by the 1-0
一方、コンフィグ制御部155では、電源投入後に得られた各サーバのピーシーアイエクスプレスコンフィグレーションレジスタ情報に含まれるベースアドレス(Base Address)の値を基にして、アドレス変換テーブル156の作成を実施する(ステップS204)。これは、第0〜第Nのエンドポイント1110〜111Nに第0−0のサーバ103あるいは第1−0のサーバ105がアクセスする際に、ベースアドレスが異ならないようにするためである。
On the other hand, the
図7はベースアドレスの概念を説明するためのものである。第0−0のサーバ103および第1−0のサーバ105は、すでに説明したようにこれらの電源の投入によって第0〜第Nのエンドポイント1110〜111Nを認識する。そして、これら第0〜第Nのエンドポイント1110〜111Nに対してピーシーアイエクスプレスコンフィグレーションレジスタの設定を実施する。コンフィグレーション処理が終了したら、第0−0のサーバ103および第1−0のサーバ105は独立してPCIeメモリ空間170、171を作成する(ステップS221、ステップS222)。
FIG. 7 is for explaining the concept of the base address. As described above, the 0-
第0−0のサーバ103および第1−0のサーバ105は、すでに説明したように第0〜第Nのエンドポイント1110〜111Nに対して直接アクセスすることができない。そこで、第1の統合エンドポイント1011内の第0および第1の仮想PCIeコンフィグレジスタ1540、1541を用いてコンフィグ制御部155を介することで、第0〜第Nのエンドポイント1110〜111Nへのアクセスを実施する。このため、仮想PCIeコンフィグレジスタ1540、1541の内部には、各エンドポイント111のコンフィグレーションレジスタと同一の構成のレジスタ(「EP#0_config」、「EP#1_config」、……、「EP#N_config」)180、181が存在する。第0−0のサーバ103および第1−0のサーバ105は、仮想PCIeコンフィグレジスタ1540、1541にアクセスを実施する。
The 0-
コンフィグ制御部155は、第0−0のサーバ103および第1−0のサーバ105のピーシーアイエクスプレスコンフィグレーション空間の情報を取得した後、各エンドポイント1111〜111Nのマッピング情報について、第0−0のサーバ103と第1−0のサーバ105の設定値の差分を算出する。これについては、次の図8のステップS223として説明する。
After acquiring the PC Express configuration space information of the 0-0
図8は、ACT系サーバ群と、SBY系サーバ群のメモリ空間を対比したものである。図5および図7と共に説明する。 FIG. 8 compares the memory space of the ACT server group and the SBY server group. This will be described with reference to FIGS. 5 and 7.
ACT系サーバ群のPCIeメモリ空間170とSBY系サーバ群のPCIeメモリ空間171を比較する。すると、前記したACT系サーバ群とSBY系サーバ群の設定値の差分の算出結果より、SBY系サーバ群のPCIeメモリ空間171の方が各エンドポイント111のベースアドレスに関して「0x0001_0000」ずつプラスされた値となっていることが分かる。したがって、コンフィグ制御部155は、第1−0のサーバ105が各エンドポイント111をアクセスする状態になったとき、アドレス変換テーブル156で、各エンドポイント111について、ベースアドレスを「0x0001_0000」だけ引いた値を設定すればよい。
The
図7に再び戻って説明を続ける。アドレス変換部157では、第1−0のサーバ105と第0〜第Nのエンドポイント1110〜111Nの間で通信が行われる際に、ピーシーアイエクスプレスパケットのヘッダ部分に格納されたアドレス情報から、「0x0001_0000」を引いた値に変更する。この変更後のアドレス情報でアクセスすることで、第0〜第Nのエンドポイント1110〜111Nに設定された、ベースアドレスを基にしたアドレス空間と矛盾が生じないアクセスを、第1−0のサーバ105に提供することが可能になる。
Returning to FIG. 7 again, the description will be continued. In the
なお、図7に示したPCIeコンフィグレーションレジスタ1631〜163N(「EP#0_config」〜「EP#N_config」)は、本来、第0〜第Nのエンドポイント1110〜111Nごとに実装されるレジスタである。したがって、これらのPCIeコンフィグレーションレジスタ1631〜163Nは、本来、ACT系サーバ群とSBY系サーバ群にそれぞれ実装されたCPUから直接制御されるべきである。しかしながら、第1の統合エンドポイント1011を用いた本実施の形態のエンドポイント共有システム100では、コンフィグ制御部155が代理で制御を行う機能を持っている。そこで、ACT系サーバ群とSBY系サーバ群の持つピーシーアイエクスプレスメモリ空間の差分をエンドポイント111に対して隠蔽することで、第0−0のサーバ103と第1−0のサーバ105の双方からアクセスが可能になるようにしている。
Note that the PCIe configuration registers 163 1 to 163 N (“EP # 0_config” to “EP # N_config”) illustrated in FIG. 7 are originally mounted for each of the 0th to Nth
<データ転送処理> <Data transfer processing>
ACT系サーバ群と第0〜第Nのエンドポイント1110〜111Nの間のデータ転送のためのアクセス時には、PCIプロシキ機能部141でのアドレス変換処理が発生しない。この場合のデータのリードおよびライトの処理を次に説明する。
At the time of access for data transfer between the ACT server group and the 0th to
図9は、ACT系サーバ群を構成する第0−0のサーバによるデータのリードおよびライトの処理を表わしたものである。図5と共に説明する。 FIG. 9 shows data read and write processing by the 0-0 servers constituting the ACT server group. This will be described with reference to FIG.
ACT系サーバ群から第0〜第Nのエンドポイント1110〜111Nへのアクセスについては、第0の仮想PCIeコンフィグレジスタ1540に設定されたベースアドレス情報を基にして、該当するエンドポイントが接続されたポートに振り分ける。具体的には、ピーシーアイエクスプレスパケットのヘッダ情報に含まれるアドレス情報を基にして、アドレス変換・振り分け機能部158がアクセス先のエンドポイント111を判断する。そして、該当するエンドポイント111が接続されたポート(第0〜第NのPCIeポート1590〜159N)に対して振分けを実施する。
For access from the ACT server group to the 0th to
また、第0〜第Nのエンドポイント1110〜111NからACT系サーバ群あるいはSBY系サーバ群へのデータ転送についても、アドレス変換・振り分け機能部158はこのうちの現用系のサーバに対してデータ転送を実施する。SBY系サーバ群が現用系の場合は、ピーシーアイエクスプレスパケットヘッダ内部のアドレス情報の変更を行わず、SBY系サーバ群へのデータを転送する。
In addition, for data transfer from the 0th to
具体例を挙げる。まず、第0−0のサーバ103から第0のポート(「Port#0」)1510を使用して、第1の統合エンドポイント1011のPCIプロシキ機能部(「PCIProxy」)141に対して、ベースアドレス情報を基にして、第0のエンドポイント(「EP#0」)1110に対するデータをライトする(ステップS241)。PCIプロシキ機能部141は、このデータを第0のエンドポイント1110にライトする(ステップS242)。この後、第0のエンドポイント1110からPCIプロシキ機能部141へデータをリードする(ステップS243)。次にPCIプロシキ機能部141からこのリードしたデータが第0−0のサーバ103へ送られる(リードする)(ステップS244)。
A specific example is given. First, using the 0th port (“
この後、第0−0のサーバ103から第0のポート1510を使用して、第1の統合エンドポイント1011のPCIプロシキ機能部141に対して、ベースアドレス情報を基にして、第1のエンドポイント(「EP#1」)1111に対するデータをライトする(ステップS245)。PCIプロシキ機能部141は、このデータを第1のエンドポイント1111にライトする(ステップS246)。この後、第1のエンドポイント1111からPCIプロシキ機能部141へデータをリードする(ステップS247)。次にPCIプロシキ機能部141からこのデータは第0−0のサーバ103へリードする(ステップS248)。以下同様にして第0−0のサーバ103によるデータのリードおよびライトの処理が続行する。
Thereafter, from the 0-0
第1−0のサーバ105と第0〜第Nのエンドポイント1110〜111Nの間のデータ転送のためのアクセス時には、PCIプロシキ機能部141でのアドレス変換処理が発生する。この場合のデータのリードおよびライトの処理を次に説明する。
At the time of access for data transfer between the 1-
図10は、SBY系サーバ群を構成する第1−0のサーバによるデータのリードおよびライトの処理を表わしたものである。図5と共に説明する。 FIG. 10 shows data read and write processing by the 1-0th servers constituting the SBY server group. This will be described with reference to FIG.
第1−0のサーバ105から第0〜第Nのエンドポイント1110〜111Nへのアクセスについて、まず第1−0のサーバ105からのデータのライトについて説明する。データのライトに関しては、アドレス変換部157においてピーシーアイエクスプレスパケットヘッダ内部のアドレス情報の変更を行って、アドレス変換・振り分け機能部158へデータを転送する。アドレス変換・振り分け機能部158では、コンフィグ制御部155で管理された情報を基に、第0〜第Nのエンドポイント1110〜111Nのいずれに振り分けを行うかを決定して、データの転送を実施する。
Regarding the access from the 1-
また、第0〜第Nのエンドポイント1110〜111Nから第0−0のサーバ103あるいは第1−0のサーバ105へのデータ転送についても、アドレス変換・振り分け機能部158は現用系サーバに対してのみデータの転送を実施する。第1−0のサーバ105が現用系の場合には、ピーシーアイエクスプレスパケットヘッダ内部のアドレス情報の変更を行って、第1−0のサーバ105へデータを転送する。
In addition, for data transfer from the 0th to
具体例を挙げる。まず、第1−0のサーバ105からACTの状態となっている第1のポート(「Port#1」)1511を介して送られたピーシーアイエクスプレスパケット(ステップS261)は、アドレス変換部157でピーシーアイエクスプレスパケットヘッダ内部のアドレス情報の変更を行う(ステップS262)。アドレス変換・振り分け機能部158は、このデータの転送を受け、コンフィグ制御部155で管理された情報を基に、第0のエンドポイント(「EP#0」)1110にこれを転送する(ステップS263)。
A specific example is given. First, the PC Express packet (step S261) sent from the 1-
第0のエンドポイント1110から送られてくるデータは、アドレス変換・振り分け機能部158によって現用系サーバとしての第1−0のサーバ105に送出するように振り分けられて、アドレス変換部157に転送される(ステップS264)。そして、ピーシーアイエクスプレスパケットヘッダ内部のアドレス情報の変更を行って(ステップS265)、第1−0のサーバ105へ転送される(ステップS266)。第1−0のサーバ105から第1〜第Nのエンドポイント(「EP#1」〜「EP#N」)1111〜111Nに転送されるデータおよび第1〜第Nのエンドポイント1111〜111Nから第1−0のサーバ105に転送されるデータについても、同様である。そこで、ステップS267〜ステップS278の処理についての説明は省略する。
Data sent from the
<ACT切替動作> <ACT switching operation>
図11は、ACT系とSBY系の切替動作を示したものである。ここでは、第0−0のサーバ103が現用系で、第1−0のサーバ105が待機系の場合を例として示す。第0−0のサーバ103が待機系で、第1−0のサーバ105が現用系の場合も、動作は同様である。図5と共に説明する。
FIG. 11 shows the switching operation between the ACT system and the SBY system. Here, a case where the 0-0
第0−0のサーバ103と第1−0のサーバ105は、LAN(Local Area Network)108等の何らかの信号伝達手段を用いて、周期的に互いの状態を監視する機能を有する。このような機能は、たとえば第0−0のサーバ103と第1−0のサーバ105にそれぞれ搭載されたCPUが第0−0のサーバ103と第1−0のサーバ105内の記録媒体(図示せず)に格納された制御プログラムを実行することによって実現する。
The 0-0
待機系の第1−0のサーバ105からの応答要求に対して、現用系の第0−0のサーバ103が応答を返さない場合があったとする。この場合、第1−0のサーバ105は第0−0のサーバ103に何らかの異常が発生したことを検出する(ステップS291)。そして、これを基にして系切替動作を開始する(ステップS292)。
Assume that the active 0th-0
この系切替動作で、第1−0のサーバ105は、自身が直接接続している第1の統合エンドポイント1011の待機系となっている第1のポート(「Port#1」)1511に対して、系切替要求をピーシーアイエクスプレスパケットとして送出する(ステップS293)。第1のポート1511では、この系切替要求を受信すると、ACT・SBY選択機能部152に対してACT・SBY切替要求信号を送信する。ACT・SBY選択機能部152は系切替要求を受信すると(ステップS294)、第0のポート(「Port#0」)1310に対してACT・SBY切替要求信号を送信する。
With this system switching operation, the 1-0
現用系となっている第0のポート1510はACT・SBY切替信号を受信すると(ステップS295)、系切替要求をピーシーアイエクスプレスパケットとして第0−0のサーバ103に送出する(ステップS296)。これにより、第0−0のサーバ103は系の切り替えを認識する(ステップS297)。第0−0のサーバ103は、これに基づき現用系と待機系の切り替えを実施し(ステップS298)、この後、系切替を実施したことをピーシーアイエクスプレスパケットを用いて第0のポート1510に対して通知する(ステップS299)。
When receiving the ACT / SBY switching signal (step S295), the
この系切替完了通知は、ACT・SBY選択機能部152で受信され、確認される(ステップS300)。ACT・SBY選択機能部152は、これを基に、第1の統合エンドポイント1011の第0のポート1510を待機系に設定し(ステップS301)、第1のポート1511を現用系に設定する(ステップS302)。その後、系の切り替えを実施したことを示す信号は、第1のポート1511から第1−0のサーバ105へピーシーアイエクスプレスパケットを用いて通知される(ステップS303)。第1−0のサーバ105は、この通知を受けると、第1−0のサーバ105が待機系から現用系に切り替わったことを確定させる(ステップS304)。
This system switching completion notification is received and confirmed by the ACT / SBY selection function unit 152 (step S300). Based on this, the ACT / SBY
次に、現用系になっている第0−0のサーバ103に異常が発生して、第1−0のサーバ105からの系切替要求の送出(ステップS293)に対する応答がない場合について説明する。この場合には、第1の統合エンドポイント1011の内部におけるACT・SBY選択機能部152が図示しないタイマを起動させる。そして、第0−0のサーバ103が正常であれば十分応答する規定時間内に、第0−0のサーバ103から応答があるかを判別する。この規定時間内に第0−0のサーバ103からの応答があれば、すでに説明した処理と同一の処理を行えばよい。
Next, a description will be given of a case where an abnormality occurs in the 0-0
これに対して、規定時間内に第0−0のサーバ103からの応答がなかったとする。この場合には、第0−0のサーバ103からの応答をそれ以上待機せずに第1−0のサーバ105は系切替完了通知を実施する。そして、今までSBY系であった第1のポート1511をACT系に切り替えることになる。
In contrast, it is assumed that there is no response from the 0-
本実施の形態のエンドポイント共有システム100では、以上とは別に、定期的な系の切り替えや保守作業を目的として、系の切り替えを開始することも可能である。待機系から現用系に切り替わった第1−0のサーバ105の第1のポート1511は、第0〜第Nのエンドポイント1110〜111Nに対する、実データの通信が可能になる。
In the
なお、第1−0のサーバ105側のピーシーアイエクスプレスコンフィグレーションレジスタは、第1−0のサーバ105の電源投入後に設定済みである。このため、第0〜第Nのエンドポイント1110〜111Nに対する、第1−0のサーバ105のメモリ空間に対応させるための、ピーシーアイエクスプレスコンフィグレーション動作は不要である。したがって、コンフィグレーションレジスタの設定変更前の第0〜第Nのエンドポイント1110〜111Nのリセットや、各ピーシーアイエクスプレスコンフィグレーションレジスタの再設定処理等の処理は不要になる。
Note that the PC Express configuration register on the 1-
このため、系の切替途中では、第0〜第Nのエンドポイント1110〜111Nと第0−0のサーバ103および第1−0のサーバ105の間の通信は実行できない。しかしながら、第1の統合エンドポイント1011内の各エンドポイント111間通信処理(たとえば、第0のエンドポイント1110からPCIプロシキ機能部141を経て第1のエンドポイント1111への通信)では、系切替動作時に通信処理を継続することが可能になる。
Therefore, communication between the 0th to Nth
<サーバ間データ転送> <Data transfer between servers>
図12は、サーバ側のソフトウェア処理の様子を表わしたものである。本実施の形態のエンドポイント共有システム100では、図5でも説明したように、ACT系サーバ群とSBY系サーバ群の2種類のサーバが使用されている。ACT系サーバ群とSBY系サーバ群は、同一の構成となっている。そこで、ACT系サーバ群を中心に、これらのサーバ群で動作するアプリケーションソフトウェアについて説明を行う。
FIG. 12 shows the state of software processing on the server side. In the
次の表1は、本実施の形態によるACT系サーバ群とSBY系サーバ群で動作するアプリケーションソフトウェアを示したものである。この表1に記載された各アプリケーションソフトウェア同士は、イベントの相互通知が可能なインタフェイスを有しており、イベント発生の検出を行うようになっている。 Table 1 below shows application software that operates in the ACT server group and the SBY server group according to the present embodiment. Each application software described in Table 1 has an interface capable of mutual notification of events, and detects the occurrence of an event.
図12では、ACT系サーバ群とSBY系サーバ群がそれぞれ1つの記憶装置107を分割して使用する形で接続している様子を示している。ここでは、便宜的に、ACT系サーバ群が接続する記憶装置部分を記憶装置1070として表わし、SBY系サーバ群が接続する記憶装置部分を記憶装置1071として表わしている。
FIG. 12 shows a state where the ACT server group and the SBY server group are connected in such a manner that one
それぞれの記憶装置1070、記憶装置1071は、アプリケーションソフトウェアがアクセス可能な領域としてのサーバ・テンポラリ領域と、第1の統合エンドポイント1011とのデータのやり取りに用いる領域としてのエンドポイント通信用領域に分割されている。ここで、記憶装置107は、図5でも説明したように、各サーバ103、105とLAN108を介して接続されている。
Each of the
記憶装置1070および記憶装置1071の内部には、1次共有メモリ1910、1911の領域と、2次共有メモリ1920、1921の領域が存在している。1次共有メモリ1910、1911の領域には、送信の際にアクセスする出力メモリ(OutputMem)領域1930、1931のうちの対応するものと、受信の際にアクセスする入力メモリ(InputMem)領域1940、1941のうちの対応するものが存在している。
Inside the
2次共有メモリ1920、1921は、送信側領域と受信側領域に分割され、次のように構成される。まず、送信側領域は、第0−0のサーバ103(主サーバ)上で動作するアプリケーションソフト(APL)(PS#0−5)が、第1の統合エンドポイント1011に対してデータの送信を行う場合にアクセスを行う、出力メモリサーバ(OutputMemServer#0−0)領域1950-0と、第0−1のサーバ1041(拡張サーバ)上で動作するアプリケーションソフト(PS#1−5)が、第1の統合エンドポイント1011に対してデータの送信する際にアクセスを行う、出力メモリサーバ(OutputMemServer#0−1)領域1950-1から構成される。
The secondary shared
受信側領域は、第0−0のサーバ103(主サーバ)上で動作するアプリケーションソフト(PS#0−5)が、第1の統合エンドポイント1011からデータの受信を行う場合にアクセスを行う、入力メモリサーバ(InputMemServer#0−0)領域1960-0と、第0−1のサーバ1041(拡張サーバ)上で動作するアプリケーションソフト(PS#1−5)が、第1の統合エンドポイント1011からデータを受信する際にアクセスを行う、入力メモリサーバ(InputMemServer#0−1)領域1960-1から構成される。
The reception side area is accessed when application software (PS # 0-5) operating on the 0-0 server 103 (main server) receives data from the first
SBY系サーバ群を構成する第1−0のサーバ105(主サーバ)と第1−1のサーバ1061(拡張サーバ)がアクセスを行う記憶装置1071の構成は、第0−0のサーバ103と第0−1のサーバ1041がアクセスを行う記憶装置1070の構成と同一である。
The configuration of the
ところで、本実施の形態のエンドポイント共有システム100で第1の統合エンドポイント1011あるいは第2の統合エンドポイント1012に物理的に接続されているのは主サーバである第0−0のサーバ103および第1−0のサーバ105である。このため、拡張サーバである第0−1のサーバ1041および第1−1のサーバ1061が第1の統合エンドポイント1011あるいは第2の統合エンドポイント1012にアクセスする場合には、主サーバを介してデータの受け渡しを行う必要がある。
By the way, in the
主サーバとのデータ受け渡しに際しては、IP(Internet Protocol)等のプロトコルを用いることが可能である。しかしながらその場合には、拡張サーバおよび主サーバに対してデータの送受信のためのプロトコルの定義が必要とされ、オーバヘッドが大きくなり、高速な送受信の妨げとなるという問題がある。本実施の形態では、記憶装置107をデータ受け渡しのバッファとして用いることで、高速なデータの受け渡しを実現する。これにより、統合エンドポイント1011、1012が接続されていない拡張サーバであっても、高速に主サーバを介してこれら統合エンドポイント1011、1012への高速アクセスを実現している。
When transferring data to and from the main server, a protocol such as IP (Internet Protocol) can be used. However, in that case, it is necessary to define a protocol for data transmission / reception with respect to the extension server and the main server, and there is a problem in that overhead increases and obstructs high-speed transmission / reception. In the present embodiment, high-speed data transfer is realized by using the
サーバ群と第1の統合エンドポイント1011の間でやりとりされるデータは、記憶装置107内部の1次共有メモリ191と、2次共有メモリ192を、以下の関係をもって転送される。
Data exchanged between the server group and the first
<ACT系サーバ群>
出力メモリサーバ(OutputMemServer#0−0)領域1950-0から出力メモリ(OutputMem#0)領域1930の方向への転送
出力メモリサーバ(OutputMemServer#0−1)領域1950-1から出力メモリ(OutputMem#0)領域1930の方向への転送
入力メモリ(InputMem#0)領域1940から入力メモリサーバ(InputMemServer#0−0)領域1960-0の方向への転送
入力メモリ(InputMem#0)領域1940から入力メモリサーバ(InputMemServer#0−1)領域1960-1の方向への転送
<ACT server group>
Transfer from output memory server (OutputMemServer # 0-0)
<SBY系サーバ群>
出力メモリサーバ(OutputMemServer#1−0)領域1951-0から出力メモリ(OutputMem#1)領域1931の方向への転送
出力メモリサーバ(OutputMemServer#1−1)領域1951-1から出力メモリ(OutputMem#1)領域1931の方向への転送
入力メモリ(InputMem#1)領域1941から入力メモリサーバ(InputMemServer#1−0)領域1961-0の方向への転送
入力メモリ(InputMem#1)領域1941から入力メモリサーバ(InputMemServer#1−1)領域1961-1の方向への転送
<SBY server group>
Transfer from the output memory server (OutputMemServer # 1-0)
なお、図12には、第0−0のサーバ103に搭載されたCPUとしてのCPU#0−0が各アプリケーションソフトウェアPS#0−0、PS#0−1、PS#0−3、PS#0−4、PS#0−5を実行することが示されている。また、同様に第0−1のサーバ1041に搭載されたCPUとしてのCPU#0−1が各アプリケーションソフトウェアPS#1−3、PS#1−4、PS#1−5を実行することが示されている。
In FIG. 12, the CPU # 0-0 as the CPU mounted on the 0-
図13は、記憶装置を介して、サーバがエンドポイントに対してアクセスを行う様子を表わしたものである。図5および図12と共に説明する。 FIG. 13 shows a state in which the server accesses the endpoint via the storage device. This will be described with reference to FIGS.
<サーバからのデータの送出> <Sending data from the server>
第0−0のサーバ103上で動作するアプリケーションソフトウェアPS#0−5,PS#1−5から第1の統合エンドポイント1011へのデータの取り込みについて説明する。
Application software PS # 0-5 operating on the 0-0
(a)まず、第0−0のサーバ103(主サーバ)から第1の統合エンドポイント1011へのアクセスについて説明する。
(A) will be described first access from the 0-0 server 103 (main server) to the first
第0−0のサーバ103上で動作するアプリケーションソフトウェアPS#0−5がエンドポイント111に対してデータを送信する場合、アプリケーションソフトウェアPS#0−5は記憶装置107上に確保されている出力メモリサーバ領域1950-0にデータを書き込む(ステップS401)。記憶装置107は、出力メモリサーバ領域1950-0にデータが書き込まれたことを検出すると、出力メモリ領域1930にデータをコピーする。
When the application software PS # 0-5 operating on the 0th-
アプリケーションソフトウェアPS#0−5は出力メモリサーバ領域1950-0にデータを書き込んだことを、アプリケーションソフトウェアPS#0−1に対して通知を行う(ステップS402)。アプリケーションソフトウェアPS#0−1は、他のサーバからエンドポイント111へのデータ送信要求が無いかを確認後、アプリケーションソフトウェアPS#0−2に対して、第0−0のサーバ103からエンドポイント111に対してデータを送信するように、指示を発行する(ステップS403)。
The application software PS # 0-5 notifies the application software PS # 0-1 that data has been written in the output memory server area 195 0-0 (step S402). The application software PS # 0-1 confirms that there is no data transmission request from another server to the
アプリケーションソフトウェアPS#0−2は、エンドポイント111に対するデータ送信の指示を受信すると、このエンドポイント111に対して出力メモリ領域1930からデータの送信を実施する(ステップS404)。このようにして、第0−0のサーバ103から記憶装置107を介して第1の統合エンドポイント1011へデータが送信される。
When the application software PS # 0-2 receives an instruction to transmit data to the
(b)次に、第0−1のサーバ1041(拡張サーバ)から第1の統合エンドポイント1011へのアクセスについて説明する。
(B) Next, access from the 0-1st server 104 1 (extended server) to the first
第0−1のサーバ1041上で動作するアプリケーションソフトウェアPS#1−5が第1の統合エンドポイント1011に対してデータを送信する場合、アプリケーションソフトウェアPS#1−5は記憶装置107上に確保されている出力メモリサーバ領域1950-1にデータを書き込む(ステップS410)。記憶装置107は、出力メモリサーバ領域1950-1にデータが書き込まれたことを検出すると、出力メモリ領域1930にデータをコピーする。
If the application software PS # 1-5 operating on the 0-1 of the
アプリケーションソフトウェアPS#1−5は出力メモリサーバ領域1950-1にデータを書き込んだことを、アプリケーションソフトウェアPS#0−1に対して通知を行う必要がある。このため、アプリケーションソフトウェアPS#1−4に対してデータ送信要求指示を発行する(ステップS411)。
The application software PS # 1-5 needs to notify the application software PS # 0-1 that data has been written in the output
アプリケーションソフトウェアPS#1−4はアプリケーションソフトウェアPS#0−4に対して、拡張サーバとしての第0−1のサーバ1041がエンドポイント111に対してデータ転送を要求していることを通知する(ステップS412)。これに基づき、アプリケーションソフトウェアPS#0−4は、第0−1のサーバ1041がエンドポイント111へのデータ転送要求を行っていることを、アプリケーションソフトウェアPS#0−1に対して通知する(ステップS413)。
Application software PS # 1-4 applications the software PS # 0-4,
アプリケーションソフトウェアPS#0−1は、他のサーバからエンドポイント111へのデータ送信の要求が無いかを確認する。そして、アプリケーションソフトウェアPS#0−2に対して、アプリケーションソフトウェアPS#0−1から第1の統合エンドポイント1011に対してデータを送信するように、指示を発行する(ステップS414)。
The application software PS # 0-1 confirms whether there is a request for data transmission from the other server to the
アプリケーションソフトウェアPS#0−2は第1の統合エンドポイント1011に対してデータ送信の指示を受信すると、エンドポイント111に対して出力メモリ領域1930からデータの送信を実施する(ステップS415)。このようにして第0−1のサーバ1041から記憶装置107を介して第1の統合エンドポイント1011へデータが送信される。
When the application software PS # 0-2 receives the instruction data transmitted to the first
<サーバへのデータの取り込み> <Importing data to the server>
次に第1の統合エンドポイント1011からサーバへのデータ取り込みについて説明する。
Then the first integrated data capture from the
図14は、第1の統合エンドポイントからサーバへのデータ取り込みの様子を示したものである。図5および図12と共に説明する。 FIG. 14 shows how data is captured from the first integrated endpoint to the server. This will be described with reference to FIGS.
(a)まず、第1の統合エンドポイント1011から主サーバとしての第0−0のサーバ103へのデータの取り込みについて説明する。
(A) First, data fetching from the first
第1の統合エンドポイント1011から第0−0のサーバ103に対して転送するデータが発生したとする。この場合、DMA(Direct Memory Access )により、CPUを介さずに第1の統合エンドポイント1011から、そのデータが主サーバとしての第0−0のサーバ103を経由して入力メモリ(InputMem#0)領域1940に対して転送される(ステップS431)。第1の統合エンドポイント1011から記憶装置107へのデータ転送はアプリケーションソフトウェアPS#0−2が実行する。
Assume that data to be transferred from the first
アプリケーションソフトウェアPS#0−2は、記憶装置107に対してデータを転送後、アプリケーションソフトウェアPS#0−1に対して、第1の統合エンドポイント1011から記憶装置107に対してデータの転送が発生したことを通知する(ステップS432)。
Application software PS # 0-2 after the transfer of data to the
アプリケーションソフトウェアPS#0−1は、サーバ群を構成するサーバのうちの負荷が軽いサーバで処理を実行するために、各サーバの負荷状況を調査する。負荷状況の調査はアプリケーションソフトウェアPS#0−3で実行する。このため、アプリケーションソフトウェアPS#0−1はアプリケーションソフトウェアPS#0−3に対して負荷調査を指示する(ステップS433)。アプリケーションソフトウェアPS#0−3はサーバ群を構成する第0−1のサーバ1041(拡張サーバ)上で動作するアプリケーションソフトウェアPS#1−3に対して、CPU負荷、メモリ使用量等の負荷状況の報告指示を出す(ステップS434)。第0−1のサーバ1041では、負荷状況調査指示をアプリケーションソフトウェアPS#1−3で受信後、負荷状況をアプリケーションソフトウェアPS#1−3からアプリケーションソフトウェアPS#0−3に報告する(ステップS435)。このとき、アプリケーションソフトウェアPS#0−3とアプリケーションソフトウェアPS#1−3の間の通信はLAN115を用いて行う。
The application software PS # 0-1 investigates the load status of each server in order to execute processing on a server having a light load among the servers constituting the server group. The investigation of the load situation is executed by the application software PS # 0-3. Therefore, the application software PS # 0-1 instructs the load investigation to the application software PS # 0-3 (step S433). The application software PS # 0-3 has a load status such as CPU load and memory usage with respect to the application software PS # 1-3 operating on the 0-1st server 104 1 (extended server) constituting the server group. Is issued (step S434). The 0-
アプリケーションソフトウェアPS#0−3は、アプリケーションソフトウェアPS#1−3の報告結果と第0−0のサーバ103の負荷状況をアプリケーションソフトウェアPS#0−1に通知する(ステップS436)。アプリケーションソフトウェアPS#1−3は第0−0のサーバ103(主サーバ)と第0−1のサーバ1041(拡張サーバ)の負荷状況から、負荷の少ないサーバの方を処理を行うサーバとして決定する。 The application software PS # 0-3 notifies the application software PS # 0-1 of the report result of the application software PS # 1-3 and the load status of the 0-0 server 103 (step S436). The application software PS # 1-3 determines the server with the lower load as the server for processing based on the load status of the 0-0 server 103 (main server) and the 0-1 server 104 1 (extended server). To do.
第0−0のサーバ103が負荷が少ないと判断された場合、処理を実行するアプリケーションソフトとしてのアプリケーションソフトウェアPS#0−5に対して、アプリケーションソフトウェアPS#0−1から処理指示が発行される(ステップS347)。第0−0のサーバ103の負荷が少ないと判断された場合は、ステップS347の処理指示の発行と同時に、アプリケーションソフトウェアPS#0−1から記憶装置107に対して、入力メモリ領域1940に記録されたデータを、入力メモリサーバ領域1960-0に転送する指示を発行する(ステップS438)。このとき、記憶装置107からの指示はLAN115を経由して発行される。
When it is determined that the 0th-
アプリケーションソフトウェアPS#0−5は、入力メモリサーバ領域1960-0からデータを読み出す(ステップS439)。これにより、サーバ上のアプリケーションは処理に必要なデータを第1の統合エンドポイント1011から得ることが可能となる。
The application software PS # 0-5 reads data from the input memory server area 196 0-0 (step S439). As a result, the application on the server can obtain data necessary for processing from the first
(b)次に、第1の統合エンドポイント1011から第0−1のサーバ1041(拡張サーバ)へのデータの取り込みについて説明する。
(B) Next, data loading from the first
第1の統合エンドポイント1011からサーバ対して転送されるデータが発生したとする。この場合、DMAにより、CPUを介さずに第1の統合エンドポイント1011から、そのデータが主サーバとしての第0−0のサーバ103を経由して入力メモリ(InputMem#0)領域1940に対して転送される(ステップS441)。第1の統合エンドポイント1011から記憶装置107へのデータ転送はアプリケーションソフトウェアPS#0−2が実行する。
Assume that data transferred from the first
アプリケーションソフトウェアPS#0−2は、記憶装置107に対してデータを転送後、アプリケーションソフトウェアPS#0−1に対して、第1の統合エンドポイント1011から記憶装置107に対してデータの転送が発生したことを通知する(ステップS442)。
Application software PS # 0-2 after the transfer of data to the
アプリケーションソフトウェアPS#0−1は、サーバ群を構成するサーバのうちの負荷が軽いサーバで処理を実行するために、各サーバの負荷状況を調査する。負荷状況の調査はPS#0−3で実行する。このため、アプリケーションソフトウェアPS#0−1はアプリケーションソフトウェアPS#0−3に対して負荷調査を指示する(ステップS443)。アプリケーションソフトウェアPS#0−3はサーバ群を構成する第0−1のサーバ1041(拡張サーバ)上で動作するアプリケーションソフトウェアPS#1−3に対して、CPU負荷、メモリ使用量等の負荷状況の報告指示を出す(ステップS444)。第0−1のサーバ1041では、負荷状況調査指示をアプリケーションソフトウェアPS#1−3で受信後、負荷状況をアプリケーションソフトウェアPS#1−3からアプリケーションソフトウェアPS#0−3に報告する(ステップS445)。このとき、アプリケーションソフトウェアPS#0−3とアプリケーションソフトウェアPS#1−3の間の通信はLAN115を用いて行う。
The application software PS # 0-1 investigates the load status of each server in order to execute processing on a server having a light load among the servers constituting the server group. The investigation of the load situation is executed with PS # 0-3. Therefore, the application software PS # 0-1 instructs the load investigation to the application software PS # 0-3 (step S443). The application software PS # 0-3 has a load status such as CPU load and memory usage with respect to the application software PS # 1-3 operating on the 0-1st server 104 1 (extended server) constituting the server group. Is issued (step S444). The 0-
アプリケーションソフトウェアPS#0−3は、アプリケーションソフトウェアPS#1−3の報告結果と第0−0のサーバ103の負荷状況をアプリケーションソフトウェアPS#0−1に通知する(ステップS446)。アプリケーションソフトウェアPS#1−3は第0−0のサーバ103(主サーバ)と第0−1のサーバ1041(拡張サーバ)の負荷状況から、負荷の少ないサーバの方を処理を行うサーバとして決定する。
The application software PS # 0-3 notifies the report result of the application software PS # 1-3 and the load status of the 0-0
ここまでのシーケンスは、第1の統合エンドポイント1011から主サーバである第0−0のサーバ103に対するデータ転送と、同一のシーケンスである。
Sequence up to this, the data transfer for the first 0-0
第0−1のサーバ1041(拡張サーバ)の負荷が少ないと判断されたとする。この場合、アプリケーションソフトウェアPS#0−1からアプリケーションソフトウェアPS#0−4に対して、第0−1のサーバ1041に対する記憶装置107(S#0−1_REC_temp(図示せず))からのデータ読み出し指示が発行される(ステップS447)。このとき記憶装置107から読み出されるデータは、図示しないアプリケーションソフトウェアS#0−1についての一次領域(REC_temp)に格納されている。ステップS447のデータ読み出し指示の発行と同時に、アプリケーションソフトウェアPS#0−1は、記憶装置107に対して、入力メモリ領域1940に記録されたデータを、入力メモリサーバ領域1960-1に転送する指示を発行する(ステップS448)。
Assume that it is determined that the load on the 0-1st server 104 1 (extended server) is small. In this case, the data read out from the application for the software PS # 0-1 application software PS # 0-4 from the memory to the
アプリケーションソフトウェアPS#0−4では、第0−1のサーバ1041での入力メモリサーバ領域1960-1からのデータ読み出し指示の発行を受けて、アプリケーションソフトウェアPS#1−4に対して、記憶装置107からのデータ読み出し指示を発行する(ステップS449)。アプリケーションソフトウェアPS#1−4は、第0−0のサーバ103からのデータ読み出し指示を受け、アプリケーションソフトウェアPS#1−5に対して、入力メモリサーバ領域1960-1からデータを読み出し指示を発行する(ステップS450)。そして、アプリケーションソフトウェアPS#1−5は入力メモリサーバ領域1960-1から処理に必要なデータを読み出す(ステップS451)。
In the application software PS # 0-4, and issued a data read instruction from the input memory server area 196 0-1 by the
<記憶装置の構成>
図15は、本実施の形態のエンドポイント共有システムの構成を記憶装置を中心に具体化したものである。記憶装置107は、次の各部から構成されている。
<Configuration of storage device>
FIG. 15 is a diagram in which the configuration of the endpoint sharing system according to the present embodiment is embodied centering on a storage device. The
(1)1次共有メモリ191および2次共有メモリ192
1次共有メモリ191および2次共有メモリ192は、図12で説明した。1次共有メモリ191は、主サーバからのデータおよび主サーバへ転送するデータを一時的に蓄えるためのメモリである。2次共有メモリ192は、記憶装置107と各サーバ103、1041、105、1061間のデータ転送のためのメモリ領域である。
(1) Primary shared
The primary shared
(2)第0および第1のエンドポイント間CTL(EP間CTL)部501、502
第0のエンドポイント間CTL部501は、主サーバとしての第0−0のサーバ(Server#0−0)103を経由して第0〜第Nのエンドポイント(EP#0〜EP#N)1110〜111N(図5参照)からのデータをやりとりする。第1のエンドポイント間CTL部502は、主サーバとしての第1−0のサーバ(Server#1−0)105を経由して第0〜第Nのエンドポイント(EP#0〜EP#N)1110〜111Nからのデータをやりとりする。
(2) CTL between the 0th and first endpoints (CTL between EPs) 501 and 502
The 0th
(3)第0および第1のメモリ間CTL(MEM間CTL)部503、504
1次共有メモリ191と2次共有メモリ192間の制御を行う。
(3) 0th and first memory-to-memory CTL (MEM-to-MEM CTL)
Control between the primary shared
(4)第0−0、第0−1、第1−0、第1−1のサーバ間CTL部505〜508
主サーバあるいは拡張サーバと記憶装置107の間のデータ転送を実施する。
(4) 0th to 0th, 0th to 1st, 1st to 0th, and 1-1st
Data transfer between the main server or expansion server and the
(5)記憶装置CTL部509
記憶装置107の制御を実施する。
(5) Storage
The
このような構成の記憶装置107における第0および第1のエンドポイント間CTL部501、502およびサーバは、PCIeのエンドポイントとして動作し、PCIeケーブルで接続される。PCIeとし動作するためのコンフィグレーション処理は、サーバ側から実行される。PCIeのコンフィグレーション処理は、通常の処理と同等である。
The 0th and first end-
このため、主サーバのCPUからみると、第1の統合エンドポイント1011と記憶装置107がエンドポイントとして接続されているように見える。また、拡張サーバのCPUからは記憶装置107がエンドポイントとして接続されているように見える。
Therefore, when viewed from the CPU of the main server, it appears that the first
第0のエンドポイント間CTL部501は、主サーバとしての第0−0のサーバ103と接続し、第1のエンドポイント間CTL部502は、同じく主サーバとしての第1−0のサーバ105と接続する。ここで第0−0のサーバ103は、ACT(active)系サーバ群を構成し、第1−0のサーバ105はSBY(standby)系サーバ群を構成している。このうちの現用系となるサーバがデータの送受信の対象となるので、どちらの系が現用系であるかのACT(active)・SBY(standby)系情報の取得が必要となる。
The 0th
記憶装置CTL部509は、LAN108(図5参照)を介して第0−0、第0−1、第1−0および第1−1の各サーバ103、1041、105、1061と接続するためのLANインタフェイスを有している。このため、記憶装置CTL部509は、LAN108を経由して、サーバ群を構成する各サーバ103〜1061との間で、ACT・SBY系情報を収集する。これにより、記憶装置CTL部509は、現用系となるサーバ群を認識し、待機系となるサーバ群からの記憶装置107へのアクセスを禁止する通知を第0および第1のエンドポイント間CTL部501、502に送出する。
The storage
主サーバと記憶装置107の間でデータが転送される場合、第0あるいは第1のエンドポイント間CTL部501、502と1次共有メモリ191の間でデータ転送が発生する。1次共有メモリ191は、送信用としての出力メモリ(OutputMem)領域1930(OutputMem#0)、1931(OutputMem#1)と、受信用としての入力メモリ(InputMem)領域1940(InputMem#0)、1941(InputMem#1)に分割されている。1次共有メモリ191は、記憶装置CTL部509からのACT・SBY系情報を基にして現用系のデータ転送のみ実施する。
When data is transferred between the main server and the
第1の統合エンドポイント1011からサーバへデータの転送を実施するものとする。この場合、1次共有メモリ191に格納したPCIeパケットを、第0−0、第0−1、第1−0および第1−1のサーバ103、1041、105、1061のいずれに転送するかを決定する必要がある。転送先のサーバを決定するために主サーバは、各サーバの負荷状況(CPU使用率、メモリ使用量等)を基に判定を行う。判定結果は、LAN108(図5参照)を経由して記憶装置CTL部509に通知される。記憶装置CTL部509は、第0あるいは第1のメモリ間CTL部503、504に対してパケットの転送先の通知を行う。
It is assumed that data is transferred from the first
第0あるいは第1のメモリ間CTL部503、504では、1次共有メモリ191へのデータの書き込みが完了したこと、および記憶装置CTL部509から通知されるパケットの転送先の通知情報を基にして、パケットのヘッダ情報の書き換えを行う。そして、この書き換えたヘッダ情報を基にして、転送先のサーバに対応した2次共有メモリ192に対して、データの転送を実施する。
The 0th or first memory-to-
PCIeパケットに付与されるヘッダ情報については、後に説明を行う。図15に示す例では、転送先が主サーバとしての第0−0のサーバ103あるいは第1−0のサーバ105の場合、入力メモリサーバ(InputMemServer#0−0)領域1960-0(または入力メモリサーバ(InputMemServer#1−0)領域1961-0)にデータを書き込む。また、転送先が拡張サーバとしての第0−1のサーバ103あるいは第1−1のサーバ105の場合、入力メモリサーバ(InputMemServer#0−1)領域1960-1(または入力メモリサーバ(InputMemServer#1−1)領域1961-1)にデータを書き込む。
The header information added to the PCIe packet will be described later. In the example shown in FIG. 15, when the transfer destination is the 0-0
主サーバあるいは拡張サーバは、第0−0、第0−1、第1−0および第1−1の各サーバに対応した第0−0、第0−1、第1−0、第1−1のサーバ間CTL部505〜508を監視する。そして、データが書き込まれたことを確認した後に、2次共有メモリ192からデータの読み出しを行う。
The primary server or the expansion server is the 0-0, 0-1, 0-1, 1-0, 1-0 corresponding to the 0-0, 0-1, 0-1 and 1-1 servers. The server-to-
第0−0、第0−1、第1−0および第1−1の各サーバから第1の統合エンドポイント1011にデータを転送する場合を次に説明する。この場合には、サーバごとに用意されている第0−0、第0−1、第1−0、第1−1のサーバ間CTL部505〜508を介して2次共有メモリ192に対するデータの転送を実施する。第0あるいは第1のメモリ間CTL部503、504は、第1の統合エンドポイント1011へ転送するデータが2次共有メモリ192に書き込まれたかを監視する。
Next, a case where data is transferred from the 0-0th, 0-1st, 1-0, and 1-1 servers to the first
転送するデータが2次共有メモリ192に書き込まれたことが検出されたら、2次共有メモリ192からデータが読み出される。そして、1次共有メモリ191に対するデータの転送が実施される。主サーバは、第0あるいは第1のエンドポイント間CTL部501、502を介して1次共有メモリ191に対するデータが書き込まれたことを認識すると、1次共有メモリ191からデータを読み出して、第1の統合エンドポイント1011へのデータ転送を実施する。
When it is detected that the data to be transferred is written in the secondary shared
<記憶装置とサーバ間の接続> <Connection between storage device and server>
図16は、各サーバと記憶装置の接続の状態を一般化して表わしたものである。図5ではACT系サーバ群として第0−0のサーバ(Server#0−0)103に対して拡張サーバとしての1台の第0−1のサーバ(Server#0−1)1041が存在する場合を示した。図16ではACT系サーバ群の拡張サーバとして第0−1のサーバ(Server#0−1)1041〜第0−Nのサーバ(Server#0−N)104Nが存在している。同様に、図5ではSBY系サーバ群として第1−0のサーバ(Server#1−0)105に対して拡張サーバとしての1台の第1−1のサーバ(Server#1−1)1061が存在する場合を示した。図16ではSBY系サーバ群の拡張サーバとして第1−1のサーバ(Server#1−1)1061〜第1−Nのサーバ(Server#1−N)106Nが存在している。数値Nは任意の正の整数である。 FIG. 16 shows a generalized state of connection between each server and the storage device. In FIG. 5, there is one 0-1 server (Server # 0-1) 104 1 as an expansion server for the 0-0 server (Server # 0-0) 103 as the ACT server group. Showed the case. In FIG. 16, the 0th- 1 server (Server # 0-1) 104 1 to the 0-Nth server (Server # 0-N) 104 N exist as expansion servers of the ACT server group. Similarly, in FIG. 5, one 1-1-1 server (Server # 1-1) 106 1 as an expansion server is compared to the 1-0 server (Server # 1-0) 105 as the SBY server group. The case where exists. In FIG. 16, there are a 1-1 server (Server # 1-1) 106 1 to a 1-Nth server (Server # 1-N) 106 N as expansion servers of the SBY server group. The numerical value N is an arbitrary positive integer.
このエンドポイント共有システム100Aでは、記憶装置107Aに第0−0、第0−1〜第0−N、第1−0、第1−1〜第1−Nのサーバ間CTL部505、5061〜506N、507、5081〜508Nと、第0および第1のエンドポイント間CTL部501、502が配置されている。ここで、第0−0のサーバ間CTL部505は、主サーバとしての第0−0のサーバ103とPCIeケーブルを用いて1対1で接続されている。同様に第0−1〜第0−Nのサーバ間CTL部5061〜506Nは、拡張サーバとしての第0−1〜第0−Nのサーバ1041〜104Nと、それぞれPCIeケーブルを用いて1対1で接続されている。また、第1−0のサーバ間CTL部507は、主サーバとしての第1−0のサーバ105とPCIeケーブルを用いて1対1で接続されている。同様に第1−1〜第1−Nのサーバ間CTL部5081〜508Nは、拡張サーバとしての第1−1〜第1−Nのサーバ1061〜106Nと、それぞれPCIeケーブルを用いて1対1で接続されている。更に、第0および第1のエンドポイント間CTL部501、502は、主サーバとしての第0−0のサーバ103および第1−0のサーバ105と、それぞれPCIeケーブルを用いて1対1で接続されている。
In the
このため、各サーバ間CTL部505、5061〜506N、507、5081〜508Nと各エンドポイント間CTL部501、502は、PCIeのエンドポイントとして各サーバ103、1041〜104N、105、1061〜106Nから認識される。このため、各サーバ103、1041〜104N、105、1061〜106Nはデータの送受信についてドライバソフトを必要とするが、そのインストールが完了すれば、他のサーバの影響を考慮することなく、記憶装置107Aの制御を行うことが可能になる。各サーバ103、1041〜104N、105、1061〜106Nによる記憶装置107Aの制御は、通常のPCIeエンドポイントの制御と同じである。
Therefore, the server-to-
更に、各サーバ103、1041〜104N、105、1061〜106Nと記憶装置107Aは、前記した1対1で接続されるための、相互に独立したPCIeメモリ空間に記憶装置をマッピングすることが可能となる。したがって、他のサーバのメモリ空間を考慮する必要がなくなる。
Further, each of the
主サーバとしての第0−0のサーバ103と第1−0のサーバ105は、1次共有メモリ191および2次共有メモリ192(図15参照)へのアクセスのために記憶装置107Aに対してPCIeインタフェイスを2系統備える。拡張サーバ1041〜104N、1061〜106Nについては2次共有メモリ192へのアクセスのみが許可される。このため、拡張サーバ1041〜104N、1061〜106Nは記憶装置107Aに対してPCIeインタフェイスを1系統のみ備える。
The 0th-
主サーバとしての第0−0のサーバ103と第1−0のサーバ105は、メモリ空間上に統合エンドポイント1011と記憶装置107Aの2つをエンドポイントとしてマッピングを行う。ただし、第0−0のサーバ103と第1−0のサーバ105のマッピングについての作業は、通常の動作と同一である。
And the 0-0
<動作の説明> <Description of operation>
図17は、本実施の形態のエンドポイント共有システムにおけるデータの転送処理の様子を表わしたものである。図17では、第1の統合エンドポイント1011、主サーバとしての第0−0のサーバ103、記憶装置107および拡張サーバとしての第0−1のサーバ1041を例にしてデータの転送処理を説明する。既に説明したように第1の統合エンドポイント1011と直接アクセスすることができるのは、この図17に示した中では第0−0のサーバ103のみである。統合エンドポイント1011と第0−1のサーバ1041の間のデータのやり取りは、記憶装置107を介してのデータ転送という形となる。
FIG. 17 shows a state of data transfer processing in the endpoint sharing system of the present embodiment. In FIG. 17, data transfer processing is performed by taking the first
<統合エンドポイントから主サーバおよび拡張サーバへのデータ転送> <Data transfer from integrated endpoint to main server and expansion server>
第1の統合エンドポイント1011は、転送データとしてPCIeパケット601を送信する(ステップS701)。PCIeパケット601は、PCIeヘッダとデータ本体としてのPCIeデータから構成されている。主サーバとしての第0−0のサーバ103がこのPCIeパケットを受信する。
The first
第0−0のサーバ103は、第1の統合エンドポイント1011からPCIeパケットを受信すると、ディスクリプタ(descriptor)とデータ領域の間に、サーバ(Server)名、統合エンドポイント(EP)番号およびエンドポイント(EP)番号から構成されるヘッダフィールド602を挿入する。そして、このPCIeパケット601を記憶装置107に転送する(ステップS702)。ここで、「サーバ名」にはこのPCIeパケットをどのサーバ上のアプリケーションで実行するかを示すサーバ名を挿入する。
The 0-0
PCIeパケットを処理するサーバの決定は、主サーバとしての第0−0のサーバ103上で操作するソフトウェアであるPS#0−4とPS#1−4(図10参照)が連携して実行する。ここでソフトウェアPS#0−4は、各サーバの負荷状況(CPU使用率、メモリ使用率等)を基にして、アプリケーションを実行するサーバをたとえば負荷の軽いものに決定する。第0−0のサーバ103は、転送先のサーバ名を決定すると、記憶装置CTL部509(図15)に対して転送先サーバ名を通知する。記憶装置CTL部509では、転送を受けたPCIeパケット601のサーバ名フィールドに、ソフトウェアPS#0−4が決定した情報を基にしてサーバ名を挿入する。
PS # 0-4 and PS # 1-4 (refer to FIG. 10), which are software operating on the 0th-
記憶装置107では、転送を受けたPCIeパケット601の統合EP番号およびEP番号フィールドに、このPCIeパケット601の送信元の統合エンドポイント番号と、エンドポイントの番号を挿入する。これにより、拡張サーバとしての第0−1のサーバ1041では、ヘッダフィールド602の統合EP番号およびEP番号フィールドに記載された番号を基にして受信したパケットが、どのような機能を持つエンドポイント111(図5)から送信されてきたパケットであるかを判定することが可能になる。また、所定のデバイスドライバに渡すことで、アプリケーションに対してパケットを渡すことが可能となる。
In the
記憶装置107では、主サーバとしての第0−0のサーバ103から転送されてきたデータが1次共有メモリ191に書き込まれたことを検出する(ステップS703)。そして、PCIeパケット601の転送先が記憶装置CTL部509(図15)から通知されると(ステップS704)、第0のメモリ間CTL部503で転送先サーバ名を記載する。その後、サーバ(Server)名フィールドに記載されたサーバに対応した2次共有メモリ192にPCIeパケット601を転送する(ステップS705)。
The
拡張サーバとしての第0−1のサーバ1041は、各サーバごとに2次共有メモリ192に自サーバ宛のデータが書き込まれていないか周期的に監視を行う。第0−1のサーバ1041は、データが書き込まれたことを確認すると、2次共有メモリ192からデータの読み出しを実行する(ステップS706)。
The 0-
<主サーバおよび拡張サーバからエンドポイントへのデータの転送> <Transfer data from the main server and expansion server to the endpoint>
拡張サーバとしての第0−1のサーバ1041上のアプリケーションがエンドポイントに対してデータの送信を行うものとする。この場合、エンドポイント送信用のPCIeパケット611が第0−1のサーバ1041上のアプリケーションで作成される。このPCIeパケット611にサーバ名、統合エンドポイント番号およびエンドポイント番号から構成されるヘッダフィールド612を挿入し、2次共有メモリ192に対してデータの書き込みを実行する(ステップS711)。
Shall first 0-1
ここで、ヘッダフィールド612におけるサーバ名には、処理を実行したサーバ名を挿入する。また拡張エンドポイント番号とエンドポイント番号に対しては、データの送信処理が、エンドポイントから受信したデータに対するレスポンスである場合は、受信時と同じ番号を記載する。これにより、最終的にエンドポイントにデータを送信する主サーバとしての第0−0のサーバ103が、どの統合エンドポイントあるいはエンドポイントに対してデータを送信するかの判定が可能になる。
Here, the name of the server that executed the process is inserted into the server name in the
なお、この例ではPCIeパケット611の送出先は第1の統合エンドポイント1011のみである。したがって拡張サーバとしての第0−1のサーバ1041が宛先を判断できないという事態は発生しない。図5に示した第1および第2の統合エンドポイント1011、1012のように複数の統合エンドポイントが存在する場合がある。このような場合には、第0−1のサーバ1041がこれらのいずれを宛先にするかを判断できない場合が想定される。この場合、第0−1のサーバ1041は統合エンドポイント番号に対して「ドントケア(Don't Care)」を付与する。
In this example, the destination of the
記憶装置107は、拡張サーバとしての第0−1のサーバ1041あるいは主サーバとしての第0−0のサーバ103から2次共有メモリ192に書き込みが行われたことを検出すると、このデータを1次共有メモリ191に転送する(ステップS712)。
When the
主サーバとしての第0−0のサーバ103は、記憶装置107の1次共有メモリ191にエンドポイントへの送信データが書き込まれていないか周期的に監視を行う。第0−0のサーバ103は、1次共有メモリ191にこの送信データが書き込まれたことを確認すると、この送信データの読み出しを実行する(ステップS713)。
The 0th to
第0−0のサーバ103は、読み込んだPCIeパケット611に挿入されたヘッダフィールド(拡張ヘッダ)612を削除する。そして削除したヘッダフィールド612におけるエンドポイント番号に記載された番号を用いて、どのエンドポイントに対してPCIeパケット611を送信するかを決定する。第0−0のサーバ103は、次に該当するエンドポイントに対応するデバイスドライバを用いて、そのエンドポイント(この場合には第1統合エンドポイント1011)に対してPCIeパケット611の送信を実施する(ステップS714)。
The 0th-
先に説明したようにヘッダフィールド612の統合エンドポイント番号に「ドントケア(Don't Care)」が付与されている場合がある。この場合には主サーバとしての第0−0のサーバ103が送信先の統合エンドポイントを決定する。そして、この決定した統合エンドポイントに対してPCIeパケット611を送信することになる。
As described above, “Don't Care” may be added to the integrated endpoint number in the
以上説明したように本実施の形態のエンドポイント共有システム100によれば、次のような効果がある。
As described above, the
第1の効果として、本実施の形態では複数のCPUが同一のエンドポイントにアクセスできる。エンドポイントについては、PCIeに準拠したデバイスを、そのまま用いることが可能である。 As a first effect, in this embodiment, a plurality of CPUs can access the same endpoint. For the endpoint, a device conforming to PCIe can be used as it is.
第2の効果として、本実施の形態では、CPUの切り替えを高速に実現することが可能になる。これは、エンドポイントにアクセスできるCPUを切り替える際に、エンドポイントに対するリセットや再設定処理が不要なためである。 As a second effect, in the present embodiment, CPU switching can be realized at high speed. This is because when the CPU that can access the endpoint is switched, reset or reset processing for the endpoint is unnecessary.
第3の効果として、本実施の形態では、CPU側の負荷に応じてサーバを増減設可能な、スケーラビリティの高いシステムを構築することが可能となる。これは、ACT系CPUとSBY系CPUを物理的に分離された複数のCPUで構成可能なためである。 As a third effect, in the present embodiment, it is possible to construct a highly scalable system in which servers can be increased or decreased according to the load on the CPU side. This is because the ACT CPU and the SBY CPU can be composed of a plurality of physically separated CPUs.
第4の効果として、本実施の形態では、エンドポイント側の負荷に応じて統合エンドポイントを増減設可能な、スケーラビリティの高いシステムを構築することが可能である。これは、物理的に分離された複数のEPをシステムに組み込むためである。 As a fourth effect, in the present embodiment, it is possible to construct a highly scalable system that can increase or decrease the number of integrated endpoints according to the load on the endpoint side. This is for incorporating a plurality of physically separated EPs into the system.
第5の効果として、本実施の形態では、CPU側の負荷(ソフトウェア処理)と、エンドポイント側の負荷(ハードウェア処理)に応じて、負荷の状況に対応した個別に増減設可能なスケーラビリティの高いシステムを構築することが可能である。 As a fifth effect, according to the present embodiment, scalability that can be individually increased or decreased according to the load situation according to the load on the CPU side (software processing) and the load on the endpoint side (hardware processing). It is possible to build a high system.
第6の効果として、本実施の形態では、メモリを利用したサーバ間データ送受信方法を実現することで、エンドポイントを接続していないサーバから、エンドポイントに対してデータの入出力を可能とするシステムを構築することが可能である。 As a sixth effect, in this embodiment, by implementing a data transmission / reception method between servers using a memory, it is possible to input / output data to / from an endpoint from a server not connected to the endpoint. It is possible to build a system.
第7の効果として、本実施の形態では記憶装置に汎用品および標準化された規格の半導体メモリを使用した。これにより、記憶装置およびこれを使用したエンドポイント共有システム100を安価に構成することができる。また、本実施の形態では各サーバと記憶装置107の間をPCIeで接続する。サーバから直接、PCIeのパケットを記憶装置に対して転送することで、ハードディスクへのデータのやり取りの際に発生するSAS(Serial Attached SCSI)、SATA(SerialATA)等のプロトコルを省力することが可能になる。これにより、プロトコルのオーバヘッドを削減し、サーバに搭載されているCPUの処理の負荷を低減することが可能となる。
As a seventh effect, in the present embodiment, a general-purpose product and a standardized semiconductor memory are used for the storage device. Accordingly, the storage device and the
第8の効果として、本実施の形態では記憶装置をサーバ間のデータの受け渡しに主として使用している。このような用途ではデータ転送の高速化が必要であるが、大容量化は必ずしも必要とされない。このような場合に半導体メモリを使用してハードディスクの使用を避けると、システムの信頼性を向上させることができる。ハードディスクは機械的に駆動する部品が含まれるため、故障が発生する可能性が高く、信頼性の点でネックとなるからである。 As an eighth effect, in the present embodiment, the storage device is mainly used for data transfer between servers. In such applications, it is necessary to increase the speed of data transfer, but it is not always necessary to increase the capacity. In such a case, if the use of a hard disk is avoided by using a semiconductor memory, the reliability of the system can be improved. This is because a hard disk includes mechanically driven parts, so that there is a high possibility that a failure will occur, and this is a bottleneck in terms of reliability.
第9の効果として、本実施の形態ではPCIeのパケットに統合エンドポイントの番号を組み込むことで、複数の統合エンドポイントに対応して宛先のエンドポイントにデータを転送することが可能になる。また、データの転送の宛先等の情報を記した拡張ヘッダの付与により、エンドポイントに接続されていない拡張サーバがどのような種類のエンドポイントからのデータを受信したかを容易に判別し、所定のアプリケーションに対してデータを渡すことが可能になる。また、送信の際には、どのエンドポイントに対してデータを渡すべきかをエンドポイントに接続するサーバに通知することで、正しくデータを宛先のエンドポイントに送信することが可能になる。 As a ninth effect, in this embodiment, it is possible to transfer data to destination endpoints corresponding to a plurality of integration endpoints by incorporating the integration endpoint number into the PCIe packet. Also, by adding an extension header that describes information such as the data transfer destination, it is possible to easily determine what kind of endpoint the extension server that is not connected to the endpoint has received, and Data can be passed to other applications. Further, when transmitting, it is possible to correctly transmit the data to the destination endpoint by notifying to which endpoint the data should be passed to the server connected to the endpoint.
<発明の変形可能性> <Deformability of invention>
先の実施の形態で示したように複数の統合エンドポイントを実装することで、必要とされる処理能力に応じた統合エンドポイントの増減設が可能となり、汎用性の高いシステムを構築することが可能になる。しかしながら、統合エンドポイントを増設するためには、既に説明したように主サーバに対して統合エンドポイントとの接続用のPCIe NICカードを増設する必要がある。しかし、サーバの増設スロット数には制限があるため、システムとして必要とされる統合エンドポイントを増設できない可能性がある。 By implementing multiple integrated endpoints as shown in the previous embodiment, it is possible to increase or decrease the number of integrated endpoints according to the required processing capacity, and to build a highly versatile system It becomes possible. However, in order to increase the number of integrated endpoints, it is necessary to add a PCIe NIC card for connection with the integrated endpoint to the main server as described above. However, since the number of expansion slots of the server is limited, there is a possibility that an integrated endpoint required as a system cannot be added.
PCIeでは、データがPCIeパケットとして転送される。このため、他のプロトコルでPCIeパケットをカプセル化することが可能である。 In PCIe, data is transferred as a PCIe packet. For this reason, it is possible to encapsulate PCIe packets with other protocols.
図18は、本発明の第1の変形例におけるエンドポイント共有システムの構成を表わしたものである。この変形例のエンドポイント共有システム100Bで図5と同一部分には同一の符号を付しており、これらの説明を適宜省略する。 FIG. 18 shows the configuration of the endpoint sharing system in the first modification of the present invention. In the modified endpoint sharing system 100B, the same parts as those in FIG. 5 are denoted by the same reference numerals, and description thereof will be omitted as appropriate.
この第1の変形例のエンドポイント共有システム100Bでは、第0−0のサーバ103BのPCIe NICカード(PCIe NIC#001)121Bが第1のイーサネット(登録商標)スイッチ801の一端に接続されている。この第1のイーサネット(登録商標)スイッチ801の他端には、第1の統合エンドポイント1011の第0のポート1510Bと第2の統合エンドポイント1012の第0のポート(図示せず)が接続されている。同様に、第1−0のサーバ105BのPCIe NICカード(PCIe NIC#101)125Bが第2のイーサネット(登録商標)スイッチ802の一端に接続されている。この第2のイーサネット(登録商標)スイッチ802の他端には、第1の統合エンドポイント1011の第1のポート1511Bと第2の統合エンドポイント1012の第0のポート(図示せず)が接続されている。
In the endpoint sharing system 100B of the first modified example, the PCIe NIC card (PCIe NIC # 001) 121B of the 0-
すなわち、第1の変形例のエンドポイント共有システム100Bでは、イーサネット(登録商標)フレームでカプセル化を行う。これにより、イーサネット(登録商標)のMACアドレス(Media Access Control address)をベースにしてサーバ、および複数のエンドポイントの識別を行い、宛先を指定することが可能になる。このためには、主サーバとしての第0−0のサーバ103Bと第1−0のサーバ105Bの双方に、PCIeパケットをイーサネット(登録商標)フレームにカプセル化するためのPCIe NICカード121B、125Bを実装している。また、第1および第2の統合エンドポイント1011、1012側にも、第0のポート1510Bと第1のポート1511BのようにPCIeパケットのイーサネット(登録商標)カプセル化機能を追加している。
That is, in the endpoint sharing system 100B of the first modified example, encapsulation is performed with an Ethernet (registered trademark) frame. This makes it possible to identify a server and a plurality of endpoints based on the Ethernet (registered trademark) MAC address (Media Access Control address), and to specify a destination. For this purpose,
各サーバ103B、1041、105B、1061と第1および第2の統合エンドポイント1011、1012の間はイーサネット(登録商標)で接続される。したがって、第0−0および第0−1のサーバ103B、105Bと第1および第2の統合エンドポイント1011、1012の間に第1および第2のイーサネット(登録商標)スイッチ801、802を介在させることで、パケットの宛先を制御することが可能になる。この結果として、第0−0および第0−1のサーバ103B、105Bに実装されているPCIeスロット数に依存することなく、第1および第2の統合エンドポイント1011、1012等の統合エンドポイントの数を増減させることができる。たとえば第0−0のサーバ103Bは1枚のPCIe NICカード(PCIe NIC#001)121Bが第1のイーサネット(登録商標)スイッチ801を介することで、任意の数の統合エンドポイントの第0のポート1510Bと接続可能である。
Each
このように第1の変形例によれば、サーバ群を構成する1台の第0−0のサーバ103B等の主サーバに対して、サーバ1041等の拡張サーバを複数台増設することができる。
As described above, according to the first modification, a plurality of expansion servers such as the
図19は、本発明の第2の変形例として、統合エンドポイントと各系の拡張サーバが共にN台となったエンドポイント共有システムを表わしたものである。ここで数値Nは2以上の整数である。図19に示した第2の変形例のエンドポイント共有システム100Cで、図5と同一部分には同一の符号を付しており、これらの説明を適宜省略する。 FIG. 19 shows an endpoint sharing system in which there are N integrated endpoints and extended servers of each system as a second modification of the present invention. Here, the numerical value N is an integer of 2 or more. In the endpoint sharing system 100C of the second modified example shown in FIG. 19, the same parts as those in FIG. 5 are denoted by the same reference numerals, and description thereof will be omitted as appropriate.
第2の変形例のエンドポイント共有システム100Cでは、記憶装置107CがLAN115に接続すると共に、ACT系サーバ群901とSBY系サーバ群902と接続している。ここでACT系サーバ群901は1台の主サーバとしての第1の主サーバ911と、第0−1〜第0−Nの拡張サーバ9121〜912Nから構成されている。SBY系サーバ群902は同じく1台の主サーバとしての第2の主サーバ921と、第0−1〜第0−Nの拡張サーバ9221〜922Nから構成されている。
In the endpoint sharing system 100C of the second modified example, the
第1の主サーバ911は記憶装置107Cと、エンドポイント(EP)通信用PCIeケーブル931で接続される。また、第1の主サーバ911と第0−1〜第0−Nの拡張サーバ9121〜912Nは、それぞれ個別のサーバ間通信用PCIeケーブル9320〜932Nで記憶装置107Cと接続される。同様に、第2の主サーバ921は記憶装置107Cと、エンドポイント(EP)通信用PCIeケーブル941で接続される。また、第2の主サーバ921と第0−1〜第0−Nの拡張サーバ9221〜922Nは、それぞれ個別のサーバ間通信用PCIeケーブル9420〜942Nで記憶装置107Cと接続される。更に第1の主サーバ911と第2の主サーバ921は、それぞれイーサネット(登録商標)スイッチ801Cを介して第1〜第Nの統合エンドポイント(EP)1011〜101Nと接続されている。
The first
第2の変形例のエンドポイント共有システム100Cは、N台の統合エンドポイント(EP)1011〜101Nと、N台ずつの第0−1〜第0−Nの拡張サーバ9121〜912Nおよび第0−1〜第0−Nの拡張サーバ9221〜922Nから成る。このようにエンドポイント共有システム100Cでは、サーバ群を構成する1台の主サーバ911(主サーバ921)に対して拡張サーバを複数台増設することが可能になっている。しかも、これらACT系サーバ群901とSBY系サーバ群902についてのソフトウェア処理と、第1〜第Nの統合エンドポイント(EP)1011〜101Nについてのハードウェア処理を分離して、個別に必要な数の増減設が可能である。
The endpoint sharing system 100C according to the second modified example includes N integrated endpoints (EP) 101 1 to 101 N and N 0-1 to 0-N expansion servers 912 1 to 912 N. And 0-1 to 0-N expansion servers 922 1 to 922 N. As described above, in the endpoint sharing system 100C, a plurality of extension servers can be added to one main server 911 (main server 921) constituting the server group. In addition, the software processing for the
しかも、第2の変形例ではソフトウェア処理による各サーバ911、912、921、922と、ハードウェア処理による統合エンドポイント101をカプセル化したイーサネット(登録商標)経由で接続している。これにより、イーサネット(登録商標)で接続した各サーバ911、912、921、922と統合EP101を、仮想的に1つのシステムとして構成することが可能になる。また、記憶装置107Cは、主サーバ911、921の間を2系統のPCIeケーブルで接続し、拡張サーバ912、922の間を1系統のPCIeケーブルで接続している。これにより、統合エンドポイント101と各サーバ(主サーバ911、921および拡張サーバ912、922)間のデータ転送を実現することが可能になる。この結果、物理的に分離された、サーバ群901、902、統合エンドポイント群1011〜101Nおよび記憶装置107Cを、仮想的に1つのシステムとして制御することが可能となる。
Moreover, in the second modification, the
以上説明した実施の形態の一部または全部は、以下の付記のようにも記載されるが、以下の記載に限定されるものではない。 Some or all of the embodiments described above are described as in the following supplementary notes, but are not limited to the following descriptions.
(付記1)
コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける所定のエンドポイントから現用系のサーバとしての主サーバにPCIeパケットを送信する統合エンドポイント側送信手段と、
この統合エンドポイント側送信手段の送信したPCIeパケットに格納されたデータを処理する拡張サーバを決定する拡張サーバ決定手段と、
この拡張サーバ決定手段で決定した拡張サーバのサーバ名を前記PCIeパケットに挿入する拡張サーバ名挿入手段と、
この拡張サーバ名挿入手段でサーバ名を挿入したPCIeパケットを前記主サーバから所定の記憶装置に送信する主サーバ側送信手段と、
この主サーバ側送信手段で送信したPCIeパケットを受信して前記記憶装置内の1次共有メモリに書き込む1次共有メモリ書込手段と、
この1次共有メモリ書込手段で前記1次共有メモリに書き込んだPCIeパケットを、アクティブ系およびスタンバイ系の各サーバのそれぞれに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する2次共有メモリのうちの前記拡張サーバ決定手段で決定した2次共有メモリに転送する2次共有メモリ転送手段
とを具備することを特徴とするエンドポイント共有システム。
(Appendix 1)
An active system from a predetermined endpoint in an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints Integrated endpoint side transmission means for transmitting a PCIe packet to a main server as a server of
Extended server determining means for determining an extended server for processing data stored in the PCIe packet transmitted by the integrated endpoint side transmitting means;
Extended server name inserting means for inserting the server name of the extended server determined by the extended server determining means into the PCIe packet;
Main server side transmitting means for transmitting the PCIe packet, in which the server name is inserted by the extended server name inserting means, from the main server to a predetermined storage device;
Primary shared memory writing means for receiving the PCIe packet transmitted by the main server side transmitting means and writing it to the primary shared memory in the storage device;
The PCIe packet written to the primary shared memory by the primary shared memory writing means is individually provided for each of the active and standby servers and is individually transferred to these servers. A secondary shared memory transfer means for transferring to a secondary shared memory determined by the expansion server determination means among the secondary shared memories used for the endpoint shared system.
(付記2)
コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける特定のエンドポイントに対して任意の主サーバおよび拡張サーバがデータの送信を行うときそのPCIeパケットに前記特定のエンドポイントを表わす識別情報を挿入する拡張サーバ側挿入手段と、
この拡張サーバ側挿入手段で前記識別情報を挿入したPCIeパケットを、それぞれの主サーバおよび拡張サーバに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する複数の2次共有メモリのうちの送信元の前記任意の主サーバおよび拡張サーバに対応する2次共有メモリに格納する2次共有メモリ格納手段と、
この2次共有メモリ格納手段が前記2次共有メモリのいずれかにPCIeパケットを格納したとき前記識別情報を読み出してこの識別情報から判別されるエンドポイント宛にPCIeパケットを送信するPCIeパケット送信手段
とを具備することを特徴とするエンドポイント共有システム。
(Appendix 2)
For a specific endpoint in an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints An extension server side insertion means for inserting identification information representing the specific endpoint into the PCIe packet when an arbitrary main server and extension server transmit data;
A plurality of secondary packets, each of which is provided in correspondence with each main server and each expansion server, and is used for individual transfer of data to and from these servers, with the PCIe packet having the identification information inserted by the expansion server side insertion means. Secondary shared memory storage means for storing in a secondary shared memory corresponding to the arbitrary main server and expansion server of the transmission source in the shared memory;
PCIe packet transmitting means for reading the identification information when the secondary shared memory storing means stores the PCIe packet in any of the secondary shared memories and transmitting the PCIe packet to the endpoint determined from the identification information; An end point sharing system comprising:
(付記3)
前記主サーバおよび拡張サーバは1組あるいは複数組存在することを特徴とする請求項1または請求項2記載のエンドポイント共有システム。
(Appendix 3)
The endpoint sharing system according to
(付記4)
前記統合エンドポイントは1組あるいは複数組存在することを特徴とする請求項1または請求項2記載のエンドポイント共有システム。
(Appendix 4)
3. The endpoint sharing system according to
(付記5)
前記拡張サーバ決定手段は、各サーバの負荷状況の軽い拡張サーバを決定することを特徴とする請求項1記載のエンドポイント共有システム。
(Appendix 5)
The endpoint sharing system according to
(付記6)
前記記憶装置は半導体メモリによって構成されることを特徴とする請求項1記載のエンドポイント共有システム。
(Appendix 6)
2. The endpoint sharing system according to
(付記7)
前記2次共有メモリは半導体メモリによって構成されることを特徴とする請求項2記載のエンドポイント共有システム。
(Appendix 7)
3. The endpoint sharing system according to claim 2, wherein the secondary shared memory is constituted by a semiconductor memory.
(付記8)
コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける所定のエンドポイントから現用系のサーバとしての主サーバにPCIeパケットを送信する統合エンドポイント側送信ステップと、
この統合エンドポイント側送信ステップで送信したPCIeパケットを受信した主サーバがこのPCIeパケットに格納されたデータを処理する拡張サーバを決定する拡張サーバ決定ステップと、
この拡張サーバ決定ステップで決定した拡張サーバのサーバ名を前記PCIeパケットに挿入する拡張サーバ名挿入ステップと、
この拡張サーバ名挿入ステップでサーバ名を挿入したPCIeパケットを前記主サーバから所定の記憶装置に送信する主サーバ側送信ステップと、
この主サーバ側送信ステップで送信したPCIeパケットを受信して前記記憶装置内の1次共有メモリに書き込む1次共有メモリ書込ステップと、
この1次共有メモリ書込ステップで前記1次共有メモリに書き込んだPCIeパケットを、アクティブ系およびスタンバイ系の各サーバのそれぞれに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する2次共有メモリのうちの前記拡張サーバ決定ステップで決定した2次共有メモリに転送する2次共有メモリ転送ステップ
とを具備することを特徴とするデータ転送方法。
(Appendix 8)
An active system from a predetermined endpoint in an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints An integrated endpoint side transmission step of transmitting a PCIe packet to a main server as a server of
An extended server determining step in which the main server that has received the PCIe packet transmitted in the integrated endpoint side transmitting step determines an extended server that processes the data stored in the PCIe packet;
An extended server name inserting step of inserting the server name of the extended server determined in the extended server determining step into the PCIe packet;
A main server side transmission step of transmitting the PCIe packet into which the server name is inserted in the extended server name insertion step from the main server to a predetermined storage device;
A primary shared memory writing step of receiving the PCIe packet transmitted in the main server side transmission step and writing it into the primary shared memory in the storage device;
The PCIe packet written to the primary shared memory in the primary shared memory writing step is individually provided for each of the active and standby servers and individually transferred to these servers. And a secondary shared memory transfer step of transferring to the secondary shared memory determined in the extended server determination step among the secondary shared memories used for the data transfer.
(付記9)
コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部としてのPCIプロシキ(Proxy)機能部と、複数のエンドポイントとから構成された統合エンドポイントにおける特定のエンドポイントに対してデータの送信を行う任意の主サーバおよび拡張サーバがPCIeパケットに前記特定のエンドポイントを表わす識別情報を挿入する拡張サーバ側挿入ステップと、
この拡張サーバ側挿入ステップで前記識別情報を挿入したPCIeパケットを、それぞれの主サーバおよび拡張サーバに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する複数の2次共有メモリのうちの自サーバに対応する2次共有メモリに格納する2次共有メモリ格納ステップと、
この2次共有メモリ格納ステップで前記2次共有メモリのいずれかにPCIeパケットが格納されたとき前記識別情報を読み出してこの識別情報から判別されるエンドポイント宛にPCIeパケットを送信するPCIeパケット送信ステップ
とを具備することを特徴とするデータ転送方法。
(Appendix 9)
For a specific endpoint in an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints An extension server-side insertion step in which any main server and extension server that transmit data inserts identification information representing the specific endpoint in the PCIe packet;
A plurality of secondary packets, which are provided in correspondence with the main server and the expansion server, respectively, and are used for individual transfer of data to and from these servers, with the PCIe packet having the identification information inserted in the insertion step on the expansion server side. A secondary shared memory storing step of storing in a secondary shared memory corresponding to the own server of the shared memory;
A PCIe packet transmitting step of reading the identification information and transmitting the PCIe packet to the endpoint determined from the identification information when the PCIe packet is stored in any of the secondary shared memories in the secondary shared memory storing step A data transfer method comprising:
10、20、100、100A、100B、100C エンドポイント共有システム
11 統合エンドポイント側送信手段
12 拡張サーバ決定手段
13 拡張サーバ名挿入手段
14 主サーバ側送信手段
15 1次共有メモリ書込手段
16 2次共有メモリ転送手段
21 拡張サーバ側挿入手段
22 2次共有メモリ格納手段
23 PCIeパケット送信手段
30、40 データ転送方法
31 統合エンドポイント側送信ステップ
32 拡張サーバ決定ステップ
33 拡張サーバ名挿入ステップ
34 主サーバ側送信ステップ
35 1次共有メモリ書込ステップ
36 2次共有メモリ転送ステップ
41 拡張サーバ側挿入ステップ
42 2次共有メモリ格納ステップ
43 PCIeパケット送信ステップ
1011 第1の統合エンドポイント
1012 第2の統合エンドポイント
103 第0−0のサーバ(Server#0−0)
1041 第0−1のサーバ(Server#0−1)
105 第1−0のサーバ(Server#1−0)
1061 第1−1のサーバ(Server#1−1)
107 記憶装置
111 エンドポイント
121〜128、131、132 PCIe NICカード
141 PCIプロシキ機能部
1510 第0のポート
1511 第1のポート
152 ACT・SBY選択機能部
1540 第0の仮想PCIeコンフィグ(Configuration)レジスタ
1541 第1の仮想PCIeコンフィグ(Configuration)レジスタ
155 コンフィグ制御部
158 アドレス変換・振り分け機能部
161、162 ピーシーアイエクスプレスケーブル
191 1次共有メモリ
192 2次共有メモリ
501 第0のエンドポイント間CTL(EP間CTL)部
502 第1のエンドポイント間CTL(EP間CTL)部
503 第0のメモリ間CTL(MEM間CTL)部
504 第1のメモリ間CTL(MEM間CTL)部
505 第0−0のサーバ間CTL部
506 第0−1のサーバ間CTL部
507 第1−0のサーバ間CTL部
508 第1−1のサーバ間CTL部
509 記憶装置CTL部
601、611 PCIeパケット
602、612 ヘッダフィールド
193 出力メモリ(OutputMem)領域
194 入力メモリ(InputMem)領域
195 出力メモリサーバ領域
196 入力メモリサーバ領域
10, 20, 100, 100A, 100B, 100C Endpoint shared
104 1 0-1 server (Server # 0-1)
105 1-0 server (Server # 1-0)
106 1 1-1 server (Server # 1-1)
107
Claims (9)
この統合エンドポイント側送信手段の送信したPCIeパケットに格納されたデータを処理する拡張サーバを決定する拡張サーバ決定手段と、
この拡張サーバ決定手段で決定した拡張サーバのサーバ名を前記PCIeパケットに挿入する拡張サーバ名挿入手段と、
この拡張サーバ名挿入手段でサーバ名を挿入したPCIeパケットを前記主サーバから所定の記憶装置に送信する主サーバ側送信手段と、
この主サーバ側送信手段で送信したPCIeパケットを受信して前記記憶装置内の1次共有メモリに書き込む1次共有メモリ書込手段と、
この1次共有メモリ書込手段で前記1次共有メモリに書き込んだPCIeパケットを、アクティブ系およびスタンバイ系の各サーバのそれぞれに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する2次共有メモリのうちの前記拡張サーバ決定手段で決定した2次共有メモリに転送する2次共有メモリ転送手段
とを具備することを特徴とするエンドポイント共有システム。 An active system from a predetermined endpoint in an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints Integrated endpoint side transmission means for transmitting a PCIe packet to a main server as a server of
Extended server determining means for determining an extended server for processing data stored in the PCIe packet transmitted by the integrated endpoint side transmitting means;
Extended server name inserting means for inserting the server name of the extended server determined by the extended server determining means into the PCIe packet;
Main server side transmitting means for transmitting the PCIe packet, in which the server name is inserted by the extended server name inserting means, from the main server to a predetermined storage device;
Primary shared memory writing means for receiving the PCIe packet transmitted by the main server side transmitting means and writing it to the primary shared memory in the storage device;
The PCIe packet written to the primary shared memory by the primary shared memory writing means is individually provided for each of the active and standby servers and is individually transferred to these servers. A secondary shared memory transfer means for transferring to a secondary shared memory determined by the expansion server determination means among the secondary shared memories used for the endpoint shared system.
この拡張サーバ側挿入手段で前記識別情報を挿入したPCIeパケットを、それぞれの主サーバおよび拡張サーバに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する複数の2次共有メモリのうちの送信元の前記任意の主サーバおよび拡張サーバに対応する2次共有メモリに格納する2次共有メモリ格納手段と、
この2次共有メモリ格納手段が前記2次共有メモリのいずれかにPCIeパケットを格納したとき前記識別情報を読み出してこの識別情報から判別されるエンドポイント宛にPCIeパケットを送信するPCIeパケット送信手段
とを具備することを特徴とするエンドポイント共有システム。 For a specific endpoint in an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints An extension server side insertion means for inserting identification information representing the specific endpoint into the PCIe packet when an arbitrary main server and extension server transmit data;
A plurality of secondary packets, each of which is provided in correspondence with each main server and each expansion server, and is used for individual transfer of data to and from these servers, with the PCIe packet having the identification information inserted by the expansion server side insertion means. Secondary shared memory storage means for storing in a secondary shared memory corresponding to the arbitrary main server and expansion server of the transmission source in the shared memory;
PCIe packet transmitting means for reading the identification information when the secondary shared memory storing means stores the PCIe packet in any of the secondary shared memories and transmitting the PCIe packet to the endpoint determined from the identification information; An end point sharing system comprising:
この統合エンドポイント側送信ステップで送信したPCIeパケットを受信した主サーバがこのPCIeパケットに格納されたデータを処理する拡張サーバを決定する拡張サーバ決定ステップと、
この拡張サーバ決定ステップで決定した拡張サーバのサーバ名を前記PCIeパケットに挿入する拡張サーバ名挿入ステップと、
この拡張サーバ名挿入ステップでサーバ名を挿入したPCIeパケットを前記主サーバから所定の記憶装置に送信する主サーバ側送信ステップと、
この主サーバ側送信ステップで送信したPCIeパケットを受信して前記記憶装置内の1次共有メモリに書き込む1次共有メモリ書込ステップと、
この1次共有メモリ書込ステップで前記1次共有メモリに書き込んだPCIeパケットを、アクティブ系およびスタンバイ系の各サーバのそれぞれに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する2次共有メモリのうちの前記拡張サーバ決定ステップで決定した2次共有メモリに転送する2次共有メモリ転送ステップ
とを具備することを特徴とするデータ転送方法。 An active system from a predetermined endpoint in an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints An integrated endpoint side transmission step of transmitting a PCIe packet to a main server as a server of
An extended server determining step in which the main server that has received the PCIe packet transmitted in the integrated endpoint side transmitting step determines an extended server that processes the data stored in the PCIe packet;
An extended server name inserting step of inserting the server name of the extended server determined in the extended server determining step into the PCIe packet;
A main server side transmission step of transmitting the PCIe packet into which the server name is inserted in the extended server name insertion step from the main server to a predetermined storage device;
A primary shared memory writing step of receiving the PCIe packet transmitted in the main server side transmission step and writing it into the primary shared memory in the storage device;
The PCIe packet written to the primary shared memory in the primary shared memory writing step is individually provided for each of the active and standby servers and individually transferred to these servers. And a secondary shared memory transfer step of transferring to the secondary shared memory determined in the extended server determination step among the secondary shared memories used for the data transfer.
この拡張サーバ側挿入ステップで前記識別情報を挿入したPCIeパケットを、それぞれの主サーバおよび拡張サーバに個別に対応して設けられこれらのサーバとの間のデータの個別転送に使用する複数の2次共有メモリのうちの自サーバに対応する2次共有メモリに格納する2次共有メモリ格納ステップと、
この2次共有メモリ格納ステップで前記2次共有メモリのいずれかにPCIeパケットが格納されたとき前記識別情報を読み出してこの識別情報から判別されるエンドポイント宛にPCIeパケットを送信するPCIeパケット送信ステップ
とを具備することを特徴とするデータ転送方法。 For a specific endpoint in an integrated endpoint composed of a PCI proxy function unit serving as a function unit acting as a PCI (Peripheral Component Interconnect) function as an expansion bus architecture for computers and a plurality of endpoints An extension server-side insertion step in which any main server and extension server that transmit data inserts identification information representing the specific endpoint in the PCIe packet;
A plurality of secondary packets, which are provided in correspondence with the main server and the expansion server, respectively, and are used for individual transfer of data to and from these servers, with the PCIe packet having the identification information inserted in the insertion step on the expansion server side. A secondary shared memory storing step of storing in a secondary shared memory corresponding to the own server of the shared memory;
A PCIe packet transmitting step of reading the identification information and transmitting the PCIe packet to the endpoint determined from the identification information when the PCIe packet is stored in any of the secondary shared memories in the secondary shared memory storing step A data transfer method comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010025509A JP5482263B2 (en) | 2010-02-08 | 2010-02-08 | Endpoint sharing system and data transfer method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010025509A JP5482263B2 (en) | 2010-02-08 | 2010-02-08 | Endpoint sharing system and data transfer method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011164838A true JP2011164838A (en) | 2011-08-25 |
JP5482263B2 JP5482263B2 (en) | 2014-05-07 |
Family
ID=44595459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010025509A Expired - Fee Related JP5482263B2 (en) | 2010-02-08 | 2010-02-08 | Endpoint sharing system and data transfer method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5482263B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10031678B2 (en) | 2015-01-09 | 2018-07-24 | Samsung Electronics Co., Ltd. | Storage device, data storage device including the same, and operation method thereof |
JP2019091494A (en) * | 2014-10-05 | 2019-06-13 | アマゾン テクノロジーズ インコーポレイテッド | Emulated endpoint configuration |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6143370A (en) * | 1984-08-03 | 1986-03-01 | インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション | Multiplex processing system |
JPH03225551A (en) * | 1990-01-31 | 1991-10-04 | Fujitsu Ltd | Input and output device access control system |
JPH1011369A (en) * | 1996-06-27 | 1998-01-16 | Hitachi Ltd | Communication system and information processor with hot standby switching function |
JP2005512194A (en) * | 2001-11-30 | 2005-04-28 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | Switching I / O node for connection in a multiprocessor computer system |
JP2007148621A (en) * | 2005-11-25 | 2007-06-14 | Hitachi Ltd | Computer system |
-
2010
- 2010-02-08 JP JP2010025509A patent/JP5482263B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6143370A (en) * | 1984-08-03 | 1986-03-01 | インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション | Multiplex processing system |
JPH03225551A (en) * | 1990-01-31 | 1991-10-04 | Fujitsu Ltd | Input and output device access control system |
JPH1011369A (en) * | 1996-06-27 | 1998-01-16 | Hitachi Ltd | Communication system and information processor with hot standby switching function |
JP2005512194A (en) * | 2001-11-30 | 2005-04-28 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | Switching I / O node for connection in a multiprocessor computer system |
JP2007148621A (en) * | 2005-11-25 | 2007-06-14 | Hitachi Ltd | Computer system |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019091494A (en) * | 2014-10-05 | 2019-06-13 | アマゾン テクノロジーズ インコーポレイテッド | Emulated endpoint configuration |
US11321247B2 (en) | 2014-10-05 | 2022-05-03 | Amazon Technologies, Inc. | Emulated endpoint configuration |
US11886355B2 (en) | 2014-10-05 | 2024-01-30 | Amazon Technologies, Inc. | Emulated endpoint configuration |
US10031678B2 (en) | 2015-01-09 | 2018-07-24 | Samsung Electronics Co., Ltd. | Storage device, data storage device including the same, and operation method thereof |
Also Published As
Publication number | Publication date |
---|---|
JP5482263B2 (en) | 2014-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7185143B2 (en) | SAN/NAS integrated storage system | |
US8095701B2 (en) | Computer system and I/O bridge | |
JP4543051B2 (en) | Remote data facility on IP network | |
KR101455016B1 (en) | Method and apparatus to provide a high availability solid state drive | |
US20170329625A1 (en) | Method, apparatus, and system for accessing storage device | |
US7822908B2 (en) | Discovery of a bridge device in a SAS communication system | |
EP1760591B1 (en) | System and method of managing access path | |
US20060242330A1 (en) | Proxy-based device sharing | |
US10951741B2 (en) | Computer device and method for reading or writing data by computer device | |
US7774514B2 (en) | Method of transmitting data between storage virtualization controllers and storage virtualization controller designed to implement the method | |
EP1537700B1 (en) | Protocol for accessing a local device of a remote node via infiniband | |
CN1976310B (en) | Communication method using bus interface over a network | |
JP5482263B2 (en) | Endpoint sharing system and data transfer method | |
WO2023186143A1 (en) | Data processing method, host, and related device | |
US7930445B2 (en) | Computer system using remote I/O and I/O data transfer method | |
JP2011048452A (en) | End point proxy access device, sharing system, proxy access method and proxy access program | |
JP2011076174A (en) | End point sharing system, proxy access method, and proxy access program | |
EP4113311B1 (en) | Storage device, operating method of storage device, and electronic device | |
US11995357B2 (en) | Disaggregation computing system and method | |
CN107911414B (en) | Data access system | |
JP5910745B2 (en) | Data backup method and interface card | |
KR20220141686A (en) | Peripheral component interconnect express interface device and operating method thereof | |
CN116955250A (en) | Fast peripheral component interconnect device and method of operating the same | |
JP2016536697A (en) | Computer system and method for bidirectional transmission and reception of data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20121016 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131029 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131030 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131225 |
|
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: 20140121 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140203 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5482263 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |