JP2017220241A - リモートkvmセッションに使用する方法、記憶装置及びシステム - Google Patents

リモートkvmセッションに使用する方法、記憶装置及びシステム Download PDF

Info

Publication number
JP2017220241A
JP2017220241A JP2017112905A JP2017112905A JP2017220241A JP 2017220241 A JP2017220241 A JP 2017220241A JP 2017112905 A JP2017112905 A JP 2017112905A JP 2017112905 A JP2017112905 A JP 2017112905A JP 2017220241 A JP2017220241 A JP 2017220241A
Authority
JP
Japan
Prior art keywords
remote kvm
remote
bios
controller
network address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017112905A
Other languages
English (en)
Other versions
JP6383839B2 (ja
Inventor
永 富 李
Yung-Fu Li
永 富 李
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Quanta Computer Inc
Original Assignee
Quanta Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Quanta Computer Inc filed Critical Quanta Computer Inc
Publication of JP2017220241A publication Critical patent/JP2017220241A/ja
Application granted granted Critical
Publication of JP6383839B2 publication Critical patent/JP6383839B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/24Keyboard-Video-Mouse [KVM] switch
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】リモートKVMセッションの故障を回復する方法およびシステムを提供する。
【解決手段】システムは、システム上のコンソールアプリケーションとサーバー上のコントローラーによって実行される第一サーバアプリケーションの間に第一リモートKVMセッションを確立し、ここで第一リモートKVMセッションは、システムとコントローラーの間の第一ネットワーク接続を介して確立する。次に、システムは第一リモートKVMセッションに関連するエラーを検出すると、そのエラーに応じて、コンソールアプリケーションとサーバー上のOSまたはBIOSが実行する第二サーバアプリケーションの間に、システムと第二サーバアプリケーションの間の第二ネットワーク接続を介して、第二リモートKVMセッションを確立する。
【選択図】図5

Description

本発明は一種のリモートKVM(remotekeyboard,video,and mouse)セッションプロトコル及びそのメカニズムに関する。
リモート管理ソフトウェアは、使用者が遠隔からサーバーを制御または管理することができるため、その利用が普及しつつある。実際に、最新のサーバーは一般的にリモートのキーボード、ビデオ、マウス(リモートKVM)機能を有するため、使用者が別の装置から遠隔でサーバーに接続、そして制御することができる。リモートKVM機能を介して、使用者はサーバーの画面を見ることができ、そして、例えばキーボードやマウスなどのサーバーの部品にもアクセス可能である。リモートKVM機能は一般的にサーバー上のBMC(baseboard management controller)を介して操作される。よって、リモートKVMセッションの信頼性と安定性は、BMCとネットワーク接続に大きく依存する。BMCまたはリモートKVMネットワーク接続に問題が発生すると、リモートKVMセッションが不安定になる可能性がある。一般の場合では、BMCまたはリモートKVMネットワーク接続に問題が発生すると、リモートKVMセッションが途中で中断される。そして、その問題が続くと、使用者がリモートKVMセッションを再確立することができなくなる可能性がある。これでは、特にサーバーに物理的なアクセスが困難な場合に、使用者に大きな不便がもたらされる。
本開示の付加的な特徴及び利点は、以下の説明で部分的に説明され、その説明から部分的に明らかになり、または本開示の原理を実施することによって理解されることができる。本開示の特徴及び利点は、特許請求の範囲に示される要素および組合せによって実現及び達成される。本開示の上述した特徴及び他の特徴は、以下の説明及び添付の特許請求の範囲からより完全に明らかになり、または本明細書に記載された原理の実施によって理解されることができる。
本発明は、一種のリモートKVMセッションの故障を回復する技術を提示する。一部の実施例において、システムはシステム上のコンソールアプリケーションとサーバー上のコントローラー、例えばBMCが執行する第一サーバアプリケーションの間に第一リモートKVMセッションを確立することができる。システムとサーバー上のコントローラーの間の第一ネットワーク接続を介して第一リモートKVMセッションが確立されることができる。例えば、コントローラー自体が通信インターフェースを有し、ネットワークを介してシステムに通信することができる。通信インターフェースは、サーバーがネットワーク接続を確立するために使用する他の通信インターフェースとは異なる場合がある。
そして、システムが第一リモートKVMセッションに関連するエラーを検出することができる。例えば、システムが周期的な命令をコントローラー及び/または関連するサーバアプリケーションに送信し、コントローラーからの応答を要求することができる。この命令は、OS(operating system)またはサーバーのBIOS(basic input/output system)など、サーバーの別のコンポーネントに関連するネットワークアドレスの要求であっても良い。システムが、閾値時間内または閾値回数以内に応答を受信しない場合、システムは、第一リモートKVMセッション及び/またはシステムとコントローラーの間の関連する接続でエラーが発生したと判断することができる。
そのエラーに応じて、システムがコンソールアプリケーションと、サーバー上にOSまたはBIOSを介して実行された第二サーバアプリケーションの間に第二リモートKVMセッションを確立することができる。第二リモートKVMセッションは、システムと第二サーバアプリケーションの間の第二ネットワーク接続を介して確立されることができる。第二サーバアプリケーションは、コントローラーではなく、サーバーのOSまたはBIOSによって実行または管理されることができる。さらに、第二サーバアプリケーションは、第一サーバアプリケーションと異なる通信インターフェースを介してコンソールアプリケーションとの接続を確立することができる。このように、第二サーバアプリケーションは、コントローラー、第一サーバアプリケーション及び/またはコントローラーと関連する通信インターフェースにエラー若しくは故障が発生したとしても、第二サーバアプリケーション自体の機能及びコンソールアプリケーションとの通信を維持することができる。
本開示の上記の利点と特徴及び他の利点と特徴が得られる方法を説明するために、上記において簡単に説明した原理の具体的な説明を、特定の実施形態を参照しながら説明する。これらの図面は、本開示の例示的な実施形態のみを示しており、本発明の範囲を限定するものではないことは理解されるべきであろう。また、本開示の原理は、その付加的な特徴及び細部と共に、添付の図面を通じて説明される。
例示的なシステムの実施例を示す図である。 例示的なシステムの実施例を示す図である。 リモートKVMサービスシステムの概略図である。 リモートKVMサービスの例示的なサーバー側プロセスの概略図である。 リモートKVMサービスの例示的なクライアント側プロセスの概略図である。 リモートKVMサービスの例示的な通信フローのフェイルオーバーの概略図である。 リモートKVMサービスのフェイルオーバーの例示的な方法を示す図である。
本開示の様々な実施例を以下に詳しく説明する。また、特定の実施形態について説明しているが、これらは説明のためにのみ示されていることを理解されたい。当業者は、本開示の趣旨及び範囲から逸脱することなく他の要素及び構成を使用できることを認識するであろう。
以下に開示されたのは、適応性と安定性に優れるリモート管理アプリケーションのためのシステム、方法及び非一時的なコンピューター可読媒体である。まずは、リモートKVMの例示的なシステム及び構成を簡単に紹介する。続いて、リモートKVMの実施例とその変形を詳しく説明する。これらの変形形態を、様々な実施例として説明する。本開示をまず図1A、1Bを参照しながら説明する。
本明細書に使用されるリモートKVM(rKVM)という用語は、遠隔デスクトップソフトウェアのような遠隔管理のための任意のソフトウェア、プロトコル、インターフェース、ファームウェア、及び/またはハードウェアを指し、ネットワーク及び第一の装置、第二の装置のキーボード、ビデオ(即ち、スクリーンまたはビデオコンソールディスプレイ)、マウス、並びに記憶装置またはイメージ、メモリー装置、周辺装置などの任意の他の部品などである。さらに、装置のキーボード、ビデオ、マウスに遠隔的にアクセス、または装置のキーボード、ビデオ、マウスを遠隔的に制御するために、リモートKVMはRDP(remote desktop protocol)、RFB(remote frame buffer)、ICA(independent computing architecture)、SSH(secure shell)、telnet、HTTP(hyper text transfer protocol)などの1つ以上のプロトコル、及び/またはその後継物若しくは同等物、例えば標準プロトコルを使用してリモートKVMを実行できる。
本明細書に使用する「BIOS」という用語は、システムのハードウェア部品を初期化し、システムのハードウェア部品をテストし、メモリー装置からブートローダをロードし、若しくはメモリー装置からOSをロードする任意のファームウェアである。例えば、本明細書に使用するBIOSという用語は、当業界にBIOSとして認知されるファームウェアまたはその後継物若しくは同等物、例えばEFI(Extensible Firmware Interface)またはUEFI(Unified Extensible Firmware Interface)である。
図1A、1Bは、例示的なシステムの実施例である。本開示を実施する時、より適切な実施例が当業者には明らかである。当業者であれば、システムの他の実施例も可能であることを容易に理解できる。
図1Aは、システムバス計算システム100の構成を示し、その中の部品がバス102を介して電気通信している。この例示的なシステム100は、処理装置(CPUまたはプロセッサー)130と、ROM106及びRAM108などのシステムメモリー104のようなシステム部品を含み、プロセッサー106に連結するシステムバス102を含む。システム100は、プロセッサー130に直接的にまたは近接的に連結され、若しくは一部として統合される高速メモリーのキャッシュを含むことができる。システム100は、メモリー104及び/または記憶装置112からデータをキャッシュ128にコピーすることで、プロセッサー130による迅速なアクセスを可能にすることができる。このようにして、キャッシュは、プロセッサー130がデータを待つことによって発生する遅延を回避し、性能向上を提供することができる。これら及び他のモジュールは、様々な作動を実行するために、プロセッサー130を制御し、若しくは制御するように構成されることができる。他のシステムメモリー104も使用可能である。メモリー104は、様々な特性を有する複数の異なるタイプのメモリーを含むことができる。プロセッサー130は、プロセッサー130を制御するように構成される記憶装置112に格納されたモジュール1(114)、モジュール2(116)、及びモジュール3(118)などの任意の汎用プロセッサーのようなハードウェアモジュールまたはソフトウェアモジュールを含むことができ、若しくはソフトウェア命令が実際のプロセッサー設計に組み込まれている専用のプロセッサーである。プロセッサー130は、本質的に、複数のコアまたはプロセッサー、バス、メモリーコントローラー、キャッシュなどを含む完全に自己完結型の計算システム(completely self−contained computing system)であってもよい。マルチコアのプロセッサーは、対称または非対称であってもよい。
使用者と計算装置システム100の対話を可能にするために、入力装置120は、スピーチ用のマイク、ジェスチャーまたはグラフィック入力の接触画面、キーボード、マウス、動作入力、音声などの任意の数の入力機構を表すことができる。出力装置122はまた、当業界に公知のいくつかの出力機構のうちの1つまたは複数であってもよい。場合によっては、マルチモジュールのシステムにより、使用者が複数タイプの入力装置によって、計算装置100と通信できる。通信インターフェース124は、一般的に、使用者入力及びシステム出力を支配(govern)及び管理することができる。また、特定のハードウェア構成での操作に制限されていないので、ここでの基本的な機能は、改良されたハードウェア及びファームウェアの開発により容易に置換されることができる。
記憶装置112は、NVMeドライブなどの不揮発性メモリーであり、若しくはコンピューターによってアクセス可能なデータを格納することができるハードディスクまたは他のタイプのコンピューター可読媒体からなるもの、例えば磁気カセット、フラッシュメモリーカード、DVD、カートリッジ、RAM108、ROM106、及びそれらのハイブリッドである。
プロセッサー130を制御するために、記憶装置112はソフトウェアモジュール1(114)、モジュール2(116)、モジュール3(118)を含むことができる。他のハードウェアまたはソフトウェアモジュールも考えられる。記憶装置112は、システムバス102に連結されることができる。1つの実施態様では、特定機能を実行するハードウェアモジュールは、プロセッサー130、バス102、表示装置136などの必要なハードウェア部品に連結されるコンピューター可読媒体に格納されたソフトウェア部品を含み、その機能を実行することができる。
コントローラー110は、システム100上の專用のマイクロコントローラーまたはプロセッサーであり、例えばBMCである。一部の実施例では、コントローラー110は、IPMI(IntelligentPlatformManagementInterface)の一部である。さらに、一部の実施例では、コントローラー110はシステム100のマザーボードまたはメイン回路基板に埋め込まれることもできる。コントローラー110は、システム管理ソフトウェアとプラットフォームハードウェアの間のインターフェースを管理することができる。コントローラー110は、以下で説明されるように、コントローラーまたは周辺部品などの様々なシステム装置及び部品(内部及び/または外部)と通信することもできる。
コントローラー110は、通知、アラート、及び/またはイベントに対する特定の応答を生成し、リモート装置または部品(例えば、E−mailメッセージ、ネットワークメッセージなど)と通信し、自動ハードウェア回復プロセスのための命令またはコマンドを生成するなどのことができる。管理者は、以下で説明されるように、コントローラー110と遠隔通信して、動作または特定のハードウェア回復手順を開始または実行することもできる。
システム100上の異なるタイプのセンサー(例えば、センサー126)は、冷却ファンのスピード、電力状態、OS状態、ハードウェア状態などのパラメータについてコントローラー110に報告することができる。コントローラー110はまた、コントローラー110によって受信されたイベント、アラート、及び通知を管理及び維持するためのシステムイベントログコントローラー及び/または記憶装置を含むことができる。例えば、コントローラー110またはシステムイベントログコントローラーは1つまたは複数の装置及び部品からのアラートまたは通知を受信し、且つそのアラートまたはその通知をシステムイベントログ記憶部品に維持することができる。
フラッシュメモリー(Flashmemory)132は、記憶及び/またはデータ転送をするためにシステム100に使用された電子不揮発性コンピューター記憶媒体またはチップであっても良い。フラッシュメモリー132は、電気的に消去及び/または再プログラムされることができる。フラッシュメモリー132は、例えば、EPROM(erasable programmable read−only memory)、EEPROM(electrically erasable programmable read−only memory)、ROM、不揮発性ランダムアクセスメモリー(NVRAM)、またはCMOS(complementary metal−oxide semiconductor)を含むことができる。フラッシュメモリー132は、システム100に最初に電源を入れる時に、システム100によって実行されるBIOS134のファームウェアを、BIOS134に対して特定された設定のセットと共に格納することができる。フラッシュメモリー132はまた、BIOS134に使用される設定を格納することができる。
BIOS134は、システム100が起動されるたびにシーケンスプログラムとしてロードされることができる。BIOS134は、その設定のセットに基づいてシステム100に存在するハードウェアを識別、初期化、及びテストすることができる。BIOS134は、システム100上でPOST(Power−on−Self−Test)などの自己テストを実行することができる。自己テストは、HDD(hard disk drives)、光学読取装置(optical reading devices)、冷却装置、記憶モジュール、拡張カード(expansion cards)などの様々なハードウェア部品の機能をテストすることができる。BIOS134は、OSを格納するためにメモリー104、ROM106、RAM108及び/または記憶装置112の領域にアドレス指定して割り当てることができる。BIOS134は、ブートローダー及び/またはOSをロードし、システム100の制御をOSに渡すことができる。
システム100のBIOS134は、BIOS134がシステム100内の様々なハードウェア部品をどのように制御するかを定義するファームウェアの設定を含むことができる。ファームウェア設定は、システム100内の様々なハードウェア部品の起動の順番を決めることができる。BIOS134は、UEFIなどのインタフェースを提供することができ、ファームウェア初期設定おけるパラメーターとは異なる様々なパラメーターを設定することができる。例えば、使用者(例えば、管理者)は、BIOS134を使用して、クロック及びバススピードを指定し、システム100にどの周辺機器が取り付けられているかを定義し、健康状態(例えば、ファンスピード及びCPU温度限界)の設定を行い、またはシステム100の全体的な性能及び電力使用に影響を及ぼす様々な他のパラメータを提供することができる。
BIOS134は、フラッシュメモリー132に格納されているものとして示されているが、当業者であれば、BIOS134は、例えば、メモリー104またはROM106などの他のメモリー部品に格納されることができることを容易に認識するであろう。しかしながら、BIOS134は、説明のための非限定的な例として、フラッシュメモリー132に格納されているものとして示されている。
システム100は、1つまたは複数のセンサー126を含むことができる。1つまたは複数のセンサー126は、例えば、1つまたは複数の温度センサー、熱センサー、酸素センサー、化学センサー、ノイズセンサー、熱センサー、電流センサー、電圧検出器、空気流量センサー、流量センサー、赤外線温度計、熱流量センサー、温度計、高温計などを含むことができる。例えば、1つまたは複数のセンサー126は、バス102を介してプロセッサー、キャッシュメモリー128、フラッシュメモリー132、通信インターフェース124、メモリー104、ROM106、RAM108、コントローラー110及び記憶装置112に通信することができる。
システム100内の様々な部品(例えばセンサー126、プロセッサー130、コントローラー110、記憶装置112など)は、例えば、ICバス(inter−integratedcircuit bus)、SMBバス(system management bus)、eSPI(enhanced serial peripheral interface)、LPC(lowpincount)、GPIOインターフェース(general purpose input/output interface)、PCIeインターフェース(peripheral component interconnect express interface)などの、1つまたは複数の手段でシステム100内の他の部品に通信することができる。
図1Bに示されるのは、チップセット構成を有する例示的なコンピューターシステム150であり、そのコンピューターシステム150は、上記の方法または操作を実行し、且つGUI(graphicaluserinterface)を生成して表示することができる。コンピューターシステム150は、上記方法を実行するためのコンピューターハードウェア、ソフトウェア、及びファームウェアを含むことができる。システム150は、識別された計算を実行するように構成されたソフトウェア、ファームウェア、及びハードウェアを実行することができる任意の数の物理的及び/または論理的に異なるものを表すプロセッサー160を含むことができる。プロセッサー160は、チップセット152と通信することができ、チップセット152は、プロセッサー160の入力と出力を制御することができる。この例では、チップセット152は、ディスプレイなどの情報を出力装置164に出力し、磁気媒体、固体媒体または不揮発性媒体(例えば、NVMe)を含むことができる記憶装置166において情報を読み書きすることができる。チップセット152はまた、RAM168からデータを読み取り、RAM168にデータを書き込むこともできる。様々な使用者インターフェース部品156に連結するブリッジ154は、チップセット152に連結するために提供される。このような使用者インターフェース部品156は、キーボード、マイク、接触タッチ検出及び処理回路、マウスのようなポインティング装置などを含むことができる。一般的に、システム150への入力は、機械及び/または人間など様々なソースからである。
チップセット152はまた、異なる物理的なインターフェースを有する1つまたは複数の通信インターフェース158と連結することもできる。そのような通信インターフェースは、有線及び無線のローカルエリアネットワークインターフェース、プロードバンドワイヤレスネットワークインターフェース、及びパーソナルエリアネットワークインターフェースを含むことができる。本明細書で開示されるGUIを生成、表示、及び使用するための方法のいくつかのアプリケーションは、記憶装置166またはRAM168に格納されたデータを解析するプロセッサー160によって、物理的なインターフェースを介して受信し、若しくは機器の自ら生成した順序づけられたデータセットを受信することを含むことができる。さらに、機械は、使用者インターフェース部品156を介して使用者からの入力を受信し、プロセッサー160を使用して、その入力を解明することによって、ブラウジング機能のような適切な機能を実行することができる。
さらに、チップセット152は、ファームウェア162と通信し、ファームウェア162は、電源を入れたときにコンピューターシステム150によって実行されることができる。ファームウェア162の設定によって、ファームウェア162はコンピューターシステム150内のハードウェアを識別、初期化またはテストすることができる。ファームウェア162は、システム150上で例えばPOSTなどの自己テストを実行することができる。自己テストは、様々なハードウェア部品(152−168)の機能性をテストすることができる。ファームウェア162は、RAM168内にOSを格納する領域をアドレス指定して割り当てることができる。ファームウェア162は、ブートローダー及び/またはOSをロードし、システムの制御をOSに渡すことができる。場合によって、ファームウェア162は、ハードウェア部品(152−160及び164−168)と通信することができる。ここで、ファームウェア162は、チップセット152及び/または、1つ若しくは複数の他の部品を介して、ハードウェア部品(152−160及び164−168)と通信することができる。場合によっては、ファームウェア162は、ハードウェア部品(152−160及び164−168)と直接に通信することができる。
さらに、チップセット152は、BMC170と通信することができる。BMC170は、図1Aに示された上記のコントローラー110と同様に、管理、監視、及び制御動作を実行することができる特殊なプロセッサーまたはコントローラーであってもよい。例えば、BMC170は、システム150及びその中の部品のいずれかを監視し、ログを生成し、1つまたは複数の特定部品に制御信号を送信し、及び/または独立するネットワーク接続でもあるネットワーク接続を介して他の装置または部品と通信することができる。
理解されるべきなのは、例示的なシステム100及びシステム150は、1つ以上のプロセッサー(例えばプロセッサー130及び160)を有することができ、またはより大きな処理能力を提供するためにネットワーク化された計算装置のグループまたはクラスタの一部であっても良い。
図2は、リモートKVMシステム200の概略図である。システム204は、ネットワーク202上でシステム150とのリモートKVMセッションを確立することができる。ネットワーク202は、1つまたは複数のネットワークを含むことができる。さらに、ネットワーク202は、インターネットなどの公衆ネットワークを含むことができ、ローカルエリアネットワークなどのプライベートネットワークも含むことができ、及び/または上記両方を組み合わせたVPN(virtual private network)も含むことができる。
システム204は、デスクトップコンピューター、ラップトップコンピューター、タブレットコンピューター、スマートフォンなどのようなネットワーク接続を有する任意の計算装置とすることができる。システム204は、システム150上のリモートKVMサーバーアプリケーション222〜226とのリモートKVMセッションを確立するために使用されるリモートKVMコンソールアプリケーションを含むことができる。
システム150は、ネットワーク202上に接続を確立して維持するために通信インターフェース158を含むことができる。システム150はまた、様々な命令を実行し、様々な構成要素、動作、及び通信を制御するためのプロセッサー160及びBMC170を含むことができる。システム150はまた、記憶装置166のようなシステム150上の記憶装置に格納されることができるOS208を含むことができる。OS208は、システムのハードウェアとソフトウェアリソースを借りることができ、且つコンピュータープログラムサービスを提供することができる。さらに、OS208は、通信インターフェースを使用して、ネットワーク202を介して他の装置と接続することができる。OS208は、OS208に割り当てられた特定のネットワークアドレス(例えば、インターネットプロトコルアドレス)を使用して、ネットワーク202を介して通信することができる。
BIOS162は、ネットワーク202上で通信インターフェース158を介して通信することもできる。BIOS162は、ネットワーク202上で、BIOS162に指定された特定ネットワークアドレスを介して通信することができる。BIOS162に割り当てられたネットワークアドレスは、OS208に割り当てられたネットワークアドレスとは異なる場合がある。しかし、一部の状況では、BIOS202は、OS208がロードされ実行されている間に、ネットワーク通信を送受信しないこともある。したがって、場合によっては、BIOS162は、アドレス衝突を起こすことなくOS208と同じネットワークアドレスを割り当てられることがある。
BMC170は、ビデオのためのVGA(video graphic sarray)などのビデオ部品214を含むことができる。ビデオ部品214は、ビデオ用の特定のハードウェア及び/またはソフトウェアを含むことができる。BMC170はまた、ネットワーク202上でネットワーク接続を確立するための通信インターフェース212を含むことができる。BMC170上の通信インターフェース212は、通信インターフェース212に割り当てられたネットワークアドレスを使用して、BMC170がネットワーク202上で通信できるようにする。通信インターフェース212(あるいはBMC170)に割り当てられたネットワークアドレスは、BIOS162及びOS208に割り当てられたネットワークアドレスとは異なることができる。従って、いくつかの例では、システム150は、BIOS162、OS208及びBMC170に対して異なるネットワークアドレスを有することができる。
システム150は、ビデオ使用に割り当てられたメモリーを含むことができる表示メモリー210を含むことができる。表示メモリー210は、RAMなどのハードウェアメモリー部品、及び/または論理ファイル若しくはディスクなどの仮想メモリーを含むことができる。システム150はまた、プロセッサー160、記憶装置166、BIOS162、BMC170、表示メモリー210、及び他の任意の部品間のデータフローを管理することができるチップセット152を含むことができる。チップセット152は、様々な部品との帯域内接続(in−band connection)を可能にすることができる。
システム150は、OS208によってホストされるリモートKVMサーバアプリケーション224、BIOS162によってホストされるリモートKVMサーバアプリケーション222、及び/またはBMC170によってホストされるリモートKVMサーバアプリケーション226を含むことができる。リモートKVMサーバアプリケーション222−226を使用して、システム204上のリモートKVMコンソールアプリケーション206とのリモートKVMセッションを確立して維持することができる。
BMC170上のリモートKVMサーバアプリケーション226は、BMC170上の通信インタフェース212を使用して、システム204上のリモートKVMコンソールアプリケーション206とのBMC接続220をネットワーク202上で確立することができる。さらに、BIOS162上のリモートKVMサーバアプリケーション224及びOS208上のリモートKVMサーバアプリケーション226は、システム150上の通信インタフェース158を使用して、システム204上のリモートKVMコンソールアプリケーション206とのホスト接続218をネットワーク202上で確立することができる。ホスト接続218及びBMC接続220は、ネットワーク202上で、システム204上のリモートKVMコンソールアプリケーション206とのリモートKVMセッションに使用されることができる。
さらに、ホスト接続218及びBMC接続220は、ネットワーク202上でリモートKVMコンソールアプリケーション206及びシステム204と通信するために、異なるネットワークアドレスを使用することができる。例えば、BMC接続220は、BMC170に割り当てられたネットワークアドレスに基づくことができると共に、ホスト接続218は、OS208及び/またはBIOS162に割り当てられた1つまたは複数の異なるネットワークアドレスに基づくことができる。
リモートKVMサーバアプリケーション222−226は、リモートKVMセッションのフェイルオーバーを提供するために使用されることができる。例えば、リモートKVMコンソールアプリケーション206は、BMC接続220を介してリモートKVMサーバアプリケーション226とのリモートKVMセッションを確立することができる。リモートKVMコンソールアプリケーション206は、BIOS162及び/またはOS208のネットワークアドレスを要求するコマンドを周期的にBMC170に送信することができる。リモートKVMコンソール206アプリケーションは、BMC170からBIOS162及び/またはOS208のネットワークアドレスを周期的に受信することができる。次に、リモートKVMコンソールアプリケーション206は、リモートKVMコンソールアプリケーション206とリモートKVMサーバアプリケーション226の間のBMC接続220上のエラーまたは故障を検出した場合に、BIOS162及び/またはOS208のネットワークアドレスを使用して、ホスト接続218上でリモートKVMセッションを続行するか、または新しいリモートKVMセッションを確立することができる。
リモートKVMコンソール206アプリケーションは、パケット損失、接続劣化、ユーザ入力、リモートKVMサーバアプリケーション226が応答しないという判断、または他の任意の要因などのイベントに基づいて、エラーまたは故障を検出することができる。例えば、リモートKVMコンソールアプリケーション206は、所定期間内にリモートKVMサーバアプリケーション226からの1つまたは複数の応答を受信していない場合、問題を検出することができる。説明するために、前述のように、リモートKVMコンソールアプリケーション206は、BIOS162及び/またはOS208のネットワークアドレスを要求するコマンドを周期的にリモートKVMサーバアプリケーション226に送ることができる。したがって、リモートKVMコンソールアプリケーション206は、一定期間内にリモートKVMサーバアプリケーション226からの応答を受信できない場合、一定期間内のリモートKVMサーバアプリケーション226からの応答が特定回数未満である場合、及び/または応答の遅延が閾値を超える場合に、エラーを検出することができる。
リモートKVMコンソール206が故障を検出すると、リモートKVMコンソールアプリケーション206は、ホスト接続218を介してリモートKVMサーバアプリケーション222または224との接続をトリガーすることができる。したがって、リモートKVMコンソールアプリケーション206は、ホスト接続220上でリモートKVMサーバアプリケーション222または224と接続して、システム150とのリモートKVMセッションを継続または再確立することができる。このようにして、リモートKVMコンソールアプリケーション206は、BMC170、リモートKVMサーバアプリケーション226、通信インターフェース212、及び/またはBMC接続220に問題または故障が発生したとしても、システム150とのリモートKVMセッションを継続または維持することができる。そうでなければ、リモートKVMコンソールアプリケーション206とリモートKVMサーバアプリケーション226の間のリモートKVMセッションが影響されることがある。
ホスト接続218上でリモートKVMサーバアプリケーション222または224とのリモートKVMセッション中、リモートKVMコンソールアプリケーション206は、BMC170及びリモートKVMサーバアプリケーション226のネットワークアドレスを要求するコマンドを周期的にリモートKVMサーバアプリケーション222または224に送ることができる。したがって、リモートKVMコンソールアプリケーション206は、リモートKVMサーバアプリケーション222または224から周期的に応答を受信し、BMC170及びリモートKVMサーバアプリケーション226のネットワークアドレスを識別することができる。リモートKVMコンソールアプリケーション206は、前述したような任意の故障またはエラーを検出するために応答を監視することができる。リモートKVMコンソールアプリケーション206がエラーまたは故障を検出した場合、システム150とのリモートKVMセッションを継続または再確立するために、BMC接続220上でリモートKVMサーバアプリケーション226に再接続することができる。このようにして、リモートKVMコンソールアプリケーション206は、ホスト接続218(例えば、BIOS162、OS208、通信インターフェース158など)に問題が発生しても、システム150とのリモートKVMセッションを維持することができる。
BMC170、BIOS162、及びOS208は、それぞれのネットワークアドレスを互いに交換することができるので、リモートKVMコンソールアプリケーション206から受信した要求またはコマンドに応じて、それぞれが他のネットワークアドレスをリモートKVMコンソールアプリケーション206に提供することができる。例えば、BMC170、BIOS162、及びOS208は、それぞれのネットワークアドレスを帯域内接続によって互いに交換することができる。BMC170がリモートKVMコンソールアプリケーション206からBIOS162及び/またはOS208のネットワークアドレスの要求を受信すると、BMC170は、BIOS162及び/またはOS208から受信した1つまたは複数のネットワークアドレスを帯域内接続を介して応答することができる。
BMC170、BIOS162、及びOS208は、それぞれのリモートKVMサーバアプリケーション222〜226を使用して、それぞれのネットワークアドレスを互いに交換することができる。例えば、各リモートKVMサーバアプリケーション222〜226は、自身のネットワークアドレスを他のリモートKVMサーバアプリケーション222〜226に報告するように構成されることができる。いくつかの例では、BIOS162及びOS208はそれぞれ、BIOS162及びOS208のネットワークアドレスをBMC170に報告し、BMC170からBMCのネットワークアドレスを取得するように設計されたプログラムを含むことができる。これらのプログラムは、独立なプログラムであっても、リモートKVMサーバアプリケーション222及び224に組み込まれていてもよい。さらに、これらのプログラムは、LPC、SMBus、IC、eSPI、PCIeなどの帯域内接続を介して通信することができる。
図3Aは、リモートKVMサービスの例示的なサーバー側プロセス300の概略図である。ステップ302において、サーバシステム150は、BMC170及びBIOS162の電源入れてから開始する。ステップ304において、BMC170は、そのリモートKVMサーバアプリケーション226を起動し、ステップ306において、BIOS162は、自身のリモートKVMサーバアプリケーション222を起動する。
ステップ308において、BIOS162は、自身のネットワークアドレス(例えば、IPアドレス)をBMC170に送信し、BMC170からBMCのネットワークアドレスを取得する。BIOS162は、帯域内接続及びコマンドを介してBMC170と通信することができる。
ステップ310において、BMC170は、BIOS162のネットワークアドレスをリモートシステム204のリモートKVMコンソールアプリケーション206に送信する。BMC170は、リモートKVMコンソールアプリケーション206から受信したコマンドまたは要求に応じて、BIOSのネットワークアドレスを送信することができる。例えば、BMC170は、リモートKVMコンソールアプリケーション206からBIOSのネットワークアドレスを要求するコマンドを受信し、ステップ310で、BIOSのネットワークアドレスを含むメッセージをリモートKVMコンソールアプリケーション206に応答することができる。
場合によっては、ステップ310は、複数回実行されることができる。例えば、BMC170は、BIOS162のネットワークアドレスをリモートKVMコンソールアプリケーション206に周期的に送信することができる。BMC170はまた、周期的にBIOS162のネットワークアドレスをリモートKVMコンソールアプリケーション206に送信することができるBMC170をトリガーすることができる、リモートKVMコンソールアプリケーション206からのコマンドまたは要求を周期的に受信することもできる。
ステップ312において、サーバシステム150は、OS208をブートしてOS208からリモートKVMサーバアプリケーション224を起動することができる。ステップ314において、BMC170及びOS208は、ネットワークアドレスを交換することができる。例えば、OS208は、BMC170のネットワークアドレスを要求し、OS208のネットワークアドレスをBMC170に報告するプログラムを実行することができる。このプログラムは、独立なプログラムであってもよく、OS208によってホストされるリモートKVMサーバアプリケーション224の一部であってもよい。
ステップ316において、BMC170は、OS208のネットワークアドレスをリモートKVMコンソールアプリケーション206に送信することができる。BMC170は、リモートKVMコンソールアプリケーション206からのコマンドまたは要求に応じて、OS208のネットワークアドレスをリモートKVMコンソールアプリケーション206に送信することができる。さらに、BMC170は、異なる時間にOS208のネットワークアドレスを送信することができる。例えば、BMC170は、リモートKVMコンソールアプリケーション206からの要求またはコマンドに応じて、OS208のネットワークアドレスを周期的に送信することができる。
図3Bは、リモートKVMサービスの例示的なクライアント側プロセス350の概略図である。ステップ352において、システム204は、リモートKVMコンソールアプリケーション206を起動することができる。ステップ354において、リモートKVMコンソールアプリケーション206は、リモートKVMセッションを確立するために、BMCのリモートKVMサーバアプリケーション226に接続することができる。リモートKVMコンソールアプリケーション206は、BMC170のネットワークアドレスを使用してBMC接続220を介してリモートKVMサーバアプリケーションと接続することができる。
ステップ355において、リモートKVMコンソールアプリケーション206は、現在のリモートKVMセッションを介してBMCリモートKVMサーバアプリケーション226とのリモートKVM機能を実行することができる。リモートKVM機能とは、リモートKVMコンソールアプリケーション206がBMCリモートKVMサーバアプリケーション226にクエリする、及び/またはセッションの状態(例えば、活動中及び動作中、非活動中など)或いは表示メモリーのデータを確認するために使用されるコマンドであってもよい。
ステップ356において、リモートKVMコンソールアプリケーション206は、BIOS162及び/またはOS208のネットワークアドレスを要求するコマンドをBMC170に送信することができる。リモートKVMコンソールアプリケーション206は、そのコマンドを複数回送信することができる。リモートKVMコンソールアプリケーション206は、例えばそのコマンドを一定の時間間隔またはイベントに基づいて定期的に送信することができる。
ステップ358において、リモートKVMコンソールアプリケーション206は、BMC170からのコマンドに対する応答を受信したかどうかを判断することができる。リモートKVMコンソールアプリケーション206が応答を受信した場合、プロセス350はステップ355に戻り、そこでリモートKVMコンソールアプリケーション206は、リモートKVMサーバアプリケーション226とのリモートKVMセッションを継続することができる。ステップ360において、リモートKVMコンソールアプリケーション206が応答を受信しない場合、リモートKVMコンソールアプリケーション206は、リモートKVMサーバアプリケーション222または224に接続する。リモートKVMコンソールアプリケーション206は、ステップ356でBMC170から受信したネットワークアドレス情報を使用してリモートKVMサーバアプリケーション222または224に接続することができる。
リモートKVMサーバアプリケーション222または224に接続することによって、リモートKVMコンソールアプリケーション206は、ホスト接続218を介してリモートKVMセッションを継続または再確立することができる。したがって、リモートKVMコンソールアプリケーション206が、BMC接続220を介してリモートKVMサーバアプリケーション226に接続して問題を検出した場合、ホスト接続218を介してサーバシステム150とのリモートKVMセッションを継続し、あらゆる中断を制限することができる。
ステップ361において、リモートKVMコンソールアプリケーション206は、現有のリモートKVMセッションを介して、OS/BIOSリモートKVMサーバアプリケーション222または224とのリモートKVM機能を実行することができる。また、リモートKVM機能とは、リモートKVMサーバアプリケーション222及び/または224にクエリする、及び/またはセッションの状態または表示メモリーのデータを確認するためにリモートKVMコンソールアプリケーション206によって使用されるコマンド(例えば、アクティブ及び動作中、非アクティブなど)であっても良い。
ステップ362において、リモートKVMコンソールアプリケーション206は、BMC170のネットワークアドレスを要求するコマンドをOS208及び/またはBIOS162に送信することができる。リモートKVMコンソールアプリケーション206は、例えば一定の時間間隔またはイベントに基づいて定期的にこのコマンドを送信することができる。
ステップ364で、リモートKVMコンソールアプリケーション206は、ステップ361または362からのコマンドに対する応答を受信したかどうかを判断する。リモートKVMコンソールアプリケーション206は、応答を受信したと判断した場合、ステップ361に戻り、リモートKVMサーバアプリケーション222または224に接続したままにする。一方、リモートKVMコンソールアプリケーション206が閾値時間内に応答を受信しなかったと判断した場合、ステップ354に戻り、そこでリモートKVMサーバアプリケーション226に接続して、BMC接続220上でリモートKVMセッションを継続または再確立することができる。
図4は、リモートKVMサービスの例示的な通信フロー400のフェイルオーバーの概略図である。メッセージ402において、BIOS162はまずBIOSネットワークアドレスをBMC170に送信する。メッセージ404において、BMC170はBMCネットワークアドレスをBIOS162に送信する。
メッセージ406において、リモートKVMコンソールアプリケーション206は、BMC170(すなわち、リモートKVMサーバアプリケーション226)とリモートKVM接続を確立する。メッセージ408において、リモートKVMコンソールアプリケーション206は、BIOSネットワークアドレスを要求するコマンドをBMC170に送信する。
メッセージ410において、BMC170は、BIOSネットワークアドレスをリモートKVMコンソールアプリケーション206に送信する。OS208がブートした後、メッセージ412において、OS208はOSネットワークアドレスをBMC170に送信する。メッセージ414において、BMC170は、BMCネットワークアドレスをOS208に送信する。
メッセージ416で、コンソール206は、OSネットワークアドレスを要求するコマンドをBMC170に送信する。メッセージ418において、BMC170は、OSネットワークアドレスをコンソール206に送信する。
メッセージ420において、コンソール206は、別のコマンドをBMC170に送信して、OSネットワークアドレス及び/またはBIOSネットワークアドレスを要求するか、またはリモートKVM機能を実行する。メッセージ422において、BMC170は、OSネットワークアドレスまたはBIOSネットワークアドレスを送信することができず、またはコンソール206へのリモートKVMコマンドに応答することができない。コンソール206は、コマンドを含むメッセージ420に対する応答を受信しなかったと判断し、その後、OS208及びリモートKVMサーバアプリケーション224に接続するためにOS208にメッセージ424を送信することができる。
メッセージ426において、コンソール206は、BMCネットワークアドレスを要求するコマンドをOS208に送信する。メッセージ428において、OS208はBMCネットワークアドレスをコンソール206に送ることができる。
メッセージ430において、コンソール206は、BMCネットワークアドレスを要求する別のコマンドをOS208に送信する。コンソール206がOS208から応答を受信しない場合、コンソール206はBMCネットワークアドレスを使用してBMC170に接続することができる。その後、コンソール206は、定期的にコマンドを送信し続け、応答を待つことができる。コンソール206が1つ以上の応答を受信しない場合、コンソール206は再びOS208またはBIOS162に接続することができる。
図5は、リモートKVMサービスのフェイルオーバーの例示的な方法を示す。ステップ500において、コンソールアプリケーション206は、リモートKVMコンソールアプリケーション206とリモートKVMサーバアプリケーション226の間にリモートKVMセッションを確立する。リモートKVMセッションは、BMC170とクライアント204の間にBMC接続220を介して確立することができる。
ステップ502において、リモートKVMコンソールアプリケーション206は、リモートKVMコンソールアプリケーション206とリモートKVMサーバアプリケーション226の間のリモートKVMセッションに関するエラーを検出することができる。例えば、リモートKVMコンソールアプリケーション206は、1つまたは複数のコマンドをリモートKVMサーバアプリケーション226に送信し、リモートKVMサーバアプリケーション226からの1つまたは複数の応答を待つことができる。1つまたは複数のコマンドは、リモートKVMサーバアプリケーション226にBIOS及び/またはOSネットワークアドレスをリモートKVMコンソールアプリケーション206に送信するようにトリガーする要求を含むことができる。リモートKVMコンソールアプリケーション206が応答を受信しない場合、リモートKVMコンソールアプリケーション206は、エラーが発生したと判断することができる。エラーの判定は、所定期間内に1つまたは複数の応答を受信しないこと、予想より少ない応答を受信すること、または遅延閾値時間を有する応答を受信することなどによってトリガーされ得る。
ステップ504において、エラーに応じて、リモートKVMコンソールアプリケーション206は、リモートKVMコンソールアプリケーション206とリモートKVMサーバアプリケーション222または224の間にリモートKVMセッションを確立することができる。例えば、リモートKVMコンソールアプリケーション206は、リモートKVMサーバアプリケーション226が利用可能でない場合、リモートKVMサーバアプリケーション222または224とリモートKVMセッションを確立することができ、逆も同様である。リモートKVMセッションは、前のリモートKVMセッションの継続または拡張、新しいリモートKVMセッション、またはリモートKVMサーバーアプリケーション226,222または224と再確立された前のリモートKVMセッションとすることができる。
リモートKVMコンソールアプリケーション206は、リモートKVMセッション中に現在接続されているリモートKVMサーバアプリケーション222−226の間で、メッセージを送信し続け、応答を待つことができる。リモートKVMコンソールアプリケーション206が閾値数の応答を受信できなかった場合、リモートKVMセッションを維持または再確立するために別のリモートKVMサーバアプリケーションに接続することができる。
リモートKVMサーバアプリケーション222または224に接続するとき、リモートKVMコンソールアプリケーション206は、リモートKVMサーバアプリケーション226に接続するときとは異なるネットワークアドレス及び/または通信インタフェースに接続することができる。このようにして、リモートKVMコンソールアプリケーション206は、リモートKVMセッションのフェイルオーバー経路及び接続を維持することができる。
サーバ側では、BIOS162、BMC170、及びOS208は、それぞれのネットワークアドレス情報を交換するために帯域内接続を介して通信することができる。例えば、BMC170は、BIOS162及びOS208に接続して、ネットワークアドレス情報を交換することができる。したがって、BMC170は、BIOS162及びOS208のネットワークアドレス情報を維持することができる。BIOS162は、BMC170のネットワークアドレス情報を維持することができる。OS208は、BMC170のネットワークアドレス情報を維持することができる。したがって、BIOS162、BMC170、及びOS208は、お互いのネットワークアドレスをリモートKVMコンソールアプリケーション206に報告することができる。
説明を明確にするために、本発明は、周辺機器部品相互接続エクスプレス装置を用いて説明されている。しかしながら、上記の例による方法及び概念は、他のタイプの装置のハードウェア回復のために実施されることができる。実際に、本明細書で説明する概念は、USB(universal serial bus)装置などの活線挿抜または活線着脱をサポートする任意の装置のホットアドやホットリムーブを含むハードウェア回復に実行されることができる。ここでも、周辺機器部品相互接続エクスプレス装置は、明確さ及び説明の目的のための非限定的な例として本明細書で使用される。
説明を明確にするために、いくつかの例では、本発明は、ソフトウェア、またはハードウェアとソフトウェアの組み合わせで実施される方法において、装置、装置部品、ステップまたはルーチンを含む機能ブロックを含む個々の機能ブロックを含むものとして提示することができる。
いくつかの実施例では、コンピューター可読記憶装置、媒体、及びメモリーは、ビットストリームなどを含む有線または無線信号を含むことができる。しかし、明言するとき、非一時的なコンピューター可読記憶媒体は、エネルギー、搬送波信号、電磁波、及び信号そのものなどの媒体を明示的に排除する。
上述の実施例による方法は、コンピューター可読媒体に格納されるか、または他の方法で利用可能なコンピューター実行可能命令を使用して実行されることができる。そのような命令は、例えば、汎用コンピューター、専用コンピューター、または特殊用途処理装置に特定の機能または機能のグループを実行させる、または構成するような命令及びデータを含むことができる。使用されるコンピューターリソースの一部は、ネットワークを介してアクセス可能である。コンピューター実行可能命令は、例えば、バイナリ、アセンブリ言語、ファームウェア、またはソースコードのような中間フォーマット命令であってもよい。記述された例による方法の期間に作成された命令、情報、及び/または情報を記憶するために使用されるコンピューター可読媒体は、例えば、磁気または光学ディスク、フラッシュメモリー、不揮発性メモリーを備えたUSB装置、ネットワーク記憶装置等であってもよい。
これらの開示による方法を実施する装置は、ハードウェア、ファームウェア及び/またはソフトウェアを含むことができ、様々なフォームファクタのいずれかをとることができる。そのようなフォームファクタの典型的な例には、ラップトップ、スマートフォン、小型フォームファクタのパーソナルコンピューター、パーソナルデジタルアシスタントなどが含まれる。本明細書に記載の機能は、周辺機器またはアドインカードにも実行されることができる。このような機能は、他の例として、異なるチップ間の回路基板上または単一の装置内で実行される異なるプロセス上に実行されることもできる。
その命令、当該命令を伝達するための媒体、それらを実行するための計算リソース、及びそのような計算リソースをサポートするための他の構造は、これらの開示に記載された機能を提供するための手段である。
添付の特許請求の範囲内の態様を説明するために様々な例及び他の情報が使用されたが、当業者がこれらの実施例を使用して多種多様な実施形態を導き出すことができるように、そのような実施例における特定の特徴または構成に基づいて、請求項を限定するものではない。さらに、いくつかの主題は、構造的特徴及び/または方法のステップの例に特定する用語で記述されているが、理解されるべきなのは、添付の特許請求の範囲に定義された主題は必ずしもこれらに記載された特徴または動作に限定されない。例えば、そのような機能は、異なる方法で配布されてもよく、本明細書で特定されたもの以外の部品で実行されてもよい。むしろ、記載された特徴及びステップは、添付の特許請求の範囲内のシステム及び方法の構成要素の例として開示される。
用語「a」または「an」とは、そのものの1つまたは複数を表す。このように、用語「1つの」(または「an」)、「1つ以上の」及び「少なくとも1つの」は、本明細書では交換可能に使用することができる。「少なくとも1つの」、「1つ以上の」、及び「及び/または」という句は、操作において結合的かつ分離的である自由な表現である。例えば、「A、B及びCの少なくとも1つ」、「A、BまたはCの少なくとも1つ」、「A、B、Cのうちの1つ以上」、「A、B、及び/またはC」及び「A、B及び/またはC」は、A単独、B単独、C単独、A及びB一緒、A及びC一緒、B及びC一緒、またはA、B及びCのことである。さらに、セットの「少なくとも1つ」を示す請求項の用語は、セットの1つのメンバーまたはセットの複数のメンバーが請求項を満たすことを示す。例えば、「A、B、及びCの少なくとも1つ」または「A、B、またはCの少なくとも1つ」を意味するクレーム用語は、A単独、B単独、C単独、A及びB、A及びC、B及びC、またはAとBとCということである。
本明細書で使用される「通信する」という用語は、任意のシステム、ハードウェア、ソフトウェア、プロトコル、またはフォーマットを使用して情報またはデータを交換するための光及び/または電気信号を使用する任意の結合、接続または相互作用を表す。
本明細書で使用される「コンピューター可読記憶媒体」、「コンピューター可読媒体」、「コンピューター可読記憶装置」、または「コンピューター可読メモリー装置」という用語は、任意の有形記憶装置を表し、実行のためのプロセッサーのことである。そのような媒体または装置は、非揮発性媒体、揮発性媒体などを含むが、これに限定されない多くの形態を取ることができる。不揮発性媒体は、例えば、NVRAM、SSD、NVMe、磁気ディスクまたは光ディスクなどを含むことができる。揮発性媒体は、例えば、主メモリーのような動的メモリーを含むことができる。
例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、メモリー、磁気テープ、または任意の他の磁気媒体、光磁気媒体、CD−ROM、DVDなどを含むことができる。パンチカード、紙テープ、ホールパターン、RAM、PROM、EPROM、EEPROM、フラッシュEPROM、メモリーカードのような固体媒体、他のメモリーチップまたはカートリッジ、または他の任意の他の物理的媒体コンピューターが読むことができる媒体を含むことができる。コンピューター可読媒体または装置がデータベースとして構成される場合、データベースは、リレーショナル、階層、オブジェクト指向などの任意のタイプのデータベースであってもよいことを理解されたい。したがって、開示された技術は、本発明のソフトウェア実装が格納されている有形の記憶媒体または装置、並びに認識された等価物及び後継の媒体または装置を含むと考えることができる。
100、150、200:システム
102:バス
104、132:メモリー
106:読み出し専用メモリー
108、168:ランダムアクセスメモリー
110:コントローラー
112、166:記憶装置
114:モジュール1
116:モジュール2
118:モジュール3
120:入力装置
122、164:出力装置
124、158、212:通信インターフェース
126:センサー
128:キャッシュメモリー
130、160:プロセッサー
134:BIOS
136:表示装置
152:チップセット
154:ブリッジ
156:使用者インターフェース部品
162:BIOS(ファームウェア)
170:BMC
202:ネットワーク
204:システム
206:リモートKVMコンソール
208:OS
210:表示装置メモリー
214:映像部品
218:ホスト接続
220:BMC接続
222、224、226:リモートKVMサーバアプリケーション
300、350:プロセス
302、304、306、308、310、312、314、316、352、354、355、356、358、360、361、362、364、500、502、504:ステップ
400:通信フロー
402、404、406、408、410、412、414、416、418、420、422、424、426、428:メッセージ
rKVM:リモートKVM

Claims (10)

  1. 計算装置において作動するコンソールアプリケーションとサーバーのコントローラーが実行する第一サーバアプリケーションの間に、第一リモートKVMセッションを確立するステップと、
    前記コンソールアプリケーションと前記第一サーバアプリケーションの間の、前記第一リモートKVMセッション関連のエラーを検出するステップと、
    前記エラーに応じて、前記コンソールアプリケーションと前記サーバー上のOSまたはBIOSが実行する第二サーバアプリケーションの間に、第二リモートKVMセッションを確立するステップと、
    を含み、
    前記第一リモートKVMセッションは、前記計算装置と前記コントローラーの間の第一ネットワーク接続を介して確立され、
    前記第二リモートKVMセッションは、前記計算装置と前記第二サーバアプリケーションの間の第二ネットワーク接続を介して確立されることを特徴とする、リモートKVMセッションに使用する方法。
  2. 前記第一ネットワーク接続は、前記コントローラーに指定される第一ネットワークアドレスに基づいて確立され、且つ前記第二ネットワーク接続は、前記OSまたは前記BIOSに指定される少なくとも1つの第二ネットワークアドレスに基づいて確立されることを特徴とする、請求項1に記載のリモートKVMセッションに使用する方法。
  3. 前記エラーを検出するステップは、
    前記第一リモートKVMセッションの期間に、前記OSもしくは前記BIOSに指定されるネットワークアドレスの要求、またはリモートKVM機能を実行する要求を前記コントローラーへ周期的に送信するステップと、
    前記要求に対する応答が、所定期間内に前記コンソールアプリケーションによって受信されるかを判断するステップと、
    を含むことを特徴とする、請求項1に記載のリモートKVMセッションに使用する方法。
  4. 前記第二サーバアプリケーションから、前記コントローラーのネットワークアドレス要求に対し、または前記リモートKVM機能を実行する要求に対する応答の受信失敗に基づき、第二リモートKVMセッション関連の第二エラーを検出するステップと、
    前記第二エラーに応じて、前記コンソールアプリケーションと前記第一サーバアプリケーションの間の第一リモートKVMセッションを再確立するステップとをさらに含み、
    前記第一リモートKVMセッションは、前記計算装置と前記第一サーバアプリケーションの間の前記第二ネットワーク接続を介して再確立されることを特徴とする、請求項1に記載のリモートKVMセッションに使用する方法。
  5. プロセッサーによって実行されると、前記プロセッサーに以下の動作を実行させる命令が格納された非一時的なコンピューター可読媒体であって、
    前記動作は、
    計算装置において作動するコンソールアプリケーションとサーバーのコントローラーが実行する第一サーバアプリケーションの間に、第一リモートKVMセッションを確立するステップと、
    前記コンソールアプリケーションと前記第一サーバアプリケーションの間の、前記第一リモートKVMセッション関連のエラーを検出するステップと、
    前記エラーに応じて、前記コンソールアプリケーションと前記サーバー上のOSまたはBIOSが実行する第二サーバアプリケーションの間に、第二リモートKVMセッションを確立するステップと、
    を含み、
    そのうち、前記第一リモートKVMセッションは、前記計算装置と前記コントローラーの間の第一ネットワーク接続を介して確立され、
    前記第二リモートKVMセッションは、前記計算装置と前記第二サーバアプリケーションの間の第二ネットワーク接続を介して確立されることを特徴とする、非一時的なコンピューター可読媒体。
  6. 前記エラーを検出するステップは、
    前記第一リモートKVMセッションの期間に、前記OSもしくは前記BIOSに指定されるネットワークアドレスの要求、またはリモートKVM機能を実行する要求を前記コントローラーへ周期的に送信するステップと、
    要求に対する応答が、所定期間内に前記コンソールアプリケーションによって受信されるかを判断するステップと、
    を含むことを特徴とする、請求項5に記載の非一時的なコンピューター可読媒体。
  7. 前記第二ネットワーク接続は、前記OSまたは前記BIOSに指定される第一ネットワークアドレスに基づいて確立され、前記第一ネットワーク接続は、前記コントローラーに指定される第二ネットワークアドレスに基づいて確立されることを特徴とする、請求項5に記載の非一時的なコンピューター可読媒体。
  8. リモートKVMセッションに使用するシステムであって、
    プロセッサーと、
    1つまたは複数のコンピューター可読媒体と、
    コントローラーと、
    を備え、
    前記1つまたは複数のコンピューター可読媒体はOSまたはBIOSを格納し、
    前記コントローラーは、
    前記BIOSから前記BIOS関連の第一ネットワークアドレスを受信し、
    前記コントローラー関連の第二ネットワークアドレスを前記BIOSに送信し、
    リモート装置が実行するコンソールアプリケーションと第一サーバアプリケーションの間に、リモートKVMセッションを確立し、且つ前記リモートKVMセッションは前記リモート装置と前記コントローラーの間のネットワーク接続を介して確立され、
    前記リモートKVMセッションの期間に、前記BIOS関連の前記第一ネットワークアドレスを前記リモート装置に送信し、
    前記コントローラー関連の第二ネットワークアドレスを前記OSに実行させる第二サーバアプリケーションに送信し、
    前記第二サーバアプリケーションから前記OS関連の第三ネットワークアドレスを受信し、
    前記OS関連の前記第三ネットワークアドレスを前記リモート装置の前記コンソールアプリケーションに送信することを特徴とする、リモートKVMセッションに使用するシステム。
  9. 前記コントローラーは、前記BIOSから前記第二ネットワークアドレスを受信し、且つ前記コントローラーと前記BIOSの間の帯域内接続を介して、前記第二ネットワークアドレスを前記BIOSに送信することを特徴とする、請求項8に記載のリモートKVMセッションに使用するシステム。
  10. 前記システムは、前記リモート装置をさらに含み、前記リモート装置はコンピューター可読媒体を有し、前記コンピューター可読媒体は前記コンソールアプリケーションを格納し、前記コンソールアプリケーションは以下の動作を実行させるコンピューター実行可能な命令を格納し、
    前記動作は、
    前記コンソールアプリケーションと前記コントローラーに実行される第一サーバアプリケーションの間にリモートKVMセッションを確立し、且つリモートKVM機能を実行し、
    前記コンソールアプリケーションと前記コントローラーが実行する前記第一サーバアプリケーションの間の、前記リモートKVMセッション関連のエラーを検出し、
    前記エラーに応じて、前記コンソールアプリケーションと前記OSもしくは前記BIOSに実行される第二サーバアプリケーションの間に、第二リモートKVMセッションを確立し、
    前記第二リモートKVMセッションは前記リモート装置と前記第二サーバアプリケーションの間の第二ネットワーク接続を介して確立されることを特徴とする、請求項8に記載のリモートKVMセッションに使用するシステム。
JP2017112905A 2016-06-07 2017-06-07 リモートkvmセッションに使用する方法、記憶装置及びシステム Active JP6383839B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/175,922 US10333772B2 (en) 2016-06-07 2016-06-07 Remote keyboard-video-mouse technologies
US15/175,922 2016-06-07

Publications (2)

Publication Number Publication Date
JP2017220241A true JP2017220241A (ja) 2017-12-14
JP6383839B2 JP6383839B2 (ja) 2018-08-29

Family

ID=58707341

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017112905A Active JP6383839B2 (ja) 2016-06-07 2017-06-07 リモートkvmセッションに使用する方法、記憶装置及びシステム

Country Status (5)

Country Link
US (1) US10333772B2 (ja)
EP (1) EP3255527B1 (ja)
JP (1) JP6383839B2 (ja)
CN (1) CN107479721B (ja)
TW (1) TWI616758B (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180338007A1 (en) * 2017-05-17 2018-11-22 American Megatrends, Inc. System and method for providing extensible communication gateway with session pooling
US10649832B2 (en) * 2017-08-15 2020-05-12 Intel Corporation Technologies for headless server manageability and autonomous logging
CN108134827A (zh) * 2017-12-20 2018-06-08 联想(北京)有限公司 一种远程控制方法及电子设备
US20230171343A1 (en) * 2018-01-31 2023-06-01 Illinois Tool Works Inc. Systems and methods to provide remote support services to a testing device
CN108763138A (zh) * 2018-04-03 2018-11-06 郑州云海信息技术有限公司 一种通过单串口访问多系统的方法及系统
TWI679579B (zh) * 2018-08-17 2019-12-11 英業達股份有限公司 遠端登錄伺服器子系統方法與遠端登錄系統
CN109240862A (zh) * 2018-08-23 2019-01-18 郑州云海信息技术有限公司 一种带外管理测试bmc稳定性的方法
CN109862109B (zh) * 2019-03-06 2022-04-12 广州市高科通信技术股份有限公司 基于互联网的移动终端的控制方法、电子设备及存储介质
TWI709037B (zh) * 2019-05-23 2020-11-01 神雲科技股份有限公司 基本輸入輸出系統設置方法
CN112015690A (zh) * 2019-05-29 2020-12-01 中兴通讯股份有限公司 智能设备管理方法、装置、网络设备和可读存储介质
CN110865958B (zh) * 2019-11-19 2021-05-18 北京计算机技术及应用研究所 一种基于lrm的综合交换管理模块的设计方法
US11099838B1 (en) * 2020-02-26 2021-08-24 Quanta Computer Inc. Method and system for recovery for custom integrated circuit
CN111459863B (zh) * 2020-03-08 2021-09-28 苏州浪潮智能科技有限公司 一种基于nvme-mi的机箱管理系统及方法
US11126518B1 (en) * 2020-03-16 2021-09-21 Quanta Computer Inc. Method and system for optimal boot path for a network device
US11132471B1 (en) * 2020-08-21 2021-09-28 Waleed A. Elmandouh Methods and apparatus for secure access
CN113655900A (zh) * 2021-08-20 2021-11-16 合肥移瑞通信技术有限公司 计算机的操作设备及系统
TWI803213B (zh) * 2022-02-25 2023-05-21 研華股份有限公司 基於智慧型基板管理控制器的網路連線方法
US20230289194A1 (en) * 2022-03-14 2023-09-14 Sony Interactive Entertainment Inc. Sled level boot management control of compute nodes for context switching using boot controllers

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073637A1 (en) * 2002-10-15 2004-04-15 Larson Thane M. Server with LAN switch that connects ports based on boot progress information
JP2004280636A (ja) * 2003-03-18 2004-10-07 Internatl Business Mach Corp <Ibm> ユーザインターフェース非装備の通信接続型情報処理装置を含む情報処理システムおよびその制御方法
US20060259612A1 (en) * 2005-05-12 2006-11-16 De Oliveira Henrique G Smart switch management module system and method
JP2009163344A (ja) * 2007-12-28 2009-07-23 Fujitsu Component Ltd Kvmスイッチ及び遠隔システム
JP2013140471A (ja) * 2012-01-04 2013-07-18 Nec Corp 情報保存システム、情報保存装置、及び、情報保存方法
JP2016096549A (ja) * 2014-11-14 2016-05-26 フィッシャー−ローズマウント システムズ,インコーポレイテッド プロセス制御システムに冗長性を提供するための方法および装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080313319A1 (en) * 2007-06-18 2008-12-18 Avocent Huntsville Corporation System and method for providing multi-protocol access to remote computers
US20090055157A1 (en) 2007-08-23 2009-02-26 Beyond Blades Ltd. Server Having Remotely Manageable Emulated Functions
US7783794B2 (en) 2007-11-27 2010-08-24 Aten International Co., Ltd. Remote USB access method
CN101453356B (zh) * 2007-12-03 2017-05-24 联想(北京)有限公司 一种计算机切换器及其与多台服务器匹配的方法
US7792914B2 (en) * 2008-01-14 2010-09-07 Aten International Co., Ltd. Server with network-based remote access and server management functions using reduced number of network connections
CN101227329B (zh) * 2008-02-18 2011-04-06 华为技术有限公司 网络设备管理的方法、装置及系统
US8416935B2 (en) * 2008-09-09 2013-04-09 Citrix Systems, Inc. Methods and systems for calling conference participants to establish a conference call
TWI463327B (zh) 2010-11-01 2014-12-01 Aten Int Co Ltd 遠端管理裝置及遠端管理系統
US8869307B2 (en) * 2010-11-19 2014-10-21 Mobile Iron, Inc. Mobile posture-based policy, remediation and access control for enterprise resources

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073637A1 (en) * 2002-10-15 2004-04-15 Larson Thane M. Server with LAN switch that connects ports based on boot progress information
JP2004280636A (ja) * 2003-03-18 2004-10-07 Internatl Business Mach Corp <Ibm> ユーザインターフェース非装備の通信接続型情報処理装置を含む情報処理システムおよびその制御方法
US20060259612A1 (en) * 2005-05-12 2006-11-16 De Oliveira Henrique G Smart switch management module system and method
JP2009163344A (ja) * 2007-12-28 2009-07-23 Fujitsu Component Ltd Kvmスイッチ及び遠隔システム
JP2013140471A (ja) * 2012-01-04 2013-07-18 Nec Corp 情報保存システム、情報保存装置、及び、情報保存方法
JP2016096549A (ja) * 2014-11-14 2016-05-26 フィッシャー−ローズマウント システムズ,インコーポレイテッド プロセス制御システムに冗長性を提供するための方法および装置

Also Published As

Publication number Publication date
US10333772B2 (en) 2019-06-25
EP3255527B1 (en) 2019-02-20
TW201743222A (zh) 2017-12-16
TWI616758B (zh) 2018-03-01
CN107479721A (zh) 2017-12-15
EP3255527A1 (en) 2017-12-13
JP6383839B2 (ja) 2018-08-29
CN107479721B (zh) 2020-12-29
US20170353347A1 (en) 2017-12-07

Similar Documents

Publication Publication Date Title
JP6383839B2 (ja) リモートkvmセッションに使用する方法、記憶装置及びシステム
TWI684859B (zh) 遠端系統復原之方法
JP6453373B2 (ja) スケーラブルプールNVMeストレージボックス(a scalable pooled nvme storage box)
JP7084528B2 (ja) 管理装置及びその動作方法
TWI610167B (zh) 改善平台管理的計算裝置建置方法、保持電腦可執行指令之非暫存媒體及配置為提供強化管理資訊之計算裝置
JP7028590B2 (ja) セルフ構成するbmc及びその動作方法
US9965367B2 (en) Automatic hardware recovery system
US9182998B2 (en) Remote bios update in system having multiple computers
US10936295B2 (en) Software update system
US10728086B2 (en) System and method for providing a redundant communication path between a server rack controller and one or more server controllers
US9712382B2 (en) Retrieving console messages after device failure
US9197504B2 (en) Enhanced remote presence
TWI739127B (zh) 提供系統資料之方法、系統及伺服器
US8880747B2 (en) Endpoint device discovery system
JP6864718B2 (ja) ハイブリッド電源のシステム及び方法
US9092404B2 (en) System and method to remotely recover from a system halt during system initialization
CN112912848A (zh) 一种丛集作业过程中的电源请求管理方法
WO2024131133A1 (zh) 电子设备数据处理方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180723

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180731

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180806

R150 Certificate of patent or registration of utility model

Ref document number: 6383839

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250