(57)【特許請求の範囲】
【請求項１】
ホストシステムに接続され、かつ複数のディスクドライブを搭載可能なディスクアレイシステムであって、
前記ホストシステムが生成した証明書データと、複数の動作モードに対応した複数の値及び前記ディスクアレイシステムに固有のキーデータを格納するメモリと、
前記ディスクドライブへのデータ入出力を制御するディスクコントローラと、
を備え、
前記ディスクドライブは、ディスク用メモリと、何れかのディスクアレイシステムに固有のキーデータまたは何れかのホストシステムが生成する証明書データを格納するシステム領域、及びユーザデータを格納するデータ領域を有するディスク媒体と、前記システム領域及び前記データ領域へのデータ入出力を制御するＨＤＤコントローラとを備えており、
前記ディスクコントローラは、
前記メモリに格納された証明書データを前記システム領域にデステージする場合、前記メモリに格納された証明書データを前記システム領域にデステージすると共に、前記デステージされた証明書データのアドレスを前記システム領域のＸ番地に書き込み、かつ前記メモリに格納された複数の動作モードに対応した複数の値を前記ディスク用メモリに書き込み、前記メモリに格納されたキーデータを前記システム領域に書き込む場合、前記メモリに格納されたキーデータを前記システム領域のＸ番地に書き込み、かつ前記メモリに格納された複数の動作モードに対応した複数の値を前記ディスク用メモリに書き込み、
前記ディスクドライブが前記ディスクアレイシステムに搭載されたことを契機として、前記メモリに前記証明書データが存在するか否かを判定し、前記メモリに前記証明書データが存在する場合、前記メモリに存在する前記証明書データと前記ホストシステムに存在する証明書データとが一致することを条件に、前記メモリに存在する前記証明書データを前記ディスク用メモリにデステージし、前記メモリに前記証明書データが存在しない場合、前記メモリに格納された前記キーデータを前記ディスク用メモリにデステージし、前記ディスク用メモリに前記証明書データまたは前記キーデータが書き込まれたことを条件に、前記システム領域のＸ番地に書き込まれたデータがアドレスであるか否かを判定し、
前記ＨＤＤコントローラは、
前記ディスクドライブが前記ディスクアレイシステムに搭載されたことを契機として、前記システム領域のＸ番地に書き込まれたデータがアドレスでないと前記ディスクコントローラが判定した場合、前記システム領域のＸ番地に格納されたキーデータと前記ディスク用メモリに格納されたキーデータとを比較し、両者が一致しない場合には、前記ディスク用メモリに書き込まれた前記複数の動作モードに対応した複数の値の中から一つの値を読み出し、前記読み出した値を基に少なくとも前記ディスクコントローラから前記データ領域へのリードアクセスを禁止する動作モードを実行し、
前記ＨＤＤコントローラは、
前記ディスクドライブが前記ディスクアレイシステムに搭載されたことを契機として、前記システム領域のＸ番地に書き込まれたデータがアドレスであると前記ディスクコントローラが判定した場合、前記システム領域のＸ番地に格納されたアドレスで特定される証明書データと前記ディスク用メモリに格納された証明書データとを比較し、両者が一致しない場合には、前記ディスク用メモリに書き込まれた前記複数の動作モードに対応した複数の値の中から一つの値を読み出し、前記読み出した値を基に少なくとも前記ディスクコントローラから前記データ領域へのリードアクセスを禁止する動作モードを実行する、ディスクアレイシステム。
【請求項２】
請求項１に記載のディスクアレイシステムであって、前記動作モードは、（１）前記ディスクコントローラから前記データ領域へのリードアクセスを禁止する動作モード、（２）前記ディスクコントローラから前記データ領域へのリードアクセス及びライトアクセスを共に禁止する動作モード、（３）前記ユーザデータ上に０データ又は１データを強制的に上書きする動作モードのうち何れかの動作モードである、ディスクアレイシステム。
【請求項３】
請求項１に記載のディスクアレイシステムであって、前記ディスクコントローラは、前記メモリに格納されたキーデータを、前記ディスクドライブが何れかのディスクアレイシステムに初めて搭載されたことを契機として、前記システム領域のＸ番地に格納する、ディスクアレイシステム。
【請求項４】
請求項１に記載のディスクアレイシステムであって、前記動作モードは、同一のＲＡＩＤグループに属する全てのディスクドライブに共通に設定されている、ディスクアレイシステム。
【請求項５】
ホストシステムに接続され、複数のディスクドライブを搭載可能なディスクアレイシステムとして構成され、かつ、前記ホストシステムが生成した証明書データと、複数の動作モードに対応した複数の値及び前記ディスクアレイシステムに固有のキーデータを格納するメモリと、前記ディスクドライブへのデータ入出力を制御するディスクコントローラと、を備え、
前記ディスクドライブは、ディスク用メモリと、何れかのディスクアレイシステムに固有のキーデータまたは何れかのホストシステムが生成する証明書データを格納するシステム領域、及びユーザデータを格納するデータ領域を有するディスク媒体と、前記システム領域及び前記データ領域へのデータ入出力を制御するＨＤＤコントローラとを備えて構成されたディスクアレイシステムにおけるセキュリティ方法であって、
前記ディスクコントローラが、前記メモリに格納された証明書データを前記システム領域にデステージする場合、前記メモリに格納された証明書データを前記システム領域にデステージすると共に、前記デステージされた証明書データのアドレスを前記システム領域のＸ番地に書き込み、かつ前記メモリに格納された複数の動作モードに対応した複数の値を前記ディスク用メモリに書き込み、前記メモリに格納されたキーデータを前記システム領域に書き込む場合、前記メモリに格納されたキーデータを前記システム領域のＸ番地に書き込み、かつ前記メモリに格納された複数の動作モードに対応した複数の値を前記ディスク用メモリに書き込むステップと、
前記ディスクコントローラが、前記ディスクドライブが前記ディスクアレイシステムに搭載されたことを契機として、前記メモリに前記証明書データが存在するか否かを判定し、前記メモリに前記証明書データが存在する場合、前記メモリに存在する前記証明書データと前記ホストシステムに存在する証明書データとが一致することを条件に、前記メモリに存在する前記証明書データを前記ディスク用メモリにデステージし、前記メモリに前記証明書データが存在しない場合、前記メモリに格納された前記キーデータを前記ディスク用メモリにデステージし、前記ディスク用メモリに前記証明書データまたは前記キーデータが書き込まれたことを条件に、前記システム領域のＸ番地に書き込まれたデータがアドレスであるか否かを判定するステップと、
前記ＨＤＤコントローラが、前記ディスクドライブが前記ディスクアレイシステムに搭載されたことを契機として、前記システム領域のＸ番地に書き込まれたデータがアドレスでないと前記ディスクコントローラが判定した場合、前記システム領域のＸ番地に格納されたキーデータと前記ディスク用メモリに格納されたキーデータとを比較し、両者が一致しない場合には、前記ディスク用メモリに書き込まれた前記複数の動作モードに対応した複数の値の中から一つの値を読み出し、前記読み出した値を基に少なくとも前記ディスクコントローラから前記データ領域へのリードアクセスを禁止する動作モードを実行するステップと、
前記ＨＤＤコントローラが、前記ディスクドライブが前記ディスクアレイシステムに搭載されたことを契機として、前記システム領域のＸ番地に書き込まれたデータがアドレスであると前記ディスクコントローラが判定した場合、前記システム領域のＸ番地に格納されたアドレスで特定される証明書データと前記ディスク用メモリに格納された証明書データとを比較し、両者が一致しない場合には、前記ディスク用メモリに書き込まれた前記複数の動作モードに対応した複数の値の中から一つの値を読み出し、前記読み出した値を基に少なくとも前記ディスクコントローラから前記データ領域へのリードアクセスを禁止する動作モードを実行するステップと、を含む、セキュリティ方法。
【請求項６】
請求項５に記載のセキュリティ方法であって、前記動作モードは、（１）前記ディスクコントローラから前記データ領域へのリードアクセスを禁止する動作モード、（２）前記ディスクコントローラから前記データ領域へのリードアクセス及びライトアクセスを共に禁止する動作モード、（３）前記ユーザデータ上に０データ又は１データを強制的に上書きする動作モードのうち何れかの動作モードである、セキュリティ方法。
【請求項７】
請求項５に記載のセキュリティ方法であって、前記ディスクコントローラは、前記メモリに格納されたキーデータを、前記ディスクドライブが何れかのディスクアレイシステムに初めて搭載されたことを契機として、前記ディスクドライブのシステム領域のＸ番地に格納する、セキュリティ方法。
【請求項８】
請求項５に記載のセキュリティ方法であって、前記動作モードは、同一のＲＡＩＤグループに属する全てのディスクドライブに共通に設定されている、セキュリティ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数のディスクドライブを搭載可能なディスクアレイシステム、及びディスクドライブのセキュリティ方法に関する。
【背景技術】
【０００２】
データセンタのような大規模なデータを取り扱うデータベースシステムでは、ホストシステムとは別に構成されたストレージシステムを用いてデータを管理する。このようなストレージシステムとして、例えば、ディスクアレイシステムが知られている。ディスクアレイシステムは、アレイ状に配列された多数のディスクドライブをＲＡＩＤ（Redundant Array of Independent Inexpensive Disks）管理する。ディスクドライブ群が提供する物理的な記憶領域上には、少なくとも１つ以上の論理ユニットが形成され、この論理ユニットがホストシステムに提供される。ホストシステムは、論理ユニットを一つの物理的なデバイスとして認識し、論理ユニットへのデータアクセスを行う。
【０００３】
この種のディスクアレイシステムでは、保守管理等の目的でディスクアレイシステムからディスクドライブを抜去又は輸送することがある。抜去されたディスクドライブに格納されているデータを不正に読み出すことができる解析ツールなどが市販されており、情報漏洩を防止するための対応策の重要性が増している。具体的な対応策としては、例えば、ディスクアレイシステムから抜去されたディスクドライブを物理的に破壊する、或いはディスクドライブに格納されている全データを米国政府の規定で定められた方式で消去する、などの方法がある。
【０００４】
尚、ストレージデバイスの不正アクセスを防止する技術に言及した文献として、特開２００２−４１３６２号公報、特開２００１−３５０９２号公報などが知られている。
【特許文献１】特開２００２−４１３６２号公報
【特許文献２】特開２００１−３５０９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、ディスクドライブを物理的に破壊することは、運用上の工数追加となるため、顧客若しくはメーカに余分なコスト増大をもたらす。また、ディスクドライブを再利用することができなくなり、総じてディスクアレイシステムの運用コストの高騰を招くという問題が生じる。また、ディスクドライブに格納されている全データを米国政府の規定で定められた方式で消去するには、全データ領域の上書きを何度も繰り返す必要があるので、データ消去に長時間を要するという問題がある。
【０００６】
そこで、本発明は、ディスクアレイシステムから抜去されたディスクドライブからの情報漏洩を簡易かつ低コストで防止することを課題とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本発明のディスクアレイシステムは、複数のディスクドライブを搭載可能なディスクアレイシステムである。このディスクアレイシステムは、ディスクアレイシステムに固有の第一のキーデータを格納するメモリと、ディスクドライブへのデータ入出力を制御するディスクコントローラと、を備える。ディスクドライブは、何れかのディスクアレイシステムに固有の第二のキーデータを格納するシステム領域、及びユーザデータを格納するデータ領域を有するディスク媒体と、システム領域及びデータ領域へのデータ入出力を制御するＨＤＤコントローラとを備える。ＨＤＤコントローラは、ディスクドライブがディスクアレイシステムに搭載されたことを契機として、第一のキーデータと第二のキーデータと比較し、両者が一致しない場合には、少なくともディスクコントローラからデータ領域へのリードアクセスを禁止する動作モードを実行する。
【０００８】
本発明の他の観点に従うディスクアレイシステムは、ホストシステムに接続され、かつ複数のディスクドライブを搭載可能なディスクアレイシステムである。このディスクアレイシステムは、ホストシステムが生成した第一の証明書データを格納するメモリと、ディスクドライブへのデータ入出力を制御するディスクコントローラと、を備える。ディスクドライブは、何れかのホストシステムが生成する第二の証明書データを格納するシステム領域、及びユーザデータを格納するデータ領域を有するディスク媒体と、システム領域及びデータ領域へのデータ入出力を制御するＨＤＤコントローラとを備える。ＨＤＤコントローラは、ディスクドライブがディスクアレイシステムに搭載されたことを契機として、第一の証明書データと第二の証明書データとを比較し、両者が一致しない場合には、少なくともディスクコントローラからディスクドライブのリードアクセスを禁止する動作モードを実行する。
【発明の効果】
【０００９】
本発明によれば、ディスクアレイシステムから抜去されたディスクドライブからの情報漏洩を簡易かつ低コストで防止することができる。
【発明を実施するための最良の形態】
【００１０】
以下、各図を参照しながら本発明の実施形態について説明する。
図１は本実施形態に係るディスクアレイシステム２００のシステム構成を示す。ディスクアレイシステム２００は、通信ネットワーク６０１を介して一つ以上のホストシステム１００に接続している。
【００１１】
ホストシステム１００は、例えば、パーソナルコンピュータ、ワークステーション、メインフレームコンピュータ等である。ホストシステム１００は、証明書発行プログラム１１０、及びアプリケーションプログラム１３０等を実装している。証明書発行プログラム１１０は、ホストシステム１００又はアプリケーションプログラム１３０を認証するための証明書データ（デジタル証明書）１２０を生成する。アプリケーションプログラム１３０は、例えば、Ｗｅｂアプリケーションソフトウェア、ストリーミングアプリケーションソフトウェア、ｅビジネスアプリケーションソフトウェア、データベースソフトウェア等である。
【００１２】
通信ネットワーク６０１としては、ＳＡＮ（Storage Area Network）、ＬＡＮ(Local Area Network)、ＷＡＮ（Wide Area Network）、インターネット、専用回線、公衆回線等を挙げることができる。ホストシステム１００がＳＡＮを介してディスクアレイシステム２００に接続する場合、ホストシステム１００は、ファイバチャネルプロトコル又はｉＳＣＳＩ（internet Small Computer System Interface）等のプロトコルにより、ブロック単位でのデータ入出力を要求する。ホストシステム１００がＬＡＮを介してディスクアレイシステム２００に接続する場合、ホストシステム１００は、ＮＦＳ（Network File System）やＣＩＦＳ（Common Interface File System）等のファイル転送プロトコルにより、ファイル名を指定してファイル単位でのデータ入出力を要求する。ディスクアレイシステム２００がホストシステム１００からのファイルアクセス要求を受け付けるためには、ディスクアレイシステム２００にＮＡＳ（Network Attached Storage）機能が搭載されている必要がある。
【００１３】
ディスクアレイシステム２００は、ＣＰＵ２１０、メモリ２２０、キャッシュメモリ２３０、ディスクコントローラ２４０、通信インターフェース２５０、管理インターフェース２６０、及びディスクドライブ３００を備える。
【００１４】
ＣＰＵ２１０は、ホストシステム１００とディスクアレイシステム２００との間のホストインターフェースを制御する。メモリ２２０は、ＣＰＵ２１０のマイクロプログラムを格納する他、ディスクドライブ３００の不正アクセスを防止するための各種テーブルやプログラム（証明書データ１２０、キーデータテーブル２２１、ユーザ設定テーブル２２２、及び暗号化プログラム２２３）を格納する。キーデータテーブル２２１、ユーザ設定テーブル２２２、及び暗号化プログラム２２３の詳細については、後述する。キャッシュメモリ２３０は、ディスクドライブ３３０に読み書きされるデータを一時的に格納する。キャッシュメモリ２３０は、電源バックアップされており、ディスクアレイシステム２００に電源障害が発生した場合でもキャッシュデータロストを防ぐ不揮発性メモリとして構成されている。ディスクコントローラ２４０は、ホストシステム１００からのデータ入出力要求に応答して、ディスクドライブ３００へのＩ／Ｏ処理（ライトアクセス、又はリードアクセス）を制御する。通信インターフェース２５０は、ホストインターフェースの通信プロトコルを制御するネットワークコンポーネントである。管理インターフェース２６０は、管理ＬＡＮ６０２の通信プロトコルを制御するネットワークコンポーネントである。
【００１５】
ディスクドライブ３００は、ＦＣ（Fibre Channel）ディスクドライブ、ＳＡＴＡ（Serial Advanced Technology Attachment）ディスクドライブ、ＰＡＴＡ（Parallel Advanced Technology Attachment）ディスクドライブ、ＦＡＴＡ（Fibre Attached Technology Adapted）ディスクドライブ、ＳＡＳ（Serial Attached SCSI）ディスクドライブ或いはＳＣＳＩ（Small Computer System Interface）ディスクドライブ等のストレージデバイスである。
【００１６】
ディスクドライブ３００は、ＨＤＤコントローラ３１０、及びディスク媒体３４０を備える。ディスク媒体３４０上には、システム領域３２０、及びデータ領域３３０が形成されている。ＨＤＤコントローラ３１０は、メモリ３１１を備えており、システム領域３２０やデータ領域３３０へのデータ入出力を制御する。メモリ３１１には、例えば、上述したユーザ設定テーブル２２２等が格納される。システム領域３２０には、キーデータ２２１ｂや上述した証明書データ１２０等が格納される。データ領域３３０には、ユーザデータ３３１が格納される。
【００１７】
管理サーバ２８０は、管理ＬＡＮ６０２を介してサービスプロセッサ（ＳＶＰ）２７０に接続されている。管理ＬＡＮ６０２は、例えば、インターネット、或いは専用線等である。管理ＬＡＮ６０２を介して行われる、管理サーバ２８０とサービスプロセッサ２７０との間の通信は、例えば、ＴＣＰ／ＩＰ等の通信プロトコルに基づいて行われる。
【００１８】
サービスプロセッサ２７０は、ディスクアレイシステム２００を管理するための管理端末である。システム管理者は、管理サーバ２８０を入力操作することにより、ディスクアレイシステム２００を管理するためのコマンドをサービスプロセッサ２７０に送信する。ディスクアレイシステム２００を管理するためのコマンドとして、例えば、ディスクドライブ３００の増設或いは減設、又はＲＡＩＤ構成の変更を指示するためのコマンド、ホストシステム１００とディスクアレイシステム２００との間の通信パスを設定するためのコマンド、ＣＰＵ２１０のマイクロプログラムをメモリ２２０にインストールするためのコマンド、ディスクアレイシステム２００の動作状態の確認や故障部位を特定するためのコマンド等がある。
【００１９】
尚、証明書発行プログラム１２０は、ホストシステム１００ではなく、管理サーバ２８０に実装されていてもよい。
【００２０】
図２はキーデータテーブル２２１のテーブル構造を示す。キーデータテーブル２２１はキーデータ２２１ａ及び暗号化キーデータ２２１ｂを保持する。キーデータ２２１ａは、ディスクアレイシステム２００に固有の識別情報である。ディスクアレイベンダは、製品出荷時にキーデータ２２１ａを設定し、キーデータテーブル２２１に格納する。キーデータ２２１ａとして、例えば、製品番号などの文字列を用いることができるが、これに限られるものではない。キーデータ２２１ａは、外部インターフェースからは、参照されないように、メモリ２２１上に格納されるのが望ましい。暗号化キーデータ２２１ｂは、暗号化プログラム２２３によってキーデータ２２１ａを暗号化することにより得られる。暗号化プログラム２２３の暗号アルゴリズムとしては、特に限定されることなく、任意の暗号アルゴリズムを適用できる。
【００２１】
図３はユーザ設定テーブル２２２のマスタデータのテーブル構造を示す。ユーザ設定テーブル２２２はセキュリティチェック処理において、不正アクセスがなされていると判定されたときに実行される動作モードに対応する値を保持する。ここでは、３つの値を例示する。値Ａは、ディスクドライブ３００をリード／ライト不可の動作モードに設定することを示す（再利用不可能なロック機能）。値Ｂは、ディスクドライブ３００をリード不可の動作モードに設定することを示す（再利用可能なロック機能）。値Ｂの設定では、ディスクドライブ３００へのライトアクセスは可能なので、再フォーマットが可能である。再フォーマットによりシステム領域３２０のキーデータ２２１ｂや証明書データ１２０も含めて、ユーザデータ３３１が消去されるので、ディスクドライブ３００の再利用が可能である。値Ｃは、ディスクドライブ３００に電源が供給されている間は、データ領域３３０内のユーザデータ３３１に「０」データ又は「１」データを強制的に上書きし、ユーザデータ３３１の読み出しを不可能にする動作モードに設定することを示す。この動作モードが実行されると、ユーザからは、ユーザデータ３３１の上書きを中止させることができない。
【００２２】
これらの値Ａ，Ｂ，Ｃは、システム管理者が管理サーバ２８０又はホストシステム１００を入力操作することによって、ディスクアレイシステム２００のメモリ２２０に格納される。即ち、システム管理者は、値Ａ，Ｂ，Ｃのうち何れかを選択することで、セキュリティチェック処理において、不正アクセスがなされていると判定されたときに実行される動作モードを指定することができる。
【００２３】
尚、セキュリティチェック処理において、不正アクセスがなされていると判定されたときに実行される動作モードとしては、ディスクドライブ３００を再利用することができ、しかも、ディスクドライブ３００からデータの読み出しをできなくする動作モードであればよく、上述の３種類の動作モードに限られるものではない。
【００２４】
ディスクドライブ３００のセキュリティチェックに使用する情報としては、暗号化キーデータ２２１ｂと証明書データ１２０の何れか一方を使用してもよく、或いは両者を併用して使用してもよい。勿論、暗号化キーデータ２２１ｂに替えて、キーデータ２２１ａを用いてもよい。暗号化キーデータ２２１ｂ又はキーデータ２２１ａは、主として、ディスクドライブ３００とディスクアレイシステム２００との関連性をチェックし、何れかのディスクアレイシステム２００に使用されたディスクドライブ３００が他のディスクアレイシステムで使用されないようにセキュリティをかけるのに対し、証明書データ１２０は、主として、ディスクドライブ３００とホストシステム１００（又はアプリケーションプログラム１３０）との関連性をチェックし、何れかのホストシステム１００（又はアプリケーションプログラム１３０）に使用されたディスクドライブ３００が他のホストシステムで使用されないようにセキュリティをかけられる点で、両者は異なる。
【００２５】
但し、セキュリティチェックに使用する情報として、証明書データ１２０を用いれば、ディスクアレイシステム２００が障害等の理由で他のシステムに交換された場合、或いはアップグレードのシステムに交換された場合でも、証明書データ１２０を新規にアップロードすれば、セキュリティチェックが可能になる点で利便性に優れている。
【００２６】
図４は暗号化キーデータ２２１ｂをディスクドライブ３００に書き込む処理ルーチンを示す。本処理ルーチンは、ディスクアレイシステム２００を初めて立ち上げるとき、又はディスクドライブ３００が初めてディスクアレイシステム２００に搭載されたときに実行される。
【００２７】
本処理ルーチンが呼び出されると、ディスクコントローラ２４０は、メモリ２２０に格納されているキーデータテーブル２２１にある暗号化キーデータ２２１ｂをディスクドライブ３００のシステム領域３２０のＸ番地に書き込む（Ｓ１０１）。
【００２８】
次に、ディスクコントローラ２４０は、メモリ２２０に格納されているユーザ設定テーブル２２２に設定されている値（値Ａ、値Ｂ、又は値Ｃのうち何れかの値）をディスクドライブ３００のメモリ３１１に格納されているユーザ設定テーブル２２２に格納する（Ｓ１０２）。
【００２９】
図５は証明書データ１２０をディスクドライブ３００に書き込む処理ルーチンを示す。ホストシステム１００の証明書発行プログラム１１０は、システム管理者の指示、又はスクリプトからの契機により、証明書データ１２０を生成する（Ｓ２０１）。
【００３０】
次に、ＣＰＵ２１０は、ホストシステム１００から受信した証明書データ１２０をメモリ２２０にデステージする（Ｓ２０２）。
【００３１】
次に、ディスクコントローラ２４０は、ディスクドライブ３００のシステム領域３２０に証明書データ１２０をデステージする（Ｓ２０３）。
【００３２】
次に、ディスクコントローラ２４０は、証明書データ１２０がデステージされたアドレスをシステム領域３２０のＸ番地に書き込む（Ｓ２０４）。このとき、システム領域３２０のＸ番地にキーデータ２２１ａ又は暗号化キーデータ２２１ｂが既に書き込まれている場合には、Ｘ番地のキーデータ２２１ａ又は暗号化キーデータ２２１ｂを削除し、証明書データ１２０が書き込まれたシステム領域３２０のアドレスをＸ番地に書き込んでもよい。もとより、システム領域３２０のＸ番地にキーデータ２２１ａ又は暗号化キーデータ２２１ｂが既に書き込まれている場合には、Ｘ番地のキーデータ２２１ａ又は暗号化キーデータ２２１ｂを削除することなく、証明書データ１２０が書き込まれたシステム領域３２０のアドレスをシステム領域３２０のＹ番地に書き込んでもよい。
【００３３】
次に、ディスクコントローラ２４０は、メモリ２２０に格納されているユーザ設定テーブル２２２に設定されている値（値Ａ、値Ｂ、又は値Ｃのうち何れかの値）をディスクドライブ３００のメモリ３１１に格納されているユーザ設定テーブル２２２に格納する（Ｓ２０５）。
【００３４】
図６乃至図７はセキュリティチェック処理ルーチンを示す。本処理ルーチンは、ディスクドライブ３００がディスクアレイシステム２００に搭載されたことを契機として、実行される。
【００３５】
ディスクドライブ３００がディスクアレイシステム２００に搭載されると、ＨＤＤコントローラ３１０は、ディスクドライブ３００の起動処理を開始する（Ｓ３０１）。
【００３６】
次に、ディスクコントローラ２４０は、ディスクアレイシステム２００のメモリ２２０に証明書データ１２０が存在するか否かをチェックする（Ｓ３０２）。
【００３７】
次に、証明書データ１２０がメモリ２２０に存在する場合には（Ｓ３０２；ＹＥＳ）、ディスクコントローラ２４０は、ホストシステム１００に存在する証明書データ１２０とディスクアレイシステム２００に存在する証明書データ１２０とが一致するか否かをチェックする（Ｓ３０３）。
【００３８】
両者が一致する場合には（Ｓ３０３；ＹＥＳ）、ディスクコントローラ２４０は、証明書データ１２０をホストシステム１００、或いはメモリ２２０からディスクドライブ３００のメモリ３１１にデステージする（Ｓ３０４）。一方、両者が一致しない場合には（Ｓ３０３；ＮＯ）、ディスクコントローラ２４０は、ディスクドライブ３００の起動を中止し、ホストシステム１００にエラーメッセージを返す（Ｓ３１８）。
【００３９】
証明書データ１２０がメモリ２２０に存在しない場合には（Ｓ３０２；ＮＯ）、ディスクコントローラ２４０は、メモリ２２０に格納されているキーデータテーブル２２１にある暗号化キーデータ２２１ｂをディスクドライブ３００のメモリ３１１にデステージする（Ｓ３０５）。
【００４０】
次に、ディスクコントローラ２４０は、上述のＳ３０２〜Ｓ３０５の処理によって、ディスクドライブ３００のメモリ３１１に証明書データ１２０又は暗号化キーデータ２２１ｂが書き込まれたか否かをチェックする（Ｓ３０６）。
【００４１】
次に、ディスクアレイシステム２００が本実施形態のセキュリティチェック機構を備えている場合には、上述のＳ３０２〜Ｓ３０５の処理によって、ディスクドライブ３００のメモリ３１１に証明書データ１２０又は暗号化キーデータ２２１ｂが書き込まれるので（Ｓ３０６；ＹＥＳ）、ディスクコントローラ２４０は、ディスクドライブ３００のシステム領域３２０のＸ番地にデータが書き込まれているか否かをチェックする（Ｓ３０７）。
【００４２】
ディスクドライブ３００のシステム領域３２０のＸ番地にデータが書き込まれていない場合には（Ｓ３０７；ＮＯ）、ディスクコントローラ２４０は、ディスクドライブ３００が初めてディスクアレイシステム２００に搭載されたものと判定して、キーデータ書き込み処理（図４）を実行する（Ｓ３０８）。
【００４３】
一方、ディスクドライブ３００のシステム領域３２０のＸ番地にデータが書き込まれている場合には（Ｓ３０７；ＹＥＳ）、ディスクコントローラ２４０は、Ｘ番地に書き込まれているデータがアドレスであるか否かをチェックする（Ｓ３０９）。
【００４４】
Ｘ番地に書き込まれているデータがアドレスでないならば（Ｓ３０９；ＮＯ）、ＨＤＤコントローラ３１０は、Ｘ番地に書き込まれているデータが暗号化キーデータ２２１ｂであると判断し、ディスクドライブ３００のメモリ３１１に書き込まれている暗号化キーデータ２２１ｂと、ディスクドライブ３００のシステム領域３２０のＸ番地に書き込まれている暗号化キーデータ２２１ｂとを比較する（Ｓ３１０）。
【００４５】
Ｘ番地に書き込まれているデータがアドレスであるならば（Ｓ３０９；ＹＥＳ）、ＨＤＤコントローラ３１０は、Ｘ番地に書き込まれているアドレスが示す位置に格納されている証明書データ１２０と、ディスクドライブ３００のメモリ３１１に書き込まれている証明書データ１２０とを比較する（Ｓ３１１）。
【００４６】
Ｓ３１０又はＳ３１１の処理で、両者が一致する場合は（Ｓ３１２；ＹＥＳ）、ＨＤＤコントローラ３１０は、通常の起動処理を続行する。
【００４７】
一方、Ｓ３１０又はＳ３１１の処理で、両者が一致しない場合（Ｓ３１２；ＮＯ）、或いは、ディスクアレイシステム２００が本実施形態のセキュリティチェック機構を備えていない場合には（Ｓ３０６；ＮＯ）、ＨＤＤコントローラ３１０は、メモリ３１１に書き込まれているユーザ設定テーブル２２２を参照し、値Ａ，値Ｂ，値Ｃのうち何れの値が設定されているかをチェックする（Ｓ３１４）。
【００４８】
メモリ３１１に書き込まれているユーザ設定テーブル２２２に値Ａが設定されている場合は、ＨＤＤコントローラ３１０は、ディスクドライブ３００のリード／ライト処理を不可に設定する（Ｓ３１５）。
【００４９】
メモリ３１１に書き込まれているユーザ設定テーブル２２２に値Ｂが設定されている場合は、ＨＤＤコントローラ３１０は、ディスクドライブ３００のリード処理を不可に設定する（Ｓ３１６）。
【００５０】
メモリ３１１に書き込まれているユーザ設定テーブル２２２に値Ｃが設定されている場合は、ＨＤＤコントローラ３１０は、ディスクドライブ３００のデータ領域３３０に「０」データ又は「１」データを強制的に上書し、ユーザデータ３３１の読み出しを不可能にする（Ｓ３１７）。
【００５１】
図８はディスクドライブ３００、ＲＡＩＤグループ４０１〜４０３、及び論理ユニット５０１〜５０６の関係を示す。ＲＡＩＤグループ４０１〜４０３は、例えば、４つのディスクドライブ３００を一組としてグループ化することにより（３Ｄ＋１Ｐ）、或いは８つのディスクドライブ３００を一組としてグループ化することにより（７Ｄ＋１Ｐ）、定義される。即ち、複数のディスクドライブ３００のそれぞれが提供する記憶領域が集合して一つのＲＡＩＤグループが定義される。各論理ユニット５０１〜５０６は、各ＲＡＩＤグループ４０１〜４０３上に少なくとも一つ以上定義することができる。各ＲＡＩＤグループ４０１〜４０３は、同一サブシステム上に存在する場合もあり、異なるディスクアレイ間に存在する場合もある。
【００５２】
各論理ユニット５０１〜５０６は、ホストシステム１００が認識する論理的な記憶単位である。例えば、ホストシステム１００がＵＮＩＸ（登録商標）系のシステムである場合には、各論理ユニット５０１〜５０６は、デバイスファイル（Device File）に対応付けられる。或いは、ホストシステム１００がＷｉｎｄｏｗｓ（登録商標）系のシステムである場合には、各論理ユニット５０１〜５０６は、ドライブレター（ドライブ名）に対応付けられる。各論理ユニット５０１〜５０６には、固有のＬＵＮ（Logical Unit Number）がアサインされる。ホストシステム１００は、ＬＵＮや論理ブロックアドレスを指定することにより、所望の論理ユニットにアクセスする。
【００５３】
上述の説明では、上述したセキュリティチェック処理で不正アクセスが判定されたときに実行される動作モードをディスクドライブ３００毎に設定する例を示したが、当該動作モードは、ある一つのＲＡＩＤグループに属する全てのディスクドライブ３００に共通のものとして設定してもよい。例えば、ＲＡＩＤグループ４０１に属する全てのディスクドライブ３００の動作モードに対応する値として、Ａ値を設定し、ＲＡＩＤグループ４０２に属する全てのディスクドライブ３００の動作モードに対応する値として、Ｂ値を設定し、ＲＡＩＤグループ４０３に属する全てのディスクドライブ３００の動作モードに対応する値として、Ｃ値を設定する、という具合である。
【００５４】
また、ホストシステム１００が複数のアプリケーションプログラム１３０−１〜１３０−３を実装している場合に、各アプリケーションプログラム１３０−１〜１３０−３が使用する論理ユニットが定義されているＲＡＩＤグループ毎に当該動作モードを設定してもよい。例えば、アプリケーションプログラム１３０−１が使用する論理ユニット５０１が定義されているＲＡＩＤグループ４０１に属する全てのディスクドライブ３００の動作モードに対応する値として、Ａ値を設定し、アプリケーションプログラム１３０−２が使用する論理ユニット５０３が定義されているＲＡＩＤグループ４０２に属する全てのディスクドライブ３００の動作モードに対応する値として、Ｂ値を設定し、アプリケーションプログラム１３０−３が使用する論理ユニット５０６が定義されているＲＡＩＤグループ４０３に属する全てのディスクドライブ３００の動作モードに対応する値として、Ｃ値を設定する、という具合である。
【００５５】
図９はＲＡＩＤグループ管理テーブル２２４を示す。装置番号は、ディスクアレイシステム２００を識別するための番号である。ＲＡＩＤグループ番号は、ＲＡＩＤグループを識別するための番号である。ＬＵ番号は、論理ユニットを識別するための番号である。ホスト識別子は、ホストシステム１００を識別するための識別情報である。アプリ識別子は、アプリケーションプログラム１３０を識別するための識別情報である。値は、Ａ値、Ｂ値、又はＣ値を示す。ＲＡＩＤグループ管理テーブル２２４は、システム内のストレージ、ホスト、及びホスト上のアプリケーションと連携したホスト又は管理サーバ２８０により管理されている。ＨＤＤコントローラ３１０上のメモリ３１１へのユーザ設定テーブル２２２への入力情報としてＲＡＩＤグループ管理テーブル２２４を用いることで、ディスクドライブ単位だけでなく、ＲＡＩＤグループ単位、ＬＵ単位、ホストシステム単位、アプリケーションプログラム単位で動作モードを設定することができる。例えば、ＨＤＤコントローラ３１０は、同一のＲＡＩＤグループに属する全てのディスクドライブ３００の動作モードを共通に設定できる他、各論理ユニットを使用するホストシステム１００又はアプリケーションプログラム１３０毎に、ＲＡＩＤグループ単位で異なる動作モードを設定することもできる。
【００５６】
図１０はユーザがＲＡＩＤグループ管理テーブル２２４を設定するための設定画面を示す。この設定画面は、管理サーバ２８０のディスプレイに表示される。
【００５７】
ＬＵ毎に動作モードを設定し、複数の論理ユニット間でデータマイグレーション又はデータコピーを実行する場合の関係を示す。例えば、図８において、論理ユニット５０１に設定された動作モードがＡ値であり、ＲＡＩＤグループ４０２の論理ユニットに設定された動作モードがＢ値である場合を考える。論理ユニット５０１のデータを論理ユニット５０３にデータマイグレーションすると、論理ユニット５０１内のデータに設定された動作モードは、Ａ値からＢ値に変更される。運用例としては、セキュリティレベルの変更に伴い、ＬＵに設定された動作モードを変更する場合など（例えば、データロストの危険性がある動作モード「値Ｃ」からデータ保存性が保証されている動作モード「値Ａ」への変更）が考えられる。例えば、ユーザにとっての業務データの重要度や、時間とともに変化するデータの重要性に応じてデータの格納先を変える、データライフサイクル管理という手法がある。重要度の高いデータを、高信頼・高性能・高コストな構成（例えばＲＡＩＤ１０（４Ｄ＋４Ｐ）、ファイバチャネルディスクドライブ使用）に格納していて、セキュリティ要件も高いため動作モードを「値Ｃ」に設定していたとする。このデータの重要度がユーザ都合により変化し、データを低コストな構成（ＲＡＩＤ５（４Ｄ＋１Ｐ）、ＳＡＴＡディスクドライブ使用）にアーカイブデータとして保管する場合、データの保護のみを行う「値Ａ」に設定した低コスト構成のドライブにデータマイグレーションする場合などが考えられる。複数の論理ユニット間でデータコピーを実行することで、動作モードを変更することもある。データコピーの場合には、片方のボリュームがマスタデータであり、もう片方のボリュームがバックアップデータであることが考えられる。この場合、最もデータセキュリティ効果の高い「値Ｃ」の設定では、人的なオペレーションミスによりデータロストを招く可能性があるため、マスタデータのＬＵは、「値Ａ」や「値Ｂ」に設定するのが運用上望ましい。
【００５８】
尚、データマイグレーションを用いた動作モードの変更では、移動先ＬＵのＬＵ番号と移動元ＬＵのＬＵ番号との入れ替えが行われるため、ホストシステム１００は、複数の論理ユニット間のデータ移動を認識しない。故に、ホストシステム１００は、論理ユニットにアクセスする際に、論理ユニットの切り替え操作を行う必要がない。一方、データコピーを用いた動作モードの変更では、移動先ＬＵのＬＵ番号と移動元ＬＵのＬＵ番号との入れ替えは行われないため、ホストシステム１００は、複数の論理ユニット間のデータ移動を認識する。故に、ホストシステム１００は、論理ユニットにアクセスする際に、論理ユニットの切り替え操作が必要になる。
【００５９】
図１１はディスクアレイシステム２００に他のディスクアレイシステム８００が外部接続された概要を示すシステム構成図である。同図において、図１に示した符号と同一符号のデバイス等は同一のデバイス等を示すものとして、その詳細な説明を省略する。ディスクアレイシステム２００には、通信ネットワーク６０２を介して他のディスクアレイシステム８００が外部接続されている。
【００６０】
ディスクアレイシステム８００は、ＣＰＵ８１０、メモリ８２０、キャッシュメモリ８３０、ディスクコントローラ８４０、通信インターフェース８５０、管理インターフェース８６０、及びディスクドライブ９００を備える。
【００６１】
メモリ８２０は、ＣＰＵ８１０のマイクロプログラムを格納する他、ディスクドライブ９００の不正アクセスを防止するための各種テーブルやプログラム（証明書データ１２０、キーデータテーブル８２１、ユーザ設定テーブル８２２、及び暗号化プログラム８２３）を格納する。キーデータテーブル８２１は、後述するキーデータ８２１ｂを格納する。キーデータ８２１ｂは、ディスクアレイシステム８００に固有の識別情報又はこれを暗号化した情報である。
【００６２】
ディスクドライブ９００は、ＨＤＤコントローラ９１０、及びディスク媒体９４０を備える。ディスク媒体９４０上には、システム領域９２０、及びデータ領域９３０が形成されている。ＨＤＤコントローラ９１０は、メモリ９１１を備えており、システム領域９２０やデータ領域９３０へのデータ入出力を制御する。メモリ９１１には、例えば、上述したユーザ設定テーブル８２２等が格納される。システム領域９２０には、キーデータ８２１ｂや上述した証明書データ１２０等が格納される。データ領域９３０には、ユーザデータ９３１が格納される。
【００６３】
ディスクアレイシステム２００は、仮想デバイス７００を備えている。仮想デバイス７００は、実記憶領域を有しない仮想的な存在であり、データを記憶する実体は、ディスクアレイシステム８００のディスクドライブ９００に存在する。即ち、ディスクアレイシステム２００が有する記憶階層に、ディスクアレイシステム８００の有するディスクドライブ９００がマッピングされることにより、仮想デバイス７００が構築されている。マッピングとは、各デバイスのアドレス空間を対応付けることをいう。対応付けられるデバイスは、実デバイスでもよく、或いは仮想デバイスでもよい。ディスクアレイシステム２００は、ディスクドライブ９００を自己の内部デバイスとして取り込み、これを論理ユニットとして、ホストシステム１００に提供する。ディスクアレイシステム２００の外部に存在するディスクドライブ９００をディスクアレイシステム２００の内部に存在する仮想デバイス７００にマッピングする技術は、特開２００５−１０７６４５号公報に開示されている。
【００６４】
ディスクアレイシステム８００におけるセキュリティチェック処理は、ディスクアレイシステム２００におけるセキュリティチェック処理と同様である。但し、ディスクアレイシステム８００におけるセキュリティチェック処理に用いられる証明書データ１２０は、ホストシステム１００からディスクアレイシステム２００を経由して、ディスクアレイシステム８００に提供される。
【００６５】
尚、上述の外部接続技術を用いれば、ディスクアレイシステム２００に搭載されているディスクドライブ３００からディスクアレイシステム８００に搭載されているディスクドライブ９００へ、キーデータ２２１ｂ又は証明書データ１２０を除いて、ユーザデータ３３１のみをコピーすることができる。ホストシステム１００又は管理サーバ２８０からの指令により、かかるコピーを実行する場合には、ユーザデータ３３１のみのコピーが可能になる旨の警告をシステム管理者に報知するのが好ましい。
【００６６】
また、ディスクアレイシステム２００に搭載される複数のディスクドライブ３００のうち何れか一部をデータディスクとして、他の一部をスペアディスクとして運用することができる。例えば、データディスクの障害発生時に当該データディスクからスペアディスクにコレクションコピーを行い、或いはデータディスクのエラー率が所定の閾値を越えたときに、当該データディスクからスペアディスクにダイナミックスペアリングを行うこともできる。但し、コレクションコピーやダイナミックスペアリングを行う際には、データディスクからスペアディスクにキーデータ２２１ｂ又は証明書データ１２０をコピーする必要はない。その理由は、スペアディスクが初めてディスクアレイシステム２００に搭載されたときに、キーデータ２２１ｂ又は証明書データ１２０がスペアディスクに書き込まれるからである。同様に、同一筺体内であるデータディスクから他のデータディスクにコピーする場合も、キーデータ２２１ｂ又は証明書データ１２０をコピーする必要はない。
【００６７】
また、ディスク媒体３４０のシステム領域３２０のＸ番地に不正アクセスがあったときに、Ａ値、Ｂ値、又はＣ値に対応する動作モードを実行してもよい。
【図面の簡単な説明】
【００６８】
【図１】本実施形態に係るディスクアレイシステムのシステム構成図である。
【図２】本実施形態に係るキーデータテーブルの説明図である。
【図３】本実施形態に係るユーザ設定テーブルの説明図である。
【図４】キーデータの書き込み処理ルーチンを示すフローチャートである。
【図５】証明書データの書き込み処理ルーチンを示すフローチャートである。
【図６】セキュリティチェック処理ルーチン示すフローチャートである。
【図７】セキュリティチェック処理ルーチン示すフローチャートである。
【図８】ディスクドライブ、ＲＡＩＤグループ、及び論理ユニットの関係を示す説明図である。
【図９】本実施形態に係るＲＡＩＤグループ管理テーブルの説明図である。
【図１０】動作モードの設定画面を示す図である。
【図１１】ディスクアレイシステムの外部接続の概要を示すためのシステム構成図である。
【符号の説明】
【００６９】
１００…ホストシステム  １２０…証明書データ  ２００…ディスクアレイシステム  ２２０…メモリ  ２２１…キーデータテーブル  ２２２…ユーザ設定テーブル  ３００…ディスクドライブ  ３１０…ＨＤＤコントローラ  ３１１…メモリ  ３２０…システム領域  ３３０…データ領域
【図１】
0004832862.tif 000002
【図２】
0004832862.tif 000003
【図３】
0004832862.tif 000004
【図４】
0004832862.tif 000005
【図５】
0004832862.tif 000006
【図６】
0004832862.tif 000007
【図７】
0004832862.tif 000008
【図８】
0004832862.tif 000009
【図９】
0004832862.tif 000010
【図１０】
0004832862.tif 000011
【図１１】
0004832862.tif 000012