JP2023137886A - ストレージ装置 - Google Patents

ストレージ装置 Download PDF

Info

Publication number
JP2023137886A
JP2023137886A JP2022044310A JP2022044310A JP2023137886A JP 2023137886 A JP2023137886 A JP 2023137886A JP 2022044310 A JP2022044310 A JP 2022044310A JP 2022044310 A JP2022044310 A JP 2022044310A JP 2023137886 A JP2023137886 A JP 2023137886A
Authority
JP
Japan
Prior art keywords
controller
range
storage device
user
vtper
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
JP2022044310A
Other languages
English (en)
Inventor
兼一 沼田
Kenichi Numata
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.)
Kioxia Corp
Original Assignee
Kioxia 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 Kioxia Corp filed Critical Kioxia Corp
Priority to JP2022044310A priority Critical patent/JP2023137886A/ja
Priority to US17/900,417 priority patent/US11941261B2/en
Publication of JP2023137886A publication Critical patent/JP2023137886A/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • 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
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】データ保護機能が向上したストレージ装置を提供すること。【解決手段】実施形態に係るストレージ装置は、第1ユーザが割り当てられる第1記憶領域と第2ユーザが割り当てられる第2記憶領域を含むストレージと、前記第1記憶領域のデータ保護機能と、前記第2記憶領域のデータ保護機能と、を提供可能する第1コントローラと、前記第2記憶領域のデータ保護機能を提供可能な第2コントローラと、を具備する。前記第1コントローラは、前記データ保護機能に関する情報を記憶するテーブルを備える。前記第2コントローラは、前記テーブルを参照可能である。前記第1コントローラは、前記第1記憶領域に関する第1ユーザ認証を実行する第1権限と、前記第2記憶領域に関する第2ユーザ認証を実行する第2権限と、を有する。前記第1コントローラは、前記第1ユーザ認証に成功した場合、前記第1記憶領域のデータ保護機能を提供する。前記第2ユーザ認証に成功した場合、前記第2記憶領域のデータ保護機能を提供する。【選択図】図12

Description

