JP2022501733A - データ管理の方法および装置並びにサーバ - Google Patents

データ管理の方法および装置並びにサーバ Download PDF

Info

Publication number
JP2022501733A
JP2022501733A JP2021517200A JP2021517200A JP2022501733A JP 2022501733 A JP2022501733 A JP 2022501733A JP 2021517200 A JP2021517200 A JP 2021517200A JP 2021517200 A JP2021517200 A JP 2021517200A JP 2022501733 A JP2022501733 A JP 2022501733A
Authority
JP
Japan
Prior art keywords
identifier
user
aei
virtual machine
request
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
JP2021517200A
Other languages
English (en)
Inventor
チュウ、ゼン
エルブイ、ジチャン
ティアン、シンフイ
Original Assignee
ホアウェイ・テクノロジーズ・カンパニー・リミテッド
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 ホアウェイ・テクノロジーズ・カンパニー・リミテッド filed Critical ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Publication of JP2022501733A publication Critical patent/JP2022501733A/ja
Pending legal-status Critical Current

Links

Images

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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本願は、データ管理の方法および装置並びにサーバを提供する。方法は、管理サーバが、第1要求を受信する段階と、第1要求内の第1ユーザの識別子に基づいて、第1ユーザの識別子に関連付けられるシャドウテナントバケットが存在するかどうかを判断する段階と、第1ユーザの識別子に関連付けられるシャドウテナントバケットが存在する場合に、第1ユーザが登録を要求するアクセラレーションエンジンイメージAEIを、第1ユーザの識別子に関連付けられるシャドウテナントバケットに記憶する段階であって、シャドウテナントバケットは、指定ユーザのAEIを記憶するために使用され、各シャドウテナントバケットはユーザと一対一の対応関係にある、記憶する段階とを含む。このようにして、AEIの記憶のセキュリティが向上する。

Description

