JP2011076174A - End point sharing system, proxy access method, and proxy access program - Google Patents
End point sharing system, proxy access method, and proxy access program Download PDFInfo
- Publication number
- JP2011076174A JP2011076174A JP2009224083A JP2009224083A JP2011076174A JP 2011076174 A JP2011076174 A JP 2011076174A JP 2009224083 A JP2009224083 A JP 2009224083A JP 2009224083 A JP2009224083 A JP 2009224083A JP 2011076174 A JP2011076174 A JP 2011076174A
- Authority
- JP
- Japan
- Prior art keywords
- server
- active
- standby
- main server
- endpoint
- 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.)
- Pending
Links
Images
Landscapes
- Hardware Redundancy (AREA)
- Bus Control (AREA)
Abstract
Description
本発明は、複数のCPU(Central Processing Unit)あるいはサーバが入出力装置としてのエンドポイントを共有するためのエンドポイント共有システム、エンドポイント代理アクセス方法およびエンドポイント代理アクセスプログラムに関する。本発明は特に拡張バスの一種であるピーシーアイエクスプレス(PCI Express)を使用してエンドポイントを共有するのに好適なエンドポイント共有システム、エンドポイント代理アクセス方法およびエンドポイント代理アクセスプログラムに関する。 The present invention relates to an endpoint sharing system, an endpoint proxy access method, and an endpoint proxy access program for a plurality of CPUs (Central Processing Units) or servers to share an endpoint as an input / output device. The present invention particularly relates to an endpoint sharing system, an endpoint proxy access method, and an endpoint proxy access program suitable for sharing endpoints 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(Central Processing Unit)と複数のエンドポイント(End Point)とで構成される。エンドポイントとは、LAN(Local Area Network)コントローラやストレージデバイス等のデータの入出力装置の総称である。 A communication system using PCI Express includes a server-side CPU (Central Processing Unit) and a plurality of end points. 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).
図17は、この第1の関連技術におけるエンドポイント共有システムの構成の概要を表わしたものである。このエンドポイント共有システム700では、第1のプロセッサユニット701が第1のホストブリッジ702および第1の外部バス703を経由して第1のエンドポイント704に接続されている。同様に、第2のプロセッサユニット711は第2のホストブリッジ712および第2の外部バス713を経由して第2のエンドポイント714に接続されている。
FIG. 17 shows an outline of the configuration of the endpoint sharing system in the first related technology. In this
第1のエンドポイント704と第2のエンドポイント714は互いに異なる外部バス703、713に接続されているので、たとえば第1のプロセッサユニット701がそのまま第2のエンドポイント714を使用することができない。そこで、エンドポイント共有システム700では、第1のエンドポイント704と第2のエンドポイント714の間に、これらの間を伝達される信号の変換を行う変換部721と、変換部721で変換に使用するデータを記憶するメモリ722を配置している。
Since the
たとえば第1のプロセッサユニット701から第2のプロセッサユニット711の第2のエンドポイント714へパケットを送信するものとする。この場合、そのパケットは、まず第1のエンドポイント704に送信される。第1のエンドポイント704に到達したパケットには、要求元のバス番号およびデバイス番号からなる要求元ID(identifier)が含まれる。第1のホストブリッジ702のバス番号およびデバイス番号が要求元IDとなる。この要求元IDを変換部721において変換し、第2のエンドポイント714のバス番号およびデバイス番号とする。これにより、第2のプロセッサユニット711配下のデバイスツリー内で有効なパケットが生成され、パケットを同ツリー内の所望のユニットあるいはデバイスへ到達させることができる。第2のプロセッサユニット711のデバイスツリーから第1のプロセッサユニット701のデバイスツリーに向けたパケット送信も同様である。
For example, it is assumed that a packet is transmitted from the
メモリ722には、第1および第2のホストブリッジ702、712のバス番号およびデバイス番号を、パケットに与えられたタグと対応づけて要求元IDテーブルとして格納している。タグはあるアクセス確立のための要求および応答に対して一意に定められる識別番号である。
The
この第1の関連技術によるエンドポイント共有システム700では、第1プロセッサユニット701が第2プロセッサユニット711のエンドポイント714を共有するためには、変換部721およびメモリ722を接続した他のエンドポイント704を介する必要がある。このためには、共有する1つのエンドポイントのために、第1プロセッサユニット701と第2プロセッサユニット711がそれぞれ1つずつのエンドポイント704、714を用意する必要がある。また、変換部721とこの変換部721の変換に必要な要求元IDテーブルを格納したメモリ722を必要とし、システムの管理や運用が煩雑となる。
In the
そこで、本発明者は、他のエンドポイントを必要とすることなく、1つのエンドポイントを複数のサーバが共有することのできる第2の関連技術を提案した。 Therefore, the present inventor has proposed a second related technique in which a plurality of servers can share one endpoint without requiring another endpoint.
図18は、この第2の関連技術におけるエンドポイント共有システムの構成を表わしたものである。第2の関連技術のエンドポイント共有システム800は、第0および第1のサーバ810、811を、統合エンドポイント(EP:End Point)812に接続した構成となっている。ここで、第0および第1のサーバ810、811ならびに統合エンドポイント812は、互いに物理的に分離された存在となっている。
FIG. 18 shows the configuration of the endpoint sharing system in the second related technology. The end
統合エンドポイント812は、PCIプロシキ(Proxy)機能部821と、第0〜第Nのエンドポイント(EP)8220〜822N(ただし、Nは正の整数)から構成されている。ここで、PCIプロシキ機能部821は、コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部である。PCIプロシキ機能部821は、図示しないがCPUと、このCPUが実行する制御プログラムを格納したROM(Read Only Memory)等の記録媒体を有しており、次の各部を備えている。
The integrated
(a)第0のポート8310
第0のサーバ810とPCIe(PCIExpress)ケーブル8320を介して接続される。
(b)第1のポート8311
第1のサーバ811とPCIeケーブル8321を介して接続される。
(c)ACT(active)・SBY(standby)選択機能部833
第0および第1のサーバ810、811の一方をACT(現用)系に、他方をSBY(待機系)系に選択する。
(d)第0の仮想PCIeコンフィグ(Configuration)レジスタ8340
各エンドポイント822のPCIeコンフィグレジスタ情報を格納する。
(e)第1の仮想PCIeコンフィグ(Configuration)レジスタ8341
各エンドポイント822のPCIeコンフィグレジスタ情報を格納する。
(f)コンフィグ(Configuration)制御部835
第0の仮想PCIeコンフィグレジスタ8340および第1の仮想PCIeコンフィグレジスタ8341を管理する。
(g)アドレス変換テーブル836
第0のサーバ810と第1のサーバ811のメモリ空間の差分情報としてのアドレス空間差分情報を保持する。
(h)アドレス変換部837
第0のサーバ810と第1のサーバ811のメモリ空間へのアクセスが同一のアドレスになるように、アドレスを変換する。
(i)アドレス変換・振り分け機能部838
第0および第1のサーバ810、811のうちのACT系のサーバと接続されたポートとの間でPCIeパケットを振り分ける。
(j)第0〜第NのPCIeポート(Port)8390〜839N
第0〜第Nのエンドポイント(EP)8220〜822Nをそれぞれ対応して接続する。
(A)
It is connected via the
(B)
It is connected to the
(C) ACT (active) / SBY (standby) selection function unit 833
One of the 0th and
(D) 0th virtual PCIe configuration register 834 0
The PCIe configuration register information of each
(E) the first virtual PCIe configuration (Configuration) register 834 1
The PCIe configuration register information of each
(F)
Zeroth managing virtual PCIe configuration registers 834 0 and the first virtual PCIe configuration register 834 1.
(G) Address conversion table 836
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) 839 0 to 839 N
The 0th to Nth end points (EP) 822 0 to 822 N are connected correspondingly.
第2の関連技術のエンドポイント共有システム800では、第0〜第Nのエンドポイント8220〜822Nを、汎用サーバとしての第0および第1のサーバ810、811から共通に利用できるようになっている。ここで、第0〜第Nのエンドポイント8220〜822Nは、前記したようにデータの入出力装置の総称である。第0および第1のサーバ810、811は、それぞれ図示しないがCPU(Central Processing Unit)を実装している。
In the
通常のPCIe(PCI Express)システムでは、データの入出力装置としてのエンドポイントは、通常、サーバ内に実装される。第2の関連技術のエンドポイント共有システム800では、第0〜第Nのエンドポイント8220〜822Nが第0および第1のサーバ810、811と物理的に独立した構成となっている。したがって、第0のサーバ810と第0〜第Nのエンドポイント8220〜822Nの間、あるいは第1のサーバ811と同じく第0〜第Nのエンドポイント8220〜822Nの間は、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のサーバ810、811の一方をACT(active)系、すなわち現用系として初期的に設定しており、このACT系のみが第0〜第Nのエンドポイント8220〜822Nにアクセス可能となっている。そして、SBY(standby)系を用意しておくことで、サーバに搭載されたCPUを二重化している。
In the second related technique, 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のサーバ810、811は、それぞれ1個ずつPCIe拡張スロット841、842を有している。第0のサーバ810は、PCIeケーブル8320を接続するためのPCIe NIC(Network Interface Card)843を、PCIe拡張スロット841に実装(装着)している。同様に、第1のサーバ811は、PCIeケーブル8321を接続するためのPCIe NIC844をPCIe拡張スロット842に実装している。
The 0th and
第0〜第Nのエンドポイント8220〜822NとPCIプロシキ機能部821における第0〜第NのPCIeポート8390〜839Nの間には、それぞれPCIeバス8510〜851Nが接続されている。
0th Between the
PCIプロキシ機能部821は、第0のサーバ810と接続するための第0のポート8310と、第1のサーバ811と接続するための第1のポート8311を有する。また、PCIプロキシ機能部821は、仮想PCIeコンフィグレジスタ8340、8341をそれぞれ管理するためのコンフィグ(Configuration)制御部835を有する。コンフィグ制御部835は、PCIプロキシ機能部821に接続された第0〜第Nのエンドポイント8220〜822Nが保持する、図示しないPCIeコンフィグレーションレジスタを制御する機能を有する。また、コンフィグ制御部835は、第0および第1の仮想PCIeコンフィグレジスタ8340、8341に対して、各エンドポイント822のPCIeコンフィグレジスタ情報の内容を反映させる機能も有する。
PCI
第0のサーバ810は、第0の仮想PCIeコンフィグ(Configuration)レジスタ8340に対して、PCIeコンフィグレーション情報のリード・ライト(Read/Write)を行う。第1のサーバ811も、第1の仮想PCIeコンフィグレジスタ8341に対して、PCIeコンフィグレーション情報のリード・ライトを行う。このため、第0〜第Nのエンドポイント8220〜822Nの前記したPCIeコンフィグレーションレジスタは、これらのサーバ810、811から直接制御されることはない。これらのPCIeコンフィグレーションレジスタは、コンフィグ制御部835を経由してアクセスされることになる。
第0のポート8310と第1のポート8311は、PCIeパケットで転送されるACT制御信号を識別する。そして、ACT切替指示が第0のサーバ810もしくは第1のサーバ811から送付された場合には、ACT・SBY選択機能部833に対してACT・SBY切替指示を出すようになっている。ACT・SBY選択機能部833では、アドレス変換・振り分け機能部838に対して、現用系としてのACT系サーバが第0および第1のサーバ810、811のどちらであるかを示す信号を送出する。アドレス変換・振り分け機能部838は、この信号を受信すると、第0のポート8310と第1のポート8311のうちのACT系のサーバと接続されたポートとの接続を維持する。アドレス変換・振り分け機能部838は、第0のポート8310と第1のポート8311のうちのSBY系のポートとのデータのやり取りは行わない。
The
コンフィグ制御部835は、第0および第1の仮想PCIeコンフィグレジスタ8340、8341に設定されたPCIeコンフィグレーションレジスタ情報から第0および第1のサーバ810、811が保持するPCIeメモリ空間マップ情報を取得する。そして、各サーバ810、811でメモリ空間上に各エンドポイント822をどのように配置したかを認識する。このとき、各サーバ810、811の設定値に差分がある場合には、第0のサーバ810のメモリ空間に対して、第1のサーバ811のメモリ空間の差分を計算し、差分情報をアドレス変換テーブル836に転送する。
アドレス変換部837は、アドレス変換テーブル836から送信された第0および第1のサーバ810、811のアドレス空間差分情報を取得する。そして、第1のサーバ811のメモリ空間へのアクセスを第0のサーバ810のメモリ空間へのアクセスと同一のアドレスになるように、アドレス変換処理を実施する。その後、第1のサーバ811と第0〜第Nのエンドポイント8220〜822Nの間でアクセスが行われる際にPCIeパケットのやり取りを実施する。
The
アドレス変換・振り分け機能部838は、第0〜第Nのエンドポイント8220〜822Nに対するPCIeパケットの振分けを、PCIeパケットヘッダ内に格納されたアドレス情報を基にして実施する。
The address conversion /
なお、第0〜第Nのエンドポイント8220〜822Nから第0あるいは第1のサーバ810、811の方向に流れるパケットについては、ACT・SBY選択機能部833から送信されたACT情報を基にして、ACT系サーバと接続されたポート方向のみにパケットを送信する。
The packets flowing from the 0th to Nth
エンドポイント共有システム800にも見られるように、ネットワーク機器では、CPUをACT系とSBY系の双方に配置して、これらの2つの系で同期をとる一方、片方の系のCPUが配下のエンドポイントにアクセスしてデータの運用を行うことが望ましい。このため、ACT系とSBY系の合計2個のCPUとエンドポイントで構成するネットワーク機器の場合には、エンドポイントに対してACT系のCPUのみアクセス可能であればよい。しかしながら、障害が発生した時には、CPUの系切り替えを実施した後に、新しいACT系のCPUが、速やかにエンドポイントにアクセスできるための仕組みが必要となる。
As seen in the end
既存のピーシーアイ(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 becomes 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)をエンドポイントのPCIeコンフィグレーションレジスタに対して設定し、メモリ空間における位置を確定させる。エンドポイントは設定されたベースアドレス情報に基づいたアドレス値が設定されたPCIeパケットのみを、自分が処理するPCIeパケットであると認識する。このため、エンドポイントは2個のCPU間とのやり取りの際のアドレス値は、PCIeコンフィグレーションレジスタに設定されている値である必要がある。この結果、エンドポイントのPCIeコンフィグレーション情報を再設定しないで、CPUの切り替えを実施する場合は、エンドポイントへアクセスするアドレスをエンドポイントの前段同一空間上になるように、変換する機能が必要となる。 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 end point, and a position in the memory space is determined. The endpoint recognizes only the PCIe packet in which the address value based on the set base address information is set as the PCIe packet to be processed by itself. For this reason, the end point needs to have an address value set in the PCIe configuration register when exchanging between the two CPUs. As a result, when CPU switching is performed without resetting the PCIe configuration information of the endpoint, a function to convert the address for accessing the endpoint so that it is in the same space before the endpoint is required. Become.
そこで、第2の関連技術では、電源投入直後のACT系サーバとしての第0のサーバ810のメモリ空間にエンドポイントをマッピングするようにしている。そして、第0のサーバ810から各エンドポイント822へのアクセスについては、アドレス情報をそのまま使用する。障害発生によりACT系とSBY系の切り替えが発生したら、その後の電源投入直後のSBY系サーバとしての第1のサーバ811から各エンドポイント822のアクセスについては、アドレス変換を実施する。これにより、同一のエンドポイントに対して、2つのCPUがアクセスする機能を実現する。
Therefore, in the second related technique, the endpoint is mapped to the memory space of the
このような第2の関連技術を使用すると、エンドポイントを複数のサーバで共有する仕組みを実現可能となる。また、エンドポイント側の処理が増加した場合には、エンドポイントを増設することで、拡張性のあるシステム構成を実現することができる。 When such a second related technology is used, it is possible to realize a mechanism for sharing an endpoint among a plurality of servers. In addition, when the processing on the endpoint side increases, an expandable system configuration can be realized by adding endpoints.
しかしながら、サーバ側の負荷が増えた場合、第2の関連技術を使用した場合には、サーバの数をこれに応じて増設する手法を採用することができない。サーバの数を増設する手法を採用すると、ACT系のサーバが増えてしまうことになるが、この場合、複数のACT系サーバがエンドポイントにアクセスすることは不可能だからである。そこで、第2の関連技術を使用する手法では、サーバ側の負荷が増加した際にサーバの数を増やさず、サーバ自体の能力を向上させる対処方法を採用することになる。しかしながら、サーバ自体の能力を向上させるには、自ずと限界がある。 However, when the load on the server side increases, when the second related technology is used, it is not possible to adopt a method of increasing the number of servers in accordance with this. If the method of increasing the number of servers is adopted, the number of ACT servers increases. In this case, it is impossible for a plurality of ACT servers to access the endpoint. Therefore, in the method using the second related technique, when the load on the server side increases, a coping method that improves the capability of the server itself without increasing the number of servers is adopted. However, there is a limit to improving the capacity of the server itself.
そこで本発明の目的は、CPUの処理が増減した場合に、サーバの数を調整できるエンドポイント共有システム、エンドポイント代理アクセス方法およびエンドポイント代理アクセスプログラムを提供することにある。 Accordingly, an object of the present invention is to provide an endpoint sharing system, an endpoint proxy access method, and an endpoint proxy access program that can adjust the number of servers when CPU processing increases or decreases.
本発明では、(イ)CPU(Central Processing Unit)を実装した1台の現用系の主サーバと、(ロ)CPUを実装した任意の台数からなる現用系の拡張サーバと、(ハ)CPUを実装した1台の待機系の主サーバと、(ニ)CPUを実装した任意の台数からなる待機系の拡張サーバと、(ホ)前記した現用系の主サーバと前記した現用系の拡張サーバの間の通信を行う現用系通信手段と、(へ)前記した待機系の主サーバと前記した待機系の拡張サーバの間の通信を行う待機系通信手段と、(ト)所定のメモリ空間上に、前記した現用系の主サーバにおける前記した待機系の主サーバと共有する所定数のエンドポイントのアドレス情報と、前記した待機系の主サーバにおける前記した所定数のエンドポイントのアドレス情報をそれぞれマッピングするマッピング手段と、(チ)このマッピング手段によってマッピングされる前記した待機系の主サーバの前記した現用系の主サーバに対する前記した所定数のエンドポイントについてのアドレス情報の差分を、これらのサーバのCPUのベースアドレスの値の差によって検出する差分検出手段と、(リ)この差分検出手段によって検出された差分を基にして、前記した待機系の主サーバが現用系の主サーバに切り替わった際に前記した現用系の主サーバに代理して前記した所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行うアドレス変換手段と、(ヌ)前記した現用系の主サーバと前記した待機系の主サーバの系の切り替え時機の到来を監視する切替時機到来監視手段と、(ル)この切替時機到来監視手段によって前記した待機系の主サーバが現用系の主サーバに切り替えられるまでは、前記したマッピング手段にマッピングされた前記した現用系の主サーバにおける前記した所定数のエンドポイントのアドレス情報をそのまま用いて前記した現用系の主サーバに代理して前記した所定数のエンドポイントにアクセスする第1のエンドポイントアクセス手段と、(ヲ)前記した切替時機到来監視手段によって前記した待機系の主サーバが現用系の主サーバに切り替えられたときには、切り替える前までの前記した待機系の主サーバにおける前記した所定数のエンドポイントのアドレス情報をそれぞれ前記したアドレス変換手段で変換して現用系に切り替えられた主サーバに代理で前記した所定数のエンドポイントにアクセスする第2のエンドポイントアクセス手段と、(ワ)前記した現用系の拡張サーバの1台が前記した現用系の主サーバに代わって前記した所定数のエンドポイントと通信するときそのデータを前記した現用系の主サーバに代わって所定の現用系用記憶領域に格納する現用系用データ格納手段と、(カ)前記した待機系の拡張サーバの1台が前記した待機系の主サーバに代わって前記した所定数のエンドポイントと通信するときそのデータを前記した待機系の主サーバに代わって所定の待機用記憶領域に格納する待機系用データ格納手段とをエンドポイント共有システムが具備する。 In the present invention, (a) one active main server on which a CPU (Central Processing Unit) is mounted, (b) an active expansion server comprising any number of CPUs mounted, and (c) a CPU One installed standby main server, (d) a standby expansion server comprising any number of CPUs installed, and (e) the above-described active main server and the above-described active expansion server. Active communication means for performing communication between the standby system communication means for performing communication between the standby main server and the standby expansion server described above, and (g) on a predetermined memory space. Mapping the address information of a predetermined number of endpoints shared with the standby main server as described above in the active main server and the address information of the predetermined number of endpoints as described above in the standby main server And (h) the difference between the address information of the predetermined number of endpoints of the standby main server mapped by the mapping means with respect to the active main server described above, of the servers. Difference detection means for detecting based on the difference in the value of the base address of the CPU, and (ii) when the standby main server described above is switched to the active main server based on the difference detected by the difference detection means. Address conversion means for converting address information after switching when accessing the predetermined number of endpoints on behalf of the active main server, and (nu) the active main server Switching time arrival monitoring means for monitoring the arrival of the switching time of the standby main server, and (le) arrival of this switching time. Until the standby main server is switched to the active main server by the monitoring means, the address information of the predetermined number of endpoints in the active main server mapped in the mapping means is used as it is. Using the first endpoint access means for accessing the predetermined number of endpoints on behalf of the active main server, and (v) the standby main server described above by the switching time arrival monitoring means described above. Is switched to the active system by converting the address information of the predetermined number of endpoints in the standby main server described above before switching to the active system by the above address conversion means. The second server accessing the predetermined number of endpoints on behalf of the primary server. And (c) when one of the above-mentioned active expansion servers communicates with the above-mentioned predetermined number of endpoints on behalf of the above-mentioned active main server, the data is transferred to the above-mentioned active main server. Active data storage means for storing in a predetermined active storage area in place of the server, and (f) one of the standby expansion servers described above is the predetermined number in place of the standby main server described above. The endpoint sharing system includes standby system data storage means for storing the data in a predetermined standby storage area in place of the standby system main server when communicating with the endpoint.
また、本発明では、(イ)ピーシーアイエクスプレス(Peripheral Component Interconnect Express)バスに接続された所定のメモリ空間上に、現用系の主サーバにおける待機系の主サーバと共有する所定数のエンドポイントのアドレス情報と、前記した待機系の主サーバにおける前記した所定数のエンドポイントのアドレス情報をそれぞれマッピングするマッピングステップと、(ロ)このマッピングステップによってマッピングされる前記した待機系の主サーバの前記した現用系の主サーバに対する前記した所定数のエンドポイントについてのアドレス情報の差分を、これらのサーバのCPU(Central Processing Unit)のベースアドレスの値の差によって検出する差分検出ステップと、(ハ)この差分検出ステップによって検出された差分を基にして、前記した待機系の主サーバが現用系の主サーバに切り替わった際に前記した現用系の主サーバに代理して前記した所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行うアドレス変換ステップと、(ニ)前記した現用系の主サーバと待機系の主サーバの系の切り替え時機の到来を監視する切替時機到来監視ステップと、(ホ)この切替時機到来監視ステップによって前記した待機系の主サーバが現用系の主サーバに切り替えられるまでは、前記したマッピングステップによってマッピングされた前記した現用系の主サーバにおける前記した所定数のエンドポイントのアドレス情報をそのまま用いて前記した現用系の主サーバに代理して前記した所定数のエンドポイントにアクセスする第1のエンドポイントアクセスステップと、(ヘ)前記した切替時機到来監視ステップによって前記した待機系の主サーバが現用系の主サーバに切り替えられたときには、切り替える前までの前記した待機系の主サーバにおける前記した所定数のエンドポイントのアドレス情報をそれぞれ前記したアドレス変換ステップによって変換して現用系に切り替えられた主サーバに代理で前記した所定数のエンドポイントにアクセスする第2のエンドポイントアクセスステップと、(ト)任意の台数からなる現用系の拡張サーバのうちの1台が、前記した現用系の主サーバの代わりに前記した第1のエンドポイントアクセスステップで前記した所定数のエンドポイントと通信を行うとき、そのデータを前記した現用系の主サーバの通信時のデータに代わって所定の記憶領域に格納する現用系用データ格納ステップと、(チ)任意の台数からなる待機系の拡張サーバのうちの1台が、前記した待機系の主サーバの代わりに前記した第2のエンドポイントアクセスステップで前記した所定数のエンドポイントと通信を行うとき、そのデータを前記した待機系の主サーバの通信時のデータに代わって所定の記憶領域に格納する待機系用データ格納ステップとをエンドポイント代理アクセス方法が具備する。 In the present invention, (b) a predetermined number of endpoints shared with the standby main server in the active main server are stored in a predetermined memory space connected to the (B) Peripheral Component Interconnect Express bus. A mapping step for mapping the address information and the address information of the predetermined number of endpoints in the standby main server, and (b) the standby main server mapped by the mapping step. A difference detection step for detecting a difference in address information for the predetermined number of endpoints with respect to the active main server by a difference in base address values of CPUs (Central Processing Units) of these servers; Based on the difference detected by the difference detection step, When the standby primary server is switched to the active primary server, the address information after the switching is converted when accessing the predetermined number of endpoints on behalf of the active primary server. The address conversion step, (d) the switching timing arrival monitoring step for monitoring the arrival of switching timing between the active main server and the standby main server, and (e) the switching timing arrival monitoring step described above. Until the standby main server is switched to the active main server, the address information of the predetermined number of endpoints in the active main server mapped in the mapping step is used as it is. The first endpoint that accesses the predetermined number of endpoints on behalf of the main server of the system And (f) when the standby main server is switched to the active main server by the switching time arrival monitoring step, the predetermined number in the standby main server before switching is changed. A second endpoint access step for accessing the predetermined number of endpoints on behalf of the main server switched to the active system by converting the address information of each endpoint by the address conversion step described above, and (g) When one of the active expansion servers composed of an arbitrary number communicates with the predetermined number of endpoints in the first endpoint access step described above instead of the above-described active main server, Instead of the data at the time of communication with the active main server described above, a predetermined storage area The active data storage step for storing, and (h) one of the standby expansion servers of an arbitrary number is used in the second endpoint access step described above instead of the standby main server described above. When communicating with the predetermined number of endpoints described above, the standby-system data storage step of storing the data in a predetermined storage area in place of the data at the time of communication of the standby-system main server described above is the endpoint proxy access The method comprises.
更に本発明では、現用系の主サーバと待機系の主サーバのそれぞれとピーシーアイエクスプレス(Peripheral Component Interconnect Express)バスを介して接続され、これらの主サーバと所定数のネットワーク端末としてのエンドポイントを共有する装置のコンピュータに、エンドポイント代理アクセスプログラムとして、(イ)前記したピーシーアイエクスプレスバスに接続された所定のメモリ空間上に、現用系の主サーバにおける待機系の主サーバと共有する所定数のエンドポイントのアドレス情報と、前記した待機系の主サーバにおける前記した所定数のエンドポイントのアドレス情報をそれぞれマッピングするマッピング処理と、(ロ)このマッピング処理によってマッピングされる前記した待機系の主サーバの前記した現用系の主サーバに対する前記した所定数のエンドポイントについてのアドレス情報の差分を、これらのサーバのCPU(Central Processing Unit)のベースアドレスの値の差によって検出する差分検出処理と、(ハ)この差分検出処理によって検出された差分を基にして、前記した待機系の主サーバが現用系の主サーバに切り替わった際に前記した現用系の主サーバに代理して前記した所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行うアドレス変換処理と、(ニ)前記した現用系の主サーバと待機系の主サーバの系の切り替え時機の到来を監視する切替時機到来監視処理と、(ホ)この切替時機到来監視処理によって前記した待機系の主サーバが現用系の主サーバに切り替えられるまでは、前記したマッピング処理によってマッピングされた前記した現用系の主サーバにおける前記した所定数のエンドポイントのアドレス情報をそのまま用いて前記した現用系の主サーバに代理して前記した所定数のエンドポイントにアクセスする第1のエンドポイントアクセス処理と、(ヘ)前記した切替時機到来監視処理によって前記した待機系の主サーバが現用系の主サーバに切り替えられたときには、切り替える前までの前記した待機系の主サーバにおける前記した所定数のエンドポイントのアドレス情報をそれぞれ前記したアドレス変換処理によって変換して現用系に切り替えられた主サーバに代理で前記した所定数のエンドポイントにアクセスする第2のエンドポイントアクセス処理と、(ト)任意の台数からなる現用系の拡張サーバのうちの1台が、前記した現用系の主サーバの代わりに前記した第1のエンドポイントアクセス処理で前記した所定数のエンドポイントと通信を行うとき、そのデータを前記した現用系の主サーバの通信時のデータに代わって所定の記憶領域に格納する現用系用データ格納処理と、(チ)任意の台数からなる待機系の拡張サーバのうちの1台が、前記した待機系の主サーバの代わりに前記した第2のエンドポイントアクセス処理で前記した所定数のエンドポイントと通信を行うとき、そのデータを前記した待機系の主サーバの通信時のデータに代わって所定の記憶領域に格納する待機系用データ格納処理とを実行させることを特徴としている。 Further, according to the present invention, the active main server and the standby main server are connected to each other via PCI Express (Peripheral Component Interconnect Express) buses, and end points as a predetermined number of network terminals are connected to these main servers. As the endpoint proxy access program to the computer of the sharing device, (a) a predetermined number shared with the standby main server in the active main server in the predetermined memory space connected to the PC Express bus described above A mapping process for mapping the address information of the endpoints and the address information of the predetermined number of endpoints in the standby system main server described above, and (b) the primary system of the standby system mapped by the mapping process. For the above-mentioned primary server of the active system And (c) a difference detection process for detecting a difference in address information for the predetermined number of endpoints based on a difference in a base address value of a CPU (Central Processing Unit) of these servers, and (c) a detection by the difference detection process. Based on the difference, when the standby main server is switched to the active main server, when accessing the predetermined number of endpoints on behalf of the active main server, (D) an address conversion process for converting address information after switching; (d) a switching timing arrival monitoring process for monitoring the arrival of the switching timing of the active main server and the standby main server; Until the standby main server is switched to the active main server by this switching timing arrival monitoring process, the mapping process described above is used. The first end that accesses the predetermined number of end points on behalf of the active main server by using the address information of the predetermined number of end points in the active main server that has been wrapped as it is. When the standby main server is switched to the active main server by the point access process and (f) the switching timing arrival monitoring process described above, the above-mentioned predetermined in the standby main server before switching is performed. Second endpoint access processing for accessing the predetermined number of endpoints on behalf of the main server switched to the active system by converting the address information of the plurality of endpoints by the address conversion processing described above, respectively (to ) One of the active expansion servers consisting of an arbitrary number is the above-mentioned active system When communicating with the predetermined number of endpoints in the first endpoint access processing described above instead of the main server, the data is replaced with the predetermined storage area instead of the data at the time of communication with the active main server. And (2) the second endpoint access process described above in place of the standby main server described above, in which one of the active system data storage processes stored in the storage system is stored in When communicating with the predetermined number of endpoints, the standby data storage processing for storing the data in a predetermined storage area in place of the communication data of the standby main server is executed. It is characterized by.
以上説明したように、本発明によれば、サーバのCPU側あるいはエンドポイント側の負荷に応じて、スケーラビリティの高いシステムを構築することができる。しかも、サーバを現用系と予備系で二重化しているので、システムの信頼性を向上することができる。 As described above, according to the present invention, a highly scalable system can be constructed according to the load on the CPU side or the endpoint side of the server. In addition, since the server is duplicated between the active system and the standby system, the reliability of the system can be improved.
図1は、本発明のエンドポイント共有システムのクレーム対応図を示したものである。本発明のエンドポイント共有システム10は、現用系の主サーバ11と、現用系の拡張サーバ12と、待機系の主サーバ13と、待機系の拡張サーバ14と、現用系通信手段15と、待機系通信手段16と、マッピング手段17と、差分検出手段18と、アドレス変換手段19と、切替時機到来監視手段20と、第1のエンドポイントアクセス手段21と、第2のエンドポイントアクセス手段22と、現用系用データ格納手段23と、待機系用データ格納手段24を備えている。ここで、現用系の主サーバ11は、CPUを実装した1台のサーバである。現用系の拡張サーバ12は、CPUを実装した任意の台数からなる現用系のサーバである。待機系の主サーバ13は、CPUを実装した1台の待機系のサーバである。待機系の拡張サーバ14は、CPUを実装した任意の台数からなる待機系のサーバである。現用系通信手段15は、現用系の主サーバ11と現用系の拡張サーバ12の間の通信を行う手段である。待機系通信手段16は、待機系の主サーバ13と待機系の拡張サーバ14の間の通信を行う手段である。マッピング手段17は、所定のメモリ空間上に、現用系の主サーバ11における待機系の主サーバ13と共有する所定数のエンドポイントのアドレス情報と、待機系の主サーバ13における所定数のエンドポイントのアドレス情報をそれぞれマッピングする。差分検出手段18は、マッピング手段17によってマッピングされる待機系の主サーバ13の現用系の主サーバ11に対する前記した所定数のエンドポイントについてのアドレス情報の差分を、これらのサーバのCPUのベースアドレスの値の差によって検出する。アドレス変換手段19は、差分検出手段18によって検出された差分を基にして、待機系の主サーバ13が現用系の主サーバ11に切り替わった際に現用系の主サーバ11に代理して前記した所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行う。切替時機到来監視手段20は、現用系の主サーバ11と待機系の主サーバ13の系の切り替え時機の到来を監視する。第1のエンドポイントアクセス手段21は、マッピング手段17にマッピングされた現用系の主サーバ11における前記した所定数のエンドポイントのアドレス情報をそのまま用いて現用系の主サーバ11に代理して前記した所定数のエンドポイントにアクセスする。これは、切替時機到来監視手段20によって待機系の主サーバ13が現用系の主サーバ11に切り替えられるまでの区間である。第2のエンドポイントアクセス手段22は、切り替える前までの待機系の主サーバ13における前記した所定数のエンドポイントのアドレス情報をそれぞれアドレス変換手段19で変換して現用系に切り替えられた主サーバに代理で前記した所定数のエンドポイントにアクセスする。これは、切替時機到来監視手段20によって待機系の主サーバ13が現用系の主サーバ11に切り替えられたとき以後である。現用系用データ格納手段23は、現用系の拡張サーバ12の1台が現用系の主サーバ11に代わって前記した所定数のエンドポイントと通信するときそのデータを現用系の主サーバ11に代わって所定の現用系用記憶領域に格納する。待機系用データ格納手段24は、待機系の拡張サーバ14の1台が待機系の主サーバ13に代わって前記した所定数のエンドポイントと通信するときそのデータを待機系の主サーバ13に代わって所定の待機用記憶領域に格納する。
FIG. 1 is a diagram corresponding to claims of the endpoint sharing system of the present invention. The
図2は、本発明のエンドポイント代理アクセス方法のクレーム対応図を示したものである。本発明のエンドポイント代理アクセス方法30は、マッピングステップ31と、差分検出ステップ32と、アドレス変換ステップ33と、切替時機到来監視ステップ34と、第1のエンドポイントアクセスステップ35と、第2のエンドポイントアクセスステップ36と、現用系用データ格納ステップ37と、待機系用データ格納ステップ38を備えている。ここで、マッピングステップ31では、ピーシーアイエクスプレスバスに接続された所定のメモリ空間上に、現用系の主サーバにおける待機系の主サーバと共有する所定数のエンドポイントのアドレス情報と、待機系の主サーバにおける前記した所定数のエンドポイントのアドレス情報をそれぞれマッピングする。差分検出ステップ32では、マッピングステップ31によってマッピングされる待機系の主サーバの現用系の主サーバに対する前記した所定数のエンドポイントについてのアドレス情報の差分を、これらのサーバのCPUのベースアドレスの値の差によって検出する。アドレス変換ステップ33では、差分検出ステップ32によって検出された差分を基にして、待機系の主サーバが現用系の主サーバに切り替わった際に現用系の主サーバに代理して前記した所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行う。切替時機到来監視ステップ34では、現用系の主サーバと待機系の主サーバの系の切り替え時機の到来を監視する。第1のエンドポイントアクセスステップ35では、マッピングステップ31によってマッピングされた現用系の主サーバにおける前記した所定数のエンドポイントのアドレス情報をそのまま用いて現用系の主サーバに代理して前記した所定数のエンドポイントにアクセスする。これは、切替時機到来監視ステップ34によって待機系の主サーバが現用系の主サーバに切り替えられるまでの区間である。第2のエンドポイントアクセスステップ36では、切り替える前までの待機系の主サーバにおける前記した所定数のエンドポイントのアドレス情報をそれぞれアドレス変換ステップによって変換して現用系に切り替えられた主サーバに代理で前記した所定数のエンドポイントにアクセスする。これは、切替時機到来監視ステップ34によって待機系の主サーバが現用系の主サーバに切り替えられたとき以後である。現用系用データ格納ステップ37では、任意の台数からなる現用系の拡張サーバのうちの1台が、現用系の主サーバの代わりに第1のエンドポイントアクセスステップ35で前記した所定数のエンドポイントと通信を行うとき、そのデータを現用系の主サーバの通信時のデータに代わって所定の記憶領域に格納する。待機系用データ格納ステップ38では、任意の台数からなる待機系の拡張サーバのうちの1台が、待機系の主サーバの代わりに第2のエンドポイントアクセスステップ36で前記した所定数のエンドポイントと通信を行うとき、そのデータを待機系の主サーバの通信時のデータに代わって所定の記憶領域に格納する。
FIG. 2 shows a claim correspondence diagram of the endpoint proxy access method of the present invention. The endpoint
図3は、本発明のエンドポイント代理アクセスプログラムのクレーム対応図を示したものである。本発明のエンドポイント代理アクセスプログラム40は、現用系の主サーバと待機系の主サーバのそれぞれとピーシーアイエクスプレス(Peripheral Component Interconnect Express)バスを介して接続され、これらの主サーバと所定数のネットワーク端末としてのエンドポイントを共有する装置のコンピュータについてのプログラムである。このエンドポイント代理アクセスプログラム40では、マッピング処理41と、差分検出処理42と、アドレス変換処理43と、切替時機到来監視処理44と、第1のエンドポイントアクセス処理45と、第2のエンドポイントアクセス処理46と、現用系用データ格納処理47と、待機系用データ格納処理48を実行するようにしている。ここで、マッピング処理41では、ピーシーアイエクスプレスバスに接続された所定のメモリ空間上に、現用系の主サーバにおける待機系の主サーバと共有する所定数のエンドポイントのアドレス情報と、待機系の主サーバにおける前記した所定数のエンドポイントのアドレス情報をそれぞれマッピングする。差分検出処理42では、マッピング処理41によってマッピングされる待機系の主サーバの現用系の主サーバに対する前記した所定数のエンドポイントについてのアドレス情報の差分を、これらのサーバのCPU(Central Processing Unit)のベースアドレスの値の差によって検出する。アドレス変換処理43では、差分検出処理42によって検出された差分を基にして、待機系の主サーバが現用系の主サーバに切り替わった際に現用系の主サーバに代理して前記した所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行う。切替時機到来監視処理44では、現用系の主サーバと待機系の主サーバの系の切り替え時機の到来を監視する。第1のエンドポイントアクセス処理45では、マッピング処理41によってマッピングされた現用系の主サーバにおける前記した所定数のエンドポイントのアドレス情報をそのまま用いて現用系の主サーバに代理して前記した所定数のエンドポイントにアクセスする。これは、切替時機到来監視処理44によって待機系の主サーバが現用系の主サーバに切り替えられるまでの区間である。第2のエンドポイントアクセス処理46では、切り替える前までの待機系の主サーバにおける前記した所定数のエンドポイントのアドレス情報をそれぞれアドレス変換処理43によって変換して現用系に切り替えられた主サーバに代理で前記した所定数のエンドポイントにアクセスする。これは、切替時機到来監視処理44によって待機系の主サーバが現用系の主サーバに切り替えられたとき以後である。現用系用データ格納処理47では、任意の台数からなる現用系の拡張サーバのうちの1台が、現用系の主サーバの代わりに第1のエンドポイントアクセス処理45で前記した所定数のエンドポイントと通信を行うとき、そのデータを現用系の主サーバの通信時のデータに代わって所定の記憶領域に格納する。待機系用データ格納処理48では、任意の台数からなる待機系の拡張サーバのうちの1台が、待機系の主サーバの代わりに第2のエンドポイントアクセス処理46で前記した所定数のエンドポイントと通信を行うとき、そのデータを待機系の主サーバの通信時のデータに代わって所定の記憶領域に格納する。
FIG. 3 is a diagram corresponding to claims of the endpoint proxy access program of the present invention. The endpoint
<発明の実施の形態> <Embodiment of the Invention>
次に本発明の実施の形態を説明する。 Next, an embodiment of the present invention will be described.
図4は、本発明の実施の形態によるエンドポイント共有システムを表わしたものである。このエンドポイント共有システム100は、統合エンドポイント101と、ACT(active)系サーバ群102と、SBY(standby)系サーバ群103と、記憶装置104から、大まかに構成されている。ここで統合エンドポイント101は、第0〜第Nのエンドポイント(「EP#0」〜「EP#N」)1050〜105Nと、PCIプロシキ(Proxy)機能部106から構成されている。ACT系サーバ群102は、この単純化した例では第0−0のサーバ10200と、第0−1のサーバ10201によって構成されている。SBY系サーバ群103は、同じくこの単純化した例では第1−0のサーバ10310と、第1−1のサーバ10311によって構成されている。
FIG. 4 shows an endpoint sharing system according to an embodiment of the present invention. The
本実施の形態では、第0〜第Nのエンドポイント1010〜101Nに対してアクセス機能を有する第0−0のサーバ10200と第1−0のサーバ10310を主サーバと呼ぶことにする。また、第0〜第Nのエンドポイント1010〜101Nに対してアクセス機能を持たない第0−1のサーバ10201と第1−1のサーバ10311を拡張サーバと呼ぶことにする。本実施の形態では、主サーバの1台に対して拡張サーバが1台対応している。主サーバの1台に対して拡張サーバを複数台対応させるようにしてもよい。
In the present embodiment, it will be referred to a 0-0
このエンドポイント共有システム100で、第0−0のサーバ10200、第0−1のサーバ10201、第1−0のサーバ10310、第1−1のサーバ10311および統合エンドポイント101は、互いに物理的に分離している。したがって、第0−0のサーバ10200と統合エンドポイント101の間と、第1−1のサーバ10311と統合エンドポイント101の間は、それぞれピーシーアイエクスプレス(PCI express)ケーブル107、108を用いて接続している。
In this
また、第0−0のサーバ10200、第0−1のサーバ10201、第1−0のサーバ10310および第1−1のサーバ10311は、FC(Fiber Channel)スイッチ(Switch)109を介して、記憶装置104に接続している。また、第0−0のサーバ10200、第0−1のサーバ10201、第1−0のサーバ10310および第1−1のサーバ10311は、LAN(Local Area Network)115に接続している。
Further, the 0-0
主サーバとしての第0−0のサーバ10200と第1−0のサーバ10310は、それぞれピーシーアイエクスプレス拡張スロット(PCIe NIC#001、PCIe NIC#101)111、112を有している。また、これら第0−0のサーバ10200と第1−0のサーバ10310は、PCIe NIC(network card)113、114を実装している。更に、第0−0のサーバ10200、第0−1のサーバ10201、第1−0のサーバ10310および第1−1のサーバ10311は、FCネットワークに接続するためのHBA(Host Bus Adapter)(HBA#0−0〜HBA#1−1)116〜119を有している。
The 0-0
統合エンドポイント101を構成する第0〜第Nのエンドポイント1050〜105Nは、同じく統合エンドポイント101を構成するPCIプロシキ機能部106とピーシーアイエクスプレスバス121を用いて接続されている。
The 0th to Nth end
PCIプロシキ機能部106は、コンピュータ用拡張バスアーキテクチャとしてのPCI(Peripheral Component Interconnect)機能を代理する機能部である。PCIプロシキ機能部106は、図示しないがCPUと、このCPUが実行する制御プログラムを格納した同じく図示しないROM(Read Only Memory)等の記録媒体を有しており、次の各部を備えている。
The PCI
(a)第0のポート1310
ACT系サーバ群102とピーシーアイエクスプレスケーブル107を介して接続される。
(b)第1のポート1311
SBY系サーバ群103とピーシーアイエクスプレスケーブル108を介して接続される。
(c)ACT(active)・SBY(standby)選択機能部133
ACT系サーバ群102とSBY系サーバ群103の一方をACT(現用)系に、他方をSBY(待機)系に選択する。
(d)第0の仮想PCIeコンフィグ(Configuration)レジスタ1340
各エンドポイント105のピーシーアイエクスプレスコンフィグレジスタ情報を格納する。
(e)第1の仮想PCIeコンフィグ(Configuration)レジスタ1341
各エンドポイント105のピーシーアイエクスプレスコンフィグレジスタ情報を格納する。
(f)コンフィグ(Configuration)制御部135
第0の仮想PCIeコンフィグレジスタ1340および第1の仮想PCIeコンフィグレジスタ1341を管理する。
(g)アドレス変換テーブル136
ACT系サーバ群102とSBY系サーバ群103のメモリ空間の差分情報としてのアドレス空間差分情報を保持する。
(h)アドレス変換部137
ACT系サーバ群102とSBY系サーバ群103のメモリ空間へのアクセスが同一のアドレスになるように、アドレスを変換する。
(i)アドレス変換・振り分け機能部138
ACT系サーバ群102とSBY系サーバ群103のうちのACT系のサーバと接続されたポートとの間でピーシーアイエクスプレスパケットを振り分ける。
(j)第0〜第NのPCIeポート(Port)1390〜139N
第0〜第Nのエンドポイント(EP)1050〜105Nをそれぞれ対応して接続する。
(A)
It is connected to the
(B)
It is connected to the SBY
(C) ACT (active) / SBY (standby)
One of the
(D) 0th virtual
Stores PC Express configuration register information of each
(E) First virtual
Stores PC Express configuration register information of each
(F)
Zeroth managing virtual
(G) Address conversion table 136
Address space difference information is held 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 /
PC iExpress packets are distributed between the
(J) 0th to Nth PCIe ports (Port) 139 0 to 139 N
The 0th to Nth end points (EP) 105 0 to 105 N are connected correspondingly.
PCIプロシキ機能部106を更に具体的に説明する。第0のポート1310および第1のポート1311は、ピーシーアイエクスプレスパケットで転送されるACT制御信号を識別する。そして、ACT切替指示がACT系サーバ群102もしくはSBY系サーバ群103から送付された場合には、ACT・SBY選択機能部133に対して、ACT・SBY切替指示を出す。ACT・SBY選択機能部133は、アドレス変換・振り分け機能部138に対して、ACT系のサーバがACT系サーバ群102もしくはSBY系サーバ群103を示す信号を送出する。アドレス変換・振り分け機能部138は、ACT系のサーバと接続されたポートとの接続を維持し、SBY系のポートとのデータを交換しない。
The PCI
コンフィグ制御部135は、第0〜第Nのエンドポイント1050〜105Nが保持する、ピーシーアイエクスプレスコンフィグレーションレジスタ(図示せず)を制御する機能を有する。また、第0の仮想PCIeコンフィグ(Configuration)レジスタ1340および第1の仮想PCIeコンフィグ(Configuration)レジスタ1341に対して、各エンドポイント105のピーシーアイエクスプレスコンフィグレジスタ情報の内容を反映させる機能を有する。ACT系サーバ群102とSBY系サーバ群103は、第0の仮想PCIeコンフィグレジスタ1340および第1の仮想PCIeコンフィグレジスタ1341に対して、ピーシーアイエクスプレスコンフィグレーション情報のリード(Read)およびライト(Write)を行う。このため、第0−0のサーバ10200、第0−1のサーバ10201、第1−0のサーバ10310および第1−1のサーバ10311から各エンドポイント105のピーシーアイエクスプレスコンフィグレジスタが直接制御されることはない。各エンドポイント105のピーシーアイエクスプレスコンフィグレジスタは、コンフィグ制御部135を経由してアクセスする。
The
また、コンフィグ制御部135は、第0の仮想PCIeコンフィグレジスタ1340および第1の仮想PCIeコンフィグレジスタ1341に設定されたピーシーアイエクスプレスコンフィグレジスタ情報から、ACT系サーバ群102とSBY系サーバ群103が保持しているピーシーアイエクスプレスメモリ空間マップ情報を取得する。そして、第0−0のサーバ10200、第0−1のサーバ10201、第1−0のサーバ10310および第1−1のサーバ10311がメモリ空間上に各エンドポイント105をどのように配置したかを認識する。差分がある場合には、ACT系サーバ群102のメモリ空間に対して、SBY系サーバ群103のメモリ空間の差分を計算し、得られた差分情報をアドレス変換テーブル136に転送する。
In addition, the
アドレス変換部137は、アドレス変換テーブル136から送信されるACT系サーバ群102とSBY系サーバ群103についてのアドレス空間差分情報を取得する。そして、SBY系サーバ群103のメモリ空間へのアクセスをACT系サーバ群102のメモリ空間へのアクセスと同一のアドレスになるように、アドレス変換処理を実施する。また、SBY系サーバ群103と各エンドポイント105の間でのアクセスの際に、ピーシーアイエクスプレスパケットを交換する。
The
アドレス変換・振り分け機能部138は、各エンドポイント105に対するピーシーアイエクスプレスパケットの振り分けを、ピーシーアイエクスプレスパケットヘッダ内に格納されたアドレス情報を基にして実施する。各エンドポイント105からサーバ方向に流れるパケットは、ACT・SBY選択機能部133から送信されるACT情報を基にして、ACT系サーバ群102と接続されたポート方向にのみにパケットを送信する。
The address conversion /
次に、記憶装置104について説明する。記憶装置104は、FCスイッチ109を介して第0−0のサーバ10200、第0−1のサーバ10201、第1−0のサーバ10310および第1−1のサーバ10311と接続されている。これにより、記憶装置104に格納されたデータを、第0−0のサーバ10200、第0−1のサーバ10201、第1−0のサーバ10310および第1−1のサーバ10311が共有可能となる。ここで、FCスイッチ109に接続された記憶装置104上のデータ共有方法は、既に確立されている技術である。
Next, the
第0〜第Nのエンドポイント1050〜105Nにアクセス可能なサーバは、第0−0のサーバ10200および第1−0のサーバ10310のみである。第0−1のサーバ10201および第1−1のサーバ10311がエンドポイント105にアクセスする場合には、対象となるデータを記憶装置104に一旦転送する。そして、第0−0のサーバ10200あるいは第1−0のサーバ10310のうちの該当するものを経由してエンドポイント105にアクセスを実施する。
Accessible server for
<動作説明>
次に、以上のような構成のエンドポイント共有システム100の動作を説明する。
<Description of operation>
Next, the operation of the
第0−0のサーバ10200、第0−1のサーバ10201、第1−0のサーバ10310および第1−1のサーバ10311は、図示しないがCPUを搭載している。これらのサーバに搭載されたCPUから第0〜第Nのエンドポイント1050〜105Nに対するピーシーアイエクスプレスアクセスは、大別すると、ピーシーアイエクスプレスコンフィグレーションレジスタ(コンフィグレジスタ)へのアクセスと、実データのアクセスの2種類が存在する。本実施の形態のエンドポイント共有システム100では、ピーシーアイエクスプレスコンフィグレーションレジスタへのアクセスはコンフィグ制御部135が中心となって処理を実行する。また、実データのアクセスは、アドレス変換部137と、アドレス変換・振り分け機能部138が中心となって、これらの処理を実行する。エンドポイント共有システム100では、ピーシーアイエクスプレスコンフィグレーションレジスタへのアクセスを、電源投入時に実行する。ピーシーアイエクスプレスコンフィグレーションレジスタが一旦設定された後は、第0−0のサーバ10200、第0−1のサーバ10201、第1−0のサーバ10310および第1−1のサーバ10311に切り替えが発生しても設定変更が行われない。
The 0-0
図5は、サーバの電源投入後のアドレス変換テーブル作成までのコンフィグレーション処理の様子を示したものである。図4と共に説明する。 FIG. 5 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.
エンドポイント105へのコンフィグレーションを行うのは、第0−0のサーバ10200と第1−0のサーバ10310である。汎用サーバでは、その電源投入直後に、ピーシーアイエクスプレスバス配下のエンドポイントを検索し、PCIメモリ空間上にエンドポイントのマッピングを行う。本実施の形態のエンドポイント共有システム100では、統合エンドポイント101が第0−0のサーバ10200(「Server#0−0」)と第1−0のサーバ10310(「Server#1−0」)からのピーシーアイエクスプレスコンフィグレジスタへのアクセスに対して、代理で応答する機能を有する。これにより、第0−0のサーバ10200あるいは第1−0のサーバ10310が第0〜第Nのエンドポイント1050〜105N(「EP#0」〜「EP#N」)をメモリ空間上にマッピングすることを可能にする。なお、図5では、第Xのエンドポイント105Xを「EP#X」(ただし、Xは0〜Nの間の任意の整数。)と簡略化して表記している。これ以降の図でも同様である。
Perform configuration to the
これを具体的に説明する。図5に示すように第0−0のサーバ10200と第1−0のサーバ10310の電源が、ある時刻t1にオン(On)になったとする。コンフィグ制御部135は、統合エンドポイント101に接続された第0〜第Nのエンドポイント1050〜105Nのピーシーアイエクスプレスコンフィグレーション空間を、第0−0のサーバ10200あるいは第1−0のサーバ10310に代わってリード(Read)する(ステップS201)。
This will be specifically described. Power of the 0-0
図5に示した例では、まず時刻t2に第0のエンドポイント1050(「EP#0」)がリードされ、続いて、第1のエンドポイント1051(「EP#1」)がリードされる。以下同様にして、第Nのエンドポイント105N(「EP#N」)までリードが実行される。
In the example shown in FIG. 5, first, the 0th endpoint 105 0 (“
コンフィグ制御部135は、このステップS201によるリードした結果を、第0および第1の仮想PCIeコンフィグレジスタ1340、1341に反映させる。これにより、第0−0のサーバ10200と第1−0のサーバ10310が、第0〜第Nのエンドポイント1050〜105Nのピーシーアイエクスプレスコンフィグレーションレジスタの内容を、コンフィグ制御部135経由でリードすることが可能になる。
The
ところで、時刻t1の電源投入時にACT(active)系サーバ群102が現用系に設定されているとする。また、これを基にして第Nのエンドポイント105N(「EP#N」)までのリードが終了した後の時刻t3に第0のポート1310がACTの状態で、第1のポート1311がSBYの状態であるとする。時刻t3以後における第0−0のサーバ10200と統合エンドポイント101の間でのコンフィグレーションデータの処理の様子を、図5ではステップS202として一括して示している。また、図5では、この場合における第1−0のサーバ10310と統合エンドポイント101の間でのコンフィグレーションデータの処理の様子を、ステップS203として一括して示している。
By the way, it is assumed that the ACT (active)
最初に、ACT系の第0−0のサーバ10200と統合エンドポイント101の間で行われるステップS202の処理について説明する。第0−0のサーバ10200は、まず第0の仮想PCIeコンフィグレジスタ1340に格納された第0のエンドポイント1050(「EP#0」)の内容をリードし、第0のエンドポイント1050に書き込むコンフィグレーションデータを第0の仮想PCIeコンフィグレジスタ1340にライトする。コンフィグ制御部135は、第0−0のサーバ10200から第0の仮想PCIeコンフィグレジスタ1340にデータがライトされると、このコンフィグレーションデータを第0のPCIeポート1390を経由して、第0のエンドポイント1050に対してライトを実施する。この第0のエンドポイント1050のピーシーアイエクスプレスコンフィグレーションレジスタへのライトは、図5で時刻t4に行われている。
First, a description will be given of a process of step S202 which is performed between the first 0-0
同様に、第0−0のサーバ10200は、第0の仮想PCIeコンフィグレジスタ1340に格納された第1のエンドポイント1051(「EP#1」)の内容をリードし、第1のエンドポイント1051に書き込むコンフィグレーションデータを第0の仮想PCIeコンフィグレジスタ1340にライトする。コンフィグ制御部135は、第0−0のサーバ10200から第0の仮想PCIeコンフィグレジスタ1340にデータがライトされると、このコンフィグレーションデータを第1のPCIeポート1391を経由して、第1のエンドポイント1051に対してライトを実施する。
Similarly, the 0-0
以下同様にして、第0−0のサーバ10200は、第0の仮想PCIeコンフィグレジスタ1340に格納された第2のエンドポイント1052(「EP#2」(図示せず))以降の処理を順に行う。そして、第0の仮想PCIeコンフィグレジスタ1340に格納された第Nのエンドポイント105N(「EP#N」)の内容をリードすると、第Nのエンドポイントに書き込むコンフィグレーションデータを第0の仮想PCIeコンフィグレジスタ1340にライトする。コンフィグ制御部135は、第0−0のサーバ10200から第0の仮想PCIeコンフィグレジスタ1340にデータがライトされると、このコンフィグレーションデータを第NのPCIeポート139Nを経由して、第Nのエンドポイント105Nに対してライトを実施する。
In the same manner, the 0-0
次に、SBY系の第1−0のサーバ10310と統合エンドポイント101の間で行われるステップS203の処理について説明する。第1−0のサーバ10310は、まず第1の仮想PCIeコンフィグレジスタ1341に格納された第0のエンドポイント1050(「EP#0」)の内容をリードし、第0のエンドポイントに書き込むコンフィグレーションデータを第1の仮想PCIeコンフィグレジスタ1341にライトする。しかしながら、この場合、コンフィグ制御部135は、代理で第0のエンドポイント1050に対してライトを実施することはない。
Next, a description is given of processing of step S203 which is performed between the first 1-0
以下同様にして、第1−0のサーバ10310は、第1の仮想PCIeコンフィグレジスタ1340に格納された第1のエンドポイント1052(「EP#1」)以降の処理を順に行う。そして、第1の仮想PCIeコンフィグレジスタ1341に格納された第Nのエンドポイント105N(「EP#N」)の内容をリードすると、第Nのエンドポイントに書き込むコンフィグレーションデータを第1の仮想PCIeコンフィグレジスタ1341にライトする。しかしながら、この場合も、コンフィグ制御部135は、代理で第Nのエンドポイント105Nに対してライトを実施することはない。
In the same manner, the
以上説明したように、電源投入後は、第0−0のサーバ10200が現用系サーバとして固定されている。この状態で、統合エンドポイント101は、第0−0のサーバ10200からのピーシーアイエクスプレスコンフィグレーションに対するリードおよびライト処理のみ、第0〜第Nのエンドポイント1050〜105Nに反映させる(ステップS202)。待機系サーバである第1−0のサーバ10310からのアクセスについては、統合エンドポイント101内部でデータを保持し、第0〜第Nのエンドポイント1050〜105Nへの反映は実施しない(ステップS203)。
As described above, after the power is turned on, the 0-0
ところで、第1−0のサーバ10310によるピーシーアイエクスプレスコンフィグレーションレジスタの設定内容は、第0−0のサーバ10200によるコンフィグレーションレジスタの設定内容と異なる値に設定される場合がある。このため、コンフィグ制御部135では、第0−0のサーバ10200と第1−0のサーバ10310の双方のピーシーアイエクスプレスコンフィグレーションレジスタの設定値を保持するようになっている。
Incidentally, settings of CPC eye Express configuration register by the
一方、コンフィグ制御部135では、電源投入後に得られた各サーバのピーシーアイエクスプレスコンフィグレーションレジスタ情報に含まれるベースアドレス(Base Address)の値を基にして、アドレス変換テーブル136の作成を実施する(ステップS204)。これは、第0〜第Nのエンドポイント1050〜105Nに第0−0のサーバ10200あるいは第1−0のサーバ10310がアクセスする際に、ベースアドレスが異ならないようにするためである。
On the other hand, the
図6は、ベースアドレスの概念を説明するためのものである。第0−0のサーバ10200および第1−0のサーバ10310は、すでに説明したようにこれらの電源の投入によって第0〜第Nのエンドポイント1050〜105Nを認識する。そして、これら第0〜第Nのエンドポイント1050〜105Nに対してピーシーアイエクスプレスコンフィグレーションレジスタの設定を実施する。コンフィグレーション処理が終了したら、第0−0のサーバ10200および第1−0のサーバ10310は独立してPCIeメモリ空間170、171を作成する(ステップS221、ステップS222)。
FIG. 6 is for explaining the concept of the base address. Chapter 0-0
第0−0のサーバ10200および第1−0のサーバ10310は、すでに説明したように第0〜第Nのエンドポイント1050〜105Nに対して直接アクセスすることができない。そこで、統合エンドポイント101内の第0および第1の仮想PCIeコンフィグレジスタ1340、1341を用いてコンフィグ制御部135を介することで、第0〜第Nのエンドポイント1050〜105Nへのアクセスを実施する。このため、仮想PCIeコンフィグレジスタ1340、1341の内部には、各エンドポイント105のコンフィグレーションレジスタと同一の構成のレジスタ(「EP#0_config」、「EP#1_config」、……、「EP#N_config」)160、161が存在する。第0−0のサーバ10200および第1−0のサーバ10310は、仮想PCIeコンフィグレジスタ1340、1341にアクセスを実施する。
The 0-0
図7は、ACT系サーバ群と、SBY系サーバ群のメモリ空間を対比したものである。図4および図6と共に説明する。 FIG. 7 compares the memory spaces of the ACT server group and the SBY server group. This will be described with reference to FIGS.
ACT系サーバ群102のPCIeメモリ空間170とSBY系サーバ群103のPCIeメモリ空間171を比較する。すると、前記したACT系サーバ群102とSBY系サーバ群103の設定値の差分の算出結果より、SBY系サーバ群103のPCIeメモリ空間171の方が各エンドポイント105のベースアドレスに関して「0x0001_0000」ずつプラスされた値となっていることが分かる。したがって、コンフィグ制御部135は、第1−0のサーバ10310が各エンドポイント105をアクセスする状態になったとき、アドレス変換テーブル136で、各エンドポイント105について、ベースアドレスを「0x0001_0000」だけ引いた値を設定すればよい。
The
コンフィグ制御部135は、第0−0のサーバ10200および第1−0のサーバ10310のピーシーアイエクスプレスコンフィグレーション空間の情報を取得した後、各エンドポイント1051〜105Nのマッピング情報について、第0−0のサーバ10200と第1−0のサーバ10310の設定値の差分を算出する(ステップS223)。
図6に再び戻って説明を続ける。アドレス変換部137では、第1−0のサーバ10310と第0〜第Nのエンドポイント1050〜105Nの間で通信が行われる際に、ピーシーアイエクスプレスパケットのヘッダ部分に格納されたアドレス情報から、「0x0001_0000」を引いた値に変更する。この変更後のアドレス情報でアクセスすることで、第0〜第Nのエンドポイント1050〜105Nに設定された、ベースアドレスを基にしたアドレス空間と矛盾が生じないアクセスを、第1−0のサーバ10310に提供することが可能になる。
Returning to FIG. 6 again, the description will be continued. The
なお、PCIeコンフィグレーションレジスタ(「EP#0_config」〜「EP#N_config」)1631〜163Nは、本来、第0〜第Nのエンドポイント1050〜105Nごとに実装されるレジスタである。したがって、これらのPCIeコンフィグレーションレジスタ1631〜163Nは、本来、ACT系サーバ群102とSBY系サーバ群103にそれぞれ実装されたCPUから直接制御されるべきである。しかしながら、統合エンドポイント101を用いた本実施の形態のエンドポイント共有システム100では、コンフィグ制御部135が代理で制御を行う機能を持っている。そこで、ACT系サーバ群102とSBY系サーバ群103の持つピーシーアイエクスプレスメモリ空間の差分をエンドポイント105に対して隠蔽することで、第0−0のサーバ10200と第1−0のサーバ10310の双方からアクセスが可能になるようにしている。
The PCIe configuration registers (“EP # 0_config” to “EP # N_config”) 163 1 to 163 N are registers that are originally mounted for the 0th to Nth
<データ転送処理> <Data transfer processing>
ACT系サーバ群102と第0〜第Nのエンドポイント1050〜105Nの間のデータ転送のためのアクセス時には、PCIプロシキ機能部106でのアドレス変換処理が発生しない。この場合のデータのリードおよびライトの処理を次に説明する。
At the time of access for data transfer between the
図8は、第0−0のサーバによるデータのリードおよびライトの処理を表わしたものである。図4と共に説明する。 FIG. 8 shows data read and write processing by the 0-0 servers. This will be described with reference to FIG.
ACT系サーバ群102から第0〜第Nのエンドポイント1050〜105Nへのアクセスについては、第0の仮想PCIeコンフィグレジスタ1340に設定されたベースアドレス情報を基にして、該当するエンドポイントが接続されたポートに振り分ける。具体的には、ピーシーアイエクスプレスパケットのヘッダ情報に含まれるアドレス情報を基にして、アドレス変換・振り分け機能部138がアクセス先のエンドポイント105を判断する。そして、該当するエンドポイント105が接続されたポート(第0〜第NのPCIeポート1390〜139N)に対して振分けを実施する。
For access from the
また、第0〜第Nのエンドポイント1050〜105NからACT系サーバ群102あるいはSBY系サーバ群103へのデータ転送についても、アドレス変換・振り分け機能部138はこのうちの現用系のサーバに対してデータ転送を実施する。SBY系サーバ群103が現用系の場合は、ピーシーアイエクスプレスパケットヘッダ内部のアドレス情報の変更を行わず、SBY系サーバ群103へのデータを転送する。
In addition, for data transfer from the 0th to Nth
具体例を挙げる。まず、第0−0のサーバ10200から第0のポート(「Port#0」)1310を使用して、統合エンドポイント101のPCIプロシキ機能部(「PCIProxy」)106に対して、ベースアドレス情報を基にして、第0のエンドポイント(「EP#0」)1050に対するデータをライトする(ステップS241)。PCIプロシキ機能部106は、このデータを第0のエンドポイント1050にライトする(ステップS242)。この後、第0のエンドポイント1050からPCIプロシキ機能部106へデータをリードする(ステップS243)。次にPCIプロシキ機能部106からこのリードしたデータが第0−0のサーバ10200へ送られる(リードする)(ステップS244)。
A specific example is given. First, from the 0-0
この後、第0−0のサーバ10200から第0のポート1310を使用して、統合エンドポイント101のPCIプロシキ機能部106に対して、ベースアドレス情報を基にして、第1のエンドポイント(「EP#1」)1051に対するデータをライトする(ステップS245)。PCIプロシキ機能部106は、このデータを第1のエンドポイント1051にライトする(ステップS246)。この後、第1のエンドポイント1051からPCIプロシキ機能部106へデータをリードする(ステップS247)。次にPCIプロシキ機能部106からこのデータは第0−0のサーバ10200へリードする(ステップS248)。以下同様にして第0−0のサーバ10200によるデータのリードおよびライトの処理が続行する。
Thereafter, from the 0-0
第1−0のサーバ10310と第0〜第Nのエンドポイント1050〜105Nの間のデータ転送のためのアクセス時には、PCIプロシキ機能部106でのアドレス変換処理が発生する。この場合のデータのリードおよびライトの処理を次に説明する。
During access for data transfer between the first 1-0
図9は、第1−0のサーバによるデータのリードおよびライトの処理を表わしたものである。図4と共に説明する。 FIG. 9 shows data read and write processing by the 1-0th server. This will be described with reference to FIG.
第1−0のサーバ10310から第0〜第Nのエンドポイント1050〜105Nへのアクセスについて、まず第1−0のサーバ10310からのデータのライトについて説明する。データのライトに関しては、アドレス変換部137においてピーシーアイエクスプレスパケットヘッダ内部のアドレス情報の変更を行って、アドレス変換・振り分け機能部138へデータを転送する。アドレス変換・振り分け機能部138では、コンフィグ制御部135で管理された情報を基に、第0〜第Nのエンドポイント1050〜105Nのいずれに振り分けを行うかを決定して、データの転送を実施する。
For access from the
また、第0〜第Nのエンドポイント1050〜105Nから第0−0のサーバ10200あるいは第1−0のサーバ10310へのデータ転送についても、アドレス変換・振り分け機能部138は現用系サーバに対してのみデータの転送を実施する。第1−0のサーバ10310が現用系の場合には、ピーシーアイエクスプレスパケットヘッダ内部のアドレス情報の変更を行って、第1−0のサーバ10310へデータを転送する。
Further, the data transfer from the
具体例を挙げる。まず、第1−0のサーバ10310からACTの状態となっている第1のポート(「Port#1」)1311を介して送られたピーシーアイエクスプレスパケット(ステップS261)は、アドレス変換部137でピーシーアイエクスプレスパケットヘッダ内部のアドレス情報の変更を行う(ステップS262)。アドレス変換・振り分け機能部138は、このデータの転送を受け、コンフィグ制御部135で管理された情報を基に、第0のエンドポイント(「EP#0」)1050にこれを転送する(ステップS263)。
A specific example is given. First, a first port that is from the
第0のエンドポイント1050から送られてくるデータは、アドレス変換・振り分け機能部138によって現用系サーバとしての第1−0のサーバ10310に送出するように振り分けられて、アドレス変換部137に転送される(ステップS264)。そして、ピーシーアイエクスプレスパケットヘッダ内部のアドレス情報の変更を行って(ステップS265)、第1−0のサーバ10310へ転送される(ステップS266)。第1−0のサーバ10310から第1〜第Nのエンドポイント(「EP#1」〜「EP#N」)1051〜105Nに転送されるデータおよび第1〜第Nのエンドポイント1051〜105Nから第1−0のサーバ10310に転送されるデータについても、同様である。そこで、ステップS267〜ステップS278の処理についての説明は省略する。
Data sent from the
<ACT切替動作> <ACT switching operation>
図10は、ACT系とSBY系の切替動作を示したものである。ここでは、第0−0のサーバ10200が現用系で、第1−0のサーバ10310が待機系の場合を例として示す。第0−0のサーバ10200が待機系で、第1−0のサーバ10310が現用系の場合も、動作は同様である。図4と共に説明する。
FIG. 10 shows the switching operation between the ACT system and the SBY system. Here, in a 0-0
第0−0のサーバ10200と第1−0のサーバ10310は、LAN(Local Area Network)等の何らかの信号伝達手段を用いて、周期的に互いの状態を監視する機能を有する。このような機能は、たとえば第0−0のサーバ10200と第1−0のサーバ10310にそれぞれ搭載されたCPUが第0−0のサーバ10200と第1−0のサーバ10310内の記録媒体(図示せず)に格納された制御プログラムを実行することによって実現する。
And the 0-0
待機系の第1−0のサーバ10310からの応答要求に対して、現用系の第0−0のサーバ10200が応答を返さない場合があったとする。この場合、第1−0のサーバ10310は第0−0のサーバ10200に何らかの異常が発生したことを検出する(ステップS291)。そして、これを基にして系切替動作を開始する(ステップS292)。
The response request from the
この系切替動作で、第1−0のサーバ10310は、自身が直接接続している統合エンドポイント101の待機系となっている第1のポート(「Port#1」)1311に対して、系切替要求をピーシーアイエクスプレスパケットとして送出する(ステップS293)。第1のポート1311では、この系切替要求を受信すると、ACT・SBY選択機能部133に対してACT・SBY切替要求信号を送信する。ACT・SBY選択機能部133は系切替要求を受信すると(ステップS294)、第0のポート(「Port#0」)1310に対してACT・SBY切替要求信号を送信する。
With this system switching operation, the 1-0
現用系となっている第0のポート1310はACT・SBY切替信号を受信すると(ステップS295)、系切替要求をピーシーアイエクスプレスパケットとして第0−0のサーバ10200に送出する(ステップS296)。これにより、第0−0のサーバ10200は系の切り替えを認識する(ステップS297)。第0−0のサーバ10200は、これに基づき現用系と待機系の切り替えを実施し(ステップS298)、この後、系切替を実施したことをピーシーアイエクスプレスパケットを用いて第0のポート1310に対して通知する(ステップS299)。
この系切替完了通知は、ACT・SBY選択機能部133で受信され、確認される(ステップS300)。ACT・SBY選択機能部133は、これを基に、統合エンドポイント101の第0のポート1310を待機系に設定し(ステップS301)、第1のポート1311を現用系に設定する(ステップS302)。その後、系の切り替えを実施したことを示す信号は、第1のポート1311から第1−0のサーバ10310へピーシーアイエクスプレスパケットを用いて通知される(ステップS303)。第1−0のサーバ10310は、この通知を受けると、第1−0のサーバ10310が待機系から現用系に切り替わったことを確定させる(ステップS304)。
This system switching completion notification is received and confirmed by the ACT / SBY selection function unit 133 (step S300). ACT · SBY selecting
次に、現用系になっている第0−0のサーバ10200に異常が発生して、第1−0のサーバ10310からの系切替要求の送出(ステップS293)に対する応答がない場合について説明する。この場合には、統合エンドポイント101の内部におけるACT・SBY選択機能部133が図示しないタイマを起動させる。そして、第0−0のサーバ10200が正常であれば十分応答する予め定めた規定時間内に、第0−0のサーバ10200から応答があるかを判別する。この規定時間内に第0−0のサーバ10200からの応答があれば、すでに説明した処理と同一の処理を行えばよい。
Then, abnormality in the first 0-0
これに対して、規定時間内に第0−0のサーバ10200からの応答がなかったとする。この場合には、第0−0のサーバ10200からの応答をそれ以上待機せずに第1−0のサーバ10310は系切替完了通知を実施する。そして、今までSBY系であった第1のポート1311をACT系に切り替えることになる。
In contrast, the response from the 0-0
本実施の形態のエンドポイント共有システム100では、以上とは別に、定期的な系の切り替えや保守作業を目的として、系の切り替えを開始することも可能である。待機系から現用系に切り替わった第1−0のサーバ10310の第1のポート1311は、第0〜第Nのエンドポイント1050〜105Nに対する、実データの通信が可能になる。
In the
なお、第1−0のサーバ10310側のピーシーアイエクスプレスコンフィグレーションレジスタは、第1−0のサーバ10310の電源投入後に設定済みである。このため、第0〜第Nのエンドポイント1050〜105Nに対する、第1−0のサーバ10310のメモリ空間に対応させるための、ピーシーアイエクスプレスコンフィグレーション動作は不要である。したがって、コンフィグレーションレジスタの設定変更前の第0〜第Nのエンドポイント1050〜105Nのリセットや、各ピーシーアイエクスプレスコンフィグレーションレジスタの再設定処理等の処理は不要になる。
Incidentally, CPC eye Express configuration registers of the 1-0
したがって、系の切替途中では、第0〜第Nのエンドポイント1050〜105Nと第0−0のサーバ10200および第1−0のサーバ10310の間の通信は実行できない。しかしながら、統合エンドポイント101内の各エンドポイント105間の通信処理(たとえば、第0のエンドポイント1050からPCIプロシキ機能部106を経た、第1のエンドポイント1051への通信)では、系切替動作時に通信処理を継続することが可能になる。
Thus, in the middle switching systems, the communication between the
<サーバ間データ転送> <Data transfer between servers>
図11は、サーバ側のソフトウェア処理の様子を表わしたものである。本実施の形態のエンドポイント共有システム100では、図4でも説明したように、ACT系サーバ群102とSBY系サーバ群103の2種類のサーバが使用されている。ACT系サーバ群102とSBY系サーバ群103は、同一の構成となっている。そこで、ACT系サーバ群102を中心に、これらのサーバ群で動作するアプリケーションソフトウェアについて説明を行う。
FIG. 11 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.
図11では、ACT系サーバ群102とSBY系サーバ群103がそれぞれ1つの記憶装置104を分割して使用する形で接続している様子を示している。ここでは、便宜的に、ACT系サーバ群102が接続する記憶装置部分を記憶装置1040として表わし、SBY系サーバ群103が接続する記憶装置部分を記憶装置1041として表わしている。
FIG. 11 shows a state where the
それぞれの記憶装置1040、記憶装置1041は、アプリケーションソフトウェアがアクセス可能な領域としてのサーバ・テンポラリ領域と、統合エンドポイント101とのデータのやり取りに用いる領域としてのエンドポイント通信用領域に分割されている。ここで、記憶装置104は、図4でも説明したように、各サーバ102、103とFCスイッチ109を介して接続されている。図4に示したFCスイッチ109は、記憶装置104の内部を論理的に分割して、これらのサーバ102、103がアクセス可能な領域の指定が可能である。
Each of the
記憶装置1040および記憶装置1041の内部には、1次共有メモリ1510、1511の領域と、2次共有メモリ1520、1521の領域が存在している。1次共有メモリ1510、1511の領域には、送信の際にアクセスする出力メモリ(OutputMem)領域1530、1531のうちの対応するものと、受信の際にアクセスする入力メモリ(InputMem)領域1540、1541のうちの対応するものが存在している。また、2次共有メモリ1520、1521の領域には、出力メモリサーバ(OutputMemServer)領域1550-0、1550-1、1551-0、1551-1のうちの対応するものと、入力メモリサーバ(InputMemServer)領域1560-0、1560-1、1561-0、1561-1のうちの対応するものが存在している。
Inside the
SBY系サーバ群103を構成する第1−0のサーバ10310(主サーバ)と第1−1のサーバ10311(拡張サーバ)がアクセスを行う記憶装置1041の構成は、第0−0のサーバ10200と第0−1のサーバ10201がアクセスを行う記憶装置1040の構成と同一である。
The configuration of the
サーバ群と統合エンドポイント101の間でやりとりされるデータは、記憶装置104内部の1次共有メモリ151と、2次共有メモリ152を、以下の関係をもって転送される。
Data exchanged between the server group and the
<ACT系サーバ群>
出力メモリサーバ(OutputMemServer#0−0)領域1550-0から出力メモリ(OutputMem#0)領域1530の方向への転送
出力メモリサーバ(OutputMemServer#0−1)領域1550-1から出力メモリ(OutputMem#0)領域1530の方向への転送
入力メモリ(InputMem#0)領域1540から入力メモリサーバ(InputMemServer#0−0)領域1560-0の方向への転送
入力メモリ(InputMem#0)領域1540から入力メモリサーバ(InputMemServer#0−1)領域1560-1の方向への転送
<ACT server group>
Transfer from output memory server (OutputMemServer # 0-0) area 155 0-0 to output memory (OutputMem # 0)
<SBY系サーバ群>
出力メモリサーバ(OutputMemServer#1−0)領域1551-0から出力メモリ(OutputMem#1)領域1531の方向への転送
出力メモリサーバ(OutputMemServer#1−1)領域1551-1から出力メモリ(OutputMem#1)領域1531の方向への転送
入力メモリ(InputMem#1)領域1540から入力メモリサーバ(InputMemServer#1−0)領域1561-0の方向への転送
入力メモリ(InputMem#1)領域1541から入力メモリサーバ(InputMemServer#1−1)領域1561-1の方向への転送
<SBY server group>
Output memory server (OutputMemServer # 1-0) area 155 1-0 to output memory (OutputMem # 1)
なお、図11には、第0−0のサーバ10200に搭載されたCPUとしてのCPU#0−0が各アプリケーションソフトウェアPS#0−0、PS#0−1、PS#0−3、PS#0−4、PS#0−5を実行することが示されている。また、同様に第0−1のサーバ10201に搭載されたCPUとしてのCPU#0−1が各アプリケーションソフトウェアPS#1−3、PS#1−4、PS#1−5を実行することが示されている。
Incidentally, in FIG. 11, the 0-0
図12は、記憶装置を介して、サーバがエンドポイントに対してアクセスを行う様子を表わしたものである。図4および図11と共に説明する。 FIG. 12 shows a state in which the server accesses the endpoint via the storage device. This will be described with reference to FIGS. 4 and 11.
<サーバからのデータの送出> <Sending data from the server>
第0−0のサーバ10200上で動作するアプリケーションソフトウェアPS#0−5,PS#1−5から統合エンドポイント101へのデータの取り込みについて説明する。
Application software PS # 0-5 operating on the 0-0 of the
(a)まず、第0−0のサーバ10200(主サーバ)から統合エンドポイント101へのアクセスについて説明する。
(A) First, access from the 0-0th server 102 00 (main server) to the
第0−0のサーバ10200上で動作するアプリケーションソフトウェアSP#0−5がエンドポイント105に対してデータを送信する場合、アプリケーションソフトウェアSP#0−5は記憶装置104上に確保されている出力メモリサーバ領域1550-0にデータを書き込む(ステップS401)。記憶装置104は、出力メモリサーバ領域1550-0にデータが書き込まれたことを検出すると、出力メモリ領域1530にデータをコピーする。
If the application software SP # 0-5 operating on the 0-0 of the
アプリケーションソフトウェアSP#0−5は出力メモリサーバ領域1550-0にデータを書き込んだことを、アプリケーションソフトウェアSP#0−1に対して通知を行う(ステップS402)。アプリケーションソフトウェアSP#0−1は、他のサーバからエンドポイント105へのデータ送信要求がないかを確認後、アプリケーションソフトウェアSP#0−2に対して、第0−0のサーバ10200からエンドポイント105に対してデータを送信するように、指示を発行する(ステップS403)。
Application software SP # 0-5 is that data is written to the output memory server area 155 0-0, and notifies the application software SP # 0-1 (step S402). Application software SP # 0-1 after confirming whether there is a data transmission request to the
アプリケーションソフトウェアSP#0−2は、エンドポイント105に対するデータ送信の指示を受信すると、このエンドポイント105に対して出力メモリ領域1530からデータの送信を実施する(ステップS404)。このようにして、第0−0のサーバ10200から、記憶装置104を介して統合エンドポイント101へデータが送信される。
Application software SP # 0-2 receives the instruction data transmission to the
(b)次に、第0−1のサーバ10201(拡張サーバ)から統合エンドポイント101へのアクセスについて説明する。
(B) Next, access from the 0-1st server 102 01 (extended server) to the
第0−1のサーバ10201上で動作するアプリケーションソフトウェアSP#1−5がエンドポイント101に対してデータを送信する場合、アプリケーションソフトウェアSP#1−5は記憶装置104上に確保されている出力メモリサーバ領域1550-1にデータを書き込む(ステップS410)。記憶装置104は、出力メモリサーバ領域1550-1にデータが書き込まれたことを検出すると、出力メモリ領域1530にデータをコピーする。
If the application software SP # 1-5 operating on the
アプリケーションソフトウェアSP#1−5は出力メモリサーバ領域1550-1にデータを書き込んだことを、アプリケーションソフトウェアSP#0−1に対して通知を行う必要がある。このため、アプリケーションソフトウェアSP#1−4に対してデータ送信要求指示を発行する(ステップS411)。 The application software SP # 1-5 needs to notify the application software SP # 0-1 that data has been written to the output memory server area 155 0-1 . Therefore, a data transmission request instruction is issued to the application software SP # 1-4 (step S411).
アプリケーションソフトウェアSP#1−4はアプリケーションソフトウェアSP#0−4に対して、拡張サーバとしての第0−1のサーバ10201がエンドポイント105に対してデータ転送を要求していることを通知する(ステップS412)。これに基づき、アプリケーションソフトウェアSP#0−4は、第0−1のサーバ10201がエンドポイント105へのデータ転送要求を行っていることを、アプリケーションソフトウェアSP#0−1に対して通知する(ステップS413)。
Application software SP # 1-4 applications the software SP # 0-4, the 0-1
アプリケーションソフトウェアSP#0−1は、他のサーバからエンドポイント105へのデータ送信の要求がないかを確認する。そして、アプリケーションソフトウェアSP#0−2に対して、アプリケーションソフトウェアSP#0−1からエンドポイント101に対してデータを送信するように、指示を発行する(ステップS414)。
The application software SP # 0-1 confirms whether there is a request for data transmission from the other server to the
アプリケーションソフトウェアSP#0−2はエンドポイント101に対してデータ送信の指示を受信すると、エンドポイント105に対して出力メモリ領域1530からデータの送信を実施する(ステップS415)。このようにして第0−1のサーバ10201から記憶装置104を介して統合エンドポイント101へデータが送信される。
When the application software SP # 0-2 receives the instruction for data transmission to the
<サーバへのデータの取り込み> <Importing data to the server>
次に統合エンドポイント101からサーバへのデータ取り込みについて説明する。
Next, data loading from the
図13は、統合エンドポイントからサーバへのデータ取り込みの様子を示したものである。図4および図11と共に説明する。 FIG. 13 shows how data is fetched from the integrated endpoint to the server. This will be described with reference to FIGS. 4 and 11.
(a)まず、統合エンドポイント101から主サーバとしての第0−0のサーバ10200へのデータの取り込みについて説明する。
(A) first described the incorporation of data from the
統合エンドポイント101から第0−0のサーバ10200に対して転送するデータが発生したとする。この場合、DMA(Direct Memory Access )により、CPUを介さずに統合エンドポイント101から、そのデータが主サーバとしての第0−0のサーバ10200を経由して入力メモリ(InputMem#0)領域1540に対して転送される(ステップS431)。統合エンドポイント101から記憶装置104へのデータ転送はアプリケーションソフトウェアSP#0−2が実行する。
From
アプリケーションソフトウェアSP#0−2は、記憶装置104に対してデータを転送後、アプリケーションソフトウェアSP#0−1に対して、統合エンドポイント101から記憶装置104に対してデータの転送が発生したことを通知する(ステップS432)。
After the application software SP # 0-2 transfers the data to the
アプリケーションソフトウェアSP#0−1は、サーバ群を構成するサーバのうちの負荷が軽いサーバで処理を実行するために、各サーバの負荷情況を調査する。負荷情況の調査はアプリケーションソフトウェアSP#0−3で実行する。このため、アプリケーションソフトウェアSP#0−1はアプリケーションソフトウェアSP#0−3に対して負荷調査を指示する(ステップS433)。アプリケーションソフトウェアSP#0−3はサーバ群を構成する第0−1のサーバ10201(拡張サーバ)上で動作するアプリケーションソフトウェアSP#1−3に対して、CPU負荷、メモリ使用量等の負荷情況の報告指示を出す(ステップS434)。第0−1のサーバ10201では、負荷情況調査指示をアプリケーションソフトウェアSP#1−3で受信後、負荷情況をアプリケーションソフトウェアSP#1−3からアプリケーションソフトウェアSP#0−3に報告する(ステップS435)。このとき、アプリケーションソフトウェアSP#0−3とアプリケーションソフトウェアSP#1−3の間の通信はLAN115を用いて行う。
The application software SP # 0-1 investigates the load status of each server in order to execute processing on a server with a light load among the servers constituting the server group. The investigation of the load situation is executed by the application software SP # 0-3. Therefore, the application software SP # 0-1 instructs the load investigation to the application software SP # 0-3 (step S433). The application software SP # 0-3 has a load status such as CPU load and memory usage with respect to the application software SP # 1-3 operating on the 0-1st server 102 01 (extended server) constituting the server group. Is issued (step S434). In a 0-1
アプリケーションソフトウェアSP#0−3は、アプリケーションソフトウェアSP#1−3の報告結果と第0−0のサーバ10200の負荷情況をアプリケーションソフトウェアSP#0−1に通知する(ステップS436)。アプリケーションソフトウェアSP#1−3は第0−0のサーバ10200(主サーバ)と第0−1のサーバ10201(拡張サーバ)の負荷情況から、負荷の少ないサーバの方を処理を行うサーバとして決定する。
Application software SP # 0-3 notifies the load situation of the application software SP # 1-3 report the results and the 0-0
第0−0のサーバ10200が負荷が少ないと判断された場合、処理を実行するアプリケーションソフトとしてのアプリケーションソフトウェアSP#0−5に対して、アプリケーションソフトウェアSP#0−1から処理指示が発行される(ステップS347)。第0−0のサーバ10200の負荷が少ないと判断された場合は、ステップS347の処理指示の発行と同時に、アプリケーションソフトウェアSP#0−1から記憶装置104に対して、入力メモリ領域1540に記録されたデータを、入力メモリサーバ領域1560-0に転送する指示を発行する(ステップS438)。このとき、アプリケーションソフトウェアSP#0−1からの指示はLAN115を経由して発行される。
If the 0-0
アプリケーションソフトウェアSP#0−5は、入力メモリサーバ領域1560-0からデータを読み出す(ステップS439)。これにより、サーバ上のアプリケーションは処理に必要なデータを統合エンドポイント101から得ることが可能となる。
The application software SP # 0-5 reads data from the input memory server area 156 0-0 (step S439). As a result, the application on the server can obtain data necessary for processing from the
(b)次に、統合エンドポイント101から第0−1のサーバ10201(拡張サーバ)へのデータの取り込みについて説明する。
(B) Next, data loading from the
統合エンドポイント101からサーバ対して転送されるデータが発生したとする。この場合、DMA(Direct Memory Access )により、CPUを介さずに統合エンドポイント101から、そのデータが主サーバとしての第0−0のサーバ10200を経由して入力メモリ(InputMem#0)領域1540に対して転送される(ステップS441)。統合エンドポイント101から記憶装置104へのデータ転送はアプリケーションソフトウェアSP#0−2が実行する。
Assume that data is transferred from the
アプリケーションソフトウェアSP#0−2は、記憶装置104に対してデータを転送後、アプリケーションソフトウェアSP#0−1に対して、統合エンドポイント101から記憶装置104に対してデータの転送が発生したことを通知する(ステップS442)。
After the application software SP # 0-2 transfers the data to the
アプリケーションソフトウェアSP#0−1は、サーバ群を構成するサーバのうちの負荷が軽いサーバで処理を実行するために、各サーバの負荷情況を調査する。負荷情況の調査はアプリケーションソフトウェアSP#0−3で実行する。このため、アプリケーションソフトウェアSP#0−1はアプリケーションソフトウェアSP#0−3に対して負荷調査を指示する(ステップS443)。アプリケーションソフトウェアSP#0−3はサーバ群を構成する第0−1のサーバ10201(拡張サーバ)上で動作するアプリケーションソフトウェアSP#1−3に対して、CPU負荷、メモリ使用量等の負荷情況の報告指示を出す(ステップS444)。第0−1のサーバ10201では、負荷情況調査指示をアプリケーションソフトウェアSP#1−3で受信後、負荷情況をアプリケーションソフトウェアSP#1−3からアプリケーションソフトウェアSP#0−3に報告する(ステップS445)。このとき、アプリケーションソフトウェアSP#0−3とアプリケーションソフトウェアSP#1−3の間の通信はLAN115を用いて行う。
The application software SP # 0-1 investigates the load status of each server in order to execute processing on a server with a light load among the servers constituting the server group. The investigation of the load situation is executed by the application software SP # 0-3. For this reason, the application software SP # 0-1 instructs the load investigation to the application software SP # 0-3 (step S443). The application software SP # 0-3 has a load status such as CPU load and memory usage with respect to the application software SP # 1-3 operating on the 0-1st server 102 01 (extended server) constituting the server group. Is issued (step S444). In the 0-1st server 10201 , after receiving the load situation investigation instruction by the application software SP # 1-3, the load situation is reported from the application software SP # 1-3 to the application software SP # 0-3 (step S445). ). At this time, communication between the application software SP # 0-3 and the application software SP # 1-3 is performed using the
アプリケーションソフトウェアSP#0−3は、アプリケーションソフトウェアSP#1−3の報告結果と第0−0のサーバ10200の負荷情況をアプリケーションソフトウェアSP#0−1に通知する(ステップS446)。アプリケーションソフトウェアSP#1−3は第0−0のサーバ10200(主サーバ)と第0−1のサーバ10201(拡張サーバ)の負荷情況から、負荷の少ないサーバの方を処理を行うサーバとして決定する。
Application software SP # 0-3 notifies the load situation of the application software SP # 1-3 report the results and the 0-0
ここまでのシーケンスは、統合エンドポイント101から主サーバである第0−0のサーバ10200に対するデータ転送と、同一のシーケンスである。
Sequence up to this, the
第0−1のサーバ10201(拡張サーバ)の負荷が少ないと判断されたとする。この場合、アプリケーションソフトウェアSP#0−1からアプリケーションソフトウェアSP#0−4に対して、第0−1のサーバ10201に対する記憶装置104(図示しないS#0−1_REC_temp領域)からのデータ読み出し指示が発行される(ステップS447)。このとき記憶装置104から読み出されるデータは、図示しないアプリケーションソフトウェアSP#0−1についての一次領域(図示しないS#0−1_REC_temp領域)に格納されている。ステップS447のデータ読み出し指示の発行と同時に、アプリケーションソフトウェアSP#0−1は、記憶装置104に対して、入力メモリ領域1540に記録されたデータを、入力メモリサーバ領域1560-1に転送する指示を発行する(ステップS448)。
Assume that it is determined that the load on the 0-1st server 102 01 (extended server) is small. In this case, the application software SP # 0-4 from the application software SP # 0-1, the data read instruction from the storage unit 104 (S # 0-1_REC_temp area (not shown)) to the
アプリケーションソフトウェアSP#0−4では、第0−1のサーバ10201での入力メモリサーバ領域1560-1からのデータ読み出し指示の発行を受けて、アプリケーションソフトウェアSP#1−4に対して、記憶装置104からのデータ読み出し指示を発行する(ステップS449)。アプリケーションソフトウェアSP#1−4は、第0−0のサーバ10200からのデータ読み出し指示を受け、アプリケーションソフトウェアSP#1−5に対して、入力メモリサーバ領域1560-1からデータを読み出し指示を発行する(ステップS450)。そして、アプリケーションソフトウェアSP#1−5は入力メモリサーバ領域1560-1から処理に必要なデータを読み出す(ステップS451)。
In the application software SP # 0-4, and issued a data read instruction from the input memory server area 156 0-1 by the
以上説明したように本実施の形態によれば、次のような効果を奏する。 As described above, according to the present embodiment, the following effects can be obtained.
まず、本実施の形態による第1の効果は、複数のCPUが同一のエンドポイントにアクセスできることである。エンドポイントについては、ピーシーアイエクスプレス(PCI Express)に準拠したデバイスを、そのまま用いることが可能である。 First, the first effect of this embodiment is that a plurality of CPUs can access the same endpoint. As the end point, a device conforming to PCI Express can be used as it is.
本実施の形態による第2の効果は、エンドポイントにアクセスできるCPUを切り替える際に、エンドポイントを一旦停止することなく、CPUの切り替えを高速に実現することが可能となることである。これは、コンフィグレーションを電源投入時に実行することで、エンドポイントに対するリセットや再設定の処理が不要なためである。 The second effect of the present embodiment is that when switching the CPU that can access the endpoint, the CPU can be switched at high speed without temporarily stopping the endpoint. This is because the configuration is executed when the power is turned on, so that reset or reset processing for the endpoint is unnecessary.
本実施の形態による第3の効果は、CPU側の負荷に応じて、スケーラビリティの高いシステムを構築することが可能となることである。これは、現用系のCPUと待機系のCPUを物理的に分離した複数のCPUで構成可能であるからである。 A third effect of the present embodiment is that a highly scalable system can be constructed according to the load on the CPU side. This is because the active CPU and the standby CPU can be constituted by a plurality of CPUs physically separated.
本実施の形態による第4の効果は、エンドポイント側の負荷に応じて、スケーラビリティの高いシステムを構築することが可能となることである。これは、本実施の形態で物理的に分離された複数のエンドポイントをシステムに組み込んだことによるものである。 The fourth effect of the present embodiment is that it is possible to construct a highly scalable system according to the load on the endpoint side. This is because a plurality of endpoints physically separated in the present embodiment are incorporated into the system.
本実施の形態による第5の効果は、ソフトウェアによるCPU側の負荷と、ハードウェア処理によるエンドポイント側の負荷に応じて、個別に増減設可能なスケーラビリティの高いシステムを構築することが可能になる。 According to the fifth effect of the present embodiment, it is possible to construct a highly scalable system that can be individually increased or decreased according to the load on the CPU side by software and the load on the endpoint side by hardware processing. .
本実施の形態による第5の効果は、サーバを現用系と待機系で二重化したので、システムの安定性を高めることができる。しかも、現用系と待機系で、それぞれ1台ずつの主サーバに対して任意数の拡張サーバを選択可能としたので、拡張サーバの一部に障害が発生した際もシステムを運用することができ、この意味でもシステムの信頼性を向上させることができる。 The fifth effect of the present embodiment is that the server is duplexed between the active system and the standby system, so that the stability of the system can be improved. In addition, since any number of expansion servers can be selected for each primary server in the active system and the standby system, the system can be operated even when a failure occurs in a part of the expansion server. In this sense, the reliability of the system can be improved.
次に本発明の変形可能性について説明する。 Next, the deformability of the present invention will be described.
<発明の第1の変形例> <First Modification of Invention>
本発明の実施の形態では、図4に示すように単数の統合エンドポイント101を実装するエンドポイント共有システム100を実現した。本発明の第1の変形例では、エンドポイント共有システムに複数の統合エンドポイントを実装する。これにより、必要とされる処理能力に応じて統合エンドポイントを増減設することが可能になり、汎用性の高いシステムを構築することが可能になる。
In the embodiment of the present invention, as shown in FIG. 4, an
図14は、本発明の第1の変形例としての統合エンドポイントの増設例を表わしたものである。図14で、図4と同一部分には同一の符号を付しており、これらの説明を適宜省略する。 FIG. 14 shows an example of adding an integrated endpoint as a first modification of the present invention. In FIG. 14, the same parts as those in FIG.
図14に示したエンドポイント共有システム100Aでは、第0−0のサーバ10200Aおよび第1−0のサーバ10310Aが、PCIe拡張スロット(PCIe NIC#001、PCIe NIC#101)111、112の外に、他のPCIe拡張スロット(PCIe NIC#002、PCIe NIC##102)511、512を備えている。汎用サーバには、通常、複数の拡張PCIeスロットが実装されている。そこで、この変形例では、第0−0のサーバ10200Aと第1−0のサーバ10310Aがそれぞれ少なくとも2組のPCIe拡張スロットを備えているものとして、PCIe拡張スロット511、512にそれぞれPCIe NIC(Network Interface Card)513、514を追加的に実装することにしている。
In the
先の実施の形態で使用したPCIe NIC113、114の方は、第1の統合エンドポイント1011と接続されるようになっている。新たに増設したPCIe NIC513、514の方は、第2の統合エンドポイント1012と接続される。ここで、第1の統合エンドポイント1011と第2の統合エンドポイント1012は、先の実施の形態の統合エンドポイント101と全く同一の構成となっている。このため、図14では第2の統合エンドポイント1012の構成の詳細を示していない。
The PCIe NICs 113 and 114 used in the previous embodiment are connected to the first
<発明の第2の変形例> <Second Modification of Invention>
ところで、ピーシーアイエクスプレス(PCI Express)と呼ばれるシリアル転送インタフェースでは、データがピーシーアイエクスプレスパケットとして転送される。このため、他のプロトコルでピーシーアイエクスプレスパケットをカプセル化することが可能である。 By the way, in a serial transfer interface called PC Express (PCI Express), data is transferred as a PC Express packet. For this reason, it is possible to encapsulate PCI Express packets with other protocols.
図15は、本発明の第2の変形例として、イーサネット(登録商標)フレームでカプセル化したエンドポイント共有システムの構成を表わしたものである。図15で図4と同一部分には同一の符号を付しており、これらの説明を適宜省略する。 FIG. 15 shows the configuration of an endpoint sharing system encapsulated with an Ethernet (registered trademark) frame as a second modification of the present invention. In FIG. 15, the same parts as those in FIG.
この第2の変形例のエンドポイント共有システム100Bでは、第0−0のサーバ10200Bと第1および第2の統合エンドポイント1011、1012の間に、第1のイーサネット(登録商標)スイッチ601が配置されている。また、第1−0のサーバ10310Bと第1および第2の統合エンドポイント1011、1012の間には、第2のイーサネット(登録商標)スイッチ602が配置されている。このうち、第1のイーサネット(登録商標)スイッチ601は、第1および第2の統合エンドポイント1011、1012のPCIプロシキ機能部106における第0のポート1310に接続されている。また、第2のイーサネット(登録商標)スイッチ602は、第1および第2の統合エンドポイント1011、1012のPCIプロシキ機能部106における第1のポート1311に接続されている。
In the endpoint sharing system 100B of the second modified example, the first Ethernet (registered trademark) is provided between the 0-0 server 102 00 B and the first and second
第2の変形例のエンドポイント共有システム100Bでは、前記したようにイーサネット(登録商標)フレームでカプセル化を行う。これにより、イーサネット(登録商標)のMAC(Media Access Control)アドレスをベースにしてサーバ10200B、10310Bおよび複数のエンドポイント105の識別を行い、宛先を指定することが可能となる。すなわち、先の第1の変形例と異なり、第0−0のサーバ10200Bには1つのPCIe NIC113Bを用意し、第1−0のサーバ10310Bにも1つのPCIe NIC114Bを用意すれば足りることになる。
In the endpoint sharing system 100B of the second modification, as described above, encapsulation is performed with an Ethernet (registered trademark) frame. As a result, the servers 102 00 B and 103 10 B and the plurality of
ただし、これらのPCIe NIC113B、114Bは、ピーシーアイエクスプレスパケットをイーサネット(登録商標)フレームにカプセル化するためのネットワークカードである必要がある。また、第1および第2の統合エンドポイント1011、1012も第0のポート1310あるいは第1のポート1311側のポートにピーシーアイエクスプレスパケットのイーサネット(登録商標)カプセル化機能を追加しておく必要がある。
However, these PCIe NICs 113B and 114B need to be network cards for encapsulating PC-I express packets in Ethernet (registered trademark) frames. Further, by adding an Ethernet encapsulation of CPC eye express packet to the first and second
エンドポイント共有システム100Bでは、各サーバ10200B、10310Bと第1および第2の統合エンドポイント1011、1012の間を第1および第2のイーサネット(登録商標)スイッチ601、602で接続する構造となっている。このため、各サーバ10200B、10310Bに実装されたPCIe拡張スロット111、112の数に依存することなく、統合エンドポイント101を増減設可能なシステムを構築することが可能になる。
Endpoint sharing system 100B, each server 102 00 B, 103 10 B and the first and second
サーバ10200B、10310Bの数に関しては、サーバ群あたり第0−0のサーバ10200B等の1台の主サーバに対して、第0−1のサーバ10201等の拡張サーバを複数台増設することが可能になる。このため、統合エンドポイント101をN台(ただし、Nは任意の正の整数)にサーバ102または103をN台としたエンドポイント共有システムを構成することが可能になる。
図16は、本発明の第3の変形例として1台の主サーバに対して複数台の拡張サーバを配置したこのようなエンドポイント共有システムを示したものである。この第3の変形例のエンドポイント共有システム100Cでは、記憶装置104が一端に接続されたFCスイッチ109Cの他端にソフトウェア処理を行うサーバ部651が接続されている。このサーバ部651は、ACT(active)系サーバ群102Cと、SBY(standby)系サーバ群103Cで構成されている。
FIG. 16 shows such an endpoint sharing system in which a plurality of extension servers are arranged for one main server as a third modification of the present invention. In the endpoint sharing system 100C of the third modified example, a
ここでACT系サーバ群102Cは、1台の主サーバ10200Cと、N台の拡張サーバ10201C〜1020NCによって構成されている。また、SBY系サーバ群103Cは、1台の主サーバ10310Cと、N台の拡張サーバ10311C〜1031NCによって構成されている。 Here ACT system servers 102C is composed one main server 102 00 C, the N number of extended server 102 01 C~102 0N C. The SBY system server group 103C includes one main server 103 10 C and N expansion servers 103 11 C to 103 1N C.
このうちACT系サーバ群102Cの主サーバ10200Cは、イーサネット(登録商標)スイッチ652を介してハードウェア処理を行う統合エンドポイント部653に接続されている。SBY系サーバ群103Cの主サーバ10310Cも、イーサネット(登録商標)スイッチ652を介してハードウェア処理を行う統合エンドポイント部653に接続されている。統合エンドポイント部653は、第1〜第Nの統合エンドポイント1011〜101Nがイーサネット(登録商標)スイッチ652に並列に接続された構成となっている。
The main server 102 00 C of these ACT based servers 102C is connected to the
この第3の変形例のエンドポイント共有システム100Cでは、ソフトウェア処理を行うサーバ部651と、ハードウェア処理を行う統合エンドポイント部653を、ピーシーアイエクスプレスパケットをカプセル化したイーサネット(登録商標)経由で接続している。これにより、イーサネット(登録商標)で接続した各サーバと統合エンドポイント101を、仮想的に1つのシステムとして構成することが可能になる。このエンドポイント共有システム100Cでは、ソフトウェア処理能力が不足した場合は拡張サーバ102Cあるいは103Cを増設することで、システム全体の能力を向上させることが可能になる。また、ハードウェア処理能力が不足した場合は、統合エンドポイント101を増設することにより、システム全体の能力を向上させることが可能になる。
In the endpoint sharing system 100C of the third modification, a
10、100、100A、100B、100C エンドポイント共有システム
11 現用系の主サーバ
12 現用系の拡張サーバ
13 待機系の主サーバ
14 待機系の拡張サーバ
15 現用系通信手段
16 待機系通信手段
17 マッピング手段
18 差分検出手段
19 アドレス変換手段
20 切替時機到来監視手段
21 第1のエンドポイントアクセス手段
22 第2のエンドポイントアクセス手段
23 現用系用データ格納手段
24 待機系用データ格納手段
30 エンドポイント代理アクセス方法
31 マッピングステップ
32 差分検出ステップ
33 アドレス変換ステップ
34 切替時機到来監視ステップ
35 第1のエンドポイントアクセスステップ
36 第2のエンドポイントアクセスステップ
37 現用系用データ格納ステップ
38 待機系用データ格納ステップ
40 エンドポイント代理アクセスプログラム
41 マッピング処理
42 差分検出処理
43 アドレス変換処理
44 切替時機到来監視処理
45 第1のエンドポイントアクセス処理
46 第2のエンドポイントアクセス処理
47 現用系用データ格納処理
48 待機系用データ格納処理
101 統合エンドポイント
102 ACT(active)系サーバ(群)
103 SBY(standby)系サーバ(群)
104 記憶装置
105 エンドポイント
106 PCIプロシキ(Proxy)機能部
109 FC(Fiber Channel)スイッチ(Switch)
111、112 PCIe拡張スロット
113、114 PCIe NIC(network card)
115 LAN
116〜119 HBA(Host Bus Adapter)
131 ポート
133 ACT(active)・SBY(standby)選択機能部
134 仮想PCIeコンフィグ(Configuration)レジスタ
135 コンフィグ(Configuration)制御部
136 アドレス変換テーブル
137 アドレス変換部
138 アドレス変換・振り分け機能部
139 PCIeポート
151 1次共有メモリ
152 2次共有メモリ
153 出力メモリ領域
154 入力メモリ領域
155 出力メモリサーバ領域
156 入力メモリサーバ領域
601 第1のイーサネット(登録商標)スイッチ
602 第2のイーサネット(登録商標)スイッチ
651 サーバ部
652 イーサネット(登録商標)スイッチ
653 統合エンドポイント部
10, 100, 100A, 100B, 100C
103 SBY (standby) server (group)
111, 112 PCIe expansion slot 113, 114 PCIe NIC (network card)
115 LAN
116-119 HBA (Host Bus Adapter)
131
Claims (8)
CPUを実装した任意の台数からなる現用系の拡張サーバと、
CPUを実装した1台の待機系の主サーバと、
CPUを実装した任意の台数からなる待機系の拡張サーバと、
前記現用系の主サーバと前記現用系の拡張サーバの間の通信を行う現用系通信手段と、
前記待機系の主サーバと前記待機系の拡張サーバの間の通信を行う待機系通信手段と、
所定のメモリ空間上に、前記現用系の主サーバにおける前記待機系の主サーバと共有する所定数のエンドポイントのアドレス情報と、前記待機系の主サーバにおける前記所定数のエンドポイントのアドレス情報をそれぞれマッピングするマッピング手段と、
このマッピング手段によってマッピングされる前記待機系の主サーバの前記現用系の主サーバに対する前記所定数のエンドポイントについてのアドレス情報の差分を、これらのサーバのCPUのベースアドレスの値の差によって検出する差分検出手段と、
この差分検出手段によって検出された差分を基にして、前記待機系の主サーバが現用系の主サーバに切り替わった際に前記現用系の主サーバに代理して前記所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行うアドレス変換手段と、
前記現用系の主サーバと前記待機系の主サーバの系の切り替え時機の到来を監視する切替時機到来監視手段と、
この切替時機到来監視手段によって前記待機系の主サーバが現用系の主サーバに切り替えられるまでは、前記マッピング手段にマッピングされた前記現用系の主サーバにおける前記所定数のエンドポイントのアドレス情報をそのまま用いて前記現用系の主サーバに代理して前記所定数のエンドポイントにアクセスする第1のエンドポイントアクセス手段と、
前記切替時機到来監視手段によって前記待機系の主サーバが現用系の主サーバに切り替えられたときには、切り替える前までの前記待機系の主サーバにおける前記所定数のエンドポイントのアドレス情報をそれぞれ前記アドレス変換手段で変換して現用系に切り替えられた主サーバに代理で前記所定数のエンドポイントにアクセスする第2のエンドポイントアクセス手段と、
前記現用系の拡張サーバの1台が前記現用系の主サーバに代わって前記所定数のエンドポイントと通信するときそのデータを前記現用系の主サーバに代わって所定の現用系用記憶領域に格納する現用系用データ格納手段と、
前記待機系の拡張サーバの1台が前記待機系の主サーバに代わって前記所定数のエンドポイントと通信するときそのデータを前記待機系の主サーバに代わって所定の待機用記憶領域に格納する待機系用データ格納手段
とを具備することを特徴とするエンドポイント共有システム。 One active main server with a CPU (Central Processing Unit) installed;
An active expansion server consisting of an arbitrary number of CPUs;
One standby main server with a CPU,
A standby expansion server consisting of any number of CPUs, and
Active communication means for performing communication between the active main server and the active expansion server;
Standby communication means for performing communication between the standby main server and the standby expansion server;
Address information of a predetermined number of endpoints shared with the standby main server in the active main server and address information of the predetermined number of endpoints in the standby main server on a predetermined memory space Mapping means for mapping each;
The difference in the address information about the predetermined number of endpoints of the standby main server mapped by the mapping means with respect to the active main server is detected by the difference in the base address values of the CPUs of these servers. Difference detection means;
Based on the difference detected by the difference detecting means, when the standby main server is switched to the active main server, the predetermined number of endpoints are accessed on behalf of the active main server. Address conversion means for converting address information after switching,
Switching timing arrival monitoring means for monitoring arrival of switching timing between the active primary server and the standby primary server;
Until the standby main server is switched to the active main server by the switching timing arrival monitoring unit, the address information of the predetermined number of endpoints in the active main server mapped to the mapping unit is used as it is. Using a first endpoint access means for accessing the predetermined number of endpoints on behalf of the active main server;
When the standby primary server is switched to the active primary server by the switching timing arrival monitoring means, the address conversion is performed on the address information of the predetermined number of endpoints in the standby primary server before switching, respectively. A second endpoint access means for accessing the predetermined number of endpoints on behalf of the main server converted by the means and switched to the active system;
When one of the active expansion servers communicates with the predetermined number of endpoints on behalf of the active main server, the data is stored in a predetermined active storage area on behalf of the active main server Working data storage means for
When one of the standby expansion servers communicates with the predetermined number of endpoints on behalf of the standby main server, the data is stored in a predetermined standby storage area on behalf of the standby main server. An endpoint sharing system comprising standby data storage means.
このマッピングステップによってマッピングされる前記待機系の主サーバの前記現用系の主サーバに対する前記所定数のエンドポイントについてのアドレス情報の差分を、これらのサーバのCPU(Central Processing Unit)のベースアドレスの値の差によって検出する差分検出ステップと、
この差分検出ステップによって検出された差分を基にして、前記待機系の主サーバが現用系の主サーバに切り替わった際に前記現用系の主サーバに代理して前記所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行うアドレス変換ステップと、
前記現用系の主サーバと待機系の主サーバの系の切り替え時機の到来を監視する切替時機到来監視ステップと、
この切替時機到来監視ステップによって前記待機系の主サーバが現用系の主サーバに切り替えられるまでは、前記マッピングステップによってマッピングされた前記現用系の主サーバにおける前記所定数のエンドポイントのアドレス情報をそのまま用いて前記現用系の主サーバに代理して前記所定数のエンドポイントにアクセスする第1のエンドポイントアクセスステップと、
前記切替時機到来監視ステップによって前記待機系の主サーバが現用系の主サーバに切り替えられたときには、切り替える前までの前記待機系の主サーバにおける前記所定数のエンドポイントのアドレス情報をそれぞれ前記アドレス変換ステップによって変換して現用系に切り替えられた主サーバに代理で前記所定数のエンドポイントにアクセスする第2のエンドポイントアクセスステップと、
任意の台数からなる現用系の拡張サーバのうちの1台が、前記現用系の主サーバの代わりに前記第1のエンドポイントアクセスステップで前記所定数のエンドポイントと通信を行うとき、そのデータを前記現用系の主サーバの通信時のデータに代わって所定の記憶領域に格納する現用系用データ格納ステップと、
任意の台数からなる待機系の拡張サーバのうちの1台が、前記待機系の主サーバの代わりに前記第2のエンドポイントアクセスステップで前記所定数のエンドポイントと通信を行うとき、そのデータを前記待機系の主サーバの通信時のデータに代わって所定の記憶領域に格納する待機系用データ格納ステップ
とを具備することを特徴とするエンドポイント代理アクセス方法。 In a predetermined memory space connected to a Peripheral Component Interconnect Express bus, address information of a predetermined number of endpoints shared with the standby main server in the active main server, and the standby main A mapping step of mapping address information of the predetermined number of endpoints in the server, respectively;
The difference between the address information of the predetermined number of endpoints of the standby main server mapped by the mapping step with respect to the active main server is the base address value of the CPU (Central Processing Unit) of these servers. A difference detection step for detecting by the difference between,
Based on the difference detected in the difference detection step, when the standby main server is switched to the active main server, the predetermined number of endpoints are accessed on behalf of the active main server. An address conversion step for converting the address information after switching,
A switching timing arrival monitoring step for monitoring the arrival of switching timing between the active primary server and the standby primary server;
Until the standby primary server is switched to the active primary server in this switching timing arrival monitoring step, the address information of the predetermined number of endpoints in the active primary server mapped in the mapping step is used as it is. Using a first endpoint access step to access the predetermined number of endpoints on behalf of the active primary server;
When the standby primary server is switched to the active primary server in the switching timing arrival monitoring step, the address conversion is performed on the address information of the predetermined number of endpoints in the standby primary server before switching, respectively. A second endpoint access step for accessing the predetermined number of endpoints on behalf of the main server converted by the step and switched to the active system;
When one of the active expansion servers of an arbitrary number communicates with the predetermined number of endpoints in the first endpoint access step instead of the active main server, the data is A working data storage step for storing data in a predetermined storage area instead of data during communication of the working main server;
When one of the standby expansion servers consisting of an arbitrary number communicates with the predetermined number of endpoints in the second endpoint access step instead of the standby main server, And a standby data storage step of storing in a predetermined storage area in place of data during communication of the standby main server.
前記ピーシーアイエクスプレスバスに接続された所定のメモリ空間上に、現用系の主サーバにおける待機系の主サーバと共有する所定数のエンドポイントのアドレス情報と、前記待機系の主サーバにおける前記所定数のエンドポイントのアドレス情報をそれぞれマッピングするマッピング処理と、
このマッピング処理によってマッピングされる前記待機系の主サーバの前記現用系の主サーバに対する前記所定数のエンドポイントについてのアドレス情報の差分を、これらのサーバのCPU(Central Processing Unit)のベースアドレスの値の差によって検出する差分検出処理と、
この差分検出処理によって検出された差分を基にして、前記待機系の主サーバが現用系の主サーバに切り替わった際に前記現用系の主サーバに代理して前記所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行うアドレス変換処理と、
前記現用系の主サーバと待機系の主サーバの系の切り替え時機の到来を監視する切替時機到来監視処理と、
この切替時機到来監視処理によって前記待機系の主サーバが現用系の主サーバに切り替えられるまでは、前記マッピング処理によってマッピングされた前記現用系の主サーバにおける前記所定数のエンドポイントのアドレス情報をそのまま用いて前記現用系の主サーバに代理して前記所定数のエンドポイントにアクセスする第1のエンドポイントアクセス処理と、
前記切替時機到来監視処理によって前記待機系の主サーバが現用系の主サーバに切り替えられたときには、切り替える前までの前記待機系の主サーバにおける前記所定数のエンドポイントのアドレス情報をそれぞれ前記アドレス変換処理によって変換して現用系に切り替えられた主サーバに代理で前記所定数のエンドポイントにアクセスする第2のエンドポイントアクセス処理と、
任意の台数からなる現用系の拡張サーバのうちの1台が、前記現用系の主サーバの代わりに前記第1のエンドポイントアクセス処理で前記所定数のエンドポイントと通信を行うとき、そのデータを前記現用系の主サーバの通信時のデータに代わって所定の記憶領域に格納する現用系用データ格納処理と、
任意の台数からなる待機系の拡張サーバのうちの1台が、前記待機系の主サーバの代わりに前記第2のエンドポイントアクセス処理で前記所定数のエンドポイントと通信を行うとき、そのデータを前記待機系の主サーバの通信時のデータに代わって所定の記憶領域に格納する待機系用データ格納処理
とを実行させることを特徴とするエンドポイント代理アクセスプログラム。 A computer of a device that is connected to each of the active main server and the standby main server via a Peripheral Component Interconnect Express bus and shares the endpoints as a predetermined number of network terminals with these main servers. In addition,
Address information of a predetermined number of endpoints shared with the standby main server in the active main server on the predetermined memory space connected to the PC Express bus, and the predetermined number in the standby main server Mapping process to map the address information of each endpoint,
The difference between the address information of the predetermined number of endpoints of the standby main server mapped by the mapping process with respect to the active main server is the base address value of the CPU (Central Processing Unit) of these servers. Difference detection processing to detect by the difference between,
Based on the difference detected by the difference detection process, when the standby main server is switched to the active main server, the predetermined number of endpoints are accessed on behalf of the active main server. Address conversion processing for converting address information after switching,
Switching timing arrival monitoring processing for monitoring the arrival of switching timing between the active primary server and the standby primary server;
Until the standby main server is switched to the active main server by this switching timing arrival monitoring process, the address information of the predetermined number of endpoints in the active main server mapped by the mapping process remains unchanged. A first endpoint access process that uses the active primary server to access the predetermined number of endpoints;
When the standby primary server is switched to the active primary server by the switching timing arrival monitoring process, the address information of the predetermined number of endpoints in the standby primary server before the switching is converted into the address conversion, respectively. A second endpoint access process for accessing the predetermined number of endpoints on behalf of the main server converted by the process and switched to the active system;
When one of the active expansion servers of an arbitrary number communicates with the predetermined number of endpoints in the first endpoint access processing instead of the active main server, the data is A data storage process for the active system that stores data in a predetermined storage area instead of the data during communication of the primary server of the active system;
When one of the standby expansion servers composed of an arbitrary number communicates with the predetermined number of endpoints in the second endpoint access processing instead of the standby main server, An endpoint proxy access program for executing standby-system data storage processing for storing data in a predetermined storage area in place of communication data of the standby-system main server.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009224083A JP2011076174A (en) | 2009-09-29 | 2009-09-29 | End point sharing system, proxy access method, and proxy access program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009224083A JP2011076174A (en) | 2009-09-29 | 2009-09-29 | End point sharing system, proxy access method, and proxy access program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011076174A true JP2011076174A (en) | 2011-04-14 |
Family
ID=44020128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009224083A Pending JP2011076174A (en) | 2009-09-29 | 2009-09-29 | End point sharing system, proxy access method, and proxy access program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011076174A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9304938B2 (en) | 2012-11-26 | 2016-04-05 | Samsung Electronics Co., Ltd. | Storage device and data transferring method thereof |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03225551A (en) * | 1990-01-31 | 1991-10-04 | Fujitsu Ltd | Input and output device access control system |
JP2002222160A (en) * | 2001-01-26 | 2002-08-09 | Fujitsu Ltd | Repeating installation |
JP2007219873A (en) * | 2006-02-17 | 2007-08-30 | Nec Corp | Switch and network bridge device |
JP2007316791A (en) * | 2006-05-24 | 2007-12-06 | Nec Corp | Information processor and inter-device connecting method |
JP2008152786A (en) * | 2006-12-19 | 2008-07-03 | Internatl Business Mach Corp <Ibm> | Method for migrating virtual function from first to second physical function of one or more end points in data processing system, program, and system (system and method for migration of single root stateless virtual function) |
JP2011048452A (en) * | 2009-08-25 | 2011-03-10 | Nec Corp | End point proxy access device, sharing system, proxy access method and proxy access program |
-
2009
- 2009-09-29 JP JP2009224083A patent/JP2011076174A/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03225551A (en) * | 1990-01-31 | 1991-10-04 | Fujitsu Ltd | Input and output device access control system |
JP2002222160A (en) * | 2001-01-26 | 2002-08-09 | Fujitsu Ltd | Repeating installation |
JP2007219873A (en) * | 2006-02-17 | 2007-08-30 | Nec Corp | Switch and network bridge device |
JP2007316791A (en) * | 2006-05-24 | 2007-12-06 | Nec Corp | Information processor and inter-device connecting method |
JP2008152786A (en) * | 2006-12-19 | 2008-07-03 | Internatl Business Mach Corp <Ibm> | Method for migrating virtual function from first to second physical function of one or more end points in data processing system, program, and system (system and method for migration of single root stateless virtual function) |
JP2011048452A (en) * | 2009-08-25 | 2011-03-10 | Nec Corp | End point proxy access device, sharing system, proxy access method and proxy access program |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9304938B2 (en) | 2012-11-26 | 2016-04-05 | Samsung Electronics Co., Ltd. | Storage device and data transferring method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7697312B2 (en) | SAN/NAS integrated storage system | |
US8095701B2 (en) | Computer system and I/O bridge | |
JP4376040B2 (en) | Apparatus and method for performing information processing using a plurality of processors | |
EP1760591B1 (en) | System and method of managing access path | |
JP5116497B2 (en) | Information processing system, I / O switch, and I / O path replacement processing method | |
US6675253B1 (en) | Dynamic routing of data across multiple data paths from a source controller to a destination controller | |
US7633856B2 (en) | Multi-node system, internodal crossbar switch, node and medium embodying program | |
JP3807250B2 (en) | Cluster system, computer and program | |
JP2005165702A (en) | Device connection method of cluster storage | |
JP2011222011A (en) | Remote direct storage access | |
JP2007282197A (en) | Remote data facility over ip network | |
US20120284435A1 (en) | Zone group manager virtual phy | |
US7539129B2 (en) | Server, method for controlling data communication of server, computer product | |
JP2004021556A (en) | Memory control device and control process thereof | |
US20120183001A1 (en) | Network apparatus, network configuration method and program recording medium which records a network apparatus program | |
JP2009075718A (en) | Method of managing virtual i/o path, information processing system, and program | |
US7774514B2 (en) | Method of transmitting data between storage virtualization controllers and storage virtualization controller designed to implement the method | |
WO2014206078A1 (en) | Memory access method, device and system | |
JP2003044421A (en) | Virtual storage system and switching node used for the same system | |
JP5482263B2 (en) | Endpoint sharing system and data transfer method | |
JP5516411B2 (en) | Information processing system | |
JP2011076174A (en) | End point sharing system, proxy access method, and proxy access program | |
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 | |
JP6134720B2 (en) | Connection method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120809 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20121016 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130906 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130910 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140121 |