(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-24
(45)【発行日】2024-08-01
(54)【発明の名称】ストレージ制御装置、およびストレージ制御プログラム
(51)【国際特許分類】
G06F 3/06 20060101AFI20240725BHJP
G06F 3/08 20060101ALI20240725BHJP
G06F 13/10 20060101ALI20240725BHJP
G06F 13/14 20060101ALI20240725BHJP
【FI】
G06F3/06 301Z
G06F3/06 301K
G06F3/08 H
G06F13/10 340A
G06F13/14 330E
(21)【出願番号】P 2020123783
(22)【出願日】2020-07-20
【審査請求日】2023-04-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】今里 孝志
【審査官】松平 英
(56)【参考文献】
【文献】特開2011-209901(JP,A)
【文献】特開2009-129418(JP,A)
【文献】特開平08-006733(JP,A)
【文献】米国特許出願公開第2019/0138209(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06-3/08
12/00-12/128
13/10-13/18
(57)【特許請求の範囲】
【請求項1】
記録媒体を着脱可能なスロットを有するストレージ制御装置であって、
前記スロットに装着された記録媒体に固有の実識別情報
、および、前記スロットに装着された記録媒体に対するアクセスを制御する制御装置の識別情報と、前記スロットに装着される記録媒体に共通で割り当てられ、ホスト装置に提供される仮想識別情報とを対応付けて記憶する記憶部と、
前記仮想識別情報を含むコマンドを前記ホスト装置から受信した場合、受信した前記コマンドに含まれる前記仮想識別情報を、前記仮想識別情報に対応付けて前記記憶部に記憶された実識別情報に変換し、変換済の前記コマンドを、前記スロットに装着された記録媒体に対するアクセスを制御する制御装置に送信し、
送信した前記コマンドに対する、前記記憶部に記憶された実識別情報を含む応答を前記スロットに装着された記録媒体に対するアクセスを制御する制御装置から受信した場合、受信した前記応答に含まれる当該実識別情報を、当該実識別情報に対応付けて前記記憶部に記憶された前記仮想識別情報に変換し、変換済の前記応答を、前記ホスト装置に返信し、
前記スロットから記録媒体が除去され、別の記録媒体が装着されたことを検出した場合、前記仮想識別情報に対応付けて前記記憶部に記憶された、前記スロットから除去された記録媒体に固有の実識別情報
、および、前記スロットから除去された記録媒体に対するアクセスを制御する制御装置の識別情報を、前記スロットに装着された記録媒体に固有の実識別情報
、および、前記スロットに装着された記録媒体に対するアクセスを制御する制御装置の識別情報に更新する、制御部と、
を有することを特徴とするストレージ制御装置。
【請求項2】
前記制御部は、前記スロットから記録媒体が除去されたことを検出した場合、前記スロットから記録媒体が除去されたことの通知を、前記ホスト装置に送信する、ことを特徴とする請求項1に記載のストレージ制御装置。
【請求項3】
前記制御部は、前記スロットへと記録媒体が装着されたことを検出した場合、前記スロットへと記録媒体が装着されたことの通知を、前記ホスト装置に送信する、ことを特徴とする請求項1または2に記載のストレージ制御装置。
【請求項4】
前記記憶部は、前記スロットに装着された記録媒体に固有の実識別情報と、前記スロットに装着される記録媒体に共通で割り当てられ、ホスト装置に提供される所定のアドレス、および、前記仮想識別情報とを対応付けて記憶する、ことを特徴とする請求項1~3のいずれか一つに記載のストレージ制御装置。
【請求項5】
前記制御部は、前記仮想識別情報を含まないコマンドをホスト装置から受信した場合、受信した前記コマンドを、前記スロットに装着された記録媒体に対するアクセスを制御する制御装置に送信し、
送信した前記コマンドに対する、前記記憶部に記憶された実識別情報を含まない応答を前記スロットに装着された記録媒体に対するアクセスを制御する制御装置から受信した場合、受信した前記応答を前記ホスト装置に送信する、ことを特徴とする請求項1~4のいずれか一つに記載のストレージ制御装置。
【請求項6】
前記制御部は、前記スロットに装着された記録媒体に固有の実識別情報を、所定のタイミングごとに問い合わせ、
今回問い合わせた結果と、前回問い合わせた結果とを比較した結果に基づいて、前記スロットから記録媒体が除去されたこと、または、前記スロットへと記録媒体が装着されたことを検出する、ことを特徴とする請求項1~5のいずれか一つに記載のストレージ制御装置。
【請求項7】
前記制御部は、前記スロットへと記録媒体が装着されたことを検出した場合、問い合わせた結果得られた前記スロットに装着された記録媒体に固有の実識別情報と、前記仮想識別情報とを対応付けて前記記憶部に記憶し、
前記スロットから記録媒体が除去されたことを検出した場合、前記仮想識別情報に対応付けて前記記憶部に記憶された、前記スロットから除去された記録媒体に固有の実識別情報を前記記憶部から削除する、ことを特徴とする請求項1~6のいずれか一つに記載のストレージ制御装置。
【請求項8】
記録媒体を着脱可能なスロットを有するストレージ制御装置に、
前記スロットに装着された記録媒体に固有の実識別情報、および、前記スロットに装着された記録媒体に対するアクセスを制御する制御装置の識別情報と、前記スロットに装着される記録媒体に共通で割り当てられ、ホスト装置に提供される仮想識別情報とを対応付けて記憶部に記憶し、
前記仮想識別情報を含むコマンドを前記ホスト装置から受信した場合、受信した前記コマンドに含まれる前記仮想識別情報を、前記仮想識別情報に対応付けて前記記憶部に記憶された実識別情報に変換し、変換済の前記コマンドを、前記スロットに装着された記録媒体に対するアクセスを制御する制御装置に送信し、
送信した前記コマンドに対する、前記記憶部に記憶された実識別情報を含む応答を前記スロットに装着された記録媒体に対するアクセスを制御する制御装置から受信した場合、受信した前記応答に含まれる当該実識別情報を、当該実識別情報に対応付けて前記記憶部に記憶された前記仮想識別情報に変換し、変換済の前記応答を、前記ホスト装置に返信し、
前記スロットから記録媒体が除去され、別の記録媒体が装着されたことを検出した場合、前記仮想識別情報に対応付けて前記記憶部に記憶された、前記スロットから除去された記録媒体に固有の実識別情報、および、前記スロットから除去された記録媒体に対するアクセスを制御する制御装置の識別情報を、前記スロットに装着された記録媒体に固有の実識別情報、および、前記スロットに装着された記録媒体に対するアクセスを制御する制御装置の識別情報に更新する、
処理を実行させることを特徴とするストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ制御装置、およびストレージ制御プログラムに関する。
【背景技術】
【0002】
従来、ホストとなるサーバ装置、および、ストレージ装置などで使用される、PCIe(Peripheral Component Interconnect Express)インタフェース経由で不揮発性メモリデバイスにアクセスするNVMe(Non Volatile Memory Express)技術がある。また、NVMe技術を、ネットワーク経由で使用可能にするNVMeoF(NVMe over Fabrics)技術がある。ネットワークは、例えば、Ethernet(登録商標)、Fibre Channel、または、InfiniBandなどである。
【0003】
先行技術としては、例えば、ストレージ装置側が実デバイスにマッピングされた仮想デバイスを生成し、ホスト側が仮想デバイスに保持される仮想アドレスを用いてデータ入出力のためのアクセスを行うものがある。また、例えば、ホストとストレージ装置が接続されたネットワークにネットワークノードが増設される前に、ネットワークアドレス等の各種情報等が書き込まれた装置またはソフトウェアを設置することで、後に増設されたネットワークノードがシステム起動の際に、設置済みの装置またはソフトウェアから各種情報を参照する技術がある。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2006-107257号公報
【文献】特開2006-285597号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、ストレージ装置で、不揮発性メモリデバイスの活性交換が行われた場合、サーバ装置の運用および保守を行う作業者にかかる作業負担および作業ミスの増大化を招くという問題がある。例えば、ストレージ装置で、不揮発性メモリデバイスの活性交換が行われた場合、作業者は、サーバ装置に登録された不揮発性メモリデバイスを一意に識別する識別子を手動で更新する必要があり、それにより、作業負担および作業ミスの増大化を招く場合がある。
【0006】
1つの側面では、本発明は、記録媒体の交換が行われた場合に作業者にかかる作業負担および作業ミスの低減化を図ることを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様によれば、記録媒体を着脱可能なスロットに装着された記録媒体に固有の実識別情報と、前記スロットに装着される記録媒体に共通で割り当てられ、ホスト装置に提供される仮想識別情報とを対応付けて記憶する記憶部を有し、前記仮想識別情報を含むコマンドを前記ホスト装置から受信した場合、受信した前記コマンドに含まれる前記仮想識別情報を、前記仮想識別情報に対応付けて前記記憶部に記憶された実識別情報に変換し、変換済の前記コマンドを、前記スロットに装着された記録媒体に対するアクセスを制御する制御装置に送信し、送信した前記コマンドに対する、前記記憶部に記憶された実識別情報を含む応答を前記スロットに装着された記録媒体に対するアクセスを制御する制御装置から受信した場合、受信した前記応答に含まれる当該実識別情報を、当該実識別情報に対応付けて前記記憶部に記憶された仮想識別情報に変換し、変換済の前記応答を、前記ホスト装置に送信し、前記スロットから記録媒体が除去され、別の記録媒体が装着されたことを検出した場合、仮想識別情報に対応付けて前記記憶部に記憶された、前記スロットから除去された記録媒体に固有の実識別情報を、前記スロットに装着された記録媒体に固有の実識別情報に更新するストレージ制御装置が提案される。
【発明の効果】
【0008】
一態様によれば、記録媒体の交換が行われた場合に作業者にかかる作業負担および作業ミスの低減化を図ることが可能になる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態にかかるストレージ制御方法の一実施例を示す説明図(その1)である。
【
図2】
図2は、実施の形態にかかるストレージ制御方法の一実施例を示す説明図(その2)である。
【
図3】
図3は、ホスト装置102のハードウェア構成例を示すブロック図である。
【
図4】
図4は、ストレージ制御装置101の機能的構成例を示すブロック図である。
【
図5】
図5は、NAテーブル500の記憶内容の一例を示す説明図である。
【
図6】
図6は、DLCテーブル600の記憶内容の一例を示す説明図である。
【
図7】
図7は、NDテーブル700の記憶内容の一例を示す説明図である。
【
図8】
図8は、SSD160を認識する一例を示す説明図(その1)である。
【
図9】
図9は、SSD160を認識する一例を示す説明図(その2)である。
【
図10】
図10は、SSD160を認識する一例を示す説明図(その3)である。
【
図11】
図11は、SSD160を認識する一例を示す説明図(その4)である。
【
図12】
図12は、SSD160を認識する一例を示す説明図(その5)である。
【
図13】
図13は、SSD160を認識する一例を示す説明図(その6)である。
【
図14】
図14は、SSD160を認識する一例を示す説明図(その7)である。
【
図15】
図15は、認識処理手順の一例を示すシーケンス図(その1)である。
【
図16】
図16は、認識処理手順の一例を示すシーケンス図(その2)である。
【
図17】
図17は、認識処理手順の一例を示すシーケンス図(その3)である。
【
図18】
図18は、認識処理手順の一例を示すシーケンス図(その4)である。
【
図19】
図19は、コマンドを実行させる一例を示す説明図である。
【
図20】
図20は、SSD160の増設に応じてDLCテーブル600を更新する一例を示す説明図(その1)である。
【
図21】
図21は、SSD160の増設に応じてDLCテーブル600を更新する一例を示す説明図(その2)である。
【
図22】
図22は、SSD160の増設に応じてDLCテーブル600を更新する一例を示す説明図(その3)である。
【
図23】
図23は、増設処理手順の一例を示すシーケンス図である。
【
図24】
図24は、SSD160の減設に応じてDLCテーブル600を更新する一例を示す説明図(その1)である。
【
図25】
図25は、SSD160の減設に応じてDLCテーブル600を更新する一例を示す説明図(その2)である。
【
図26】
図26は、減設処理手順の一例を示すシーケンス図である。
【
図27】
図27は、SSD160の交換に応じてDLCテーブル600を更新する一例を示す説明図(その1)である。
【
図28】
図28は、SSD160の交換に応じてDLCテーブル600を更新する一例を示す説明図(その2)である。
【
図29】
図29は、SSD160の交換に応じてDLCテーブル600を更新する一例を示す説明図(その3)である。
【
図30】
図30は、SSD160の交換に応じてDLCテーブル600を更新する一例を示す説明図(その4)である。
【
図31】
図31は、交換処理手順の一例を示すシーケンス図(その1)である。
【
図32】
図32は、交換処理手順の一例を示すシーケンス図(その2)である。
【発明を実施するための形態】
【0010】
以下に、図面を参照して、本発明にかかるストレージ制御装置、およびストレージ制御プログラムの実施の形態を詳細に説明する。
【0011】
(実施の形態にかかるストレージ制御方法の一実施例)
図1および
図2は、実施の形態にかかるストレージ制御方法の一実施例を示す説明図である。
図1において、ストレージ制御システム100は、ストレージ制御装置101と、1以上のホスト装置102とを含む。
【0012】
ストレージ制御装置101は、記録媒体を着脱可能なコンピュータである。ストレージ制御装置101は、例えば、SSD(Solid State Drive)を着脱可能である。ストレージ制御装置101は、ホスト装置102と接続する。ホスト装置102は、ストレージ制御装置101と接続し、ストレージ制御装置101を使用するコンピュータである。ホスト装置102は、例えば、サーバ、または、PC(Personal Computer)などである。
【0013】
ストレージ制御装置101は、外部に対するI/F(Interface)モジュール110と、システムボード120と、記録媒体に対するI/Fモジュール130と、I/Fスイッチ140と、1以上のスロット150とを含む。
【0014】
システムボード120は、ST-CPU(Storage-Central Processing Unit)121と、ST-DCNT(Storage-Discovery Controller)122と、メモリ123とを含む。スロット150は、コネクタ151を含む。
【0015】
ST-CPU121は、I/Fモジュール110、および、I/Fモジュール130と接続される。I/Fモジュール130は、I/Fスイッチ140を介して、コネクタ151に接続される。I/Fモジュール110は、ファブリック103を介して、ホスト装置102のネットワークI/Fと接続される。
【0016】
ファブリック103は、それぞれのネットワークI/Fに対応するスイッチング装置である。スイッチング装置は、例えば、Ethernetスイッチ、Fibre Channelファブリック、または、InfiniBandスイッチなどである。
【0017】
I/Fモジュール110は、ネットワークI/Fと、システムボード120に含まれるバスI/Fとのプロトコル変換を行うコンポーネントである。
【0018】
ST-CPU121は、ストレージ制御の全体の制御を司る。ST-CPU121は、RAIDの制御を行う。ST-CPU121は、ホスト装置102と、SSD160とのデータ転送を制御する。ST-DCNT122は、SSD160を管理するコントローラである。ST-DCNT122は、NVMeoFの仕様に規定されたディスカバリー機能を有する。
【0019】
メモリ123は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがST-CPU121のワークエリアとして使用される。メモリ123に記憶されるプログラムは、ST-CPU121にロードされることにより、コーディングされている処理をST-CPU121に実行させる。
【0020】
I/Fモジュール130は、ネットワークI/Fと、システムボード120に含まれるバスI/Fとのプロトコル変換を行うコンポーネントである。I/Fスイッチ140は、ストレージ制御装置101で、ネットワークI/F、または、ペリフェラルI/Fのスイッチング制御を行うコンポーネントである。ペリフェラルI/Fは、例えば、PCIeなどである。
【0021】
SSD160は、データを保管するデバイスである。SSD160は、SSD-CNT161と、SSD-DCNT162と、NVM163とを含む。SSD-CNT161は、SSD160を制御するコントローラである。SSD-CNT161は、データ転送を制御するコントローラである。SSD-DCNT162は、ディスカバリー機能を有するコントローラである。NVM163は、データが保管される不揮発性メモリなどの記録媒体である。
【0022】
ストレージ制御装置101と、ホスト装置102とは、NVMeoF技術を使用する。NVMeoF技術では、各SSD160にネットワークアドレスが割り当てられる。ホスト装置102は、ネットワークアドレスに基づいて、SSD160に対して、データのリード、または、データのライトなどを要求するコマンドを発行する。ネットワークアドレスには、IPアドレス、または、World Wide Nameなどが使用される。
【0023】
各SSD160のネットワークアドレスは、各SSD160に装着された、SSD-CNT161、または、SSD-DCNT162によって管理される。NVMeoF仕様では、ホスト装置102は、ディスカバリーコマンドを、ストレージ制御装置101、または、SSD-DCNT162に発行し、利用可能なSSD160を示す情報を、ディスカバリーログとして収集する。ディスカバリーログは、NVMeoF仕様で定義された内容を含む。ディスカバリーログは、例えば、各種ID、転送方式、ネットワークアドレスなどを含む。ホスト装置102は、取得したディスカバリーログに基づいて、SSD160との接続をアソシエーションし、SSD160を、自身の記憶論理領域に割り当てる。
【0024】
NVMe技術とNVMeoF技術、SSD160のベンダが、SSD160にワールドワイドで固有な、SUBNQN(NVM Subsystem NVMe Qualified Name)と呼ばれる識別情報やベンダ固有な、CNTLID(Cntroller Identifier)と呼ばれる識別子を設定することが規定されている。ホスト装置102は、自装置から使用可能なSSD160のSUBNQNおよびCNTLIDを記憶し、SSD160にアクセスする際には、一部のコマンドにSSD160のSUBNQNやCNTLIDを含める。アクセスされたSSD160は、コマンドで指示されたSUBNQNおよびCNTLIDと、自身のSUBNQNおよびCNTLIDとを照合する。
【0025】
ここで、スロット150に装着されたSSD160の交換が行われると、交換前のSSD160のSUBNQNおよびCNTLIDと、交換後のSSD160のSUBNQNとが異なる値になる。このため、従来では、ホスト装置102が、交換後のSSD160にアクセスする際には、交換後のSSD160のSUBNQNおよびCNTLIDと、記憶したSUBNQNおよびCNTLIDとが一致せず、SSD160を使用不可になる状況がある。従って、ホスト装置102の運用および保守を行う作業者は、手動で、ホスト装置102が記憶するSSD160のSUBNQNおよびCNTLIDを書き換え、再アソシエーション等の作業を行い、ホスト装置102がSSD160を使用不可になる状況を回避することが望まれる。但し、CNTLIDは、ベンダ固有の識別子であるため、SSD160の交換前後で値が変わらない場合もある。
【0026】
しかしながら、作業者、および、ストレージ制御装置101の管理者にかかる作業負担および作業ミスの増大化を招くという問題がある。例えば、管理者が、交換前のSSD160をディセーブル化する作業を行うことになる。また、管理者が、SSD160を交換する作業を行うことになる。そして、作業者が、SSD160のSUBNQNを採取する作業を行うことになる。また、作業者が、手動で、ホスト装置102が記憶するSSD160のSUBNQNを書き換える作業を行うことになる。そして、管理者が、交換後のSSD160をイネーブル化する作業を行うことになる。
【0027】
また、作業者が、手動で、ホスト装置102が記憶するSSD160のSUBNQNを書き換える際、ホスト装置102が記憶するSSD160のSUBNQNを、誤った値に書き換えてしまうミスが発生するおそれがある。例えば、SUBNQNは、最大233バイトであるため、作業負担の増大化を招き易く、かつ、入力ミスが発生し易くなる。
【0028】
そこで、本実施の形態では、SSD160などの記録媒体の交換が行われた場合に作業者にかかる作業負担および作業ミスの低減化を図ることができるストレージ制御方法について説明する。ここで、
図2を用いて、
図1に示したストレージ制御装置101に適用される、本実施の形態にかかるストレージ制御方法について説明する。
【0029】
図2において、ストレージ制御装置101は、記録媒体を着脱可能なスロット210を有する。スロット210は、
図1に示したスロット150に対応する。記録媒体は、
図1に示したNVM163に対応する。ストレージ制御装置101は、例えば、NVM163を含むSSD160を着脱可能なスロット150を有する。
【0030】
ストレージ制御装置101は、スロット210に装着された記録媒体に固有の実識別情報と、スロット210に装着される記録媒体に共通で割り当てられる仮想識別情報とを対応付けて記憶する記憶部200を有する。
【0031】
仮想識別情報は、ホスト装置102に提供される。仮想識別情報は、仮のSUBNQNである。記憶部200は、
図1に示したメモリ123によって実現される。実識別情報は、例えば、記録媒体211となるNVM163を含むSSD160に固有のSUBNQNである。記憶部200は、例えば、記録媒体211に固有の実識別情報と、仮想識別情報とを対応付けて記憶している。
【0032】
(2-1)ストレージ制御装置101は、仮想識別情報を含むコマンドをホスト装置102から受信した場合、受信したコマンドに含まれる当該仮想識別情報を、当該仮想識別情報に対応付けて記憶部200に記憶された実識別情報に変換する。ストレージ制御装置101は、変換済のコマンドを、スロット210に装着された記録媒体に対するアクセスを制御する制御装置に送信する。制御装置は、例えば、スロット210に装着された記録媒体となるNVM163を含むSSD160のSSD-CNT161に対応する。
【0033】
ストレージ制御装置101は、例えば、仮のSUBNQNを含むコマンドをホスト装置102から受信する。そして、ストレージ制御装置101は、受信したコマンドに含まれる仮のSUBNQNを、NVM163を含むSSD160に固有のSUBNQNに変換する。ストレージ制御装置101は、変換済のコマンドを、NVM163を含むSSD160のSSD-CNT161に送信する。
【0034】
(2-2)ストレージ制御装置101は、送信したコマンドに対する、記憶部200に記憶された実識別情報を含む応答をスロット210に装着された記録媒体に対するアクセスを制御する制御装置から受信する。ストレージ制御装置101は、受信した応答に含まれる当該実識別情報を、当該実識別情報に対応付けて記憶部200に記憶された仮想識別情報に変換する。ストレージ制御装置101は、変換済の応答を、ホスト装置102に送信する。
【0035】
ストレージ制御装置101は、例えば、コマンドに対する、NVM163を含むSSD160に固有のSUBNQNを含む応答を、NVM163を含むSSD160のSSD-CNT161から受信する。そして、ストレージ制御装置101は、受信した応答に含まれる、NVM163を含むSSD160に固有のSUBNQNを、仮のSUBNQNに変換する。ストレージ制御装置101は、変換済の応答をホスト装置102に送信する。
【0036】
(2-3)ストレージ制御装置101は、スロット210から記録媒体が除去され、別の記録媒体が装着されたことを検出する。ストレージ制御装置101は、検出した場合、仮想識別情報に対応付けて記憶部200に記憶された、スロット210から除去された記録媒体に固有の実識別情報を、スロット210に装着された記録媒体に固有の実識別情報に更新する。
【0037】
図1の例では、ストレージ制御装置101は、スロット210から記録媒体211が除去され、記録媒体212が装着されたことを検出する。ストレージ制御装置101は、記録媒体211が除去され、記録媒体212が装着されたことを検出した場合、仮想識別情報に対応付けて記憶部200に記憶された記録媒体211に固有の実識別情報を、記録媒体212に固有の実識別情報に更新する。更新した実識別情報は、例えば、記録媒体212となるNVM163を含むSSD160に固有のSUBNQNである。
【0038】
これにより、ストレージ制御装置101は、記録媒体の交換が行われる前後で、ホスト装置102が、記録媒体の交換を認識せずに済ませ、仮想識別情報を用い続けるようにすることができる。ストレージ制御装置101は、記憶部200の記憶内容の更新タイミングに関わらず、ホスト装置102からのコマンドを受信した際に、(2-1)に上述した各種処理を行っていれば、当該コマンドを適切に扱うことができる。また、ストレージ制御装置101は、記憶部200の記憶内容の更新タイミングに関わらず、記録媒体に対するアクセスを制御する制御装置からの応答を受信した際に、(2-2)に上述した各種処理を行っていれば、当該応答を適切に扱うことができる。このため、ストレージ制御装置101は、記録媒体の交換が行われた際、作業者、および、管理者にかかる作業負担の低減化を図ることができる。
【0039】
(ホスト装置102のハードウェア構成例)
次に、
図3を用いて、ホスト装置102のハードウェア構成例について説明する。
【0040】
図3は、ホスト装置102のハードウェア構成例を示すブロック図である。
図3において、ホスト装置102は、CPU301と、メモリ302と、ネットワークI/F303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
【0041】
ここで、CPU301は、ホスト装置102の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることにより、コーディングされている処理をCPU301に実行させる。
【0042】
ネットワークI/F303は、通信回線を通じてネットワーク310に接続され、ネットワーク310を介して他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク310と内部のインタフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303は、例えば、モデムやLAN(Local Area Network)アダプタなどである。
【0043】
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、ホスト装置102から着脱可能であってもよい。
【0044】
ホスト装置102は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、ホスト装置102は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、ホスト装置102は、記録媒体I/F304や記録媒体305を有していなくてもよい。
【0045】
(ストレージ制御装置101の機能的構成例)
次に、
図4を用いて、ストレージ制御装置101の機能的構成例について説明する。
【0046】
図4は、ストレージ制御装置101の機能的構成例を示すブロック図である。ストレージ制御装置101は、記憶部400と、取得部401と、検出部402と、更新部403と、変換部404と、出力部405とを含む。
【0047】
記憶部400は、例えば、
図1に示したメモリ123などの記憶領域によって実現される。以下では、記憶部400が、ストレージ制御装置101に含まれる場合について説明するが、これに限らない。例えば、記憶部400が、ストレージ制御装置101とは異なる装置に含まれ、記憶部400の記憶内容がストレージ制御装置101から参照可能である場合があってもよい。
【0048】
取得部401~出力部405は、制御部の一例として機能する。取得部401~出力部405は、具体的には、例えば、
図1に示したメモリ123などの記憶領域に記憶されたプログラムを、ST-CPU121に実行させることにより、その機能を実現する。各機能部の処理結果は、例えば、
図1に示したメモリ123などの記憶領域に記憶される。
【0049】
記憶部400は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部400は、スロットに装着された記録媒体に固有の実識別情報と、当該スロットに装着された記録媒体に共通で割り当てられる仮想識別情報とを対応付けて記憶する。仮想識別情報は、ホスト装置102に提供される。ホスト装置102は、NVMe技術およびNVMeoF技術を利用する。実識別情報は、例えば、記録媒体の製造時に記録媒体に割り当てられた一意な識別情報である。実識別情報は、例えば、記録媒体のベンダによって記録媒体に割り当てられる。スロットは、例えば、スロット150に対応する。記録媒体は、例えば、NVM163に対応する。仮想識別情報は、仮想SUBNQNである。
【0050】
記憶部400は、さらに、スロットに装着された記録媒体に対するアクセスを制御する制御装置の識別情報を、仮想識別情報に対応付けて記憶してもよい。制御装置は、例えば、記録媒体となるNVM163を含むSSD160のSSD-CNT161に対応する。
【0051】
記憶部400は、例えば、スロットに装着された記録媒体に固有の実識別情報と、スロットに装着された記録媒体に共通で割り当てられる仮想識別情報とを対応付けて記憶する。実識別情報は、例えば、記録媒体となるNVM163を含むSSD160に固有の実SUBNQNである。実識別情報は、例えば、記録媒体の製造時に、記録媒体に割り当てられた一意な識別情報である。
【0052】
記憶部400は、例えば、さらに、スロットに装着された記録媒体に対するアクセスを制御する制御装置の識別情報を、仮想識別情報に対応付けて記憶してもよい。制御装置は、SSD-CNT161に対応する。制御装置は、例えば、記録媒体となるNVM163を含むSSD160のSSD-CNT161に対応する。
【0053】
記憶部400は、さらに、スロットに装着された記録媒体に共通で割り当てられるアドレスを記憶する。アドレスは、ネットワークアドレスである。アドレスは、ホスト装置102に提供される。記憶部400は、例えば、スロットを識別する識別情報に、アドレスを対応付けて記憶する。スロットを識別する識別情報は、例えば、スロットに割り当てられたスロット番号である。アドレスは、スロットを識別する識別情報に対応付けられるため、間接的に実識別情報に対応付けられる。
【0054】
記憶部400は、具体的には、
図6に後述するDLC(Discovery Log Collection)テーブル600を記憶する。
【0055】
取得部401は、各機能部の処理に用いられる各種情報を取得する。取得部401は、取得した各種情報を、記憶部400に記憶し、または、各機能部に出力する。また、取得部401は、記憶部400に記憶しておいた各種情報を、各機能部に出力してもよい。取得部401は、例えば、利用者の操作入力に基づき、各種情報を取得する。取得部401は、例えば、ストレージ制御装置101とは異なる装置から各種情報を受信してもよい。
【0056】
取得部401は、記録媒体に固有の実識別情報を取得する。取得部401は、例えば、スロットに装着された記録媒体に固有の実識別情報を、所定のタイミングごとに問い合わせ、スロットに装着された記録媒体に固有の実識別情報を、記録媒体に対するアクセスを制御する制御装置から受信することにより取得する。取得部401は、具体的には、SSD160に固有の実SUBNQNを含むディスカバリー情報を、SSD160のSSD-CNT161から受信することにより取得する。
【0057】
取得部401は、コマンドを取得する。取得部401は、例えば、仮想識別情報を含むコマンドを取得する。コマンドは、例えば、仮想識別情報を、アクセス先として含む。取得部401は、具体的には、仮想識別情報を含むコマンドを、ホスト装置102から受信することにより取得する。取得部401は、より具体的には、仮想SUBNQNを含むコマンドを、ホスト装置102から受信することにより取得する。コマンドは、具体的には、SQE(Submission Queue Entry)である。
【0058】
取得部401は、例えば、仮想識別情報を含まないコマンドを取得する。取得部401は、具体的には、仮想識別情報を含まないコマンドを、ホスト装置102から受信することにより取得する。取得部401は、より具体的には、仮想SUBNQNを含まないコマンドを、ホスト装置102から受信することにより取得する。
【0059】
取得部401は、応答を取得する。取得部401は、例えば、記録媒体に固有の実識別情報を含む応答を取得する。取得部401は、具体的には、記録媒体に固有の実識別情報を含む応答を、当該記録媒体に対するアクセスを制御する制御装置から受信することにより取得する。取得部401は、より具体的には、SSD160に固有の実SUBNQNを含む応答を、SSD160のSSD-CNT161から受信することにより取得する。応答は、具体的には、CQE(Completion Queue Entry)である。
【0060】
取得部401は、例えば、記録媒体に固有の実識別情報を含まない応答を取得する。取得部401は、具体的には、記録媒体に固有の実識別情報を含まない応答を、当該記録媒体に対するアクセスを制御する制御装置から受信することにより取得する。取得部401は、より具体的には、SSD160に固有の実SUBNQNを含まない応答を、SSD160のSSD-CNT161から受信することにより取得する。
【0061】
取得部401は、いずれかの機能部の処理を開始する開始トリガーを受け付けてもよい。開始トリガーは、例えば、利用者による所定の操作入力があったことである。開始トリガーは、例えば、他のコンピュータから、所定の情報を受信したことであってもよい。開始トリガーは、例えば、いずれかの機能部が所定の情報を出力したことであってもよい。
【0062】
取得部401は、例えば、ディスカバリー情報を取得したことを、検出部402と、更新部403との処理を開始する開始トリガーとして受け付けてもよい。取得部401は、例えば、コマンドを取得したことを、変換部404の処理を開始するトリガーとして受け付けてもよい。取得部401は、例えば、応答を取得したことを、変換部404の処理を開始するトリガーとして受け付けてもよい。
【0063】
検出部402は、スロットから記録媒体が除去されたこと、または、スロットへと記録媒体が装着されたことを検出する。検出部402は、例えば、今回問い合わせた結果と、前回問い合わせた結果とを比較する。そして、検出部402は、例えば、比較した結果に基づいて、スロットから記録媒体が除去されたこと、または、スロットへと記録媒体が装着されたことを検出する。
【0064】
具体的には、取得部401が、前回問い合わせた結果としてスロットに装着された記録媒体に固有の実識別情報を取得しておらず、今回問い合わせた結果としてスロットに装着された記録媒体に固有の実識別情報を取得した場合が考えられる。この場合、検出部402は、具体的には、比較した結果に基づいて、スロットへと新たに記録媒体が装着されたことを検出する。これにより、検出部402は、スロットに対する記録媒体の装着状況を把握可能にすることができ、記憶部400の記憶内容をどのように更新すればよいのかを判断可能にすることができる。
【0065】
具体的には、取得部401が、前回問い合わせた結果としてスロットに装着された記録媒体に固有の実識別情報を取得していたが、今回問い合わせた結果としてスロットに装着された記録媒体に固有の実識別情報を取得しなかった場合が考えられる。この場合、検出部402は、具体的には、比較した結果に基づいて、スロットから記録媒体が除去されたことを検出する。これにより、検出部402は、スロットに対する記録媒体の装着状況を把握可能にすることができ、記憶部400の記憶内容をどのように更新すればよいのかを判断可能にすることができる。
【0066】
具体的には、取得部401が、前回問い合わせた結果としてスロットに装着された記録媒体に固有の実識別情報を取得し、今回問い合わせた結果としてスロットに装着された記録媒体に固有の実識別情報を取得し、2つの実識別情報が一致しない場合が考えられる。この場合、検出部402は、具体的には、比較した結果に基づいて、スロットから記録媒体が除去され、スロットに別の記録媒体が装着されたことを検出する。換言すれば、検出部402は、スロットの記録媒体が交換されたことを検出する。これにより、検出部402は、スロットに対する記録媒体の装着状況を把握可能にすることができ、記憶部400の記憶内容をどのように更新すればよいのかを判断可能にすることができる。
【0067】
更新部403は、記憶部400の記憶内容を更新する。更新部403は、仮想識別情報に対応付けて記憶部400に記憶された、スロットに装着された記録媒体に固有の実識別情報を更新する。更新部403は、さらに、記憶部400に記憶された、スロットに装着された記録媒体に対するアクセスを制御する制御装置の識別情報を更新してもよい。
【0068】
例えば、検出部402が、スロットから記録媒体が除去され、別の記録媒体が装着されたことを検出した場合が考えられる。この場合、更新部403は、例えば、仮想識別情報に対応付けて記憶部400に記憶された、除去された記録媒体に固有の実識別情報を、装着された記録媒体に固有の実識別情報に更新する。
【0069】
この場合、さらに、更新部403は、例えば、仮想識別情報に対応付けて記憶部400に記憶された、除去された記録媒体に対するアクセスを制御する制御装置の識別情報を、装着された記録媒体に対するアクセスを制御する制御装置の識別情報に更新してもよい。これにより、更新部403は、記憶部400の記憶内容に、スロットに対する記録媒体の現在の装着状況を正しく反映することができる。
【0070】
具体的には、検出部402が、スロットへと記録媒体が装着されたことを検出した場合が考えられる。この場合、更新部403は、具体的には、問い合わせた結果得られた当該記録媒体に固有の実識別情報と、仮想識別情報とを対応付けて記憶部400に記憶する。この場合、更新部403は、さらに、当該記録媒体に対するアクセスを制御する制御装置の識別情報を、仮想識別情報に対応付けて記憶部400に記憶してもよい。これにより、更新部403は、記憶部400の記憶内容に、スロットに対する記録媒体の現在の装着状況を正しく反映することができる。
【0071】
具体的には、検出部402が、スロットから記録媒体が除去されたことを検出した場合が考えられる。この場合、更新部403は、具体的には、仮想識別情報に対応付けて記憶部400に記憶された当該記録媒体に固有の実識別情報を、記憶部400から削除する。この場合、更新部403は、さらに、仮想識別情報に対応付けて記憶部400に記憶された当該記録媒体に対するアクセスを制御する制御装置の識別情報を、記憶部400から削除してもよい。これにより、更新部403は、記憶部400の記憶内容に、スロットに対する記録媒体の現在の装着状況を正しく反映することができる。
【0072】
変換部404は、仮想識別情報を含むコマンドをホスト装置102から受信した場合、記憶部400に基づいて、受信したコマンドに含まれる仮想識別情報を、実識別情報に変換する。変換部404は、例えば、受信したコマンドに含まれる仮想識別情報を、当該仮想識別情報に対応付けて記憶部400に記憶された実識別情報に変換する。
【0073】
変換部404は、具体的には、仮想SUBNQNを含むコマンドをホスト装置102から受信する。そして、変換部404は、具体的には、受信したコマンドに含まれる仮想SUBNQNを、NVM163を含むSSD160に固有の実SUBNQNに変換する。これにより、変換部404は、ホスト装置102が、記録媒体に固有の実識別情報を認識しなくても、コマンドを送信可能にし、記録媒体を使用可能にすることができる。
【0074】
変換部404は、実識別情報を含む応答を、スロットに装着された記録媒体に対するアクセスを制御する制御装置から受信した場合、記憶部400に基づいて、受信した応答に含まれる実識別情報を、仮想識別情報に変換する。変換部404は、例えば、受信した応答に含まれる実識別情報を、当該実識別情報に対応付けて記憶部400に記憶された仮想識別情報に変換する。
【0075】
変換部404は、具体的には、NVM163を含むSSD160に固有の実SUBNQNを含む応答を、NVM163を含むSSD160のSSD-CNT161から受信する。そして、変換部404は、具体的には、受信した応答に含まれるNVM163を含むSSD160に固有の実SUBNQNを、仮想SUBNQNに変換する。これにより、変換部404は、ホスト装置102が、記録媒体に固有の実識別情報を認識しなくても、応答を受信可能にし、記録媒体を使用可能にすることができる。
【0076】
出力部405は、少なくともいずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ123などの記憶領域への記憶である。これにより、出力部405は、いずれかの機能部の処理結果を利用者に通知可能にし、ストレージ制御装置101の利便性の向上を図ることができる。
【0077】
出力部405は、コマンドを出力する。出力部405は、例えば、変換済のコマンドを、スロットに装着された記録媒体に対するアクセスを制御する制御装置に送信する。送信先は、変換済のコマンドに含まれる実識別情報が示す記録媒体に対するアクセスを制御する制御装置である。出力部405は、具体的には、変換済のコマンドを、NVM163を含むSSD160のSSD-CNT161に送信する。これにより、出力部405は、ホスト装置102からのコマンドを、記録媒体に対するアクセスを制御する制御装置に正しく転送することができる。
【0078】
出力部405は、例えば、仮想識別情報を含まないコマンドをホスト装置102から受信した場合、受信したコマンドを、スロットに装着された記録媒体に対するアクセスを制御する制御装置に送信する。出力部405は、具体的には、仮想SUBNQNを含まないコマンドを、NVM163を含むSSD160のSSD-CNT161に送信する。これにより、出力部405は、ホスト装置102からのコマンドを、記録媒体に対するアクセスを制御する制御装置に正しく転送することができる。
【0079】
出力部405は、コマンドに対する応答を出力する。出力部405は、例えば、変換済の応答を、ホスト装置102に送信する。出力部405は、具体的には、NVM163を含むSSD160の実SUBNQNを含む応答を、ホスト装置102に送信する。これにより、出力部405は、ホスト装置102からのコマンドに対する、記録媒体に対するアクセスを制御する制御装置からの応答を、ホスト装置102に正しく転送することができる。
【0080】
出力部405は、例えば、実識別情報を含まない応答を、記録媒体に対するアクセスを制御する制御装置から受信した場合、受信した応答をホスト装置102に送信する。出力部405は、具体的には、NVM163を含むSSD160の実SUBNQNを含まない応答を、ホスト装置102に送信する。これにより、出力部405は、ホスト装置102からのコマンドに対する、記録媒体に対するアクセスを制御する制御装置からの応答を、ホスト装置102に正しく転送することができる。
【0081】
出力部405は、スロットに対する記録媒体の装着状況を出力する。例えば、検出部402が、スロットから記録媒体が除去されたことを検出した場合が考えられる。この場合、出力部405は、例えば、スロットから記録媒体が除去されたことの通知を出力する。出力部405は、具体的には、スロットから記録媒体が除去されたことの通知を、ホスト装置102に送信する。送信先とするホスト装置102は、例えば、
図5に後述するNAテーブル500に記憶されたフラグ情報によって、通知先として指定されたホスト装置102である。これにより、出力部405は、ホスト装置102が、スロットに対する記録媒体の装着状況を認識可能にすることができる。
【0082】
例えば、検出部402が、スロットへと記録媒体が装着されたことを検出した場合が考えられる。この場合、出力部405は、例えば、スロットへと記録媒体が装着されたことの通知を出力する。出力部405は、具体的には、スロットへと記録媒体が装着されたことの通知を、ホスト装置102に送信する。送信先とするホスト装置102は、例えば、
図5に後述するNAテーブル500に記憶されたフラグ情報によって、通知先として指定されたホスト装置102である。これにより、出力部405は、ホスト装置102が、スロットに対する記録媒体の装着状況を認識可能にすることができる。
【0083】
(ストレージ制御システム100の実施例)
次に、ストレージ制御システム100の実施例について説明する。実施例において、ST-CPU121は、下記(a)~(g)に示す各種動作を行う機能を有する。
【0084】
(a)ST-CPU121は、ホスト装置102から受信したSQEが、仮想SUBNQNおよび仮想CNTLIDを含むか否かを判定する。CNTLIDは、SSD-CNT161のベンダ固有の識別情報である。ST-CPU121は、ホスト装置102から受信したSQEが、仮想SUBNQNおよび仮想CNTLIDを含むと判定した場合、SQEを、ST-DCNT122に転送する。ST-CPU121は、ホスト装置102から受信したSQEが、仮想SUBNQNおよび仮想CNTLIDを含まないと判定した場合、SQEを、指定されたSSD160に転送する。
【0085】
(b)ST-CPU121は、SQEを、ST-DCNT122に転送した結果、ST-DCNT122によって、仮想SUBNQNおよび仮想CNTLIDが実SUBNQNおよび実CNTLIDに変換されたSQEを、指定されたSSD160に転送する。
【0086】
(c)ST-CPU121は、SSD160から受信したCQEが、実SUBNQNおよび実CNTLIDを含むか否かを判定する。ST-CPU121は、SSD160から受信したCQEが、実SUBNQNおよび実CNTLIDを含むと判定した場合、CQEを、ST-DCNT122に転送する。ST-CPU121は、SSD160から受信したCQEが、実SUBNQNおよび実CNTLIDを含まないと判定した場合、CQEを、指定されたホスト装置102に転送する。
【0087】
(d)ST-CPU121は、CQEを、ST-DCNT122に転送した結果、ST-DCNT122によって、実SUBNQNおよび実CNTLIDが仮想SUBNQNおよび仮想CNTLIDに変換されたCQEを、指定されたホスト装置102に転送する。
【0088】
(e)ST-CPU121は、所定のタイミングごとに、ST-DCNT122から、ディスカバリー情報とアイデンティファイ情報とを受信する。ディスカバリー情報は、SSD160に固有の実SUBNQNおよび実CNTLIDなどを含む。ST-CPU121は、ST-DCNT122から過去に受信した一世代前のディスカバリー情報とアイデンティファイ情報と、新しく受信した今世代のディスカバリー情報とアイデンティファイ情報とを比較する。ST-CPU121は、比較した結果に基づいて、SSD160が交換されたこと、SSD160が増設されたこと、または、SSD160が減設されたことを検出する。交換は、スロット150から、SSD160が除去された後、同一のスロット150に、別のSSD160が新たに装着されたことに対応する。増設は、スロット150に、SSD160が新たに装着されたことに対応する。減設は、スロット150から、SSD160が除去されたことに対応する。
【0089】
(f)ST-CPU121は、(e)において、SSD160が増設されたことを検出した場合、予めストレージ制御装置101の管理者によって、通知先として設定されたホスト装置102に、SSD160が増設されたことを示す割り込みを送信する。設定された通知先は、例えば、
図5に後述するNA(Notification Acceptance)テーブルによって記憶されている。
【0090】
(g)ST-CPU121は、(e)において、SSD160が減設されたことを検出した場合、予めストレージ制御装置101の管理者によって、通知先として設定されたホスト装置102に、SSD160が減設されたことを示す割り込みを送信する。設定された通知先は、例えば、
図5に後述するNAテーブルによって記憶されている。この際、ST-CPU121は、例えば、通知先として設定され、かつ、減設されたSSD160との通信を確立していたホスト装置102に、SSD160が減設されたことを示す割り込みを送信する。
【0091】
実施例において、ST-DCNT122は、下記(h)~(p)に示す各種動作を行う機能を有する。
【0092】
(h)ST-DCNT122は、所定のタイミングごとに、各SSD160から、NVMe/NVMeoF仕様で定義された、ディスカバリー情報およびアイデンティファイ情報を採取する。ST-DCNT122は、採取したディスカバリー情報およびアイデンティファイ情報を、ST-CPU121に送信する。
【0093】
(i)ST-DCNT122は、(h)において、各SSD160から採取したディスカバリー情報とアイデンティファイ情報を集計し、集計した各種情報を管理する。ST-DCNT122は、例えば、(h)において採取したディスカバリー情報とアイデンティファイ情報を集計した情報を、
図6に後述するDLCテーブル600に格納して管理する。
【0094】
(j)ST-DCNT122は、管理する各種情報が更新された場合、ST-CPU121に情報更新を示す割り込みを送信する。
【0095】
(k)ST-DCNT122は、(h)において、各SSD160から採取したディスカバリー情報に含まれる実SUBNQNおよび実CNTLIDを、そのまま、ホスト装置102に提供することは実施しない。ST-DCNT122は、例えば、実SUBNQNおよび実CNTLIDを、仮想SUBNQNおよび仮想CNTLIDに変換する。ST-DCNT122は、例えば、変換した仮想SUBNQNおよび仮想CNTLIDを含むディスカバリーログを、ST-CPU121を経由し、ホスト装置102に提供する。
【0096】
(l)ST-DCNT122は、ST-CPU121を経由し、ホスト装置102から、SSD160に対する、仮想SUBNQNおよび仮想CNTLIDを含むSQEを受信する。ST-DCNT122は、受信したSQEに含まれる仮想SUBNQNおよび仮想CNTLIDを、実SUBNQNおよび実CNTLIDに変換する。ST-DCNT122は、変換した実SUBNQNおよび実CNTLIDを含む変換済SQEを、ST-CPU121を経由し、SSD160に送信する。
【0097】
(m)ST-DCNT122は、ST-CPU121を経由し、SSD160から、(l)において送信したSQEに対するCQEを受信する。ST-DCNT122は、受信したCQEに含まれる実SUBNQNおよび実CNTLIDを、仮想SUBNQNおよび仮想CNTLIDに変換する。ST-DCNT122は、変換した仮想SUBNQNおよび仮想CNTLIDを含む変換済CQEを、ST-CPU121を経由し、ホスト装置102に送信する。
【0098】
(n)ST-DCNT122は、各スロット150に、SSD160が装着されているか否かをスキャンする。
【0099】
(o)ST-DCNT122は、各SSD160に設定するためのネットワークアドレスを確保したネットワークアドレスプールを記憶する。ネットワークアドレスプールは、各スロット150に対応付けて、各スロット150に装着されたSSD160に設定するためのネットワークアドレスを含む。
【0100】
(p)ST-DCNT122は、(n)においてスキャンした結果、検出されたSSD160に、ネットワークアドレスプールから抽出した、SSD160が装着されたスロット150に対応するネットワークアドレスを設定する。
【0101】
これにより、ストレージ制御装置101は、SSD160の交換が行われる前後で、ホスト装置102が、SSD160の交換を認識せずに済ませ、仮想SUBNQNおよび仮想CNTLIDを用い続けるようにすることができる。このため、ストレージ制御装置101は、SSD160の交換が行われた際、作業者、および、管理者にかかる作業負担および作業ミスの低減化を図ることができる。
【0102】
管理者は、NVMeに関する専門的な知識を有さなくても、SSD160の交換を行うことができ、作業負担の低減化を図ることができる。作業者は、SSD160の交換に伴う作業を行わずに済むため、作業負担の低減化を図ることができる。作業者は、SSD160の交換に伴う作業を行わずに済むため、作業ミスの発生を防止することができる。
【0103】
(ストレージ制御システム100の具体的な動作例)
次に、
図5~
図32を用いて、ストレージ制御システム100の具体的な動作例について説明する。
【0104】
動作例において、メモリ123は、
図5に後述するNA(Notification Acceptance)テーブル500と、
図6に後述するDLCテーブル600とを記憶する。ホスト装置102は、
図7に後述するND(NVMe Drive)テーブル700を記憶する。
【0105】
(NAテーブル500の記憶内容)
次に、
図5を用いて、
図1に示したストレージ制御装置101が記憶するNAテーブル500の記憶内容の一例について説明する。NAテーブル500は、例えば、
図1に示したストレージ制御装置101のメモリ123などの記憶領域により実現される。
【0106】
図5は、NAテーブル500の記憶内容の一例を示す説明図である。
図5に示すように、NAテーブル500は、HOSTNQNと、NAとのフィールドを有する。NAテーブル500は、ホスト装置102ごとに各フィールドに情報を設定することにより、NA情報がレコード500-aとして記憶される。aは、任意の整数である。
【0107】
HOSTNQNのフィールドには、ホスト装置102を識別する識別情報として、HOSTNQNが設定される。NAのフィールドには、スロット150に対するSSD160の装着状況の通知を、HOSTNQNによって識別されるホスト装置102に送信するか否かを示すフラグ情報が設定される。フラグ情報は、YESであれば、送信することを示す。フラグ情報は、NOであれば、送信しないことを示す。
【0108】
(DLCテーブル600の記憶内容)
次に、
図6を用いて、
図1に示したストレージ制御装置101が記憶するDLCテーブル600の記憶内容の一例について説明する。DLCテーブル600は、例えば、
図1に示したストレージ制御装置101のメモリ123などの記憶領域により実現される。
【0109】
図6は、DLCテーブル600の記憶内容の一例を示す説明図である。
図6に示すように、DLCテーブル600は、Slotと、SSD Installationと、Network Addressと、Physical SUBNQNと、SUBNQNと、Physical CNTLIDと、CNTLIDと、Associated HOSTNQNと、Otherとのフィールドを有する。DLCテーブル600は、スロット150ごとに各フィールドに情報を設定することにより、DLC情報がレコード600-bとして記憶される。bは、任意の整数である。
【0110】
Slotのフィールドには、スロット150を識別する識別情報が設定される。SSD Installationのフィールドには、スロット150に対するSSD160の装着状況を示す情報が設定される。SSD Installationのフィールドには、スロット150にSSD160が装着されている場合、Presentが設定される。SSD Installationのフィールドには、スロット150にSSD160が装着されていない場合、Noneが設定される。Network Addressのフィールドには、各SSD160に割り当てるNetwork Addressが設定される。
【0111】
Physical SUBNQNのフィールドには、スロット150に装着されたSSD160に固有に割り振られた実SUBNQNが設定される。SUBNQNのフィールドには、スロット150に装着されたSSD160に共通で割り振るための仮想SUBNQNが設定される。Physical CNTLIDのフィールドには、スロット150に装着されたSSD160に固有に割り振られた実CNTLIDが設定される。CNTLIDのフィールドには、スロット150に装着されたSSD160に共通で割り振るための仮想CNTLIDが設定される。
【0112】
Associated HOSTNQNのフィールドには、スロット150に装着されたSSD160との通信を確立しているホスト装置102を識別する識別情報として、HOSTNQNが設定される。Otherのフィールドには、スロット150に関する各種情報が設定される。各種情報は、例えば、Port IDなどである。
【0113】
(NDテーブル700の記憶内容)
次に、
図7を用いて、
図1に示したホスト装置102が記憶するNDテーブル700の記憶内容の一例について説明する。NDテーブル700は、例えば、
図3に示したホスト装置102のメモリ302や記録媒体305などの記憶領域により実現される。
【0114】
図7は、NDテーブル700の記憶内容の一例を示す説明図である。
図7に示すように、NDテーブル700は、Logical Driveと、Network Addressと、SUBNQNと、Otherとのフィールドを有する。NDテーブル700は、Logical Driveごとに各フィールドに情報を設定することにより、Logical Drive情報がレコード700-cとして記憶される。cは、任意の整数である。
【0115】
Logical Driveのフィールドには、Logical Driveを識別する識別情報が設定される。Network Addressのフィールドには、Logical Driveを割り当てたSSD160を特定するNetwork Addressが設定される。SUBNQNのフィールドには、Logical Driveを割り当てたSSD160に割り当てられた仮想SUBNQNが設定される。Otherのフィールドには、Logical Driveを割り当てたSSD160に関する各種情報が設定される。各種情報は、例えば、Namespace IDなどである。
【0116】
(SSD160を認識する一例)
次に、
図8~
図14を用いて、動作例において、ストレージ制御装置101が、スロット150に装着されたSSD160を認識する一例について説明する。
【0117】
図8~
図14は、SSD160を認識する一例を示す説明図である。
図8において、ホスト装置102にストレージ制御装置101を接続した直後は、初期状態であるため、ND(NVMe Drive)テーブル700には、各種情報が設定されていない。Not setは、未設定であることを示す。ストレージ制御装置101は、初期状態では、DLCテーブル600には、仮想SUBNQNおよび仮想CNTLIDを設定している。仮想SUBNQNおよび仮想CNTLIDは、例えば、ストレージ制御装置101の出荷時に予め設定済みである。次に、
図9の説明に移行する。
【0118】
図9において、ストレージ制御装置101は、管理者の操作入力に基づいて、ネットワークアドレスプールから抽出したネットワークアドレスを、各スロット150に割り当てる。ストレージ制御装置101は、各スロット150に割り当てたネットワークアドレスを、DLCテーブル600に設定する。次に、
図10の説明に移行する。
【0119】
図10において、ストレージ制御装置101は、各スロット150に、SSD160が装着されているか否かをスキャン開始する。ストレージ制御装置101は、各スロット150に装着されたSSD160があれば、各スロット150に対応するネットワークアドレスを設定する。ストレージ制御装置101は、各スロット150に装着されたSSD160があれば、各スロット150へのSSD160装着状況を、DLCテーブル600に設定する。次に、
図11の説明に移行する。
【0120】
図11において、ストレージ制御装置101は、スロット150に装着された各SSD160から、ディスカバリー情報とアイデンティファイ情報とを採取する。ストレージ制御装置101は、採取したディスカバリー情報とアイデンティファイ情報を、DLCテーブル600に設定する。ストレージ制御装置101は、例えば、実SUBNQNおよび実CNTLIDを、DLCテーブル600に設定する。これにより、ストレージ制御装置101は、仮想SUBNQNおよび仮想CNTLIDと、実SUBNQNおよび実CNTLIDとを対応付けることができる。次に、
図12の説明に移行する。
【0121】
図12において、ストレージ制御装置101は、ディスカバリーコマンドを、ホスト装置102から受信する。ストレージ制御装置101は、ディスカバリーコマンドに応じて、ネットワークアドレスと、仮想SUBNQNおよび仮想CNTLIDとを含むディスカバリーログを、ホスト装置102に送信する。ホスト装置102は、ディスカバリーログを、NDテーブル700に設定する。ホスト装置102は、例えば、ネットワークアドレスと、仮想SUBNQNおよび仮想CNTLIDとを、NDテーブル700に設定する。これにより、ホスト装置102は、SSD160にアクセスする際に用いられる情報を記憶しておくことができる。次に、
図13の説明に移行する。
【0122】
図13において、ホスト装置102は、SSD160と、NVMeoF仕様で定義されるアソシエーションを確立する。ストレージ制御装置101は、ホスト装置102が、SSD160とのアソシエーションを確立するにあたり、SSD160とのアソシエーションを確立しようとするホスト装置102を識別するHOSTNQNを、DLCテーブル600に設定する。次に、
図14の説明に移行する。
【0123】
図14において、ホスト装置102は、アソシエーションを確立したSSD160を、Logical Driveに割り当てる。ホスト装置102は、SSD160を、Logical Driveに割り当てた結果を、NDテーブル700に設定する。
【0124】
以上により、ストレージ制御装置101は、ホスト装置102と、SSD160とのデータのやり取りを中継するための準備を完了することができる。また、ホスト装置102は、SSD160にアクセスするための準備を完了することができる。
【0125】
(認識処理手順)
次に、
図15~
図18を用いて、ストレージ制御システム100が実行する、認識処理手順の一例について説明する。認識処理は、
図8~
図14に示したストレージ制御装置101、および、ホスト装置102の各種動作を実現する。
【0126】
図15~
図18は、認識処理手順の一例を示すシーケンス図である。
図15において、ST-CPU121は、スロット電源ONを検出する(ステップS1501)。次に、ST-CPU121は、スロット情報を初期化する(ステップS1502)。そして、ST-CPU121は、ST-DCNT122に、ディスカバリー準備指示を送信する(ステップS1503)。その後、ST-CPU121は、ステップS1515の処理に移行する。
【0127】
一方で、ST-DCNT122は、ディスカバリー準備指示を受信する(ステップS1504)。次に、ST-DCNT122は、初回のみ、管理者の操作入力に基づいて、ネットワークアドレスプールにネットワークアドレスを設定する(ステップS1505)。そして、ST-DCNT122は、SSD160が装着されたスロット150をスキャン開始する(ステップS1506)。
【0128】
次に、ST-DCNT122は、スキャン結果が、変化なし、増設検出、または、減設検出のいずれであるかを判定する(ステップS1507)。ここで、スキャン結果が、変化なしである場合(ステップS1507:変化なし)、ST-DCNT122は、ステップS1514の処理に移行する。また、スキャン結果が、増設検出である場合(ステップS1507:増設検出)、ST-DCNT122は、ステップS1509の処理に移行する。また、スキャン結果が、減設検出である場合(ステップS1507:減設検出)、ST-DCNT122は、ステップS1508の処理に移行する。
【0129】
ステップS1508では、ST-DCNT122は、SSD160の装着状況を、DLCテーブル600に書き込む(ステップS1508)。そして、ST-DCNT122は、ステップS1513の処理に移行する。
【0130】
ステップS1509では、ST-DCNT122は、SSD160の装着状況を、DLCテーブル600に書き込む(ステップS1509)。次に、ST-DCNT122は、検出したSSD160にネットワークアドレスを設定する(ステップS1510)。そして、ST-DCNT122は、検出したSSD160からディスカバリー情報を採取する(ステップS1511)。
【0131】
次に、ST-DCNT122は、採取したディスカバリー情報を、DLCテーブル600に書き込む(ステップS1512)。そして、ST-DCNT122は、DLCテーブル600を含むディスカバリー準備応答を、ST-CPU121に送信する(ステップS1513)。その後、ST-DCNT122は、SSD160が装着されたスロット150をスキャン完了する(ステップS1514)。
【0132】
ステップS1515では、ST-CPU121は、ディスカバリー準備応答を受信したか否かを判定する(ステップS1515)。ここで、受信していない場合(ステップS1515:No)、ST-CPU121は、ステップS1515の処理に戻る。一方で、受信している場合(ステップS1515:Yes)、ST-CPU121は、ステップS1516の処理に移行する。
【0133】
ステップS1516では、ST-CPU121は、ホスト装置102からのディスカバリーコマンドに対して応答可能な状態であると設定する(ステップS1516)。そして、ST-CPU121は、
図16のステップS1602の処理に移行する。次に、
図16の説明に移行する。
【0134】
図16において、ホスト装置102は、ディスカバリーコマンドをST-CPU121に送信する(ステップS1601)。そして、ホスト装置102は、ステップS1605の処理に移行する。
【0135】
一方で、ST-CPU121は、ディスカバリーコマンドを受信したか否かを判定する(ステップS1602)。ここで、受信していない場合(ステップS1602:No)、ST-CPU121は、ステップS1602の処理に戻る。一方で、受信している場合(ステップS1602:Yes)、ST-CPU121は、ステップS1603の処理に移行する。
【0136】
ステップS1603では、ST-CPU121は、DLCテーブル600から応答値として、仮想SUBNQNおよび仮想CNTLIDなどを抽出する(ステップS1603)。次に、ST-CPU121は、応答値を含むディスカバリーログをホスト装置102に送信する(ステップS1604)。
【0137】
一方で、ホスト装置102は、ディスカバリーログを受信したか否かを判定する(ステップS1605)。ここで、受信していない場合(ステップS1605:No)、ホスト装置102は、ステップS1605の処理に戻る。一方で、受信している場合(ステップS1605:Yes)、ホスト装置102は、ステップS1606の処理に移行する。
【0138】
ステップS1606では、ホスト装置102は、ディスカバリーログを、NDテーブル700に書き込む(ステップS1606)。次に、ホスト装置102は、コネクトコマンドをST-CPU121に送信する(ステップS1607)。そして、ホスト装置102は、ステップS1608の処理に移行する。
【0139】
一方で、ST-CPU121は、コネクトコマンドを受信する。ST-CPU121は、コネクトコマンドを受信すると、ST-DCNT122と共に、
図17および
図18に後述する各種処理を実行し、コネクトコマンドへの応答を、ホスト装置102に送信する。
【0140】
その後、ホスト装置102は、コネクトコマンドへの応答を受信したか否かを判定する(ステップS1608)。ここで、受信していない場合(ステップS1608:No)、ホスト装置102は、ステップS1608の処理に戻る。一方で、受信している場合(ステップS1608:Yes)、ホスト装置102は、ステップS1609の処理に移行する。
【0141】
ステップS1609では、ホスト装置102は、SSD160とのアソシエーションを確立する(ステップS1609)。そして、ストレージ制御システム100は、認識処理を終了する。これにより、ストレージ制御システム100は、ホスト装置102が、SSD160を使用する準備を完了することができる。
【0142】
図17において、ST-CPU121は、コネクトコマンドを受信すると、コネクトコマンドに、仮想SUBNQNおよび仮想CNTLIDが含まれるか否かを判定する(ステップS1701)。ここで、含まれない場合(ステップS1701:No)、ST-CPU121は、ステップS1707の処理に移行する。一方で、含まれる場合(ステップS1701:Yes)、ST-CPU121は、ステップS1702の処理に移行する。
【0143】
ステップS1702では、ST-CPU121は、コネクトコマンドを含めた、コネクトコマンドの変換指示を、ST-DCNT122に送信する(ステップS1702)。そして、ST-CPU121は、ステップS1706の処理に移行する。
【0144】
一方で、ST-DCNT122は、コネクトコマンドの変換指示を受信する(ステップS1703)。次に、ST-DCNT122は、DCLテーブルに基づいて、コネクトコマンドに含まれる仮想SUBNQNおよび仮想CNTLIDを、実SUBNQNおよび実CNTLIDに変換する(ステップS1704)。そして、ST-DCNT122は、変換済コネクトコマンドを含めた、コネクトコマンドの変換完了通知を、ST-CPU121に送信する(ステップS1705)。
【0145】
一方で、ST-CPU121は、コネクトコマンドの変換が完了したか否かを判定する(ステップS1706)。ここで、コネクトコマンドの変換が完了していない場合(ステップS1706:No)、ST-CPU121は、ステップS1706の処理に戻る。一方で、コネクトコマンドの変換が完了している場合(ステップS1706:Yes)、ST-CPU121は、ステップS1707の処理に移行する。
【0146】
ステップS1707では、ST-CPU121は、変換済コネクトコマンドを、SSD-CNT161に送信する(ステップS1707)。そして、ST-CPU121は、
図18のステップS1801の処理に移行する。
【0147】
一方で、SSD-CNT161は、変換済コネクトコマンドを受信すると、受信した変換済コネクトコマンドを実行し、コネクトコマンドへの応答を、ST-CPU121に返信する。
【0148】
図18において、ST-CPU121は、コネクトコマンドへの応答を受信したか否かを判定する(ステップS1801)。ここで、受信していない場合(ステップS1801:No)、ST-CPU121は、ステップS1801の処理に戻る。一方で、受信している場合(ステップS1801:Yes)、ST-CPU121は、ステップS1802の処理に移行する。
【0149】
ステップS1802では、ST-CPU121は、コネクトコマンドへの応答に、実SUBNQNおよび実CNTLIDが含まれるか否かを判定する(ステップS1802)。ここで、含まれない場合(ステップS1802:No)、ST-CPU121は、ステップS1809の処理に移行する。一方で、含まれる場合(ステップS1802:Yes)、ST-CPU121は、ステップS1803の処理に移行する。
【0150】
ステップS1803では、ST-CPU121は、コネクトコマンドへの応答を含めた、コネクトコマンドへの応答の変換指示を、ST-DCNT122に送信する(ステップS1803)。そして、ST-CPU121は、ステップS1808の処理に移行する。
【0151】
一方で、ST-DCNT122は、コネクトコマンドへの応答の変換指示を受信する(ステップS1804)。次に、ST-DCNT122は、DCLテーブルに基づいて、コネクトコマンドへの応答に含まれる実SUBNQNおよび実CNTLIDを、仮想SUBNQNおよび仮想CNTLIDに変換する(ステップS1805)。次に、ST-DCNT122は、DCLテーブルに、アソシエーション情報を書き込む(ステップS1806)。そして、ST-DCNT122は、変換済コネクトコマンドへの応答を含めた、コネクトコマンドへの応答の変換完了通知を、ST-CPU121に送信する(ステップS1807)。
【0152】
一方で、ST-CPU121は、コネクトコマンドへの応答の変換が完了したか否かを判定する(ステップS1808)。ここで、コネクトコマンドへの応答が変換完了していない場合(ステップS1808:No)、ST-CPU121は、ステップS1808の処理に戻る。一方で、コネクトコマンドへの応答が変換完了している場合(ステップS1808:Yes)、ST-CPU121は、ステップS1809の処理に移行する。
【0153】
ステップS1809では、ST-CPU121は、変換済コネクトコマンドへの応答を、ホスト装置102に返信する(ステップS1809)。
【0154】
これにより、ストレージ制御システム100は、ホスト装置102が、実SUBNQNおよび実CNTLIDを認識しなくても、ホスト装置102に、SSD160を使用させることができる。このため、ストレージ制御システム100は、作業者、および、管理者にかかる作業負担の低減化を図ることができる。
【0155】
(コマンドを実行させる一例)
次に、
図19を用いて、動作例において、ストレージ制御装置101が、SSD160にコマンドを実行させる一例について説明する。コマンドは、例えば、リード、または、ライトに関する命令である。
【0156】
図19は、コマンドを実行させる一例を示す説明図である。
図19において、ST-CPU121は、I/Fモジュール110を介して、SQEを、ホスト装置102から受信する。ST-CPU121は、フィルタ1901により、受信したSQEが、仮想SUBNQNおよび仮想CNTLIDを含むか否かを判定する。ST-CPU121は、受信したSQEが、仮想SUBNQNおよび仮想CNTLIDを含む場合、受信したSQEを、ST-DCNT122に送信する。ST-CPU121は、受信したSQEが、仮想SUBNQNおよび仮想CNTLIDを含まない場合、I/Fモジュール130を介して、受信したSQEを、SSD160に送信する。
【0157】
ST-DCNT122は、仮想SUBNQNおよび仮想CNTLIDを含むSQEを受信する。ST-DCNT122は、DLCテーブル600に基づいて、受信したSQEに含まれる仮想SUBNQNおよび仮想CNTLIDを、実SUBNQNおよび実CNTLIDに変換する。ST-DCNT122は、変換済SQEを、ST-CPU121に送信する。ST-CPU121は、I/Fモジュール130を介して、変換済SQEを、SSD160に送信する。
【0158】
ST-CPU121は、I/Fモジュール130を介して、CQEを、SSD160から受信する。ST-CPU121は、フィルタ1902により、受信したCQEが、実SUBNQNおよび実CNTLIDを含むか否かを判定する。ST-CPU121は、受信したCQEが、実SUBNQNおよび実CNTLIDを含む場合、受信したCQEを、ST-DCNT122に送信する。ST-CPU121は、受信したCQEが、実SUBNQNおよび実CNTLIDを含まない場合、I/Fモジュール110を介して、受信したCQEを、ホスト装置102に送信する。
【0159】
ST-DCNT122は、実SUBNQNおよび実CNTLIDを含むCQEを受信する。ST-DCNT122は、DLCテーブル600に基づいて、受信したCQEに含まれる実SUBNQNおよび実CNTLIDを、仮想SUBNQNおよび仮想CNTLIDに変換する。ST-DCNT122は、変換済CQEを、ST-CPU121に送信する。ST-CPU121は、I/Fモジュール110を介して、変換済CQEを、ホスト装置102に返信する。
【0160】
以上により、ストレージ制御装置101は、ホスト装置102が、実SUBNQNおよび実CNTLIDを認識しなくても、ホスト装置102に、SSD160を使用させることができる。このため、ストレージ制御装置101は、作業者、および、管理者にかかる作業負担および作業ミスの低減化を図ることができる。
【0161】
(SSD160の増設に応じてDLCテーブル600を更新する一例)
次に、
図20~
図22を用いて、動作例において、ストレージ制御装置101が、SSD160の増設に応じてDLCテーブル600を更新する一例について説明する。
【0162】
図20~
図22は、SSD160の増設に応じてDLCテーブル600を更新する一例を示す説明図である。
図20において、ストレージ制御装置101は、管理者の操作入力に基づき、HOSTNQN=HOST2・・・であるホスト装置102が、通知先であることを、NAテーブル500に設定済みであるとする。
【0163】
また、Slot#0のスロット150に、SSD160が装着済みであり、Slot#1のスロット150に、SSD160が未装着であるとする。ストレージ制御装置101は、SSD160の装着状況を示す各種情報を、DLCテーブル600に設定済みであるとする。次に、
図21の説明に移行する。
【0164】
図21において、ストレージ制御装置101は、各スロット150に、SSD160が装着されているか否かをスキャン開始する。ストレージ制御装置101は、スキャンした結果、Slot#1のスロット150に、SSD160が増設されたことを検出する。ストレージ制御装置101は、スロット150に増設されたSSD160に、スロット150に対応するネットワークアドレスを設定する。ストレージ制御装置101は、スロット150の装着状況を、DLCテーブル600に設定する。次に、
図22の説明に移行する。
【0165】
図22において、ストレージ制御装置101は、スロット150に増設されたSSD160から、ディスカバリー情報とアイデンティファイ情報とを採取する。ストレージ制御装置101は、採取したディスカバリー情報とアイデンティファイ情報とを、DLCテーブル600に設定する。ストレージ制御装置101は、例えば、実SUBNQNおよび実CNTLIDを、DLCテーブル600に設定する。
【0166】
ストレージ制御装置101は、SSD160が増設されたことの通知を、通知先として設定されたホスト装置102に送信する。また、ストレージ制御装置101は、DLCテーブル600に基づいて、SSD160が増設されたスロット150に対応する仮想SUBNQNおよび仮想CNTLIDを含む増設通知割り込みを、ホスト装置102に送信する。
【0167】
以上により、ストレージ制御装置101は、SSD160の増設に応じて、仮想SUBNQNおよび仮想CNTLIDと、実SUBNQNおよび実CNTLIDとを、適切に対応付けることができる。このため、ストレージ制御装置101は、SSD160の増設に応じて、仮想SUBNQNおよび仮想CNTLIDと、実SUBNQNおよび実CNTLIDとを、適切に変換可能にすることができる。
【0168】
(増設処理手順)
次に、
図23を用いて、ストレージ制御システム100が実行する、増設処理手順の一例について説明する。増設処理は、
図20~
図22に示したストレージ制御装置101、および、ホスト装置102の各種動作を実現する。
【0169】
図23は、増設処理手順の一例を示すシーケンス図である。
図23において、ST-DCNT122は、SSD160が装着されたスロット150をスキャン開始する(ステップS2301)。ここでは、ST-DCNT122は、スキャン結果が増設検出であると判定する(ステップS2302)。このため、ST-DCNT122は、ステップS2303の処理に移行する。
【0170】
ステップS2303では、ST-DCNT122は、SSD160の装着状況を、DLCテーブル600に書き込む(ステップS2303)。そして、ST-DCNT122は、検出したSSD160にネットワークアドレスを設定する(ステップS2304)。
【0171】
次に、ST-DCNT122は、検出したSSD160からディスカバリー情報を採取する(ステップS2305)。そして、ST-DCNT122は、採取したディスカバリー情報を、DLCテーブル600に書き込む(ステップS2306)。
【0172】
次に、ST-DCNT122は、DLCテーブル600を含むディスカバリー情報更新割り込みを、ST-CPU121に送信する(ステップS2307)。そして、ST-DCNT122は、SSD160が装着されたスロット150をスキャン完了する(ステップS2308)。
【0173】
一方で、ST-CPU121は、ディスカバリー情報更新割り込みを受信する(ステップS2309)。次に、ST-CPU121は、NAテーブル500に基づいて、通知先となるホスト装置102を特定する(ステップS2310)。そして、ST-CPU121は、SSD160の増設通知割り込みを、通知先となるホスト装置102に送信する(ステップS2311)。
【0174】
一方で、ホスト装置102は、SSD160の増設通知割り込みを受信する(ステップS2312)。そして、ストレージ制御システム100は、増設処理を終了する。これにより、ストレージ制御システム100は、SSD160の増設に応じて、仮想SUBNQNおよび仮想CNTLIDと、実SUBNQNおよび実CNTLIDとを、適切に対応付けることができる。
【0175】
(SSD160の減設に応じてDLCテーブル600を更新する一例)
次に、
図24および
図25を用いて、動作例において、ストレージ制御装置101が、SSD160の減設に応じてDLCテーブル600を更新する一例について説明する。
【0176】
図24および
図25は、SSD160の減設に応じてDLCテーブル600を更新する一例を示す説明図である。
図24において、ストレージ制御装置101は、管理者の操作入力に基づき、HOSTNQN=HOST1・・・であるホスト装置102が、通知先であることを、NAテーブル500に設定済みであるとする。
【0177】
また、Slot#0のスロット150に、SSD160が装着済みであり、Slot#1のスロット150に、SSD160が装着済みであるとする。ストレージ制御装置101は、SSD160の装着状況を示す各種情報を、DLCテーブル600に設定済みであるとする。次に、
図25の説明に移行する。
【0178】
図25において、ストレージ制御装置101は、スロット150に、SSD160が装着されているか否かをスキャン開始する。ストレージ制御装置101は、スキャンした結果、Slot#1のスロット150から、SSD160が減設されたことを検出する。ストレージ制御装置101は、スロット150の装着状況を、DLCテーブル600に設定する。ストレージ制御装置101は、例えば、SSD160が減設されたスロット150に対応するSSD Installationを、Noneに設定する。
【0179】
ストレージ制御装置101は、SSD160が減設された場合、SSD160が減設されたことの通知を、通知先として設定されたホスト装置102に送信する。ストレージ制御装置101は、SSD160が減設された場合、SSD160が減設されたスロット150に対応する仮想SUBNQNおよび仮想CNTLIDを、ホスト装置102に提供しなくてもよい。以上により、ストレージ制御装置101は、SSD160の減設に応じて、SSD160が減設されたスロット150を、適切に特定可能にすることができる。
【0180】
(減設処理手順)
次に、
図26を用いて、ストレージ制御システム100が実行する、減設処理手順の一例について説明する。減設処理は、
図24および
図25に示したストレージ制御装置101、および、ホスト装置102の各種動作を実現する。
【0181】
図26は、減設処理手順の一例を示すシーケンス図である。
図26において、ST-DCNT122は、SSD160が装着されたスロット150をスキャン開始する(ステップS2601)。ここでは、ST-DCNT122は、スキャン結果が減設検出であると判定する(ステップS2602)。このため、ST-DCNT122は、ステップS2603の処理に移行する。
【0182】
ステップS2603では、ST-DCNT122は、SSD160の装着状況を、DLCテーブル600に書き込む(ステップS2603)。次に、ST-DCNT122は、DLCテーブル600を含むディスカバリー情報更新割り込みを、ST-CPU121に送信する(ステップS2604)。そして、ST-DCNT122は、SSD160が装着されたスロット150をスキャン完了する(ステップS2605)。
【0183】
一方で、ST-CPU121は、ディスカバリー情報更新割り込みを受信する(ステップS2606)。次に、ST-CPU121は、NAテーブル500に基づいて、通知先となるホスト装置102を特定する(ステップS2607)。そして、ST-CPU121は、SSD160の増設通知割り込みを、通知先となるホスト装置102に送信する(ステップS2608)。
【0184】
一方で、ホスト装置102は、SSD160の増設通知割り込みを受信する(ステップS2609)。そして、ストレージ制御システム100は、減設処理を終了する。これにより、ストレージ制御システム100は、SSD160の減設に応じて、SSD160が減設されたスロット150を、適切に特定可能にすることができる。
【0185】
(SSD160の交換に応じてDLCテーブル600を更新する一例)
次に、
図27~
図30を用いて、動作例において、ストレージ制御装置101が、SSD160の交換に応じてDLCテーブル600を更新する一例について説明する。
【0186】
図27~
図30は、SSD160の交換に応じてDLCテーブル600を更新する一例を示す説明図である。
図27において、ストレージ制御装置101は、管理者の操作入力に基づき、HOSTNQN=HOST1・・・であるホスト装置102が、通知先であることを、NAテーブル500に設定済みであるとする。SSD160の減設の際であれば、NAテーブル500にYESが設定され、かつ、Associated HOSTNQNにより識別されるホスト装置102が、通知先となる。
【0187】
また、Slot#0のスロット150に、SSD160が装着済みであり、Slot#1のスロット150に、SSD160が装着済みであるとする。ストレージ制御装置101は、SSD160の装着状況を示す各種情報を、DLCテーブル600に設定済みであるとする。ホスト装置102は、SSD160に、Logical Driveを割り当て済みであるとする。ホスト装置102は、SSD160に、Logical Driveを割り当てた結果を、NDテーブル700に設定済みであるとする。次に、
図28の説明に移行する。
【0188】
図28において、ストレージ制御装置101は、スロット150に、SSD160が装着されているか否かをスキャン開始する。ストレージ制御装置101は、スキャンした結果、Slot#1のスロット150から、SSD160が減設されたことを検出する。ストレージ制御装置101は、スロット150の装着状況を、DLCテーブル600に設定する。ストレージ制御装置101は、例えば、SSD160が減設されたスロット150に対応するSSD Installationを、Noneに設定する。
【0189】
ストレージ制御装置101は、SSD160が減設された場合、SSD160が減設されたことの通知を、通知先として設定され、かつ、Associated HOSTNQNにより識別されるホスト装置102に送信する。ストレージ制御装置101は、SSD160が減設された場合、SSD160が減設されたスロット150に対応する仮想SUBNQNおよび仮想CNTLIDを、ホスト装置102に提供しなくてもよい。次に、
図29の説明に移行する。
【0190】
図29において、ストレージ制御装置101は、スロット150に、SSD160が装着されているか否かをスキャン開始する。ストレージ制御装置101は、スキャンした結果、Slot#1のスロット150に、新たにSSD160が増設されたことを検出する。ストレージ制御装置101は、スロット150に増設されたSSD160に、スロット150に対応するネットワークアドレスを設定する。ストレージ制御装置101は、スロット150の装着状況を、DLCテーブル600に設定する。次に、
図30の説明に移行する。
【0191】
図30において、ストレージ制御装置101は、スロット150に増設されたSSD160から、ディスカバリー情報とアイデンティファイ情報とを採取する。ストレージ制御装置101は、採取したディスカバリー情報とアイデンティファイ情報とを、DLCテーブル600に設定する。ストレージ制御装置101は、例えば、実SUBNQNおよび実CNTLIDを、DLCテーブル600に設定する。この際、仮想SUBNQNおよび仮想CNTLIDは、更新されず不変である。
【0192】
ストレージ制御装置101は、SSD160が増設されたことの通知を、通知先として設定されたホスト装置102に送信する。また、ストレージ制御装置101は、DLCテーブル600に基づいて、SSD160が増設されたスロット150に対応する仮想SUBNQNおよび仮想CNTLIDを含む増設通知割り込みを、ホスト装置102に送信する。
【0193】
以上により、ストレージ制御装置101は、SSD160の交換に応じて、仮想SUBNQNおよび仮想CNTLIDと、実SUBNQNおよび実CNTLIDとを、適切に対応付けることができる。このため、ストレージ制御装置101は、SSD160の交換に応じて、仮想SUBNQNおよび仮想CNTLIDと、実SUBNQNおよび実CNTLIDとを、適切に変換可能にすることができる。
【0194】
また、ストレージ制御装置101は、SSD160の交換が行われる前後で、ホスト装置102が、SSD160の実SUBNQNおよび実CNTLIDを認識せずに済ませることができる。ホスト装置102は、仮想SUBNQNおよび仮想CNTLIDを用い続けることができる。このため、ストレージ制御装置101は、SSD160の交換が行われた際、作業者、および、管理者にかかる作業負担および作業ミスの低減化を図ることができる。
【0195】
(交換処理手順)
次に、
図31および
図32を用いて、ストレージ制御システム100が実行する、交換処理手順の一例について説明する。交換処理は、
図27~
図30に示したストレージ制御装置101、および、ホスト装置102の各種動作を実現する。
【0196】
図31および
図32は、交換処理手順の一例を示すシーケンス図である。
図31において、ストレージ管理者は、ストレージ制御装置101が有するスロット150から、SSD160を除去する(ステップS3101)。
【0197】
ST-DCNT122は、SSD160が装着されたスロット150をスキャン開始する(ステップS3102)。ここでは、ST-DCNT122は、スキャン結果が減設検出であると判定する(ステップS3103)。このため、ST-DCNT122は、ステップS3104の処理に移行する。
【0198】
ステップS3104では、ST-DCNT122は、SSD160の装着状況を、DLCテーブル600に書き込む(ステップS3104)。次に、ST-DCNT122は、DLCテーブル600を含むディスカバリー情報更新割り込みを、ST-CPU121に送信する(ステップS3105)。そして、ST-DCNT122は、SSD160が装着されたスロット150をスキャン完了する(ステップS3106)。その後、ストレージ管理者が、
図31のステップS3101の動作を実施した後、ST-DCNT122は、
図32のステップS3202の処理に移行する。
【0199】
一方で、ST-CPU121は、ディスカバリー情報更新割り込みを受信する(ステップS3107)。次に、ST-CPU121は、NAテーブル500に基づいて、通知先となるホスト装置102を特定する(ステップS3108)。そして、ST-CPU121は、SSD160の増設通知割り込みを、通知先となるホスト装置102に送信する(ステップS3109)。
【0200】
一方で、ホスト装置102は、SSD160の増設通知割り込みを受信する(ステップS3110)。次に、
図32の説明に移行する。
【0201】
図32において、ストレージ管理者は、ストレージ制御装置101が有するスロット150に、SSD160を装着する(ステップS3201)。
【0202】
ST-DCNT122は、SSD160が装着されたスロット150をスキャン開始する(ステップS3202)。ここでは、ST-DCNT122は、スキャン結果が増設検出であると判定する(ステップS3203)。このため、ST-DCNT122は、ステップS3204の処理に移行する。
【0203】
ステップS3204では、ST-DCNT122は、SSD160の装着状況を、DLCテーブル600に書き込む(ステップS3204)。次に、ST-DCNT122は、検出したSSD160にネットワークアドレスを設定する(ステップS3205)。そして、ST-DCNT122は、検出したSSD160からディスカバリー情報を採取する(ステップS3206)。
【0204】
次に、ST-DCNT122は、採取したディスカバリー情報を、DLCテーブル600に書き込む(ステップS3207)。そして、ST-DCNT122は、DLCテーブル600を含むディスカバリー情報更新割り込みを、ST-CPU121に送信する(ステップS3208)。その後、ST-DCNT122は、SSD160が装着されたスロット150をスキャン完了する(ステップS3209)。
【0205】
一方で、ST-CPU121は、ディスカバリー情報更新割り込みを受信する(ステップS3210)。次に、ST-CPU121は、NAテーブル500に基づいて、通知先となるホスト装置102を特定する(ステップS3211)。そして、ST-CPU121は、SSD160の増設通知割り込みを、通知先となるホスト装置102に送信する(ステップS3212)。
【0206】
一方で、ホスト装置102は、SSD160の増設通知割り込みを受信する(ステップS3213)。そして、ストレージ制御システム100は、交換処理を終了する。これにより、ストレージ制御システム100は、SSD160の交換が行われた際、作業者、および、管理者にかかる作業負担の低減化を図ることができる。
【0207】
以上説明したように、ストレージ制御装置101によれば、スロット210に装着された記録媒体に固有の実識別情報と、スロット210に装着される記録媒体に共通で割り当てられる仮想識別情報とを対応付けて記憶部200に記憶することができる。ストレージ制御装置101によれば、仮想識別情報を含むコマンドをホスト装置102から受信した場合、受信したコマンドに含まれる当該仮想識別情報を、当該仮想識別情報に対応付けて記憶部200に記憶された実識別情報に変換することができる。ストレージ制御装置101によれば、変換済のコマンドを、スロット210に装着された記録媒体に対するアクセスを制御する制御装置に送信することができる。ストレージ制御装置101によれば、実識別情報を含む応答を制御装置から受信した場合、受信した応答に含まれる当該実識別情報を、当該実識別情報に対応付けて記憶部200に記憶された仮想識別情報に変換することができる。ストレージ制御装置101によれば、変換済の応答を、ホスト装置102に送信することができる。ストレージ制御装置101によれば、スロット210から記録媒体が除去され、別の記録媒体が装着されたことを検出することができる。ストレージ制御装置101によれば、検出した場合、仮想識別情報に対応付けて記憶部200に記憶された、スロット210から除去された記録媒体に固有の実識別情報を、スロット210に装着された記録媒体に固有の実識別情報に更新することができる。これにより、ストレージ制御装置101は、記録媒体の交換が行われる前後で、ホスト装置102が、記録媒体に固有の実識別情報を認識せずとも、ホスト装置102に、記録媒体を使用し続けさせることができる。このため、ストレージ制御装置101は、記録媒体の交換が行われた際、作業者、および、管理者にかかる作業負担および作業ミスの低減化を図ることができる。
【0208】
ストレージ制御装置101によれば、スロット210から記録媒体が除去されたことを検出した場合、スロット210から記録媒体が除去されたことの通知を、ホスト装置102に送信することができる。これにより、ストレージ制御装置101は、ホスト装置102で、スロット210から記録媒体が除去されたことを認識可能にすることができる。
【0209】
ストレージ制御装置101によれば、スロット210へと記録媒体が装着されたことを検出した場合、スロット210へと記録媒体が装着されたことの通知を、ホスト装置102に送信することができる。これにより、ストレージ制御装置101は、ホスト装置102で、スロット210へと記録媒体が装着されたことを認識可能にすることができる。
【0210】
ストレージ制御装置101によれば、実識別情報、および、スロット210に装着された記録媒体に対するアクセスを制御する制御装置の識別情報と、仮想識別情報とを対応付けて、記憶部200に記憶することができる。ストレージ制御装置101によれば、スロット210から記録媒体が除去され、別の記録媒体が装着されたことを検出することができる。ストレージ制御装置101によれば、検出した場合、記憶部200に記憶された、スロット210から除去された記録媒体に固有の実識別情報を、スロット210に装着された記録媒体に固有の実識別情報に更新することができる。ストレージ制御装置101によれば、検出した場合、記憶部200に記憶された、除去された記録媒体に対するアクセスを制御する制御装置の識別情報を、装着された記録媒体に対するアクセスを制御する制御装置の識別情報に更新することができる。これにより、ストレージ制御装置101は、記録媒体の交換が行われる前後で、ホスト装置102が、記録媒体に対するアクセスを制御する制御装置の識別情報を認識せずとも、ホスト装置102に、記録媒体を使用し続けさせることができる。このため、ストレージ制御装置101は、記録媒体の交換が行われた際、作業者、および、管理者にかかる作業負担および作業ミスの低減化を図ることができる。
【0211】
ストレージ制御装置101によれば、実識別情報と、スロット210に装着される記録媒体に共通で割り当てられ、ホスト装置102に提供される所定のアドレス、および、仮想識別情報とを対応付けて記憶部200に記憶することができる。これにより、ストレージ制御装置101は、所定のアドレスを管理することができる。
【0212】
ストレージ制御装置101によれば、仮想識別情報を含まないコマンドをホスト装置102から受信した場合、受信したコマンドを、スロット210に装着された記録媒体に対するアクセスを制御する制御装置に送信することができる。ストレージ制御装置101によれば、実識別情報を含まない応答を制御装置から受信した場合、受信した応答をホスト装置102に送信することができる。これにより、ストレージ制御装置101は、ホスト装置102と制御装置との間で、コマンドと応答とを適切に中継することができる。
【0213】
ストレージ制御装置101によれば、スロット210に装着された記録媒体に固有の実識別情報を、所定のタイミングごとに問い合わせることができる。ストレージ制御装置101によれば、今回問い合わせた結果と、前回問い合わせた結果とを比較した結果に基づいて、スロット210から記録媒体が除去されたこと、または、スロット210へと記録媒体が装着されたことを検出することができる。これにより、ストレージ制御装置101は、スロット210に対する記録媒体の装着状況を認識することができる。
【0214】
ストレージ制御装置101によれば、スロット210へと記録媒体が装着されたことを検出した場合、問い合わせた結果得られたスロット210に装着された記録媒体に固有の実識別情報と、仮想識別情報とを対応付けて記憶部200に記憶することができる。ストレージ制御装置101によれば、スロット210から記録媒体が除去されたことを検出した場合、仮想識別情報に対応付けて記憶部200に記憶された、スロット210から除去された記録媒体に固有の実識別情報を記憶部200から削除することができる。これにより、ストレージ制御装置101は、記憶部200の記憶内容を正しく更新することができる。
【0215】
ストレージ制御装置101によれば、NVMe技術を利用することができる。これにより、ストレージ制御装置101は、NVMe仕様で定義された、記録媒体に固有の実識別情報を利用することができる。
【0216】
ストレージ制御装置101によれば、記録媒体の製造時に、記録媒体に割り当てられた一意な識別情報であり、スロット210に装着された記録媒体に固有の実識別情報を、仮想識別情報に変換することができる。これにより、ストレージ制御装置101は、実SUBNQNを、仮想SUBNQNに変換することができる。
【0217】
ストレージ制御装置101によれば、仮想識別情報をアクセス先として含むコマンドをホスト装置102から受信することができる。ストレージ制御装置101によれば、受信したコマンドに含まれる仮想識別情報を、当該仮想識別情報に対応付けて記憶部200に記憶された実識別情報に変換することができる。ストレージ制御装置101によれば、変換済のコマンドを、スロット210に装着された記録媒体に対するアクセスを制御する制御装置に送信することができる。これにより、ストレージ制御装置101は、変換する対象とするコマンドを正確に判断することができる。
【0218】
なお、本実施の形態で説明したストレージ制御方法は、予め用意されたプログラムをストレージ制御装置101で実行することにより実現することができる。本実施の形態で説明したストレージ制御プログラムは、コンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。記録媒体は、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO(Magneto Optical disc)、DVD(Digital Versatile Disc)などである。また、本実施の形態で説明したストレージ制御プログラムは、インターネットなどのネットワークを介して配布してもよい。
【0219】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0220】
(付記1)記録媒体を着脱可能なスロットを有するストレージ制御装置であって、
前記スロットに装着された記録媒体に固有の実識別情報と、前記スロットに装着される記録媒体に共通で割り当てられ、ホスト装置に提供される仮想識別情報とを対応付けて記憶する記憶部と、
前記仮想識別情報を含むコマンドを前記ホスト装置から受信した場合、受信した前記コマンドに含まれる前記仮想識別情報を、前記仮想識別情報に対応付けて前記記憶部に記憶された実識別情報に変換し、変換済の前記コマンドを、前記スロットに装着された記録媒体に対するアクセスを制御する制御装置に送信し、
送信した前記コマンドに対する、前記記憶部に記憶された実識別情報を含む応答を前記スロットに装着された記録媒体に対するアクセスを制御する制御装置から受信した場合、受信した前記応答に含まれる当該実識別情報を、当該実識別情報に対応付けて前記記憶部に記憶された前記仮想識別情報に変換し、変換済の前記応答を、前記ホスト装置に返信し、
前記スロットから記録媒体が除去され、別の記録媒体が装着されたことを検出した場合、前記仮想識別情報に対応付けて前記記憶部に記憶された、前記スロットから除去された記録媒体に固有の実識別情報を、前記スロットに装着された記録媒体に固有の実識別情報に更新する、制御部と、
を有することを特徴とするストレージ制御装置。
【0221】
(付記2)前記制御部は、前記スロットから記録媒体が除去されたことを検出した場合、前記スロットから記録媒体が除去されたことの通知を、前記ホスト装置に送信する、ことを特徴とする付記1に記載のストレージ制御装置。
【0222】
(付記3)前記制御部は、前記スロットへと記録媒体が装着されたことを検出した場合、前記スロットへと記録媒体が装着されたことの通知を、前記ホスト装置に送信する、ことを特徴とする付記1または2に記載のストレージ制御装置。
【0223】
(付記4)前記記憶部は、前記スロットに装着された記録媒体に固有の実識別情報、および、前記スロットに装着された記録媒体に対するアクセスを制御する制御装置の識別情報と、前記仮想識別情報とを対応付けて記憶し、
前記制御部は、前記スロットから記録媒体が除去され、別の記録媒体が装着されたことを検出した場合、前記仮想識別情報に対応付けて前記記憶部に記憶された、前記スロットから除去された記録媒体に固有の実識別情報、および、前記スロットから除去された記録媒体に対するアクセスを制御する制御装置の識別情報を、前記スロットに装着された記録媒体に固有の実識別情報、および、前記スロットに装着された記録媒体に対するアクセスを制御する制御装置の識別情報に更新する、ことを特徴とする付記1~3のいずれか一つに記載のストレージ制御装置。
【0224】
(付記5)前記記憶部は、前記スロットに装着された記録媒体に固有の実識別情報と、前記スロットに装着される記録媒体に共通で割り当てられ、ホスト装置に提供される所定のアドレス、および、前記仮想識別情報とを対応付けて記憶する、ことを特徴とする付記1~4のいずれか一つに記載のストレージ制御装置。
【0225】
(付記6)前記制御部は、前記仮想識別情報を含まないコマンドをホスト装置から受信した場合、受信した前記コマンドを、前記スロットに装着された記録媒体に対するアクセスを制御する制御装置に送信し、
送信した前記コマンドに対する、前記記憶部に記憶された実識別情報を含まない応答を前記スロットに装着された記録媒体に対するアクセスを制御する制御装置から受信した場合、受信した前記応答を前記ホスト装置に返信する、ことを特徴とする付記1~5のいずれか一つに記載のストレージ制御装置。
【0226】
(付記7)前記制御部は、前記スロットに装着された記録媒体に固有の実識別情報を、所定のタイミングごとに問い合わせ、
今回問い合わせた結果と、前回問い合わせた結果とを比較した結果に基づいて、前記スロットから記録媒体が除去されたこと、または、前記スロットへと記録媒体が装着されたことを検出する、ことを特徴とする付記1~6のいずれか一つに記載のストレージ制御装置。
【0227】
(付記8)前記制御部は、前記スロットへと記録媒体が装着されたことを検出した場合、問い合わせた結果得られた前記スロットに装着された記録媒体に固有の実識別情報と、前記仮想識別情報とを対応付けて前記記憶部に記憶し、
前記スロットから記録媒体が除去されたことを検出した場合、前記仮想識別情報に対応付けて前記記憶部に記憶された、前記スロットから除去された記録媒体に固有の実識別情報を前記記憶部から削除する、ことを特徴とする付記7に記載のストレージ制御装置。
【0228】
(付記9)前記ホスト装置、および、前記ストレージ制御装置は、Non Volatile Memory Express技術を利用する、ことを特徴とする付記1~8のいずれか一つに記載のストレージ制御装置。
【0229】
(付記10)前記スロットに装着された記録媒体に固有の実識別情報は、前記記録媒体の製造時に、前記記録媒体に割り当てられた一意な識別情報である、ことを特徴とする付記1~9のいずれか一つに記載のストレージ制御装置。
【0230】
(付記11)前記制御部は、前記仮想識別情報をアクセス先として含むコマンドを前記ホスト装置から受信した場合、前記記憶部に基づいて、受信した前記コマンドに含まれる前記仮想識別情報を、前記仮想識別情報に対応付けて前記記憶部に記憶された実識別情報に変換し、変換済の前記コマンドを、前記スロットに装着された記録媒体に対するアクセスを制御する制御装置に送信する、ことを特徴とする付記1~10のいずれか一つに記載のストレージ制御装置。
【0231】
(付記12)記録媒体を着脱可能なスロットを有するストレージ制御装置に、
前記スロットに装着された記録媒体に固有の実識別情報と、前記スロットに装着される記録媒体に共通で割り当てられ、ホスト装置に提供される仮想識別情報とを対応付けて記憶部に記憶し、
前記仮想識別情報を含むコマンドを前記ホスト装置から受信した場合、受信した前記コマンドに含まれる前記仮想識別情報を、前記仮想識別情報に対応付けて前記記憶部に記憶された実識別情報に変換し、変換済の前記コマンドを、前記スロットに装着された記録媒体に対するアクセスを制御する制御装置に送信し、
送信した前記コマンドに対する、前記記憶部に記憶された実識別情報を含む応答を前記スロットに装着された記録媒体に対するアクセスを制御する制御装置から受信した場合、受信した前記応答に含まれる当該実識別情報を、当該実識別情報に対応付けて前記記憶部に記憶された前記仮想識別情報に変換し、変換済の前記応答を、前記ホスト装置に返信し、
前記スロットから記録媒体が除去され、別の記録媒体が装着されたことを検出した場合、前記仮想識別情報に対応付けて前記記憶部に記憶された、前記スロットから除去された記録媒体に固有の実識別情報を、前記スロットに装着された記録媒体に固有の実識別情報に更新する、
処理を実行させることを特徴とするストレージ制御プログラム。
【符号の説明】
【0232】
100 ストレージ制御システム
101 ストレージ制御装置
102 ホスト装置
103 ファブリック
110,130 I/Fモジュール
120 システムボード
121 ST-CPU
122 ST-DCNT
123,302 メモリ
140 I/Fスイッチ
150,210 スロット
151 コネクタ
160 SSD
161 SSD-CNT
162 SSD-DCNT
163 NVM
200,400 記憶部
211,212,305 記録媒体
300 バス
301 CPU
303 ネットワークI/F
304 記録媒体I/F
310 ネットワーク
401 取得部
402 検出部
403 更新部
404 変換部
405 出力部
500 NAテーブル
600 DLCテーブル
700 NDテーブル
1901,1902 フィルタ