本発明の実施形態は、ストレージ装置に関する。
高速データ通信を行うためのシリアル転送方式の拡張インターフェース規格としてPCI-eTM(Peripheral Component Interconnect Express)が広く知られている。このPCI-e規格に準拠した単一のデバイスを複数の仮想デバイス(Virtual Function)からなるストレージ装置として見せるための規格としてSR-IOV(Single-Root I/O Virtualization)がある。SR-IOVにより各仮想デバイスには専用のメモリ空間が割り当てられる。ホストからストレージ装置へIOアクセスする際、アクセスのパフォーマンスのオーバヘッドとなるVI (Virtualization Intermediary)(Hypervisorとも称される)を迂回してDMA転送を行う。尚、VIは、物理リソースを抽象化し、複数の物理リソースを分離し、複数の物理リソースを仮想リソースにマッピングする。
一方、ストレージ装置のデータ保護機能としてTCG(Trusted Computing Group)が提案するTCG規格がある。しかし、現行のTCG規格のストレージ装置は、SR-IOV規格のストレージ装置に十分に対応していない。そのため、SR-IOV規格に準拠するストレージ装置に記憶されているデータの保護が十分ではない可能性がある。
米国特許出願公開第2021/72893号明細書 米国特許出願公開第2017/257315号明細書 米国特許出願公開第2019/384923号明細書
本発明の目的は、データ保護機能を向上させたストレージ装置を提供することである。
実施形態に係るストレージ装置は、第1ユーザが割り当てられる第1記憶領域と第2ユーザが割り当てられる第2記憶領域を含むストレージと、前記第1記憶領域のデータ保護機能と、前記第2記憶領域のデータ保護機能と、を提供可能する第1コントローラと、前記第2記憶領域のデータ保護機能を提供可能な第2コントローラと、を具備する。前記第1コントローラは、前記データ保護機能に関する情報を記憶するテーブルを備える。前記第2コントローラは、前記テーブルを参照可能である。前記第1コントローラは、前記第1記憶領域に関する第1ユーザ認証を実行する第1権限と、前記第2記憶領域に関する第2ユーザ認証を実行する第2権限と、を有する。前記第1コントローラは、前記第1ユーザ認証に成功した場合、前記第1記憶領域のデータ保護機能を提供する。前記第2ユーザ認証に成功した場合、前記第2記憶領域のデータ保護機能を提供する。
実施形態に係るストレージ装置と、ストレージ装置と接続可能なホストデバイスを含む情報処理システムの一例を示すブロック図。 実施形態に係るストレージ装置のコントローラのデータ保護機能の一例を説明するためのブロック図。 実施形態に係るストレージ装置のユーザ領域に対するレンジ設定の一例を説明するための図。 実施形態に係るストレージ装置のグローバルレンジの一例を説明するための図。 実施形態に係るストレージ装置のネームスペース領域に対するレンジ設定の一例を説明するための図。 実施形態に係るストレージ装置におけるネームスペース領域の割り当て/割り当て解除の一例を説明するための図。 実施形態に係るストレージ装置におけるシングルネームスペースの場合のレンジ設定の一例を説明するための図。 実施形態に係るストレージ装置におけるマルチネームスペースの場合のレンジ設定の一例を説明するための図。 実施形態に係るストレージ装置のレンジと暗号鍵の関係の一例を説明するための図。 実施形態に係るストレージ装置のレンジと暗号鍵の関係の他の例を説明するための図。 実施形態に係るストレージ装置のレンジと暗号鍵の関係の他の例を説明するための図。 実施形態に係るストレージ装置のデータ保護機能の一例を説明するための論理的な構成を示すブロック図。 実施形態に係るストレージ装置のデータ保護機能の他の例を説明するための論理的な構成を示すブロック図。 実施形態に係るストレージ装置が記憶するLockingテーブルの一例を示す図。 実施形態に係るストレージ装置が記憶するLockingInfoテーブルの一例を示す図。 実施形態に係るストレージ装置のPTPerによる認証処理の一例を示すフローチャート。 実施形態に係るストレージ装置の第1VTPerによる認証処理の一例を示すフローチャート。
以下、図面を参照して、実施形態を説明する。以下の説明は、実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、以下に説明する構成要素の構造、形状、配置、材質等に限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、図面において、各要素のサイズ、厚み、平面寸法又は形状等を実際の実施態様に対して変更して模式的に表す場合もある。複数の図面において、互いの寸法の関係や比率が異なる要素が含まれることもある。複数の図面において、対応する要素には同じ参照数字を付して重複する説明を省略する場合もある。いくつかの要素に複数の呼称を付す場合があるが、これら呼称の例はあくまで例示であり、これらの要素に他の呼称を付すことを否定するものではない。また、複数の呼称が付されていない要素についても、他の呼称を付すことを否定するものではない。なお、以下の説明において、「接続」は直接接続のみならず、他の要素を介した接続も含む場合もある。
以下、図面を参照しながら本実施の形態について詳細に説明する。
図1は、実施形態に係るストレージ装置4と、ストレージ装置4と接続可能なホストデバイス(以下、単にホストと称する)2を含む情報処理システムの一例を示すブロック図である。ストレージ装置4は、SR-IOV規格に準拠して動作する。ホスト2は、サーバやパーソナルコンピュータである。ホスト2とストレージ装置4は、PCIe規格に従って接続される。ホスト2とストレージ装置4は、NVMe(Non-Volatile Memory Express)TM規格に従って通信を実行する。ストレージ装置4は、HDD(Hard Disk Drive)やSSD(Solid State Drive)として実現される。
ストレージ装置4は、ストレージ12、バッファメモリ14、及びコントローラ10を有する。
ストレージ12は、不揮発性の記憶媒体である。ストレージ12は、ハードディスクや不揮発性メモリからから構成される。不揮発性メモリの例は、NAND型フラッシュメモリ、NOR型フラッシュメモリ、MRAM(Magneto-resistive Random Access Memory)、PRAM(Phase change Random Access Memory)、ReRAM(Resistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)等である。ストレージ12のユーザ領域は、複数のネームスペース領域(Namespace領域)NS1、NS2、…NSnに分割されることができる。ネームスペース領域NS1、NS2、…NSnの各々は、例えば、異なるユーザに割り当てることが可能である。
バッファメモリ14は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)等、揮発性メモリから構成される。
コントローラ10は、SoC(System On a Chip)から構成される。コントローラ10は、ホスト2から送信されたコマンドに基づき、ストレージ12を制御する。具体的には、コントローラ10は、ホスト2から送信されたライトコマンドやリードコマンドを受け付ける。コントローラ10は、ライトコマンドを受け付けると、バッファメモリ14をデータの一時的な記憶領域として利用しながら、ホスト2から転送されてくるデータのストレージ12への書き込み処理を行う。コントローラ10は、リードコマンドを受け付けると、バッファメモリ14をデータの一時的な記憶領域として利用しながら、ホスト2から要求されたデータのストレージ12からの読み出し処理を実行する。
コントローラ10は、FE(Front End)部20、BE(Back End)部22、暗号化部24、及びTPer(Trusted Peripheral)26を有する。TPer26は、FE部20を介してホスト2に接続される。TPer部26は、BE部22を介してストレージ12に接続される。FE部20は、SR-IOV規格に準拠して、ホスト2とTPer26との接続を制御する。
コントローラ10は、ストレージ12のデータ保護機能として、TCG規格に従うレンジ機能(Range Function)と暗号化消去機能(Cryptographic Erase Function)とを備える。
レンジ機能は、ユーザ領域を複数の区画(レンジ(Range)とも称する)に分割し、レンジ毎にロック状態を設定する機能である。レンジ機能とは、ユーザ領域を複数の区画(以下、レンジ(Range)と称する)に分割し、それぞれのレンジに記録されるデータを異なる暗号鍵によってセキュアに保護する機能である。これにより、それぞれのレンジに対して異なるユーザを割り当て、各ユーザは割り当てられたユーザ領域のレンジに記録したデータをセキュアに管理することができる。尚、暗号鍵は、レンジ毎に設定され、各レンジはそれぞれの暗号鍵によってロック状態またはアンロック状態が設定可能となっている。ロック状態は、リードロック状態とライトロック状態を含む。アンロック状態は、リードアンロック状態とライトアンロック状態を含む。リードロック状態のレンジに記憶されているデータはリード不可である。リードアンロック状態のレンジに記憶されているデータはリード可である。ライトロック状態のレンジへのデータのライトは不可である。ライトアンロック状態のレンジへのデータのライトは可である。ロック状態とアンロック状態を設定できるユーザは、レンジに割り当てられているユーザである。
暗号化消去機能は、レンジ毎に、ユーザデータの暗号鍵を再生成(すなわち変更)することにより、レンジの全データを復号できなくさせる、すなわち、レンジの全データを無効化する機能である。暗号化消去を実行できるユーザは、レンジに割り当てられているユーザである。
TPer26は、TCG規格に従うデータ保護機能を提供するための機能ブロックである。ストレージ装置4は、少なくとも1つのTPer26を持つ。
SR-IOV規格のストレージ装置は、仮想デバイス(Virtual Function:以下VFと称する)と物理デバイス(Physical Function:以下、PFと称する)を備える。PFとVFは、PCIe機能を提供するデバイスである。PFは、SR-IOV機能をサポートし、SR-PCIM、VIまたはSIがアクセス可能である。SR-PCIM(Single-Root PCI Manager)は、VIに実装されるソフトウェア部品であり、PFとVFの構成と管理を行う。SI(System Image)は、或る仮想リソース上で実行するように割り当てられたOSとアプリケーションを含むソフトウェア部品である。SR-IOV機能とは、例えば、VFを作成する機能を含む。一般的に、VFが提供するPCIe機能は、PFが提供するPCIe機能に比べて少ない。PFは、FE部20とBE部22に含まれる。VFも、FE部20とBE部22に含まれる。
TPer26は、PFとVFについてのデータ保護機能を提供するための機能ブロックである物理TPer(Pysical TPer:以下、PTPerと称する)30と、VFについてのデータ保護機能を提供するための機能ブロックである仮想TPer(Virtual TPer:以下、VTPerと称する)32を含む。PTPer30及びVTPer32は、SR-IOV規格に準拠するFE部20を介してホスト2と接続可能である。FE部20は、SR-IOV規格に準拠して、ホスト2とPTPer30及びVTPer32との接続を制御する。
PTPer30は、従来のTCG規格のTPerの機能と、VTPer管理機能とを提供する。VTPer管理機能とは、PTPer30がVTPer32を作成したり、削除したりする機能、及び、VTPer32へデータ保護機能の権限を移譲する機能である。データ保護機能の権限とは、例えば、レンジ機能を設定する権限や暗号化消去を実行する権限を含む。データ保護機能の権限を委譲することは、認証権限を委譲することを意味する。PTPer30は、TCG規格のデータ保護機能に関する全てのコマンドに対応する。VTPer32は、一部のコマンドに対応できない。VFの個数は複数の場合もある。VFの個数が複数の場合、コントローラ10は、複数のVTPer32を備える。
VTPer32はデフォルトではAnybody権限の処理のみ実行可能である。Anybody権限の処理の一例は、例えば、テーブルの参照である。VTPer32は、PTPer30からデータ保護機能の実行権限が移譲されると、自分に割り当てられたネームスペース領域やレンジのデータ保護の設定と実行を自分で出来るようになる。
暗号化部24はTPer26の制御の下で動作する。暗号化部24は、ホスト2から転送されてくるデータを暗号化するとともに、ストレージ12から読み出されたデータを復号する。
TPer26と暗号化部24以外のコントローラ10の機能は、FE部20とBE部22により提供される。FE部20は、TPer26を基準としてコントローラ10の前段に位置づけられるホスト2寄りの機能を提供するモジュール全般を指す。BE部22は、TPer26を基準としてコントローラ10の後段に位置づけられるストレージ12寄りの機能を提供するモジュール全般を指す。
ホスト2がライトコマンドを送信した場合、FE部20が、ライトコマンドを受け付け、書き込み先を示す情報などとともに書き込みデータをTPer26に引き渡す。
書き込み先がPFであるかVFであるかに応じて、PTPer30又はVTPer32は、書き込み先がデータ書き込み可能であるか否か、すなわち書き込み先はライトロック状態であるか否かの判定などを行う。PTPer30又はVTPer32は、書き込み先がデータ書き込み可能である、すなわちライトアンロック状態であれば、書き込みデータを暗号化部24に引き渡すとともに、書き込み先において使用されている暗号鍵によって書き込みデータを暗号化することを暗号化部24に指示する。PTPer30又はVTPer32は、書き込み先が書き込み不可、すなわちライトロック状態であれば、その旨をFE部20に通知する。FE部20は、ライトコマンドに対する応答として、ホスト2にエラーを返送する。
暗号化部24は、PTPer30又はVTPer32の指示に従い、書き込みデータを暗号化し、暗号化後の書き込みデータをPTPer30又はVTPer32に引き渡す。PTPer30又はVTPer32は、暗号化された書き込みデータを、バッファメモリ14を経由してBE部22へ引き渡し、ストレージ12への書き込みをBE部22へ指示する。ストレージ12への書き込みが完了すると、FE部20は、ライトコマンドに対する応答として、書き込みが成功したことをホスト2に返送する。
ホスト2がリードコマンドを送信した場合、FE部20が、リードコマンドを受け付け、読み出し先を示す情報などをTPer26に引き渡す。
読み出し先がPFであるかVFであるかに応じて、PTPer30又はVTPer32は、指定された読み出し先からのデータの読み出し可能であるか否か、すなわち読み出し先はリードロック状態であるか否かの判定を行う。PTPer30又はVTPer32は、読み出し先が読み出し可能、すなわちリードアンロック状態であれば、その旨をFE部20に通知する。PTPer30又はVTPer32は、読み出し先が読み出し不可、すなわちリードロック状態であれば、その旨をFE部20に通知する。FE部20は、リードコマンドに対する応答として、ホスト2にエラーを返送する。
FE部20は、読み出し先を示す情報などをBE部22に引き渡して、ストレージ12からのデータの読み出しをBE部22に指示する。BE部22は、ストレージ12から読み出したデータをバッファメモリ14経由でPTPer30又はVTPer32に引き渡す。PTPer30又はVTPer32は、BE部22からバッファメモリ14経由で受け取る暗号化された読み出しデータを暗号化部24に引き渡すとともに、読み出し先において使用されている暗号鍵によって読み出しデータを復号することを暗号化部24に指示する。FE部20は、復号された読み出しデータを暗号化部24から受ける。FE部20は、リードコマンドに対する応答として、復号された読み出しデータをホスト2に送信する。
図2は、実施形態に係るストレージ装置4のコントローラ10のデータ保護機能の一例を説明するためのブロック図である。図1のFE部20とBE部22は、図2ではFE/BF部40として纏めて示されている。FE/BF部40は、PFに関する機能ブロック42と、VF44に関する機能ブロック44を含む。
PTPer30とVTPer32は、同じ構造である。PTPer30(又はVTPer32)は、インターフェースコントローラ(Interface controller)50、TPerセッションマネージャ(TPer Session Manager:以下、TSMと称する)52、管理者セキュリティプロバイダ(Admin Security Provider:以下、Admin SPと称する)54、及びLockingセキュリティプロバイダ(以下、Locking SPと称する)56を有する。
インターフェースコントローラ50は、PTPer30又はVTPer32とホスト2との間の通信が特定のインターフェースに依存しないようにする、換言すれば、インターフェース非依存の通信を実現するための処理を実行する。インターフェースコントローラ50は、TCGに規定される各種インターフェースをサポートする。各種インターフェースは、NVMeのほか、SCSI(Small Computer System Interface)、ATA(AT Attachment)、e・MMC(Embedded Multi Media Card)等でもよい。
TSM52は、ホスト2とAdmin SP54又はLocking SP56との間の論理的な接続であるセッションを管理する。
Admin SP54とLocking SP56は、テンプレートの複合体である。テンプレートは、関連するテーブルやメソッドの集合である。テーブルは、行と列を含むテーブルや、バイトストリームを含むテーブルである。データ保護機能に関する設定等のTCGの設定は、設定に関するデータをテーブルに書き込むテーブル操作により行われる。ホスト2がテーブルやAdmin SP54やLocking SP56に対する処理を指示する情報がメソッドである。
Admin SP54は、すべてのSPの共通機能用のベーステンプレートと、後述するAdmin機能用のAdminテンプレートによって構成される。Locking SP56は、ベーステンプレートと、後述するレンジ機能を含むLocking機能用のLockingテンプレートによって構成される。
ベーステンプレートは、テーブルアクセスやオーソリティ管理等のAdmin SP54やLocking SP56の基本機能を定義する。ベーステンプレートのテーブルとしては、権限を有するユーザを定義するオーソリティテーブルや、ユーザのパスワードを定義するC_PINテーブル等がある。ベーステンプレートのメソッドとしては、テーブルの参照を指示するGetメソッドや、テーブル更新を指示するSetメソッドや、指定したSPを初期化するRevertSPメソッド等がある。
Adminテンプレートは、Admin機能を定義し、TPer全体の管理や、他のSPの管理機能(初期化等)を管理する。Adminテンプレートのメソッドとしては、指定したSPを初期化するRevertメソッドや、Locking SP56を活性化(activate)するActivateメソッド等がある。
Lockingテンプレートは、レンジ機能を定義する。Lockingテンプレートのテーブルとしては、レンジのメタ情報を記憶するLockingInfoテーブルや、レンジ機能に関する設定を記憶するLockingテーブルや、暗号論理を記憶するテーブル等がある。
Admin SP56は、Admin機能を提供する。具体的には、Admin SP54は、Locking SP56を活性化(Activate)したり、不活性化(Inactivate)したり、初期化するといったLocking SP56のライフサイクル管理を実行する。Locking SP56を活性化するとは、ネームスペース領域のデータ保護機能を有効にすることである。一方、Locking SP56を不活性化するとは、ネームスペース領域のデータ保護機能を無効にすることである。Locking SP56の不活性化は、初期化とも称する。Admin SP54は、常に活性化されている。Locking SP56は、常に活性化されている場合と、デフォルトでは不活性化されている場合がある。
Admin SP54は、ストレージ装置4上に構築されているTPer26がサポートする仕様(Security SubClass:SSC)の種類などといったTPer26の全体情報やLocking SP56を管理する。SSCの種類は、PTPer30やVTPer32をどのように構築するかによって異なり得る。また、全体情報には、後述する、ストレージ装置4全体でのレンジの設定可能数や、各ネームスペース領域でのレンジの設定可能数なども含まれる。
Admin SP54は、Locking SP56のライフサイクル管理を、ホスト2から送信されたTCGに関するメソッドに対応して実行する。データ保護機能を有効にするためのメソッドとしてActivateメソッドが定義されており、データ保護機能を無効にするためのメソッドとしてRevertメソッドが定義されている。
Locking SP56は、レンジ機能と暗号化消去機能を提供する。Locking SP56は、レンジごとに、暗号鍵を管理したり、ロック状態やアンロック状態を設定したり、暗号化消去を実行することができる。レンジが設定されていない状態のユーザ領域は、全体がグローバルレンジ(Global Range)として扱われる。また、1以上のレンジが設定された状態のユーザ領域のうちのレンジが設定されていない領域も、グローバルレンジとして扱われる。
テーブルはバッファメモリ14に記憶される。テーブルは、ストレージ装置4がシャットダウンする前に、ストレージ12のユーザ領域以外のシステム領域に記憶される。ストレージ12に記憶されているテーブルは、ストレージ装置4の電源が投入されると、バッファメモリ14に記憶される。
図2は、レンジとネームスペース領域の割り当ての一例を示す。PTPer30のLocking SP56は、レンジ1等をネームスペース領域NS1等に割り当てる。VTPer32のLocking SP56は、レンジmをネームスペース領域NSmに割り当てる。レンジmは、ネームスペース・グローバルレンジ(Namespace Global Range:NSグローバルレンジ)と称する。PTPer30のAdmin SP54は、グローバルレンジをネームスペース領域NSm+1~NSnに割り当てる。
図3は、実施形態に係るストレージ装置のユーザ領域に対するレンジ設定の一例を説明するための図である。最小の論理アドレスLBA0から最大の論理アドレスMaxLBAまでのユーザ領域が複数のレンジ、例えば、レンジ1、レンジ2、レンジ3に分割される。
例えば、レンジ1に関して、データの暗号鍵として暗号鍵MEK1が設定され、ユーザ1が割り当てられる。ユーザ1は、レンジ1に関して、例えばリードロック状態(read locked)とライトロック状態(write locked)を設定する。ユーザ1は、レンジ1に関して暗号化消去を実行することができる。
レンジ2に関して、データの暗号鍵として暗号鍵MEK2が設定され、ユーザ2が割り当てられる。ユーザ2は、レンジ2に関して、例えばリードロック状態(read locked)とライトアンロック状態(write unlocked)を設定する。レンジ3に関して、データの暗号鍵として暗号鍵MEK3が設定され、ユーザ3が割り当てられる。ユーザ3は、レンジ3に関して、例えばリードアンロック状態(read unlocked)とライトアンロック状態(write unlocked)を設定する。
図4は、実施形態に係るストレージ装置のグローバルレンジの一例を説明するための図である。図3に示したように最小の論理アドレスLBA0から最大の論理アドレスMaxLBAがユーザ領域であり、図4(a)のようにレンジが設定されていない場合は、ユーザ領域全体がグローバルレンジである。例えば、初期状態では、ユーザ領域全体がグローバルレンジである。グローバルレンジは、最大で“レンジ数+1”個の領域である。図4(b)は、2個のレンジ(レンジ1とレンジ2)がユーザ領域に設定された状態を示す。レンジ1とレンジ2は、ノングローバルレンジとなり、レンジ1とレンジ2以外のユーザ領域(ここでは斜線部の3つの領域)は、グローバルレンジである。グローバルレンジは、暗号鍵MEKが共通であり、レンジ機能に関する設定も共通である。
図5は、実施形態に係るストレージ装置のネームスペース領域に対するレンジ設定の一例を説明するための図である。
図5(a)はTCG規格の基本的な仕様におけるレンジ設定の一例を示す。この仕様はネームスペースを考慮していない。しかし、ユーザ領域全体を1つのネームスペース領域NS1とみなすと、この仕様は、マルチレンジ/シングルネームスペースに関するものであると言える。複数のレンジR1a、R2a、…Rmaがユーザ領域全体であるネームスペース領域NS1に割り当てられる。複数のレンジR1a、R2a、…Rma以外のネームスペース領域NS1の領域は、グローバルレンジ102である。レンジR1a、R2a、…Rmaはノングローバルレンジと称する。
図5(b)はTCG SIIS(Storage Interface Interctions Specification)規格におけるレンジ設定の一例を示す。この規格は、グローバルレンジ/マルチネームスペースに関する。ユーザ領域が複数のネームスペース領域NS1、NS2、…NSnに分割される。グローバルレンジ102がユーザ領域に割り当てられる。グローバルレンジ102に対して設定されたロック状態とアンロック状態は全部のネームスペース領域NS1、NS2、…NSnに反映される。
図5(c)はTCG CNL(Configurable Namespace Locking)規格におけるレンジ設定の一例を示す。TCGでは、複数のネームスペースが設定された場合のネームスペース単位でのデータ保護機能を提供するためのCNL規格が策定されている。この規格は、マルチレンジ/マルチネームスペースに関する。
例えば、ユーザ領域が複数のネームスペース領域NS1、NS2、…NSnに分割される。グローバルレンジ102がネームスペース領域NS1に割り当てられる。NSグローバルレンジ106がいくつかのネームスペース領域に割り当てられる。例えば、3つのNSグローバルレンジ106aがネームスペース領域NS2に割り当てられ、2つのNSグローバルレンジ106bがネームスペース領域NSnに割り当てられる。
図5(c)に例示されるように、ネームスペース・ノングローバルレンジ(ネームスペースがグローバルレンジに割り当てられないレンジ)(以下、NSノングローバルレンジと称する)である、レンジのR1、R2がネームスペース領域NS2に割り当てられる。また、NSノングローバルレンジRmがネームスペース領域NSnに割り当てられる。ネームスペース領域NS2の領域のうち、NSノングローバルレンジR1、R2以外の領域は、NSグローバルレンジ106aである。ネームスペース領域NSnの領域のうち、NSノングローバルレンジRn以外の領域は、NSグローバルレンジ106bである。
図6は、実施形態に係るストレージ装置4におけるネームスペース領域の割り当て/割り当て解除の一例を説明するための図である。図6(a)は、ユーザ領域としてネームスペース領域がグローバルレンジ102に割り当てられていない状態を示している。
図6(a)に示した状態において、ホスト2がNVMe規格のthe select(SEL)フィールドにCreateを指定したNamespace Managementコマンド(以下、Createコマンド)をストレージ装置4に送信すると、PTPer30又はVTPer32は、Createコマンドに対応して1つのネームスペース領域をユーザ領域として割り当てる。
図6(b)は、図6(a)のグローバルレンジ102に対して、1つのネームスペース領域NS1がユーザ領域として割り当てられた状態を示す。
図6(b)に示した状態において、ホスト2がNVMe規格のthe select(SEL)フィールドにDeleteを指定したNamespace Managementコマンド(以下、Deleteコマンド)をストレージ装置4へ送信すると、PTPer30又はVTPer32は、Deleteコマンドに対応して1つのネームスペース領域NS1のユーザ領域への割り当てを解除する。
ネームスペース領域NS1のユーザ領域への割り当てが解除されると、ユーザ領域は、図6(a)に示した状態に戻る。
一方、図6(b)に示した状態において、ホスト2が(n-1)個のCreateコマンドをストレージ装置4へ送信すると、PTPer30又はVTPer32は、図6(c)に示すように、Createコマンドに対応して(n-1)個のネームスペース領域NS2、…NSnをユーザ領域としてグローバルレンジ102に対してさらに割り当てる。
図6(c)に示した状態で、ホスト2が(n-1)個のDeleteコマンドをストレージ装置4へ送信すると、PTPer30又はVTPer32は、Deleteコマンドに対応して(n-1)個のネームスペース領域NS2、…NSnのユーザ領域への割り当てを解除する。ネームスペース領域NS2、…NSnのユーザ領域への割り当てが解除されると、ユーザ領域は、図6(b)に示した状態に戻る。
図7は、実施形態に係るストレージ装置におけるシングルネームスペースの場合のレンジ設定の一例を説明するための図である。図7(a)は、図6(b)と同様にグローバルレンジ102にユーザ領域としてネームスペース領域N1を割り当てた状態を示す。
例えば、ホスト2からTCG規格のSetメソッド(Range Lengthとして“非0”を指定)がストレージ装置4に送信されると、PTPer30又はVTPer32は、1つのSetメソッドに対応して1つのノングローバルレンジにネームスペース領域NS1を割り当てる(図7(a))。ここで、“非0”の指定は、所定サイズのレンジを設定することを意味する。
その後、ホスト2からTCG規格のSetメソッド(Range Lengthとして“非0”を指定)がストレージ装置4にm回送信されると、図7(b)に示すようにm個のノングローバルレンジR1a、R2a、…Rmaがネームスペース領域NS1に割り当てられる。ノングローバルレンジR1a、R2a、…Rma以外のネームスペース領域NS1の領域は、グローバルレンジ102として維持される。
その後、図7(b)に示した状態で、ホスト2からSetメソッド(Range Lengthとして“0”を指定)が送信されると、PTPer30又はVTPer32は、1つのSetメソッドに対応して1つのノングローバルレンジの割り当てを解除する。ここで、“0”の指定は、レンジの設定を解除することを意味する。
このようにホスト2からTCG規格のSetメソッド(Range Lengthとして“0”を指定)がm回送信され、ノングローバルレンジR1、R2、…Rmの割り当てが解除されると、ユーザ領域は、図7(a)に示した状態に戻る。
図8は、実施形態に係るストレージ装置におけるマルチネームスペースの場合のレンジ設定の一例を説明するための図である。図8(a)は、図6(c)と同様にグローバルレンジ102をネームスペース領域N1、NS2、…NSnに割り当てた状態を示す。
その後、図8(b)に示すように、ホスト2からTCG規格のAssignメソッドが送信されると、PTPer30又はVTPer32は、1つのAssignメソッドに対応して1つのNSグローバルレンジを1つのネームスペース領域に割り当てる。例えば、図8(b)に示すように、1つのAssignメソッドに対応してNSグローバルレンジ106aがネームスペース領域NS2に割り当てられ、他のAssignメソッドに対応してNSグローバルレンジ106bがネームスペース領域NSnに割り当てられる。
図8(b)に示した状態において、ホスト2からTCG規格のDeassignメソッドが送信されると、PTPer30又はVTPer32は、DeAssignメソッドに対応して1つのNSグローバルレンジの割り当てを解除する。ここで、例えば、異なる2つのDeassignメソッドがホストから送信されると、NSグローバルレンジ106a、106bの割り当てが解除され、ユーザ領域は、図8(a)に示した状態に戻る。
一方、図8(b)に示した状態において、ホスト2からNSグローバルレンジ106a、106bが割り当てられたネームスペース領域に対してAssignメソッド(Range Lengthとして“非0”を指定)が送信されると、PTPer30又はVTPer32は、1つのAssignメソッドに対応して1つのNSノングローバルレンジをネームスペース領域に割り当てる。図8(c)は、例えば、2つのAssignメソッドに対応してNSノングローバルレンジR1とR2がネームスペース領域NS2に割り当てられ、1つのAssignメソッドに対応してNSノングローバルレンジRmがネームスペース領域NSnに割り当てられた状態を示す。NSノングローバルレンジR1、R2以外のネームスペース領域NS2の領域は、NSグローバルレンジ106aである。NSノングローバルレンジRm以外のネームスペース領域NSnの領域は、NSグローバルレンジ106bである。
図8(c)に示した状態で、ホスト2からNSノングローバルレンジR1、R2、Rmが割り当てられたネームスペース領域に対してDeassignメソッド(Range Lengthとして“0”を指定)が送信されると、PTPer30又はVTPer32は、1つのDeAssignメソッドに対応して1つのNSノングローバルレンジの割り当てを解除する。図8(c)に示した状態で、NSノングローバルレンジR1、R2、Rmの割り当てが解除されると、ユーザ領域は、図8(b)に示した状態に戻る。
図8(c)に示した状態で、ホスト2からSetメソッド(Range Lengthとして“0”を指定)が送信されると、PTPer30又はVTPer32は、1つのSetメソッドに対応して1つのNSノングローバルレンジをNSグローバルレンジに変更する。図8(d)は、図8(c)に示したNSノングローバルレンジRmがNSグローバルレンジRmbに変更された状態を示す。
図8(d)に示した状態で、ホスト2からSetメソッド(Range Lengthとして“非0”を指定)が送信されると、PTPer30又はVTPer32は、1つのSetメソッドに対応して1つのNSグローバルレンジをNSノングローバルレンジに変更する。図8(c)は、図8(d)に示したNSグローバルレンジRmbがNSノングローバルレンジRmに変更された状態を示す。
図9は、実施形態に係るストレージ装置のレンジと暗号鍵の関係の一例を説明するための図である。この例では、ユーザ領域にネームスペース領域NS1、NS2、及びNS3が割り当てられ、ユーザ領域全体にグローバルレンジ102が割り当てられる(図9(a))。TCG CNL規格に対応するためには、少なくともネームスペース領域毎に1つの暗号鍵MEKを設定する必要がある。ネームスペース領域NS1、NS2、及びNS3の暗号鍵として、MEK1、MEK2、及びMEK3が夫々割り当てられ、グローバルレンジ102に暗号鍵MEK1、MEK2、及びMEK3が関連付けられる(図9(b))。グローバルレンジ102と暗号鍵の関係は1対多である。グローバルレンジ102に記憶されているデータを暗号化消去機能により削除する場合は、グローバルレンジ102に関連する全ての暗号鍵MEK1、MEK2、MEK3を再生成する。
図10は、実施形態に係るストレージ装置のレンジと暗号鍵の関係の他の一例を説明するための図である。図10は、図9に示す状態で、Assignメソッドにより、NSグローバルレンジ106がネームスペース領域NS2に割り当てられた状態を示す(図10(a))。NSグローバルレンジ106がネームスペース領域NS2に割り当てられても、ネームスペース領域と暗号鍵MEK1、MEK2、MEK3との関係に変更はないが、暗号鍵とレンジとの関連付けが変更される。グローバルレンジ102に暗号鍵MEK1とMEK3が関連付けられ、NSグローバルレンジ106に暗号鍵MEK2が関連付けられる(図10(b))。NSグローバルレンジ106と暗号鍵の関係は1対1である。
図11は、実施形態に係るストレージ装置のレンジと暗号鍵の関係の他の一例を説明するための図である。図11は、図10に示す状態で、Assignメソッドにより、NSノングローバルレンジR1がネームスペース領域NS2に割り当てられた状態を示す(図11(a))。暗号鍵として、NSノングローバルレンジR1の暗号鍵MEK2-1が追加される。グローバルレンジ102に暗号鍵MEK1とMEK3が関連付けられ、NSグローバルレンジ106に暗号鍵MEK2が関連付けられ、NSノングローバルレンジR1に暗号鍵MEK2-1が関連付けられる。(図11(b))。NSノングローバルレンジR1と暗号鍵の関係は1対1である。
図12は、実施形態に係るストレージ装置4のデータ保護機能の一例を説明するための論理的な構成を示すブロック図である。
ストレージ装置4のコントローラ10は、ホスト2に含まれるOS(例えば、ブートOS)202と接続される物理デバイスであるPF212と、PF212についてのデータ保護機能を提供可能なPTPer222を備える。PTPer222は、PF212に接続される。PF212は、図2に示したPF42に対応する。PTPer222は、図1、図2に示したPTPer30に対応する。PF212にはユーザ1とユーザ2が割り当てられている。PF212にはネームスペース領域NSID1,NSID2が割り当てられている。ネームスペース領域NSID1,NSID2にはそれぞれグローバルレンジ、レンジ1が割り当てられている。グローバルレンジ、レンジ1にはそれぞれユーザ1、ユーザ2が割り当てられている。ホスト2がCreateコマンドをストレージ装置4に送信すると、コントローラ10は、Createコマンドに対応してユーザ1にネームスペース領域NSID1を割り当て、ユーザ2にネームスペース領域NSID2を割り当て、ネームスペース領域NSID1、NSID2をPF212のユーザ領域に割り当てる。
OS202の起動後、ホスト2は、第1仮想マシン(以下、第1VMと称する)204と第2仮想マシン(以下、第2VMと称する)206を生成する。第1VM204と第2VM206のOSは、OS202とは異なってもよい。仮想マシンの数は1個でも良いし、3個以上でもよい。第1VM204と第2VM206は互いに異なるデータをストレージ装置4に対してリード又はライトしてもよい。例えば、第1VM204は画像データをリード又はライトしてもよいし、第2VM206はテキストデータをリード又はライトしてもよい。
ホスト2は第1VM204を生成すると、第1仮想デバイス(以下第1VFと称する)214と、第1VF214についてのデータ保護機能を提供する第1VTPer224とを生成する指示をストレージ装置4に送信する。第1VF214は、図2に示したVF44に対応する。第1VTPer224は、図1、図2に示したVTPer32に対応する。ホスト2は、第1VF214にユーザ1とユーザ3を割り当てる。ホスト2がCreateコマンドをストレージ装置4に送信すると、コントローラ10は、Createコマンドに対応してユーザ1のためのネームスペース領域NSID1とユーザ3のためのネームスペース領域NSID3を第1VF214のユーザ領域に割り当てる。
ホスト2は第2VM206を生成すると、第2仮想デバイス(以下第2VFと称する)216と、第2VF216についてのデータ保護機能を提供する第2VTPer226とを生成する指示をストレージ装置4に送信する。第2VF216は、図2に示したVF44に対応する。第2VTPer226は、図1、図2に示したVTPer32に対応する。ホスト2は、第2VF216にユーザ1とユーザ4を割り当てる。ホスト2がCreateコマンドをストレージ装置4へ送信すると、コントローラ10は、Createコマンドに対応してユーザ1のためのネームスペース領域NSID1とユーザ4のためのネームスペース領域NSID4を第2VF216のユーザ領域に割り当てる。
複数の物理デバイスと仮想デバイスのユーザ領域に割り当てられているネームスペース領域は共通ネームスペース領域とも称する。ここでは、ネームスペース領域NSID1は、PF212、第1VF214、及び第2VF216のユーザ領域に割り当てられているので、共通ネームスペース領域と称する。1つの物理デバイスまたは仮想デバイスのユーザ領域にのみ割り当てられているネームスペース領域NSID2、NSID3、NSID4はプライベートネームスペース領域とも称する。
ストレージ装置4の複数のユーザは、それぞれに割り当てられたネームスペース領域についてのデータ保護機能を適用することができる。データ保護機能を適用するためには、ユーザ認証が必要である。コントローラ10は、ユーザにデータ保護機能を提供する前に、ユーザ認証を実行する。
PTPer222は、ストレージ装置4に設定された全てのユーザ(例えばここでは、ユーザ1、ユーザ2、ユーザ3、ユーザ4)の認証権限を有する。ユーザ認証権限はユーザオーソリティとも称される。PTPer222のユーザ認証権限として、ここでは、ユーザ1、ユーザ2、ユーザ3、ユーザ4を設定している。PTPer222は、各ユーザに対してに認証が成功すると、ユーザそれぞれに割り当てられたネームスペース領域についてのデータ保護機能を提供できる。
一方、第1VTPer224と第2VTPer226のユーザ認証権限には、Anybodyが設定されている。ユーザ認証権限がAnybodyであるということは、第1VTPer224と第2VTPer226がユーザ認証が不要な処理しか実行できないことを意味する。ユーザ認証不要の処理としては、例えば、テーブルを参照する処理がある。第1VTPer224と第2VTPer226は、ストレージ装置4の何れのユーザ(ユーザ1、ユーザ2、ユーザ3、ユーザ4)についても認証権限を有しない。第1VTPer224と第2VTPer226は、ユーザ1、ユーザ2、ユーザ3、又はユーザ4の認証を実行することができず、ユーザ1、ユーザ2、ユーザ3、又はユーザ4に割り当てられたネームスペース領域についてのデータ保護機能を提供することができない。
ここで、或る特定のユーザが自分に割り当てられたネームスペース領域についてのデータ保護機能を適用する場合には、ホスト2は、ストレージ装置4に対し、データ保護機能を適用すべきネームスペース領域についてのユーザ認証を実行するよう指示する。PTPer222は、その指示に従い、ユーザ認証を行い、ユーザ認証の結果をホスト2へ返送する。
ホスト2は、ユーザ認証が成功したネームスペース領域についてのAssignメソッドをストレージ装置4へ送信する。PTPer222は、Assignメソッドに従って、ネームスペース領域にレンジを割り当てる。割り当ての一例では、ユーザ1のネームスペース領域NSID1にはグローバルレンジを割り当て、ユーザ2のネームスペース領域NSID2にレンジ2を割り当て、ユーザ3のネームスペース領域NSID3にレンジ3を割り当て、ユーザ4のネームスペース領域NSID4にレンジ4を割り当てる。
レンジの割り当て後、ホスト2はストレージ装置4へ或るレンジについてのSetメソッドを送信する。PTPer222は、Setメソッドに従って、レンジのロック状態またはアンロック状態を設定する。
PTPer222は、レンジのロック状態またはアンロック状態に関する設定情報を、Lockingテーブルに書き込む。Lockingテーブルは、レンジ毎のロック情報を記憶する行を含む。各行は、レンジの先頭位置、レンジの長さ、ロック状態またはアンロック状態、レンジが属するネームスペース領域ID、レンジがNSグローバルレンジであるかを示す情報等を記憶する。
コントローラ10は、テーブル更新のコミット時に、Lockingテーブルのロック状態またはアンロック状態を参照し、レンジをリードロック状態またはリードアンロック状態、及びライトロック状態またはライトアンロック状態とする。
レンジの割り当て後、ホスト2はストレージ装置4へ或る特定のレンジについてのGenkeyメソッド又はEraseメソッドを送信してもよい。PTPer222は、Genkeyメソッド又はEraseメソッドに従って、レンジの暗号鍵を再生成し、データを無効化する。Eraseメソッドは、暗号鍵の再生成に加えて、レンジのロックを解除し、ユーザのパスワードを初期化する。
PTPer222は、各ユーザの認証を実行し、それぞれのユーザ認証に成功した場合、ユーザに割り当てられたネームスペース領域についてのデータ保護機能を提供する。PTPer222は、PF212に記憶されているデータに限らず、第1VF214に記憶されているデータや第2VF216に記憶されているデータも、TCG規格に従ってデータ保護機能を提供することができる。
以上述べたように、第1VTPer224、第2VTPer226などのVTPerを導入することにより、PFを介さずに、それぞれのAnybody権限により、テーブル参照などを行うことができる。従って、ストレージ装置4のデータ保護機能が向上する。
PTPer222は、一度適用したレンジ機能の内容を変更することもできる。例えば、PTPer222は、Assignメソッドに対応して新たなレンジをネームスペース領域に割り当て、Setメソッドに対応してレンジにロック状態またはアンロック状態を設定してもよい。PTPer222は、Setメソッドに対応してレンジのロック状態またはアンロック状態を変更してもよい。PTPer222は、ロック状態またはアンロック状態の変更をLockingテーブルに反映させる。
図13は、実施形態に係るストレージ装置4のデータ保護機能の他の例を説明するための論理的な構成を示すブロック図である。
図12に示した例では、PTPer222が全てのネームスペース領域についてのデータ保護機能を一元的に提供する。一方、図13に示した例では、ネームスペース領域のデータ保護機能はそのネームスペース領域が割り当てられているデバイスに関するPTPer222、第1VTPer224、又は第2VTPer226により個別に提供される。ネームスペース領域のユーザ認証権限は、そのネームスペース領域に関連するPTPer222、第1VTPer224、又は第2VTPer226に与えられる。
図13に示す例では、初回のデータ保護機能の提供時は、ストレージ装置4の全てのユーザの認証権限はPTPer222に与えられており、PTPer222が全てのネームスペース領域についてのデータ保護機能を提供する。その後、第1VF214に割り当てられているユーザ3の認証権限を第1VTPer224に移譲し、第2VF216に割り当てられているユーザ4の認証権限を第2VTPer226に移譲する。
2回目以降のデータ保護機能の提供時は、データ保護機能を適用するネームスペース領域が割り当てられているデバイスに関するPTPer222、第1VTPer224、又は第2VTPer226がユーザ認証を行い、データ保護機能を提供する。
図12を参照して説明したように、ホスト2は、第1VF214と第2VF216、及び第1VTPer224と第2VTPer226を生成した後、或る特定のネームスペース領域についてのデータ保護機能の提供をユーザから要求されると、ストレージ装置4に対して当該ネームスペース領域についてのユーザ認証を実行するよう指示する。この時は、PTPer222がストレージ装置4の全てのユーザを認証する権限を有する。
図13に示した例の場合、第1VTPer224又は第2VTPer226がユーザ認証権限を有することもあり得る。従って、或るユーザについてPTPer222がユーザ認証権限を有するのか、あるいは、第1VTPer224又は第2VTPer226がユーザ認証権限を有するのか、をコントローラ10、PTPer222、第1VTPer224、又は第2VTPer226が認識した方がよい場合がある。そのため、ロック状態またはアンロック状態に関する情報を記憶するLockingテーブルは、ユーザ認証権限の所有者がVFに割り当てられたかどうかの情報に関するVF Assigned列をさらに有する。
図14は、実施形態に係るストレージ装置4が記憶するLockingテーブルの一例を示す。Lockingテーブルは、PTPer222のLocking SP56に含まれるテーブルである。PTPer222は、レンジに関するロック状態またはアンロック状態の設定情報を、Lockingテーブルに書き込む。Lockingテーブルは、レンジ毎の各種情報を記憶する行を含む。尚、図12に示した例で用いられるLockingテーブルでは、図14のテーブルからVF Assigned列は除かれたものとなっている。
PTPer222は、UID列に、テーブルの行、すなわちレンジを特定するIDを書き込む。PTPer222は、Name列に、グローバルレンジ、レンジ1、レンジ2、レンジ3等のレンジの名前を書き込む。PTPer222は、Range Start列に、レンジの先頭の論理アドレスを書き込む。PTPer222は、Range Length列に、レンジの長さ(バイト)を書き込む。
PTPer222は、ReadLocked列、及びWriteLocked列の夫々に、TRUE又はFALSEを書き込む。レンジがリードロック状態である場合、PTPer222は、ReadLocked列に、TRUEを書き込む。レンジがライトロック状態である場合、PTPer222は、WriteLocked列に、TRUEを書き込む。
PTPer222は、NamespaceID列に、そのレンジが割り当てられているネームスペース領域のIDを書き込む。PTPer222は、Namespace Global Range列に、TRUE又はFALSEを書き込む。レンジがNSグローバルレンジである場合、PTPer222は、Namespace Global Range列に、TRUEを書き込む。レンジがNSグローバルレンジではない場合、PTPer222は、Namespace Global Range列に、FALSEを書き込む。NSグローバルレンジについては、レンジはネームスペース領域全体に割り当てられるので、PTPer222は、Range Start列とRange Length列に0を書き込む。0が書き込まれているRange Start列とRange Length列は、無効である。
PTPer222は、VF Assigned列に、TRUE又はFALSEを書き込む。VF Assigned列は、当該レンジが属するネームスペース領域に割り当てられているユーザの認証権限をPTPer222が有するのか、第1VTPer224又は第2VTPer226が有するのかを表す。
PTPer222がユーザ認証権限を有する場合、PTPer222は、VF Assigned列に、FALSEを書き込む。第1VTPer224又は第2VTPer226がユーザ認証権限を有する場合、すなわち、ユーザ認証権限がPTPer222から第1VTPer224又は第2VTPer226に移譲された場合、PTPer222は、VF Assigned列に、TRUEを書き込む。初期状態では、全てのユーザの認証権限はPTPer222が有するので、LockingテーブルのVF Assigned列は全てFALSEが書き込まれている。
コントローラ10は、ホスト2から或る特定のネームスペース領域についてのユーザ認証の指示を受けた時に、Lockingテーブルの対応するネームスペース領域の行のVF Assigned列を参照することにより、当該ネームスペース領域についてのユーザ認証権限を有するモジュールを知ることができる。コントローラ10は、ユーザ認証権限を有するモジュール、すなわちPTPer222によりユーザ認証を実行させる。
ユーザ認証が成功した場合、ホスト2は、ストレージ装置4へAssign2メソッドとSetメソッドを送信する。
Assign2メソッドは、今までの説明で用いられたレンジを割り当てるAssignメソッドの変形である。Assign2メソッドは、Assignメソッドに対して、パラメータが1つ追加されている。パラメータとは、ホスト2がストレージ装置4へ送信する情報である。Assign2メソッドのパラメータは、NamespaceIDと、Range Startと、Range Lengthと、VF Assignedを含む。この時、VF Assignedは省略可能である。
PTPer222は、Assign2メソッドのパラメータに従って、ネームスペース領域にレンジを割り当てる。割り当ての一例では、ネームスペース領域NSID1にグローバルレンジを割り当て、ネームスペース領域NSID2にレンジ1を割り当て、ネームスペース領域NSID3にレンジ2を割り当て、ネームスペース領域NSID4にレンジ3を割り当てる。
PTPer222は、割り当て結果をLockingテーブルに書き込む。Assign2メソッドのパラメータVF Assignedが省略された場合、PTPer222は、LockingテーブルのVF Assigned列のデータを書き換えない。
ストレージ装置4は、Assign2メソッドの応答としてホスト2へ戻り値を送信する。Assign2メソッドの戻り値は、UIDと、Namespace Global Rangeを含む。UIDは、ネームスペース領域に割り当てたレンジのIDである。レンジがNSグローバルレンジである場合、PTPer222は、Namespace Global Range列に、TRUEを書き込む。レンジがNSノングローバルレンジである場合、PTPer222は、Namespace Global Range列に、FALSEを書き込む。
Setメソッドは、ホスト2がストレージ装置4へ送信する情報であるパラメータを伴なう。Setメソッドのパラメータは、レンジのUIDと、ReadLockedがTRUE又はFALSEであるかの情報と、WriteLockedがTRUE又はFALSEであるかの情報を含む。PTPer222は、パラメータのデータをLockingテーブルの対応する列に書き込み、レンジのロック状態またはアンロック状態を設定する。
これにより、或る特定のネームスペース領域についての初回のデータ保護機能の提供が終了する。
この後、ホスト2は、データ保護機能が既に提供されているレンジ、例えばレンジ2が属するネームスペース領域NSID3のユーザ認証権限をPTPer222から第1VTPer224へ移譲したい場合、Assign2メソッドをストレージ装置4へ送信する。ホスト2は、Assign2メソッドのパラメータの中のNamespaceIDに2を設定し、VF assginedにTRUEを設定する。PTPer222は、このAssign2メソッドのパラメータに従って、PTPer222のLocking SP56に含まれるLockingテーブルのネームスペース領域NSID3の行のVF assgined列をFLASEからTRUEに書き換える。
PTPer222は、Lockingテーブルを更新する毎に、Lockingテーブルを第1VTPer224と第2VTPer226に送信する。第1VTPer224は、Lockingテーブルを第1VTPer224のLocking SP56に記憶する。第2VTPer226は、Lockingテーブルを第2VTPer226のLocking SP56に記憶する。これにより、PTPer222、第1VTPer224、及び第2VTPer226は同じ内容のLockingテーブルを参照できる。
これにより、ネームスペース領域NSID3のユーザ認証権限のPTPer222から第1VTPer224への移譲が完了する。以降、ネームスペース領域NSID3について、PTPer222はユーザ認証が不可となり、第1VTPer224はユーザ認証が可となる。
この後、ホスト2は、ネームスペース領域NSID3についてのデータ保護機能の提供をユーザから要求されると、ストレージ装置4に対してユーザ認証を実行するよう指示する。第1VTPer224がネームスペース領域NSID3についてのユーザ認証を実行し、ユーザ認証に成功すると、ネームスペース領域NSID3についてのデータ保護機能を提供する。第1VTPer224が適用したデータ保護機能の設定に関す情報は、第1VTPer224が、第1VTPer224のLocking SP56内のLockingテーブルに書き込む。第1VTPer224は、Lockingテーブルを更新する毎に、LockingテーブルをPTPer222と第2VTPer226に送信する。
ホスト2は、データ保護機能が既に提供されているレンジ、例えばレンジ3が属するネームスペース領域NSID4のユーザ認証権限をPTPer222から第2VTPer226へ移譲したい場合、Assign2メソッドをストレージ装置4へ送信する。ホスト2は、Assign2メソッドのパラメータの中のNamespaceIDに3を設定し、VF assginedにTRUEを設定する。PTPer222は、Assign2メソッドのパラメータに従って、PTPer222のLocking SP56に含まれるLockingテーブルのネームスペース領域NSID4の行のVF assgined列をFLASEからTRUEに書き換える。
PTPer222は、Lockingテーブルを更新する毎に、Lockingテーブルを第1VTPer224と第2VTPer226に送信する。
これにより、ネームスペース領域NSID4のユーザ認証権限のPTPer222から第2VTPer226への移譲が完了する。以降、ネームスペース領域NSID4について、PTPer222はユーザ認証が不可となり、第2VTPer226はユーザ認証が可となる。
この後、ホスト2は、ネームスペース領域NSID4についてのデータ保護機能の提供をユーザから要求されると、ストレージ装置4に対してユーザ認証を実行するよう指示する。第2VTPer226がネームスペース領域NSID4についてのユーザ認証を実行し、ユーザ認証に成功すると、ネームスペース領域NSID4についてのデータ保護機能を提供する。第2VTPer226が適用したデータ保護機能の設定に関す情報は、第2VTPer226が、第2VTPer226のLocking SP56内のLockingテーブルに書き込む。第2VTPer226は、Lockingテーブルを更新する毎に、LockingテーブルをPTPer222と第1VTPer224に送信する。
これにより、或る特定のネームスペース領域についてのユーザ認証権限の移譲が終了する。
以上述べたように、第1VTPer224、第2VTPer226などのVTPerを導入することにより、ユーザの認証権限をPTPerからVTPerに委譲できるので、VF自身がTCG規格に従い、各ネームスペース領域のデータ保護を個別に行うことができる。従って、ストレージ装置4のデータ保護機能が向上する。
ユーザ認証権限の委譲メソッドとして、既存のAssignメソッドにパラメータを追加したものを説明したが、専用の新規メソッドを定義してもよい。
移譲の際、幾つかの制約を満たすことを条件としてもよい。
レンジがシングルユーザモード(Single User Mode:SUM)設定されていることを移譲の条件としてもよい。SUM設定されているレンジは、データ保護機能を利用できるユーザは単一のユーザであるレンジである。
SUM設定されていないレンジについて、データ保護機能を利用できるユーザとして複数のユーザが設定可能である。この場合、レンジに対するアクセス権を有するユーザは流動的となってしまう。さらに、1人のユーザが複数のレンジに対してアクセス権を有する可能性がある。つまり、対象となるレンジだけでなく、PTPerに割り当てられているレンジや別のVTPerに割り当てられているレンジに対するアクセス権も同時に有するユーザが存在してしまう可能性がある。従って、SUM設定を条件にしないと、色々な特殊仕様の定義が必要となり、仕様が複雑化する懸念がある。SUM設定されているレンジに割り当てられているユーザは当該レンジに関するLockingテーブルの行しか書換えられなし。従って、或るVMのユーザパスワードが漏洩しても、OS202や他のVMに対する被害が遮断される。
図15は、実施形態に係るストレージ装置4が記憶するLockingInfoテーブルの一例を示す。LockingInfoテーブルは、PTPer222のLocking SP56に含まれるテーブルである。LockingInfoテーブルは、レンジのメタ情報(レンジの数等)を記憶する行を含む。
PTPer222は、UID列に、LockingInfoテーブルの行を示すIDを書き込む。PTPer222は、Name列に、“LockingInfo”等の文字列を書き込む。PTPer222は、Encrypt Suport列に、媒体暗号サポートの有無を表す情報を書き込む。PTPer222は、Max Ranges列に、最大レンジ数(グローバルレンジを含まない)を書き込む。PTPer222は、Alignment Required列に、Alignmentが必要かどうかを表す情報を書き込む。PTPer222は、Logical Block Size列に、1ブロック当たりのバイト長を書き込む。PTPer222は、Alignment Graularity列に、Range StartとRange LengthのAlignment Graularityを書き込む。PTPer222は、Lowest Aligned LBA列に、指定できる最小のAligned LBAを書き込む。
Single User Mode Ranges列は、シングルユーザモードに設定されているレンジを表す情報をリスト形式([レンジ1],[レンジ1,レンジ2]等)で記憶する。全レンジがシングルユーザモードに設定されている場合、Single User Mode Ranges列は、Lockingテーブルと言うテーブルを示すUIDのみを記憶する。Single User Mode Ranges列は、Activateメソッド又はReactivateメソッドにより指定される。
PTPer222は、ホスト2からAssign2メソッドにより、ユーザ認証権限の委譲を指示されても、LockingInfoテーブルのSingle User Mode Ranges列を参照して、レンジがSUM設定されていなければ、LockingテーブルのVF Assigned列を書き換えない。
レンジのリードロック状態あるいはライトロック状態の少なくともいずれか一方が解除されていることを移譲の条件としてもよい。つまり、レンジの暗号鍵(MEK)がパスワードの入力無しで導出可能な状態であることを条件としてもよい。移譲後、暗号鍵は移譲後のパスワードで保護される。暗号鍵の保護に関して2つの場合がある。
PTPer222は、ホスト2からAssignメソッドにより、ユーザ認証権限の委譲を指示されても、LockingテーブルのReadLocked列とWriteLocked列を参照して、レンジがリードロック状態かつライトロック状態であれば、(i)メソッドエラーとして、LockingテーブルのVF Assigned列の書き換えを実行しないか、(ii)レンジについて暗号化消去を実行、又はリードロック状態又はライトロック状態を解除してからLockingテーブルのVF Assigned列の書き換えを実行する。
パスワードの移譲方法について説明する。
第1の方法は、そのまま移譲する方法である。これには、OS202と第1VM202、第2VM204とのセキュアな連携が必要である。
第2の方法は、移譲を指示するAssign2メソッドに新規なパラメータNew PINを追加して、このパラメータにより移譲する方法である。New PINが移譲後のパスワードとなる。これにも、OS202と第1VM202、第2VM204とのセキュアな連携が必要である。
第3の方法は、決められた固定値を移譲後のパスワードとする方法である。
図16は、実施形態に係るストレージ装置4のPTPer222による認証処理の一例を示すフローチャートである。図16は、図13に示すように、一部のユーザのユーザ認証権限がPTPer222から第1VTPer224又は第2VTPer226に移譲された場合の処理を説明する。
ユーザが或るレンジについてのデータ保護機能の利用をホスト2に要求すると、ホスト2は、ストレージ装置4にユーザ認証の実行を指示する。
ユーザ認証の実行が指示されると、ステップS102で、PTPer222は、LockingInfoテーブルのSingle User Mode Ranges列を参照することにより、対象のレンジはSUM設定されているか否かを判断する。
ステップS102の判断結果がイエスの場合(レンジはSUM設定されている場合)、ステップS104で、PTPer222は、LockingテーブルのVF Assigned列がTRUEであるか否かを判断する。
ステップS104の判断結果がノーの場合(VF Assigned列がFLALSEである場合)、ステップS106で、PTPer222は、ユーザの認証処理を実行する。
ステップS102の判断結果がノーの場合(レンジはSUM設定されていない場合)、ステップS106で、PTPer222は、ユーザの認証処理を実行する。
ステップS108で、PTPer222は、ユーザ認証が成功したか否かを判断する。
ユーザ認証が成功した場合(ステップS108のイエス)、ステップS110で、PTPer222は、ホスト2から送信されるメソッドに対応して、ロック状態またはアンロック状態の設定、設定の変更、又は暗号化消去の実行を行う。その後、処理は終了する。
ユーザ認証が失敗した場合(ステップS108のノー)、ステップS114で、PTPer222は、認証失敗処理を行う。認証失敗処理は、ユーザに認証の失敗を通知する処理でもよい。その後、処理は終了する。
ステップS104の判断結果がイエスの場合(VF Assigned列がTRUEである場合)、ステップS106で、PTPer222は、認証拒否処理を行う。認証拒否処理は、ユーザに認証の拒否理由を通知する処理でもよい。その後、処理は終了する。
図17は、実施形態に係るストレージ装置4の第1VTPer224による認証処理の一例を示すフローチャートである。第2VTPer226による認証処理のフローチャートは第1VTPer224に関するフローチャートと同じであるので、説明は省略する。
ユーザ認証の実行が指示されると、ステップS202で、第1VTPer224は、LockingInfoテーブルのSingle User Mode Ranges列を参照することにより、対象のレンジはSUM設定されているか否かを判断する。
ステップS202の判断結果がイエスの場合(レンジはSUM設定されている場合)、ステップS204で、第1VTPer224は、LockingテーブルのVF Assigned列がTRUEであるか否かを判断する。
ステップS204の判断結果がイエスの場合(VF Assigned列がTRUEである場合)、ステップS206で、第1VTPer224は、ユーザの認証処理を実行する。
ステップS208で、第1VTPer224は、ユーザ認証が成功したか否かを判断する。
ユーザ認証が成功した場合(ステップS208のイエス)、ステップS210で、第1VTPer224は、ホスト2から送信されるメソッドに対応してロック状態またはアンロック状態の設定、設定の変更、又は暗号化消去の実行を行う。その後、処理は終了する。
ユーザ認証が失敗した場合(ステップS208のノー)、ステップS212で、第1VTPer224は、認証失敗処理を行う。認証失敗処理は、ユーザに認証の失敗を通知する処理でもよい。その後、処理は終了する。
ステップS202の判断結果がノーの場合(レンジはSUM設定されていない場合)、及びステップS204の判断結果がノーの場合(VF Assigned列がFALSEである場合)、ステップS214で、第1VTPer224はPTPer222は、認証拒否処理を行う。その後、処理は終了する。
移譲の解除について説明する。ホスト2は、PTPer222から第1VTPer224又は第2VTPer226へ移譲したユーザ認証権限をPTPer222に移譲(移譲解除と称する)ことができる。移譲解除はDeAssign2メソッドによる。
DeAssign2メソッドは、今までの説明で用いられたレンジの割り当てを解除するDeAssignメソッドの変形である。DeAssign2メソッドは、DeAssignメソッドに対して、パラメータが1つ追加されている。DeAssign2メソッドのパラメータは、レンジのUIDと、VF Assignedを含む。
ホスト2は、DeAssign2メソッドをストレージ装置4へ送信する。ホスト2は、DeAssign2メソッドのパラメータの中のUIDにユーザ認証権限をPTPer222に移譲したいネームスペース領域に含まれるレンジのUIDを設定し、VF AssignedにFALSEを設定する。PTPer222は、DeAssign2メソッドのパラメータに従って、PTPer222のLocking SP56に含まれるLockingテーブルのUIDに対応する行のVF assginedをTRUEからFLASEに書き換える。
これにより、第1VTPer224又は第2VTPer226へのユーザ認証権限の委譲が解除され、認証権限はPTPer222に戻る。
ユーザ認証権限の委譲解除メソッドとして、既存のDeAssignメソッドにパラメータを追加したものを説明したが、専用の新規メソッドを定義してもよい。
移譲解除についても、移譲の際と同じ制約を満たすことを条件としてもよい。レンジがSUM設定されていることを移譲解除の条件としてもよい。あるいは、レンジのリードロックあるいはライトロックの少なくともいずれか一方が解除されていることを移譲解除の条件としてもよい。
パスワードの移譲解除方法もパスワードの移譲方法と同じ方法が可能である。さらに、移譲解除の場合は、PTPer222が移譲前のパスワードを記憶しておき、移譲解除されると、記憶しているパスワードに戻すことも可能である。
PTPer222と第1VTPer224と第2VTPer226が記憶するデータ保護機能に関するテーブルについて説明する。
(1)ベーステンプレートに基づくテーブルとしては下記がある。
Locking SPのIDを記憶するSPInfoテーブル
組み込んでいるテンプレート情報を記憶するSPTemplatesテーブル
各テーブルのID情報を記憶するTableテーブル
各メソッドのIDを記憶するMethodIDテーブル
各メソッドの権限設定情報を記憶するAccessControlテーブル
Access Control Elementを記憶するACEテーブル
管理者とユーザの権限設定情報を記憶するAuthorityテーブル
PIN情報を記憶するC_PINテーブル
PINやMEK等の秘密情報の保護方法を記憶するSecretProtectテーブル
(2)Lockingプレートに基づくテーブルとしては下記がある。
前述のLockingInfoテーブル
前述のLockingテーブル
MBRの利用可否と、MBRシャドウイングの完了か否か等の設定情報を記憶するMBRControlテーブル
シャドウMBR(128MB以上)を記憶するMBRテーブル(バイトテーブル)
媒体暗号化情報を記憶するK_AES_256テーブル
(3)テンプレートに基づかないテーブルとして、汎用セキュリティデータ(最小10MB)を記憶するDataStoreテーブル(バイトテーブル)がある。
これらのテーブルは、認証権限が委譲されるので、PTPer222と第1VTPer224と第2VTPer226の全てがこれらのテーブルを記憶するようにしてもよい。リソースの関係で、PTPer222と第1VTPer224と第2VTPer226が全てのテーブルを記憶できない場合は、第1VTPer224と第2VTPer226がPTPer222のテーブルを参照できればよい。
TCG規格では、ストレージ12の初期化メソッドとして、Revertメソッド、RevertSPメソッド、及びReactivateメソッドが規定されている。ユーザ認証権限、すなわちデータ保護機能の利用権限が第1VTPer224又は第2VTPer226に移譲されたレンジについては、RevertメソッドとRevertSPメソッドによる初期化対象外としてもよい。なお、PSID(ラベルID)によって認証されているレンジについては、ユーザ認証権限が第1VTPer224又は第2VTPer226に移譲されたとしても、RevertメソッドとRevertSPメソッドにより初期化してもよい。
ユーザ認証権限が第1VTPer224又は第2VTPer226に移譲されたか否か等のストレージ装置4の状態を示す情報は、ストレージ装置4からホスト2に送信してもよい。この一例は、TCG規格のLevel0ディスカバリがある。ホスト2がLevel0ディスカバリをストレージ装置4に送信すると、ストレージ装置4は、Level0ディスカバリの応答をホスト2に送信する。
ストレージ装置4は、Level0ディスカバリの応答にVF Assignedのデータを含めてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10…コントローラ、12…ストレージ、30…PTPer、32…VTPer、212…PF、214…第1VF、216…第2VF、222…PTPer、224…第1VTPer、226…第2VTPer

