JP2014153873A - 情報処理装置、情報処理方法およびプログラム - Google Patents
情報処理装置、情報処理方法およびプログラム Download PDFInfo
- Publication number
- JP2014153873A JP2014153873A JP2013022370A JP2013022370A JP2014153873A JP 2014153873 A JP2014153873 A JP 2014153873A JP 2013022370 A JP2013022370 A JP 2013022370A JP 2013022370 A JP2013022370 A JP 2013022370A JP 2014153873 A JP2014153873 A JP 2014153873A
- Authority
- JP
- Japan
- Prior art keywords
- area
- journaling
- data
- information
- storage device
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】二次記憶装置についてジャーナリング機能による記憶構成の書込み劣化を分散できる情報処理装置、情報処理方法およびプログラミングを提供する。
【解決手段】情報処理装置100は、マウント時に二次記憶装置202の空き領域203から新規ジャーナリング領域のための領域を検索し、検索した空き領域203にジャーナリング領域205を構築し、データ書き込み時には、操作に関する情報をジャーナリング領域205に記憶する。
【選択図】図2
【解決手段】情報処理装置100は、マウント時に二次記憶装置202の空き領域203から新規ジャーナリング領域のための領域を検索し、検索した空き領域203にジャーナリング領域205を構築し、データ書き込み時には、操作に関する情報をジャーナリング領域205に記憶する。
【選択図】図2
Description
本発明は、情報処理装置、情報処理方法およびプログラムに関する。特に、本発明はファイルシステムに関する。
近年の情報処理装置においては、細分化されたファイルや大規模なファイルを扱うことが多くなってきた。これにより、ファイルシステムのデータ書き込み操作に時間がかかることが多くなり、その結果、データ書き込み中に電源断(power discontinuity)などが発生してファイル構成情報に矛盾が発生する可能性が高まってきた。このような事態を避けるために、多くのシステムでは、ジャーナリング機能を持ったファイルシステム(以降、ジャーナリングファイルシステムと称す)を利用するようになった。ジャーナリング機能とは、データ書き込み操作中に障害が発生した場合に、障害から復旧できるように、ファイルやディレクトリの更新履歴・操作履歴を含むジャーナル・ログを二次記憶装置上に記録しておく機能である。
特許文献1には、ジャーナリング領域に書き込むデータをスタックに溜めておき、先に二次記憶装置への更新処理が完了してジャーナル・ログが不要になった場合には、スタックのデータを削除するという方法が開示されている。
また、特許文献2には、フラッシュの様な不揮発性メモリにジャーナルデータを記録する時に、セクタサイズ以上になるまでバッファにためて、セクタ単位で書き込む方法が開示されている。
しかし、特許文献1や特許文献2のジャーナリングファイルシステムは、二次記憶装置に固定のジャーナリング領域を設定していた。そのため、二次記憶装置についてジャーナリング機能による記憶構成に対する書込み劣化が集中してしまうという問題がある。
上記課題を解決するために、本発明に係る情報処理装置は、データを保持するためのデータ領域とファイルシステムを管理するための管理情報を保持するための管理領域とを有する記憶装置を備える情報処理装置であって、前記データ領域から空き領域を検索する検索手段と、前記検索手段で検索した空き領域に、メタデータまたは実データを書き込む操作に関する操作情報を格納するためのジャーナリング領域を割り当てる割り当て手段と、前記ジャーナリング領域以外のデータ領域に対する操作に関する操作情報を前記ジャーナリング領域に記憶させる制御手段とを有することを特徴とする。
本発明によれば、二次記憶装置の記憶構成について、ジャーナリング機能による書込み劣化をより分散できる。
<実施形態1>
まず、ジャーナリングファイルシステムの概略について説明する。ジャーナリングファイルシステムは、二次記憶装置をファイルシステムに沿ってフォーマットする時に、その二次記憶装置上にジャーナル・ログを記録するためのジャーナリング領域(ログ領域の一種)と、実際のデータを記録するデータ領域を確保する。アプリケーションからデータ書き込み操作の要求が発行されると、まずファイルシステムは、メモリ上のデータ(実データ:実際にデータ領域に書きこむ情報)とメタデータ(実データの操作情報、ファイル名、操作日時、FAT、スーパーブロック、グループディスクリプタ、ノードテーブルやそこからリンクされているデータなどの管理情報など)を変更する。そして、ジャーナリングファイルシステムは、この変更のうちジャーナル・ログとして記録(記憶)するデータを、ジャーナリング領域に書き込む(ただし、一般的に、ジャーナリング領域に書き込む動作自体をメタデータとしては保存しない。)。
まず、ジャーナリングファイルシステムの概略について説明する。ジャーナリングファイルシステムは、二次記憶装置をファイルシステムに沿ってフォーマットする時に、その二次記憶装置上にジャーナル・ログを記録するためのジャーナリング領域(ログ領域の一種)と、実際のデータを記録するデータ領域を確保する。アプリケーションからデータ書き込み操作の要求が発行されると、まずファイルシステムは、メモリ上のデータ(実データ:実際にデータ領域に書きこむ情報)とメタデータ(実データの操作情報、ファイル名、操作日時、FAT、スーパーブロック、グループディスクリプタ、ノードテーブルやそこからリンクされているデータなどの管理情報など)を変更する。そして、ジャーナリングファイルシステムは、この変更のうちジャーナル・ログとして記録(記憶)するデータを、ジャーナリング領域に書き込む(ただし、一般的に、ジャーナリング領域に書き込む動作自体をメタデータとしては保存しない。)。
ジャーナリング領域への書き込みが確認できた後に、ジャーナリングファイルシステムは実際のデータとメタデータをデータ領域に書き込む。その後、ジャーナリング領域とデータ領域の同期が取れたことが確認できた後に、このジャーナル・ログを記録していた領域をジャーナリングファイルシステムが新しいジャーナル・ログの書き込みのために解放する。通常、ジャーナリング領域は所定のサイズであるため、解放された領域を繰り返しリングバッファの様に使用することになる。
従来のジャーナリングファイルシステムにおけるジャーナリング領域は、ファイルシステム構築時にその位置とサイズが決定され、構築後の変更はできなかった。
以下、図面を参照して実施形態1を詳細に説明する。本実施形態ではファイルシステムをマウントする際に、データブロックから空き領域(未使用領域)を検索して異なる位置に新たなジャーナリング領域を割り当てる。
図1は、本発明の情報処理装置の概略構成を示すブロック図である。同図において、100は情報処理装置、101はCPU、102はRAMなどの一次記憶装置である。情報処理装置100においては、通常、1コアのCPU101であれば複数のプロセスのうちの1つを順に処理し、処理は一定期間ごとに切り替えて実施される。CPU101に、演算処理などを行なうプロセッサコアを複数備えてもよいし、CPU101を情報処理装置100に複数備えてもよい。一次記憶装置102は、主に二次記憶装置から読み込んだプログラムやデータを保持する。一次記憶装置102は、DDRSDRAMなどの揮発性メモリとしてのDRAMや、ブートプログラムを保持する不揮発性メモリとしてのマスクロムやフラッシュメモリなどを備えている。103はI/Oコントローラであり、104はFlash SSD(Flash Solid State Drive)やフラッシュメモリを備える二次記憶装置である。Flash SSDは不揮発のフラッシュメモリを内蔵する不揮発性の記憶装置でありハードディスクドライブと同等の機能を実現可能に構成されている。ファイルやディレクトリ等のファイルシステムに関わるデータは、二次記憶装置104に記録される。ジャーナリングファイルシステムに関するデータは、二次記憶装置104上に構築される。
なお、二次記憶装置104にあるファイルの操作は、CPU101が一次記憶装置102上のプログラムを実行することで実現されるオペレーティングシステムからI/Oコントローラ103に対して、READ要求、WRITE要求を行うことで実現する。
図2は、第一の実施形態に係る情報処理装置の機能構成を示すブロック図である。なお、二次記憶装置202以外の機能構成は、CPU101で実行されるプログラムがI/Oコントローラ103を操作することで実現される。
同図において、情報処理装置100は1つ以上の二次記憶装置104を搭載し、以降の説明では1つ以上の二次記憶装置104を二次記憶装置202として抽象化して説明する。
201は、二次記憶装置202の中から、新規に構築するジャーナリング領域のための領域を検索する空き領域検索部である。二次記憶装置202の中には、データが記録されている領域(既存のジャーナリング領域を含む)と、データが記録されていない203の空き領域が存在する。空き領域検索部201は、この空き領域203の中から、新規に構築するジャーナリング領域に必要なサイズの連続した領域を検索する。空き領域の探索は、未使用の領域を探す既知の手法を用いる。例えば、FAT(ファイルアロケーションテーブル)のようにブロック毎の使用状態を示すテーブルを参照して、未使用の領域を探索してもよい。また空き領域をインデックス化したテーブル(領域ID、領域開始ブロック、領域サイズ、を1エントリとしたテーブル)を別途作成しておいて空き領域の探索処理を高速化してもよい。空き領域検索部201によりジャーナリング領域205を構築するために必要なサイズの領域を発見できた場合は、204のジャーナリング領域構築部を実行して、既存のジャーナリング領域(前回マウント時に作成したジャーナリング領域、他のジャーナリング領域)を空き領域として解放する。領域を発見できなかった場合は、ジャーナリング領域構築部を実行しない。その場合、二次記憶装置202に元々存在している既存のジャーナリング領域を使用して、ジャーナリングを行う。
ジャーナリング領域構築部204は、空き領域検索部201により発見された領域に、新しいジャーナリング領域205を構築する。構築するジャーナリング領域205のフォーマットの詳細は後述する。
206はジャーナリング領域205が二次記憶装置202のどの位置に存在するかを示す位置情報(ジャーナリング領域205の先頭アドレスまたは先頭ブロック番号、ジャーナリング領域205のサイズやブロック数を含む)を位置管理領域207に記録する位置管理領域記録部(格納手段)である。位置管理領域207は、ファイルシステムを構築する時に作成され、位置管理領域記録部206が新しいジャーナリング領域205を構築する度にその位置を上書き記録する。
ファイルシステムを構築する際に、CPU101の要求によってI/Oコントローラ103が、二次記憶装置202に、ファイルシステムを管理するファイル管理ブロック212と、データを記録するデータブロック211とを確保する。このうち、ジャーナリング領域は、データブロック211に設ける。サイズ管理領域210はジャーナリング領域のサイズを示すサイズ情報を保持する。このサイズ情報は、予めユーザに設定させたり、二次記憶装置のサイズに応じて(例えば、二次記憶装置の全容量から所定の割合)オペレーションシステムなどが自動で決定させたりする。
208は、ユーザやアプリケーション等によって二次記憶装置202に対する書き込み操作が実行された時に呼び出される管理領域取得部である。管理領域取得部208は、位置管理領域207からジャーナリング領域205の位置を取得する。そして、書込み操作についてジャーナル・ログ記録部209(制御手段)がジャーナル・ログを二次記憶装置202に記録する。ジャーナル・ログ記録部209は、管理領域取得部208によって取得したジャーナリング領域205に書込み操作に関するジャーナル・ログを記録する。
次に、図3〜図7を用いて、本実施形態の情報処理装置100による具体的な処理手順について説明する。
まず、二次記憶装置上にジャーナリングファイルシステムを構築する処理手順について説明する。通常、二次記憶装置上にファイルシステムを構築する時には、2つの手順を踏む。1つ目は、二次記憶装置の論理フォーマットである。論理フォーマットでは、オペレーティングシステムが使用する管理用データ(例えば、FAT)や実際に記録されるデータの論理的な位置の設定(例えば、パーティション情報の書き込み)を行う。2つ目は、デバイスドライバが二次記憶装置のブロックを読み書きできるようにするためのファイルシステムの構築である。2つ目の処理において、ジャーナリングファイルシステムでは、二次記憶装置のブロックを読み書きできるようにするための処理に加え、ジャーナリング領域の構築も行う。論理フォーマットやファイルシステムの構築については既知の種々の手法を用いればよいので詳細は省略する。本実施形態におけるジャーナリング領域の構築の手順を、図3を用いて説明する。
図3において、ステップS300では、CPU101がジャーナリング領域を構築するかどうかを判定する。ジャーナリングファイルシステムでは、ジャーナリング領域の使用/未使用をユーザに選択させることができる。このジャーナリング領域を構築するかどうかを、予めユーザにジャーナリング設定(ジャーナリング使用・未使用を示す情報を含む)として設定させ、このジャナリング設定を参照してジャーナリング領域の構築の有無を判断する。構築する場合はステップS301に移り、構築しない場合は処理を終了する。
ステップS301では、CPU101とI/Oコントローラ103の協働によってジャーナリング領域の構築を行う。この処理は、機能構成としては上述したように図2で説明した空き領域検索部201と、ジャーナリング領域構築部204によって行う。なお、空き領域検索部201は、空き領域を検索する際に、サイズ管理領域210に保持されているサイズ情報を満たす空き領域を検索する。
ステップS302では、CPU101がファイル管理ブロックにジャーナリング領域205の位置を管理する位置管理領域207と、サイズを管理するサイズ管理領域210を作成する。そして、ステップS301で構築したジャーナリング領域の位置情報を位置管理領域207に、新たに作成したジャーナリング領域のサイズをサイズ管理領域210に記録する。なお、固定サイズのジャーナリング領域しか許容しない場合はサイズ管理領域210を更新しなくてもよい。
次に、図4を用いて、本発明におけるマウント時の処理手順について説明する。なお、本明細書で「マウント」とは、デバイスを認識した上で、ファイルシステムに二次記憶装置202を認識させ、ファイルにアクセスできるようにさせる操作のことを示す。情報処理装置100の論理パーティションをツリー構造にまとめている場合に、ツリー構造に二次記憶装置202をディレクトリとして登録する作業とも説明できる。なお、逆の操作(例えば、ツリー構造から切り離す作業)を「アンマウント」と呼ぶ。
二次記憶装置202をマウントする指示をCPU101が発行し、ジャーナリング設定がジャーナリング機能を利用することを示していると、ステップS400では、CPU101が二次記憶装置上に既存のジャーナリング領域が存在するかどうかを判定する。存在する場合は、ステップS401に移り、存在しない場合は、ステップS406に移る。ジャーナリング設定がジャーナリング機能を利用しないことを示している際には、直接ステップS406を実施してもよい。
ステップS401では、空き領域探索部201が二次記憶装置202上からジャーナリング領域205を作成可能なサイズの空き領域を検索する。なお、ジャーナリング領域205は物理的なアドレスが連続していることが好ましいため、ステップS302で記録したジャーナリング領域のサイズ以上、アドレスが連続した領域を検索する。そして、ステップS402に移る。
ステップS402では、ステップS401の検索結果を元に、ジャーナリング領域を構築できるサイズの空き領域を発見できたかどうかを空き領域探索部201が判定する。発見できた場合は、ステップS403に移り、発見できなかった場合は、ステップS406に移る。
ステップS403では、ステップS401で発見した領域に、ジャーナリング領域構築部204が新規のジャーナリング領域205を構築する。そして、ステップS404に移る。
ステップS404では、ステップS402で構築したジャーナリング領域の位置を管理領域記憶部206が位置管理領域207に記録する。
ステップS405では、CPU101が既存のジャーナリング領域(不図示)を空き領域として解放する。そして、ステップS406に移る。
ステップS406では、CPU101がマウント処理を行う。ここでは、通常のマウント処理に加え、ジャーナリング領域が存在する場合にはジャーナリングモードを決定する。ジャーナリングモードとは、ジャーナリングでどの種類のデータを保護するか、どのようにジャーナリングを動作させるか(実データとメタデータ、の内の何をログとして記録するか、実データとメタデータをどの順番で記録するかなど)を決定する。ジャーナリングモードは、1つのみを備える場合もあれば、複数備える場合もある。ジャーナリングモードは、ユーザがマウントオプションを用いて指定してもよいし、オペレーションシステムで自動的に選択してもよい。ジャーナリングモードとして例えば、writebackモード、orderedモード、journalモードなどを用意しておくことが考えられる。writebackモードは、メタデータのみをジャーナリング領域に格納するモードである。このモードではファイルシステムの構造を維持し、ファイルシステムの破損を抑制するが、データとメタデータの不整合が発生する可能性は、ジャーナリングを使用しない場合と比べてあまり変わらない(例えば、メタデータがジャーナリング領域に格納されてから、データブロックに書き込まれる前にシステムがクラッシュした場合)。一方、orderedモードでもジャーナルに記録するのはメタデータだけであるが、実データをデータブロックに書き込んでからメタデータをジャーナリング領域に書き込むため、ファイルシステムのリカバリー後の整合性が保証できる。さらに、journalモードでは、メタデータと実データの両方をジャーナリング領域に格納するため、ファイルシステムの破損とデータ損失を抑制できる。ただし、すべての実データがジャーナリング領域とデータブロックとへ2回書き込まれるため(最初にジャーナリング領域に書き込み、次にデータブロックに再び書き込む)、他のモードに比べて書込み処理パフォーマンスは低下する。ジャーナリングモードはジャーナリング設定として予めユーザに設定させてもよいし、ファイルシステムが特定のモードをデフォルトのモードとして設定してもよい。なお、ジャーナリング設定はファイル管理ブロックに格納することが好ましい。
次に、ステップS403からステップS405における二次記憶装置202の内容の変遷を、より具体的に図5を用いて説明する。
同図に置いて、状態500は新規ジャーナリング領域を構築前の二次記憶装置202の内容を示し、状態506では新規ジャーナリング領域を構築後の二次記憶装置202の内容を示し、状態508では既存のジャーナリング領域を解放した後の二次記憶装置202の内容を示す。
状態500は、ファイル管理ブロック501とデータブロック502の2つのブロックが存在する。ファイル管理ブロック501には、ファイルシステムを管理するための情報が存在し、ジャーナリング領域の位置を管理する位置管理領域503が存在する。データブロック502には、新規ジャーナリング領域構築前から存在する既存のジャーナリング領域504と空き領域505が存在する。
状態506は、ジャーナリング領域構築部204が新規ジャーナリング領域を構築した際の二次記憶装置202の内容であり、図4でいうとステップS403が実行された後の状態に当たる。状態500と異なる点は、新規のジャーナリング領域507が、空き領域505に構築されている点である。この新規のジャーナリング領域507のサイズは、ファイルシステム構築時に決められたジャーナリング領域のサイズであるため、既存のジャーナリング領域504のサイズと同じサイズとなる。
状態508は、既存のジャーナリング領域504を空き領域として解放した後の二次記憶装置202の内容であり、図4でいうとステップS405が実行された後の状態に当たる。状態506と異なる点は、既存のジャーナリング領域504の代わりに解放された領域509が存在する点と、空き領域505の代わりに新規ジャーナリング領域507が存在する点である。既存のジャーナリング領域504は、ステップS405の処理によって解放され、この領域は解放された領域509として空き領域505となる。また、新規ジャーナリング領域507はステップS403の処理によってジャーナリング領域507として利用されることになるため、空き領域505ではなくなる。
次に、図6、図7を用いて、本実施形態におけるデータ書き込み操作について説明する。図6は情報処理装置100においてデータ書込み操作を行うフローチャートであり、図7はデータ書込み操作を行う際のジャーナリング領域701の詳細を示す概念図である。
図6のステップS600では、ジャーナリングを行うかどうかを判定する。ジャーナリングを行うかどうかの判定はマウント時(S406)に決定されている。具体的には、ステップS400でジャーナリング領域が存在すると判定され、かつステップS406でジャーナリングを使用するジャーナリングモードを選択した場合に、ジャーナリングを行うという判定になる。ジャーナリングを行う場合は、ステップS601に移り、行わない場合はステップS605に移る。
ステップS601では、CPU101が位置管理領域207に記録されているジャーナリング領域の位置を取得する。そして、ステップS602に移る。
ステップS602では、CPU101がジャーナル・ログとして記録する対象(前述のジャーナリングモードに対応する、ログとしてのメタデータの変更履歴や実データ)を決定し、ステップS601で取得したジャーナリング領域507の位置に、ジャーナリングモードに対応する対象を記録する。ジャーナリング領域507のどの部分に記録するかは、ジャーナリング領域にあるジャーナリング領域の管理情報を元に決定する。これについて、図7を用いてより具体的に説明する。
同図において、位置管理領域207は、二次記憶装置202上にあるジャーナリング領域701の位置を特定できる位置情報を保持している。ジャーナリング領域507には、ジャーナリング領域の管理情報を持つジャーナリング領域管理情報ブロック702と、実際にジャーナル・ログを記録するリングバッファ703が存在する。ジャーナリング領域管理情報ブロック702には、開始位置情報704が存在する。開始位置情報704には、次にジャーナル・ログの書き込みが発生した時に、そのジャーナル・ログを記録する位置が保持されている。
例えば、次にジャーナル・ログを記録する位置として、リングバッファ703に存在する空きバッファA705が記録されていると、ジャーナル・ログ書き込み時には、CPU101は開始位置情報704を参照して、ジャーナル・ログを空きバッファA705に書き込む。リングバッファ703は、このジャーナル・ログが記録されたバッファが複数連なっている。空きバッファA705へのジャーナル・ログの書き込みが完了すると、次にジャーナル・ログを記録する位置として空きバッファB706を示す様に、CPU101が開始位置情報704を更新する。
次に、ステップS603では、二次記憶装置202に実データおよびメタデータを記録する。ステップS602およびステップS603における書き込み対象の決定およびデータの記録方法は、図4のステップS406で選択したジャーナリングモードに準ずる。例えば、ジャーナリングモードが、メタデータのみをジャーナリングで保護する対象とし、データ書き込み時にメタデータを書き込む前に実際のデータを書き込む順番を保証するorderedモードであるとする。この場合、ステップS602でジャーナル・ログとして記録するデータはメタデータのみとなる。また、ステップS603でデータを二次記憶装置202に書きこみ処理を行う際には、データを先に書き込んだ後で、メタデータを書き込む。これにより、メタデータが誤ったデータを指すことを防ぎ、ファイルシステムの整合性を保つ様に動作する。二次記憶装置への書き込み完了後、ステップS604に移る。
そして、ステップS604では、ジャーナリング領域にあるジャーナル・ログを二次記憶装置に書き出す。書き出しが完了し、二次記憶装置と同期がとれたことを確認すると、書き出したジャーナル・ログを保持するバッファは新規のジャーナル・ログ書き込みのために解放される。ステップS605では、二次記憶装置202に実データおよびメタデータを記録する。
以上のように、本実施形態では、マウント時に空き領域検索部201を実行して、二次記憶装置202の空き領域203から新規ジャーナリング領域のための領域を検索する。検索して領域を発見できた場合、ジャーナリング領域構築部204を実行して、空き領域203にジャーナリング領域205を構築する。その後、位置管理領域記録部206を実行して、ジャーナリング領域205の位置を位置管理領域207に記録する。データ書き込み時には、位置管理領域取得部208を実行して、位置管理領域207からジャーナリング領域205の位置を取得する。その後、ジャーナル・ログ記録部209を実行して、取得したジャーナリング領域205の位置にジャーナル・ログを記録する。これにより、マウント毎にジャーナル・ログを記録する領域を変える(異ならせる)ため、特定領域への書き込みの集中を抑制できる。その結果、書き込み回数に制限のある二次記憶装置について書込み劣化の集中を抑制する。
特に、ハードウェア的なウェアレベリング機能が十分でないフラッシュデバイスを利用する形態では、本発明の効果はより顕著になる。また、ウェアレベリング機能はFlash SSDの種類によってウェアレベリングのアルゴリズムが異なっている場合が少なくない。そのため、例えば種々のFlash SSDを利用する製品について障害発生時のファイルシステムをチェックする際に、ウェアレベリングを考慮してチェックしなければならない。しかし、本実施形態によればウェアレベリングを用いなくてもジャーナリング領域に対応する記憶構成についての書き込み劣化の集中を抑制できるので必ずしもウェアレベリングを用いなくてもよく、用いない場合のファイルシステムのチェックが比較的簡単である。一方で、ウェアレベリング機能の利用の有無に応じて、本実施形態のジャーナリング機能の有無を切り替えてもよい。例えば、Flash SSDなどのハード的なウェアレベリングを利用する際は、上述の実施形態のジャーナリング機能使わないように自動的に変更するようにしてもよい(或いは、writebackモードのように低レベルのモードに変更するようにしてもよい)。
また、磁気ディスクの様に磁性体が塗布された二次記憶装置の場合でも、特定セクタへの書き込みを抑制することで、特定セクタの磁性の低下による不良ブロックの増加を低減することができる。また、特許文献1および特許文献2の方法のように、書き込み回数自体を減らさないため、電源断などの障害からの復帰性能を低下させずに二次記憶装置の書き込み劣化の集中を抑制する。
上述の実施形態では、ジャーナリング領域をジャーナリングファイルシステムが構築された記憶装置と同じ記憶装置に確保する場合について説明をしたが、ジャーナリング領域をジャーナリングファイルシステムが構築された記憶装置とは別の記憶装置に設けてもよい。
また上述の実施形態では、新たなジャーナリング領域を設定する際に既存のジャーナリング領域を解放したが、解放しなくてもよい。例えば、複数のジャーナリング領域を設定し、マウント毎にアクティブなジャーナリング領域を切り替えるだけでもよい。その場合は、全てのジャーナリング領域の情報を領域IDと対応づけて位置管理領域207に保持させ、また前回マウントした際に用いた領域IDを保持しておく。そして、マウント時に前回使用した領域IDを避けるように(例えば、ラウンドロビン的に)複数のジャーナリング領域を順に使用していけばよい。
また、上述の実施形態ではデータ領域に対する操作に関する情報をジャーナリング領域に格納するとして説明しているが、もちろんジャーナリング領域に対する操作以外をジャーナリング領域に格納する。また、ジャーナリング領域以外のデータ領域にデータを書き込む場合は、当然、空き領域検索部201によりデータを書き込めるだけの空き領域を検索する。
また、上述の実施形態ではCPU101がジャーナリング領域の位置を取得したり、ジャーナリング領域への書き込みをI/Oコントローラ103に要求したりすることを説明したが、I/Oコントローラ103が高機能であればCPU101はマウント要求をするだけで後の処理はI/Oコントローラ103でハード的に実施してもよい。
また、上述の実施形態ではアンマウント時について説明を省略しているが、アンマウント時にジャーナリング領域の情報を残しておき、マウント時に別の新しいジャーナリング領域を割り当ててから解放することは、アンマウント時のジャーナリング領域の解放をスキップすることで高速になる点でメリットはある。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が、コンピュータが読み取り可能なプログラムを読み出して実行する処理である。
プログラムを供給するための記憶媒体としては、例えば、光ディスク、磁気ディスク、光磁気ディスク、磁気テープ、不揮発性のメモリカードなどを用いることが出来る。これらの記憶媒体は、上述実施形態の機能を実現する二次記憶装置としても用いることが出来る。上述の実施形態では二次記憶装置としてFlash SSDを例にしたが、電子の移動によって物理的に劣化する記憶素子を備える記憶装置であれば本発明を適用することで同様の効果を得ることができる。
101 CPU
102 一次記憶装置
103 I/Oコントローラ
104 二次記憶装置
102 一次記憶装置
103 I/Oコントローラ
104 二次記憶装置
Claims (18)
- データを保持するためのデータ領域とファイルシステムを管理するための管理情報を保持するための管理領域とを有する記憶装置を備える情報処理装置であって、
前記データ領域から空き領域を検索する検索手段と、
前記検索手段で検索した空き領域に、メタデータまたは実データを書き込む操作に関する操作情報を格納するためのジャーナリング領域を割り当てる割り当て手段と、
前記ジャーナリング領域以外のデータ領域に対する操作に関する操作情報を前記ジャーナリング領域に記憶させる制御手段とを有することを特徴とする情報処理装置。 - 前記割り当て手段は、前記記憶装置をマウントする際に前記ジャーナリング領域を割り当てることを特徴とする請求項1に記載の情報処理装置。
- 前記割り当て手段は、当該割り当て手段によって新しくジャーナリング領域を割り当てた際に他のジャーナリング領域を空き領域として解放することを特徴とする請求項1または2に記載の情報処理装置。
- 前記割り当て手段によって前記ジャーナリング領域を前記記憶装置に割り当てると、当該ジャーナリング領域の位置を示す位置情報を前記管理情報に格納する格納手段をさらに有することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
- 前記記憶手段は、前記格納手段により格納された位置情報に基づいて、前記ジャーナリング領域に前記操作情報を格納することを特徴とする請求項4に記載の情報処理装置。
- 前記格納手段は、前記割り当て手段によって前記ジャーナリング領域を前記記憶装置に割り当てると、当該ジャーナリング領域のサイズを示すサイズ情報を前記管理情報に格納することを特徴とする請求項4または5に記載の情報処理装置。
- 前記管理領域はジャーナリング機能の利用の有無を示すジャーナリング設定を格納することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
- 前記管理領域はジャーナリングモードを示す情報を格納することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
- 前記ジャーナリングモードはwritebackモードを含み、当該writebackモードでは、前記記憶手段は前記ジャーナリング領域にメタデータを記憶してから前記ジャーナリング領域以外のデータ領域に当該メタデータまたは実データを記憶することを特徴とする請求項8に記載の情報処理装置。
- 前記ジャーナリングモードはorderedモードを含み、当該orderedモードでは、前記記憶手段は前記ジャーナリング領域以外のデータ領域に実データを記憶してから前記ジャーナリング領域にメタデータを記憶することを特徴とする請求項8に記載の情報処理装置。
- 前記ジャーナリングモードはjournalモードを含み、当該journalモードでは、前記記憶手段は前記ジャーナリング領域に実データとメタデータとを記憶してから前記ジャーナリング領域以外のデータ領域に前記実データを再び記憶することを特徴とする請求項8に記載の情報処理装置。
- 前記検索手段によって前記ジャーナリング領域を割り当て可能な空き領域を検索できなかった場合に、前記割り当て手段によるジャーナリング領域の割り当て処理を省略することを特徴とする請求項1乃至11のいずれか1項に記載の情報処理装置。
- データを保持するためのデータ領域とファイルシステムを管理するための管理情報を保持するための管理領域とを有する記憶装置を備える情報処理装置であって、
前記記憶装置のデータ領域に対するアクセスに関する操作情報を格納するためのログ領域を、前記記憶装置に割り当てる割り当て手段と、
前記割り当て手段によって割り当てたログ領域の位置を示す位置情報を保持させる保持手段と、
前記データ領域に対するアクセスに関する操作情報を前記ログ領域に記憶させる制御手段と、を有し、
前記割り当て手段は、前記ログ領域の位置情報が保持されていると、当該位置情報が示す位置とは異なる位置に新たなログ領域を割り当てることを特徴とする情報処理装置。 - 前記記憶装置をマウントする指示を発行する指示手段を更に備え、前記保持手段は前記指示手段からの指示に応じて、前記割り当て手段によって割り当てたログ領域の位置を示す位置情報を保持させることを特徴とする請求項13に記載の情報処理装置。
- データを保持するためのデータ領域とファイルシステムを管理するための管理情報を保持するための管理領域とを有する記憶装置を備える情報処理装置による情報処理方法であって、
前記データ領域から空き領域を検索する検索工程と、
前記検索工程で検索した空き領域に、メタデータまたは実データを書き込む操作に関する操作情報を格納するためのジャーナリング領域を割り当てる割り当て工程と、
前記ジャーナリング領域以外のデータ領域に対する操作に関する操作情報を前記ジャーナリング領域に記憶させる制御工程とを有することを特徴とする情報処理方法。 - データを保持するためのデータ領域とファイルシステムを管理するための管理情報を保持するための管理領域とを有する記憶装置を備える情報処理装置による情報処理方法であって、
前記記憶装置のデータ領域に対するアクセスに関する操作情報を格納するためのログ領域を、前記記憶装置に割り当てる割り当て工程と、
前記割り当て工程によって割り当てたログ領域の位置を示す位置情報を保持させる保持工程と、
前記データ領域に対するアクセスに関する操作情報を前記ログ領域に記憶させる制御工程と、を有し、
前記割り当て工程は、前記制御工程によって前記位置情報が保持されていると、当該位置情報が示す位置とは異なる位置に新たなログ領域を割り当てることを特徴とする情報処理方法。 - データを保持するためのデータ領域とファイルシステムを管理するための管理情報を保持するための管理領域とを有する記憶装置を備えるコンピュータを、
前記データ領域から空き領域を検索する検索手段と、
前記検索手段で検索した空き領域に、メタデータまたは実データを書き込む操作に関する操作情報を格納するためのジャーナリング領域を割り当てる割り当て手段と、
前記ジャーナリング領域以外のデータ領域に対する操作に関する操作情報を前記ジャーナリング領域に記憶させる制御手段として機能させることを特徴とするコンピュータが読み取り可能なプログラム。 - データを保持するためのデータ領域とファイルシステムを管理するための管理情報を保持するための管理領域とを有する記憶装置を備えるコンピュータを、
前記記憶装置のデータ領域に対するアクセスに関する操作情報を格納するためのログ領域を、前記記憶装置に割り当てる割り当て手段と、
前記割り当て手段によって割り当てたログ領域の位置を示す位置情報を保持する保持手段と、
前記データ領域に対するアクセスに関する操作情報を前記ログ領域に記憶させる制御手段と、を有し、
前記割り当て手段は、前記ログ領域の位置情報が保持されていると、当該位置情報が示す位置とは異なる位置に新たなログ領域を割り当てる情報処理装置として機能させることを特徴とするコンピュータが読み取り可能なプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013022370A JP2014153873A (ja) | 2013-02-07 | 2013-02-07 | 情報処理装置、情報処理方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013022370A JP2014153873A (ja) | 2013-02-07 | 2013-02-07 | 情報処理装置、情報処理方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014153873A true JP2014153873A (ja) | 2014-08-25 |
Family
ID=51575700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013022370A Pending JP2014153873A (ja) | 2013-02-07 | 2013-02-07 | 情報処理装置、情報処理方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014153873A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230153032A1 (en) * | 2021-11-18 | 2023-05-18 | Sk Hynix Inc | Apparatus and method for improving data input/output performance of storage |
-
2013
- 2013-02-07 JP JP2013022370A patent/JP2014153873A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230153032A1 (en) * | 2021-11-18 | 2023-05-18 | Sk Hynix Inc | Apparatus and method for improving data input/output performance of storage |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9430542B2 (en) | User initiated replication in a synchronized object replication system | |
US8280858B2 (en) | Storage pool scrubbing with concurrent snapshots | |
US20060047926A1 (en) | Managing multiple snapshot copies of data | |
US7958328B2 (en) | Computer system, storage system and method for saving storage area by integrating same data | |
JP2018028715A (ja) | ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム | |
US8977802B2 (en) | Access device, information recording device, controller, real time information recording system, access method, and program | |
US9778860B2 (en) | Re-TRIM of free space within VHDX | |
US20110055297A1 (en) | Access module, information recording module, controller, and information recording system | |
JP2008146408A (ja) | データ記憶装置、そのデータ再配置方法、プログラム | |
US20190042134A1 (en) | Storage control apparatus and deduplication method | |
US20160011792A1 (en) | Media control device and control method | |
JP2020047215A (ja) | ストレージシステム及びストレージ制御方法 | |
EP2669806B1 (en) | Storage system | |
US8938596B2 (en) | Storage apparatus, control apparatus, and storage apparatus control method | |
JP4394467B2 (ja) | ストレージシステム、サーバ装置及び先行コピーデータ生成方法 | |
KR102277731B1 (ko) | 스토리지 시스템의 구동 방법 및 스토리지 컨트롤러 | |
US8555007B2 (en) | Storage system with journal disks dynamically assigned | |
EP3136245B1 (en) | Computer | |
JP2014153873A (ja) | 情報処理装置、情報処理方法およびプログラム | |
US20130262804A1 (en) | Data duplication system, data duplication method, and program thereof | |
US20140082280A1 (en) | Storage apparatus and control method | |
US20140059305A1 (en) | Management apparatus, storage device, and initialization method | |
JP6343952B2 (ja) | ストレージシステム | |
JP2022020744A (ja) | ストレージシステム及びストレージ制御方法 | |
JP2010170268A (ja) | ストレージシステムの制御方法、ストレージ制御装置及びプログラム |