(57)【特許請求の範囲】
【請求項１】
ストレージデバイスの実際の記憶容量である実記憶容量を検出する実記憶容量検出手段と、
前記実記憶容量検出手段によって検出された前記実記憶容量が２ＴｉＢを超える場合に、あらかじめ定められた複数の数値範囲の中から、前記実記憶容量が含まれる数値範囲を特定し、当該特定された数値範囲に応じて決まる当該数値範囲の下限値以下の所定値を、前記ストレージデバイスにおける有効な記憶容量である有効記憶容量として設定する有効記憶容量設定手段と、
前記ストレージデバイス上に作成されたパーティションが、ＧＰＴ（GUID Partition Table）方式のパーティションである場合に、前記ストレージデバイスが備える記憶領域の始端側にある第一管理領域及び前記記憶領域の終端側にある第二管理領域のうち、前記第二管理領域の前記記憶領域内における位置を、前記有効記憶容量設定手段によって設定された前記有効記憶容量に基づいて特定して、前記第二管理領域に対するアクセスを行うデータ処理手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記データ処理手段は、前記第一管理領域及び前記第二管理領域それぞれから読み出されるデータに基づいて、いずれか一方又は両方のデータが不正であった場合に、不正なデータを修復する処理、又は不正なデータに基づく前記ストレージデバイスへのアクセスを禁止する処理を実行する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ストレージデバイスは、ハードディスク装置、ハードディスク装置と同等な接続インターフェースを備えたＳＳＤ（Solid State Drive）、コンパクトフラッシュ（登録商標）、又はコンパクトフラッシュと同等な接続インターフェースを備えたハードディスク装置である
ことを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
ストレージデバイスが接続されるとともに、プログラムに従って各種制御を実行する制御部を備えていて、前記制御部が、オペレーティングシステムを機能させるとともに、当該オペレーティングシステムの制御下で構成されるカーネル空間では、前記ストレージデバイスに対する制御を実行するデバイス制御部を機能させる情報処理装置において、前記制御部を前記デバイス制御部を構成する手段として機能させるプログラムであって、
前記制御部を、
前記ストレージデバイスの実際の記憶容量である実記憶容量を検出する実記憶容量検出手段、
前記実記憶容量検出手段によって検出された前記実記憶容量が２ＴｉＢを超える場合に、あらかじめ定められた複数の数値範囲の中から、前記実記憶容量が含まれる数値範囲を特定し、当該特定された数値範囲に応じて決まる当該数値範囲の下限値以下の所定値を、前記ストレージデバイスにおける有効な記憶容量である有効記憶容量として設定する有効記憶容量設定手段、及び、
前記ストレージデバイス上に作成されたパーティションが、ＧＰＴ（GUID Partition Table）方式のパーティションである場合に、前記ストレージデバイスが備える記憶領域の始端側にある第一管理領域及び前記記憶領域の終端側にある第二管理領域のうち、前記第二管理領域の前記記憶領域内における位置を、前記有効記憶容量設定手段によって設定された前記有効記憶容量に基づいて特定して、前記第二管理領域に対するアクセスを行うデータ処理手段
として機能させることを特徴とするプログラム。
【請求項５】
ストレージデバイスが接続されるとともに、プログラムに従って各種制御を実行する制御部を備えていて、前記制御部が、オペレーティングシステムを機能させるとともに、当該オペレーティングシステムの制御下で構成されるカーネル空間では、前記ストレージデバイスに対する制御を実行するデバイス制御部を機能させる情報処理装置において、前記制御部を前記デバイス制御部を構成する手段として機能させるプログラムであって、
前記制御部を、
前記ストレージデバイスの実際の記憶容量である実記憶容量を検出する実記憶容量検出手段、及び、
前記実記憶容量検出手段によって検出された前記実記憶容量が２ＴｉＢを超える場合に、あらかじめ定められた複数の数値範囲の中から、前記実記憶容量が含まれる数値範囲を特定し、当該特定された数値範囲に応じて決まる当該数値範囲の下限値以下の所定値を、前記ストレージデバイスにおける有効な記憶容量である有効記憶容量として設定する有効記憶容量設定手段
として機能させるプログラムとされており、
前記デバイス制御部では、前記ストレージデバイス上に作成されたパーティションが、ＧＰＴ（GUID Partition Table）方式のパーティションである場合に、前記ストレージデバイスが備える記憶領域の始端側にある第一管理領域及び前記記憶領域の終端側にある第二管理領域のうち、前記第二管理領域の前記記憶領域内における位置を、前記有効記憶容量設定手段によって設定された前記有効記憶容量に基づいて特定して、前記第二管理領域に対するアクセスが行われる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
従来、ストレージデバイスの記憶領域に作成されるパーティションの管理方式としては、ＭＢＲ（Master Boot Record）方式が広く用いられてきた。しかし、近年、ストレージデバイスの大容量化が進み、２ＴｉＢ（２×２40バイト）を超える記憶容量のストレージデバイスが登場したため、ＭＢＲ方式では適正なパーティション管理ができない状況に至っている。
【０００３】
そのため、大容量ストレージデバイスにも対応したパーティション管理方式として、既にＧＰＴ（GUID Partition Table）方式と呼ばれる管理方式が提案され、事実上の標準的な規格として普及しつつある（例えば、特許文献１の段落［００３２］及び［図１０］参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−９８８９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ストレージデバイスの故障時に備えてストレージデバイスのバックアップを作成したい場合や、全く同一のデータが記録されたストレージデバイスを工業的に量産したい場合に、複製元のストレージデバイスから複製先のストレージデバイスへ記憶領域の内容を丸ごと複製することがある。
【０００６】
しかし、このような複製を行う際、ストレージデバイスの記憶領域にＧＰＴ方式でパーティションが作成されていると、以下のような問題が発生する。
まず、ストレージデバイスの記憶領域にＧＰＴ方式でパーティションが作成されている場合（図４中の複製元ストレージデバイス参照。）、記憶領域の先頭側には、プライマリパーティションテーブルと呼ばれる管理領域（以下、第一管理領域とも称する。）が確保される。また、記憶領域の末尾側には、バックアップパーティションテーブルと呼ばれる管理領域（以下、第二管理領域とも称する。）が確保される。
【０００７】
第二管理領域は、第一管理領域のバックアップとして利用され、例えば、第一管理領域内に不整合が見つかった場合には、第二管理領域が参照される。このとき、第二管理領域内に不整合が見つからなければ、第二管理領域のデータを利用して第一管理領域の修復を行うことができる。また、第二管理領域内にも不整合が見つかれば、データの信頼性が保証できないものと判断して、パーティションへのアクセスを禁止するなどの対処ができる。
【０００８】
このような前提のもと、ストレージデバイスの記憶領域を丸ごと複製する際には、複製先のストレージデバイスの実記憶容量が、複製元のストレージデバイスの実記憶容量以上であれば、複製を行うこと自体は可能である。
【０００９】
しかし、実記憶容量が異なるストレージデバイス間で複製を行うと、図４に例示するように、複製先のストレージデバイスにおいて「本来第二管理領域があるべき領域（図４参照）」には、複製元の第二管理領域と同等なデータが複製されないことになる。また、「複製元の第二管理領域と同等なデータが複製された領域（図４参照）」は存在するものの、その領域は本来第二管理領域があるべき領域とは別の位置になる。
【００１０】
そのため、ＰＣ（Personal Computer）などの情報処理装置は、複製先のストレージデバイスにＧＰＴ方式でパーティションが作成されていると想定される場合、「本来第二管理領域があるべき領域」から所期のデータを読み込もうとするものの、不正なデータが読み込まれることになる。その結果、第一管理領域と第二管理領域との間でデータの不整合が生じ、ストレージデバイス上のパーティションに対して適正なアクセスができなくなるなどの問題を招くことになる。
【００１１】
こうした問題を回避する方法として、理想的には、複製元のストレージデバイスと複製先のストレージデバイスとで、実記憶容量が一致するものを使用すればよい。この場合、第二管理領域が記憶領域の末尾に複製されるので、上述のような問題は発生しない。
【００１２】
しかし、現実的には、実記憶容量が一致するストレージデバイスを用意するのは、必ずしも容易ではない、という問題がある。
例えば、市販されているストレージデバイスの記憶容量は、近年、２ＴＢ、２．５ＴＢ、３ＴＢ…といった具合に、概ね０．５ＴＢ区切りで容量の表記がなされているが、これらの表記は、厳密な意味で正確な実記憶容量を表す表記ではないことが多い。
【００１３】
一例を挙げると、２．５ＴＢと表記されているハードディスク装置の場合、業界の慣例として、少なくとも２．５×１０12バイトの記憶容量は確保されているが、更にいくらか端数分の記憶容量が上乗せされた実記憶容量となっていることが多い。
【００１４】
この端数分の記憶容量は、ハードディスク装置において採用されているプラッタ当たりの記憶容量や、エラー訂正用に確保される記憶容量などが一律ではないため、メーカーごとに異なっていたり、メーカーは同じでも型番違いの機種ごとに異なっていたりする。あるいは、メーカー及び型番まで同一の機種であっても、仕様変更の前後で実記憶容量が異なっていることもある。さらに、２．５ＴＢと表記されているストレージデバイスであっても、それが２．５ＴｉＢを意味する表記であれば、その記憶容量は２．５×２40バイトとなるので、この場合も、実記憶容量は２．５×１０12バイトより大きくなる。
【００１５】
つまり、表記上は２．５ＴＢとの表記がなされている製品であっても、厳密な意味では実記憶容量が若干異なる可能性があり、その場合、記憶領域中のセクタ数も変わり得るため、記憶領域の末尾（最終セクタ）の位置は同一にはならないことがある。
【００１６】
そのため、このような表記に頼って同一表記の製品を入手したとしても、厳密な意味で実記憶容量が一致するストレージデバイスであるかどうかの保証はなく、特に型番まで同一の機種であっても仕様変更の前後で実記憶容量が異なることがある状況下では、実記憶容量が一致するストレージデバイスを入手することは困難であった。
【００１７】
したがって、例えばバックアップを作成したくても、実記憶容量がぴったり一致するデバイスが見つからない以上、複製によるバックアップの作成を断念せざるを得なかった。また、ストレージデバイスを複製して工業的に同じデータが記憶された製品を量産する場合にも、実記憶容量がぴったり一致するデバイスが見つからない限り、複製による量産をすることはできなかった。
【００１８】
本発明は、上記問題を解決するためになされたものであり、その目的は、実記憶容量に若干の違いがあるストレージデバイス間で複製を行った場合であっても、ＧＰＴ方式で作成されたパーティションに適切にアクセス可能な情報処理装置と、そのような情報処理装置を構成するためのプログラムを提供することにある。
【課題を解決するための手段】
【００１９】
以下、本発明において採用した構成について説明する。
本発明の情報処理装置は、ストレージデバイスの実際の記憶容量である実記憶容量を検出する実記憶容量検出手段と、前記実記憶容量検出手段によって検出された前記実記憶容量が２ＴｉＢを超える場合に、あらかじめ定められた複数の数値範囲の中から、前記実記憶容量が含まれる数値範囲を特定し、当該特定された数値範囲に応じて決まる当該数値範囲の下限値以下の所定値を、前記ストレージデバイスにおける有効な記憶容量である有効記憶容量として設定する有効記憶容量設定手段と、前記ストレージデバイス上に作成されたパーティションが、ＧＰＴ（GUID Partition Table）方式のパーティションである場合に、前記ストレージデバイスが備える記憶領域の始端側にある第一管理領域及び前記記憶領域の終端側にある第二管理領域のうち、前記第二管理領域の前記記憶領域内における位置を、前記有効記憶容量設定手段によって設定された前記有効記憶容量に基づいて特定して、前記第二管理領域に対するアクセスを行うデータ処理手段とを備えることを特徴とする。
【００２０】
このように構成された情報処理装置においては、実記憶容量が２ＴｉＢ以上のストレージデバイスについて、実記憶容量に多少の違いがあっても、その実記憶容量が含まれる数値範囲が同じであれば、同じ有効記憶容量が設定される。そして、ストレージデバイス上にＧＰＴ方式のパーティションが作成されている場合、記憶領域の終端側にある第二管理領域に対するアクセスを行う際には、設定された有効記憶容量に基づいて、第二管理領域の記憶領域内における位置を特定して、第二管理領域に対するアクセスを行う。
【００２１】
そのため、実記憶容量に多少の違いがあるストレージデバイスであっても、同じ有効記憶容量が設定されるストレージデバイスであれば、同じ有効記憶容量に基づいて同じ位置に第二管理領域が存在するものと認識することになる。
【００２２】
したがって、このような情報処理装置によれば、実記憶容量が異なっていても、同じ有効記憶容量が設定されるストレージデバイス同士であれば、一方のストレージデバイスの記憶内容を他方のストレージデバイスへそのまま複製して利用することが可能となる。
【００２３】
より詳しく説明すると、実記憶容量に基づいて第二管理領域の位置を特定する一般的なＧＰＴ方式対応の情報処理装置の場合、実記憶容量が異なれば第二記憶領域も異なる位置にあると認識する。そのため、実記憶容量が異なるストレージデバイス間で一方の記憶内容を他方へそのまま複製しても、複製先で第二記憶領域と認識される位置には、複製元の第二記憶領域が存在しないことになり、そのままでは、第二管理領域に対するアクセスを正常に実施することはできなくなる。
【００２４】
これに対し、本発明においては、上述した有効記憶容量に基づいて第二管理領域の位置を特定するので、実記憶容量が異なっていても、有効記憶容量が同じであれば第二記憶領域は同じ位置にあると認識する。そのため、有効記憶容量が同じストレージデバイス間で一方の記憶内容を他方へそのまま複製すれば、複製先で第二記憶領域と認識される位置には、複製元の第二記憶領域が存在することになり、第二管理領域に対するアクセスを正常に実施することができる。
【００２５】
よって、このような本発明の情報処理装置であれば、ストレージデバイスの実記憶容量に若干の違いがあっても、複製されたストレージデバイスを適正に利用することができ、これにより、例えばバックアップを作成する際に、実記憶容量がぴったり一致するデバイスを利用しなくても済むようになる。また、ストレージデバイスを複製して工業的に同じ製品を量産する場合にも、実記憶容量がぴったり一致するデバイスを利用することなく、所期の製品を量産することができるようになる。
【００２６】
ところで、本発明の情報処理装置において、前記データ処理手段は、前記第一管理領域及び前記第二管理領域それぞれから読み出されるデータに基づいて、いずれか一方又は両方のデータが不正であった場合に、不正なデータを修復する処理、又は不正なデータに基づく前記ストレージデバイスへのアクセスを禁止する処理を実行すると好ましい。
【００２７】
このように構成された情報処理装置においては、第一管理領域及び第二管理領域それぞれから読み出されるデータの少なくとも一方が不正であった場合に、そのような不正なデータに基づいてストレージデバイスへアクセスしてしまうのを、未然に防ぐことができる。
【００２８】
特に、実記憶容量が異なるストレージデバイス間で、記憶領域の複製を行った場合であっても、有効記憶容量が同じであれば第二記憶領域は同じ位置にあると認識されて、複製先となったストレージデバイスにおいても第二管理領域に対するアクセスを正常に実施できるので、第一管理領域及び第二管理領域それぞれから読み出されるデータに不正がないかどうかを正しく検査することができる。
【００２９】
なお、本発明は、ＧＰＴ方式のパーティションが作成されることとなる２ＴｉＢ以上の記憶容量を持つストレージデバイスを対象とする発明であるが、そのようなストレージデバイスの具体例としては、ハードディスク装置、ハードディスク装置と同等な接続インターフェースを備えたＳＳＤ（Solid State Drive）、コンパクトフラッシュ（登録商標）、又はコンパクトフラッシュと同等な接続インターフェースを備えたハードディスク装置などを挙げることができる。
【００３０】
さらに、本発明のプログラムは、ストレージデバイスが接続されるとともに、プログラムに従って各種制御を実行する制御部を備えていて、前記制御部が、オペレーティングシステムを機能させるとともに、当該オペレーティングシステムの制御下で構成されるカーネル空間では、前記ストレージデバイスに対する制御を実行するデバイス制御部を機能させる情報処理装置において、前記制御部を前記デバイス制御部を構成する手段として機能させるプログラムであって、前記制御部を、前記ストレージデバイスの実際の記憶容量である実記憶容量を検出する実記憶容量検出手段、前記実記憶容量検出手段によって検出された前記実記憶容量が２ＴｉＢを超える場合に、あらかじめ定められた複数の数値範囲の中から、前記実記憶容量が含まれる数値範囲を特定し、当該特定された数値範囲に応じて決まる当該数値範囲の下限値以下の所定値を、前記ストレージデバイスにおける有効な記憶容量である有効記憶容量として設定する有効記憶容量設定手段、及び、前記ストレージデバイス上に作成されたパーティションが、ＧＰＴ（GUID Partition Table）方式のパーティションである場合に、前記ストレージデバイスが備える記憶領域の始端側にある第一管理領域及び前記記憶領域の終端側にある第二管理領域のうち、前記第二管理領域の前記記憶領域内における位置を、前記有効記憶容量設定手段によって設定された前記有効記憶容量に基づいて特定して、前記第二管理領域に対するアクセスを行うデータ処理手段として機能させることを特徴とする。
【００３１】
このようなプログラムにより、デバイス制御部を構成する上記各手段として制御部を機能させれば、本発明の情報処理装置を構成することができる。
また、デバイス制御部を構成する上記各手段のうち、データ処理手段は、オペレーティングシステムの一部として実装されている場合があるので、その場合は、制御部を実記憶容量検出手段及び有効記憶容量設定手段として機能させるプログラムを利用するだけで、上記デバイス制御部を構成することができる。
【００３２】
具体的には、本発明のプログラムは、ストレージデバイスが接続されるとともに、プログラムに従って各種制御を実行する制御部を備えていて、前記制御部が、オペレーティングシステムを機能させるとともに、当該オペレーティングシステムの制御下で構成されるカーネル空間では、前記ストレージデバイスに対する制御を実行するデバイス制御部を機能させる情報処理装置において、前記制御部を前記デバイス制御部を構成する手段として機能させるプログラムであって、前記制御部を、前記ストレージデバイスの実際の記憶容量である実記憶容量を検出する実記憶容量検出手段、及び、前記実記憶容量検出手段によって検出された前記実記憶容量が２ＴｉＢを超える場合に、あらかじめ定められた複数の数値範囲の中から、前記実記憶容量が含まれる数値範囲を特定し、当該特定された数値範囲に応じて決まる当該数値範囲の下限値以下の所定値を、前記ストレージデバイスにおける有効な記憶容量である有効記憶容量として設定する有効記憶容量設定手段として機能させるプログラムとされており、前記デバイス制御部では、前記ストレージデバイス上に作成されたパーティションが、ＧＰＴ（GUID Partition Table）方式のパーティションである場合に、前記ストレージデバイスが備える記憶領域の始端側にある第一管理領域及び前記記憶領域の終端側にある第二管理領域のうち、前記第二管理領域の前記記憶領域内における位置を、前記有効記憶容量設定手段によって設定された前記有効記憶容量に基づいて特定して、前記第二管理領域に対するアクセスが行われる、という構成になっていてもよい。
【図面の簡単な説明】
【００３３】
【図１】ストレージデバイスの一例として例示するハードディスク装置に対するアクセスを行うＰＣのブロック図。
【図２】ＰＣが実行する処理のフローチャート。
【図３】設定された有効記憶容量と実記憶容量との関係を示す説明図。
【図４】複製元と複製先のストレージデバイスそれぞれの記憶領域におけるデータ構造を示す説明図。
【発明を実施するための形態】
【００３４】
次に、本発明の実施形態について一例を挙げて説明する。
［システム全体の構成］
図１は、パーソナルコンピュータ１（以下、ＰＣ１という）の概略的な構成を示すブロック図である。このＰＣ１は、図１に示すように、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＨＤＤ１４（ハードディスク装置１４）、操作部１５、表示部１６、及び通信インターフェース１７など、この種のＰＣとして周知の各種構成を備えている。
【００３５】
これらのうち、ＣＰＵ１１、ＲＯＭ１２、及びＲＡＭ１３は、ＰＣ１の各部を制御する制御部１Ａを構成している。ＰＣ１には、ＯＳとしてＬｉｎｕｘ（登録商標；以下同様。）が搭載されており、制御部１Ａにおいて各種プログラムに従った処理がＣＰＵ１１によって実行されることにより、制御部１ＡがＯＳを機能させる。そして、ＯＳの制御下で構成されるカーネル空間では、ストレージデバイスに対する制御を実行するデバイス制御部１Ｂが機能する。
【００３６】
また、このＰＣ１において、ＨＤＤ１４の記憶領域には、実記憶容量よりもいくらか小さい有効記憶容量が設定されていて、この有効記憶容量の記憶領域を対象にして、ＧＰＴ方式でパーティションが作成されている。ここで、実記憶容量とは、ＨＤＤ１４が本来備えている記憶容量のことである。また、有効記憶容量とは、ＰＣ１の備えるＯＳがＨＤＤ１４の記憶容量として認識する記憶容量のことである。
【００３７】
一般的なＰＣの場合、ここでいう実記憶容量と有効記憶容量は一致するのが普通である。しかし、本実施形態のＰＣ１は、２ＴｉＢを超える記憶容量を持つストレージデバイスについては、後述する処理により、実記憶容量よりもいくらか小さい記憶容量を有効記憶容量として認識する。そして、以降、ストレージデバイスは、有効記憶容量の記憶領域を備えるデバイスとして扱われ、実記憶容量と有効記憶容量との差分となる領域については、ＯＳに認識されない領域（空き領域）とされる。
【００３８】
［パーティションの認識に関連する処理］
次に、ＰＣ１において実行されるパーティションの認識に関連する処理について、図２（ａ）及び図２（ｂ）に基づいて説明する。図２（ａ）及び図２（ｂ）に示す処理は、デバイス制御部１Ｂにおいて実行される処理である。また、図２（ｂ）に示す処理は、上位モジュールから呼び出されるライブラリとして提供され、本実施形態においては、上位モジュールであるカーネルモジュールから呼び出される。
【００３９】
この処理を開始すると、デバイス制御部１Ｂ（厳密にはデバイス制御部１Ｂとしての機能を実現しているＣＰＵ１１；以下、単にデバイス制御部１Ｂという。）は、ストレージデバイス（本実施形態ではＨＤＤ１４）の有効記憶容量を取得する（Ｓ１）。具体的には、Ｓ１では図２（ｂ）に示すライブラリを呼び出し、これにより、図２（ｂ）に示すＳ１１へと進む。
【００４０】
Ｓ１１へ進むと、デバイス制御部１Ｂは、ストレージデバイスの実記憶容量を取得する（Ｓ１１）。この実記憶容量は、コマンド（SCSI：Read Capacity，IDE：Indentity）を発行することにより取得することができる。そして、実記憶容量を取得したら、デバイス制御部１Ｂは、その実記憶容量に応じた有効記憶容量を設定する（Ｓ１２）。
【００４１】
具体的には、本実施形態の場合、実記憶容量Ｘ、余裕分容量Ｙ＝１ＧＢ（１×１０9バイト）、セクタサイズＺ＝５１２バイトに基づいて、以下のルール（※１）〜（※３）で有効記憶容量を設定する。
【００４２】
まず、（※１）実記憶容量が「２ＴｉＢ（２×２40バイト）」以下であれば、その実記憶容量と同一値を有効記憶容量として設定する。また、（※２）実記憶容量が「２ＴｉＢ（２×２40バイト）」を超え「ＩＮＴ（（２．５ＴＢ（２．５×１０12バイト）−余裕分容量Ｙ）／セクタサイズＺ）＊セクタサイズＺ」未満であれば、２ＴｉＢ（２×２40バイト）を有効記憶容量として設定する。なお、上記数式中、ＩＮＴ（α）は、αの小数点以下を切り捨てて整数化した値を意味する（以下同様。）。
【００４３】
さらに、（※３）実記憶容量が「ＩＮＴ（（ｎＴＢ（ｎ×１０12バイト）−余裕分容量Ｙ）／セクタサイズＺ）＊セクタサイズＺ」以上で「ＩＮＴ（（（ｎ＋０．５）ＴＢ（（ｎ＋０．５）×１０12バイト）−余裕分容量Ｙ）／セクタサイズＺ）＊セクタサイズＺ」未満であれば、「ＩＮＴ（（ｎＴＢ（ｎ×１０12バイト）−余裕分容量Ｙ）／セクタサイズＺ）＊セクタサイズＺ」を有効記憶容量として設定する（ｎは、初期値２．５，増分０．５として、２．５，３．０，３．５，４．０，４．５…と０．５ずつ増える値。）。
【００４４】
例えば、実記憶容量が「ＩＮＴ（（２．５ＴＢ（２．５×１０12バイト）−余裕分容量Ｙ）／セクタサイズＺ）＊セクタサイズＺ」以上で「ＩＮＴ（（３．０ＴＢ（３．０×１０12バイト）−余裕分容量Ｙ）／セクタサイズＺ）＊セクタサイズＺ」未満であれば、「ＩＮＴ（（２．５ＴＢ（２．５×１０12バイト）−余裕分容量Ｙ）／セクタサイズＺ）＊セクタサイズＺ」が有効記憶容量として設定される。
【００４５】
以上のようなルール（※１）〜（※３）で有効記憶容量を設定することにより、実記憶容量が２．０ＴｉＢを超えている場合、実記憶容量が様々な値となっていても、一定のルールに従って端数分の記憶容量が切り捨てられ、その切り捨て後の記憶容量が有効記憶容量として設定される。
【００４６】
なお、本実施形態において、余裕分容量Ｙは１ＧＢとしてあるが、これはｎＴＢと表記されているストレージデバイスであっても、１ＧＢ未満の範囲内で記憶容量が不足している可能性を想定し、その想定の範囲内で最も容量が少ないデバイスを基準にして、記憶容量の切り捨てを行うために設定した値である。したがって、ｎＴＢと表記されているストレージデバイスであれば、必ず少なくともｎＴＢの記憶容量が保証されるのであれば、余裕分容量Ｙを０（ゼロ）としてもよいし、逆に１ＧＢを超える記憶容量が不足する可能性があるなら、余裕分容量Ｙとして１ＧＢを超える値を設定してもよい。
【００４７】
また、セクタサイズＺは５１２バイトとしてあるが、これも実際に採用されているセクタサイズに応じて任意に変更してもよく、例えば４ＫｉＢ（４×２10バイト）セクタを採用していれば、セクタサイズＺは４ＫｉＢ（４×２10バイト）とすればよい。
【００４８】
以上のような手法で有効記憶容量を設定すると、図３に例示するように、実記憶容量に若干のばらつきがあるストレージデバイスであっても、その有効記憶容量としては同一値が設定されることになる。また、本実施形態の場合、実記憶容量が０．５ＴＢ増えるごとに、設定される有効記憶容量が変わるので、有効記憶容量の設定に伴って切り捨てられることになる記憶容量（図３中の斜線部の領域）は、最大でも概ね０．５ＴＢであり、それ以上の記憶容量をいたずらに切り捨ててしまうことはない。
【００４９】
さて、以上のようなＳ１２を終えたら、続いて、デバイス制御部１Ｂは、設定した有効記憶容量を上位モジュールに返して（Ｓ１３）、この処理を終える。上位モジュールにおいて有効記憶容量を受け取ったデバイス制御部１Ｂは、続いて有効記憶容量に基づいて、パーティション管理方式を識別する（Ｓ２）。
【００５０】
本実施形態の場合、ＰＣ１では、２ＴｉＢ以下の有効記憶容量を持つストレージデバイスについては、ＭＢＲ方式でパーティションが作成されているものと識別する。また、２ＴｉＢを超える有効記憶容量を持つストレージデバイスについては、ＧＰＴ方式でパーティションが作成されているものと識別する。
【００５１】
特に、ＧＰＴ方式でパーティションが作成されているものと識別した場合には、記憶領域の先頭側にある第一管理領域と、記憶領域の末尾側にある第二管理領域からデータを読み出して、いずれか一方又は両方のデータが不正であった場合に、不正なデータを修復する処理や、不正なデータに基づくストレージデバイスへのアクセスを禁止する処理などを実行する。
【００５２】
その際、ＰＣ１は、有効記憶容量に基づいて第二管理領域の位置を特定するため、図３に例示したように、実記憶容量に若干のばらつきがあるストレージデバイスであっても、ＰＣ１は、有効記憶領域の末尾に第二管理領域があるものと認識することになり、同一位置から第二管理領域を読み取ることになる。
【００５３】
したがって、このＰＣ１の場合、図３に例示したようなストレージデバイスであれば、実記憶容量には違いがあるものの、これらのストレージデバイス間で記憶領域を丸ごと複写しても、適正な第二記憶領域を認識することができる。
【００５４】
なお、Ｓ２を終えたら、識別したパーティション管理方式に従って、各パーティションを所定のマウントポイントにマウントして（Ｓ３）、以降は、各パーティション内のデータにアクセスする（Ｓ４）。なお、Ｓ４での具体的な処理については種々考え得るが、それらの処理内容自体は本発明の要部とは直接関連しないので、これ以上の説明は省略する。
【００５５】
［効果］
以上説明したように、上記ＰＣ１によれば、実記憶容量が２ＴｉＢを超えるストレージデバイスについて、実記憶容量に多少の違いがあっても、同じ有効記憶容量が設定されるストレージデバイスであれば、同じ位置に第二管理領域が存在するものと認識する。
【００５６】
したがって、ＧＰＴ方式でパーティションが作成されても、同じ有効記憶容量が設定されるストレージデバイス同士であれば、一方のストレージデバイスの記憶内容を他方のストレージデバイスへそのまま複製して利用することが可能となる。
【００５７】
よって、例えばバックアップを作成する際に、実記憶容量がぴったり一致するデバイスを利用しなくても済むようになる。また、ストレージデバイスを複製して工業的に同じデータが記憶された製品を量産する場合にも、実記憶容量がぴったり一致するデバイスを利用することなく、所期の製品を量産することができるようになる。
【００５８】
［その他の実施形態］
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
【００５９】
例えば、上記実施形態では、ＧＰＴ方式のパーティションが作成されることとなる２ＴｉＢ以上の記憶容量を持つストレージデバイスとして、ＨＤＤ１４を例示したが、ハードディスク装置以外のストレージデバイスを対象とする場合にも、本発明を適用できる。例えば、ハードディスク装置と同等な接続インターフェースを備えたＳＳＤ（Solid State Drive）、コンパクトフラッシュ、又はコンパクトフラッシュと同等な接続インターフェースを備えたハードディスク装置などを対象に、本発明を適用してもよい。
【００６０】
また、上記実施形態では、図２（ｂ）に示す処理を上位モジュールから呼び出されるライブラリとして構成してあったが、同等な処理を上位モジュールであるカーネルモジュールの処理として組み込んであってもよい。
【符号の説明】
【００６１】
１・・・パーソナルコンピュータ、１Ａ・・・制御部、１Ｂ・・・デバイス制御部、１１・・・ＣＰＵ、１２・・・ＲＯＭ、１３・・・ＲＡＭ、１４・・・ハードディスク装置、１５・・・操作部、１６・・・表示部、１７・・・通信インターフェース。
【図１】
0005500201.tif 000002
【図２】
0005500201.tif 000003
【図３】
0005500201.tif 000004
【図４】
0005500201.tif 000005