Claims (13)

  1. 第1ユーザが割り当てられる第1記憶領域と第2ユーザが割り当てられる第2記憶領域を含むストレージと、
    前記第1記憶領域のデータ保護機能と、前記第2記憶領域のデータ保護機能と、を提供可能する第1コントローラと、
    前記第2記憶領域のデータ保護機能を提供可能な第2コントローラと、を具備し、
    前記第1コントローラは、前記データ保護機能に関する情報を記憶するテーブルを備え、
    前記第2コントローラは、前記テーブルを参照可能であり、
    前記第1コントローラは、前記第1記憶領域に関する第1ユーザ認証を実行する第1権限と、前記第2記憶領域に関する第2ユーザ認証を実行する第2権限と、を有し、
    前記第1コントローラは、
    前記第1ユーザ認証に成功した場合、前記第1記憶領域のデータ保護機能を提供し、
    前記第2ユーザ認証に成功した場合、前記第2記憶領域のデータ保護機能を提供する、ストレージ装置。
  2. 前記第1コントローラは、前記第1ユーザ認証に成功した場合、前記第1記憶領域をリードロック状態又はライトロック状態とし、
    前記第1コントローラは、前記第2ユーザ認証に成功した場合、前記第2記憶領域をリードロック状態又はライトロック状態とする、請求項1記載のストレージ装置。
  3. 前記第1記憶領域は、第1暗号鍵で暗号化されたデータを記憶し、
    前記第2記憶領域は、第2暗号鍵で暗号化されたデータを記憶し、
    前記第1コントローラは、前記第1ユーザ認証に成功した場合、前記第1暗号鍵を変更し、
    前記第1コントローラは、前記第2ユーザ認証に成功した場合、前記第2暗号鍵を変更する、請求項1記載のストレージ装置。
  4. 前記第1コントローラは、外部からの指示に応答して、前記第2権限を前記第2コントローラへ移す、請求項1記載のストレージ装置。
  5. 前記第2権限が前記第1コントローラから前記第2コントローラへ移され、前記第2コントローラが前記第2ユーザ認証に成功した場合、前記第2コントローラは、前記第2記憶領域のデータ保護機能を提供する、請求項4記載のストレージ装置。
  6. 前記第2権限が前記第1コントローラから前記第2コントローラへ移された場合、前記第1コントローラは、前記第2ユーザ認証を実行することができない、請求項4記載のストレージ装置。
  7. 前記第1記憶領域に複数のユーザが割り当てられ、前記第2記憶領域に複数のユーザが割り当てられている場合、前記第1コントローラは、前記第2権限を前記第2コントローラへ移すことができない、請求項4記載のストレージ装置。
  8. 前記第1記憶領域がリードロック状態又はライトロック状態の場合、前記第1コントローラは、前記第2権限を前記第2コントローラへ移すことができない、請求項4記載のストレージ装置。
  9. 前記第1コントローラは、前記第1ユーザ認証に成功した場合、前記第1記憶領域をリードロック状態又はライトロック状態とし、
    前記第2権限が前記第1コントローラから前記第2コントローラへ移され、前記第2コントローラが前記第2ユーザ認証に成功した場合、前記第2コントローラは、前記第2記憶領域をリードロック状態又はライトロック状態とする、請求項4記載のストレージ装置。
  10. 前記第1記憶領域は、第1暗号鍵で暗号化されたデータを記憶し、
    前記第2記憶領域は、第2暗号鍵で暗号化されたデータを記憶し、
    前記第1コントローラは、前記第1ユーザ認証に成功した場合、前記第1暗号鍵を変更し、
    前記第2権限が前記第1コントローラから前記第2コントローラへ移され、前記第2コントローラが前記第2ユーザ認証に成功した場合、前記第2コントローラは、前記第2暗号鍵を変更する、請求項4記載のストレージ装置。
  11. 前記テーブルは、前記第2コントローラが前記第2権限を有しているか否かを示す第1情報を記憶し、
    前記第2コントローラは、前記第1情報を参照して、前記第2権限が前記第1コントローラから前記第2コントローラへ移されたか否かを判断する、請求項4記載のストレージ装置。
  12. 前記第1コントローラは、
    外部からの第1指示に応答して、前記第2権限を前記第1コントローラから前記第2コントローラへ移し、
    前記外部からの第2指示に応答して、前記第2権限を前記第2コントローラから前記第1コントローラへ移す、請求項1記載のストレージ装置。
  13. 前記第1コントローラ及び第2コントローラは、FE(Front End)部を介して外部のホストと接続可能であり、前記FE部はSR-IOV規格に準拠する、請求項1記載のストレージ装置。
