データ記憶装置
【課題】記憶要素に、データのセキュリティを行う起動前認証アプリケーションを格納したデータ記憶装置において、認証アプリケーションを更新中に、破壊されても、起動前認証を可能とする。
【解決手段】制御部(11)が、起動時に、データ記憶装置(10)に対してホスト(1)が発行するコマンドシークエンスから、データ記憶装置(10)が、タイムアウト監視を行う接続形態か、タイムアウト監視を行わない接続形態を判定する。外付け接続である場合は、起動時に、冗長化された起動前認証アプリケーション(54−0,54−1)の同期処理を行い、内蔵接続である場合は、起動時に同期処理を行わず、起動後に最初に発行されるリード/ライト命令の際に、リード/ライト実行前に、同期処理を行う。起動前認証アプリケーションを多重化し、且つ更新しても、ホストのタイムアウトを防止して、同期処理できる。
【解決手段】制御部(11)が、起動時に、データ記憶装置(10)に対してホスト(1)が発行するコマンドシークエンスから、データ記憶装置(10)が、タイムアウト監視を行う接続形態か、タイムアウト監視を行わない接続形態を判定する。外付け接続である場合は、起動時に、冗長化された起動前認証アプリケーション(54−0,54−1)の同期処理を行い、内蔵接続である場合は、起動時に同期処理を行わず、起動後に最初に発行されるリード/ライト命令の際に、リード/ライト実行前に、同期処理を行う。起動前認証アプリケーションを多重化し、且つ更新しても、ホストのタイムアウトを防止して、同期処理できる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記憶媒体のデータのセキュリティ機能を備えたデータ記憶装置に関する。
【背景技術】
【0002】
近年の情報処理技術の発展により、業務上の様々なユーザーデータが、データ記憶装置に記憶されている。データ記憶装置内のユーザーデータの重要性に鑑み、秘密情報の保護や、情報漏洩の回避という観点から、近年、セキュリティ機能を有するデータ記憶装置の要求が高まっている。
【0003】
データ記憶装置のセキュリティ機能としては、例えば、起動前認証(PBA:Pre Boot Authentication Application)が、提案されている(例えば、特許文献1参照)。
【0004】
OS起動前のPBA機能付きデータ記憶装置では、OS(Operating System)起動前に、データ記憶装置内に格納されているPBAアプリケーションが起動し、パスワード等により、ユーザー認証を行う。認証に成功すると、マスター・ブート・レコーダ(MBR)がブート動作を行い、OS(Operating System)が起動する。これにより、コンピュータは、OSの制御の元に、アプリケーションを実行して、データ記憶装置のユーザーデータのアクセスが可能となる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−268861号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
データ記憶装置に格納されているPBAアプリケーションは、バックアップ時やセキュリティパッチ適用時などに更新される。この更新中に電源遮断等が生じると、PBAアプリケーションが壊れる可能性がある。PBAアプリケーションが、データ記憶装置内に、1つしかない状態で破壊されると、CD等のリカバリディスク等により、PBAアプリケーションを復旧しなければ、PBAアプリケーションやOSを起動することができなくなる。
【0007】
前記問題を解決するためには、PBAアプリケーションをデータ記憶装置内で多重化し、破壊後最初の電源起動時にデータ記憶装置内で同期処理を行うことが考えられる。この場合、通常、PC(パーソナルコンピュータ)のBIOSは、起動時にデータ記憶装置の認識処理を行う。
【0008】
このデータ記憶装置内での同期処理に時間がかかる場合は、認識処理でタイムアウトが発生し、データ記憶装置を認識できない場合がある。
【0009】
従って、本発明の目的は、BIOSによるデータ記憶装置の認識処理でのタイムアウト検出を回避して、起動前認証アプリケーションの同期処理を実行するためのデータ記憶装置を提供することにある。
【課題を解決するための手段】
【0010】
この目的の達成のため、データ記憶装置は、ユーザーデータを格納するためのユーザーデータ格納領域と、前記ユーザーデータへのアクセスを認証するための起動前認証アプリケーションを格納する領域とを有する記憶要素と、ホストに接続され、前記起動前認証アプリケーションによる認証が成功した場合に、前記ユーザーデータ領域へのリード/ライトアクセスを実行する制御部とを有し、前記記憶要素に、前記起動前認証アプリケーションを多重化して格納し、且つ前記制御部は、起動時にホストから発行されるコマンドシークエンスによって、前記ホストと、前記ホストのタイムアウト監視がある形態で接続されているか、前記ホストのタイムアウト監視がない形態で接続されているかを判定し、前記タイムアウト監視がある形態で接続されていると判定した場合、起動後に最初に発行される起動前認証アプリケーションに対するリード又はライト命令を受けた時、リード又はライト命令の実行前に、同期処理を実行し、前記タイムアウト監視がない形態で接続されていると判定した場合、多重化された前記起動前認証アプリケーションのミラーリング同期処理を、起動時に実行する。
【発明の効果】
【0011】
起動時に、データ記憶装置に対してホストが発行するコマンドシークエンスから、データ記憶装置の接続形態が、タイムアウト監視のある接続形態か、タイムアウト監視のない接続形態であるかを判定し、外付け接続である場合は、起動時に、冗長化された起動前認証アプリケーションの同期処理を行い、内蔵接続である場合は、起動時に同期処理を行わず、起動後に最初に発行される起動前認証アプリケーションのリード/ライト命令の際に、リード/ライト実行前に、同期処理を行うため、起動前認証アプリケーションを多重化し、且つ更新しても、ホストのタイムアウトを防止して、同期処理できる。
【図面の簡単な説明】
【0012】
【図1】本発明のデータ記憶装置の一実施の形態の構成図である。
【図2】本発明のデータ記憶装置を、内蔵したシステム構成図である。
【図3】本発明のデータ記憶装置を、外付けしたシステム構成図である。
【図4】本発明の一実施の形態の起動前認証アプリケーションの多重化の説明図である。
【図5】図4の多重化した起動前認証アプリケーションの同期処理のためのフラグの説明図である。
【図6】本発明の一実施の形態の起動前認証アプリケーションの更新処理フロー図である。
【図7】本発明の一実施の形態の起動前認証アプリケーションの更新確定処理フロー図である。
【図8】本発明の一実施の形態の起動前認証アプリケーションの更新取り消し処理フロー図である。
【図9】本発明の一実施の形態の起動時の同期処理の判定処理フロー図である。
【図10】図9の起動時の同期処理フロー図である。
【図11】図9の起動時のバックグラウンドにおける同期処理フロー図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態を、セキュリティ機能を有するデータ記憶装置、起動前認証アプリケーション、起動前認証アプリケーションの電源オン時の同期処理、他の実施の形態の順で説明する。
【0014】
(セキュリティ機能を有するデータ記憶装置)
図1は、本発明のデータ記憶装置の一実施の形態の構成図、図2は、図1のデータ記憶装置を内蔵型に使用したシステム構成図、図3は、図1のデータ記憶装置を外付けで使用したシステム構成図である。図1は、データ記憶装置として、磁気ディスクにデータをリード/ライトする磁気ディスク装置(以下、HDDという)を例に示す。
【0015】
図1に示すように、磁気ディスク装置10は、パーソナルコンピュータ等のホストとSATA(Serial AT Attachment)やUSB(Universal Serial Bus)規格等のインターフェイスで接続される。磁気ディスク装置10は、ディスクエンクロージャと、制御ボードとを有する。
【0016】
ディスクエンクロージャには、磁気ディスク19と、磁気ディスク19を回転するスピンドルモータ20と、磁気ディスク19にデータをリード/ライトする磁気ヘッド25と、磁気ヘッド25を磁気ディスク19の半径方向(トラック横断方向)に移動するアクチュエータ(VCM)22と、ヘッドIC18とを備える。
【0017】
制御ボードは、HDC(Hard Disk Controller)26を有する。HDC26は、ホストとのインターフェイス制御を行うホストインターフェイス制御回路12と、データバッファ14を制御するデータバッファ制御回路15と、リード/ライト制御を行うとともに、記録データのフォーマット変換し、リードデータの逆フォーマット変換を行うフォーマット回路16とを有する。このフォーマット回路16に、データの暗号化及び復号化を行う暗号回路29を設ける。
【0018】
又、制御ボードは、リードチャネル回路24と、MPU11と、メモリ(揮発性メモリ(RAM)と、不揮発性メモリ)13と、スピンドルモータ20を駆動制御するSPMドライバ21と、VCM22を駆動制御するVCM駆動制御23と、これらを接続するバス17とを備える。
【0019】
ホストインターフェイス制御回路12と、データバッファ制御回路15と、フォーマット回路16と、ヘッドIC18とは、データバスで接続されている。又、リードチャネル回路24は、ヘッドIC18と接続される。
【0020】
リードチャネル回路24は、リードデータの復調を行うとともに、リードゲート、ライトゲート、リードクロック、ライトクロックの生成を行う。データバッファ14は、キャッシュメモリの役目を果たし、ホストからのライトデータを保存し、磁気ディスク19からのリードデータを保存する。そして、ライトバック時には、データバッファ14のライトデータを、磁気ディスクにライトし、リード時には、データバッファ14のリードデータを、ホストへ転送する。
【0021】
ヘッドIC18は、ライト時は、ライトデータに従い、磁気ヘッド25に記録電流を流し、リード時は、磁気ヘッド25からの読取信号を増幅して、リードチャネル回路24に出力する。MPU(Micro Processor)11は、磁気ヘッド25の位置検出及び位置制御、ホストからのコマンド解析、アクセス処理や、リトライ制御を行う。
【0022】
メモリ(RAMとROM)13は、MPU11の処理に必要なデータを格納する。ここでは、図5で説明する同期処理用フラグテーブル13−1も格納する。又、メモリ(ROM)13は、MPU11の処理に必要なプログラムやパラメータを格納する。
【0023】
MPU11は、磁気ヘッド25が読み取った磁気ディスク19のサーボ信号を、ヘッドIC18、リードチャネル回路24から受け、ヘッドの位置を検出し、VCM駆動制御部23を介し、VCM22をシーク、オントラック制御する。
【0024】
図2は、パーソナルコンピュータ等のデータ処理装置に、データ記憶装置が内蔵された場合のシステム構成図である。パーソナルコンピュータのホスト1は、CPU2、メモリコントローラ3、ROM(リードオンリーメモリ)4、RAM(ランダムアクセスメモリ)6、IOコントローラ7を有する。これらは、内部バス8で接続される。
【0025】
又、ROM4には、BIOS(Basic Input/Output System)5が格納されており、IOコントローラ7には、2つのインターフェイス回路9−1,9−2が接続されている。ここでは、SATAインターフェイス回路9−1に、内蔵型磁気ディスク装置10が接続される。又、他のインターフェイス回路9−2は、USBインターフェイス回路であり、パーソナルコンピュータの外部の機器に接続される。
【0026】
一方、内蔵型の磁気ディスク装置(以下、HDDと称す)10には、磁気ディスク19のユーザー領域52に、MBR(マスターブートレコーダ)40と、ユーザーデータ42と、パーソナルコンピュータのOS44とが格納されている。これらは、暗号化されている。又、磁気ディスク19のシステム領域50には、セキュリティアプリケーションとして、起動前認証アプリケーション(以下、PBA:Pre Boot Authentication Applicationという)54が、格納されている。
【0027】
図3は、パーソナルコンピュータ等のデータ処理装置に、データ記憶装置が外付けされた場合のシステム構成図である。図3において、図2と同様に、パーソナルコンピュータのホスト1は、CPU2、メモリコントローラ3、ROM(リードオンリーメモリ)4、RAM(ランダムアクセスメモリ)6、IOコントローラ7を有する。これらは、内部バス8で接続される。
【0028】
又、ROM4には、BIOS(Basic Input/Output System)5が格納されており、IOコントローラ7には、2つのインターフェイス回路9−1,9−2が接続されている。ここでは、SATAインターフェイス回路9−1に、内蔵型HDD10が接続される。又、他のインターフェイス回路9−2は、USBインターフェイス回路であり、パーソナルコンピュータの外部のHDD10−1に接続される。
【0029】
この内蔵型の磁気ディスク装置(以下、HDDと称す)10は、OS44を格納したシステムデイスクを構成し、磁気ディスク19のユーザー領域52に、MBR(マスターブートレコーダ)40と、ユーザーデータ42と、パーソナルコンピュータのOS44とが格納されている。これらは、暗号化されている。尚、図3の内蔵型データ記憶装置10でも、PBAアプリケーションを格納しても良い。
【0030】
又、外付けされたHDD10−1の磁気ディスク19のユーザー領域52には、ユーザーデータ56が暗号化されて格納される。そして、HDD10−1の磁気ディスク19のシステム領域50には、セキュリティアプリケーションとして、起動前認証アプリケーション(以下、PBAという)54が、格納されている。この外付け接続されたHDD10−1に格納されるPBAアプリケーション54は、OSやOS上で動作するアプリケーションから呼ばれる。PBAアプリケーション54による認証が通ると、暗号化データ56のリード/ライトが可能となる。
【0031】
このように、内蔵型HDD10では、磁気ディスク19内に、PBAアプリケーション54を格納し、OS起動前の認証に使用する。一方、外付け形HDD10−1を設けた場合には、内蔵型HDD10と併用し、内蔵型HDD10に、MBR40と、ユーザーデータ42と、OS44を格納し、外付け形HDD10−1に、PBAアプリケーション54を格納し、OSやOS上で動作するアプリケーションから呼ばれる。
【0032】
又、認証により、アクセスが可能となることは、暗号回路29もアクテイブとなり、暗号化データのリード/ライトが可能となる。
【0033】
(起動前認証アプリケーション)
図4は、本発明の起動前認証アプリケーションの説明図、図5は、起動前認証アプリケーションの同期処理の説明図である。
【0034】
図4に示すように、磁気ディスク19のシステム領域50に設けられた起動前認証アプリケーション54は、多重化して、設けられる。図4では、2つのPBAアプリケーション54−0,PBAR54−1を設け、2重化したものである。即ち、データ記憶装置内に、PBAアプリケーションを複数用意し、ミラーリングして、一方のPBAアプリケーションの障害発生時、他のPBAアプリケーションでリカバリーする。
【0035】
又、ミラーリングすると、PBAアプリケーション間の同期処理が必要となる。起動前認証機能を有するPBAアプリケーションのサイズは、数十メガバイトから数百メガバイトである。このように、非常に大容量であるため、PBAアプリケーションの同期処理には、数秒から数十秒要する。例えば、データ記憶装置の電源オン時に、同期処理が実行されると、BIOSによるデータ記憶装置の認識処理で、タイムアウトが検出され、起動に失敗する可能性がある。
【0036】
この起動処理のタイムアウトを防止するため、図9以下で説明するように、起動時に、データ記憶装置に対してホストが発行するコマンドシークエンスから、データ記憶装置が、タイムアウト監視を行う接続形態(例えば、内蔵接続時など)か、タイムアウト監視を行わない接続形態(USB等のインターフェイスを介した外付け接続など)を判定する。
【0037】
そして、外付け接続である場合は、タイムアウトは問題にならないので、起動時に、PBAアプリケーションの同期処理を行う。内蔵接続である場合は、ホストのタイムアウトを確実に回避するために、起動時に同期処理を行わない。その代わりに、起動後に最初に発行されるPBAアプリケーションに対するリード/ライト命令の際に、リード/ライト実行前に、PBAアプリケーションの同期処理を行う。
【0038】
また、同期処理の高速化手段として、差分処理とバックグランドでの同期を行う。図4に示すように、このPBAアプリケーション0,1は、複数の小領域(ページ)Page0〜127に分割されている。例えば、各PBAアプリケーション0,1を、128MByteの容量を持つとすると、1MByteの小領域(ページ)に分割する。
【0039】
通常の同期処理には、CommitとAbortの2種類ある。ホストからPBAアプリケーションに対するライト命令があると、PBAアプリケーション54−0が更新される。その後、ホストがPBAアプリケーションの更新を確定したいときは、Commit命令を発行する。磁気ディスク装置は、Commit命令が発行されると、PBAアプリケーション54−0からPBAアプリケーション54−1へコピーする。
【0040】
なんらかの理由により、ホストがPBAアプリケーションの更新を取り消したいときは、Abort命令を発行する。磁気ディスク装置は、Abort命令が発行されると、PBAアプリケーション54−1からPBAアプリケーション54−0にコピーし、PBAアプリケーション54−0を元の状態に戻す。
【0041】
この同期処理を制御するためのフラグを、図5で説明する。図5に示すように、磁気ディスク装置10の媒体19とローカルメモリ13には、Page Flag62とCommit Flag60という2種類のフラグテーブル13−1を用意する(図1参照)。
【0042】
Page Flag62は、ページ毎に用意し、ホストからi番目のページに対してライト命令がくると、Page Flag[i]は、「1」となる。Page Flag62は、同期処理が完了すると、「0」になる。Commit Flag60は、Commit中であるかどうかを示すフラグであり、ホストからCommit命令がきたときに、「1」になる。そして、Commit終了後に、「0」になる。
【0043】
このようなフラグテーブルを利用して、以下のように、ミラーリングのための通常の同期処理を行う。
【0044】
図6は、HDDのMPU11が実行するPBAアプリケーションの更新処理フロー図である。
【0045】
(S10)MPU11は、メモリ13のi番目のページのページフラグ[i]が、「1」であるかを判定する。尚、ホストからi番目のページのライト命令(更新命令)を受けると、i番目のページのページフラグ[i]を、「1」にセットする。MPU11は、メモリ13のi番目のページのページフラグ[i]が、「1」であると判定すると、ステップS14に進む。
【0046】
(S12)MPU11は、メモリ13のi番目のページのページフラグ[i]が、「1」でないと判定すると、メモリ13のページフラグ[i]を、「1」にセットし、磁気ディスク19上のページフラグ[i]を「1」にセットする。
【0047】
(S14)MPU11は、磁気ディスク19のPBAアプリケーションのi番目のページ[i]を、ホストからのライトデータ(更新データ)で更新する。
【0048】
図7及び図8は、HDDのMPU11が実行するホストコマンドによる同期処理フロー図であり、図7は、前述のコミットコマンドの処理フロー図、図8は、前述のアボートコマンドの処理フロー図である。先ず、図7により、コミット処理を説明する。
【0049】
(S20)MPU11は、コミットコマンドを受信すると、メモリ13のコミットフラグを、「1」にセットし、磁気ディスク19上のコミットフラグを、「1」にセットする。
【0050】
(S22) MPU11は、ページフラグが、「1」のページを全て、磁気ディスク19のPBAアプリケーション54−0からPBAアプリケーション54−1に、コピーする。
【0051】
(S24)MPU11は、コピー終了後、メモリ13のコミットフラグを、「0」にセットし、磁気ディスク19上のコミットフラグを、「0」にセットする。
【0052】
次に、図8により、アボート処理を説明する。
【0053】
(S30)MPU11は、アボートコマンドを受信すると、ページフラグが、「1」のページを全て、磁気ディスク19のPBAアプリケーション54−1からPBAアプリケーション54−0に、コピーし、元に戻す。
【0054】
(S32)MPU11は、コピー終了後、メモリ13のページフラグを、「0」にセットし、磁気ディスク19上のページフラグを、「0」にセットする。
【0055】
このように、ページフラグとコミットフラグにより、コミット、アボートという同期処理を効率良く実行できる。又、後述する起動時の同期処理の高速化を実行するのに有用である。
【0056】
(起動前認証アプリケーションの起動時の同期処理)
図9は、本発明の一実施の形態の起動時の同期処理の判定処理フロー図である。
【0057】
(S40)HDD10のMPU11は、起動時(パワーオン時)に、ホスト1が発行するコマンドシークエンスを受信する。ホスト1は、接続されたポート(図2、図3では、インタフェース回路)に応じて、内蔵接続であれば、一定時間内に、ATA Security Feature Set Coomandを発行する。又は、PIO(ポートI/O)転送で、リード/ライトコマンドを発行する。又、外付け接続であれば、OSから、例えば、DMAのリード/ライトコマンドを発行する。
【0058】
(S42)MPU11は、このコマンドシーケンスが、内蔵接続へのコマンドシーケンスか、それ以外かを判定する。
【0059】
(S44)MPU11は、コマンドシーケンスが、内蔵接続のコマンドシーケンスと判定すると、データ記憶装置10が、タイムアウト監視を行う接続形態(例えば、OS起動に使用する内蔵接続時)と判定し、起動時には、同期処理を行わない。その代わりに、データ記憶装置10が起動してから最初に発行されるPBAアプリケーションへのリード/ライト命令の際に、このリード/ライト命令の実行前に、図10に示す同期処理を行い、ミラーリングを復旧する。
【0060】
(S46)MPU11は、コマンドシーケンスが、外付け接続のコマンドシーケンスと判定すると、タイムアウト監視を行わない接続形態(USB等のインターフェイスを介した外付け接続)であると判定する。このUSB接続などの外付け接続の判定であるため、ホストのタイムアウトが問題にならない。このため、データ記憶装置10は、起動時に、図10に示すPBAアプリケーションの同期処理を行い、ミラーリングの復旧を行う。
【0061】
図10は、図9の同期処理の処理フロー図である。
【0062】
(S50)MPU11は、磁気ディスク19のシステム領域から、コミットフラグ64、ページフラグ66を、メモリ13に読み込む。前述の図5で説明したように、磁気ディスク19に、メモリ13のコミットフラグ64、ページフラグ66を格納しているため、更新中の電源遮断等が生じても、それまでの更新状態を再現できる。
【0063】
(S52)MPU11は、ページフラグ66から、ページフラグが、「1」のページが存在するかを判定する。MPU11は、ページフラグが、「1」のページが存在しないと判定すると、電源再開前に、コミット、アボート処理されていないページが存在しないと判定し、この電源再開時の同期処理を終了する。
【0064】
(S54)一方、MPU11は、ページフラグが、「1」のページが存在すると判定すると、コミットフラグが「1」であるかを判定する。コミットフラグが「1」であれば、ミラーリングの更新の確定が済んでいないため、図7のホストからのコミットコマンドによる処理を、ホストコマンドを受けずに実行する。即ち、図7のS22のように、 MPU11は、ページフラグが、「1」のページを全て、磁気ディスク19のPBAアプリケーション54−0からPBAアプリケーション54−1に、コピーする。そして、S24のように、MPU11は、コピー終了後、メモリ13のコミットフラグを、「0」にセットし、磁気ディスク19上のコミットフラグを、「0」にセットする。
【0065】
逆に、コミットフラグが「1」でないと判定すると、ミラーリングの更新の取り消しが済んでいないため、図8のホストからのアボートコマンドによる処理S30〜S32を、ホストコマンドを受けずに実行する。
【0066】
このようにして、起動時に、データ記憶装置に対してホストが発行するコマンドシークエンスから、タイムアウト監視を行う接続形態か、タイムアウト監視を行わない接続形態を判定し、外付け接続である場合は、タイムアウトは問題にならないので、起動時にPBAアプリケーションの同期処理を行う。又、内蔵接続である場合は、ホストの起動処理タイムアウトを確実に回避するために、起動時に同期処理を行わない。その代わりに、起動後に最初に発行されるPBAアプリケーションに対するリード/ライト命令の際に、リード/ライト実行前に、PBAアプリケーションの同期処理を行う。
【0067】
このため、PBAアプリケーションによる認証機能を冗長化したデータ記憶装置において、PBAアプリケーション破損時でも、修復動作による遅延を軽減することができ、電源再開時のホスト側の起動処理タイムアウトを防止することができる。
【0068】
次に、図9のステップS44の内蔵接続での同期処理に好適なバックグラウンド処理を説明する。図11は、本発明の一実施の形態のホスト応答を優先したバックグラウンドでの同期処理の処理フロー図である。
【0069】
(S60)MPU11は、バックグラウンドでの同期処理(図10参照)を、一定量(例えば、1ページ=1セクタ)実行する。
【0070】
(S62)MPU11は、電源再開時の同期処理を全て終了したかを判定する。MPU11は、電源再開時の同期処理を全て終了したと判定すると、このバックグラウンド同期処理を終了する。
【0071】
(S64)MPU11は、電源再開時の同期処理を全て終了していないと判定すると、ホストからコマンドを受信したかを判定する。MPU11は、ホストからコマンドを受信していないと判定すると、ステップS60に戻り、バックグラウンドでの同期処理を実行する。
【0072】
(S66)一方、MPU11は、ホストからコマンドを受信したと判定すると、そのコマンド(リード/ライトコマンド等)を実行し、ホストへ実行結果を報告し、ステップS60に戻り、バックグラウンドでの同期処理を実行する。
【0073】
このように、起動してから、最初のPBAアプリケーションへのリード/ライト命令が発行されるまでの間、バッググランドで、PBAアプリケーションの同期処理を進めて置くことにより、バックグランド処理中は、一定量処理するたびに、ホスト応答を確認するため、ホスト応答を優先させることができる。
【0074】
例えば、PBAアプリケーションが128MByteのとき、PBAアプリケーションに、パッチ(差分は、1ページ=1セクターのみ)を当てる場合、全コピーであると同期処理に数秒要するが、本実施の形態のように、ページ分割し、PBAアプリケーションの差分部分のみコピー処理を採用すると、数ミリ秒で同期処理が完了する。
【0075】
このように、PBAアプリケーションの更新中の電源遮断などにより、PBAアプリケーション0またはPBAアプリケーション1が破壊された場合のミラーリングの復旧において、データ記憶装置の接続形態が、起動時にホスト側から発行されるコマンドシークエンスにより、内蔵接続か外付け接続かを判定し、判定の結果、外付け接続である場合、ホストのタイムアウトが問題にならないため、データ記憶装置の起動時に、PBAアプリケーションの同期処理によりミラーリングの復旧を行う。
【0076】
又、判定の結果、内蔵接続である場合、ホスト側の起動処理タイムアウトを避けるために、起動時に同期処理を行わないようにする。その代わりに、データ記憶装置が起動してから最初に発行されるPBAアプリケーションへのリード/ライト命令の際に、リード/ライト実行前に、同期処理を行い、ミラーリングを復旧する。
【0077】
このため、データ記憶装置の起動時に、ホストがタイムアウト検出することなく、PBAアプリケーションを復旧することが可能となる。
【0078】
更に、起動してから、最初のPBAアプリケーションへのリード/ライト命令が発行されるまでの間、バッググランドで、PBAアプリケーションの同期処理を進めて置くにより、ホストを待たせずに、バックグランド処理できる。
【0079】
(他の実施の形態)
前述の実施の形態では、データ記憶装置として、磁気ディスク装置を例に説明したが、SSD(Solid State Disk)等の固体記憶素子を用いたデータ記憶装置や、光等の他のディスク装置、カード装置にも適用できる。
【0080】
又、PBAアプリケーションも、認証を行い、MBRを起動するものであれば、他の形態のものを適用できる。更に、PBAアプリケーションと暗号化とを組み合わせることは、セキュリティの面で、極めて有効であるが、必要に応じて、暗号化を省くこともできる。
【0081】
以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
【0082】
(付記1)
ユーザーデータを格納するためのユーザーデータ格納領域と、前記ユーザーデータへのアクセスを認証するための起動前認証アプリケーションを格納する領域とを有する記憶要素と、ホストに接続され、前記起動前認証アプリケーションによる認証が成功した場合に、前記ユーザーデータ領域へのリード/ライトアクセスを実行する制御部とを有し、前記記憶要素に、前記起動前認証アプリケーションを多重化して格納し、且つ前記制御部は、起動時にホストから発行されるコマンドシークエンスによって、前記ホストと、前記ホストがタイムアウト監視を行う形態で接続されているか、前記ホストがタイムアウト監視を行わない形態で接続されているかを判定し、前記タイムアウト監視を行わない形態で接続されていると判定した場合、多重化された前記起動前認証アプリケーションのミラーリング同期処理を、起動時に実行することを特徴とするデータ記憶装置。
【0083】
(付記2)
前記制御部は、前記タイムアウト監視を行う形態で接続されていると判定した場合、起動後、最初に前記ホストから発行される前記起動前認証アプリケーションのリード/ライト命令を受けた時に、多重化された前記起動前認証アプリケーションのミラーリング同期処理を、実行することを特徴とする付記1のデータ記憶装置。
【0084】
(付記3)
前記制御部は、前記最初に前記ホストから発行される前記起動前認証アプリケーションのリード/ライト命令を受けた時に、前記多重化された前記起動前認証アプリケーションのミラーリング同期処理を、前記リード/ライト命令の実行前に、実行することを特徴とする付記2のデータ記憶装置。
【0085】
(付記4)
前記記憶要素は、前記起動前認証アプリケーションを格納する領域を、複数の領域に分割した各々の更新状況を格納する領域フラグを格納し、前記制御部は、前記領域フラグを元に、更新のある前記分割された領域について、前記多重化された前記起動前認証アプリケーションのミラーリング同期処理を、実行することを特徴とする付記1のデータ記憶装置。
【0086】
(付記5)
前記制御部は、前記タイムアウト監視を行う形態で接続されていると判定した場合、起動後、前記ホストからのコマンドを受領していない時に、前記多重化された前記起動前認証アプリケーションのミラーリング同期処理を、実行することを特徴とする付記2のデータ記憶装置。
【0087】
(付記6)
前記起動前認証アプリケーションは、前記ホストのBIOSで起動され、前記ホストによる前記起動前認証アプリケーションによる認証成功により、前記ホストが、ブートにより、OSを起動するものであることを特徴とする付記1のデータ記憶装置。
【0088】
(付記7)
前記タイムアウト監視を行う形態で接続されている場合が、前記ホストを含む装置に前記データ記憶装置が内蔵されている場合であり、前記タイムアウト監視を行わない形態で接続されている場合が、前記ホストを含む装置に、前記データ記憶装置が外付けされている場合であることを特徴とする付記1のデータ記憶装置。
【0089】
(付記8)
前記制御部は、前記ホストからの前記起動前認証アプリケーションのライトコマンドを受領して、前記領域単位に、前記領域フラグをオンし、前記起動前認証アプリケーションの一方を更新することを特徴とする付記4のデータ記憶装置。
【0090】
(付記9)
前記制御部は、前記起動前認証アプリケーションの一方を更新した後、前記ホストからのコミットコマンドに応じて、前記一方の起動前認証アプリケーションの更新領域を、他方の前記起動前認証アプリケーションの領域にコピーして、同期処理することを特徴とする付記8のデータ記憶装置。
【0091】
(付記10)
前記制御部は、前記ホストからのコミットコマンドに応じて、前記コミットフラグをオンし、前記一方の起動前認証アプリケーションの更新領域を、他方の前記起動前認証アプリケーションの領域にコピーして、前記コミットフラグをオフして、前記同期処理することを特徴とする付記9のデータ記憶装置。
【0092】
(付記11)
前記制御部は、前記起動時に、前記領域フラグがオンで、且つ前記コミットフラグがオンである場合に、前記一方の起動前認証アプリケーションの更新領域を、他方の前記起動前認証アプリケーションの領域にコピーして、前記コミットフラグをオフして、前記同期処理することを特徴とする付記10のデータ記憶装置。
【0093】
(付記12)
前記制御部は、前記ホストからのアボートコマンドに応じて、前記領域フラグがオンである前記一方の起動前認証アプリケーションの更新領域に、他方の前記起動前認証アプリケーションの領域のデータをコピーして、前記領域フラグフラグをオフして、前記同期処理することを特徴とする付記9のデータ記憶装置。
【0094】
(付記13)
前記制御部は、前記起動時に、前記領域フラグがオンで、且つ前記コミットフラグがオフである場合に、前記領域フラグがオンである前記一方の起動前認証アプリケーションの更新領域に、他方の前記起動前認証アプリケーションの領域のデータをコピーして、前記領域フラグをオフして、前記同期処理することを特徴とする付記12のデータ記憶装置。
【0095】
(付記14)
前記記憶要素が、記憶媒体と、前記記憶媒体をリード/ライトするヘッドを有することを特徴とする付記1のデータ記憶装置。
【産業上の利用可能性】
【0096】
起動時に、データ記憶装置に対してホストが発行するコマンドシークエンスから、データ記憶装置が、タイムアウト監視を行う接続形態か、タイムアウト監視を行わない接続形態を判定し、外付け接続である場合は、起動時に、冗長化された起動前認証アプリケーションの同期処理を行い、内蔵接続である場合は、起動時に同期処理を行わず、起動後に最初に発行されるリード/ライト命令の際に、リード/ライト実行前に、同期処理を行うため、起動前認証アプリケーションを多重化し、且つ更新しても、ホストのタイムアウトを防止して、同期処理できる。
【符号の説明】
【0097】
1 ホスト
10 磁気ディスク装置(データ記憶装置)
11 MPU(処理ユニット)
26 HDC
13 メモリ(RAM/ROM)
14 データバッファ
15 データバッファ制御回路
24 リードチャネル回路
17 バス
18 ヘッドIC
19 記憶媒体(磁気ディスク)
20 スピンドルモータ
22 アクチュエータ(VCM)
25 ヘッド(磁気ヘッド)
40 マスターブートレコーダ
42 ユーザーデータ
44 OS
50 システム領域
52 ユーザーデータ領域
54,54−0,54−1 起動前認証アプリケーション
【技術分野】
【0001】
本発明は、記憶媒体のデータのセキュリティ機能を備えたデータ記憶装置に関する。
【背景技術】
【0002】
近年の情報処理技術の発展により、業務上の様々なユーザーデータが、データ記憶装置に記憶されている。データ記憶装置内のユーザーデータの重要性に鑑み、秘密情報の保護や、情報漏洩の回避という観点から、近年、セキュリティ機能を有するデータ記憶装置の要求が高まっている。
【0003】
データ記憶装置のセキュリティ機能としては、例えば、起動前認証(PBA:Pre Boot Authentication Application)が、提案されている(例えば、特許文献1参照)。
【0004】
OS起動前のPBA機能付きデータ記憶装置では、OS(Operating System)起動前に、データ記憶装置内に格納されているPBAアプリケーションが起動し、パスワード等により、ユーザー認証を行う。認証に成功すると、マスター・ブート・レコーダ(MBR)がブート動作を行い、OS(Operating System)が起動する。これにより、コンピュータは、OSの制御の元に、アプリケーションを実行して、データ記憶装置のユーザーデータのアクセスが可能となる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−268861号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
データ記憶装置に格納されているPBAアプリケーションは、バックアップ時やセキュリティパッチ適用時などに更新される。この更新中に電源遮断等が生じると、PBAアプリケーションが壊れる可能性がある。PBAアプリケーションが、データ記憶装置内に、1つしかない状態で破壊されると、CD等のリカバリディスク等により、PBAアプリケーションを復旧しなければ、PBAアプリケーションやOSを起動することができなくなる。
【0007】
前記問題を解決するためには、PBAアプリケーションをデータ記憶装置内で多重化し、破壊後最初の電源起動時にデータ記憶装置内で同期処理を行うことが考えられる。この場合、通常、PC(パーソナルコンピュータ)のBIOSは、起動時にデータ記憶装置の認識処理を行う。
【0008】
このデータ記憶装置内での同期処理に時間がかかる場合は、認識処理でタイムアウトが発生し、データ記憶装置を認識できない場合がある。
【0009】
従って、本発明の目的は、BIOSによるデータ記憶装置の認識処理でのタイムアウト検出を回避して、起動前認証アプリケーションの同期処理を実行するためのデータ記憶装置を提供することにある。
【課題を解決するための手段】
【0010】
この目的の達成のため、データ記憶装置は、ユーザーデータを格納するためのユーザーデータ格納領域と、前記ユーザーデータへのアクセスを認証するための起動前認証アプリケーションを格納する領域とを有する記憶要素と、ホストに接続され、前記起動前認証アプリケーションによる認証が成功した場合に、前記ユーザーデータ領域へのリード/ライトアクセスを実行する制御部とを有し、前記記憶要素に、前記起動前認証アプリケーションを多重化して格納し、且つ前記制御部は、起動時にホストから発行されるコマンドシークエンスによって、前記ホストと、前記ホストのタイムアウト監視がある形態で接続されているか、前記ホストのタイムアウト監視がない形態で接続されているかを判定し、前記タイムアウト監視がある形態で接続されていると判定した場合、起動後に最初に発行される起動前認証アプリケーションに対するリード又はライト命令を受けた時、リード又はライト命令の実行前に、同期処理を実行し、前記タイムアウト監視がない形態で接続されていると判定した場合、多重化された前記起動前認証アプリケーションのミラーリング同期処理を、起動時に実行する。
【発明の効果】
【0011】
起動時に、データ記憶装置に対してホストが発行するコマンドシークエンスから、データ記憶装置の接続形態が、タイムアウト監視のある接続形態か、タイムアウト監視のない接続形態であるかを判定し、外付け接続である場合は、起動時に、冗長化された起動前認証アプリケーションの同期処理を行い、内蔵接続である場合は、起動時に同期処理を行わず、起動後に最初に発行される起動前認証アプリケーションのリード/ライト命令の際に、リード/ライト実行前に、同期処理を行うため、起動前認証アプリケーションを多重化し、且つ更新しても、ホストのタイムアウトを防止して、同期処理できる。
【図面の簡単な説明】
【0012】
【図1】本発明のデータ記憶装置の一実施の形態の構成図である。
【図2】本発明のデータ記憶装置を、内蔵したシステム構成図である。
【図3】本発明のデータ記憶装置を、外付けしたシステム構成図である。
【図4】本発明の一実施の形態の起動前認証アプリケーションの多重化の説明図である。
【図5】図4の多重化した起動前認証アプリケーションの同期処理のためのフラグの説明図である。
【図6】本発明の一実施の形態の起動前認証アプリケーションの更新処理フロー図である。
【図7】本発明の一実施の形態の起動前認証アプリケーションの更新確定処理フロー図である。
【図8】本発明の一実施の形態の起動前認証アプリケーションの更新取り消し処理フロー図である。
【図9】本発明の一実施の形態の起動時の同期処理の判定処理フロー図である。
【図10】図9の起動時の同期処理フロー図である。
【図11】図9の起動時のバックグラウンドにおける同期処理フロー図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態を、セキュリティ機能を有するデータ記憶装置、起動前認証アプリケーション、起動前認証アプリケーションの電源オン時の同期処理、他の実施の形態の順で説明する。
【0014】
(セキュリティ機能を有するデータ記憶装置)
図1は、本発明のデータ記憶装置の一実施の形態の構成図、図2は、図1のデータ記憶装置を内蔵型に使用したシステム構成図、図3は、図1のデータ記憶装置を外付けで使用したシステム構成図である。図1は、データ記憶装置として、磁気ディスクにデータをリード/ライトする磁気ディスク装置(以下、HDDという)を例に示す。
【0015】
図1に示すように、磁気ディスク装置10は、パーソナルコンピュータ等のホストとSATA(Serial AT Attachment)やUSB(Universal Serial Bus)規格等のインターフェイスで接続される。磁気ディスク装置10は、ディスクエンクロージャと、制御ボードとを有する。
【0016】
ディスクエンクロージャには、磁気ディスク19と、磁気ディスク19を回転するスピンドルモータ20と、磁気ディスク19にデータをリード/ライトする磁気ヘッド25と、磁気ヘッド25を磁気ディスク19の半径方向(トラック横断方向)に移動するアクチュエータ(VCM)22と、ヘッドIC18とを備える。
【0017】
制御ボードは、HDC(Hard Disk Controller)26を有する。HDC26は、ホストとのインターフェイス制御を行うホストインターフェイス制御回路12と、データバッファ14を制御するデータバッファ制御回路15と、リード/ライト制御を行うとともに、記録データのフォーマット変換し、リードデータの逆フォーマット変換を行うフォーマット回路16とを有する。このフォーマット回路16に、データの暗号化及び復号化を行う暗号回路29を設ける。
【0018】
又、制御ボードは、リードチャネル回路24と、MPU11と、メモリ(揮発性メモリ(RAM)と、不揮発性メモリ)13と、スピンドルモータ20を駆動制御するSPMドライバ21と、VCM22を駆動制御するVCM駆動制御23と、これらを接続するバス17とを備える。
【0019】
ホストインターフェイス制御回路12と、データバッファ制御回路15と、フォーマット回路16と、ヘッドIC18とは、データバスで接続されている。又、リードチャネル回路24は、ヘッドIC18と接続される。
【0020】
リードチャネル回路24は、リードデータの復調を行うとともに、リードゲート、ライトゲート、リードクロック、ライトクロックの生成を行う。データバッファ14は、キャッシュメモリの役目を果たし、ホストからのライトデータを保存し、磁気ディスク19からのリードデータを保存する。そして、ライトバック時には、データバッファ14のライトデータを、磁気ディスクにライトし、リード時には、データバッファ14のリードデータを、ホストへ転送する。
【0021】
ヘッドIC18は、ライト時は、ライトデータに従い、磁気ヘッド25に記録電流を流し、リード時は、磁気ヘッド25からの読取信号を増幅して、リードチャネル回路24に出力する。MPU(Micro Processor)11は、磁気ヘッド25の位置検出及び位置制御、ホストからのコマンド解析、アクセス処理や、リトライ制御を行う。
【0022】
メモリ(RAMとROM)13は、MPU11の処理に必要なデータを格納する。ここでは、図5で説明する同期処理用フラグテーブル13−1も格納する。又、メモリ(ROM)13は、MPU11の処理に必要なプログラムやパラメータを格納する。
【0023】
MPU11は、磁気ヘッド25が読み取った磁気ディスク19のサーボ信号を、ヘッドIC18、リードチャネル回路24から受け、ヘッドの位置を検出し、VCM駆動制御部23を介し、VCM22をシーク、オントラック制御する。
【0024】
図2は、パーソナルコンピュータ等のデータ処理装置に、データ記憶装置が内蔵された場合のシステム構成図である。パーソナルコンピュータのホスト1は、CPU2、メモリコントローラ3、ROM(リードオンリーメモリ)4、RAM(ランダムアクセスメモリ)6、IOコントローラ7を有する。これらは、内部バス8で接続される。
【0025】
又、ROM4には、BIOS(Basic Input/Output System)5が格納されており、IOコントローラ7には、2つのインターフェイス回路9−1,9−2が接続されている。ここでは、SATAインターフェイス回路9−1に、内蔵型磁気ディスク装置10が接続される。又、他のインターフェイス回路9−2は、USBインターフェイス回路であり、パーソナルコンピュータの外部の機器に接続される。
【0026】
一方、内蔵型の磁気ディスク装置(以下、HDDと称す)10には、磁気ディスク19のユーザー領域52に、MBR(マスターブートレコーダ)40と、ユーザーデータ42と、パーソナルコンピュータのOS44とが格納されている。これらは、暗号化されている。又、磁気ディスク19のシステム領域50には、セキュリティアプリケーションとして、起動前認証アプリケーション(以下、PBA:Pre Boot Authentication Applicationという)54が、格納されている。
【0027】
図3は、パーソナルコンピュータ等のデータ処理装置に、データ記憶装置が外付けされた場合のシステム構成図である。図3において、図2と同様に、パーソナルコンピュータのホスト1は、CPU2、メモリコントローラ3、ROM(リードオンリーメモリ)4、RAM(ランダムアクセスメモリ)6、IOコントローラ7を有する。これらは、内部バス8で接続される。
【0028】
又、ROM4には、BIOS(Basic Input/Output System)5が格納されており、IOコントローラ7には、2つのインターフェイス回路9−1,9−2が接続されている。ここでは、SATAインターフェイス回路9−1に、内蔵型HDD10が接続される。又、他のインターフェイス回路9−2は、USBインターフェイス回路であり、パーソナルコンピュータの外部のHDD10−1に接続される。
【0029】
この内蔵型の磁気ディスク装置(以下、HDDと称す)10は、OS44を格納したシステムデイスクを構成し、磁気ディスク19のユーザー領域52に、MBR(マスターブートレコーダ)40と、ユーザーデータ42と、パーソナルコンピュータのOS44とが格納されている。これらは、暗号化されている。尚、図3の内蔵型データ記憶装置10でも、PBAアプリケーションを格納しても良い。
【0030】
又、外付けされたHDD10−1の磁気ディスク19のユーザー領域52には、ユーザーデータ56が暗号化されて格納される。そして、HDD10−1の磁気ディスク19のシステム領域50には、セキュリティアプリケーションとして、起動前認証アプリケーション(以下、PBAという)54が、格納されている。この外付け接続されたHDD10−1に格納されるPBAアプリケーション54は、OSやOS上で動作するアプリケーションから呼ばれる。PBAアプリケーション54による認証が通ると、暗号化データ56のリード/ライトが可能となる。
【0031】
このように、内蔵型HDD10では、磁気ディスク19内に、PBAアプリケーション54を格納し、OS起動前の認証に使用する。一方、外付け形HDD10−1を設けた場合には、内蔵型HDD10と併用し、内蔵型HDD10に、MBR40と、ユーザーデータ42と、OS44を格納し、外付け形HDD10−1に、PBAアプリケーション54を格納し、OSやOS上で動作するアプリケーションから呼ばれる。
【0032】
又、認証により、アクセスが可能となることは、暗号回路29もアクテイブとなり、暗号化データのリード/ライトが可能となる。
【0033】
(起動前認証アプリケーション)
図4は、本発明の起動前認証アプリケーションの説明図、図5は、起動前認証アプリケーションの同期処理の説明図である。
【0034】
図4に示すように、磁気ディスク19のシステム領域50に設けられた起動前認証アプリケーション54は、多重化して、設けられる。図4では、2つのPBAアプリケーション54−0,PBAR54−1を設け、2重化したものである。即ち、データ記憶装置内に、PBAアプリケーションを複数用意し、ミラーリングして、一方のPBAアプリケーションの障害発生時、他のPBAアプリケーションでリカバリーする。
【0035】
又、ミラーリングすると、PBAアプリケーション間の同期処理が必要となる。起動前認証機能を有するPBAアプリケーションのサイズは、数十メガバイトから数百メガバイトである。このように、非常に大容量であるため、PBAアプリケーションの同期処理には、数秒から数十秒要する。例えば、データ記憶装置の電源オン時に、同期処理が実行されると、BIOSによるデータ記憶装置の認識処理で、タイムアウトが検出され、起動に失敗する可能性がある。
【0036】
この起動処理のタイムアウトを防止するため、図9以下で説明するように、起動時に、データ記憶装置に対してホストが発行するコマンドシークエンスから、データ記憶装置が、タイムアウト監視を行う接続形態(例えば、内蔵接続時など)か、タイムアウト監視を行わない接続形態(USB等のインターフェイスを介した外付け接続など)を判定する。
【0037】
そして、外付け接続である場合は、タイムアウトは問題にならないので、起動時に、PBAアプリケーションの同期処理を行う。内蔵接続である場合は、ホストのタイムアウトを確実に回避するために、起動時に同期処理を行わない。その代わりに、起動後に最初に発行されるPBAアプリケーションに対するリード/ライト命令の際に、リード/ライト実行前に、PBAアプリケーションの同期処理を行う。
【0038】
また、同期処理の高速化手段として、差分処理とバックグランドでの同期を行う。図4に示すように、このPBAアプリケーション0,1は、複数の小領域(ページ)Page0〜127に分割されている。例えば、各PBAアプリケーション0,1を、128MByteの容量を持つとすると、1MByteの小領域(ページ)に分割する。
【0039】
通常の同期処理には、CommitとAbortの2種類ある。ホストからPBAアプリケーションに対するライト命令があると、PBAアプリケーション54−0が更新される。その後、ホストがPBAアプリケーションの更新を確定したいときは、Commit命令を発行する。磁気ディスク装置は、Commit命令が発行されると、PBAアプリケーション54−0からPBAアプリケーション54−1へコピーする。
【0040】
なんらかの理由により、ホストがPBAアプリケーションの更新を取り消したいときは、Abort命令を発行する。磁気ディスク装置は、Abort命令が発行されると、PBAアプリケーション54−1からPBAアプリケーション54−0にコピーし、PBAアプリケーション54−0を元の状態に戻す。
【0041】
この同期処理を制御するためのフラグを、図5で説明する。図5に示すように、磁気ディスク装置10の媒体19とローカルメモリ13には、Page Flag62とCommit Flag60という2種類のフラグテーブル13−1を用意する(図1参照)。
【0042】
Page Flag62は、ページ毎に用意し、ホストからi番目のページに対してライト命令がくると、Page Flag[i]は、「1」となる。Page Flag62は、同期処理が完了すると、「0」になる。Commit Flag60は、Commit中であるかどうかを示すフラグであり、ホストからCommit命令がきたときに、「1」になる。そして、Commit終了後に、「0」になる。
【0043】
このようなフラグテーブルを利用して、以下のように、ミラーリングのための通常の同期処理を行う。
【0044】
図6は、HDDのMPU11が実行するPBAアプリケーションの更新処理フロー図である。
【0045】
(S10)MPU11は、メモリ13のi番目のページのページフラグ[i]が、「1」であるかを判定する。尚、ホストからi番目のページのライト命令(更新命令)を受けると、i番目のページのページフラグ[i]を、「1」にセットする。MPU11は、メモリ13のi番目のページのページフラグ[i]が、「1」であると判定すると、ステップS14に進む。
【0046】
(S12)MPU11は、メモリ13のi番目のページのページフラグ[i]が、「1」でないと判定すると、メモリ13のページフラグ[i]を、「1」にセットし、磁気ディスク19上のページフラグ[i]を「1」にセットする。
【0047】
(S14)MPU11は、磁気ディスク19のPBAアプリケーションのi番目のページ[i]を、ホストからのライトデータ(更新データ)で更新する。
【0048】
図7及び図8は、HDDのMPU11が実行するホストコマンドによる同期処理フロー図であり、図7は、前述のコミットコマンドの処理フロー図、図8は、前述のアボートコマンドの処理フロー図である。先ず、図7により、コミット処理を説明する。
【0049】
(S20)MPU11は、コミットコマンドを受信すると、メモリ13のコミットフラグを、「1」にセットし、磁気ディスク19上のコミットフラグを、「1」にセットする。
【0050】
(S22) MPU11は、ページフラグが、「1」のページを全て、磁気ディスク19のPBAアプリケーション54−0からPBAアプリケーション54−1に、コピーする。
【0051】
(S24)MPU11は、コピー終了後、メモリ13のコミットフラグを、「0」にセットし、磁気ディスク19上のコミットフラグを、「0」にセットする。
【0052】
次に、図8により、アボート処理を説明する。
【0053】
(S30)MPU11は、アボートコマンドを受信すると、ページフラグが、「1」のページを全て、磁気ディスク19のPBAアプリケーション54−1からPBAアプリケーション54−0に、コピーし、元に戻す。
【0054】
(S32)MPU11は、コピー終了後、メモリ13のページフラグを、「0」にセットし、磁気ディスク19上のページフラグを、「0」にセットする。
【0055】
このように、ページフラグとコミットフラグにより、コミット、アボートという同期処理を効率良く実行できる。又、後述する起動時の同期処理の高速化を実行するのに有用である。
【0056】
(起動前認証アプリケーションの起動時の同期処理)
図9は、本発明の一実施の形態の起動時の同期処理の判定処理フロー図である。
【0057】
(S40)HDD10のMPU11は、起動時(パワーオン時)に、ホスト1が発行するコマンドシークエンスを受信する。ホスト1は、接続されたポート(図2、図3では、インタフェース回路)に応じて、内蔵接続であれば、一定時間内に、ATA Security Feature Set Coomandを発行する。又は、PIO(ポートI/O)転送で、リード/ライトコマンドを発行する。又、外付け接続であれば、OSから、例えば、DMAのリード/ライトコマンドを発行する。
【0058】
(S42)MPU11は、このコマンドシーケンスが、内蔵接続へのコマンドシーケンスか、それ以外かを判定する。
【0059】
(S44)MPU11は、コマンドシーケンスが、内蔵接続のコマンドシーケンスと判定すると、データ記憶装置10が、タイムアウト監視を行う接続形態(例えば、OS起動に使用する内蔵接続時)と判定し、起動時には、同期処理を行わない。その代わりに、データ記憶装置10が起動してから最初に発行されるPBAアプリケーションへのリード/ライト命令の際に、このリード/ライト命令の実行前に、図10に示す同期処理を行い、ミラーリングを復旧する。
【0060】
(S46)MPU11は、コマンドシーケンスが、外付け接続のコマンドシーケンスと判定すると、タイムアウト監視を行わない接続形態(USB等のインターフェイスを介した外付け接続)であると判定する。このUSB接続などの外付け接続の判定であるため、ホストのタイムアウトが問題にならない。このため、データ記憶装置10は、起動時に、図10に示すPBAアプリケーションの同期処理を行い、ミラーリングの復旧を行う。
【0061】
図10は、図9の同期処理の処理フロー図である。
【0062】
(S50)MPU11は、磁気ディスク19のシステム領域から、コミットフラグ64、ページフラグ66を、メモリ13に読み込む。前述の図5で説明したように、磁気ディスク19に、メモリ13のコミットフラグ64、ページフラグ66を格納しているため、更新中の電源遮断等が生じても、それまでの更新状態を再現できる。
【0063】
(S52)MPU11は、ページフラグ66から、ページフラグが、「1」のページが存在するかを判定する。MPU11は、ページフラグが、「1」のページが存在しないと判定すると、電源再開前に、コミット、アボート処理されていないページが存在しないと判定し、この電源再開時の同期処理を終了する。
【0064】
(S54)一方、MPU11は、ページフラグが、「1」のページが存在すると判定すると、コミットフラグが「1」であるかを判定する。コミットフラグが「1」であれば、ミラーリングの更新の確定が済んでいないため、図7のホストからのコミットコマンドによる処理を、ホストコマンドを受けずに実行する。即ち、図7のS22のように、 MPU11は、ページフラグが、「1」のページを全て、磁気ディスク19のPBAアプリケーション54−0からPBAアプリケーション54−1に、コピーする。そして、S24のように、MPU11は、コピー終了後、メモリ13のコミットフラグを、「0」にセットし、磁気ディスク19上のコミットフラグを、「0」にセットする。
【0065】
逆に、コミットフラグが「1」でないと判定すると、ミラーリングの更新の取り消しが済んでいないため、図8のホストからのアボートコマンドによる処理S30〜S32を、ホストコマンドを受けずに実行する。
【0066】
このようにして、起動時に、データ記憶装置に対してホストが発行するコマンドシークエンスから、タイムアウト監視を行う接続形態か、タイムアウト監視を行わない接続形態を判定し、外付け接続である場合は、タイムアウトは問題にならないので、起動時にPBAアプリケーションの同期処理を行う。又、内蔵接続である場合は、ホストの起動処理タイムアウトを確実に回避するために、起動時に同期処理を行わない。その代わりに、起動後に最初に発行されるPBAアプリケーションに対するリード/ライト命令の際に、リード/ライト実行前に、PBAアプリケーションの同期処理を行う。
【0067】
このため、PBAアプリケーションによる認証機能を冗長化したデータ記憶装置において、PBAアプリケーション破損時でも、修復動作による遅延を軽減することができ、電源再開時のホスト側の起動処理タイムアウトを防止することができる。
【0068】
次に、図9のステップS44の内蔵接続での同期処理に好適なバックグラウンド処理を説明する。図11は、本発明の一実施の形態のホスト応答を優先したバックグラウンドでの同期処理の処理フロー図である。
【0069】
(S60)MPU11は、バックグラウンドでの同期処理(図10参照)を、一定量(例えば、1ページ=1セクタ)実行する。
【0070】
(S62)MPU11は、電源再開時の同期処理を全て終了したかを判定する。MPU11は、電源再開時の同期処理を全て終了したと判定すると、このバックグラウンド同期処理を終了する。
【0071】
(S64)MPU11は、電源再開時の同期処理を全て終了していないと判定すると、ホストからコマンドを受信したかを判定する。MPU11は、ホストからコマンドを受信していないと判定すると、ステップS60に戻り、バックグラウンドでの同期処理を実行する。
【0072】
(S66)一方、MPU11は、ホストからコマンドを受信したと判定すると、そのコマンド(リード/ライトコマンド等)を実行し、ホストへ実行結果を報告し、ステップS60に戻り、バックグラウンドでの同期処理を実行する。
【0073】
このように、起動してから、最初のPBAアプリケーションへのリード/ライト命令が発行されるまでの間、バッググランドで、PBAアプリケーションの同期処理を進めて置くことにより、バックグランド処理中は、一定量処理するたびに、ホスト応答を確認するため、ホスト応答を優先させることができる。
【0074】
例えば、PBAアプリケーションが128MByteのとき、PBAアプリケーションに、パッチ(差分は、1ページ=1セクターのみ)を当てる場合、全コピーであると同期処理に数秒要するが、本実施の形態のように、ページ分割し、PBAアプリケーションの差分部分のみコピー処理を採用すると、数ミリ秒で同期処理が完了する。
【0075】
このように、PBAアプリケーションの更新中の電源遮断などにより、PBAアプリケーション0またはPBAアプリケーション1が破壊された場合のミラーリングの復旧において、データ記憶装置の接続形態が、起動時にホスト側から発行されるコマンドシークエンスにより、内蔵接続か外付け接続かを判定し、判定の結果、外付け接続である場合、ホストのタイムアウトが問題にならないため、データ記憶装置の起動時に、PBAアプリケーションの同期処理によりミラーリングの復旧を行う。
【0076】
又、判定の結果、内蔵接続である場合、ホスト側の起動処理タイムアウトを避けるために、起動時に同期処理を行わないようにする。その代わりに、データ記憶装置が起動してから最初に発行されるPBAアプリケーションへのリード/ライト命令の際に、リード/ライト実行前に、同期処理を行い、ミラーリングを復旧する。
【0077】
このため、データ記憶装置の起動時に、ホストがタイムアウト検出することなく、PBAアプリケーションを復旧することが可能となる。
【0078】
更に、起動してから、最初のPBAアプリケーションへのリード/ライト命令が発行されるまでの間、バッググランドで、PBAアプリケーションの同期処理を進めて置くにより、ホストを待たせずに、バックグランド処理できる。
【0079】
(他の実施の形態)
前述の実施の形態では、データ記憶装置として、磁気ディスク装置を例に説明したが、SSD(Solid State Disk)等の固体記憶素子を用いたデータ記憶装置や、光等の他のディスク装置、カード装置にも適用できる。
【0080】
又、PBAアプリケーションも、認証を行い、MBRを起動するものであれば、他の形態のものを適用できる。更に、PBAアプリケーションと暗号化とを組み合わせることは、セキュリティの面で、極めて有効であるが、必要に応じて、暗号化を省くこともできる。
【0081】
以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
【0082】
(付記1)
ユーザーデータを格納するためのユーザーデータ格納領域と、前記ユーザーデータへのアクセスを認証するための起動前認証アプリケーションを格納する領域とを有する記憶要素と、ホストに接続され、前記起動前認証アプリケーションによる認証が成功した場合に、前記ユーザーデータ領域へのリード/ライトアクセスを実行する制御部とを有し、前記記憶要素に、前記起動前認証アプリケーションを多重化して格納し、且つ前記制御部は、起動時にホストから発行されるコマンドシークエンスによって、前記ホストと、前記ホストがタイムアウト監視を行う形態で接続されているか、前記ホストがタイムアウト監視を行わない形態で接続されているかを判定し、前記タイムアウト監視を行わない形態で接続されていると判定した場合、多重化された前記起動前認証アプリケーションのミラーリング同期処理を、起動時に実行することを特徴とするデータ記憶装置。
【0083】
(付記2)
前記制御部は、前記タイムアウト監視を行う形態で接続されていると判定した場合、起動後、最初に前記ホストから発行される前記起動前認証アプリケーションのリード/ライト命令を受けた時に、多重化された前記起動前認証アプリケーションのミラーリング同期処理を、実行することを特徴とする付記1のデータ記憶装置。
【0084】
(付記3)
前記制御部は、前記最初に前記ホストから発行される前記起動前認証アプリケーションのリード/ライト命令を受けた時に、前記多重化された前記起動前認証アプリケーションのミラーリング同期処理を、前記リード/ライト命令の実行前に、実行することを特徴とする付記2のデータ記憶装置。
【0085】
(付記4)
前記記憶要素は、前記起動前認証アプリケーションを格納する領域を、複数の領域に分割した各々の更新状況を格納する領域フラグを格納し、前記制御部は、前記領域フラグを元に、更新のある前記分割された領域について、前記多重化された前記起動前認証アプリケーションのミラーリング同期処理を、実行することを特徴とする付記1のデータ記憶装置。
【0086】
(付記5)
前記制御部は、前記タイムアウト監視を行う形態で接続されていると判定した場合、起動後、前記ホストからのコマンドを受領していない時に、前記多重化された前記起動前認証アプリケーションのミラーリング同期処理を、実行することを特徴とする付記2のデータ記憶装置。
【0087】
(付記6)
前記起動前認証アプリケーションは、前記ホストのBIOSで起動され、前記ホストによる前記起動前認証アプリケーションによる認証成功により、前記ホストが、ブートにより、OSを起動するものであることを特徴とする付記1のデータ記憶装置。
【0088】
(付記7)
前記タイムアウト監視を行う形態で接続されている場合が、前記ホストを含む装置に前記データ記憶装置が内蔵されている場合であり、前記タイムアウト監視を行わない形態で接続されている場合が、前記ホストを含む装置に、前記データ記憶装置が外付けされている場合であることを特徴とする付記1のデータ記憶装置。
【0089】
(付記8)
前記制御部は、前記ホストからの前記起動前認証アプリケーションのライトコマンドを受領して、前記領域単位に、前記領域フラグをオンし、前記起動前認証アプリケーションの一方を更新することを特徴とする付記4のデータ記憶装置。
【0090】
(付記9)
前記制御部は、前記起動前認証アプリケーションの一方を更新した後、前記ホストからのコミットコマンドに応じて、前記一方の起動前認証アプリケーションの更新領域を、他方の前記起動前認証アプリケーションの領域にコピーして、同期処理することを特徴とする付記8のデータ記憶装置。
【0091】
(付記10)
前記制御部は、前記ホストからのコミットコマンドに応じて、前記コミットフラグをオンし、前記一方の起動前認証アプリケーションの更新領域を、他方の前記起動前認証アプリケーションの領域にコピーして、前記コミットフラグをオフして、前記同期処理することを特徴とする付記9のデータ記憶装置。
【0092】
(付記11)
前記制御部は、前記起動時に、前記領域フラグがオンで、且つ前記コミットフラグがオンである場合に、前記一方の起動前認証アプリケーションの更新領域を、他方の前記起動前認証アプリケーションの領域にコピーして、前記コミットフラグをオフして、前記同期処理することを特徴とする付記10のデータ記憶装置。
【0093】
(付記12)
前記制御部は、前記ホストからのアボートコマンドに応じて、前記領域フラグがオンである前記一方の起動前認証アプリケーションの更新領域に、他方の前記起動前認証アプリケーションの領域のデータをコピーして、前記領域フラグフラグをオフして、前記同期処理することを特徴とする付記9のデータ記憶装置。
【0094】
(付記13)
前記制御部は、前記起動時に、前記領域フラグがオンで、且つ前記コミットフラグがオフである場合に、前記領域フラグがオンである前記一方の起動前認証アプリケーションの更新領域に、他方の前記起動前認証アプリケーションの領域のデータをコピーして、前記領域フラグをオフして、前記同期処理することを特徴とする付記12のデータ記憶装置。
【0095】
(付記14)
前記記憶要素が、記憶媒体と、前記記憶媒体をリード/ライトするヘッドを有することを特徴とする付記1のデータ記憶装置。
【産業上の利用可能性】
【0096】
起動時に、データ記憶装置に対してホストが発行するコマンドシークエンスから、データ記憶装置が、タイムアウト監視を行う接続形態か、タイムアウト監視を行わない接続形態を判定し、外付け接続である場合は、起動時に、冗長化された起動前認証アプリケーションの同期処理を行い、内蔵接続である場合は、起動時に同期処理を行わず、起動後に最初に発行されるリード/ライト命令の際に、リード/ライト実行前に、同期処理を行うため、起動前認証アプリケーションを多重化し、且つ更新しても、ホストのタイムアウトを防止して、同期処理できる。
【符号の説明】
【0097】
1 ホスト
10 磁気ディスク装置(データ記憶装置)
11 MPU(処理ユニット)
26 HDC
13 メモリ(RAM/ROM)
14 データバッファ
15 データバッファ制御回路
24 リードチャネル回路
17 バス
18 ヘッドIC
19 記憶媒体(磁気ディスク)
20 スピンドルモータ
22 アクチュエータ(VCM)
25 ヘッド(磁気ヘッド)
40 マスターブートレコーダ
42 ユーザーデータ
44 OS
50 システム領域
52 ユーザーデータ領域
54,54−0,54−1 起動前認証アプリケーション
【特許請求の範囲】
【請求項1】
ユーザーデータを格納するためのユーザーデータ格納領域と、前記ユーザーデータへのアクセスを認証するための起動前認証アプリケーションを格納する領域とを有する記憶要素と、
ホストに接続され、前記起動前認証アプリケーションによる認証が成功した場合に、前記ユーザーデータ領域へのリード/ライトアクセスを実行する制御部とを有し、
前記記憶要素に、前記起動前認証アプリケーションを多重化して格納し、且つ
前記制御部は、起動時にホストから発行されるコマンドシークエンスによって、前記ホストと、前記ホストがタイムアウト監視を行う形態で接続されているか、前記ホストがタイムアウト監視を行わない形態で接続されているかを判定し、前記タイムアウト監視を行わない形態で接続されていると判定した場合、多重化された前記起動前認証アプリケーションのミラーリング同期処理を、起動時に実行する
ことを特徴とするデータ記憶装置。
【請求項2】
前記制御部は、前記タイムアウト監視を行う形態で接続されていると判定した場合、起動後、最初に前記ホストから発行される前記起動前認証アプリケーションのリード/ライト命令を受けた時に、多重化された前記起動前認証アプリケーションのミラーリング同期処理を、実行する
ことを特徴とする請求項1のデータ記憶装置。
【請求項3】
前記制御部は、前記最初に前記ホストから発行される前記起動前認証アプリケーションのリード/ライト命令を受けた時に、前記多重化された前記起動前認証アプリケーションのミラーリング同期処理を、前記リード/ライト命令の実行前に、実行する
ことを特徴とする請求項2のデータ記憶装置。
【請求項4】
前記記憶要素は、前記起動前認証アプリケーションを格納する領域を、複数の領域に分割した各々の更新状況を格納する領域フラグを格納し、
前記制御部は、前記領域フラグを元に、更新のある前記分割された領域について、前記多重化された前記起動前認証アプリケーションのミラーリング同期処理を、実行する
ことを特徴とする請求項1のデータ記憶装置。
【請求項5】
前記制御部は、前記タイムアウト監視を行う形態で接続されていると判定した場合、起動後、前記ホストからのコマンドを受領していない時に、前記多重化された前記起動前認証アプリケーションのミラーリング同期処理を、実行する
ことを特徴とする請求項2のデータ記憶装置。
【請求項1】
ユーザーデータを格納するためのユーザーデータ格納領域と、前記ユーザーデータへのアクセスを認証するための起動前認証アプリケーションを格納する領域とを有する記憶要素と、
ホストに接続され、前記起動前認証アプリケーションによる認証が成功した場合に、前記ユーザーデータ領域へのリード/ライトアクセスを実行する制御部とを有し、
前記記憶要素に、前記起動前認証アプリケーションを多重化して格納し、且つ
前記制御部は、起動時にホストから発行されるコマンドシークエンスによって、前記ホストと、前記ホストがタイムアウト監視を行う形態で接続されているか、前記ホストがタイムアウト監視を行わない形態で接続されているかを判定し、前記タイムアウト監視を行わない形態で接続されていると判定した場合、多重化された前記起動前認証アプリケーションのミラーリング同期処理を、起動時に実行する
ことを特徴とするデータ記憶装置。
【請求項2】
前記制御部は、前記タイムアウト監視を行う形態で接続されていると判定した場合、起動後、最初に前記ホストから発行される前記起動前認証アプリケーションのリード/ライト命令を受けた時に、多重化された前記起動前認証アプリケーションのミラーリング同期処理を、実行する
ことを特徴とする請求項1のデータ記憶装置。
【請求項3】
前記制御部は、前記最初に前記ホストから発行される前記起動前認証アプリケーションのリード/ライト命令を受けた時に、前記多重化された前記起動前認証アプリケーションのミラーリング同期処理を、前記リード/ライト命令の実行前に、実行する
ことを特徴とする請求項2のデータ記憶装置。
【請求項4】
前記記憶要素は、前記起動前認証アプリケーションを格納する領域を、複数の領域に分割した各々の更新状況を格納する領域フラグを格納し、
前記制御部は、前記領域フラグを元に、更新のある前記分割された領域について、前記多重化された前記起動前認証アプリケーションのミラーリング同期処理を、実行する
ことを特徴とする請求項1のデータ記憶装置。
【請求項5】
前記制御部は、前記タイムアウト監視を行う形態で接続されていると判定した場合、起動後、前記ホストからのコマンドを受領していない時に、前記多重化された前記起動前認証アプリケーションのミラーリング同期処理を、実行する
ことを特徴とする請求項2のデータ記憶装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2010−176389(P2010−176389A)
【公開日】平成22年8月12日(2010.8.12)
【国際特許分類】
【出願番号】特願2009−18310(P2009−18310)
【出願日】平成21年1月29日(2009.1.29)
【出願人】(309033264)東芝ストレージデバイス株式会社 (255)
【Fターム(参考)】
【公開日】平成22年8月12日(2010.8.12)
【国際特許分類】
【出願日】平成21年1月29日(2009.1.29)
【出願人】(309033264)東芝ストレージデバイス株式会社 (255)
【Fターム(参考)】
[ Back to top ]