JP2021506037A - ネットワークカード、時刻同期方法および装置、並びにコンピュータ記憶媒体 - Google Patents

ネットワークカード、時刻同期方法および装置、並びにコンピュータ記憶媒体 Download PDF

Info

Publication number
JP2021506037A
JP2021506037A JP2020547281A JP2020547281A JP2021506037A JP 2021506037 A JP2021506037 A JP 2021506037A JP 2020547281 A JP2020547281 A JP 2020547281A JP 2020547281 A JP2020547281 A JP 2020547281A JP 2021506037 A JP2021506037 A JP 2021506037A
Authority
JP
Japan
Prior art keywords
time
host
information
synchronized
network card
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
Application number
JP2020547281A
Other languages
English (en)
Inventor
崔向武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Publication of JP2021506037A publication Critical patent/JP2021506037A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0667Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/033Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/033Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
    • H04L7/0331Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop with a digital phase-locked loop [PLL] processing binary samples, e.g. add/subtract logic for correction of receiver clock

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Electric Clocks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本願では、ネットワークカード、時刻同期方法および装置、並びにコンピュータ記憶媒体を開示する。前記ネットワークカードは、クロックパルス信号を生成するための水晶発振器と、クロックパルス信号に応じて、ネットワークカードにローカルクロック源を提供するための位相ロックループと、ホストと相互接続されるコネクタと、を含み、前記ネットワークカードは、同期した時刻情報を共有チャネルを介して、前記ホスト上で動作されるN個(N≧2)の仮想マシンVMにおける各VMに送信する。

Description