JP2022044310A 2022-03-18 2022-03-18 ストレージ装置 Pending JP2023137886A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022044310A JP2023137886A (ja) 2022-03-18 2022-03-18 ストレージ装置
US17/900,417 US11941261B2 (en) 2022-03-18 2022-08-31 Storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022044310A JP2023137886A (ja) 2022-03-18 2022-03-18 ストレージ装置

Publications (1)

Publication Number Publication Date
JP2023137886A true JP2023137886A (ja) 2023-09-29

Family

ID=88066898

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022044310A Pending JP2023137886A (ja) 2022-03-18 2022-03-18 ストレージ装置

Country Status (2)

Country Link
US (1) US11941261B2 (ja)
JP (1) JP2023137886A (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10635316B2 (en) 2014-03-08 2020-04-28 Diamanti, Inc. Methods and systems for data storage using solid state drives
US10171353B2 (en) 2016-03-04 2019-01-01 Oracle International Corporation System and method for supporting dual-port virtual router in a high performance computing environment
US11755753B2 (en) 2018-06-13 2023-09-12 Kyndryl, Inc. Mechanism to enable secure memory sharing between enclaves and I/O adapters

Also Published As

Publication number Publication date
US11941261B2 (en) 2024-03-26
US20230297251A1 (en) 2023-09-21

Similar Documents

Publication Publication Date Title
JP7187362B2 (ja) ストレージ装置及び制御方法
TWI763780B (zh) 儲存裝置
US9529735B2 (en) Secure data encryption in shared storage using namespaces
EP2249280B1 (en) Information processor and method for controlling the same
CN109800050B (zh) 一种虚拟机的内存管理方法、装置、相关设备及系统
US8750519B2 (en) Data protection system, data protection method, and memory card
KR101323858B1 (ko) 가상화 시스템에서 메모리 접근을 제어하는 장치 및 방법
US20180260151A1 (en) Data Storage Device and Operating Method Therefor
US20130191636A1 (en) Storage device, host device, and information processing method
US20210141910A1 (en) Storage device
TW202112099A (zh) 用於資料加解密的金鑰管理裝置及處理器晶片
JP2009020871A (ja) 外部記憶装置
JP2023137886A (ja) ストレージ装置
JP2000250817A (ja) 記憶システム、記憶装置及び記憶データ保護方法
TWI731407B (zh) 具有旁通通道的金鑰管理裝置及處理器晶片
US20180088846A1 (en) Multi-user dynamic storage allocation and encryption
JP2000250818A (ja) 記憶システム、記憶装置及び記憶データ保護方法
JP5537477B2 (ja) 可搬記憶媒体
TWI833533B (zh) 避免使用不完整金鑰的金鑰管理裝置、處理器晶片及方法
KR101620685B1 (ko) 타임-아웃 데이터를 관리하는 방법 및 장치
KR20240082056A (ko) 어플리케이션 단위로 어플리케이션과 스토리지 장치간 안전한 저장공간을 제공하기 위한 스토리지 장치, 스토리지 장치 동작 방법 및 시스템