JP2017535868A - Capiアダプタにブロック・エクステント粒度の許可モデルの処理を実装するための方法、システム、およびコンピュータ・プログラム - Google Patents

Capiアダプタにブロック・エクステント粒度の許可モデルの処理を実装するための方法、システム、およびコンピュータ・プログラム Download PDF

Info

Publication number
JP2017535868A
JP2017535868A JP2017524432A JP2017524432A JP2017535868A JP 2017535868 A JP2017535868 A JP 2017535868A JP 2017524432 A JP2017524432 A JP 2017524432A JP 2017524432 A JP2017524432 A JP 2017524432A JP 2017535868 A JP2017535868 A JP 2017535868A
Authority
JP
Japan
Prior art keywords
capi
client
adapter
authorization
server register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017524432A
Other languages
English (en)
Other versions
JP6490213B2 (ja
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2017535868A publication Critical patent/JP2017535868A/ja
Application granted granted Critical
Publication of JP6490213B2 publication Critical patent/JP6490213B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/80Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0892Network architectures or network communication protocols for network security for authentication of entities by using authentication-authorization-accounting [AAA] servers or protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Power Engineering (AREA)

Abstract

【課題】コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)アダプタにブロック・エクステント粒度の許可モデルの処理を実装するための方法、システムおよびコンピュータ・プログラム製品を提供する。【解決手段】CAPIアダプタは、クライアントにあるエクステント粒度でのデータ・アクセスを許可するため、および、アプリケーションがCAPIアダプタ内で未許可のデータにアクセスすることを回避するために、許可テーブルおよびファイル・システム許可機能を含む。各許可テーブル・エントリは、CAPIクライアントのために、CAPIクライアント識別子(ID)、CAPIクライアントにリソース所有権を割り当てるCAPIサーバ・レジスタ空間、および、許容される機能のCAPIセットを規定する。【選択図】図1

Description