本願はクラウドコンピューティング技術の分野、特に、データ管理の方法および装置並びにサーバに関する。
フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)アクセラレーティッドクラウドサーバは、FPGAベースの融通性があるクラウドサーバである。FPGAアクセラレーティッドクラウドサーバは、ユーザがFPGAベースのアクセラレーションサービスを容易に開発および展開するためのツールおよび環境を提供し、かつ、使いやすく、費用効果が高く、俊敏性があり、安全なFPGAクラウドサービスをユーザに提供するために使用され得る。
FPGAアクセラレーティッドクラウドサーバは、知的財産(intellectual property、IP)カーネルモジュールを開発、展開、および使用するために使用され得る。IPカーネルモジュールは、事前設計されたか、検証されていないか、または検証された、定められた機能を有する集積回路、デバイス、またはコンポーネントであり得る。IPカーネルモジュールを開発した後、ユーザはIPカーネルモジュールに関連付けられるアクセラレーションエンジンイメージ(accelerated engine image、AEI)をクラウドサーバに記憶することができる。このユーザと、IPカーネルモジュールの使用許可を取得する別のユーザとは、IPカーネルモジュールに関連付けられるAEIをロードおよび使用して、IPカーネルモジュールの機能を実装することができる。
ただし、現在、ユーザにより開発されるIPカーネルモジュールに関連付けられるAEIは一律に記憶および管理されており、これにはセキュリティ上のリスクがある。
本願は、ユーザによるAEIの現在の一律的な記憶および管理にセキュリティ上のリスクがあるという技術的問題を解決するための、データ管理の方法および装置並びにサーバを提供する。
第1態様によれば、データ管理方法が提供される。第1要求が受信された後、第1要求内の第1ユーザの識別子に基づいて、第1ユーザの識別子に関連付けられるシャドウテナントバケットが存在するかどうかが判断され、第1ユーザの識別子に関連付けられるシャドウテナントバケットが存在する場合は、第1ユーザが登録を要求するAEIが、第1ユーザの識別子に関連付けられるシャドウテナントバケットに記憶され、第1要求は、第1ユーザによりカスタマイズされるAEIの登録を要求するために使用され、シャドウテナントバケットは、第1ユーザのAEIを記憶するために使用され、各シャドウテナントバケットはユーザと一対一の対応関係にある。
前述の方式によれば、第1ユーザが登録を要求するAEIはシャドウテナントバケットに記憶されてよい。シャドウテナントバケットが指定ユーザのAEIを記憶することから、AEIの記憶のセキュリティを向上させることができる。
ある考えられる実装では、第1要求内の第1ユーザの識別子に関連付けられるシャドウテナントバケットが存在するかどうかが判断されるときに、第1ユーザの識別子に関連付けられるシャドウテナントバケットの識別子が第1ルールに従って決定されてよく、第1ルールは、シャドウテナントバケットの識別子の生成ルールを示すために使用される。シャドウテナントバケットの識別子が決定された後、現在作成されている全てのシャドウテナントバケットの中にこの識別子を持つシャドウテナントバケットが存在するかどうかが照会されてよい。この識別子を持つシャドウテナントバケットが存在する場合は、そのシャドウテナントバケットが、第1ユーザの識別子に関連付けられるシャドウテナントバケットである。従って、第1ユーザの識別子に関連付けられる既存のシャドウテナントバケットは、第1要求内の第1ユーザの識別子に基づいて照会されてよい。
ある考えられる実装では、第1ユーザの識別子に関連付けられるシャドウテナントバケットが存在しないと判断された場合に、事前設定されたサイズの記憶スペースが、第1ユーザの識別子に関連付けられるシャドウテナントバケットとして選択されてよい。その後、第1ユーザにより登録されるAEIは、新たに作成されたシャドウテナントバケットに記憶されてよい。従って、現在作成されている全てのシャドウテナントバケットの中に第1ユーザの識別子に関連付けられるシャドウテナントバケットが存在しない場合は、第1ユーザの識別子に関連付けられるシャドウテナントバケットが作成され、第1ユーザにより登録されるAEIがシャドウテナントバケットに記憶される。
ある考えられる実装では、第2要求が受信された場合に、第2要求に含まれる第2ユーザの識別子とAEIの識別子とに基づいて、第2ユーザの許可検証が成功していると判断されてよい。その後、第2要求内のFPGAカードに関する情報に基づいてAEIがFPGAカードにロードされ、FPGAカードは、第2ユーザに関連付けられる第1仮想マシンに関連付けられるFPGAカードである。このようにして、AEIは、第2要求に基づいて、第2ユーザに関連付けられる第1仮想マシンに関連付けられるFPGAカードにロードされてよい。従って、第2ユーザは、第1仮想マシンを介してFPGAカード内のAEIを使用してよい。
ある考えられる実装では、第2要求に保持される第2ユーザの識別子が第1仮想マシンの識別子を含む場合、第2ユーザの許可検証が成功しているかどうかが判断されるときに、第1仮想マシンの識別子に対応するイメージの識別子が第1対応関係に従って決定されてよく、このイメージの識別子に対応する少なくとも1つのAEIの識別子が第2対応関係に従って決定される。第2要求に含まれるAEIの識別子が、少なくとも1つのAEIの決定された識別子に含まれる場合は、第2ユーザの許可検証が成功していると判断されてよく、そうでない場合は、第2ユーザの許可検証が失敗していると判断されてよい。第1対応関係は、仮想マシンの識別子と仮想マシンによる使用が許可されているイメージの識別子との対応関係を示してよく、第2対応関係は、イメージの識別子とAEIの識別子との対応関係を示してよい。従って、許可検証は、第2ユーザの識別子とAEIの識別子とに基づいて第2ユーザに対して実行されてよい。
ある考えられる実装では、第3要求が受信された場合に、第2仮想マシンにより占有されるリソースが第3要求に応答して解放されよく、第2仮想マシンに関連付けられるFPGAカード内のAEIが非同期的にクリアされてよい。第3要求は、第2仮想マシンの削除を要求するために第3ユーザにより使用され、第2仮想マシンは、第3ユーザに関連付けられる仮想マシンである。このようにして、仮想マシンを削除するプロセスにあるリソース解放段階とFPGAカードクリア段階とを切り離すことができる。これによって、FPGAカードのクリアプログラムにおけるプログラムの障害により引き起こされる仮想マシンのリソース解放の失敗が回避される。
ある考えられる実装では、第2仮想マシンに関連付けられるFPGAカード内のAEIがクリアされるときに、FPGAカードがクリア対象ステータスに設定されてよく、FPGAカードのAEIクリアインタフェースが呼び出されて、AEIがクリアされる。その後、FPGAカード内のAEIが正常にクリアされているかどうかが、事前設定された持続時間で判断されてよい。FPGAカード内のAEIが正常にクリアされている場合は、FPGAカードを利用可能ステータスに設定する。そうでない場合は、FPGAカードが正常にクリアされていないと判断される。FPGAカードが正常にクリアされていない回数が閾値に達した場合は、警告が生成される。従って、FPGAカード内のAEIをクリアする方式を提供し、正常にクリアされていないFPGAカードの状態をクリア対象ステータスに設定することで、別のユーザに関連付けられる仮想マシンにFPGAカードが再割り当てされるためにクリアされなかったAEIの漏洩を回避する。更には、FPGAカードが正常にクリアされていない回数が事前設定された閾値に達すると、警告が更に生成されて、FPGAカードが長時間にわたってクリア対象ステータスになるのを防止することができる。
第2態様によれば、本願はデータ管理装置を提供する。この装置は、第1態様または第1態様の考えられる実装のいずれか1つにおけるトラブルシューティング方法を実行するように構成されるモジュールを含む。第3態様によれば、本願はサーバを提供する。このサーバは、プロセッサ、メモリ、通信インタフェース、およびバスを含む。プロセッサ、メモリ、および通信インタフェースは、バスを介して互いに接続されて通信する。メモリは、コンピュータ実行可能命令を記憶するように構成される。装置が実行されると、プロセッサはメモリ内のコンピュータ実行可能命令を実行して、装置内のハードウェアリソースを使用することにより第1態様または第1態様の考えられる実装のいずれか1つに係る方法の動作段階を実行する。
第4態様によれば、本願はFPGAクラウドコンピューティングシステムを提供する。FPGAクラウドコンピューティングシステムは、サービスサーバおよび管理サーバを含む。管理サーバは、第1態様または第1態様の考えられる実装のいずれか1つにおける方法の動作段階を実行するように構成されてよい。
第5態様によれば、本願はコンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は命令を記憶する。命令がコンピュータ上で実行されると、コンピュータは、第1態様または第1態様の考えられる実装のいずれか1つにおける方法を実行することができる。
第6態様によれば、本願は、命令を含むコンピュータプログラム製品を提供する。命令がコンピュータ上で実行されると、コンピュータは、第1態様または第1態様の考えられる実装のいずれか1つにおける方法を実行することができる。
前述の態様で提供する実装に基づいて、本願は更に、これらの実装を組み合わせてより多くの実装を提供することができる。
本願のある実施形態に係るFPGAクラウドコンピューティングシステムのアーキテクチャの概略図である。
本願のある実施形態に係る別のFPGAクラウドコンピューティングシステムのアーキテクチャの概略図である。
本願のある実施形態に係る、AEIを登録する方法の概略フローチャートである。
本願のある実施形態に係るデータ管理方法の概略フローチャートである。 本願のある実施形態に係るデータ管理方法の概略フローチャートである。
本願のある実施形態に係る別のデータ管理方法の概略フローチャートである。
本願のある実施形態に係る別のデータ管理方法の概略フローチャートである。
本願のある実施形態に係るデータ管理装置の概略構造図である。
本願のある実施形態に係る別のデータ管理装置の概略構造図である。
本願の目的、技術的解決策、および利点をより明確にするために、以下では、添付の図面を参照しながら本願について更に詳細に説明する。
以下では、本願に関連する用語について説明する。
1.少なくとも1つは1または複数を意味する。すなわち、1つ、2つ、3つ、またはそれ以上を含む。
2.複数は2つまたはそれ以上を意味する。すなわち、2つ、3つ、またはそれ以上を含む。
3.ロードは、ファイルがAからBにコピーされ、その結果、AおよびBの両方がそのファイルを有することを意味する場合がある。代替的に、ファイルがAからBにカットされる場合もあり、カット後はBのみがそのファイルを有する。
4.識別子(identifier)は、番号、名前、および記述情報などを含むオブジェクトを一意的に識別する情報であってよい。例えば、AEIの識別子は、AEIの番号、AEIの名前、およびAEIの記述情報のうちの1または複数を含んでよい。
5.FPGAアクセラレーティッドクラウドサーバは、サービス開発のためのツールおよび環境を提供し、かつ、FPGAアクセラレーションアルゴリズムを実装する、仮想マシンまたはサーバである。FPGAアクセラレーティッドクラウドサーバは、ハードウェア開発キット(hardware development kit、HDK)およびソフトウェア開発キット(software development kit、SDK)を提供するために使用されてよい。HDKは、アクセラレータの例、符号化環境、シミュレーションプラットフォーム、自動コンパイルツール、並びにコード暗号化およびデバッグツールキットなどの必要なツールを含んでよく、SDKは、アプリケーションの例、ハードウェア抽象的インタフェース、アクセラレータ抽象的インタフェース、アクセラレータドライバおよびランタイム(runtime)、並びにバージョン管理ツールなどの必要なツールを含んでよい。ユーザは、FPGAアクセラレーティッドクラウドサーバを介してアプリケーションを開発することができる。開発ファイルは、FPGA関連ネットリスト、コンパイルレポート、および時系列レポートなど、例えば、デザインチェックポイント(design check point、DCP)ファイルを含んでよい。開発DCPファイルは、ユーザに対応するバックグラウンド記憶バケットに記憶されてよい。
6.記憶バケットはテナントバケットまたはテナント記憶バケットとも呼ばれ、ユーザに関連付けられるFPGAアクセラレーティッドクラウドサーバの記憶スペースである。記憶バケットは、ユーザにより認識および操作され得る記憶スペースである。ユーザは、クラウドサーバを介してユーザに関連付けられる記憶スペースにアクセスすることができる。例えば、ユーザは記憶スペースにファイルを記憶することができ、ユーザに関連付けられる記憶バケットを設定することもできる。例えば、ユーザは、ユーザに関連付けられる記憶バケットに別のユーザがアクセスすることを許可または禁止することができる。記憶バケットは、データおよびファイルを記憶するために使用され得る。例えば、記憶バケットは、ユーザにより開発されるDCPファイルとAEIとを記憶するために使用され得る。本願の実施形態に関連する記憶バケットは、オブジェクト記憶サービス(object storage service、OBS)記憶バケットであってもよいし、別のタイプの記憶サービスを使用することにより実装されてもよい。本願の実施形態ではこれについて限定しない。
7.AEIは、FPGAアクセラレーティッドクラウドサーバまたはラボ環境を介してユーザにより開発されるファイル(例えば、DCPファイル)、または、IPカーネルモジュールに関連付けられ、かつ、ユーザがFPGAアクセラレーティッドクラウドサーバを介してコンパイルを実行した後に取得される、ファイル(データ、ロジック、およびアルゴリズムなどを含んでよい)であってよい。AEIをロードおよび実行することで、IPカーネルモジュールの対応する機能が実装され得る。ユーザは、FPGAアクセラレーティッドクラウドサーバを介してユーザのカスタマイズしたAEIを登録してよく、ユーザのカスタマイズしたAEIは、ユーザのカスタマイズしたアルゴリズムおよび/またはロジックを含んでよい。AEIを実装することで、既存のクラウドサービス機能またはユーザのカスタマイズした新たなクラウドサービス機能が実装されてよい。
8.シャドウテナントバケットはシャドウバケットまたはシャドウ記憶バケットとも呼ばれ、ユーザに関連付けられ、かつ、FPGAアクセラレーティッドクラウドサーバ内にある、記憶スペースである。FPGAアクセラレーティッドクラウドサーバは、ユーザに関連付けられるシャドウテナントバケットにユーザのデータおよびファイルを記憶してよい。ただし、ユーザは、これらのデータおよびファイルがシャドウテナントバケットに記憶されているのを認識することができない。シャドウテナントバケットが作成されるとき、シャドウテナントバケットをユーザの識別子および/または認証情報にバインドして、ユーザをシャドウテナントバケットと関連付けてよい。シャドウテナントバケットと記憶バケットとの違いは、ユーザがシャドウテナントバケットの存在を認識できないことである。クラウドサーバは、条件を満たしているデータをシャドウテナントバケットに自動的に記憶する。ユーザがデータを呼び出すと、クラウドサーバは、そのデータがシャドウテナントバケットに記憶されているかどうかを自動的に識別する。そのデータがシャドウテナントバケットに記憶されている場合は、クラウドサーバは、シャドウテナントバケット内のデータを自動的に呼び出す。ユーザはこのプロセスを認識することができない。ただし、記憶バケットは、ユーザにより認識され得る記憶スペースである。ユーザは、記憶バケットにデータを記憶するようクラウドサーバを制御し、記憶バケット内のデータを呼び出すようにクラウドサーバを制御することができる。
9.FPGAカードはFPGAアクセラレーションカードまたはFPGAデータアクセラレーションカードとも呼ばれ、FPGAを介して複雑なロジックおよびアルゴリズムの処理を実装することができる。FPGAカードは、アルゴリズムアクセラレーション、ビッグデータ分析、高性能コンピューティング、およびサーバハードウェアアクセラレーションなどの一般的なアクセラレーション適用シナリオで使用される。ユーザの実際の要件に基づいて、FPGAアクセラレーションカードのアルゴリズムが修正されてよい。例えば、FPGAカードに関連付けられるサーバおよび仮想マシン(virtual machine、VM)を介してAEIがFPGAカードにロードされてよく、その結果、AEIに含まれるアルゴリズムがFPGAカードにロードされる。FPGAカードにロードされるAEIは、サーバおよび仮想マシンを介して修正または削除されて、FPGAカードのアクセラレーションアルゴリズムが修正または削除される。
10.FPGA仮想マシンは、FPGAクラウドコンピューティングシステム内にあり、かつ、少なくとも1つのFPGAカードに関連付けられる、仮想マシンであってよい。FPGA仮想マシンは、FPGAカードにロードされるアルゴリズムを実行して、アルゴリズムの対応する機能を実装するように構成されてよい。FPGA仮想マシンはユーザに関連付けられてよい。例えば、FPGAクラウドコンピューティングシステムは、ユーザの要求に従ってユーザ用のFPGA仮想マシンを作成し、ユーザの許可および要件などに基づいて、FPGA仮想マシンとFPGA仮想マシンに関連付けられるFPGAカードとを構成してよい。
11.認証情報は、ユーザ認証に使用される情報である。認証とは、ユーザがFPGAクラウドサーバにアクセスするかまたはAEIサービス(例えば、AEIの作成、AEIの実行、またはAEIの削除)を使用するときに、ユーザの認証情報に基づいてユーザの許可が認証されることを意味する。認証ユーザのみがFPGAクラウドサーバにアクセスするかまたはAEIサービスを使用して、本物のアイデンティティを持たないユーザ、または認証情報が本物ではなく無効であるユーザによる、FPGAクラウドサーバへのアクセスまたはAEIサービスの使用を防止することができる。これによって、FPGAクラウドサーバのセキュリティが向上する。ユーザの認証情報は、以下に限定するわけではないが、ユーザのアクセスキー識別子(access key ID、AK)およびシークレットアクセスキー(secret access key、SK)を含む。本明細書における認証は、アイデンティティ/アクセス管理(Identity and Access Management、IAM)認証であり得る。
以下では、添付の図面を参照しながら本願の実施形態について詳細に説明する。最初に、本願のある実施形態で提供するクラウドコンピューティングシステムについて説明する。このシステムには、本願で提供するデータ管理方法が適用されてよい。次に、本願のある実施形態で提供するデータ管理装置について説明する。最後に、本願のある実施形態で提供するデータ管理方法について説明する。
図1に示すように、本願のある実施形態で提供するFPGAクラウドコンピューティングシステム100は、複数のサーバを含む仮想化環境であってよい。FPGAクラウドコンピューティングシステム100は、複数の管理サーバ102と複数のサービスサーバ101とを含んでよい。複数の管理サーバ102は、通信インタフェースを介して互いに相互作用してよく、複数のサービスサーバ101も、通信インタフェースを介して互いに相互作用してよい。
各サービスサーバ101は、1または複数のFPGAカード104に接続されてよく、各サービスサーバ101上では、1または複数の仮想マシン103が実行されてよい。本明細書における仮想マシン103は、FPGA仮想マシンまたは標準的な仮想マシンであってよく、各FPGA仮想マシンは、1または複数のFPGAカードに関連付けられてよい。FPGA仮想マシンは、FPGA仮想マシンに関連付けられるFPGAカードにロードされるアクセラレーションアルゴリズムを実行する(例えば、FPGAカードにロードされるAEIを呼び出して、AEI関連機能を実装する)ように構成されてよく、標準的な仮想マシンは、FPGAカードに関連付けられない仮想マシンである。
FPGAクラウドコンピューティングシステム100は、ユーザに関連付けられる1または複数の標準的な仮想マシンまたはFPGA仮想マシンをユーザのために作成してよい。例えば、図1に示すように、仮想マシン103はサービスサーバ101で実行され、ユーザは標準的な仮想マシンまたはFPGA仮想マシンを介してFPGAクラウドコンピューティングシステム100にアクセスしてよい。具体的には、第1ユーザに関連付けられる仮想マシン103がFPGA仮想マシンであることが想定され、第1ユーザは、仮想マシン103を介して、仮想マシン103に関連付けられるFPGAカードに命令コードによりロードされるAEIを呼び出して、AEIを実行してよい。
管理サーバ102は、以下に限定するわけではないが、AEIのコンパイルおよび生成、仮想マシン103(FPGA仮想マシンまたは標準的な仮想マシン)の作成、修正、または削除、並びにFPGA仮想マシンに関連付けられるFPGAカード内のAEIのロードまたは削除を含む、FPGAクラウドコンピューティングシステム100の管理を行うように構成されてよい。管理サーバ102は、ソフトウェア、ハードウェア、またはソフトウェアとハードウェアとの組み合わせを介して、少なくとも1つのクラウドサービスを提供してよい。例えば、管理サーバ102は、FPGAイメージサービス(FPGA image service)およびAEI管理サービス(AEI management service)を提供するように構成されてよく、AEIを管理するように構成される。例えば、FPGAイメージサービスは、ユーザによりアップロードされるDCPファイルを取得してよく、AEIファイルの記憶と、AEI関連情報の取得および照会とを行うように構成される。AEI管理サービスは、DCPファイルに基づいてAEIファイルをコンパイルおよび生成するために使用され得る。実装中、複数の管理サーバ102は、1または複数のサービスサーバ101を共同で管理してよい。複数の管理サーバは、アクティブ/スタンバイ動作モードを使用してよい。具体的には、1つの管理サーバ102がアクティブステータスの管理サーバであり、1または複数の他の管理サーバ102がスタンバイステータスの管理サーバである(スタンバイ管理サーバとサービスサーバ101との相互作用が図1の破線で示されている)。同じ時点で、サービスサーバの管理には、アクティブステータスの管理サーバのみが使用される。アクティブステータスの管理サーバに障害がある場合は、スタンバイステータスの複数の管理サーバがアクティブステータスの新たな管理サーバを再選択してよく、アクティブステータスの新たな管理サーバはサービスサーバの管理タスクを引き継ぐ。オプションで、複数の管理サーバは別の動作モードを使用してもよい。例えば、複数の管理サーバは負荷分散動作モードを使用し、これらの管理サーバは複数のサービスサーバを共同で管理する。本願のこの実施形態では、これら複数の管理サーバの動作モードについて限定しない。説明しやすくするために、本願のある実施形態の以下の説明では、複数の管理サーバがアクティブ/スタンバイ動作モードにある例を説明に使用する。
図1に示すアーキテクチャは、FPGAクラウドコンピューティングシステム100の考えられるハードウェア構造のみを示していることを理解されたい。図に示す構造に加えて、必要なコンポーネントが更に含まれてよい。例えば、FPGAクラウドコンピューティングシステム100は更に、データを記憶するように構成される記憶デバイスを含んでよく、記憶デバイスは、記憶ノードデバイスまたは記憶ノードデバイスクラスタを含んでよい。更に、図1に示すアーキテクチャは例に過ぎず、本願で提供するデータ管理システムがこれに限定されないことも理解されたい。具体的には、データ管理システム内の各サービスサーバは1つの仮想マシンを実行してもよいし、複数の仮想マシンを実行してもよい。各仮想マシンは1つのFPGAカードに関連付けられてもよいし、複数のFPGAカードに関連付けられてもよい。
図2は、本願のある実施形態に係るFPGAクラウドコンピューティングシステム100の論理アーキテクチャの概略図である。図に示すように、管理サーバ102および/またはサービスサーバ101は、図2に示すウェブ(web)ページ201、クラウド管理サービス202、FPGAエージェント(agent)204、FPGAイメージサービス205、クラウド記憶モジュール206、およびデータベース(database)207を提供する。図2に示すアーキテクチャに基づいて、ユーザは、ウェブページ201を介してFPGA仮想マシンの作成を要求してよい、または、ユーザは、作成されるFPGA仮想マシンを介してFPGAクラウドコンピューティングシステム100にアクセスしてよい。FPGAクラウドコンピューティングシステム100のソフトウェアを介して、ウェブページ201の機能が実装されてよい。具体的には、ユーザは、ウェブページ201を介して、FPGAクラウドコンピューティングシステム100内のクラウド管理サービス202にFPGA仮想マシンの作成要求を送信する。クラウド管理サービス202は、その要求に基づいて、仮想マシン103を作成するようサービスサーバを制御してよく、仮想マシン103はFPGAカード203に関連付けられる。本明細書におけるクラウド管理サービス202は、サービスとしてのインフラストラクチャ(infrastructure as a service、IaaS)層を介して実装されてよい。IaaS層は、ユーザに記憶リソース(例えば、データベース207)およびハードウェアデバイスを提供し、その結果、ユーザは、その記憶リソースおよびハードウェアデバイスを使用して、FPGAクラウドコンピューティングシステム100にアクセスする。本明細書におけるクラウド管理サービス202は具体的に、仮想化管理ソフトウェア、例えば、FusionSphereである。FPGAカード203は、事前設定されたモジュールを介してメッセージの転送を実装してよい。例えば、メールボックスを介してAEIをロードするプロセスでは、FPGAカード203は、仮想マシン103を介してユーザにより送信されるAEIのロード要求を受信し、その要求をメールボックスを介してFPGAエージェント204に送信して、FPGAカード203にAEIをロードするようFPGAエージェント204に要求する。FPGAエージェント204は、FPGAカード203により送信されるロード要求に基づいて、ロードする必要があるAEIの記憶情報(例えば、記憶アドレス)をFPGAイメージサービス205に照会してよい。FPGAイメージサービス205からAEIの記憶情報を取得した後、FPGAエージェント204は、AEIの記憶情報に基づいてクラウド記憶モジュール206からAEIをダウンロードしてよい。クラウド記憶モジュール206は、FPGAクラウドコンピューティングシステム100のデータ記憶モジュールであり、ユーザによりアップロードされるDCPおよび/またはAEIを記憶するように構成される。FPGAカード203は更に、取得されるAEIをFPGAカード203にロードするように構成されるダイナミックロードモジュール(iCAP)を含んでよい。
例えば、図1に示すサービスサーバ101により、図2に示すサービスサーバの機能が実装されてよく、図1に示すサービスサーバ101に接続されるFPGAカード104により、FPGAカード203の機能が実装されてよく、サービスサーバ101によりソフトウェアを介して、FPGAエージェント204が実装されてよい。図1に示す管理サーバ102によりソフトウェアを介して、ウェブページ201、クラウド管理サービス202、データベース207、FPGAイメージサービス205、およびクラウド記憶モジュール206の機能が実装されてよい。
以下では、図1および図2に示すFPGAクラウドコンピューティングシステム100を参照しながら、本願のある実施形態で提供するデータ管理方法について更に説明する。図3は、本願のある実施形態に係る、AEIを登録する方法の概略フローチャートである。この方法は、図1のサービスサーバ101および管理サーバ102により実装されてよい。この方法は以下の段階を含んでよい。
S101:サービスサーバが第1要求を送信する。ここで、サービスサーバは、第1ユーザに関連付けられる仮想マシンを実行し、第1要求は、第1ユーザによりカスタマイズされるAEIの登録を要求するために第1ユーザにより使用され、第1要求は第1ユーザの識別子とAEIの識別子とを含む。
S102:管理サーバが第1要求を受信する。
S103:管理サーバが、第1ユーザの識別子に基づいて、第1ユーザの識別子に関連付けられるシャドウテナントバケットが存在するかどうかを判断する。ここで、シャドウテナントバケットは、指定ユーザのAEIを記憶するために使用され、第1ユーザは指定ユーザのいずれか1つである。
S104:第1ユーザの識別子に関連付けられるシャドウテナントバケットが存在する場合に、管理サーバが、第1ユーザの識別子に関連付けられるシャドウテナントバケットにAEIを記憶する。
前述の方法によれば、管理サーバは、AEIを作成した後、第1ユーザの識別子に関連付けられるシャドウテナントバケットにAEIを記憶してよい。シャドウテナントバケットは指定ユーザのAEIを記憶するためにのみ使用されるため、第1ユーザが登録を要求するAEIを記憶するときに、複数のユーザのAEIが一律に記憶されなくなる。これによって、AEIのセキュリティが向上する。
ある考えられる実装では、各シャドウテナントバケットがユーザと一対一の対応関係にある。シャドウテナントバケットのセキュリティを向上させるために、シャドウテナントバケットは、指定ユーザが登録を要求するカスタマイズされたAEIのみを記憶するために使用され得る。具体的には、管理サーバは、第1ユーザと一対一の対応関係にあるシャドウテナントバケットを作成してよく、シャドウテナントバケットは第1ユーザの識別子に関連付けられてよく、シャドウテナントバケットは、第1ユーザが登録を要求するAEIを記憶するために使用される。
別の考えられる実施形態では、ユーザとシャドウテナントバケットとの関係が多対一の関係であってよい。本願では、複数の指定ユーザ(第1ユーザを含む)に対応するシャドウテナントバケットの作成を除外しない。シャドウテナントバケットは複数の指定ユーザの識別子に関連付けられてよく、その結果、シャドウテナントバケットは、これらの指定ユーザのうち第1ユーザおよび別のユーザにより共有されてよい。ユーザはシャドウテナントバケットにアクセスすることもシャドウテナントバケット内のファイルに対して操作を実行することもできないため、複数の指定ユーザがシャドウテナントバケットを共有しているときに、シャドウテナントバケットのセキュリティに対する影響はないかもしれない。同じ理由に基づいて、本願では、複数の指定ユーザ(第1ユーザを含む)に対応する複数のシャドウテナントバケットの作成を除外しない。複数のシャドウテナントバケットは複数の指定ユーザの識別子に関連付けられてよい。本明細書におけるシャドウテナントバケットとユーザの識別子との関連付けは、シャドウテナントバケットの識別子とユーザの識別子との関連関係として反映され得ることを理解されたい。
段階S101の実装中、第1ユーザは、仮想マシン103を介して、第1要求を送信するようサービスサーバをトリガしてよい。第1要求に含まれる第1ユーザの識別子は、ユーザの番号(例えば、ユーザの名前およびニックネームなど、FPGAクラウドコンピューティングシステム100の使用許可を取得するためにユーザが登録するときに取得される識別子)、ユーザの認証情報、およびユーザが位置するエリアの識別子(例えば、1つの一意的なエリア番号が華東に対応している)、または第1ユーザに関連付けられる仮想マシン103の識別子であってよい。第1ユーザは仮想マシン103に関連付けられるため、仮想マシン103の識別子は、第1ユーザを識別するための第1ユーザの識別子として使用されてよい。特定の実装では、ユーザの識別子、ユーザの認証情報、ユーザが位置するエリアのID、または第1ユーザに関連付けられる仮想マシン103の識別子のうちの1または複数が、第1ユーザの識別子として使用され得ることを理解されたい。
更に、第1要求内のAEIの識別子は、AEIの番号であってもよいし、第1ユーザにより入力されるAEIの名前および/または記述情報であってもよい。例えば、第1ユーザは、AEIの番号、名前、または記述情報のうちの1または複数を、選択またはタイピングすることで、AEIの識別子として入力してよい。サービスサーバ101は、AEIの識別子を取得した後、AEIの識別子を含む第1要求を生成する。
第1ユーザによりカスタマイズされ、かつ、段階S101で設計される、AEIは、第1ユーザによりテナントバケットにアップロードされる開発ファイル(例えば、DCPファイル)に基づくコンパイルを通じて生成され、かつ、第1ユーザによりカスタマイズされるロジックおよびアルゴリズムを含む、AEIである。AEIは、第1ユーザによりカスタマイズされるロジックおよびアルゴリズムを介して、既存の機能または第1ユーザにより新たに設計される機能を実装してよい。第1ユーザは、サービスサーバ101を介して、AEIの登録に使用されるファイルを、第1ユーザに関連付けられるテナントバケットにアップロードしてよい。本明細書におけるファイルは、第1ユーザによりカスタマイズされ、かつ、カスタマイズされたAEIを生成するために使用される、DCPファイルであってよい。
段階S103の実装中、管理サーバ102は、第1ルールに従って、第1ユーザの識別子に関連付けられるシャドウテナントバケットの識別子を決定し、この識別子を持つシャドウテナントバケットが存在するかどうかを判断してよい。存在する場合は、この識別子を持つシャドウテナントバケットが、第1ユーザの識別子に関連付けられるシャドウテナントバケットであると判断される。第1ルールは、シャドウテナントバケットの識別子がユーザの識別子に基づいて生成されるときに使用される生成ルールであってよく、第1ルールは、管理サーバ102において事前構成されてよい。実装中、管理サーバ102は、作成されたシャドウテナントバケットの識別子を記憶してよい。シャドウテナントバケットの識別子は、シャドウテナントバケットに関連付けられるユーザの識別子に基づいて、かつ、第1ルールに従って生成される。第1ユーザの識別子に関連付けられるシャドウテナントバケットの識別子が第1ルールに従って決定された後、管理サーバ102は、作成されたシャドウテナントバケットの識別子を照会して、第1ルールに従って決定される、第1ユーザの識別子に関連付けられるシャドウテナントバケットの識別子が含まれているかどうかを判断してよい。
具体的には、第1要求に保持される第1ユーザの識別子は、第1ユーザの識別子と、第1ユーザが位置するエリアの識別子とを含んでよい。第1ルールは、文字列をシャドウテナントバケットの識別子として使用している場合があり、文字列は、第1ユーザの識別子と、第1ユーザの識別子の中にある、第1ユーザが位置するエリアの識別子とを、指定された長さの乱数と組み合わせることにより取得される。
第1ユーザの識別子に関連付けられるシャドウテナントバケットが存在しないと管理サーバ102が判断した場合は、管理サーバ102は、第1ユーザの識別子に関連付けられるシャドウテナントバケットを作成し、第1ユーザの識別子に関連付けられるシャドウテナントバケットにAEIを記憶してよい。
具体的には、作成されたシャドウテナントバケットの識別子が、第1ルールに従って決定される、第1ユーザの識別子に関連付けられるシャドウテナントバケットの識別子を含まないと管理サーバ102が判断した場合は、管理サーバ102は、事前設定されたサイズの記憶スペースを選択し、この記憶スペースを、第1ユーザの識別子に関連付けられるシャドウテナントバケットとして使用し、シャドウテナントバケットにAEIを記憶して、シャドウテナントバケットの作成およびAEIの記憶を実装してよい。
ある考えられる実施形態では、第1ユーザの識別子が第1ユーザの認証情報を含む場合に、管理サーバ102は、第1ユーザの認証情報に基づきAEIを暗号化してシャドウテナントバケットに記憶することで、AEIの記憶中のセキュリティを更に向上させてよい。第1ユーザの認証情報は、第1ユーザのAKおよびSK、または他の認証情報であってよい。具体的には、データ記憶プロセスにおけるユーザの認証情報に基づいて、鍵対が生成されてよい。鍵対は、AEIを暗号化して暗号文を生成し、その暗号文を記憶するために使用される。AEIが取得されると、暗号文は鍵対に基づき復号されて、平文、すなわち、AEIが取得される。
以下では、図4Aおよび図4Bを参照しながら、本願のある実施形態に係るデータ管理方法の概略フローチャートについて更に説明する。図に示すように、この方法は以下の段階を含む。
S201:第1ユーザが、サービスサーバを介して、第1ユーザが登録する必要のあるAEIに対応するDCPファイルを、第1ユーザに関連付けられるテナントバケットにアップロードする。
実装中、第1ユーザは、第1ユーザに関連付けられる、サービスサーバ内の仮想マシンを介して、第1ユーザが登録する必要のあるAEIに対応するDCPファイルを、第1ユーザに関連付けられる記憶バケットにアップロードする。
S202:第1ユーザがサービスサーバを介して管理サーバに第1要求を送信して、AEIの登録を要求する。ここで、第1要求は、第1ユーザの識別子と、第1ユーザが位置するエリアの識別子と、第1ユーザの認証情報と、登録する必要があるAEIの名前および記述情報とを保持する。
S203:管理サーバが第1要求を受信する。
S204:管理サーバが、第1ユーザの認証情報に基づいて第1ユーザの認証を試みる。
S205:管理サーバが、第1ユーザに関連付けられるテナントバケットからDCPファイルを取得する。
第1ユーザに関連付けられるテナントバケット内にDCPファイルが存在しないと管理サーバが判断した場合は、管理サーバはエラーを報告し、DCPファイルがアップロードされていないかまたはアップロードエラーが生じていることをユーザに知らせてよい。
S206:管理サーバが、取得されたDCPファイルをAEIにコンパイルする。
管理サーバは更に、AEIの識別子(例えば、番号または名前)を生成し、生成されたAEIの識別子をサービスサーバに送信してよい。
S207:第1ユーザの識別子に関連付けられるシャドウテナントバケットの識別子が存在するかどうかを管理サーバが判断し、存在する場合は、段階S208を実行し、そうでない場合は、段階S209を実行する。
S208:管理サーバがAEIを暗号化し、第1ユーザの識別子に関連付けられるシャドウテナントバケットに記憶する。
S209:管理サーバが、第1ユーザの識別子に関連付けられるシャドウテナントバケットを作成する。
S210:管理サーバがAEIを暗号化し、第1ユーザの識別子に関連付けられる新たに作成されたシャドウテナントバケットに記憶する。
前述の方法によれば、管理サーバは、サービスサーバにより送信される第1要求に基づいてAEIを登録してよく、AEIを暗号化し、ユーザの識別子に関連付けられるシャドウテナントバケットに記憶してよい。これによって、AEIの記憶中のセキュリティが向上する。
前述の段階S208およびS210の実装中、管理サーバは更に、AEIの識別子とシャドウテナントバケットの識別子(例えば、番号または名前)との対応関係を記憶するなど、AEIの識別子をシャドウテナントバケットと関連付けてよい。AEIの識別子に基づいて、AEIの記憶位置が照会される。
ある考えられる実装では、管理サーバは、AEI登録プロセスを完了した後、AEIロードプロセスの実行を継続する。具体的には、管理サーバは第2要求を受信し、その要求は、AEIのロードを要求するために第2ユーザにより使用される。第2要求は、第2ユーザの識別子と、AEIの識別子と、FPGAカードに関する情報とを保持してよい。第2要求を受信した後、第2要求の識別子とAEIの識別子とに基づいて、第2ユーザの許可検証が成功していると管理サーバ102が判断した場合は、管理サーバ102は、第2要求内のFPGAカードに関する情報に基づいて、AEIの識別子に関連付けられるAEIを、第2ユーザに関連付けられる第1仮想マシンに関連付けられるFPGAカードにロードして、AEIのロードを実装してよい。実装中、第2ユーザは第1ユーザと同じであってよい。この場合は、第2ユーザは、S101からS104に示す段階を通じて前に登録されたAEIを第1仮想マシンにロードしてよい。オプションで、第2ユーザは第1ユーザとは異なっていてもよい。この場合は、第2ユーザのアクセス許可を決定する必要がある。第2ユーザが許可要件を満たしている場合は、第1ユーザにより登録されるAEIは、第2ユーザに関連付けられる第1仮想マシンにロードされる。第2ユーザのアクセス許可とは、第1ユーザにより登録されるAEIの使用許可を第2ユーザが有することを意味しており、この許可はネットワークインタフェースを介して設定されてよい。
特定の実装では、第2ユーザの許可検証が成功していることを管理サーバが判断する方法は以下の通りである。管理サーバ102が、第1対応関係に従って、第2ユーザの識別子に対応するイメージの識別子を決定してよい。ここで、第1対応関係は、第2ユーザの識別子と仮想マシンによる使用が許可されているイメージの識別子との対応関係を示す。管理サーバ102が、第2対応関係に従って、このイメージの識別子に対応する少なくとも1つのAEIの識別子を決定してよい。ここで、第2対応関係は、イメージの識別子とAEIの識別子との対応関係である。第2要求に保持されるAEIの識別子が、第2対応関係に従って決定される少なくとも1つのAEIの識別子に含まれると管理サーバ102が判断した場合は、管理サーバ102は、第2ユーザの許可検証が成功していると判断してよい。本明細書に関連するイメージは、1または複数のAEIに関連付けられてよい。イメージと1または複数のAEIとの関連関係が前述の第2対応関係として反映されてよい。イメージは1つまたは一連のクラウドサービスを示してよく、イメージに関連付けられる各AEIは具体的に、クラウドサービスに関連する特定のアルゴリズムであってよい。管理サーバ102は、ユーザがイメージの承認を取得した後、ユーザをイメージと関連付けてよい、例えば、ユーザが承認を取得した後、ユーザの識別子とユーザによる使用が許可されているイメージの識別子とを第1対応関係として記憶してよい。ユーザはイメージの登録または購入などを通じてイメージの承認を取得できることを理解されたい。
第2要求を受信した後、第2ユーザの許可検証が成功していると判断した場合は、管理サーバ102は、AEIの識別子に基づいてAEIの記憶情報を照会してよい。例えば、管理サーバ102は、シャドウテナントバケットの識別子とAEIを登録するプロセスで記憶されるAEIの識別子との対応関係に従って、AEIを記憶するシャドウテナントバケットの識別子を決定してよい。このようにして、AEIはシャドウテナントバケットから取得され得る。
第2要求内のFPGAカードに関する情報は、FPGAカードのスロット情報を示すために使用されてよく、管理サーバ102は、FPGAカードのスロット情報に基づいて、スロット情報に関連付けられるFPGAカードにAEIをロードしてよい。例えば、第1仮想マシンに関連付けられるFPGAカードのスロット番号は、0、1、2、および3である。FPGAカードに関する情報はスロット番号「0」であってよく、スロット番号が0であるFPGAカードにAEIをロードすることを示すために使用される。
ある考えられる実装方式では、管理サーバ102は、第1仮想マシンに関連付けられる全てのFPGAカードの中で利用可能ステータスにあるFPGAカードにのみAEIをロードしてよい。利用可能ステータスはFPGAカードの動作状態であり、管理サーバ102はFPGAカードの動作状態を設定してよい。例えば、管理サーバ102は、FPGAカードの動作状態を、FPGAカードに現在クリア対象データがあり、かつ、FPGAカードを新たなAEIのロードに使用できないことを示す、クリア対象ステータスに設定してよい。管理サーバ102は代替的に、FPGAカードの動作状態を、FPGAカードを新たなAEIのロードに使用できることを示す、利用可能ステータスに設定してもよい。
第2要求は、第1仮想マシンを実行するサービスサーバにより送信されてよい。例えば、第2ユーザが第1ユーザと同じである場合は、図1に示すサービスサーバ101により第2要求が送信されてよく、サービスサーバ101は、第1ユーザに関連付けられる仮想マシン103を実行する。第2ユーザが第1ユーザと異なる場合は、図1に示すサービスサーバ101により第2要求が送信されてよく、サービスサーバ101は、第2ユーザに関連付けられる仮想マシン103を実行する。
例えば、以下では、第2要求を送信する幾つかの方式について説明する。
方式1:第2ユーザが第2要求をトリガする。
具体的には、第2要求は、仮想マシンを介して第2ユーザにより送信されてよい。例えば、第2ユーザは、第1仮想マシンを介してAEIロードコマンドを手動で入力し、このコマンドを介して、管理サーバ102に第2要求を送信するよう、第1仮想マシンを実行するサービスサーバをトリガする。
方式2:第1仮想マシンが起動プロセスで第2要求を送信する。
第2要求は、第1仮想マシンを実行し、かつ、起動プロセスで第1仮想マシンによりトリガされる、サービスサーバにより管理サーバ102に送信されてよい。第1仮想マシンは、起動プロセスで、第2ユーザの認証情報と、AEIの識別子と、FPGAカードに関する情報とを取得してよい。具体的には、第2要求がサービスサーバ101(サービスサーバ101は第2ユーザに関連付けられる)により送信される例を使用する。第2ユーザは、仮想マシン103(すなわち、第2ユーザに関連付けられる仮想マシン)の登録を管理サーバ102に要求するプロセスで、AEIの識別子とFPGAカードに関する情報とを入力してよい。管理サーバ102は、第2ユーザが仮想マシン103の登録を要求するプロセスで、第2ユーザの認証情報を取得してよい。次に、管理サーバ102は、第2ユーザの認証情報と、AEIの識別子と、FPGAカードに関する情報とを記憶してよい。仮想マシン103が作成された後の仮想マシン103の起動プロセスで、第2ユーザに関連付けられる仮想マシン103を実行するサービスサーバ101は、前に記憶された第2ユーザの認証情報と、AEIの識別子と、FPGAカードに関する情報とを取得してよい。サービスサーバ101は第2要求を生成し、管理サーバ102に第2要求を送信する。このようにして、AEIは、仮想マシン103の起動プロセスで自動的にロードされ得る。前述した仮想マシン103の起動プロセスは、仮想マシン103が作成された後の第1起動プロセスであってよい。
第2要求は、図1に示す起動プロセスで第2ユーザに関連付けられる仮想マシン103によりトリガされるサービスサーバ101により送信されることが想定される。以下では、図5に示す仮想マシンがAEIをロードする方法のフローチャートを参照しながら、方式2に示すAEIをロードする方法について説明する。
S301:サービスサーバが、仮想マシンの起動プロセスで、第2ユーザの認証情報と、AEIの識別子と、FPGAカードに関する情報とを取得する。ここで、第2ユーザは仮想マシンに関連付けられる。
S302:サービスサーバが、仮想マシンの起動プロセスで管理サーバに第2要求を送信する。ここで、第2要求は、AEIのロードを要求するために第2ユーザにより使用され、第2要求は、第2ユーザの認証情報と、AEIの識別子と、FPGAカードに関する情報とを含む。
S303:管理サーバが第2要求を受信する。
S304:管理サーバが、第2要求内の認証情報とAEIの識別子とに基づいて、第2ユーザの許可検証が成功していると判断する。実装中、管理サーバは更に、第2要求内の認証情報に基づいて、第2ユーザが認証されていると判断してよい。
S305:管理サーバが、第2要求内のFPGAカードに関する情報に基づいて、AEIの識別子に関連付けられるAEIを、仮想マシンに関連付けられるFPGAカードにロードする。実装中、段階S305の実行中にAEIロードが失敗した場合は、管理サーバは更に、AEIロードコマンドを手動で入力するようユーザを促すなど、サービスサーバを介してユーザにプロンプトを出してよく、その結果、サービスサーバは更に、前述の方式1で第2要求を送信してよい。
前述の段階S301からS305に示す方法によれば、仮想マシンの起動プロセスではAEIロードプロセスが自動的に開始されてよく、その結果、ユーザは、仮想マシンが開始された後にAEIロードコマンドを手動で入力する必要がない。これによって、AEIロードプロセスがより簡単かつ高速になり、ユーザがAEIロードコマンドを手動で入力するときのエラーリスクが軽減する。
例えば、図2に示す論理アーキテクチャに基づいて、S301からS305に示す段階の実装中、ユーザがウェブページ201を介して仮想マシン103の登録を要求するプロセスでは、ユーザは、ユーザがロードする必要のあるAEIの識別子と、FPGAカードに関する情報とを入力してよい。ウェブページ201は、仮想マシンを登録するプロセスでユーザの認証情報を取得してもよい。次に、ウェブページ201は、IaaS層のクラウド管理サービス202に、ユーザの認証情報と、ユーザがロードする必要のあるAEIの識別子と、FPGAカードに関する情報とを送信してよく、クラウド管理サービス202は、IaaS層のデータベース(metadata)207に前述の情報を記憶する。仮想マシン103が作成された後の第1起動プロセスでは、仮想マシン103は、データベース207から起動スクリプトを介して、ユーザがロードする必要のあるAEIの識別子と、FPGAカードに関する情報とを取得して、前述の段階S301を実行し、それに応じて、前述の段階S302をトリガしてよい。このようにして、AEIは、前述の段階S301からS305を介してロードされる。代替的に、起動スクリプトを介して、ユーザがロードする必要のあるAEIの識別子と、FPGAカードに関する情報とを取得できない場合は、仮想マシン103は、ユーザがロードする必要のあるAEIの識別子と、FPGAカードに関する情報とを手動で入力するようユーザを促すなど、ユーザにエラーを報告してよい。
別の考えられる実施形態では、ユーザに関連付けられる仮想マシンが削除されるときに、ユーザに関連付けられるシャドウテナントバケットも削除する必要がある。具体的には、管理サーバは更に第3要求を受信してよく、第3要求は、第3ユーザに関連付けられる第2仮想マシンの削除を要求するために第3ユーザにより使用される。次に、管理サーバ102は、第3要求に応答して、第2仮想マシンにより占有されるリソースを解放し、第2仮想マシンに関連付けられるFPGAカード内のAEIを非同期的にクリアしてよい。本明細書における第3ユーザは、第1ユーザと同じであってもよいし、第2ユーザと同じであってもよいし、図1に示す第1ユーザおよび第2ユーザの両方と異なっていてもよい。第3ユーザが第1ユーザと同じである場合は、第3要求は、図1に示され、かつ、第1ユーザに関連付けられるVM103によりトリガされる、サービスサーバ101により管理サーバ102に送信されてよく、第1ユーザに関連付けられるVM103の削除を要求するために使用される。第3ユーザが第2ユーザと同じである場合は、第3要求は、図1に示され、かつ、第2ユーザに関連付けられるVM103によりトリガされる、サービスサーバ101により管理サーバ102に送信されてよく、第2ユーザに関連付けられるVM103の削除を要求するために使用される。
前述の方式では、管理サーバ102は、FPGAカードにロードされるAEIのクリアが完了するまで待機してから、第2仮想マシンにより占有されるリソースを解放する必要がなくなり、FPGAカードにAEIをロードするプロセスでの障害により引き起こされる、第2仮想マシンにより占有されるリソースの解放の失敗が回避される。これによって、第2仮想マシンにより占有されるリソースのクリアに失敗することで引き起こされるユーザデータの漏洩リスクが回避され、FPGAクラウドサービスのセキュリティが向上する。
具体的には、管理サーバ102は、第2仮想マシンに関連付けられるFPGAカード内のAEIをクリアするとき、各FPGAカードをクリア対象ステータスに設定し、事前設定された持続時間(例えば、10秒または60秒)ごとにポーリングを実行して、各FPGAカードにロードされたAEIがクリアされているかどうかを判断してよい。FPGAカードが正常にクリアされていると判断された場合は、管理サーバ102はFPGAカードを利用可能ステータスに設定する。そうでない場合は、FPGAカードのクリアに失敗していると判断され、管理サーバ102は、事前設定された持続時間の後、FPGAカードにロードされたAEIがクリアされているかどうかを再び確認する。管理サーバ102は、FPGAカードのクリアに失敗している回数が閾値(閾値は、定数、例えば、1または3に設定されてよい)に達していると判断した後に警告を生成してよい。例えば、管理サーバ102は、FPGAカードのクリアに失敗していることを第3ユーザに知らせるよう第2仮想マシンに通知し、次に、第3ユーザはFPGAカード内のAEIを別の方式でクリアしてよい。
前述のプロセスでは、FPGAカードは、AEIがクリアされる前に利用可能ステータスではなくなり、FPGAカード内のAEIがクリアされる前に別のユーザの要求に従って新たなAEIをロードすることが回避され、クリアされていないAEIの漏洩が回避される。これによって、FPGAクラウドサービスのセキュリティが向上する。
次に、図6に示すフローチャートを参照しながら、第3ユーザが図1に示すFPGAクラウドコンピューティングシステム100における第1ユーザである例を使用して、第1ユーザが仮想マシン103の削除を要求するプロセスについて説明する。
S401:サービスサーバが管理サーバに第3要求を送信する。ここで、第3要求は、第1ユーザに関連付けられる仮想マシンの削除を要求するために第1ユーザにより使用され、第3要求は第1ユーザの認証情報を含む。
S402:管理サーバが第3要求を受信する。
S403:管理サーバは、第3要求内の認証情報に基づいて、第1ユーザが認証されていると判断する。
S404:管理サーバが、仮想マシンにより占有されるリソースを解放し、仮想マシンに関連付けられるFPGAカード内のAEIを非同期的にクリアする。
前述の段階S401からS404に示す方法によれば、仮想マシン103により占有されるリソースの解放は、FPGAカード内のAEIのクリア結果の影響を受けない。従って、FPGAカード内のAEIのクリアに失敗しても、仮想マシン103により占有されるリソースは依然として通常通り解放され得る。これによって、仮想マシンリソースの異常な解放により引き起こされるユーザデータの漏洩が回避される。
図1から図6を参照しながら、本願の実施形態で提供するデータ管理方法について詳細に説明する。以下では、図7および図8を参照しながら、本願の複数の実施形態に係るサーバおよびデータ管理装置について説明する。
図7は、本願のある実施形態に係るデータ管理装置700の概略構造図である。データ管理装置700は、図1に示すシステムに適用可能であってよく、前述した方法の実施形態における管理サーバの機能を実行するように構成される。データ管理装置700は、第1要求受信モジュール701、シャドウテナントバケット決定モジュール702、シャドウテナントバケット記憶モジュール703、シャドウテナントバケット作成モジュール704、第2要求受信モジュール705、許可検証モジュール706、ロードモジュール707、第3要求受信モジュール708、および削除モジュール709を含む。
第1要求受信モジュール701は、第1要求を受信するように構成される。第1要求は、第1ユーザによりカスタマイズされるアクセラレーションエンジンイメージAEIの登録を要求するために第1ユーザにより使用され、第1要求は第1ユーザの識別子とAEIの識別子とを含む。
シャドウテナントバケット決定モジュール702は、第1ユーザの識別子に基づいて、第1ユーザの識別子に関連付けられるシャドウテナントバケットが存在するかどうかを判断するように構成される。シャドウテナントバケットは、第1ユーザのAEIを記憶するために使用され、各シャドウテナントバケットはユーザと一対一の対応関係にある。
シャドウテナントバケット記憶モジュール703は、第1ユーザの識別子に関連付けられるシャドウテナントバケットが存在する場合に、第1ユーザの識別子に関連付けられるシャドウテナントバケットにAEIを記憶するように構成される。
オプションで、第1ユーザの識別子に基づいて、第1ユーザの識別子に関連付けられるシャドウテナントバケットが存在するかどうかを判断するときに、シャドウテナントバケット決定モジュール702は具体的に、第1ルールに従って、第1ユーザの識別子に関連付けられるシャドウテナントバケットの識別子を決定することであって、第1ルールは、シャドウテナントバケットの識別子を生成するための生成ルールを示すために使用される、決定することと、この識別子を持つシャドウテナントバケットが存在するかどうかを判断することと、この識別子を持つシャドウテナントバケットが存在する場合に、この識別子を持つシャドウテナントバケットが、第1ユーザの識別子に関連付けられるシャドウテナントバケットであると判断することとを行うように構成される。
オプションで、シャドウテナントバケット作成モジュール704は、第1ユーザの識別子に関連付けられるシャドウテナントバケットが存在しない場合に、事前設定されたサイズの記憶スペースを選択し、この記憶スペースを、第1ユーザの識別子に関連付けられるシャドウテナントバケットとして使用し、かつ、第1ユーザの識別子に関連付けられるシャドウテナントバケットにAEIを記憶するように構成される。
オプションで、第2要求受信モジュール705は、第2要求を受信するように構成される。第2要求は、AEIのロードを要求するために第2ユーザにより使用され、第2要求は、第2ユーザの識別子と、AEIの識別子と、フィールドプログラマブルゲートアレイFPGAカードに関する情報とを含む。
許可検証モジュール706は、第2ユーザの識別子とAEIの識別子とに基づいて第2ユーザに対する許可検証を実行するように構成される。
ロードモジュール707は、第2ユーザに対して実行される許可検証が成功した場合に、FPGAカードに関する情報に基づいて、第1仮想マシンに関連付けられるFPGAカードにAEIをロードするように構成され、第1仮想マシンは、第2ユーザに関連付けられる仮想マシンである。
オプションで、第2ユーザの識別子が第1仮想マシンの識別子を含む場合は、第2ユーザの識別子とAEIの識別子とに基づいて第2ユーザに対する許可検証を実行するときに、許可検証モジュール706は具体的に、第1対応関係に従って、第1仮想マシンの識別子に対応するイメージの識別子を決定することであって、第1対応関係は、仮想マシンの識別子と仮想マシンによる使用が許可されているイメージの識別子との対応関係を示す、決定することと、第2対応関係に従って、このイメージの識別子に対応する少なくとも1つのAEIの識別子を決定することであって、第2対応関係は、イメージの識別子とAEIの識別子との対応関係である、決定することと、少なくとも1つのAEIの識別子がAEIの識別子を含むと判断することとを行うように構成される。
第3要求受信モジュール708は、第3要求を受信するように構成される。第3要求は、第2仮想マシンの削除を要求するために第3ユーザにより使用され、第2仮想マシンは、第3ユーザに関連付けられる仮想マシンである。
削除モジュール709は、第2仮想マシンにより占有されるリソースを解放し、かつ、第2仮想マシンに関連付けられるFPGAカード内のAEIをクリアするように構成される。
オプションで、第2仮想マシンにより占有されるリソースを解放し、かつ、第2仮想マシンに関連付けられるFPGAカード内のAEIをクリアするときに、削除モジュール709は具体的に、FPGAカードの状態をクリア対象ステータスに設定し、第2仮想マシンに関連付けられるFPGAカードのAEIクリアインタフェースを呼び出して、第2仮想マシンに関連付けられるFPGAカードにロードされるAEIをクリアすることと、事前設定された持続時間が満たされると、第2仮想マシンに関連付けられる複数のFPGAカードの各FPGAカード内のAEIが正常にクリアされているかどうかを判断することと、正常にクリアされている場合に、FPGAカードを利用可能ステータスに設定し、そうでない場合に、FPGAカードが正常にクリアされていないと判断し、FPGAカードが正常にクリアされていない回数が閾値に達していると判断した後に警告を生成することとを行うように構成される。
図7にはデータ管理装置700のモジュール分割方式が1つだけ示されていることを理解されたい。本願では、データ管理装置700が別のモジュール分割方式を有することについて限定しない。例えば、データ管理装置700は、FPGAイメージサービスモジュール、テナント認証サービスモジュール、およびAEI管理サービスモジュールにモジュール化されてよい。FPGAイメージサービスモジュールは、第1要求受信モジュール701、シャドウテナントバケット決定モジュール702、およびシャドウテナントバケット記憶モジュール703の機能を有してよい。テナント認証サービスモジュールは、FPGAイメージサービスと連携してユーザの認証を試みるように構成されてよい。AEI管理サービスは、FPGAイメージサービスと連携してAEIをコンパイルするように構成されてよい。オプションで、FPGAイメージサービスモジュールは更に、シャドウテナントバケット作成モジュール704、第2要求受信モジュール705、許可検証モジュール706、ロードモジュール707、第3要求受信モジュール708、および削除モジュール709の機能を有してよい。
本願のこの実施形態における装置700は、特定用途向け集積回路(application−specific integrated circuit、ASIC)を介して実装されてもよいし、プログラマブルロジックデバイス(programmable logic device、PLD)を介して実装されてもよいことを理解されたい。PLDは、コンプレックスプログラマブルロジックデバイス(complex programmable logic device、CPLD)、フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)、ジェネリックアレイロジック(generic array logic、GAL)、またはこれらの任意の組み合わせであってよい。図3から図6に示すデータ処理方法がソフトウェアを介して実装される場合は、装置700および装置700のモジュールがソフトウェアモジュールであってもよい。
装置700は本願の実施形態に関連する管理サーバ102にのみ対応している場合があることを理解されたい。具体的には、装置700は、図3から図6に示す管理サーバ102の対応する段階のみを実行するように構成される。装置700は更に、本願の実施形態に関連するサービスサーバ101に対応している場合がある。具体的には、装置700は更に、本願の実施形態で提供するサービスサーバ101の対応する段階を実行するように構成されてよい。この場合は、装置700はFPGAカードに接続されてよい。
本願のこの実施形態における装置700は、本願の実施形態で説明する方法を相応に実行してよい。更に、装置700内のユニットの前述および他の動作および/または機能は、図3から図6における方法の対応する手順を実装するために別個に使用される。簡潔にするため、ここでは詳細について改めて説明しない。
図8は、本願のある実施形態に係るサーバ800の概略構造図である。図に示すように、サーバ800は、プロセッサ801、メモリ802、通信インタフェース803、バス804、およびFPGAカード805を含む。プロセッサ801、メモリ802、通信インタフェース803、およびFPGAカード805は、バス804を介して互いに通信するか、または無線伝送などの別の方式で互いに通信してよい。メモリ802は、プログラムコード8021を記憶するように構成される。プロセッサ801は、メモリ802に記憶されるプログラムコード8021を呼び出して、通信インタフェース803により受信される第1要求内の第1ユーザの識別子に基づいて、第1ユーザの識別子に関連付けられるシャドウテナントバケットが存在するかどうかを判断する動作であって、シャドウテナントバケットは、第1ユーザのAEIを記憶するために使用され、各シャドウテナントバケットはユーザと一対一の対応関係にある、判断する動作と、第1ユーザの識別子に関連付けられるシャドウテナントバケットが存在する場合に、第1ユーザの識別子に関連付けられるシャドウテナントバケットにAEIを記憶する動作とを実行してよい。
オプションで、プロセッサ801は更に、第1ルールに従って、第1ユーザの識別子に関連付けられるシャドウテナントバケットの識別子を決定する動作であって、第1ルールは、シャドウテナントバケットの識別子を生成するための生成ルールを示すために使用される、決定する動作と、この識別子を持つシャドウテナントバケットが存在するかどうかを判断する動作と、この識別子を持つシャドウテナントバケットが存在する場合に、この識別子を持つシャドウテナントバケットが、第1ユーザの識別子に関連付けられるシャドウテナントバケットであると判断する動作とを実行してよい。
オプションで、プロセッサ801は更に、第1ユーザの識別子に関連付けられるシャドウテナントバケットが存在しない場合に、事前設定されたサイズの記憶スペースを選択する動作と、この記憶スペースを、第1ユーザの識別子に関連付けられるシャドウテナントバケットとして使用する動作と、第1ユーザの識別子に関連付けられるシャドウテナントバケットにAEIを記憶する動作とを実行してよい。
オプションで、プロセッサ801は更に、通信インタフェース803により受信される第2要求内のAEIの識別子と第2ユーザの識別子とに基づいて、第2ユーザに対する許可検証を実行する動作と、第2ユーザに対して実行される許可検証が成功した場合に、FPGAカードに関する情報に基づいて、第1仮想マシンに関連付けられるFPGAカードにAEIをロードする動作であって、第1仮想マシンは、第2ユーザに関連付けられる仮想マシンである、ロードする動作とを実行してよい。
オプションで、第2ユーザの識別子は第1仮想マシンの識別子を含み、プロセッサ801は更に、第1対応関係に従って、第1仮想マシンの識別子に対応するイメージの識別子を決定する動作であって、第1対応関係は、仮想マシンの識別子と仮想マシンによる使用が許可されているイメージの識別子との対応関係を示す、決定する動作と、第2対応関係に従って、このイメージの識別子に対応する少なくとも1つのAEIの識別子を決定する動作であって、第2対応関係は、イメージの識別子とAEIの識別子との対応関係である、決定する動作と、少なくとも1つのAEIの識別子がAEIの識別子を含むと判断する動作とを実行してよい。
オプションで、プロセッサ801は更に、通信インタフェース803により受信される第3要求に応答して、第2仮想マシンにより占有されるリソースを解放し、かつ、第2仮想マシンに関連付けられるFPGAカード内のAEIをクリアする動作を実行してよい。
オプションで、プロセッサ801は更に、FPGAカードの状態をクリア対象ステータスに設定し、第2仮想マシンに関連付けられるFPGAカードのAEIクリアインタフェースを呼び出して、第2仮想マシンに関連付けられるFPGAカードにロードされるAEIファイルをクリアする動作と、事前設定された持続時間が満たされると、第2仮想マシンに関連付けられる複数のFPGAカードの各FPGAカード内のAEIファイルが正常にクリアされているかどうかを判断する動作と、正常にクリアされている場合に、FPGAカードを利用可能ステータスに設定し、そうでない場合に、FPGAカードが正常にクリアされていないと判断し、FPGAカードが正常にクリアされていない回数が閾値に達していると判断した後に警告を生成する動作とを実行してよい。
本願のこの実施形態では、プロセッサ801は中央処理装置(CPU)であってよい、または、プロセッサ801は、別の汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または別のプログラマブルロジックデバイス、ディスクリートゲート、もしくはトランジスタロジックデバイス、またはディスクリートハードウェアコンポーネントなどであってよいことを理解されたい。汎用プロセッサは、マイクロプロセッサまたは任意の従来型プロセッサなどであってよい。
メモリ802はリードオンリメモリおよびランダムアクセスメモリを含み、プロセッサ801に命令およびデータを提供してよい。メモリ802は更に不揮発性ランダムアクセスメモリを含んでよい。例えば、メモリ802は更にデバイスタイプの情報を記憶してよい。
メモリ202は、揮発性メモリまたは不揮発性メモリであってもよいし、揮発性メモリおよび不揮発性メモリの両方を含んでもよい。不揮発性メモリは、リードオンリメモリ(read−only memory、ROM)、プログラマブルリードオンリメモリ(programmable ROM、PROM)、消去可能プログラマブルリードオンリメモリ(erasable PROM、EPROM)、電気的消去可能プログラマブルリードオンリメモリ(electrically EPROM、EEPROM)、またはフラッシュメモリであってよい。揮発性メモリは、外部キャッシュとして使用されるランダムアクセスメモリ(random access memory、RAM)であってよい。限定的な説明ではない例を通して、多くの形式のRAM、例えば、スタティックランダムアクセスメモリ(static RAM、SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、シンクロナスダイナミックランダムアクセスメモリ(synchronous DRAM、SDRAM)、ダブルデータレートシンクロナスダイナミックランダムアクセスメモリ(double data rate SDRAM、DDR SDRAM)、拡張シンクロナスダイナミックランダムアクセスメモリ(enhanced SDRAM、ESDRAM)、シンクロナスリンクダイナミックランダムアクセスメモリ(synchlink DRAM、SLDRAM)、およびダイレクトラムバスダイナミックランダムアクセスメモリ(direct rambus RAM、DR RAM)が使用されてよい。
データバスに加えて、バス804は更に、電力バス、制御バス、およびステータス信号バスなどを含んでよい。ただし、説明を明確にするために、この図における様々なタイプのバスがバス804としてマークされている。
本願のこの実施形態に係るサーバ800は、本願の実施形態で提供する管理サーバ102に対応している場合があることを理解されたい。サーバ800は、図3から図6に示す方法で管理サーバ102により実行される対応する段階を実装するように構成されてよい。簡潔にするため、ここでは詳細について改めて説明しない。
本願のこの実施形態に係るサーバ800は、本願の実施形態におけるデータ管理装置700に対応している場合があり、本願の実施形態で図3に示す方法を実行するための実行体に対応している場合があり、更に、サーバ800内のコンポーネントの前述および他の動作および/または機能は、図3から図6における方法の対応する手順を実装するために別個に使用されることを理解されたい。
例えば、通信インタフェース803は、データ管理装置700内の第1要求受信モジュール701の機能を実行するように構成されてよい。プロセッサ801は、メモリ802に記憶されるプログラムコードを実行して、シャドウテナントバケット決定モジュール702の機能を実装するように構成されてよい。
オプションで、通信インタフェース803は更に、第2要求受信モジュール705および第3要求受信モジュール708の機能を実行するように構成されてよく、プロセッサ801は更に、シャドウテナントバケット作成モジュール704、許可検証モジュール706、ロードモジュール707、および削除モジュール709の機能を実行するように構成されてよい。
オプションで、サーバ800は更にFPGAカード805を含んでよい。この場合は、サーバ800は更に、本願の実施形態におけるサービスサーバ101の機能を有してよい。
サーバ800が本願の実施形態に関連する管理サーバ102に対応している場合は、サーバ800が、図3から図6に示す管理サーバ102の対応する段階を実行するように構成されることを理解されたい。オプションで、サーバ800は更にFPGAカード805を含む。サーバ800が本願の実施形態に関連するサービスサーバ101に対応している場合。具体的には、サーバ800は更に、本願の実施形態で提供するサービスサーバ101の対応する段階を実行するように構成される。この場合は、サーバ800はFPGAカード805を含む。
前述の実施形態の全てまたは幾つかが、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組み合わせによって実装されてよい。ソフトウェアを使用してこれらの実施形態を実装する場合は、前述の実施形態の全てまたは幾つかがコンピュータプログラム製品の形態で実装されてよい。コンピュータプログラム製品は、1または複数のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータ上でロードおよび実行されると、本願の実施形態に係る手順または機能が全てまたは部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または別のプログラマブル装置であってよい。コンピュータ命令はコンピュータ可読記憶媒体に記憶されてもよいし、あるコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に伝送されてもよい。例えば、コンピュータ命令は、あるウェブサイト、コンピュータ、サーバ、またはデータセンタから別のウェブサイト、コンピュータ、サーバ、またはデータセンタへ有線(例えば、同軸ケーブル、光ファイバ、またはデジタル加入者線(DSL))方式または無線(例えば、赤外線、電波、またはマイクロ波)方式で伝送されてよい。コンピュータ可読記憶媒体は、コンピュータからアクセス可能な任意の使用可能な媒体、または、1または複数の使用可能な媒体を統合する、サーバまたはデータセンタなどのデータ記憶デバイスであってよい。使用可能な媒体は、磁気媒体(例えば、フロッピーディスク、ハードディスク、または磁気テープ)、光学媒体(例えば、DVD)、または半導体媒質であってよい。半導体媒質は、ソリッドステートドライブ(solid−state drive、SSD)であってよい。
当業者であれば、本明細書で開示する実施形態に記載の例との組み合わせで、ユニットおよびアルゴリズム段階が、電子ハードウェア、または、コンピュータソフトウェアと電子ハードウェアとの組み合わせにより実装され得ることに気付くかもしれない。これらの機能がハードウェアおよびソフトウェアのどちらにより実行されるかは、特定の用途と技術的解決策の設計上の制約条件とで決まる。当業者であれば、異なる方法で、説明されている機能を特定の用途ごとに実装することができる。
当業者であれば、説明を簡便かつ簡潔にするために、前述のシステム、装置、およびユニットの詳細な動作プロセスについては、前述した方法の実施形態における対応するプロセスが参照されるべきであり、詳細についてはここで改めて説明しないことを明確に理解することができる。
本願において提供する幾つかの実施形態では、開示されているシステム、装置、および方法が他の方式で実装され得ることを理解されたい。例えば、説明されている装置の実施形態は例に過ぎない。例えば、ユニットの分類は論理機能の分類に過ぎず、実際の実装では他の分類であってよい。例えば、複数のユニットまたはコンポーネントが組み合わされても別のシステムに統合されてもよい、または、幾つかの特徴が無視されても実行されなくてもよい。更に、表示または説明されている相互結合もしくは直接結合または通信接続は、幾つかのインタフェースを介して実装されてよい。装置間またはユニット間の間接的結合または通信接続は、電子的形態、機械的形態、または他の形態で実装されてよい。
別個の部分として説明されているユニットは、物理的に別個のものであってもなくてもよい。ユニットとして表示されている部分は、物理的なユニットであってもなくてもよいし、一箇所に配置されてもよいし、複数のネットワークユニット上に分散されてもよい。これらの実施形態の解決策の目的を達成するために、これらのユニットの幾つかまたは全てが実際の要件に基づいて選択されてよい。
[他の考えられる項目]
[項目1]
データ管理方法であって、
第1要求を受信する段階であって、上記第1要求は、第1ユーザによりカスタマイズされるアクセラレーションエンジンイメージAEIの登録を要求するために上記第1ユーザにより使用され、上記第1要求は、上記第1ユーザの識別子と上記AEIの識別子とを含む、受信する段階と、
上記第1ユーザの上記識別子に基づいて、上記第1ユーザの上記識別子に関連付けられるシャドウテナントバケットが存在するかどうかを判断する段階であって、上記シャドウテナントバケットは、上記第1ユーザの上記AEIを記憶するために使用され、各シャドウテナントバケットはユーザと一対一の対応関係にある、判断する段階と、
上記第1ユーザの上記識別子に関連付けられる上記シャドウテナントバケットが存在する場合に、上記第1ユーザの上記識別子に関連付けられる上記シャドウテナントバケットに上記AEIを記憶する段階と
を備える方法。
[項目2]
上記第1ユーザの上記識別子に基づいて、上記第1ユーザの上記識別子に関連付けられるシャドウテナントバケットが存在するかどうかを判断する上記段階は、
第1ルールに従って、上記第1ユーザの上記識別子に関連付けられる上記シャドウテナントバケットの識別子を決定する段階であって、上記第1ルールは、上記シャドウテナントバケットの上記識別子の生成ルールを示すために使用される、決定する段階と、
上記識別子を持つシャドウテナントバケットが存在するかどうかを判断する段階と、
上記識別子を持つ上記シャドウテナントバケットが存在する場合に、上記識別子を持つ上記シャドウテナントバケットが、上記第1ユーザの上記識別子に関連付けられる上記シャドウテナントバケットであると判断する段階と
を有する、項目1に記載の方法。
[項目3]
上記第1ユーザの上記識別子に関連付けられる上記シャドウテナントバケットが存在しない場合に、
事前設定されたサイズの記憶スペースを選択する段階と、
上記記憶スペースを、上記第1ユーザの上記識別子に関連付けられる上記シャドウテナントバケットとして使用する段階と、
上記第1ユーザの上記識別子に関連付けられる上記シャドウテナントバケットに上記AEIを記憶する段階と
を更に備える項目1に記載の方法。
[項目4]
上記第1ユーザの上記識別子に関連付けられる上記シャドウテナントバケットに上記AEIを記憶する上記段階の後に、
第2要求を受信する段階であって、上記第2要求は、上記AEIのロードを要求するために第2ユーザにより使用され、上記第2要求は、上記第2ユーザの識別子と、上記AEIの上記識別子と、フィールドプログラマブルゲートアレイFPGAカードに関する情報とを含む、受信する段階と、
上記第2ユーザの上記識別子と上記AEIの上記識別子とに基づいて上記第2ユーザに対する許可検証を実行する段階と、
上記第2ユーザに対して実行される上記許可検証が成功した場合に、上記FPGAカードに関する上記情報に基づいて、第1仮想マシンに関連付けられるFPGAカードに上記AEIをロードする段階であって、上記第1仮想マシンは、上記第2ユーザに関連付けられる仮想マシンである、ロードする段階と
を更に備える項目1から3のいずれか一項に記載の方法。
[項目5]
上記第2ユーザの上記識別子は上記第1仮想マシンの識別子を含み、上記第2ユーザの上記識別子と上記AEIの上記識別子とに基づいて、上記第2ユーザの上記許可検証が成功していると判断する上記段階は、
第1対応関係に従って、上記第1仮想マシンの上記識別子に対応するイメージの識別子を決定する段階であって、上記第1対応関係は、仮想マシンの識別子と上記仮想マシンによる使用が許可されているイメージの識別子との対応関係を示す、決定する段階と、
第2対応関係に従って、上記イメージの上記識別子に対応する少なくとも1つのAEIの識別子を決定する段階であって、上記第2対応関係は、イメージの識別子とAEIの識別子との対応関係である、決定する段階と、
上記少なくとも1つのAEIの上記識別子が上記AEIの上記識別子を含むと判断する段階と
を含む、項目4に記載の方法。
[項目6]
第3要求を受信する段階であって、上記第3要求は、第2仮想マシンの削除を要求するために第3ユーザにより使用され、上記第2仮想マシンは、上記第3ユーザに関連付けられる仮想マシンである、受信する段階と、
上記第2仮想マシンにより占有されるリソースを解放し、上記第2仮想マシンに関連付けられるFPGAカード内のAEIをクリアする段階と
を更に備える項目1から5のいずれか一項に記載の方法。
[項目7]
上記第2仮想マシンに関連付けられるFPGAカード内のAEIをクリアする上記段階は、
上記FPGAカードの状態をクリア対象ステータスに設定し、上記第2仮想マシンに関連付けられる上記FPGAカードのAEIクリアインタフェースを呼び出して、上記第2仮想マシンに関連付けられる上記FPGAカードにロードされる上記AEIファイルをクリアする段階と、
事前設定された持続時間が満たされると、上記第2仮想マシンに関連付けられる複数のFPGAカードの各FPGAカード内のAEIファイルが正常にクリアされているかどうかを判断する段階と、
正常にクリアされている場合に、上記FPGAカードを利用可能ステータスに設定し、そうでない場合に、上記FPGAカードが正常にクリアされていないと判断し、上記FPGAカードが正常にクリアされていない回数が閾値に達していると判断した後に警告を生成する段階と
を有する、項目6に記載の方法。
[項目8]
データ管理装置であって、
第1要求を受信するように構成される第1要求受信モジュールであって、上記第1要求は、第1ユーザによりカスタマイズされるアクセラレーションエンジンイメージAEIの登録を要求するために上記第1ユーザにより使用され、上記第1要求は、上記第1ユーザの識別子と上記AEIの識別子とを含む、第1要求受信モジュールと、
上記第1ユーザの上記識別子に基づいて、上記第1ユーザの上記識別子に関連付けられるシャドウテナントバケットが存在するかどうかを判断するように構成されるシャドウテナントバケット決定モジュールであって、上記シャドウテナントバケットは、上記第1ユーザの上記AEIを記憶するために使用され、各シャドウテナントバケットはユーザと一対一の対応関係にある、シャドウテナントバケット決定モジュールと、
上記第1ユーザの上記識別子に関連付けられる上記シャドウテナントバケットが存在する場合に、上記第1ユーザの上記識別子に関連付けられる上記シャドウテナントバケットに上記AEIを記憶するように構成されるシャドウテナントバケット記憶モジュールと
を備える装置。
[項目9]
上記シャドウテナントバケット決定モジュールは更に、
第1ルールに従って、上記第1ユーザの上記識別子に関連付けられる上記シャドウテナントバケットの識別子を決定することであって、上記第1ルールは、上記シャドウテナントバケットの上記識別子の生成ルールを示すために使用される、決定することと、
上記識別子を持つシャドウテナントバケットが存在するかどうかを判断することと、
上記識別子を持つ上記シャドウテナントバケットが存在する場合に、上記識別子を持つ上記シャドウテナントバケットが、上記第1ユーザの上記識別子に関連付けられる上記シャドウテナントバケットであると判断することと
を行うように構成される、
項目8に記載の装置。
[項目10]
上記第1ユーザの上記識別子に関連付けられる上記シャドウテナントバケットが存在しない場合に、事前設定されたサイズの記憶スペースを選択し、上記記憶スペースを、上記第1ユーザの上記識別子に関連付けられる上記シャドウテナントバケットとして使用し、かつ、上記第1ユーザの上記識別子に関連付けられる上記シャドウテナントバケットに上記AEIを記憶するように構成されるシャドウテナントバケット作成モジュール
を更に備える項目8に記載の装置。
[項目11]
上記装置は更に、第2要求受信モジュールと、許可検証モジュールと、ロードモジュールとを備え、
上記第2要求受信モジュールは、第2要求を受信するように構成され、上記第2要求は、上記AEIのロードを要求するために第2ユーザにより使用され、上記第2要求は、上記第2ユーザの識別子と、上記AEIの上記識別子と、フィールドプログラマブルゲートアレイFPGAカードに関する情報とを含み、
上記許可検証モジュールは、上記第2ユーザの上記識別子と上記AEIの上記識別子とに基づいて上記第2ユーザに対する許可検証を実行するように構成され、
上記ロードモジュールは、上記第2ユーザに対して実行される上記許可検証が成功した場合に、上記FPGAカードに関する上記情報に基づいて、第1仮想マシンに関連付けられるFPGAカードに上記AEIをロードするように構成され、上記第1仮想マシンは、上記第2ユーザに関連付けられる仮想マシンである、
項目8から10のいずれか一項に記載の装置。
[項目12]
上記第2ユーザの上記識別子は、上記第1仮想マシンの識別子を含み、
上記許可検証モジュールが、上記第2ユーザの上記識別子と上記AEIの上記識別子とに基づいて、上記第2ユーザの上記許可検証が成功していると判断するように構成されることは、
上記許可検証モジュールが、第1対応関係に従って、上記第1仮想マシンの上記識別子に対応するイメージの識別子を決定することであって、上記第1対応関係は、仮想マシンの識別子と上記仮想マシンによる使用が許可されているイメージの識別子との対応関係を示す、決定することと、
第2対応関係に従って、上記イメージの上記識別子に対応する少なくとも1つのAEIの識別子を決定することであって、上記第2対応関係は、イメージの識別子とAEIの識別子との対応関係である、決定することと、
上記少なくとも1つのAEIの上記識別子が上記AEIの上記識別子を含むと判断することと
を含む、項目11に記載の装置。
[項目13]
上記装置は更に、第3要求受信モジュールと削除モジュールとを備え、
上記第3要求受信モジュールは、第3要求を受信するように構成され、上記第3要求は、第2仮想マシンの削除を要求するために第3ユーザにより使用され、上記第2仮想マシンは、上記第3ユーザに関連付けられる仮想マシンであり、
上記削除モジュールは、上記第2仮想マシンにより占有されるリソースを解放し、かつ、上記第2仮想マシンに関連付けられるFPGAカード内のAEIをクリアするように構成される、
項目8から12に記載の装置。
[項目14]
上記削除モジュールが、上記第2仮想マシンに関連付けられるFPGAカード内のAEIをクリアすることは、
上記削除モジュールが、上記FPGAカードの状態をクリア対象ステータスに設定し、上記第2仮想マシンに関連付けられる上記FPGAカードのAEIクリアインタフェースを呼び出して、上記第2仮想マシンに関連付けられる上記FPGAカードにロードされる上記AEIをクリアすることと、
事前設定された持続時間が満たされると、上記第2仮想マシンに関連付けられる複数のFPGAカードの各FPGAカード内のAEIが正常にクリアされているかどうかを判断することと、
正常にクリアされている場合に、上記FPGAカードを利用可能ステータスに設定し、そうでない場合に、上記FPGAカードが正常にクリアされていないと判断し、上記FPGAカードが正常にクリアされていない回数が閾値に達していると判断した後に警告を生成することと
を含む、項目13に記載の装置。
[項目15]
プロセッサとメモリとを備えるサーバであって、上記メモリは、コンピュータ実行可能命令を記憶するように構成され、上記サーバが実行されると、上記プロセッサは、上記メモリ内の上記コンピュータ実行可能命令を実行して、上記サーバ内のハードウェアリソースを使用することにより項目1から7のいずれか一項に記載の方法の動作段階を実行する、サーバ。

Claims (16)

  1. データ管理方法であって、
    第1要求を受信する段階であって、前記第1要求は、第1ユーザによりカスタマイズされるアクセラレーションエンジンイメージ(AEI)の登録を要求するために前記第1ユーザにより使用され、前記第1要求は、前記第1ユーザの識別子と前記AEIの識別子とを含む、受信する段階と、
    前記第1ユーザの前記識別子に基づいて、前記第1ユーザの前記識別子に関連付けられるシャドウテナントバケットが存在するかどうかを判断する段階であって、前記シャドウテナントバケットは、前記第1ユーザの前記AEIを記憶するために使用され、各シャドウテナントバケットはユーザと一対一の対応関係にある、判断する段階と、
    前記第1ユーザの前記識別子に関連付けられる前記シャドウテナントバケットに前記AEIを記憶する段階と
    を備える方法。
  2. 前記第1ユーザの前記識別子に基づいて、前記第1ユーザの前記識別子に関連付けられるシャドウテナントバケットが存在するかどうかを判断する前記段階は、
    第1ルールに従って、前記第1ユーザの前記識別子に関連付けられる前記シャドウテナントバケットの識別子を決定する段階であって、前記第1ルールは、前記シャドウテナントバケットの前記識別子の生成ルールを示すために使用される、決定する段階と、
    前記識別子を持つシャドウテナントバケットが存在するかどうかを判断する段階と、
    前記識別子を持つ前記シャドウテナントバケットが存在する場合に、前記識別子を持つ前記シャドウテナントバケットが、前記第1ユーザの前記識別子に関連付けられる前記シャドウテナントバケットであると判断する段階と
    を有する、請求項1に記載の方法。
  3. 前記第1ユーザの前記識別子に関連付けられる前記シャドウテナントバケットが存在しない場合に、
    事前設定されたサイズの記憶スペースを選択する段階と、
    前記記憶スペースを、前記第1ユーザの前記識別子に関連付けられる前記シャドウテナントバケットとして使用する段階と、
    前記第1ユーザの前記識別子に関連付けられる前記シャドウテナントバケットに前記AEIを記憶する段階と
    を更に備える請求項1に記載の方法。
  4. 前記第1ユーザの前記識別子に関連付けられる前記シャドウテナントバケットに前記AEIを記憶する前記段階の後に、
    第2要求を受信する段階であって、前記第2要求は、前記AEIのロードを要求するために第2ユーザにより使用され、前記第2要求は、前記第2ユーザの識別子と、前記AEIの前記識別子と、フィールドプログラマブルゲートアレイ(FPGA)カードに関する情報とを含む、受信する段階と、
    前記第2ユーザの前記識別子と前記AEIの前記識別子とに基づいて前記第2ユーザに対する許可検証を実行する段階と、
    前記第2ユーザに対して実行される前記許可検証が成功した場合に、前記FPGAカードに関する前記情報に基づいて、第1仮想マシンに関連付けられるFPGAカードに前記AEIをロードする段階であって、前記第1仮想マシンは、前記第2ユーザに関連付けられる仮想マシンである、ロードする段階と
    を更に備える請求項1から3のいずれか一項に記載の方法。
  5. 前記第2ユーザの前記識別子は前記第1仮想マシンの識別子を含み、前記第2ユーザの前記識別子と前記AEIの前記識別子とに基づいて前記第2ユーザに対する許可検証を実行する前記段階は、
    第1対応関係に従って、前記第1仮想マシンの前記識別子に対応するイメージの識別子を決定する段階であって、前記第1対応関係は、仮想マシンの識別子と前記仮想マシンによる使用が許可されているイメージの識別子との対応関係を示す、決定する段階と、
    第2対応関係に従って、前記イメージの前記識別子に対応する少なくとも1つのAEIの識別子を決定する段階であって、前記第2対応関係は、イメージの識別子とAEIの識別子との対応関係である、決定する段階と、
    前記少なくとも1つのAEIの前記識別子が前記AEIの前記識別子を含むと判断する段階と
    を有する、請求項4に記載の方法。
  6. 第3要求を受信する段階であって、前記第3要求は、第2仮想マシンの削除を要求するために第3ユーザにより使用され、前記第2仮想マシンは、前記第3ユーザに関連付けられる仮想マシンである、受信する段階と、
    前記第2仮想マシンにより占有されるリソースを解放し、前記第2仮想マシンに関連付けられるFPGAカード内のAEIをクリアする段階と
    を更に備える請求項1から5のいずれか一項に記載の方法。
  7. 前記第2仮想マシンに関連付けられるFPGAカード内のAEIをクリアする前記段階は、
    前記FPGAカードの状態をクリア対象ステータスに設定し、前記第2仮想マシンに関連付けられる前記FPGAカードのAEIクリアインタフェースを呼び出して、前記第2仮想マシンに関連付けられる前記FPGAカードにロードされるAEIファイルをクリアする段階と、
    事前設定された持続時間が満たされると、前記第2仮想マシンに関連付けられる複数のFPGAカードの各FPGAカード内のAEIファイルが正常にクリアされているかどうかを判断する段階と、
    前記AEIファイルが正常にクリアされている場合に、前記FPGAカードを利用可能ステータスに設定し、前記AEIファイルが正常にクリアされていない場合に、前記FPGAカードが正常にクリアされていないと判断し、前記FPGAカードが正常にクリアされていない回数が閾値に達していると判断した後に警告を生成する段階と
    を有する、請求項6に記載の方法。
  8. データ管理装置であって、
    第1要求を受信するように構成される第1要求受信モジュールであって、前記第1要求は、第1ユーザによりカスタマイズされるアクセラレーションエンジンイメージ(AEI)の登録を要求するために前記第1ユーザにより使用され、前記第1要求は、前記第1ユーザの識別子と前記AEIの識別子とを含む、第1要求受信モジュールと、
    前記第1ユーザの前記識別子に基づいて、前記第1ユーザの前記識別子に関連付けられるシャドウテナントバケットが存在するかどうかを判断するように構成されるシャドウテナントバケット決定モジュールであって、前記シャドウテナントバケットは、前記第1ユーザの前記AEIを記憶するために使用され、各シャドウテナントバケットはユーザと一対一の対応関係にある、シャドウテナントバケット決定モジュールと、
    前記第1ユーザの前記識別子に関連付けられる前記シャドウテナントバケットが存在する場合に、前記第1ユーザの前記識別子に関連付けられる前記シャドウテナントバケットに前記AEIを記憶するように構成されるシャドウテナントバケット記憶モジュールと
    を備える装置。
  9. 前記シャドウテナントバケット決定モジュールは更に、
    第1ルールに従って、前記第1ユーザの前記識別子に関連付けられる前記シャドウテナントバケットの識別子を決定することであって、前記第1ルールは、前記シャドウテナントバケットの前記識別子の生成ルールを示すために使用される、決定することと、
    前記識別子を持つシャドウテナントバケットが存在するかどうかを判断することと、
    前記識別子を持つ前記シャドウテナントバケットが存在する場合に、前記識別子を持つ前記シャドウテナントバケットが、前記第1ユーザの前記識別子に関連付けられる前記シャドウテナントバケットであると判断することと
    を行うように構成される、
    請求項8に記載の装置。
  10. 前記第1ユーザの前記識別子に関連付けられる前記シャドウテナントバケットが存在しない場合に、事前設定されたサイズの記憶スペースを選択し、前記記憶スペースを、前記第1ユーザの前記識別子に関連付けられる前記シャドウテナントバケットとして使用し、かつ、前記第1ユーザの前記識別子に関連付けられる前記シャドウテナントバケットに前記AEIを記憶するように構成されるシャドウテナントバケット作成モジュール
    を更に備える請求項8に記載の装置。
  11. 前記装置は更に、第2要求受信モジュールと、許可検証モジュールと、ロードモジュールとを備え、
    前記第2要求受信モジュールは、第2要求を受信するように構成され、前記第2要求は、前記AEIのロードを要求するために第2ユーザにより使用され、前記第2要求は、前記第2ユーザの識別子と、前記AEIの前記識別子と、フィールドプログラマブルゲートアレイ(FPGA)カードに関する情報とを含み、
    前記許可検証モジュールは、前記第2ユーザの前記識別子と前記AEIの前記識別子とに基づいて前記第2ユーザに対する許可検証を実行するように構成され、
    前記ロードモジュールは、前記第2ユーザに対して実行される前記許可検証が成功した場合に、前記FPGAカードに関する前記情報に基づいて、第1仮想マシンに関連付けられるFPGAカードに前記AEIをロードするように構成され、前記第1仮想マシンは、前記第2ユーザに関連付けられる仮想マシンである、
    請求項8から10のいずれか一項に記載の装置。
  12. 前記第2ユーザの前記識別子は前記第1仮想マシンの識別子を含み、
    前記許可検証モジュールは、
    第1対応関係に従って、前記第1仮想マシンの前記識別子に対応するイメージの識別子を決定することであって、前記第1対応関係は、仮想マシンの識別子と前記仮想マシンによる使用が許可されているイメージの識別子との対応関係を示す、決定することと、
    第2対応関係に従って、前記イメージの前記識別子に対応する少なくとも1つのAEIの識別子を決定することであって、前記第2対応関係は、イメージの識別子とAEIの識別子との対応関係である、決定することと、
    前記少なくとも1つのAEIの前記識別子が前記AEIの前記識別子を含むと判断することと
    を行うように構成される、
    請求項11に記載の装置。
  13. 前記装置は更に、第3要求受信モジュールと削除モジュールとを備え、
    前記第3要求受信モジュールは、第3要求を受信するように構成され、前記第3要求は、第2仮想マシンの削除を要求するために第3ユーザにより使用され、前記第2仮想マシンは、前記第3ユーザに関連付けられる仮想マシンであり、
    前記削除モジュールは、前記第2仮想マシンにより占有されるリソースを解放し、かつ、前記第2仮想マシンに関連付けられるFPGAカード内のAEIをクリアするように構成される、
    請求項8から12のいずれか一項に記載の装置。
  14. 前記削除モジュールが、前記第2仮想マシンに関連付けられるFPGAカード内のAEIをクリアすることは、
    前記削除モジュールが、前記FPGAカードの状態をクリア対象ステータスに設定し、前記第2仮想マシンに関連付けられる前記FPGAカードのAEIクリアインタフェースを呼び出して、前記第2仮想マシンに関連付けられる前記FPGAカードにロードされる前記AEIをクリアすることと、
    事前設定された持続時間が満たされると、前記第2仮想マシンに関連付けられる複数のFPGAカードの各FPGAカード内のAEIが正常にクリアされているかどうかを判断することと、
    前記AEIが正常にクリアされている場合に、前記FPGAカードを利用可能ステータスに設定し、前記AEIが正常にクリアされていない場合に、前記FPGAカードが正常にクリアされていないと判断し、前記FPGAカードが正常にクリアされていない回数が閾値に達していると判断した後に警告を生成することと
    を含む、請求項13に記載の装置。
  15. プロセッサとメモリとを備えるサーバであって、前記メモリは、コンピュータ実行可能命令を記憶するように構成され、前記サーバが実行されると、前記プロセッサは、前記メモリ内の前記コンピュータ実行可能命令を実行して、前記サーバ内のハードウェアリソースを使用することにより請求項1から7のいずれか一項に記載の方法の動作段階を実行する、サーバ。
  16. コンピュータに、請求項1から7のいずれか一項に基づく方法の動作段階を実行させるためのプログラム。
JP2021517200A 2018-09-28 2019-06-29 データ管理の方法および装置並びにサーバ Pending JP2022501733A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811140158.3 2018-09-28
CN201811140158.3A CN110968413A (zh) 2018-09-28 2018-09-28 一种数据管理方法、装置和服务器
PCT/CN2019/093962 WO2020063002A1 (zh) 2018-09-28 2019-06-29 一种数据管理方法、装置和服务器

Publications (1)

Publication Number Publication Date
JP2022501733A true JP2022501733A (ja) 2022-01-06

Family

ID=69950210

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021517200A Pending JP2022501733A (ja) 2018-09-28 2019-06-29 データ管理の方法および装置並びにサーバ

Country Status (6)

Country Link
US (1) US11567675B2 (ja)
EP (1) EP3848802A4 (ja)
JP (1) JP2022501733A (ja)
CN (1) CN110968413A (ja)
BR (1) BR112021005882A2 (ja)
WO (1) WO2020063002A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111611238B (zh) * 2020-04-08 2021-08-31 中科驭数(北京)科技有限公司 数据的管理方法及装置
CN111782150B (zh) * 2020-07-02 2024-05-31 深圳市瑞驰信息技术有限公司 一种基于对象存储的多桶存储系统及方法
CN112437123B (zh) * 2020-11-09 2024-04-09 北京京东尚科信息技术有限公司 资源管理方法、装置、计算机系统、可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015189931A1 (ja) * 2014-06-11 2015-12-17 三菱電機株式会社 プログラム編集装置、プログラム管理装置、プログラム編集プログラムおよびプログラム管理プログラム
JP2018023905A (ja) * 2017-11-17 2018-02-15 株式会社バンダイナムコエンターテインメント ゲームシステム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003040945A1 (en) * 2001-11-02 2003-05-15 Premedics, Inc. System and method for monitoring and ensuring proper life safety equipment maintenance, operation, and program implementation
US7360096B2 (en) * 2002-11-20 2008-04-15 Microsoft Corporation Securely processing client credentials used for Web-based access to resources
FR2907934B1 (fr) * 2006-10-27 2009-02-06 Inst Nat Rech Inf Automat Outil informatique de gestion de documents numeriques
US8434087B2 (en) * 2008-08-29 2013-04-30 International Business Machines Corporation Distributed acceleration devices management for streams processing
CN103107889B (zh) * 2013-02-06 2016-08-03 中电长城网际系统应用有限公司 一种可搜索的云计算环境数据加密存储系统和方法
US9634886B2 (en) * 2013-03-14 2017-04-25 Alcatel Lucent Method and apparatus for providing tenant redundancy
CN103246850A (zh) * 2013-05-23 2013-08-14 福建伊时代信息科技股份有限公司 文件处理方法和装置
CN106778319A (zh) * 2015-11-23 2017-05-31 天津九洲云物联科技有限公司 一种基于rbac模型改进的访问控制模型
CN108073423B (zh) * 2016-11-09 2020-01-17 华为技术有限公司 一种加速器加载方法、系统和加速器加载装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015189931A1 (ja) * 2014-06-11 2015-12-17 三菱電機株式会社 プログラム編集装置、プログラム管理装置、プログラム編集プログラムおよびプログラム管理プログラム
JP2018023905A (ja) * 2017-11-17 2018-02-15 株式会社バンダイナムコエンターテインメント ゲームシステム

Also Published As

Publication number Publication date
BR112021005882A2 (pt) 2021-07-27
EP3848802A1 (en) 2021-07-14
CN110968413A (zh) 2020-04-07
EP3848802A4 (en) 2021-11-10
US11567675B2 (en) 2023-01-31
WO2020063002A1 (zh) 2020-04-02
US20210216222A1 (en) 2021-07-15

Similar Documents

Publication Publication Date Title
US11416415B2 (en) Technologies for secure device configuration and management
CN108628658B (zh) 一种容器的许可证管理方法及装置
US11567675B2 (en) Data management method and apparatus, and server
US10503545B2 (en) Universal security agent
JP5497171B2 (ja) セキュア仮想マシンを提供するためのシステムおよび方法
TWI598814B (zh) 用於管理及診斷配備有統一可延伸韌體介面(uefi)相容韌體的計算裝置之系統與方法
US11221838B2 (en) Hot update method, operating system, terminal device, system, and computer-readable storage medium for a system process
US10325079B1 (en) Version management platform
US9292331B2 (en) Expansion of services for a virtual data center guest
TW201617957A (zh) 鑑別變數之管理技術
CN108073823B (zh) 数据处理方法、装置及系统
US11575672B2 (en) Secure accelerator device pairing for trusted accelerator-to-accelerator communication
US20210097476A1 (en) Container Management Method, Apparatus, and Device
CN110390184B (zh) 用于在云中执行应用的方法、装置和计算机程序产品
KR20180066148A (ko) 네트워크 기능 가상화 아키텍처에서의 인증서 관리 방법 및 디바이스
US10255438B2 (en) Operating system agnostic validation of firmware images
US20170279806A1 (en) Authentication in a Computer System
TW202044022A (zh) 更新信號技術
US10771462B2 (en) User terminal using cloud service, integrated security management server for user terminal, and integrated security management method for user terminal
CN111414640B (zh) 秘钥访问控制方法和装置
CN112632573A (zh) 智能合约执行方法、装置、系统、存储介质及电子设备
CN117453343A (zh) 虚拟机度量、机密计算认证方法、设备、系统及存储介质
US20230074455A1 (en) System and method for monitoring delivery of messages passed between processes from different operating systems
WO2022001842A1 (zh) 处理数据的方法、主机及装置
US11989279B2 (en) Method and system for service image deployment in a cloud computing system based on distributed ledger technology

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210506

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221005

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230117