Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5569572B2 - 情報処理装置及びプログラム - Google Patents
[go: Go Back, main page]

JP5569572B2 - 情報処理装置及びプログラム - Google Patents

情報処理装置及びプログラム Download PDF

Info

Publication number
JP5569572B2
JP5569572B2 JP2012216233A JP2012216233A JP5569572B2 JP 5569572 B2 JP5569572 B2 JP 5569572B2 JP 2012216233 A JP2012216233 A JP 2012216233A JP 2012216233 A JP2012216233 A JP 2012216233A JP 5569572 B2 JP5569572 B2 JP 5569572B2
Authority
JP
Japan
Prior art keywords
storage capacity
storage
operating system
storage device
capacity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012216233A
Other languages
English (en)
Other versions
JP2014071594A (ja
Inventor
克洋 春木
文敏 宇野
豊 瀧尻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2012216233A priority Critical patent/JP5569572B2/ja
Publication of JP2014071594A publication Critical patent/JP2014071594A/ja
Application granted granted Critical
Publication of JP5569572B2 publication Critical patent/JP5569572B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、情報処理装置及びプログラムに関する。
従来、ストレージデバイスの記憶領域に作成されるパーティションの管理方式としては、MBR(Master Boot Record)方式が広く用いられてきた。しかし、近年、ストレージデバイスの大容量化が進み、2TiB(2×240バイト)を超える記憶容量のストレージデバイスが登場したため、MBR方式では適正なパーティション管理ができない状況に至っている。
そのため、大容量ストレージデバイスにも対応したパーティション管理方式として、既にGPT(GUID Partition Table)方式と呼ばれる管理方式が提案され、事実上の標準的な規格として普及しつつある(例えば、特許文献1の段落[0032]及び[図10]参照。)。
特開2009−98890号公報
ところで、ストレージデバイスの故障時に備えてストレージデバイスのバックアップを作成したい場合や、全く同一のデータが記録されたストレージデバイスを工業的に量産したい場合に、複製元のストレージデバイスから複製先のストレージデバイスへ記憶領域の内容を丸ごと複製することがある。
しかし、このような複製を行う際、ストレージデバイスの記憶領域にGPT方式でパーティションが作成されていると、以下のような問題が発生する。
まず、ストレージデバイスの記憶領域にGPT方式でパーティションが作成されている場合(図5中の複製元ストレージデバイス参照。)、記憶領域の先頭側には、プライマリパーティションテーブルと呼ばれる管理領域(以下、第一管理領域とも称する。)が確保される。また、記憶領域の末尾側には、バックアップパーティションテーブルと呼ばれる管理領域(以下、第二管理領域とも称する。)が確保される。
第二管理領域は、第一管理領域のバックアップとして利用され、例えば、第一管理領域内に不整合が見つかった場合には、第二管理領域が参照される。このとき、第二管理領域内に不整合が見つからなければ、第二管理領域のデータを利用して第一管理領域の修復を行うことができる。また、第二管理領域内にも不整合が見つかれば、データの信頼性が保証できないものと判断して、パーティションへのアクセスを禁止するなどの対処ができる。
このような前提のもと、ストレージデバイスの記憶領域を丸ごと複製する際には、複製先のストレージデバイスの実際の記憶容量(以下、実記憶容量とも称する。)が、複製元のストレージデバイスの実記憶容量以上であれば、複製を行うこと自体は可能である。
しかし、実記憶容量が異なるストレージデバイス間で複製を行うと、図5に例示するように、複製先のストレージデバイスにおいて「本来第二管理領域があるべき領域(図5参照)」には、複製元の第二管理領域と同等なデータが複製されないことになる。また、「複製元の第二管理領域と同等なデータが複製された領域(図5参照)」は存在するものの、その領域は本来第二管理領域があるべき領域とは別の記録位置(別の論理ブロック番号が付与された論理ブロック群)になる。
そのため、PC(Personal Computer)などの情報処理装置は、複製先のストレージデバイスにGPT方式でパーティションが作成されていると想定される場合、「本来第二管理領域があるべき領域」から所期のデータを読み込もうとするものの、不正なデータが読み込まれることになる。その結果、第一管理領域と第二管理領域との間でデータの不整合が生じ、ストレージデバイス上のパーティションに対して適正なアクセスができなくなるなどの問題を招くことになる。
こうした問題を回避する方法として、理想的には、複製元のストレージデバイスと複製先のストレージデバイスとで、実記憶容量が一致するものを使用すればよい。この場合、第二管理領域が記憶領域の末尾に複製されるので、上述のような問題は発生しない。
しかし、現実的には、実記憶容量が一致するストレージデバイスを用意するのは、必ずしも容易ではない、という問題がある。
例えば、市販されているストレージデバイスの記憶容量は、近年、2TB、2.5TB、3TB…といった具合に、概ね0.5TB区切りで容量の表記がなされているが、これらの表記は、厳密な意味で正確な実記憶容量を表す表記ではないことが多い。
一例を挙げると、2.5TBと表記されているハードディスク装置の場合、業界の慣例として、少なくとも2.5×1012バイトの記憶容量は確保されているが、更にいくらか端数分の記憶容量が上乗せされた実記憶容量となっていることが多い。
この端数分の記憶容量は、ハードディスク装置において採用されているプラッタ当たりの記憶容量や、エラー訂正用に確保される記憶容量などが一律ではないため、メーカーごとに異なっていたり、メーカーは同じでも型番違いの機種ごとに異なっていたりする。あるいは、メーカー及び型番まで同一の機種であっても、仕様変更の前後で実記憶容量が異なっていることもある。さらに、2.5TBと表記されているストレージデバイスであっても、それが2.5TiBを意味する表記であれば、その記憶容量は2.5×240バイトとなるので、この場合も、実記憶容量は2.5×1012バイトより大きくなる。
つまり、表記上は2.5TBとの表記がなされている製品であっても、厳密な意味では実記憶容量が若干異なる可能性があり、その場合、記憶領域中のセクタ数も変わり得るため、記憶領域の末尾(最終セクタ)の記録位置(最終セクタの論理ブロック番号)は同一にはならないことがある。
そのため、このような表記に頼って同一表記の製品を入手したとしても、厳密な意味で実記憶容量が一致するストレージデバイスであるかどうかの保証はなく、特に型番まで同一の機種であっても仕様変更の前後で実記憶容量が異なることがある状況下では、実記憶容量が一致するストレージデバイスを入手することは困難であった。
したがって、例えばバックアップを作成したくても、実記憶容量がぴったり一致するデバイスが見つからない以上、複製によるバックアップの作成を断念せざるを得なかった。また、ストレージデバイスを複製して工業的に同じデータが記憶された製品を量産する場合にも、実記憶容量がぴったり一致するデバイスが見つからない限り、複製による量産をすることはできなかった。
本発明は、上記問題を解決するためになされたものであり、その目的は、実記憶容量に若干の違いがあるストレージデバイス間で複製を行った場合であっても、GPT方式で作成されたパーティションに適切にアクセス可能な情報処理装置と、そのような情報処理装置を構成するためのプログラムを提供することにある。
以下、本発明において採用した構成について説明する。
本発明の情報処理装置は、GPT(GUID Partition Table)方式のパーティションが作成されたストレージデバイスが接続されるとともに、プログラムに従った処理を実行する制御部を備え、前記制御部において機能するオペレーティングシステムによって前記ストレージデバイスが制御される情報処理装置であって、前記制御部は、前記ストレージデバイスがリムーバブルメディアデバイスであると前記オペレーティングシステムに認識させるためのデバイス種別情報を、前記オペレーティングシステムに伝達するデバイス種別情報伝達手段と、前記ストレージデバイス上にある所定の記憶領域からデータを読み出し、当該読み出したデータ中に、前記ストレージデバイスに対してあらかじめ設定されて前記所定の記憶領域に記憶させてある「前記オペレーティングシステムに認識させたい前記ストレージデバイスの記憶容量である第一記憶容量」が含まれていると判定された場合に、前記読み出したデータ中から前記第一記憶容量を取得する第一記憶容量取得手段と、前記デバイス種別伝達手段によって前記リムーバブルメディアデバイスであると前記オペレーティングシステムに認識された前記ストレージデバイスにおいて、メディアが交換されたと前記オペレーティングシステムに認識させるためのメディア交換情報を、前記オペレーティングシステムに伝達するメディア交換情報伝達手段と、前記メディア交換情報伝達手段によって前記メディアが交換されたと前記オペレーティングシステムが認識するのに伴って、前記オペレーティングシステムが前記ストレージデバイスの記憶容量を再認識しようとしたときに、前記第一記憶容量取得手段によって取得された前記第一記憶容量が前記ストレージデバイスの記憶容量であると前記オペレーティングシステムに認識させるための記憶容量情報を、前記オペレーティングシステムに伝達する記憶容量情報伝達手段と、前記記憶容量情報伝達手段により、記憶容量が前記第一記憶容量であると前記オペレーティングシステムに認識された前記ストレージデバイスにおいて、当該ストレージデバイスが備える記憶領域の始端側に作成される第一管理領域及び前記記憶領域の終端側に作成される第二管理領域のうち、前記第二管理領域の前記記憶領域内における記録位置を、前記第一記憶容量に基づいて特定して、前記第二管理領域に対するアクセスを行うデータ処理手段とを備える。
このように構成された情報処理装置において、デバイス種別情報伝達手段は、ストレージデバイスがリムーバブルメディアデバイスか否かを問わず、ストレージデバイスがリムーバブルメディアデバイスである旨のデバイス種別情報をオペレーティングシステムに伝達する。これにより、オペレーティングシステムは、ストレージデバイスがリムーバブルメディアデバイスであると認識する。
そして、メディア交換情報伝達手段は、メディアが交換された旨のメディア交換情報をオペレーティングシステムに伝達する。これにより、オペレーティングシステムは、リムーバブルメディアデバイスであると認識しているストレージデバイスにおいて、メディアが交換されたと認識し、ストレージデバイスの記憶容量を再認識しようとする。
このときに、記憶容量情報伝達手段は、第一記憶容量取得手段によってストレージデバイス上にある所定の記憶領域から読み出された第一記憶容量がストレージデバイスの記憶容量である旨の記憶容量情報をオペレーティングシステムに伝達する。その結果、ストレージデバイスの実際の記憶容量がどのような値であるかにかかわらず、ストレージデバイス上にある所定の記憶領域から読み出された第一記憶容量が、ストレージデバイスの記憶容量としてオペレーティングシステムに認識されることになる。
データ処理手段は、記憶領域の終端側にある第二管理領域に対するアクセスを行う際には、オペレーティングシステムに再認識されたストレージデバイス記憶容量に基づいて、第二管理領域の記憶領域内における記録位置を特定して、第二管理領域に対するアクセスを行う。
そのため、実際の記憶容量に多少の違いがあるストレージデバイスであっても、上記第一記憶容量として同じ値を記憶させておけば、同じ第一記憶容量に基づいて同じ記録位置に第二管理領域が存在するものと認識することになる。
したがって、このような情報処理装置によれば、ストレージデバイスの実際の記憶容量が異なっていても、同じ第一記憶容量が設定されるストレージデバイス同士であれば、一方のストレージデバイスの記憶内容を他方のストレージデバイスへそのまま複製して利用することが可能となる。
より詳しく説明すると、実際の記憶容量に基づいて第二管理領域の記録位置(論理ブロック番号;以下同様。)を特定する一般的なGPT方式対応の情報処理装置の場合、実際の記憶容量が異なれば第二記憶領域も異なる記録位置にあると認識する。そのため、実際の記憶容量が異なるストレージデバイス間で一方の記憶内容を他方へそのまま複製しても、複製先で第二記憶領域と認識される記録位置には、複製元の第二記憶領域が存在しないことになり、そのままでは、第二管理領域に対するアクセスを正常に実施することはできなくなる。
これに対し、本発明においては、上述した第一記憶容量に基づいて第二管理領域の記録位置を特定するので、実際の記憶容量が異なっていても、第一記憶容量が同じであれば第二記憶領域は同じ記録位置にあると認識する。そのため、第一記憶容量として同じ値が設定されたストレージデバイス間で一方の記憶内容を他方へそのまま複製すれば、複製先で第二記憶領域と認識される記録位置には、複製元の第二記憶領域が存在することになり、第二管理領域に対するアクセスを正常に実施することができる。
よって、このような本発明の情報処理装置であれば、ストレージデバイスの実際の記憶容量に若干の違いがあっても、複製されたストレージデバイスを適正に利用することができ、これにより、例えばバックアップを作成する際に、実際の記憶容量がぴったり一致するデバイスを利用しなくても済むようになる。また、ストレージデバイスを複製して工業的に同じ製品を量産する場合にも、実際の記憶容量がぴったり一致するデバイスを利用することなく、所期の製品を量産することができるようになる。
ところで、本発明の情報処理装置において、前記制御部は、前記第一記憶容量取得手段によって前記所定の記憶領域から前記第一記憶容量を読み出すことができるようになる前の時点において、前記第一記憶容量取得手段とは異なる手順で、前記ストレージデバイスの実記憶容量に応じて設定される有効記憶容量である第二記憶容量を取得する第二記憶容量取得手段と、前記第一記憶容量取得手段によって前記所定の記憶領域から前記第一記憶容量を読み出した後の時点で、前記第一記憶容量と前記第二記憶容量が一致するか否かを判定する判定手段とを備え、前記メディア交換情報伝達手段は、前記判定手段によって一致しないとの判定がなされた場合に、前記メディア交換情報を前記オペレーティングシステムに伝達することが好ましい。
このように構成された情報処理装置によれば、ストレージデバイスから第一記憶容量を読み出すことができるようになる前の時点において、第二記憶容量取得手段が、第一記憶容量取得手段とは異なる手順で、ストレージデバイスの実記憶容量に応じて設定される有効記憶容量である第二記憶容量を取得する。この第二記憶容量は、オペレーティングシステム側の都合、あるいはその他の事情で、上記第一記憶容量を取得する前の時点で認識されてしまう記憶容量である。
このような第二記憶容量が取得された場合でも、判定手段は、第一記憶容量取得手段によって所定の記憶領域から第一記憶容量を読み出した後の時点で、第一記憶容量と第二記憶容量が一致するか否かを判定する。そして、メディア交換情報伝達手段は、判定手段によって一致しないとの判定がなされた場合に、上述のメディア交換情報をオペレーティングシステムに伝達する。
したがって、第一記憶容量と第二記憶容量が不一致となった場合でも、それが判明したらメディア交換が行われた旨のメディア交換情報がオペレーティングシステムに伝達され、これにより、オペレーティングシステムは、リムーバブルメディアデバイスであると認識しているストレージデバイスにおいて、メディアが交換されたと認識し、ストレージデバイスの記憶容量を再認識しようとする。
よって、以降は、記憶容量情報伝達手段が、第一記憶容量がストレージデバイスの記憶容量である旨の記憶容量情報をオペレーティングシステムに伝達し、その結果、ストレージデバイスの実際の記憶容量がどのような値であるかにかかわらず、第一記憶容量をストレージデバイスの記憶容量としてオペレーティングシステムに認識させることができる。
また、本発明の情報処理装置において、前記メディア交換情報伝達手段は、前記判定手段によって一致しないとの判定がなされた後、所定時間が経過するまで待機した後に、前記メディア交換情報を前記オペレーティングシステムに伝達することが好ましい。
このように構成された情報処理装置によれば、判定手段によって一致しないとの判定がなされた後、所定時間が経過してから、メディア交換情報がオペレーティングシステムに伝達される。この所定時間は、ストレージデバイスへのアクセスが続く時間を考慮して、それよりも十分に長い時間とされる。
このようなタイミングでメディア交換情報がオペレーティングシステムに伝達されれば、ストレージデバイスへのアクセスが続くときにメディア交換情報が伝達されてしまうのを回避することができる。したがって、ストレージデバイスへのアクセスが続いているにもかかわらず、メディア交換がなされてしまうという状況にはならず、このような状況となったことに起因するトラブルや不整合を防止ないし抑制することができる。
また、本発明の情報処理装置において、前記第一記憶容量取得手段は、前記ストレージデバイスの先頭ブロックにあるMBR(Master Boot Record)から、前記第一記憶容量を読み出すことが好ましい。
このように構成された情報処理装置によれば、MBR方式でパーティションを管理しているストレージデバイスとの整合性を確保するために用意されているダミーのMBRを有効に利用して、第一記憶容量を格納しておくことができる。
さらに、本発明のプログラムは、GPT(GUID Partition Table)方式のパーティションが作成されたストレージデバイスが接続されるとともに、プログラムに従った処理を実行する制御部を備え、前記制御部において機能するオペレーティングシステムによって前記ストレージデバイスが制御される情報処理装置において、前記制御部を、前記ストレージデバイスがリムーバブルメディアデバイスであると前記オペレーティングシステムに認識させるためのデバイス種別情報を、前記オペレーティングシステムに伝達するデバイス種別情報伝達手段、前記ストレージデバイス上にある所定の記憶領域からデータを読み出し、当該読み出したデータ中に、前記ストレージデバイスに対してあらかじめ設定されて前記所定の記憶領域に記憶させてある「前記オペレーティングシステムに認識させたい前記ストレージデバイスの記憶容量である第一記憶容量」が含まれていると判定された場合に、前記読み出したデータ中から前記第一記憶容量を取得する第一記憶容量取得手段、前記デバイス種別伝達手段によって前記リムーバブルメディアデバイスであると前記オペレーティングシステムに認識された前記ストレージデバイスにおいて、メディアが交換されたと前記オペレーティングシステムに認識させるためのメディア交換情報を、前記オペレーティングシステムに伝達するメディア交換情報伝達手段、前記メディア交換情報伝達手段によって前記メディアが交換されたと前記オペレーティングシステムが認識するのに伴って、前記オペレーティングシステムが前記ストレージデバイスの記憶容量を再認識しようとしたときに、前記第一記憶容量取得手段によって取得された前記第一記憶容量が前記ストレージデバイスの記憶容量であると前記オペレーティングシステムに認識させるための記憶容量情報を、前記オペレーティングシステムに伝達する記憶容量情報伝達手段、及び前記記憶容量情報伝達手段により、記憶容量が前記第一記憶容量であると前記オペレーティングシステムに認識された前記ストレージデバイスにおいて、当該ストレージデバイスが備える記憶領域の始端側に作成される第一管理領域及び前記記憶領域の終端側に作成される第二管理領域のうち、前記第二管理領域の前記記憶領域内における記録位置を、前記第一記憶容量に基づいて特定して、前記第二管理領域に対するアクセスを行うデータ処理手段として機能させる。
このようなプログラムにより、情報処理装置が備える制御部を上記各手段として機能させれば、本発明の情報処理装置を構成することができる。
ストレージデバイスの一例として例示するハードディスク装置に対するアクセスを行うPCのブロック図。 PCが実行する処理のフローチャート。 S103の処理の詳細を示すフローチャート。 設定された有効記憶容量と実記憶容量との関係を示す説明図。 複製元と複製先のストレージデバイスそれぞれの記憶領域におけるデータ構造を示す説明図。
次に、本発明の実施形態について一例を挙げて説明する。
[システム全体の構成]
図1は、パーソナルコンピュータ1(以下、PC1という)の概略的な構成を示すブロック図である。このPC1は、図1に示すように、CPU11、ROM12、RAM13、HDD14(ハードディスク装置14)、操作部15、表示部16、及び通信インターフェース17など、この種のPCとして周知の各種構成を備えている。
これらのうち、CPU11、ROM12、及びRAM13は、PC1の各部を制御する制御部1Aを構成している。PC1には、OSとしてLinux(登録商標;以下同様。)が搭載されており、制御部1Aにおいて各種プログラムに従った処理がCPU11によって実行されることにより、制御部1AがOSを機能させる。
また、このPC1において、HDD14の記憶領域には、実記憶容量よりもいくらか小さい有効記憶容量が設定されていて、この有効記憶容量の記憶領域を対象にして、GPT方式でパーティションが作成されている。ここで、実記憶容量とは、HDD14が本来備えている記憶容量のことである。また、有効記憶容量とは、PC1の備えるOSがHDD14の記憶容量として認識する記憶容量のことである。
一般的なPCの場合、ここでいう実記憶容量と有効記憶容量は一致するのが普通である。しかし、本実施形態のPC1は、2TiBを超える記憶容量を持つストレージデバイスについては、後述する処理により、実記憶容量よりもいくらか小さい記憶容量を有効記憶容量として認識する。そして、以降、ストレージデバイスは、有効記憶容量の記憶領域を備えるデバイスとして扱われ、実記憶容量と有効記憶容量との差分となる領域については、OSに認識されない領域(空き領域)とされる。
[HDDの記憶容量の認識に関連する処理]
次に、PC1において実行されるHDD14の記憶容量の認識に関連する処理について、図2及び図3に基づいて説明する。図2に示す処理は、PC1において電源スイッチがONとされたときに実行される処理である。
この処理を開始すると、PC1は、電源を起動し(S101)、その後、HDD14のデバイス種別情報を取得したら、HDD14のデバイス種別をリムーバブルディスクとフェイク設定する(S102)。
より詳しくは、本実施形態の場合、HDD14としてはSCSIデバイスとして認識されるストレージデバイスが利用されている。そのため、S102では、SCSIコマンドの一つであるinquiryコマンドを発行することで、デバイス種別情報を含む様々な情報を取得する。ここで、HDD14は、本来はリムーバブルディスクではないので、inquiryコマンドによってデバイス種別情報を取得すると、デバイス種別情報としては、リムーバブルディスクではない旨の情報が得られる。しかし、S102では、取得したデバイス種別情報の一部を強制的に書き換える(具体的には、リムーバブルディスクであるか否かを示すビットをオンにする)ことにより、HDD14のデバイス種別をリムーバブルディスクとフェイク設定する。
続いて、C1は、HDD14の有効記憶容量情報を取得して、結果を「データ#1」に保存する(S103)。具体的には、本実施形態の場合、S103では図3に示すライブラリを呼び出す。図3に示すライブラリを呼び出すと、S201へと進むことになり、PC1は、ストレージデバイスの実記憶容量を取得する(S201)。この実記憶容量は、SCSIコマンドの一つであるRead Capacityコマンドを発行することにより取得することができる。そして、実記憶容量を取得したら、PC1は、その実記憶容量に応じた有効記憶容量を設定する(S202)。
具体的には、本実施形態の場合、実記憶容量X、余裕分容量Y=1GB(1×109バイト)、セクタサイズZ=512バイトに基づいて、以下のルール(※1)〜(※3)で有効記憶容量を設定する。
まず、(※1)実記憶容量が「2TiB(2×240バイト)」以下であれば、その実記憶容量と同一値を有効記憶容量として設定する。また、(※2)実記憶容量が「2TiB(2×240バイト)」を超え「INT((2.5TB(2.5×1012バイト)−余裕分容量Y)/セクタサイズZ)*セクタサイズZ」未満であれば、2TiB(2×240バイト)を有効記憶容量として設定する。なお、上記数式中、INT(α)は、αの小数点以下を切り捨てて整数化した値を意味する(以下同様。)。
さらに、(※3)実記憶容量が「INT((nTB(n×1012バイト)−余裕分容量Y)/セクタサイズZ)*セクタサイズZ」以上で「INT(((n+0.5)TB((n+0.5)×1012バイト)−余裕分容量Y)/セクタサイズZ)*セクタサイズZ」未満であれば、「INT((nTB(n×1012バイト)−余裕分容量Y)/セクタサイズZ)*セクタサイズZ」を有効記憶容量として設定する(nは、初期値2.5,増分0.5として、2.5,3.0,3.5,4.0,4.5…と0.5ずつ増える値。)。
例えば、実記憶容量が「INT((2.5TB(2.5×1012バイト)−余裕分容量Y)/セクタサイズZ)*セクタサイズZ」以上で「INT((3.0TB(3.0×1012バイト)−余裕分容量Y)/セクタサイズZ)*セクタサイズZ」未満であれば、「INT((2.5TB(2.5×1012バイト)−余裕分容量Y)/セクタサイズZ)*セクタサイズZ」が有効記憶容量として設定される。
以上のようなルール(※1)〜(※3)で有効記憶容量を設定することにより、実記憶容量が2.0TiBを超えている場合、実記憶容量が様々な値となっていても、一定のルールに従って端数分の記憶容量が切り捨てられ、その切り捨て後の記憶容量が有効記憶容量として設定される。
なお、本実施形態において、余裕分容量Yは1GBとしてあるが、これはnTBと表記されているストレージデバイスであっても、1GB未満の範囲内で記憶容量が不足している可能性を想定し、その想定の範囲内で最も容量が少ないデバイスを基準にして、記憶容量の切り捨てを行うために設定した値である。したがって、nTBと表記されているストレージデバイスであれば、必ず少なくともnTBの記憶容量が保証されるのであれば、余裕分容量Yを0(ゼロ)としてもよいし、逆に1GBを超える記憶容量が不足する可能性があるなら、余裕分容量Yとして1GBを超える値を設定してもよい。
また、セクタサイズZは512バイトとしてあるが、これも実際に採用されているセクタサイズに応じて任意に変更してもよく、例えば4KiB(4×210バイト)セクタを採用していれば、セクタサイズZは4KiB(4×210バイト)とすればよい。
以上のような手法で有効記憶容量を設定すると、図4に例示するように、実記憶容量に若干のばらつきがあるストレージデバイスであっても、その有効記憶容量としては同一値が設定されることになる。また、本実施形態の場合、実記憶容量が0.5TB増えるごとに、設定される有効記憶容量が変わるので、有効記憶容量の設定に伴って切り捨てられることになる記憶容量(図4中の斜線部の領域)は、最大でも概ね0.5TBであり、それ以上の記憶容量をいたずらに切り捨ててしまうことはない。
さて、以上のようなS202を終えたら、続いて、PC1は、設定した有効記憶容量を上位モジュールに返して(S203)、この処理を終える。上位モジュールにおいて有効記憶容量を取得したPC1は、S103において、その結果をデータ#1に保存する。
こうしてS103を終えたら、続いてPC1は、「容量チェンジフラグ」がセットされているか否かを判断する(S104)。この「容量チェンジフラグ」は、後述する処理の中でセットされるフラグであり、S104を初めて実行する段階ではセットされていないので(S104:リセット)、この場合はS105へ進む。
S105では、PC1は、MBRを読み出し、データ#2に保存する(S105)。ここでいうMBRは、図1中に示したダミーMBR領域のことであり、本実施形態においては、ダミーMBR領域内にフェイク情報領域が確保されている。
より詳しくは、本実施形態の場合、HDD14にはGPT方式でパーティションが作成されているため、ダミーMBR領域には、MBR方式に準じた形式でデータ領域が確保されているものの、実際には利用されていない未使用領域が残されている。そこで、本実施形態においては、その未使用領域を活用して、フェイク情報領域が確保されている。フェイク情報領域には、フェイク情報領域である旨を示すチャンクデータ、HDD14の有効記憶容量(フェイク容量)を示すセクタ数などが格納されている(図1参照。)。S105では、このようなMBRを読み出して、それをデータ#2に保存する。
続いて、PC1は、データ#2中に記憶容量情報が含まれているか否かを判断する(S106)。具体的には、フェイク情報領域である旨を示すチャンクデータとして有効な情報が格納されており、かつ、HDD14の有効記憶容量(フェイク容量)を示すセクタ数が格納されているか否かを判断する。
ここで、データ#2中に記憶容量情報が含まれていなければ(S106:なし)、本処理を終了する。この場合、S103で取得された有効記憶容量情報の示す記憶容量が、HDD14の記憶容量としてPC1に認識されることになる。
一方、S106において、データ#2中に記憶容量情報が含まれていた場合(S106:あり)、PC1は、データ#1とデータ#2とで記憶容量情報が一致するか否かを判断する(S107)。
ここで、データ#1とデータ#2とで記憶容量情報が一致する場合は(S107:一致)、本処理を終了する。この場合は、記憶容量情報が一致しているので、詳しくは後述するが、後述する処理を実行する必要はなく、一致すると判断された記憶容量情報の示す記憶容量が、HDD14の記憶容量としてPC1に認識されることになる。
一方、S107において、データ#1とデータ#2とで記憶容量情報が一致しない場合(S107:不一致)、PC1は、「容量チェンジフラグ」をセットする(S108)。この「容量チェンジフラグ」は、PC1がS103において既に認識したHDD14の記憶容量と、PC1に認識させたいHDD14の記憶容量とに違いがある場合に、セットされるフラグである。
ただし、このフラグをセットした段階では、パーティションシステム関連の様々な処理が実行されている状態にある。そのため、PC1にHDD14の記憶容量を再認識させるための処理を直ちには実行せず、PC1は、パーティションシステムが定常状態になるまで所定時間待機する(S109)。なお、この所定時間は、CPU11やHDD14の性能に応じて変わるので、試験的に実測値を求めるなどの手法で十分な長さの時間を設定すればよい。
さて、S109で所定時間の待機を終えたら、PC1は、inquiryコマンド・request sense以外の全SCSIコマンドに対し、check conditionステータスを返し、request senseコマンドに対し、medium changedステータスを返す(S110)。
このS110の処理は、リムーバブルディスクにおいて、リムーバブルメディアが取り出された状態を擬似的に再現した処理である。HDD14は、本来はリムーバブルディスクではないので、当然ながら、実際にはリムーバブルメディアが取り出された状態にもならない。しかし、本実施形態では、S102においてフェイク設定を行ってあるため、S110の処理を実行することで、PC1にリムーバブルメディアが取り出されたと認識させることができる。
PC1にリムーバブルメディアが取り出されたと認識させると、PC1は、HDD14の記憶容量を再認識するため、S103へと戻る。このような処理は、PC1が備えるOSにおける既存の処理であるが、本実施形態では、HDD14がリムーバブルディスクであるとフェイク設定することで、上記既存の処理を利用してHDD14の記憶容量を再認識させている。
このような手法を使ってあえてHDD14の記憶容量を再認識させているのは、PC1が備えるOSにおける既存の処理において、S103とS105の処理順序が図2に示したような順序になっているためである。すなわち、PC1が備えるOSにおいては、HDD14のMBRが読み出し可能となる段階(S105を実行する段階)よりも前の段階(S103を実行する段階)で、HDD14の記憶容量を取得する。そのため、S105において、MBRからフェイク容量を読み出したとしても、HDD14の記憶容量はS103の段階で認識済みとなっており、通常は、その認識済み記憶容量の変更を行うことができない。
これに対し、本実施形態においては、S102の段階で、HDD14のデバイス種別がリムーバブルディスクである旨のフェイク情報をあらかじめ設定しておくことで、HDD14の記憶容量が動的に変化し得る旨をOSに認識させている。そして、S110では、リムーバブルディスク交換された状況を擬似的に作り出すことで、S105を実行した後に、再びS103を実行させている。こうすることで、本来であれば、S103,S105の順序でしか実行されない処理を、更にS105,S103の順序で再実行させている。
さて、こうしてS103へ戻った後、S104へと進むと、このときは「容量チェンジフラグ」が、S108においてセットされた後の段階となるので(S104:セット)、この場合は、データ#2の記憶容量情報をデータ#1に保存して、「容量チェンジフラグ」をリセットする(S111)。このS111の処理により、データ#1の記憶容量情報はデータ#2の記憶容量情報と一致する情報に書き換えられる。
以降は、S105,S106:あり、と進むと、S107においては、S111を実行している結果、必ずデータ#1とデータ#2とで記憶容量情報が一致するので(S107:一致)、本処理を終了することになる。
以上説明したような処理を実行するPC1では、HDD14にGPT方式でパーティションが作成されていると識別した場合に、記憶領域の先頭側にある第一管理領域と、記憶領域の末尾側にある第二管理領域からデータを読み出して、いずれか一方又は両方のデータが不正であった場合に、不正なデータを修復する処理や、不正なデータに基づくストレージデバイスへのアクセスを禁止する処理などを実行する。
その際、PC1は、上述した処理において設定される有効記憶容量に基づいて第二管理領域の記録位置を特定する。このとき、ダミーMBR領域内にHDD14のフェイク容量が格納されていれば、実記憶容量がどのような値であるかにかかわらず、PC1はフェイク容量をHDD14の有効記憶容量として認識する。また、ダミーMBR領域内にHDD14のフェイク容量が格納されていない場合でも、S201〜S203によって設定される記憶容量をHDD14の有効記憶容量として認識する。
そのため、図4に例示したように、実記憶容量に若干のばらつきがあるストレージデバイスであっても、ダミーMBR領域内に同一のフェイク容量が格納されていれば、PC1は、有効記憶領域の末尾に第二管理領域があるものと認識することになり、同一記録位置から第二管理領域を読み取ることになる。
また、ダミーMBR領域内にフェイク容量が格納されていない場合でも、S201〜S203によって設定される記憶容量をHDD14の有効記憶容量として認識すれば、0.5TB未満の端数は丸められて、PC1は、有効記憶領域の末尾に第二管理領域があるものと認識することになり、同一記録位置から第二管理領域を読み取ることになる。
したがって、このPC1の場合、図4に例示したようなストレージデバイスであれば、実記憶容量には違いがあるものの、これらのストレージデバイス間で記憶領域を丸ごと複写しても、適正な第二記憶領域を認識することができる。
なお、図2に示す処理を終了すると、識別したパーティション管理方式に従って、各パーティション内のデータにアクセスする処理などが行われるが、それらの具体的な処理については種々考えられ、それらの処理内容自体は本発明の要部とは直接関連しないので、これ以上の説明は省略する。
[効果]
以上説明したように、上記PC1によれば、実記憶容量に多少の違いがあっても、同じ有効記憶容量が設定されるストレージデバイスであれば、同じ記録位置に第二管理領域が存在するものと認識する。
したがって、GPT方式でパーティションが作成されても、同じ有効記憶容量が設定されるストレージデバイス同士であれば、一方のストレージデバイスの記憶内容を他方のストレージデバイスへそのまま複製して利用することが可能となる。
よって、例えばバックアップを作成する際に、実記憶容量がぴったり一致するデバイスを利用しなくても済むようになる。また、ストレージデバイスを複製して工業的に同じデータが記憶された製品を量産する場合にも、実記憶容量がぴったり一致するデバイスを利用することなく、所期の製品を量産することができるようになる。
[その他の実施形態]
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
例えば、上記実施形態では、GPT方式のパーティションが作成されることとなるストレージデバイスとして、HDD14を例示したが、ハードディスク装置以外のストレージデバイスを対象とする場合にも、本発明を適用できる。例えば、ハードディスク装置と同等な接続インターフェースを備えたSSD(Solid State Drive)、コンパクトフラッシュ(登録商標;以下同様。)、又はコンパクトフラッシュと同等な接続インターフェースを備えたハードディスク装置などを対象に、本発明を適用してもよい。
また、上記実施形態では、図3に示す処理を上位モジュールから呼び出されるライブラリとして構成してあったが、同等な処理を上位モジュールであるカーネルモジュールの処理として組み込んであってもよい。
さらに、上記実施形態では、ダミーMBR領域内にHDD14のフェイク容量が格納されていない場合でも、S201〜S203によって設定される記憶容量をHDD14の有効記憶容量として認識するように構成してあったが、S201〜S203のような処理を採用するか否かは任意である。
例えば、ダミーMBR領域内にHDD14のフェイク容量が格納されていなければ、PC1がHDD14の実記憶容量を認識してもよい。ただし、この場合、実記憶容量が異なるHDD同士では、記憶内容を複製してあっても適切に認識できなくなる。あるいは、ダミーMBR領域内にHDD14のフェイク容量が格納されていなければ、PC1がHDD14の有効記憶容量を所定の固定値であると認識してもよい。ただし、この場合、所定の固定値よりも大きい記憶容量を持つHDDでは、OSに認識されない記憶領域が増大してしまうことになる。この点、S201〜S203によって設定される記憶容量をHDD14の有効記憶容量として認識するように構成してあれば、OSに認識されない記憶領域のサイズを概ね0.5TB未満に収めつつ、複製された内容を適切に認識することが可能となる。いずれにしても、これらの方式は、ダミーMBR領域内にHDD14のフェイク容量が格納されていない場合の対応策として用意されたものなので、ダミーMBR領域内にHDD14のフェイク容量が格納されていれば、実記憶容量が異なるHDD間で複製された記憶内容を、何ら問題なく認識することができる。
1・・・パーソナルコンピュータ、1A・・・制御部、11・・・CPU、12・・・ROM、13・・・RAM、14・・・ハードディスク装置、15・・・操作部、16・・・表示部、17・・・通信インターフェース。

Claims (5)

  1. GPT(GUID Partition Table)方式のパーティションが作成されたストレージデバイスが接続されるとともに、プログラムに従った処理を実行する制御部を備え、前記制御部において機能するオペレーティングシステムによって前記ストレージデバイスが制御される情報処理装置であって、
    前記制御部は、
    前記ストレージデバイスがリムーバブルメディアデバイスであると前記オペレーティングシステムに認識させるためのデバイス種別情報を、前記オペレーティングシステムに伝達するデバイス種別情報伝達手段と、
    前記ストレージデバイス上にある所定の記憶領域からデータを読み出し、当該読み出したデータ中に、前記ストレージデバイスに対してあらかじめ設定されて前記所定の記憶領域に記憶させてある「前記オペレーティングシステムに認識させたい前記ストレージデバイスの記憶容量である第一記憶容量」が含まれていると判定された場合に、前記読み出したデータ中から前記第一記憶容量を取得する第一記憶容量取得手段と、
    前記デバイス種別伝達手段によって前記リムーバブルメディアデバイスであると前記オペレーティングシステムに認識された前記ストレージデバイスにおいて、メディアが交換されたと前記オペレーティングシステムに認識させるためのメディア交換情報を、前記オペレーティングシステムに伝達するメディア交換情報伝達手段と、
    前記メディア交換情報伝達手段によって前記メディアが交換されたと前記オペレーティングシステムが認識するのに伴って、前記オペレーティングシステムが前記ストレージデバイスの記憶容量を再認識しようとしたときに、前記第一記憶容量取得手段によって取得された前記第一記憶容量が前記ストレージデバイスの記憶容量であると前記オペレーティングシステムに認識させるための記憶容量情報を、前記オペレーティングシステムに伝達する記憶容量情報伝達手段と、
    前記記憶容量情報伝達手段により、記憶容量が前記第一記憶容量であると前記オペレーティングシステムに認識された前記ストレージデバイスにおいて、当該ストレージデバイスが備える記憶領域の始端側に作成される第一管理領域及び前記記憶領域の終端側に作成される第二管理領域のうち、前記第二管理領域の前記記憶領域内における記録位置を、前記第一記憶容量に基づいて特定して、前記第二管理領域に対するアクセスを行うデータ処理手段と
    を備える情報処理装置。
  2. 前記制御部は、
    前記第一記憶容量取得手段によって前記所定の記憶領域から前記第一記憶容量を読み出すことができるようになる前の時点において、前記第一記憶容量取得手段とは異なる手順で、前記ストレージデバイスの実記憶容量に応じて設定される有効記憶容量である第二記憶容量を取得する第二記憶容量取得手段と、
    前記第一記憶容量取得手段によって前記所定の記憶領域から前記第一記憶容量を読み出した後の時点で、前記第一記憶容量と前記第二記憶容量が一致するか否かを判定する判定手段と
    を備え、
    前記メディア交換情報伝達手段は、前記判定手段によって一致しないとの判定がなされた場合に、前記メディア交換情報を前記オペレーティングシステムに伝達する
    請求項1に記載の情報処理装置。
  3. 前記メディア交換情報伝達手段は、前記判定手段によって一致しないとの判定がなされた後、所定時間が経過するまで待機した後に、前記メディア交換情報を前記オペレーティングシステムに伝達する
    請求項2に記載の情報処理装置。
  4. 前記第一記憶容量取得手段は、前記ストレージデバイスの先頭ブロックにあるMBR(Master Boot Record)から、前記第一記憶容量を読み出す
    請求項1〜請求項3のいずれか一項に記載の情報処理装置。
  5. GPT(GUID Partition Table)方式のパーティションが作成されたストレージデバイスが接続されるとともに、プログラムに従った処理を実行する制御部を備え、前記制御部において機能するオペレーティングシステムによって前記ストレージデバイスが制御される情報処理装置において、前記制御部を、
    前記ストレージデバイスがリムーバブルメディアデバイスであると前記オペレーティングシステムに認識させるためのデバイス種別情報を、前記オペレーティングシステムに伝達するデバイス種別情報伝達手段、
    前記ストレージデバイス上にある所定の記憶領域からデータを読み出し、当該読み出したデータ中に、前記ストレージデバイスに対してあらかじめ設定されて前記所定の記憶領域に記憶させてある「前記オペレーティングシステムに認識させたい前記ストレージデバイスの記憶容量である第一記憶容量」が含まれていると判定された場合に、前記読み出したデータ中から前記第一記憶容量を取得する第一記憶容量取得手段、
    前記デバイス種別伝達手段によって前記リムーバブルメディアデバイスであると前記オペレーティングシステムに認識された前記ストレージデバイスにおいて、メディアが交換されたと前記オペレーティングシステムに認識させるためのメディア交換情報を、前記オペレーティングシステムに伝達するメディア交換情報伝達手段、
    前記メディア交換情報伝達手段によって前記メディアが交換されたと前記オペレーティングシステムが認識するのに伴って、前記オペレーティングシステムが前記ストレージデバイスの記憶容量を再認識しようとしたときに、前記第一記憶容量取得手段によって取得された前記第一記憶容量が前記ストレージデバイスの記憶容量であると前記オペレーティングシステムに認識させるための記憶容量情報を、前記オペレーティングシステムに伝達する記憶容量情報伝達手段、及び
    前記記憶容量情報伝達手段により、記憶容量が前記第一記憶容量であると前記オペレーティングシステムに認識された前記ストレージデバイスにおいて、当該ストレージデバイスが備える記憶領域の始端側に作成される第一管理領域及び前記記憶領域の終端側に作成される第二管理領域のうち、前記第二管理領域の前記記憶領域内における記録位置を、前記第一記憶容量に基づいて特定して、前記第二管理領域に対するアクセスを行うデータ処理手段
    として機能させるプログラム。
JP2012216233A 2012-09-28 2012-09-28 情報処理装置及びプログラム Active JP5569572B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012216233A JP5569572B2 (ja) 2012-09-28 2012-09-28 情報処理装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012216233A JP5569572B2 (ja) 2012-09-28 2012-09-28 情報処理装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2014071594A JP2014071594A (ja) 2014-04-21
JP5569572B2 true JP5569572B2 (ja) 2014-08-13

Family

ID=50746750

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012216233A Active JP5569572B2 (ja) 2012-09-28 2012-09-28 情報処理装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5569572B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5500201B2 (ja) * 2012-04-27 2014-05-21 ブラザー工業株式会社 情報処理装置及びプログラム

Also Published As

Publication number Publication date
JP2014071594A (ja) 2014-04-21

Similar Documents

Publication Publication Date Title
JP4206688B2 (ja) データ処理装置及びデータ処理方法
KR101384438B1 (ko) 데이터를 사전 각색하는 방법 및 컴퓨터 판독가능 매체
TWI450099B (zh) 模擬可覆寫光碟裝置的儲存系統、控制器、電腦系統及方法
US20120030411A1 (en) Data protecting method, memory controller and portable memory storage apparatus
US8156292B2 (en) Methods for implementation of data formats on a removable disk drive storage system
JP2006031579A5 (ja)
JP2003308240A (ja) データ記憶装置
CN105988895B (zh) 快照处理方法及装置
TW201643690A (zh) 資料儲存系統及其特定指令執行方法
KR20130061050A (ko) 스토리지 장치, 제어 장치 및 기록 매체
CN101582084B (zh) 一种数据存储的方法及装置
CN108170368A (zh) 在线升级固件的方法及系统
US9009440B2 (en) Adjustment of data storage capacity provided by a storage system
CN108170446A (zh) 固件确认命令处理方法及系统
JP6944117B2 (ja) 情報処理装置、転送制御方法および転送制御プログラム
JP6200091B2 (ja) 複数のパーティションに分割されたリムーバブル記憶装置をサポートするカメラ
JP5569572B2 (ja) 情報処理装置及びプログラム
CN103761156B (zh) 一种针对文件系统的在线修复方法
CN102109965B (zh) 闪存储存系统、闪存控制器、电脑系统及模拟方法
US8707089B2 (en) Storage control device for formatting to storage media, storage control method for formatting to storage media, and medium for storing storage control program for formatting to storage media
TWI344084B (ja)
US20240264750A1 (en) Atomic Operations Implemented using Memory Services of Data Storage Devices
JP5500201B2 (ja) 情報処理装置及びプログラム
JP2015014963A (ja) ストレージ制御装置、制御プログラム及び制御方法
CN111367830B (zh) 主机参与的重建ftl表的方法及其存储设备

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140527

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140609

R150 Certificate of patent or registration of utility model

Ref document number: 5569572

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150