本発明は一般にデータ処理の分野に関し、より詳細には、コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI:Coherent Accelerator Processor Interface)にブロック・エクステント粒度の許可モデルの処理を実装するための方法、コンピュータ・システムおよびコンピュータ・プログラムに関する。
恒久的な二次ストレージは、実質的にすべてのコンピュータ・システムの構成要素である。このストレージは通常、ハード・ディスク・ドライブまたはフラッシュ・ストレージ・デバイスなどのブロック・デバイスである。ホスト・コンピュータ・システムをハード・ディスク・ドライブ、固体ドライブ、テープ・ドライブ、コンパクト・ディスク・ドライブなどの周辺ストレージI/Oデバイスに接続するために、ストレージ・アダプタが使用されることが多い。
従来のコンピュータ・システムでは、ブロック・デバイスに対してデータの読み出しまたは書き込みを行う必要のあるアプリケーションは、要求されたデータのブロックを読み出すか書き込むためにオペレーティング・システム(OS)またはファイル・システム(FS)あるいはその両方の呼び出しを行う。オペレーティング・システムまたはファイル・システムはコンピュータ・システムの「信頼できる」部分であり、読み出し/書き込みリクエストの一部として、そのアプリケーションが要求されたデータのブロックへのアクセスを許容されることを確認または許可する。許可に成功すると、OSは読み出し/書き込みリクエストのコマンドを作成し、そのコマンドをホスト・バス・アダプタ(HBA)に送ってサービスする。HBAが受信することができるのはOSからのコマンドのみなので、HBAには、要求されたブロック範囲が許可済みであり、そのコマンドを実行しても安全であることが分かっている。
IBMは、オープンパワー・ファウンデーション(OpenPOWER Foundation)の一部として、新しいブロック・デバイスI/Oモデルを導入した。この新しいブロック・デバイスI/Oモデルは、コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)技術を使用する。CAPIでは、アプリケーションが入出力アダプタ(IOA)に対する読み出し/書き込みのコマンドを作成し、そのコマンドをOS/FSを迂回して、したがって従来の許可も迂回して、直接IOAに送ることができる。許可が行われなければ、アプリケーションが、そのアプリケーションにアクセスが許容されるべきではないデータを取得できるようになる。例えば、第1の競合者および第2の競合者の専有データが含まれているサーバシステムで、許可が行われなければ、第1の競合者が第2の競合者のデータにアクセスできるようになる。
OS/FSの外部でのブロック・デバイス許可のための現在の技術は、ブロック・デバイスまたは論理ユニット(LUN)の粒度レベルでのゾーニングなどのアウトオブバンド技法を使用する。
コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)アダプタのための許可をコンピュータ・システム内に実装するための実効的な機構への需要が存在する。望ましくは、そのような機構は、IO操作を行うための多くのホストCPU要件を迂回して、実効的で効率的なCPAIアダプタの利用を可能にする。
本発明の主要な態様は、アプリケーションが未許可データにアクセスすることを回避するために、コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)アダプタにブロック・エクステント粒度の許可を実装するための方法、システムおよびコンピュータ・プログラム製品を提供することである。本発明のその他の重要な態様は、ほとんど負の影響のない、また、従来技術の配置にある多くの短所を克服する、そのような方法、システムおよびコンピュータ・プログラム製品を提供することである。
端的に言えば、コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)アダプタにブロック・エクステント粒度の許可モデルの処理を実装するための方法、システムおよびコンピュータ・プログラム製品が提供される。CAPIアダプタは、クライアントにあるエクステント粒度でのデータ・アクセスを許可するため、および、アプリケーションがCAPIアダプタ内で未許可のデータにアクセスすることを回避するために、許可テーブルおよびファイル・システム許可機能を含む。許可テーブルの各エントリは、そのCAPIクライアントのために、CAPIクライアント識別子(ID)、CAPIクライアントにリソース所有権を割り当てるCAPIサーバ・レジスタ空間、および許容される機能のCAPIセットを規定する。
本発明の特徴によれば、CAPIサーバ・レジスタ空間は、CAPIアダプタ・システム・バス・アドレス空間内の各エクステント、すなわち、ある範囲の論理ブロック・アドレスについて、クライアント許可を定めるCAPIサービス・レジスタを含む。
本発明は、前述およびその他の目的および利点と共に、図面に示される本発明の好ましい実施形態の下記の詳細な説明によって、最もよく理解され得る。
好ましい実施形態によって、CAPIアダプタにコヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)許可を実装するためのコンピュータの例およびCAPI許可ハンドルの配列要素の例を示す図である。 好ましい実施形態によって、CAPIアダプタにコヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)許可を実装するためのコンピュータの例およびCAPI許可ハンドルの配列要素の例を示す図である。 好ましい実施形態によって、CAPIアダプタにコヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)許可を実装するためのコンピュータの例およびCAPI許可ハンドルの配列要素の例を示す図である。 好ましい実施形態による、コマンドを検証するCAPI許可操作の例を示す図である。 好ましい実施形態による、コマンドを検証するCAPI許可操作の例を示す図である。 好ましい実施形態によるCAPI許可モデルおよび許可処理操作を含む、読み出しコマンドの例を示す図である。 好ましい実施形態によるCAPI許可モデルおよび許可処理操作を含む、読み出しコマンドの例を示す図である。 好ましい実施形態によるCAPI許可モデルおよび許可処理操作を含む、読み出しコマンドの例を示す図である。 好ましい実施形態によるCAPI許可モデルおよび許可処理操作を含む、読み出しコマンドの例を示す図である。 好ましい実施形態によるCAPI許可モデルおよび許可処理操作を含む、読み出しコマンドの例を示す図である。 好ましい実施形態によるCAPI許可モデルおよび許可処理操作を含む、読み出しコマンドの例を示す図である。 好ましい実施形態による、CAPI許可モデル処理操作の例を示す図である。 好ましい実施形態による、CAPI許可初期化処理操作の例を示す図である。 好ましい実施形態による、CAPI許可処理操作の例を示す図である。 好ましい実施形態による、CAPI許可コマンド・フロー処理操作の例を示す図である。 好ましい実施形態による、CAPI許可実施処理操作の例を示す図である。 好ましい実施形態による、CAPI許可機構および処理操作の例を示す図である。 好ましい実施形態による、CAPI許可削除処理操作の例を示す図である。 好ましい実施形態による、CAPI許可読み出しコマンド処理操作の例を示す図である。 好ましい実施形態による、CAPI許可読み出しコマンド処理操作の例を示す図である。 好ましい実施形態によるコンピュータ・プログラム製品を示すブロック図である。
下記の、本発明の実施形態の詳細な説明では、添付図面を参照し、その図面には本発明が実践され得るようにする実施形態の例が示される。他の実施形態が利用されてもよく、また本発明の範囲を逸脱することなく構造的変更が加えられてもよいことが理解される。
本明細書で使用される用語は、特定の実施形態のみを説明することを目的とし、本発明を限定することは意図されない。本明細書で使用されるとき、単数形「a」、「an」、および「the」は、文脈によって明確に断りのない限り、複数形も含む。また、用語「備える」または「備えている」あるいはその両方は、本明細書で使用するとき、述べられた特徴、完全体、ステップ、操作、要素、または構成要素あるいはその組合せの存在を明確に示すが、1つまたは複数の他の特徴、完全体、ステップ、操作、要素、構成要素またはそれらのグループあるいはその組合せの存在または追加を除外しない。
本発明の特徴によれば、好ましい実施形態によって、CAPIアダプタにコヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)許可を実装するための方法、システム、およびコンピュータ・プログラム製品が提供される。
図面を参照すると、図1および2に、好ましい実施形態によって、CAPIアダプタ102にコヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)許可を実装するためのコンピュータ・システムの例が、全体として参照文字100で示されている。コンピュータ・システム100は、システム・メモリ106に結合された1つまたは複数のプロセッサ104または中央処理ユニット(CPU)104(1つが示されている)を含み、このプロセッサ104またはCPU104は、I/Oハブまたはコヒーレント・アタッチ・プロセッサ・プロキシ(CAPP)108およびペリフェラル・コンポーネント・インターコネクト・エクスプレス(Peripheral Component Interconnect Express:PCIエクスプレスまたはPCIE)接続によってCAPIアダプタ102に結合されている。CAPIアダプタ102は許可テーブル112を含み、このテーブルは好ましい実施形態によって許可を実装する複数の許可エントリを含む。
図2に示されるように、好ましい実施例によれば、コンピュータ・システム100はストレージ・スタック120の例を含み、このスタックは、CAPI/PCIEインタフェース・ブロック130によってCAPIアダプタ102に結合された、ユーザCAPIクライアント122、ファイル・システム126を含むオペレーティング・システム124、およびハイパーバイザ128を含み、CAPIアダプタ102はファイル・システム許可機能132を含む。CAPI/PCIEインタフェース・ブロック130はCAPIトランスポート機構を含み、この機構は、システム・トランスポート機構またはPCIEの上に重ねられている。CAPIクライアント122はユニークなシステム・エントリであり、CAPIアダプタ機能にアクセスするための許可の、別途特定されたセットを有する。
また図3を参照すると、許可テーブル112は好ましい実施形態による許可を実装する許可エントリ140を含む。図示された許可エントリ140の例は、好ましい実施形態によれば、CAPIクライアント・ユーザID150、リソースならびにエクステントの情報を含むCAPIサーバ・レジスタ空間152、および、許容されるアクセス・タイプを含めた許容される機能のCAPIセット154を含む。
本発明の特徴によれば、CAPIサーバ・レジスタ空間152は、コマンドを開始させるために使用できるレジスタの複数のコピーを含むCAPIアダプタ・システム・バス・アドレス空間である。各コピーは、CAPIサーバ・レジスタと呼ばれる。各CAPIサーバ・レジスタは、その特定のCAPIサーバ・レジスタに以前から許可されているアダプタ機能にのみアクセスできる。
本発明の特徴によれば、CAPIクライアントIDは、CAPIサーバ・レジスタの特定のコピーへのインデックスである。CAPIクライアントのうち1つまたは複数が、マスタ・クライアントとして特定される。マスタ・クライアントのためのCAPIサーバ・レジスタは、CAPIアダプタの初期化機能を実行するために使用され、これらの特定のCAPIサーバ・レジスタは、すべてのCAPIアダプタ機能にアクセスすることができる。
図4および5を参照すると、好ましい実施形態による、コマンドを検証するCAPI許可操作の例が示されている。図4に、コマンドを検証するCAPI許可操作の例が、全体として参照文字200で示されている。図5のブロック222に示されるように、ホストにより検証が行われ、許可されたコンテキストのみが図4に示される所与のMMIO空間202に書き込んでもよい。図4で、IOアダプタ・リクエスト制御ブロック(IOARCB)206は、許可ハンドル208を含む。図5のブロック222に示されるように、図4の許可エントリ140で示される、信頼できるハンドル・データはCAPIサーバID214ならびにリソースおよび範囲212を含む。ブロック224に示されるように、MMIO空間202が、CAPIサーバID214によってインデクシングされる。ブロック226に示されるように、図4に示されるプロセス要素216がCAPIサーバIDによってインデクシングされる。ブロック228に示されるように、プロセス要素216はホスト実効アドレスを物理アドレスに変換するために必要な情報を含む。
図6、7、8、9、10および11を参照すると、好ましい実施形態によるCAPI許可モデルおよび読み出しコマンドのための許可処理操作を含む、読み出しコマンド操作の例が示されている。
図6に、読み出しコマンドのためのCAPI許可操作の例が、全体として参照文字300で示されている。CAPI許可操作300の例は、ユーザ302、OS304、ハイパーバイザ306、およびCAPIアダプタ102で示されている。図7のブロック310に示されるように、OSが「所有者」コンテキストであると仮定する。ブロック312に示されるように、ユーザが、ファイル/hdiskを「開く」ためにシステムコールを行う。ブロック314に示されるように、OSが、ユーザのコンテキストをコンテキスト・リストに追加するためにハイパーコールを行う。ブロック316に示されるように、ハイパーバイザが、ユーザのコンテキストをコンテキスト・リストに追加する。ブロック318に示されるように、ハイパーバイザが、そのコンテキストをアダプタに追加するためにCAPI処理を行う。
図8に、読み出しコマンドのためのCAPI許可操作の例が、全体として参照文字320で示されている。CAPI許可操作320の例は、ユーザ302、OS304、ハイパーバイザ306、およびCAPIアダプタ102で示されている。図9で、ブロック322に示されるように、ハイパーバイザがユーザのCAPI IDを返す。ブロック324に示されるように、許可を追加するために、OSがアダプタに対して「許可作成」のリクエストを行い、OSがユーザCAPI IDを提供し、次に、リソースおよびエクステントを提供する。ブロック326に示されるように、アダプタが各エクステントに許可ハンドルを割り当て、CAPI IDおよびエクステント情報を記入する。ブロック328に示されるように、アダプタがオペレーティング・システムに新しいユーザ許可ハンドルを返す。
図10に、読み出しコマンドのためのCAPI許可操作の例が、全体として参照文字330で示されている。CAPI許可操作330の例は、ユーザ302、OS304、ハイパーバイザ306、およびCAPIアダプタ102で示されている。図11で、ブロック334に示されるように、OSがユーザに許可ハンドルを返す。ブロック334に示されるように、ユーザがアダプタに、読み出しを発行するよう求めるリクエストを送る。ブロック336に示されるように、アダプタがCAPI IDを使用して、どのコンテキストを使用するか特定する。ブロック340に示されるように、アダプタがそのコンテキストを使用して、ホスト・リクエスト・アドレスを変換する。
ブロック342に示されるように、アダプタがIOアダプタ・リクエスト制御ブロック(IOARCB)をフェッチする。ブロック344に示されるように、アダプタがIOARCBから許可ハンドルを取得する。ブロック346に示されるように、アダプタが、その許可ハンドルが現行バージョンであるか(全ビットが一致するか)確認する。
ブロック348に示されるように、アダプタが、その許可ハンドルが使用されたCAPI IDのためのものであるか確認する。ブロック350に示されるように、アダプタが、そのリクエストの範囲が許容されている(許可ハンドル・データ内のデータ)か確認する。ブロック352に示されるように、アダプタが読み出しを行う。ブロック354に示されるように、アダプタがアドレスを変換して、データをホストへ(ユーザのメモリ内へ)送る。ブロック356に示されるように、アダプタはキューを書き込むか、メモリ位置を書き込むか、割り込みを生成するか、または何らかの所望の完了通知を行う。
本発明の特徴によって、図12に関して示され、記載されるように、CAPI許可モデルは、権利の分割実施に基づく。
図12を参照すると、好ましい実施形態によるCAPI許可モデル操作の例が示され、ブロック400で開始する。ブロック402に示されるように、信頼できるOSが、どのCAPIサーバ・レジスタがどのクライアントによってアクセス可能であるかを実施する。これは、例えば、クライアントの仮想アドレスをCAPIサーバ・レジスタ空間にマッピングすることによって実現される。ブロック404に示されるように、親クライアント(初期には主所有者クライアント(Master Owning Client))がCAPIアダプタ102に、どの機能が子のCAPIサーバに許容されるかを通知する。ブロック406に示されるように、親クライアントが、新しい子のCAPIサーバ・レジスタ空間に送ることを許容される機能、コマンド、エクステントを特定する1つまたは複数のコマンドを、以前から許可されているCAPIサーバ・レジスタ空間に送る。ブロック408に示されるように、アダプタが、要求されたそれぞれの許可要素に適した不透明の許可ハンドル・トークンを生成して返す。許可ハンドルは、実装ごとに固有の方法で、読み出し/書き込みコマンドの許可パフォーマンスを最適化するように符号化される。ブロック410に示されるように、アダプタは、CAPIサーバ・レジスタ空間に送られた各コマンドで許容される機能を実施する。ブロック410で、クライアントは適切な「許可ハンドル」をコマンド内にセットし、アダプタはその「許可ハンドル」を使用して、そのコマンドが受信側CAPIサーバ・レジスタ空間による実行を許容されていることを検証する。
図13を参照すると、好ましい実施形態によるCAPI許可初期化処理操作の例が示され、ブロック500で開始する。ブロック502に示されるように、アダプタのリセットが完了し、信頼できるOSのブート・プロセスがアダプタをCAPIモードに移行させ、主所有者クライアント・コンポーネント、および、その主所有者クライアントに割り当てられたアダプタCAPIサーバ・レジスタ空間を特定する。ブロック504に示されるように、主所有者クライアントは、アダプタの制御下で、すべてのデバイスおよび機能に対してデフォルトで許可される。ブロック506に示されるように、主所有者クライアントは信頼できるとして特定される。ブロック508に示されるように、信頼できるOSは、主所有者クライアントが、その所有者クライアントに割り当てられたCAPIサーバ・レジスタ空間にアクセスするためのアドレス・マッピングを作成する。このアドレス・マッピングは、他のどのようなクライアントまたはアプリケーションにも与えられない。
ブロック510に示されるように、これで、主所有者クライアントがアダプタにコマンドを送れるようになる。ブロック512に示されるように、他のクライアントまたはアプリケーションは、主所有者クライアントのサーバ・レジスタ空間へのアドレス・マッピングをもたないので、それらのレジスタを介してアダプタにコマンドを送ることはできない。
図14を参照すると、好ましい実施形態によるCAPI許可処理操作の例が示され、ブロック600で開始する。ブロック602に示されるように、アプリケーション・クライアントは、ファイル・システムからのファイルに対する許可を要求する。ブロック604に示されるように、ファイル・システムはリクエストを検証して、ファイルを含む各エクステントの位置を判断し、システムCAPI許可マネージャからの各エクステントに対する許可を要求する。ブロック606に示されるように、システムCAPI許可マネージャは、どのCAPIアダプタが各エクステントにサービスを行う必要があるか判断し、要求元アプリケーション・クライアントに(子)クライアントIDおよびCAPIサーバ・レジスタ範囲を割り当てるようにCAPIクライアント・マネージャに要求し、以前から許可されているCAPI親クライアント(初期にはマスタ・クライアント)に、子IDおよびエクステントのリストを許可するように要求する。ブロック608に示されるように、CAPI親クライアントは親のCAPIサーバ・レジスタを介して「許可作成」コマンドをCAPIアダプタに送る。パラメータは、CAPI子クライアントID、エクステントのリスト、および他のコマンド/アダプタ・リソースのリストであり、エクステントのリストは各エクステントについてCAPI親許可ハンドル、エクステント開始LBAおよびブロック数を含み、他のコマンド/アダプタ・リソースのリストは各コマンド/リソースについてCAPI親許可ハンドルを含む。ブロック610に示されるように、CAPIアダプタは、親許可ハンドルおよびCAPIサーバ・レジスタ範囲が特定のエクステント/コマンド/リソースに対して有効であることを検証し、要求された、それぞれの検証済みエクステント/コマンド/リソースに新しい子許可ハンドルを割り当てることによって許可リストを作成し、その許可リストを親クライアントに返す。ブロック612に示されるように、親クライアントは許可リストを許可マネージャに返す。ブロック614に示されるように、許可マネージャは許可リストおよび子クライアントIDをファイル・システムに返し、ファイル・システムは許可リストおよび子クライアントIDをアプリケーション・クライアントに返す。
図15を参照すると、好ましい実施形態によるCAPI許可コマンド・フロー処理操作の例が示され、ブロック700で開始する。ブロック702に示されるように、アプリケーション・クライアントがコマンドを作成する。パラメータは、開始LBAおよびLBAの数、ならびに子の許可ハンドルを含む。ブロック704に示されるように、アプリケーション・クライアントはそのコマンドを、そのアプリケーション・クライアントのCAPIサーバ・レジスタを介して直接CAPIアダプタに送る。ブロック706に示されるように、CAPIアダプタは、許可ハンドルおよび受信側CAPIサーバ・レジスタ・アドレスを使用して、要求側クライアントがコマンドの実行を許可されていることを検証する。ブロック708に示されるように、CAPIアダプタはコマンドを実行し、完了通知をアプリケーション・クライアントに送る。
図16を参照すると、好ましい実施形態によるCAPI許可実施処理操作の例が示され、ブロック800で開始する。ブロック802に示されるように、個々のクライアント/アプリケーションのためにアドレス空間マッピングを作成する、信頼できるOSによって、CAPIアダプタ・サーバ・レジスタ空間へのアクセスが実施される。ブロック804に示されるように、アダプタは、各コマンドで渡された許可ハンドルが要求側クライアントに属すること、および、そのクライアントが要求されたコマンド/機能/エクステントに対して許可されていることを検証することによって、そのコマンドにアクセス権を実施する。
図17を参照すると、好ましい実施形態によるCAPI許可機構および処理操作の例が示され、ブロック900で開始する。ブロック902に示されるように、許可ハンドルを、ルックアップ・テーブル・インデックスを含む複数のフィールドとして符号化する。ルックアップ・テーブル・インデックス・フィールドのサイズは、有効となる可能性のある許可ハンドルの数を最大化するように、実装によって選択されるべきである。許可ハンドルは実装固有の符号化を含み、このフィールドのサイズは失効した証明書の検出が可能である最小のサイズにすべきである。ブロック904に示されるように、複数の許可エントリを含む許可テーブルを作成する。各許可エントリは許可ハンドル、CAPIサーバ・レジスタID、エクステントの論理開始ブロック・アドレス、エクステントの論理ブロック・アドレスの範囲を含む。ブロック906に示されるように、コマンドを受信したときの許可処理は、受信したコマンドに含まれる許可ハンドルからルックアップ・テーブル・インデックスを抽出することを含む。そのルックアップ・テーブル・インデックスを使用して、許可エントリの場所を特定する。許可エントリのCAPIサーバ・レジスタIDを受信側のCAPIサーバ・レジスタIDと比較する。許可エントリの許可ハンドルを、受信したコマンドに含まれる許可ハンドルと比較する。いずれかが一致しない場合には、その結果、コマンドが拒絶される。
図18を参照すると、好ましい実施形態によるCAPI許可削除処理操作の例が示され、ブロック1000で開始する。ブロック1002に示されるように、アプリケーション子クライアント(または、その系列の親、祖父母など)が、「許可削除」コマンドをクライアントのCAPIサーバ・レジスタを介してCAPIアダプタに送る。パラメータは、CAPI子クライアントID、およびエクステントのリストである。各エクステントについて、CAPI子許可ハンドル、エクステントの開始LBAおよびブロック数、ならびに、他のコマンド/アダプタ・リソースのリストを含む。各コマンド/リソースについて、CAPI子許可ハンドルを含む。ブロック1004に示されるように、CAPIアダプタは、要求元が系列内の親または子のいずれかであることを検証し、リスト内の許可を削除する。
図19および図20を参照すると、好ましい実施形態によるCAPI許可読み出しコマンド処理操作の例が示されている。図19に、読み出しコマンドのためのCAPI許可操作が、全体として参照文字1100で示されている。CAPI許可操作1100の例は、ユーザ1102、OS1104、ファイル・システム1106、ハイパーバイザ1108、およびCAPIアダプタ102で示される。図20のブロック1102に示されるように、OSがファイル・システムおよびハイパーバイザに指示してファイルを開く。ブロック1104に示されるように、ハイパーバイザがCAPI IDを提供し、ファイル・システムが許可チェックを行って許可情報およびファイル・ハンドル(FH)を返す。ブロック1106に示されるように、OSが(ファイル・システムの指示により)許可作成リクエストを発行する。ブロック1108に示されるように、Lseekはユーザのファイル・システムのみを取り扱う。ブロック1110に示されるように、読み出しは、直接CAPIアダプタに対して行われる。ブロック1112に示されるように、CAPIアダプタは、CAPI ID、許可ハンドル(AH)、エクステント(ファイル・システム許可)を検証する。ブロック1114に示されるように、CAPIアダプタがその操作を行い、応答する。
図21を参照すると、本発明の工業製品またはコンピュータ・プログラム製品1200が示されている。コンピュータ・プログラム製品1200は、フロッピー(R)・ディスク、光学読み取り可能なコンパクト・ディスクもしくはCD−ROMの形での大容量読み出し専用メモリ、テープ、または別の同様のコンピュータ・プログラム製品などの記録媒体1202を含む、非一時的コンピュータ可読ストレージ媒体に有形に具現化されている。記録媒体1202は、図1および2のシステム100内の好ましい実施形態のCAPIアダプタ102にコヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)許可を実装するための方法を行うために、媒体1202上にプログラム手段1204、1206、1208、および1210を記憶する。
記録されたプログラム手段1204、1206、1208および1210により定められた一連のプログラム命令または1つもしくは複数の相互に関係するモジュールの論理アセンブリが、コンピュータ・システム100に、コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)許可を好ましい実施形態のCAPIアダプタ102に実装するように命じる。
本発明について、図面に示される本発明の実施形態の詳細を参照しながら説明してきた。それらの詳細は、添付の特許請求の範囲で請求される本発明の範囲を限定することを意図しない。