本願は時刻同期分野に関するものであるが、これに限定されない。
仮想マシン(VM,Virtual Machine)とは、完全なハードウェアシステム機能を有する、完全な隔離環境で動作する完全なコンピュータシステムをソフトウェアシミュレーションによって実現するものをいう。
VMにおけるクロック割り込みはシミュレートされたものであり、精確な時刻での発行が保証されず、現在のVMシステムの時刻同期はネットワーク時刻同期プロトコル(NTP,Network Time Protocol)送信方式を用いて実現するのが主流であり、時刻の伝達精度が低い。
本願の実施例は、水晶発振器、位相ロックループ、コネクタを含むネットワークカードを提供する。水晶発振器および位相ロックループは、ネットワークカードにローカルクロック源を提供する。水晶発振器と位相ロックループとの間で信号相互接続が行われ、水晶発振器は、生成されたクロックパルス信号を位相ロックループに出力し、位相ロックループは、クロックパルス信号に基づいてローカルクロック源を生成してネットワークカードに提供する。コネクタは、ホスト(例えば、1台の物理サーバ)スロットおよびホスト本体と相互接続される。ネットワークカードは、同期した時刻情報を共有チャネルを介して、ホスト上で動作する複数のVMのそれぞれに送信する。複数のVMはホスト上で動作し、ホストからフィードバックされる同期した時刻情報によりそれぞれの時刻同期修正を行う。共有チャネルはソフトウェア共有方式によって実現される。共有チャネルをソフトウェア共有方式で実現する場合、ホストと各VMを連通する共有メモリチャネルを介して、同期した時刻情報を各VMに送信するが、ネットワークカードハードウェア自体は変化しない。一方、共有チャネルはハードウェア共有方式で実現することもでき、共有チャネルをハードウェア共有方式で実現する場合には、ネットワークカードに新たに追加されるプログラマブルロジックデバイス内の複数のプロセッサ(例えば、メッセージ送受信処理部、時刻メンテナンス処理部、時刻調整処理部、時刻同期処理部)により処理し、時刻更新情報を、同期した時刻情報として各VMに送信することで、ネットワークカードハードウェア自体が変化する。ホストと各VMの共有チャネルはネットワークカードハードウェアによって共有され、各VMに同期した時刻情報を送信する。
本願の実施例は、複数のVMが動作するホストに適用される時刻同期方法であって、ホストが、同期した時刻情報を共有チャネルを介して各VMに送信することで、各VMが、ホストからフィードバックされる同期した時刻情報によりそれぞれの時刻同期修正を行う時刻同期方法を提供する。
本願の実施例は、複数のVMが動作するホスト上の各VMに適用される時刻同期方法を提供する。前記方法は、ホストが共有チャネルを介して各VMに送信する同期した時刻情報を受信するステップと、ホストからフィードバックされる同期した時刻情報に基づいて各VMにおけるローカルシステム時刻を修正するステップと、を含む。
本願の実施例は、複数のVMが動作するホストに適用される時刻同期装置を提供し、前記装置は、同期した時刻情報を共有チャネルを介して各VMに送信するように構成された同期ユニットを含み、各VMが、ホストからフィードバックされる同期した時刻情報に基づいてそれぞれの時刻同期修正を行う。
本願の実施例は、複数のVMが動作するホスト上の各VMに適用される時刻同期装置を提供する。前記装置は、ホストが共有チャネルを介して各VMに送信する同期した時刻情報を受信するように構成される受信ユニットと、前記同期した時刻情報に基づいて各VMにおけるローカルシステム時刻を修正するように構成される修正ユニットと、を含む。
本願の実施例は、コンピュータプログラムが記憶されるメモリと、前記コンピュータプログラムを実行し、本願の時刻同期方法を実現するように構成されるプロセッサと、を備える時刻同期装置を提供する。
本願の実施例は、コンピュータプログラムが記憶され、前記コンピュータプログラムがプロセッサによって実行されるときに、前記プロセッサが本願の時刻同期方法を実現するコンピュータ記憶媒体を提供する。
図面は、本明細書で論じられる各実施例を、限定ではなく例として概略的に示す。
VMにおけるNTP時刻同期方法の概念図である。 本願の実施例の応用場面のアーキテクチャ図である。 本願の実施例によるネットワークカードの概念図である。 本願の実施例によるネットワークカードのもう1つの概念図である。 本願の実施例によるネットワークカード拡張の概念図である。 本願の実施例によるスマートネットワークカードの概念図である。 本願の実施例による時刻同期方法のフロー図である。 本願の実施例による時刻同期方法のもう1つのフロー図である。 本願の実施例による時刻同期装置の構成モジュールの概念図である。 本願の実施例による時刻同期装置の構成モジュールのもう1つの概念図である。 本願の実施例による時刻同期装置のハードウェア構造概念図である。 本願の実施例の共有メモリ技術案に適用されるシステム構造概念図である。 本願の実施例のシングルルート入力/出力仮想化(SR-IOV,Single Root I/O Virtualization)技術案に適用されるシステムアーキテクチャ概念図である。 本願の実施例のSR−IOV技術案に適用される、精密時刻同期プロトコル(PTP,Precision Time Protocol)で時刻同期を行う加速カードの内部機能モジュール概念図である。 本願の実施例に適用される加速カードとPTPサーバを同期するフロー図である。 本願の実施例に適用される加速カードの内部時刻を更新するフロー図である。 本願の実施例に適用されるVMシステムの時刻調整のフロー図である。
以下では図面および実施例を組み合わせて、本願について更に詳細に説明する。ここに提供する実施例は、本願を説明するためのものにすぎず、本願を限定するためのものではないと理解されたい。また、以下に提供する実施例は、本願を実施するための実施例の一部であり、本願の実施例の全てを提供するのではない。矛盾しない限り、本願の実施例に記載された技術案は、任意に組み合わせて実施することができる。
本出願の実施例において、用語「含む」、「含有する」またはその任意のほかの変形は、非排他的な含有を網羅するということを意味し、これにより一連の要素を含む方法または装置には、明記された要素を含むだけでなく、明確に列挙されていないその他の要素、もしくは、実施方法、または装置固有の要素をさらに含むということを意味する。より多くの制限がない場合、「……を含む」という語句によって限定される要素は、その要素を含む方法または装置に、別途の関連要素(例えば、方法におけるステップまたは装置におけるユニットであり、ユニットは、回路の一部、プロセッサの一部、プログラムまたはソフトウェアの一部などであり得る)がさらに存在することを排除するものではない。
例えば、本願の実施例が提供する時刻同期方法は一連のステップを含むが、本願の実施例が提供する時刻同期方法は記載されたステップに限定されず、同様に、本願の実施例が提供するネットワークカードおよび時刻同期装置は一連の部品およびユニットを含むが、本願の実施例が提供するネットワークカードおよび時刻同期装置は、明記された部品およびユニットを含むことに限定されず、関連情報を取得するために、または、情報に基づいて処理を行うために必要なユニットを含んでもよい。
なお、本願の実施例に係る「第1」、「第2」などの用語は、類似する対象を区別するためにのみ使用され、対象の特定順序を表すものではない。なお、「第1」、「第2」などにより区別される対象は必要に応じて入れ替え可能であり、ここでの図示または説明の順序以外の順序で、ここで説明する本願の実施例を実施することも可能であると理解されたい。
図1は、VMにおいてNTPで時刻同期を行う方法の概念図である。図1では、VMソフトウェアにより、物理サーバ11上に1つまたは複数の仮想コンピュータをシミュレートすることができ、すなわち、物理サーバ11上で複数のVMが動作することにより、VMを実際のコンピュータのように動作させ、例えば、VMにオペレーティングシステムおよびアプリケーションプログラムをインストールすること、VMを通じてネットワークリソースにアクセスすることなどである。物理サーバ11とNTPサーバ12との間はNTPを用いてメッセージのインタラクションが行われる。NTPは、コンピュータの時刻を同期させるためのプロトコルであり、コンピュータに、そのサーバまたはクロック源(例えば、クォーツ時計、GPSなど)を同期させることで、時刻の修正を提供する。複数のVMを動作する物理サーバは、シンクホストまたは物理ホストと呼ばれることもある。
VMにおけるクロック割り込みはシミュレートされており、精確なタイミングでの発行が保証できず、遅延が生じる可能性がある。クロック割り込み処理は「プリエンプティブ」ではなく、VMシステムの実行中にのみ実行可能である。これにより、VMにおけるシステム時刻は、物理マシンのクロック源精度とソフトウェアスケジューリングとの両方の影響を受ける。現在、VMシステムの時刻同期は、NTP伝送方式で実現される。このプロトコルはマイクロ秒(ms)レベルの時刻伝達精度しか満たすことができず、時刻伝達精度が低い。
本願の実施例によるネットワークカード(ホストスロット内に配置可能なネットワークカード)は、同期した時刻情報を、共有チャネルを介して、ホスト上で動作するN個(N≧2)のVMのそれぞれに送信することにより、時刻伝達の精度が低いという問題を解決することができる。ホストは物理サーバであってよく、ネットワークカードはサーバスロット内、例えば、高速シリアルコンピュータ拡張バス標準(PCIE,Peripheral Component Interconnect Express)スロット内に配置することができる。PCIEは、高速シリアルポイントツーポイントデュアルチャネル高帯域幅伝送に属し、接続されたデバイスは、個別チャネル帯域幅が割り当てられており、バス帯域幅を共有しておらず、主に、アクティブ電源管理、エラー報告、エンドツーエンドの信頼性伝送、ホットプラグ、およびサービス品質などの機能をサポートしている。
図2は、本願の実施例の応用場面のアーキテクチャ図である。
図2に示すように、ホストは物理サーバ102であり、ホストオペレーティングシステムが実行される。物理サーバ102とPTPサーバ101はPTPを用いてメッセージのインタラクションを行う。NTPプロトコルを用いた伝送方式で実現される時刻同期は、マイクロ秒(ms)レベルの時刻伝達精度しか満たすことができず、高精度な時刻同期に必要なナノ秒(ns)レベルの時刻精度にははるかに及ばない。IEEE1588 V2プロトコルを用いたクロックは、高精度なクロックであり、例えば双方向チャネルを用いること、精度がnsレベルであること、低コストであること、様々なアクセス環境に対応できることなどの利点がある。5Gの場面に関していえば、低遅延高信頼業務は、5G細分割アプリケーションの1つであり、自動運転、産業制御などの新しい業務傾向の全てにおいて考慮され、これらの業務傾向は、いずれも遅延の要求が高く、将来のネットワークインフラストラクチャが汎用サーバに徐々に置き換えられるとき、VMまたはコンテナに業務を配備することができる。そのため、VMではIEEE1588 V2プロトコルを用いて高精度な時刻同期を実現することが特に必要となる。本願の実施例では、IEEE1588 V2プロトコルを採用し、IEEE1588 V2クロックに基づいて物理サーバ102とPTPサーバ101とから構成されるシステムを、マスタスレーブ同期システムとすることができる。システムの同期過程において、マスタクロックは、PTPプロトコルおよび時刻情報を定期的に発行して、スレーブクロックポートは、マスタクロックポートから送信されたタイムスタンプ情報を受信し、システムはこれに基づいてマスタスレーブ回線時刻遅延およびマスタスレーブ時刻差を計算し、スレーブ装置時刻がマスタ装置時刻と一致する周波数および位相を維持するように、その時刻差を用いてローカル時刻を調整する。
PTPプロトコルは、ハードウェアとソフトウェアとを連携させるという方式を用いて、より精確な時刻同期を取得する。クロックポートハードウェアデバイス(例えば、ネットワークカード)は、PTP同期メッセージにタイムスタンプ情報を付加することをサポートする必要がある。SR−IOV技術は、ハードウェアに基づく仮想化ソリューションであり、性能およびスケーラビリティを向上させることができる。SR−IOV基準は、PCIEのように、VMクライアントマシン間で高速周辺機器の相互接続を効率的に共有できることを許可し、また、これはハードウェアで実現され、非常に高いI/O性能を取得できる。SR−IOVネットワークデバイスは、仮想機能(VF,Virtual Function)モジュールを定義しており、各VFモジュールは個別のネットワークカードとして使用でき、これらのVF機能は、一般的にPCIE透過伝送技術によってVMクライアントに組み込まれる。標準ネットワークカード設計において、時刻同期機能はVFモジュールではサポートされず、単一の物理的機能(PF,Physical Function)モジュールでしか使用できない。しかし、PFモジュールの数は限られているため、PTP方式を用いて時刻を同期できるVMモジュールはごくわずかであることから、VMにおける時刻同期の精度は高くなくなる。
PTPプロトコルは、イーサネット(登録商標)により各装置のクロックを同期させ、より高い同期精度を達成できる。物理サーバ102では、複数のVMが動作し、図2では複数のVM 1031〜1034が開示されている。各VMは仮想化されたコンピュータであるが、実際のコンピュータと同じように動作でき、例えば、オペレーティングシステムのインストール、アプリケーションのインストール、ネットワークリソースへのアクセスなどができる。物理サーバ102には、スロット(例えば、PCIEスロット)内に位置するネットワークカードが配設され、物理サーバ102とPTPサーバ101との間で送受信されるPTPメッセージを識別し、更新された時刻同期情報を各VMに送信することで、複数のVM間で時刻同期更新を実現し、精度を高めることに用いられる。
上記の本願の実施例に対する説明に基づいて、次に、本願の実施例が提供するネットワークカード、時刻同期方法、および装置などに対して以下の通り説明する。
本願の実施例のネットワークカードは、クロックパルス信号を生成するように構成される水晶発振器と、クロックパルス信号に応じて、ネットワークカードにローカルクロック源を提供するように構成される位相ロックループと、ホストと相互接続されるコネクタと、を含む。前記ネットワークカードは、同期した時刻情報を共有チャネルを介して、ホスト上で動作するN個(N≧2)のVMにおける各VMに送信するように構成された、例えばフィールドプログラマブルゲートアレイ(FPGA,Field-Programmable Gate Array)などのプログラマブルロジックデバイスをさらに含むことができる。
なお、共有チャネルがソフトウェア共有方式で実現される場合、ホストと各VMを連通する共有メモリチャネルを介して同期した時刻情報を各VMに送信することができ、ネットワークカードのハードウェア自体は変化しない。共有チャネルがハードウェア共有方式によって実現される場合、ネットワークカードに新たに追加されたプログラマブルロジックデバイス内の複数のプロセッサ(例えば、メッセージ送受信処理部、時刻メンテナンス処理部、時刻調整処理部、時刻同期処理部)で処理を行い、時刻更新情報を同期した時刻情報として各VMに送信する。
共有チャネルをハードウェア共有方式で実現する場合、ネットワークカードの概念図は図3に示す通りである。このネットワークカードは、水晶発振器21、位相ロックリング22、コネクタ23を備える。水晶発振器21および位相ロックループ22は、ネットワークカードにローカルクロック源を提供する。水晶発振器21と位相ロックループ22との間は信号接続され、水晶発振器21は生成したクロックパルス信号を位相ロックループ22に出力し、位相ロックループ22はクロックパルス信号に基づいてローカルクロック源を生成してネットワークカードに提供する。コネクタ23は、ホスト(例えば、図2の物理サーバ)スロットおよびホストボディに相互接続される。ネットワークカードは、ネットワークカードハードウェアを介してホストと各VMとの間で共有チャネルを共有して、同期した時刻情報を各VMに送信するように構成されたプログラマブルロジックデバイス24をさらに含む。ネットワークカードハードウェアの変更について、図6を参照して具体的に説明する。複数のVMはホスト上で動作し、ホストからフィードバックされる同期した時刻情報によりそれぞれの時刻同期修正を行う。
ネットワークカードの実施例は図4に示す通りであり、上記のコンポーネントを含むほか、ネットワークカードはさらに、バスI2Cを介して帯域外管理機能を提供するように構成された帯域外管理回路を含むことができる。FPGAには、FPGAに基づくプログラミングを実行して得られた指令、例えば、同期した時刻情報を、ホスト上で動作する複数のVMにおける各VMに送信するという指令を格納するように構成されたメモリコントローラが含まれる。また、指令はさらに、例えば、PTPメッセージ処理、時刻情報のメンテナンス、時刻同期、時間計測幅調整などのハードウェア補助機能を実現して、ホスト側ソフトウェアと連携し、仮想マシンでの時刻同期を完成させることもできる。物理(PHY)デバイスは、RJ45電気ポートおよびSFP光ポートをパネルに引き出すように構成される。JTAGデバッグインターフェイスは、デバッグと最初にバージョンをロードする時に使用されるように構成される。フラッシュメモリ(Flash)ストレージおよびメモリは、ネットワークカードファームウェアのバージョンをFlashストレージに格納するというような、指令またはデータを格納するために用いられる。ドーターカード電源は、ネットワークカードに電力を供給するネットワークカード電源モジュールである。
ネットワークカードの実施例において、ネットワークカードは、クロックパルス信号を生成するための水晶発振器と、クロックパルス信号に応じて、ネットワークカードにローカルクロック源を提供するための位相ロックループと、ホストと相互接続されるコネクタと、を備える。ネットワークカードはさらに、サーバとの時刻同期を行うことにより、前記同期した時刻情報を得て、前記同期した時刻情報を共有メモリチャネル(例えば、ホストと各VMを連通する共有メモリチャネル)を介して各VMに送信するように構成された、プログラマブルロジックデバイスを含む。図5はネットワークカードの概念図あり、従来のネットワークカードを拡張し、従来のネットワークカードにおいて時刻共有チャネル241を開いて、同期した時刻情報を時刻共有チャネル241を介して各VMに送信し、すなわち、メモリを共有するという方式で、同期した時刻情報を各VMに送信することを実現する。
ネットワークカードの実施例において、ネットワークカードは、クロックパルス信号を生成するための水晶発振器と、クロックパルス信号に応じて、ネットワークカードにローカルクロック源を提供するための位相ロックループと、ホストと相互接続されるコネクタと、を備える。ネットワークカードはさらに、ホストとサーバとの間の送受信インタラクションにより得られるPTPメッセージに基づいて時間計測幅を取得し、前記時間計測幅に基づいて時刻更新情報を取得し、前記時刻更新情報を前記同期した時刻情報として各VMに送信するように構成されるプログラマブルロジックコントローラを備える。本願の実施例によれば、プログラマブルロジックデバイスは、前記ホストとサーバとの間の送受信インタラクションによって得られるPTPメッセージを認識するメッセージ送受信処理部と、ネットワークカードのローカル時刻をメンテナンスするように構成される時刻メンテナンス処理部と、前記PTPメッセージに基づいて時刻同期を行うことで、調整後の時間計測幅を取得するように構成される時刻調整処理部と、前記時間計測幅に応じて、前記メンテナンスされるネットワークカードのローカル時刻をリアルタイムで更新して時刻更新情報を得るように構成される時刻同期処理部と、を備えてよいため、前記時刻更新情報を、前記同期した時刻情報として各VMに送信することができる。図6はネットワークカードの概念図あり、新たなスマートネットワークカードとして、FPGAの中にメッセージ送受信処理部243、時刻メンテナンス処理部244、時刻調整処理部245、時刻同期処理部246が新たに追加され、上記のロジック処理機能ブロックを介して、同期した時刻情報をSR−IOVハードウェア仮想化という方式で各VMに送信することを実現する。
現在のサーバ上の標準ネットワークカードに対して、IEEE1588 V2時刻同期は単一のPFモジュールでしかサポートされず、VMではIEEE1588 V2同期を用いて高精度を実現することはできないという課題があるが、本願の上記実施例によれば、ホストと当該ホスト上に配備される各VM間でネットワークカード時刻を共有し、標準ネットワークカードの時刻同期サポートに対する限界性を解決しており、メモリを共有するという方式またはSR−IOVハードウェア仮想化という方式(SR−IOV方式に基づくハードウェアアシストの実装方法)を採用し、同期した時刻情報を、VFモジュール形式で複数のVMと共有する。当該ホスト内に配備されたネットワークカードに基づいて、VMとPTP時刻サーバ間の同期を実現し、占有する仮想マシン資源は少なく、複数のVMがIEEE1588 V2プロトコルを介して高精度な時刻同期を行えるようにし、精度は大幅に向上し、ナノ秒またはナノ秒以上の精度レベル(例えば、ピコ秒レベル)に達することができる。時刻精度は、各ユーザが必要とする時間の度量に基づく分類であり、計測に用いられる方法の一種である。時刻精度は、ナノ秒、ピコ秒、マイクロ秒、ミリ秒、秒、分、時間などに分類され、ナノ秒よりも高精度のレベルの精度は、ピコ秒レベルであってよく、1000ピコ秒は1ナノ秒に等しい。
ここで、ネットワークカードは、後続の実施例で説明するように、時刻同期加速カードとも呼ばれ、略称は加速カードという。
ネットワークカードには、複数の機能パーテーションを含んでよく、すなわち、1つのPFモジュールと複数のVFモジュールであり、時刻情報は各機能パーテーションに格納され、各計時周期毎に全てのPFモジュールとVFモジュールにおける時刻情報が更新され、VMは某VFモジュールにおける時刻情報に直接アクセスできる。ネットワークカードのハードウェア形態は制限されず、独立したPTP時刻同期機能の加速カードを採用することができ、標準ネットワークカードに加えてPTPクロック同期機能を拡張してもよく、PTPクロック同期機能をスマートネットワークカードに含めることもできる。
本願の実施例において、メッセージ送受信処理部はさらに、前記PTPメッセージにタイムスタンプを追加するか、或いは、タイムスタンプを抽出するように構成される。時刻調整処理部はさらに、周期時間ごとに、ホストが定期的にサーバと前記PTPメッセージをインタラクションする際に存在する時刻ずれを収集し、前記時刻ずれに基づいて調整後の時間計測幅を取得するように構成される。時刻同期に要する同期目標精度および/またはシステム負荷状況に応じて前記周期時間を選択することができる。
本願の実施例において、時刻調整処理部はさらに、ローカル計時周期に達し、時刻同期更新をトリガーした後、前記時刻ずれに応じて調整後の時間計測幅を取得するように構成される。ローカル計時周期は、時刻同期に必要な同期目標精度よりも小さく、ナノ秒レベルまたはそれ以上の精度に設定することができる。
本願の実施例において、時刻メンテナンス処理部はさらに、前記ローカルクロック源に応じて前記ネットワークカードのローカル時刻を保持するように構成される。
本願の実施例は、図7に示されるように、N個(N≧2)のVMが動作するホストに適用される時刻同期方法を提供する。前記方法は、ステップ201〜202を含む。
ステップ201では、ホストがサーバと時刻同期を行うことで、同期した時刻情報を得る。
ステップ202では、ホストが同期した時刻情報を共有チャネルを介して各VMに送信する。
前記同期した時刻情報を用いることにより達成される精度は、ナノ秒級またはナノ秒級以上のより高い精度レベル(例えば、ピコ秒)である。
ホストは、各VMが定期的にトリガーする取得要求に応答して、共有チャネルを介して同期した時刻情報を各VMに送信することができる。
本願の実施例において、ステップ202は、各VMが定期的にトリガーする取得要求に応答して、ホストと各VMを連通する共有メモリチャネルを介して前記同期した時刻情報を各VMに送信することを含んでよい。
本願の実施形態において、ホスト上で動作するN個(N≧2)のVMの各VMにおいて、各VMは、ホストに対して取得要求を定期的に送信し、ホストが共有チャネルを介して各VMに送信する同期した時刻情報を受信し、同期した時刻情報に基づいて各VMにおけるローカルシステム時刻を修正する。前記同期した時刻情報は、ホストがサーバと時刻同期を行うことにより取得できる。
本願の実施例において、ホストが各VMに送信する同期した時刻情報を受信するステップは、ホストと各VMを連通する共有メモリチャネルを介して前記同期した時刻情報を得るステップを含む。
本願の実施例は、図8に示されるように、N個(N≧2)のVMが動作するホストに適用される時刻同期方法を提供する。前記方法は、ステップ301〜302を含む。
ステップ301では、ホストがサーバと時刻同期を行うことで、調整後の時間計測幅を得る。
ホストがサーバと時刻同期を行うことで、タイムスタンプが含まれるPTPメッセージを取得し、PTPメッセージからタイムスタンプを抽出し、タイムスタンプに基づいてホストとサーバとの間に存在する時刻ずれを取得し、時刻ずれに基づいて調整後の時間計測幅を取得することができる。
ステップ302では、時間計測幅に基づいて、ホストがローカルでメンテナンスする時刻をリアルタイムで更新し、同期した時刻情報を取得して、各VMに同期した時刻情報を送信する。
各VMが定期的にトリガーする取得要求に応答して、時間計測幅に応じてホストがローカルでメンテナンスする時刻をリアルタイムで更新することで、時刻更新情報を取得し、時刻更新情報を同期した時刻情報として各VMに送信することができる。
前記同期した時刻情報を用いることにより達成される精度は、ナノ秒級またはナノ秒級以上のより高い精度レベル(例えば、ピコ秒)である。
本願の実施例において、各VMは定期的にホストへ取得要求を送信し、ホストがサーバと時刻同期を行った後に調整後の時間計測幅が得られ、ホストがサーバと時刻同期して取得した時刻ずれに基づいて前記時間計測幅が得られる。ホストが各VMに送信する同期した時刻情報を受信し、同期した時刻情報に基づいて各VMにおけるローカルシステム時刻を修正する。時間計測幅に基づいて、ホストがローカルでメンテナンスする時刻をリアルタイムに更新して前記時刻更新情報が得られ、時刻更新情報を前記同期した時刻情報とすることができる。
本願の実施例では、図9に示すように、前記サーバと時刻同期を行うことで、前記同期した時刻情報を得るように構成される第1の情報取得ユニット31と、同期した時刻情報を共有チャネルを介して各VMに送信するように構成される同期ユニット32と、を備える時刻同期装置をさらに提供する。前記同期した時刻情報を用いることにより達成される精度は、ナノ秒レベルまたはナノ秒級以上のより高い精度レベルである。
本願の実施例において、同期ユニットはさらに、各VMが定期的にトリガーする取得要求に応答して、前記ホストと各VMを連通する共有メモリチャネルを介して前記同期した時刻情報を各VMに送信するように構成される。
本願の実施例において、前記装置はさらに、ホストが各VMに送信する同期した時刻情報を受信するように構成される受信ユニットと、前記同期した時刻情報に基づいて各VMにおけるローカルシステム時刻を修正するように構成される修正ユニットと、を備える。
本願の実施例において、前記装置はさらに、前記ホストへ取得要求を定期的に送信することで、前記ホストとサーバとの時刻同期を通じて前記同期した時刻情報を取得するように構成された第1の取得部を含む。前記受信ユニットはさらに、前記ホストと各VMを連通する共有メモリチャネルを介して前記同期した時刻情報が得られるように構成される。
本願の実施例では、図10に示すように、サーバと時刻同期を行うことで調整後の時間計測幅を取得する第2情報取得ユニット41と、同期した時刻情報を共有チャネルを介して各VMに送信するように構成される同期ユニット42と、を備える時刻同期装置を提供する。前記同期した時刻情報を用いることにより達成される精度は、ナノ秒級またはナノ秒級以上のより高い精度レベルである。
本願の実施形態において、第2の情報取得ユニットはさらに、サーバと時刻同期を行うことで、タイムスタンプが含まれるPTPメッセージを取得し、前記PTPメッセージから前記タイムスタンプを抽出し、前記タイムスタンプに基づいて前記ホストとサーバとの間に存在する時刻ずれを取得し、前記時刻ずれに基づいて調整後の時間計測幅を取得するように構成される。
本願の実施例において、同期ユニットはさらに、各VMが定期的にトリガーする取得要求に応答して、前記時間計測幅に応じて、ホストがローカルでメンテナンスする時刻をリアルタイムで更新することで、時刻更新情報を取得し、前記時刻更新情報を前記同期した時刻情報として各VMに送信することができる。
本願の実施例において、前記装置は、前記ホストに対して取得要求を定期的に送信し、前記ホストがサーバと時刻同期を行った後に調整後の時間計測幅を取得し、前記時間計測幅に応じて、ホストがローカルでメンテナンスする時刻をリアルタイムで更新することで前記同期した時刻情報を得るように構成される第2の取得ユニットをさらに含む。前記ホストが前記サーバと時刻同期して取得した時刻ずれに基づいて前記時間計測幅が得られる。
本願の実施例において、前記受信ユニットはさらに、前記時間計測幅に応じてホストがローカルでメンテナンスする時刻をリアルタイムで更新することで得られる時刻更新情報を受信して、前記時刻更新情報を前記同期した時刻情報とするように構成される。
本願の実施例では、図11に示すように、プロセッサ41と、プロセッサ上で動作するコンピュータプログラムを格納するためのメモリ42とを含む時刻同期装置410を提供する。図11に示すように、時刻同期装置410はさらに、少なくとも1つの通信インターフェイス43を含む。時刻同期装置410の様々な構成要素は、バスシステム44によって互いに結合される。バスシステム44は、これらの構成要素間の接続通信を実現するために用いられると理解できる。バスシステム44は、データバスの他に、電源バス、制御バス、ステータス信号バスを含んでもよい。説明を分かりやすくするために、図11では、様々なバスをいずれもバスシステム44と標記する。通信インターフェイス43は、他の装置とインタラクションするように構成される。
メモリ42は、揮発性メモリまたは不揮発性メモリであってもよく、揮発性および不揮発性メモリの両方を含んでもよいと理解できる。不揮発性メモリは、リードオンリーメモリ(ROM,Read Only Memory)、プログラマブルリードオンリーメモリ(PROM, Programmable Read-Only Memory)、消去可能プログラマブルリードオンリーメモリ(EPROM,Erasable Programmable Read-Only Memory)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁気ランダムアクセスメモリ(FRAM(登録商標),Ferromagnetic Random Access Memory)、フラッシュメモリ(Flash Memory)、磁気表面メモリ、光ディスク、またはリードオンリーディスク(CD-ROM,Compact Disc Read-Only Memory)であってよく、磁気表面メモリは、磁気ディスクメモリまたは磁気テープメモリであってよい。揮発性メモリは、外部キャッシュとして使用されるランダムアクセスメモリ(RAM,Random Access Memory)であってよい。限定ではなく例として、スタティックランダムアクセスメモリ(SRAM,Static Random Access Memory)、シンクロナススタティックランダムアクセスメモリ(SSRAM,Synchronous Static Random Access Memory)、ダイナミックランダムアクセスメモリ(DRAM,Dynamic Random Access Memory)、シンクロナスダイナミックランダムアクセスメモリ(SDRAM,Synchronous Dynamic Random Access Memory)、ダブルデータレートシンクロナスダイナミックランダムアクセスメモリ(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、エンハンスメント型シンクロナスダイナミックランダムアクセスメモリ(ESDRAM、Enhanced Synchronous Dynamic Random Access Memory)、シンクロナス接続ダイナミックランダムアクセスメモリ(SLDRAM,SyncLink Dynamic Random Access Memory)、ダイレクトメモリバスランダムアクセスメモリ(DRRAM,Direct Rambus Random Access Memory)などの多くの形態のRAMが適用される。本願の実施例に記載されるメモリ42は、これらおよび任意の他の適切な種類のメモリを含むがこれらに限定されない。
本願の実施例は、上述の実施例で提供する計算プログラムを格納して、本願の各実施例による時刻同期方法を実現するためのコンピュータ読み取り可能な記録媒体をさらに提供する。コンピュータ読み取り可能な記憶媒体は、FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁気表面メモリ、光ディスク、またはCD−ROMなどのメモリであってよく、これらのメモリの1つまたは任意の組み合わせを含む様々な装置であってもよい。
なお、本願実施例に記載の技術案は、矛盾なき限り、任意に組み合わせることが可能である。
本願の実施例による上記実現形式において、ネットワークカード内で同期した時刻情報を共有メモリ方式により各VMに効率的に共有することで、標準ネットワークカードに基づいてシンクホストと仮想マシン間でネットワークカード時刻を共有でき、ハードウェアの変更は不要である。既存のネットワークカードに基づき、シンクホストにおいて動作プロトコルとPTPサーバとの時刻同期を行い、シンクホストがネットワークカード時刻を直接取得する。図12に示すハイパーバイザー(Hypervisor)において共有メモリチャネル、例えば、時刻共有モジュール(Time Share Module)を追加することで、VMとシンクホスト間で時刻情報を伝達する。VMはシステム時刻を修正するために共有メモリ内時刻を定期的に取得する。Hypervisorは、物理サーバとオペレーティングシステムとの間で動作する中間ソフトウェア層であり、複数のオペレーティングシステムとアプリケーションとが1組の基本物理ハードウェアを共有することを許可するため、仮想環境における「メタ」オペレーティングシステムとして見なすこともでき、サーバ上の全ての物理デバイスと仮想マシンに協調してアクセスでき、仮想マシンモニタとも呼ばれる。Hypervisorは、すべての仮想化技術の核心である。マルチワークロードマイグレーションを非中断的にサポートする能力は、Hypervisorの基本機能である。サーバがHypervisorを起動して実行すると、各仮想マシンに適切な量のメモリ、CPU、ネットワーク、ディスクが割り当てられ、全ての仮想マシンのクライアントオペレーティングシステムがロードされる。
本願の実施例の上記実施方式において、ネットワークカードにおける同期時刻情報を、SR−IOVハードウェア仮想化同期方式により各VMに効率的に共有することで、時刻同期加速カード(略称加速カード)を採用することができ、ネットワークカードの形態で実現することができる。ホストは、加速カードに基づいてタイムサーバとIEEE1588 V2形式で同期される。各VMが更新後の時刻情報に直接アクセスできるように、加速カード内部は自動的に更新後の時刻情報を複数のVFモジュールに配信する。加速カードは、PTP同期メッセージの識別、タイムスタンプの自動付与、同期加速カードメンテナンスローカル時刻、同期加速カードが時間計測幅の調整を提供するなどの機能を備える。図13に示すように、SR−IOVハードウェア仮想化という同期方式により、加速カード時刻を各VFモジュールに配信することで、同期精度を向上する。ホストではPTPサーバとの間でプロトコルを実行して時刻同期を行い、各同期周期毎に加速カードとサーバとの時刻のずれに応じて時間計測幅を調整する。加速カードは、調整後の周波数に応じてVFモジュール内の時刻情報を計時してリアルタイムで更新する。VMは、VFモジュール内の時刻情報を定期的に取得することで、自身のシステム時刻を修正する。
上述した2つの方式(すなわち、共有メモリ方式とSR−IOVハードウェア仮想化方式)により、加速カード(ネットワークカードとして実現できる)において同期した時刻情報を効率的に各VMに共有することができる。2つの方式はいずれもPTP時刻同期プロトコルを採用しており、PTPプロトコルを用いて仮想マシン時刻を常に修正して同期精度を向上させ、VMにおける時刻ずれを解消している。VMでの時刻同期を実現するために、予め設定された処理を行わずに、PTPがクロックサーバの時刻を基準源として自動的に取得して、VMの時刻を調整することで、同期精度を向上させることができる。
共有メモリ方式に関しては、標準ネットワークカードに基づいて、ハードウェアの変更をせずに、ホストとVMとの間でネットワークカード時刻を共有することができる。SR−IOVハードウェア仮想化方式に関しては、ハードウェアサポートを追加する必要があり、同期精度をさらに向上させ、ナノ秒レベルの同期精度を達成することで、VMにおける高精度な時刻同期を実現することができる。SR−IOVハードウェア仮想化方式に基づいて加速カードを設計してもよく、標準ネットワークカードに基づいてプログラマブル装置を拡張するか、或いは、スマートネットワークカードに機能を追加することに基づいて、当該加速カードを得ることができる。PTPプロトコルはホスト上で動作し、加速カードは、同期後の時刻情報を異なるVFに配信するだけでよいので、リソースの消費が少なく、ホスト上での各VMの時刻の一貫性も保証される。加速カードは、スマートネットワークカードとして実現でき、ホストは当該スマートネットワークカードおよび時刻サーバに基づいてIEEE1588 V2の形式で同期される。スマートネットワークカード内部では、各VMが、更新後の時刻情報に直接アクセスできるように、更新後の時刻情報を複数のVFモジュールに自動的に配信する。スマートネットワークカードは、1つのPFモジュールと、複数のVFモジュールとを含むことができ、各VFモジュールは、独立したPCIE装置として提示され、時刻情報は、PFモジュールとVFモジュールとの間で共有される。VMは、一定のタイミングで取得した、対応するVFモジュールの時刻情報に従ってローカルシステム時刻を調整する。スマートネットワークカードは、標準サーバのPCIEスロット内に展開される。スマートネットワークカードには、標準ネットワークカードのメッセージ送受信を実現するイーサネットメッセージ送受信機能モジュールと、PTPイベントメッセージを識別してタイムスタンプを追加送受信するPTPメッセージタイムスタンプ機能モジュールと、ネットワークカードのクロック源としてのローカル時刻を保持する計時モジュールと、ソフトウェアがPTP同期結果に応じてローカル時刻を調整できるように、ユーザがローカル計時周波数を調整するために用いられる時間計測幅調整モジュールと、時刻配信モジュールと、を備え、ネットワークカードには複数のVFモジュールが含まれ、時刻配信モジュールを介して全てのVFモジュールに時刻更新情報を配信できる。当該スマートネットワークカードにより、ユーザは、VMクライアントマシンを構築する際に、VMクライアントマシンとネットワークカードの某VFモジュールとをバインドし、VMクライアントマシンのソフトウェアは、定期的にVFモジュールを取得して、時刻情報で自身のシステム時刻を調整する。当該スマートネットワークカードに基づくVM時刻同期精度は、ナノ秒レベルに達することが可能である。
以下では、本願の実施例の各応用場面を用いて例を挙げて説明する。
本実施例では、ホストとVMとの間でネットワークカードのPTP時刻同期情報を共有する方法を中心に説明するが、これには、一般的なネットワークカードに基づく共有メモリ方式とSR−IOVに基づくクロック同期加速カード方式の2種類が含まれる。SR−IOVに基づくクロック同期加速カードは、ハードウェアの方式によってIEEE1588 V2で同期後の時刻をホストと各VMの間で共有できる。図14に示すように、当該加速カードは、PTPメッセージ処理モジュールと、時刻メンテナンスモジュールと、時間計測幅調整モジュールと、時刻情報同期モジュールとを備える。当該加速カードに基づいて、ユーザはホストにおいて、PTPプロトコルを実行し、加速カードとPTPサーバとの間で時刻同期を行う。ユーザは、VMを構築するとき、VMを加速カードの某VFにバインドする。VMは、バインドされたVFの時刻情報を定期的に取得することで、VMのシステム時刻を調整する。PTPメッセージ処理モジュールは、加速カードを通過したPTPプロトコルメッセージを識別し、タイムスタンプを付加および抽出するように構成される。時刻メンテナンスモジュールは、クロック源を内部に有することで、ローカル時刻を保持する。時間計測幅調整モジュールは、ローカル時間計測幅を調整することで、クロック周波数を調整する機能を実現するように構成される。加速カードには複数の機能パーテーションが含まれ、即ち、1つのPFモジュールと複数のVFモジュールであり、各機能パーテーションには時刻情報が格納され、時刻情報同期モジュールは、各計時周期内で全てのPFモジュールとVFモジュールの時刻情報を更新することで、VMが某VFモジュールの時刻情報に直接アクセスして時刻同期を行うことができる。本実施例の加速カードのハードウェア形態は限定されず、独立した、PTP時刻同期機能を有する加速カードであってよく、標準ネットワークカードに基づいてPTPクロック同期機能を拡張してもよく、PTPクロック同期機能をスマートネットワークカードに含めることもできる。
本実施例において、ホストとVMとの間でPTP同期時刻情報を共有する方式としては、メモリ共有方式と、SR−IOVに基づくクロック同期加速カード方式の2種類がある。
図12に示すように、共有メモリ方式は、既存のネットワークカードに基づいて実現することができる。ホスト内でプロトコルを実行してPTPサーバと時刻同期を行うことで、ホストは、ネットワークカード時刻を直接取得でき、Hypervisorにおいて共有メモリチャネルを追加して、VMとホストとの間で時刻情報を伝達する。VMは、共有メモリ内の時刻を定期的に取得することで、システム時刻を修正する。
図13に示すように、SR−IOVに基づくクロック同期加速カード方式は、ハードウェアの方式によって、ネットワークカード時刻を各VFモジュールに配信することで、同期精度を向上させる。ホストでプロトコルを実行して、PTPサーバと時刻同期を行い、各同期サイクルにおいて加速カードとサーバの時刻ずれに応じて時間計測幅を調整する。ネットワークカードは、調整後の周波数で計時して、VFモジュールにおける時刻情報をリアルタイムで更新する。VMは、VFモジュールにおける時刻を定期的に取得することで、自身のシステム時刻を修正する。対応するプロセスには、ホストでPTPプロトコルを実行することで、PTPサーバと定期的に同期すること、時刻ずれ量を算出して、加速カードに格納すること、加速カードが時刻ずれに応じてローカル時間計測幅を調整すること、ローカル時間計測幅に基づいて(例えば、調整後の周波数で計時)、VF内の時刻情報をリアルタイムで更新して、時刻更新情報を取得すること、VMが加速カードから時刻(例えば、時刻更新情報)を取得して、自身のシステム時刻を調整することが含まれる。
本実施例では、ホストでPTPプロトコルを実行し、定期的に加速カードの時間計測幅を調整し、加速カード内のタイミング情報を常に更新し、各VMが加速カード時刻を定期的に取得してそのシステム時刻を調整する。インタラクション全体は3つの部分に分けられる。
第1の部分では、図15に示すように、加速カードが時間計測幅を調整する。
ステップ401では、ホストにおいてPTPプロトコルが実行される。
ステップ402では、PTPサーバと定期的にメッセージをインタラクションする。同期目標精度およびシステム負荷の状況に応じて周期時間を選択することができる。
ステップ403では、各サイクル内で加速カードとPTPサーバの時刻ずれを算出する。
ステップ404では、ずれに応じて加速カードの時間計測幅を調整することにより、加速カードとPTPタイムサーバとが同じ周波数、同じ位相となるように、加速カードのローカル時刻を修正する。
第2の部分では、図16に示すように、ネットワークカードの時刻を更新する。
ステップ501では、ローカル計時周期で時刻更新をトリガーする。ここでの計時周期は、加速カードハードウェアの計時周期であり、目標精度より小さく、数ナノ秒に設定することができる。
ステップ502では、ローカルクロックカウントと更新された時間計測幅を読み込むことで、現在時刻を算出する。
ステップ503では、ネットワークカードの時刻を更新し、PFモジュールと各VFモジュールの時刻を更新することが含まれる。
第3の部分では、図17に示すように、VM時刻を修正する。
ステップ601では、VMを構築するときに、VMを、加速カードの某VFモジュールとバインドする。
ステップ602では、VMは、ローカルシステム時刻およびVFモジュールにおける時刻情報を定期的に取得する。同期精度要求およびシステム負荷状況に応じて周期時間を選択することができる。
ステップ603では、システム時刻と加速カードの時刻ずれを算出する。
ステップ604では、時刻ずれに応じて仮想システムのローカル時刻カウント周波数が調整される。
基準時刻に対するVMのシステム時刻の調整係数は、以下の方法で決定される。
時刻差が負数であれば、調整期間と時刻差の絶対値と、調整期間との比率を算出し、当該比率を調整係数とし、時刻差が正数であれば、調整期間と時刻差の絶対値との差と、調整期間との比率を算出し、当該比率を調整係数とし、VMシステムクロック周波数を調整することで時刻同期を実現する。VMに関して言えば、時刻の突然変異がないため、VM上での時刻に関する業務の実行順序は変わらず、すなわち、VM上のデータベースクラスイベントのデリケートな業務に影響を与えない。同時に、時刻同期過程において、PTPサービスに依存することなく、VM稼動中において業務を中断せず、時刻ずれの大きさにかかわらず、VM時刻のスムーズな調整を実現することができる。
本願の実施例の上記装置はソフトウェア機能モジュールの形態で実現され、独立した製品として販売または使用される場合、1つのコンピュータ読み取り可能な記録媒体に記録されてもよい。このような理解によれば、本願の実施例の技術案は、1台のコンピュータ装置(パーソナルコンピュータ、サーバ、またはネットワーク装置などであってもよい)に本願の様々な実施例で説明される方法の全てまたは一部を実行させるためのいくつかの指令を含む、1つの記憶媒体に記憶されたソフトウェア製品の形態で具現化されてもよい。前記の記憶媒体は、USBディスク、リムーバブルハードディスク、リードオンリーメモリ(ROM,Read Only Memory)、磁気ディスク、光ディスクなどのプログラムコードを記憶できる種々の媒体を含む。このように、本願の実施例は、任意の特定のハードウェアおよびソフトウェアの組み合わせに限定されない。
本願の好ましい実施例は、例示を目的として開示されているが、様々な改善、追加、および置換が可能であると当業者は認識しているため、本願の範囲は、上記の実施例に限定されるべきではない。

Claims (32)

  1. クロックパルス信号を生成するように構成される水晶発振器と、
    クロックパルス信号に応じて、ネットワークカードにローカルクロック源を提供するように構成される位相ロックループと、
    ホストと相互接続されるコネクタと、を含み、
    前記ネットワークカードは、同期した時刻情報を共有チャネルを介して、前記ホスト上で動作するN個(N≧2)の仮想マシンVMにおける各VMに送信する、
    ネットワークカード。
  2. 前記ネットワークカードはサーバと時刻同期を行うことで、前記同期した時刻情報を取得し、前記同期した時刻情報を共有メモリチャネルを介して各VMに送信する
    請求項1に記載のネットワークカード。
  3. プログラマブルロジックデバイスをさらに備え、
    前記プログラマブルロジックデバイスは、
    ホストとサーバとの間の送受信インタラクションによって得られる精密時刻同期プロトコルであるPTPメッセージに基づいて時間計測幅を取得し、
    前記時間計測幅に基づいて時刻更新情報を取得し、
    前記時刻更新情報を前記同期した時刻情報として各VMに送信するように構成される
    請求項1に記載のネットワークカード。
  4. 前記プログラマブルロジックデバイスは、
    前記ホストと前記サーバとの間の送受信インタラクションによって得られる前記PTPメッセージを認識するように構成されるメッセージ送受信処理部と、
    ネットワークカードのローカル時刻をメンテナンスするように構成される時刻メンテナンス処理部と、
    前記PTPメッセージに基づいて時刻同期を行うことで、前記時間計測幅を取得するように構成される時刻調整処理部と、
    前記時間計測幅に応じて、前記メンテナンスするネットワークカードのローカル時刻をリアルタイムで更新して前記時刻更新情報を得るように構成される時刻同期処理部と、を含む
    請求項3に記載のネットワークカード。
  5. 前記メッセージ送受信処理部は、前記PTPメッセージにタイムスタンプを追加するか、或いは、タイムスタンプを抽出するように構成される
    請求項4に記載のネットワークカード。
  6. 前記時刻調整処理部はさらに、
    周期時間ごとに、ホストが定期的にサーバと前記PTPメッセージをインタラクションする際に存在する時刻ずれを収集し、前記時刻ずれに基づいて前記時間計測幅を取得するように構成され、
    前記周期時間は、時刻同期に要する同期目標精度および/またはシステム負荷状況に応じて選択される
    請求項4に記載のネットワークカード。
  7. 前記時刻調整処理部はさらに、ローカル計時周期に達し、時刻同期更新をトリガーした後、前記時刻ずれに応じて前記時間計測幅を取得するように構成される
    請求項6に記載のネットワークカード。
  8. 前記時刻メンテナンス処理部はさらに、前記ローカルクロック源に応じて前記ネットワークカードのローカル時刻を保持するように構成される
    請求項4に記載のネットワークカード。
  9. 前記ホストのホストスロット内に配置される
    請求項1〜8のいずれか一項に記載のネットワークカード。
  10. N個(N≧2)の仮想マシンVMが動作するホストに適用される時刻同期方法であって、
    同期した時刻情報を共有チャネルを介して各VMに送信する
    時刻同期方法。
  11. 前記同期した時刻情報を用いることにより達成する精度は、ナノ秒級またはナノ秒級以上のより高い精度レベルである
    請求項10に記載の時刻同期方法。
  12. 同期した時刻情報を共有チャネルを介して各VMに送信するステップは、
    サーバと時刻同期を行うことで、前記同期した時刻情報を得るステップと、
    各VMが定期的にトリガーする取得要求に応答して、ホストと各VMとを連通する共有メモリチャネルを介して前記同期した時刻情報を各VMに送信するステップと、を含む
    請求項10に記載の時刻同期方法。
  13. 同期した時刻情報を共有チャネルを介して各VMに送信するステップは、
    ホストとサーバとの間の送受信インタラクションから得られる精密時刻同期プロトコルであるPTPメッセージに基づいて時間計測幅を取得するステップと、
    前記時間計測幅により時刻更新情報を取得するステップと、
    前記時刻更新情報を前記同期した時刻情報として各VMに送信するステップと、を含む
    請求項10に記載の時刻同期方法。
  14. ホストとサーバとの間の送受信インタラクションから得られる精密時刻同期プロトコルであるPTPメッセージに基づいて時間計測幅を取得するステップは、
    タイムスタンプを含む前記PTPメッセージを取得するステップと、
    前記PTPメッセージから前記タイムスタンプを抽出し、前記タイムスタンプに基づいて前記ホストと前記サーバとの間に存在する時刻ずれを取得し、前記時刻ずれに基づいて前記時間計測幅を取得するステップと、を含み、
    前記時間計測幅に基づいて時刻更新情報を取得するステップは、
    各VMが定期的にトリガーする取得要求に応答し、前記時間計測幅に基づいて、ホストがローカルでメンテナンスする時刻をリアルタイムで更新して、前記時刻更新情報を得るステップを含む
    請求項13に記載の時刻同期方法。
  15. N個(N≧2)の仮想マシンVMが動作するホスト上の各VMに適用される時刻同期方法であって、
    ホストが共有チャネルを介して各VMに送信する同期した時刻情報を受信するステップと、
    前記同期した時刻情報に基づいて各VMにおけるローカルシステム時刻を修正するステップと、を含む
    時刻同期方法。
  16. 前記同期した時刻情報を用いることにより達成される精度は、ナノ秒級またはナノ秒級以上のより高い精度レベルである
    請求項15に記載の方法。
  17. ホストが各VMに送信する同期した時刻情報を受信するステップの前に、
    前記ホストへ取得要求を定期的に送信するステップと、
    前記ホストがサーバと時刻同期を行うことにより前記同期した時刻情報を得るステップと、をさらに含む
    請求項15に記載の時刻同期方法。
  18. ホストが共有チャネルを介して各VMに送信する同期した時刻情報を受信するステップは、
    前記ホストと各VMとを連通する共有メモリチャネルを介して前記同期した時刻情報を得るステップを含む
    請求項15に記載の時刻同期方法。
  19. ホストが共有チャネルを介して各VMに送信する同期した時刻情報を受信するステップは、
    時間計測幅に基づいて、ホストがローカルでメンテナンスする時刻をリアルタイムで更新することで得られる時刻更新情報を受信して、前記時刻更新情報を前記同期した時刻情報とするステップを含む
    請求項15に記載の時刻同期方法。
  20. 前記ホストが前記サーバと時刻同期して取得した時刻ずれに基づいて前記時間計測幅を得る
    請求項19に記載の時刻同期方法。
  21. N個(N≧2)の仮想マシンVMが動作するホストに適用される時刻同期装置であって、
    同期した時刻情報を共有チャネルを介して各VMに送信するように構成される同期ユニットを含む
    時刻同期装置。
  22. 前記同期した時刻情報を用いることにより達成される精度は、ナノ秒級またはナノ秒級以上のより高い精度レベルである
    請求項21に記載の時刻同期装置。
  23. 前記サーバと時刻同期を行うことで、前記同期した時刻情報を得る第1の情報取得ユニットを含み、
    前記同期ユニットはさらに、
    各VMが定期的にトリガーする取得要求に応答して、ホストと各VMとを連通する共有メモリチャネルを介して前記同期した時刻情報を各VMに送信するように構成される
    請求項21に記載の時刻同期装置。
  24. 前記同期ユニットはさらに、
    ホストとサーバとの間の送受信インタラクションによって得られる精密時刻同期プロトコルであるPTPメッセージに基づいて時間計測幅を取得し、
    前記時間計測幅に基づいて時刻更新情報を取得し、
    前記時刻更新情報を前記同期した時刻情報として各VMに送信するように構成される
    請求項21に記載の時刻同期装置。
  25. N個(N≧2)の仮想マシンVMが動作するホスト上の各VMに適用される時刻同期装置であって、
    ホストが共有チャネルを介して各VMに送信する同期した時刻情報を受信するように構成される受信ユニットと、
    前記同期した時刻情報に基づいて各VMにおけるローカルシステム時刻を修正するように構成される修正ユニットと、を含む
    時刻同期装置。
  26. 前記受信ユニットはさらに、
    前記ホストと各VMとを連通する共有メモリチャネルを介して前記同期した時刻情報を得るように構成される
    請求項25に記載の時刻同期装置。
  27. 前記受信ユニットはさらに、
    時間計測幅に基づいて、ホストがローカルでメンテナンスする時刻をリアルタイムで更新することで得られる時刻更新情報を受信して、前記時刻更新情報を前記同期した時刻情報とするように構成される
    請求項25に記載の時刻同期装置。
  28. 前記ホストが前記サーバと時刻同期して取得した時刻ずれに基づいて前記時間計測幅を得る
    請求項27に記載の時刻同期装置。
  29. コンピュータプログラムが記憶されるメモリと、
    前記コンピュータプログラムを実行するときに、請求項10〜14のいずれか一項に記載の時刻同期方法を実現するように構成されるプロセッサと、を備える
    時刻同期装置。
  30. コンピュータプログラムが記憶されたメモリと、
    前記コンピュータプログラムを実行するときに、請求項15〜20のいずれか一項に記載の時刻同期方法を実現するように構成されるプロセッサと、を備える
    時刻同期装置。
  31. コンピュータプログラムが記憶され、前記コンピュータプログラムがプロセッサによって実行されるときに、前記プロセッサが請求項10〜14のいずれか一項に記載の時刻同期方法を実現する
    コンピュータ記憶媒体。
  32. コンピュータプログラムが記憶され、前記コンピュータプログラムがプロセッサによって実行されるときに、前記プロセッサが請求項15〜20のいずれか一項に記載の時刻同期方法を実現する
    コンピュータ記憶媒体。
JP2020547281A 2018-09-20 2019-08-15 ネットワークカード、時刻同期方法および装置、並びにコンピュータ記憶媒体 Pending JP2021506037A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811102873.8A CN110932839B (zh) 2018-09-20 2018-09-20 一种网卡、时间同步方法、设备及计算机存储介质
CN201811102873.8 2018-09-20
PCT/CN2019/100749 WO2020057303A1 (zh) 2018-09-20 2019-08-15 网卡、时间同步方法和设备及计算机存储介质

Publications (1)

Publication Number Publication Date
JP2021506037A true JP2021506037A (ja) 2021-02-18

Family

ID=69855580

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020547281A Pending JP2021506037A (ja) 2018-09-20 2019-08-15 ネットワークカード、時刻同期方法および装置、並びにコンピュータ記憶媒体

Country Status (5)

Country Link
US (1) US11609598B2 (ja)
EP (1) EP3855675A4 (ja)
JP (1) JP2021506037A (ja)
CN (1) CN110932839B (ja)
WO (1) WO2020057303A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102407341B1 (ko) * 2021-05-14 2022-06-13 한국전자기술연구원 정밀 시각 프로토콜의 메시지를 송수신하기 위한 방법 및 이를 위한 장치

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111865466B (zh) * 2020-07-10 2023-11-03 润电能源科学技术有限公司 时间同步方法、装置、被授时设备和存储介质
CN111857237B (zh) * 2020-07-27 2023-09-08 超越科技股份有限公司 一种时钟同步方法、系统、设备以及介质
CN112350718B (zh) 2020-09-25 2023-06-27 苏州华兴源创科技股份有限公司 时钟源电路、机箱及多机箱级联系统
JP2022067149A (ja) * 2020-10-20 2022-05-06 株式会社オートネットワーク技術研究所 車載装置、車載通信システムおよび同期制御方法
US11748141B2 (en) * 2020-10-30 2023-09-05 Red Hat, Inc. Providing virtual devices direct access to clock times in memory locations managed by a hypervisor
US20220006607A1 (en) * 2020-12-26 2022-01-06 Intel Corporation Timestamp alignment for multiple nodes
CN112904932A (zh) * 2021-05-08 2021-06-04 鹏城实验室 时钟同步方法、板卡、计算机存储介质及终端设备
US11844037B2 (en) * 2021-07-23 2023-12-12 Charter Communications Operating, Llc Automated determination of a timing offset for DOCSIS time protocol to provide precision time protocol accuracy
CN113759766A (zh) * 2021-07-29 2021-12-07 苏州浪潮智能科技有限公司 一种独立上电启动的智能网卡及智能网卡上电启动方法
US11558448B1 (en) * 2021-09-22 2023-01-17 International Business Machines Corporation Sparse information sharing system
CN114003091B (zh) * 2021-10-29 2024-01-30 深圳市科思科技股份有限公司 时间同步方法、装置、设备及存储介质
CN114679481A (zh) * 2022-02-23 2022-06-28 达闼机器人股份有限公司 机器人的控制方法、装置、存储介质及机器人集群
CN117811687A (zh) * 2022-09-26 2024-04-02 施耐德电器工业公司 用于多个操作系统时间同步的系统与方法
CN115865803B (zh) * 2023-03-03 2023-08-22 浪潮电子信息产业股份有限公司 一种io请求处理方法、装置、设备及可读存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003036123A (ja) * 2001-07-25 2003-02-07 Meidensha Corp コンピュータの時刻管理方式
JP2006071441A (ja) * 2004-09-02 2006-03-16 Meidensha Corp データ処理システムの時刻同期方法
US20070061605A1 (en) * 2005-09-09 2007-03-15 International Business Machines Corporation System and method for TOD-clock steering
JP2012079143A (ja) * 2010-10-04 2012-04-19 Fujitsu Ltd チャネル制御装置および方法
JP2013069236A (ja) * 2011-09-26 2013-04-18 Nec Corp 情報伝達システムおよび情報伝達方法
JP2013145460A (ja) * 2012-01-13 2013-07-25 Fujitsu Ltd 情報処理装置、情報処理装置の制御方法、制御プログラム、記録媒体
US20150356031A1 (en) * 2014-06-04 2015-12-10 Ixia Methods, systems, and computer readable media for providing precise timing in virtual data network or storage network test environment
JP2018088646A (ja) * 2016-11-29 2018-06-07 富士通株式会社 時刻同期装置及び時刻同期方法
US20180203803A1 (en) * 2017-01-13 2018-07-19 International Business Machines Corporation Managing and sharing alias devices across logical control units

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473638B2 (en) * 2008-05-02 2013-06-25 James Aweya Method and apparatus for time and frequency transfer in communication networks
KR101623297B1 (ko) * 2012-04-13 2016-05-20 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 목적지 클라우드 시스템 요건들의 결정
CN105706383B (zh) * 2013-02-22 2019-03-08 瑞典爱立信有限公司 时间同步的可插拔收发信机及其同步方法
CN104239227B (zh) * 2013-06-20 2017-06-06 新华三技术有限公司 一种虚拟化存储管理装置、本地虚拟存储管理装置及方法
US9344265B2 (en) * 2014-10-15 2016-05-17 Anue Systems, Inc. Network packet timing synchronization for virtual machine host systems
CN104615549A (zh) * 2015-01-19 2015-05-13 杭州华三通信技术有限公司 一种虚拟系统中域管理方法和装置
US9816665B2 (en) * 2015-01-19 2017-11-14 Clinton Electronics Corporation Equipment boom with locking feature
US10020905B2 (en) * 2016-04-19 2018-07-10 Centurylink Intellectual Property Llc Accurate synchronization as a service
WO2018120173A1 (zh) * 2016-12-30 2018-07-05 华为技术有限公司 交互时间同步报文的方法以及网络装置
CN107247616A (zh) * 2017-04-25 2017-10-13 郑州云海信息技术有限公司 一种虚拟化平台虚拟化应用性能测试的方法及系统
US10944818B1 (en) * 2017-08-30 2021-03-09 Amazon Technologies, Inc. Time synchronization monitoring with client mirroring
US10673883B2 (en) * 2018-05-14 2020-06-02 Cisco Technology, Inc. Time synchronization attack detection in a deterministic network
US10788841B2 (en) * 2018-08-24 2020-09-29 Baidu Usa Llc Hardware centralized time synchronization hub for an autonomous driving vehicle

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003036123A (ja) * 2001-07-25 2003-02-07 Meidensha Corp コンピュータの時刻管理方式
JP2006071441A (ja) * 2004-09-02 2006-03-16 Meidensha Corp データ処理システムの時刻同期方法
US20070061605A1 (en) * 2005-09-09 2007-03-15 International Business Machines Corporation System and method for TOD-clock steering
JP2007080264A (ja) * 2005-09-09 2007-03-29 Internatl Business Mach Corp <Ibm> Todクロックをステアリングするためのシステムおよび方法
JP2012079143A (ja) * 2010-10-04 2012-04-19 Fujitsu Ltd チャネル制御装置および方法
JP2013069236A (ja) * 2011-09-26 2013-04-18 Nec Corp 情報伝達システムおよび情報伝達方法
JP2013145460A (ja) * 2012-01-13 2013-07-25 Fujitsu Ltd 情報処理装置、情報処理装置の制御方法、制御プログラム、記録媒体
US20150356031A1 (en) * 2014-06-04 2015-12-10 Ixia Methods, systems, and computer readable media for providing precise timing in virtual data network or storage network test environment
JP2018088646A (ja) * 2016-11-29 2018-06-07 富士通株式会社 時刻同期装置及び時刻同期方法
US20180203803A1 (en) * 2017-01-13 2018-07-19 International Business Machines Corporation Managing and sharing alias devices across logical control units

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MEINBERG RADIO CLOCKS GMBH & CO.KG: "PTP270PEX IEEE1588 Computer Clock", [ONLINE], JPN6021023189, 22 November 2012 (2012-11-22), DE, ISSN: 0004650813 *
堤 智昭 TOMOAKI TSUTSUMI: "高精度時刻同期を分散処理制御に活用したタイムアウェア処理方式 A Time-aware Control Method Using High", マルチメディア,分散,協調とモバイル(DICOMO2014)シンポジウム論文集 情報処理学会シンポジ, vol. 第2014巻, JPN6021023188, 18 July 2014 (2014-07-18), JP, pages 1581 - 1587, ISSN: 0004650812 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102407341B1 (ko) * 2021-05-14 2022-06-13 한국전자기술연구원 정밀 시각 프로토콜의 메시지를 송수신하기 위한 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
EP3855675A1 (en) 2021-07-28
CN110932839A (zh) 2020-03-27
US20210303021A1 (en) 2021-09-30
CN110932839B (zh) 2023-09-22
WO2020057303A1 (zh) 2020-03-26
EP3855675A4 (en) 2022-06-15
US11609598B2 (en) 2023-03-21

Similar Documents

Publication Publication Date Title
JP2021506037A (ja) ネットワークカード、時刻同期方法および装置、並びにコンピュータ記憶媒体
US10944852B2 (en) Computer network packet transmission timing
KR101109980B1 (ko) 조정된 타이밍 네트워크 내의 서버 동기화 촉진
KR101091460B1 (ko) 네트워크에서의 복원을 촉진하는 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
CN106095706A (zh) 具有主设备和从设备的pll系统
CN103634092A (zh) Cpu集群中的高精度定时器
US10509435B2 (en) Protected real time clock with hardware interconnects
US20220413474A1 (en) Control system
US9568944B2 (en) Distributed timer subsystem across multiple devices
CN109194432A (zh) 一种kvm下多虚拟机时间同步系统
US9104364B2 (en) Generation and distribution of steered time interval pulse to a plurality of hardware components of the computing system
JP5845771B2 (ja) 情報伝達システムおよび情報伝達方法
US11061433B2 (en) Application compatible leap second support
Okabe et al. Avoiding year 2038 problem on 32-bit linux by rewinding time on clock synchronization
US10903924B2 (en) Setting primary reference time of server time protocol facility of a coordinated timing network to a precision-time-protocol source
D'souza et al. Quartz: time-as-a-service for coordination in geo-distributed systems
WO2020160932A1 (en) Setting primary reference time of server time protocol facility of a coordinated timing network to a precision-time-protocol source
Fezzardi et al. PPSi-A free software ptp implementation
D'Souza et al. Quartzv: Bringing quality of time to virtual machines
US20230341889A1 (en) Virtual precision time protocol clock devices for virtual nodes
US10958727B2 (en) Facilitating precision time protocol use in a coordinated timing network
US11748141B2 (en) Providing virtual devices direct access to clock times in memory locations managed by a hypervisor
US20160195894A1 (en) Drift compensation for a real time clock circuit
D’souza Designing Predictable Time-Aware and Energy-Efficient Cyber-Physical Systems
Kobori et al. Performance evaluation of portable time synchronization method using eBPF

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200603

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210622

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210922

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20211130