Claims (21)

  1. コンピュータ・システム内にコヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)アダプタのためのブロック・エクステント粒度の許可モデルの処理を実装するための方法であって、
    前記CAPIアダプタに許可テーブルおよびファイル・システム許可機能を提供することと、
    前記ファイル・システム許可機能が、エクステント粒度レベルでのデータ・アクセスを各CAPIクライアントに許可して、アプリケーションが前記CAPIアダプタ内で未許可のデータにアクセスすることを回避することと、
    各許可テーブルが、前記各CAPIクライアントのために、CAPIクライアント識別子(ID)、前記CAPIクライアントにリソース所有権を割り当てるCAPIサーバ・レジスタ空間、および許容される機能のCAPIセットを規定することと
    を含む、方法。
  2. 前記CAPIサーバ・レジスタ空間が、初期化機能を行うために使用されるCAPIサーバ・レジスタを含み、前記CAPIクライアントIDがCAPIサーバ・レジスタの特定のコピーへのインデックスを提供する、請求項1に記載の方法。
  3. 前記ファイル・システム許可機能が、前記各CAPIクライアントのための仮想アドレスを前記CAPIサーバ・レジスタ空間にマッピングすることによって、それぞれのCAPIクライアントに対するそれぞれのCAPIサーバ・レジスタへのアクセスを実施することを含む、請求項1に記載の方法。
  4. 複数のCAPIクライアントのうち1つまたは複数を主所有者CAPIクライアントとして特定することを含む、請求項1に記載の方法。
  5. 前記主所有者CAPIクライアントが親CAPIクライアントであり、前記親CAPIクライアントが前記CAPIアダプタに新しい子CAPIクライアントについて通知し、前記新しい子CAPIクライアントのための前記CAPIサーバ・レジスタ空間を特定し、前記新しい子CAPIクライアントのために許容されるCAPI機能を特定することを含む、請求項4に記載の方法。
  6. ユーザCAPIクライアントに前記ファイル・システム許可機能が許可ハンドルを返すことを含む、請求項1に記載の方法。
  7. 前記CAPIアダプタが、CAPIサーバ・レジスタ空間に送られた各コマンドに許容される機能を、前記コマンド内の前記許可ハンドルを使用して実施することを含む、請求項6に記載の方法。
  8. 前記ユーザCAPIクライアントが前記各コマンド内に前記許可ハンドルを設定することを含む、請求項6に記載の方法。
  9. 前記CAPIアダプタが、前記許可ハンドルを使用して前記各コマンドを検証することを含む、請求項1に記載の方法。
  10. コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)アダプタにブロック・エクステント粒度の許可モデルの処理を実装するためのシステムであって、
    許可テーブルおよびファイル・システム許可機能を含む前記CAPIアダプタを含み、
    前記ファイル・システム許可機能が、エクステント粒度でのデータ・アクセスをCAPIクライアントに許可して、アプリケーションが前記CAPIアダプタ内で未許可のデータにアクセスすることを回避し、
    前記許可テーブルが、前記CAPIクライアントのために、CAPIクライアント識別子(ID)、前記CAPIクライアントにリソース所有権を割り当てるCAPIサーバ・レジスタ空間、および許容される機能のCAPIセットを規定する、システム。
  11. コンピュータ可読媒体に記憶された制御コードを含み、前記制御コードが前記ファイル・システム許可機能を含む、請求項10に記載のシステム。
  12. 前記CAPIサーバ・レジスタ空間が、初期化機能を行うために使用されるCAPIサーバ・レジスタを含み、前記CAPIクライアントIDがCAPIサーバ・レジスタの特定のコピーへのインデックスを提供する、請求項10に記載のシステム。
  13. プロセッサ、ファイル・システム、および前記CAPIアダプタに関連する許可機能を管理するハイパーバイザを含む、前記CAPIアダプタに結合されたプロセッサ・コンプレックスを含む、請求項10に記載のシステム。
  14. コヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)、およびペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIE)を備えるトランスポート機構を含む、請求項13に記載のシステム。
  15. 前記ファイル・システム許可機能が、前記各CAPIクライアントのための仮想アドレスを前記CAPIサーバ・レジスタ空間にマッピングすることによって、それぞれのCAPIクライアントに対するそれぞれのCAPIサーバ・レジスタへのアクセスを実施する、請求項10に記載のシステム。
  16. 主所有者CAPIクライアントとして特定された、複数のCAPIクライアントのうち1つまたは複数を含み、前記主所有者CAPIクライアントが親CAPIクライアントであり、前記親CAPIクライアントが前記CAPIアダプタに新しい子CAPIクライアントについて通知し、前記新しい子CAPIクライアントのための前記CAPIサーバ・レジスタ空間を特定し、前記新しい子CAPIクライアントのために許容されるCAPI機能を特定する、請求項10に記載のシステム。
  17. ユーザCAPIクライアントに前記ファイル・システム許可機能が許可ハンドルを返す、請求項10に記載のシステム。
  18. 前記CAPIアダプタが、CAPIサーバ・レジスタ空間に送られた各コマンドに許容される機能を、前記コマンド内の前記許可ハンドルを使用して実施することを含む、請求項10に記載のシステム。
  19. 前記ユーザCAPIクライアントが前記各コマンド内に前記許可ハンドルを設定する、請求項18に記載のシステム。
  20. エクステント粒度でのデータ・アクセスをCAPIクライアントに許可する前記ファイル・システム許可機能が、ブロック・デバイスまたは論理ユニット(LUN)のリソース空間サブセットを含む各エクステントを含む、請求項10に記載のシステム。
  21. コンピュータ・システム内にコヒーレント・アクセラレータ・プロセッサ・インタフェース(CAPI)アダプタのためのブロック・エクステント粒度の許可モデルの処理を実装するためのコンピュータ・プログラム製品であって、プログラム命令が具現化されたコンピュータ可読ストレージ媒体を備え、前記プログラム命令が、請求項1ないし9のいずれかの方法を行うようにコンピュータによって実行可能である、コンピュータ・プログラム製品。
JP2017524432A 2014-11-20 2015-11-12 Capiアダプタにブロック・エクステント粒度の許可モデルの処理を実装するための方法、システム、およびコンピュータ・プログラム Active JP6490213B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/548,516 2014-11-20
US14/548,516 US20160149909A1 (en) 2014-11-20 2014-11-20 Implementing block device extent granularity authorization model processing in capi adapters
PCT/IB2015/058743 WO2016079642A1 (en) 2014-11-20 2015-11-12 Implementing block device extent granularity authorization model processing in capi adapters

Publications (2)

Publication Number Publication Date
JP2017535868A true JP2017535868A (ja) 2017-11-30
JP6490213B2 JP6490213B2 (ja) 2019-03-27

Family

ID=56010533

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017524432A Active JP6490213B2 (ja) 2014-11-20 2015-11-12 Capiアダプタにブロック・エクステント粒度の許可モデルの処理を実装するための方法、システム、およびコンピュータ・プログラム

Country Status (5)

Country Link
US (4) US20160149909A1 (ja)
JP (1) JP6490213B2 (ja)
DE (1) DE112015004459T5 (ja)
GB (1) GB2545606B (ja)
WO (1) WO2016079642A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10628334B2 (en) * 2017-03-06 2020-04-21 Mcafee, Llc System and method to protect digital content on external storage
CN110022310B (zh) * 2019-03-15 2021-09-14 北京星网锐捷网络技术有限公司 基于云计算开放网络操作系统的授权方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09237246A (ja) * 1995-12-25 1997-09-09 Hitachi Ltd Pciエージェント制御カードおよびpciエージェント制御方法
US20040025166A1 (en) * 2002-02-02 2004-02-05 International Business Machines Corporation Server computer and a method for accessing resources from virtual machines of a server computer via a fibre channel
JP2004318741A (ja) * 2003-04-21 2004-11-11 Hitachi Ltd ネットワーク管理プログラム、管理計算機及び管理方法
US8275632B2 (en) * 2004-07-23 2012-09-25 Privit, Inc. Privacy compliant consent and data access management system and methods

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0437246A (ja) * 1990-05-31 1992-02-07 Mitsubishi Electric Corp フアクシミリ装置
US6065041A (en) 1997-09-18 2000-05-16 Electronics For Imaging, Inc. Interface code architecture
JP4076078B2 (ja) * 2001-03-30 2008-04-16 キヤノン株式会社 ファイル管理方法
US7277995B2 (en) 2003-10-29 2007-10-02 Dot Hill Systems Corporation Storage controller and method for performing host access control in the host interface adapter
US7146482B2 (en) 2003-11-25 2006-12-05 International Business Machines Corporation Memory mapped input/output emulation
US9264384B1 (en) 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US7398337B2 (en) 2005-02-25 2008-07-08 International Business Machines Corporation Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization
US20060195663A1 (en) 2005-02-25 2006-08-31 International Business Machines Corporation Virtualized I/O adapter for a multi-processor data processing system
US7805706B1 (en) 2005-06-21 2010-09-28 Unisys Corporation Process for optimizing software components for an enterprise resource planning (ERP) application SAP on multiprocessor servers
US8146084B1 (en) 2007-02-21 2012-03-27 Adobe Systems Incorporated Loading applications in non-designated isolation environments
JP4697895B2 (ja) 2007-03-03 2011-06-08 Kddi株式会社 Ims/mmdネットワークへの代理接続方法、アダプタ及びプログラム
US7930487B1 (en) 2007-09-13 2011-04-19 Emc Corporation System and method for providing access control to raw shared devices
US20090198618A1 (en) 2008-01-15 2009-08-06 Yuen Wah Eva Chan Device and method for loading managing and using smartcard authentication token and digital certificates in e-commerce
US9104618B2 (en) 2008-12-18 2015-08-11 Sandisk Technologies Inc. Managing access to an address range in a storage device
US8019839B2 (en) 2009-05-11 2011-09-13 Accenture Global Services Limited Enhanced network adapter framework
US8719547B2 (en) 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
WO2011074168A1 (ja) * 2009-12-14 2011-06-23 パナソニック株式会社 情報処理装置
US8473947B2 (en) 2010-01-18 2013-06-25 Vmware, Inc. Method for configuring a physical adapter with virtual function (VF) and physical function (PF) for controlling address translation between virtual disks and physical storage regions
EP2354980A1 (en) 2010-02-04 2011-08-10 ST-Ericsson SA Management of communications between a client equipment and a server equipment providing to the client equipment computer resources represented according to a file system
US9195623B2 (en) 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US8495412B2 (en) 2010-09-10 2013-07-23 International Business Machines Corporation Autonomous propagation of virtual input/output (VIO) operation(s) to second VIO server (VIOS) due to a detected error condition at a first VIOS
US8645755B2 (en) 2010-12-15 2014-02-04 International Business Machines Corporation Enhanced error handling for self-virtualizing input/output device in logically-partitioned data processing system
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9405550B2 (en) 2011-03-31 2016-08-02 International Business Machines Corporation Methods for the transmission of accelerator commands and corresponding command structure to remote hardware accelerator engines over an interconnect link
US8930568B1 (en) 2011-12-20 2015-01-06 Emc Corporation Method and apparatus for enabling access to storage
US8875163B2 (en) 2012-05-01 2014-10-28 Qualcomm Innovation Center, Inc. Privacy application and method
WO2013177313A2 (en) 2012-05-22 2013-11-28 Xockets IP, LLC Processing structured and unstructured data using offload processors
US9336401B2 (en) * 2014-01-20 2016-05-10 International Business Machines Corporation Implementing enhanced security with storing data in DRAMs

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09237246A (ja) * 1995-12-25 1997-09-09 Hitachi Ltd Pciエージェント制御カードおよびpciエージェント制御方法
US20040025166A1 (en) * 2002-02-02 2004-02-05 International Business Machines Corporation Server computer and a method for accessing resources from virtual machines of a server computer via a fibre channel
JP2004318741A (ja) * 2003-04-21 2004-11-11 Hitachi Ltd ネットワーク管理プログラム、管理計算機及び管理方法
US8275632B2 (en) * 2004-07-23 2012-09-25 Privit, Inc. Privacy compliant consent and data access management system and methods

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WILE, BRUCE: "White Paper", COHERENT ACCELERATOR PROCESSOR INTERFACE(CAPI) FOR POWER8 SYSTEMS, JPN6018039255, 29 September 2014 (2014-09-29) *

Also Published As

Publication number Publication date
GB2545606B (en) 2017-10-25
US20180089473A1 (en) 2018-03-29
US10169605B2 (en) 2019-01-01
US20160149909A1 (en) 2016-05-26
US20170293771A1 (en) 2017-10-12
US20160148022A1 (en) 2016-05-26
WO2016079642A1 (en) 2016-05-26
DE112015004459T5 (de) 2017-06-14
GB2545606A (en) 2017-06-21
GB201705545D0 (en) 2017-05-24
JP6490213B2 (ja) 2019-03-27
US9858443B2 (en) 2018-01-02
US10055606B2 (en) 2018-08-21

Similar Documents

Publication Publication Date Title
US10055156B2 (en) Implementing extent granularity authorization command flow processing in CAPI adapters
US10043028B2 (en) Implementing extent granularity authorization processing in CAPI adapters
US9767261B2 (en) Implementing extent granularity authorization initialization processing in CAPI adapters
US10169605B2 (en) Implementing block device extent granularity authorization model processing in CAPI adapters
US10055573B2 (en) Implementing extent granularity authorization and deauthorization processing in CAPI adapters
US9703972B2 (en) Implementing and processing extent granularity authorization mechanism in CAPI adapters

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170710

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190108

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190226

R150 Certificate of patent or registration of utility model

Ref document number: 6490213

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150