JP2008171311A - データ保存装置 - Google Patents

データ保存装置 Download PDF

Info

Publication number
JP2008171311A
JP2008171311A JP2007005634A JP2007005634A JP2008171311A JP 2008171311 A JP2008171311 A JP 2008171311A JP 2007005634 A JP2007005634 A JP 2007005634A JP 2007005634 A JP2007005634 A JP 2007005634A JP 2008171311 A JP2008171311 A JP 2008171311A
Authority
JP
Japan
Prior art keywords
data
volume
file
segment
area
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
Application number
JP2007005634A
Other languages
English (en)
Inventor
Tetsuya Suzuka
哲也 鈴鹿
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2007005634A priority Critical patent/JP2008171311A/ja
Publication of JP2008171311A publication Critical patent/JP2008171311A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】記憶領域10内のあるボリューム領域40から他のボリューム領域にデータをボリューム単位でバックアップする(330)際に、転送元のボリューム領域内に未使用領域110が存在しても、転送先のボリュームでは対応する未使用領域のためにセクタ20を割当てず、記憶容量の利用効率を高める。
【解決手段】ボリューム領域40へのセクタ20の割当てはセグメント630単位で管理し、セグメントの割当てはそこへ実際にデータが書き込まれるまで遅延させ、未割当てのセグメント群660は記憶領域10内の全てのボリューム領域で利用可能とする。
【選択図】図2

Description

本発明は、記憶装置上のデータを他の記憶装置へ転送するデータ転送装置およびデータ転送方法に関するものであり、特に複数のボリュームに分割された記憶領域に対する情報記録管理に関する。
近年、音声・動画等の大容量の記憶領域を必要とするコンテンツのディジタル化に伴い、これら情報を保存することができる、大容量の記憶媒体が普及している。ハードディスク、DVDディスク、不揮発性メモリカード等の記憶媒体の大容量化に伴い、これら記憶媒体間でのデータ転送を高速に実行する必要性が高まっている。
記憶媒体間でのデータ転送は、同程度の容量をもつ記憶媒体間での転送(以下では、対称型転送と呼ぶ)と、容量が異なる記憶媒体間での転送(以下では、非対称型転送と呼ぶ)に分類できる。対称型転送の例としては、パーソナルコンピュータ等の情報処理機器に内蔵されている大容量ハードディスクのデータを、外部のハードディスクやディジタルテープにバックアップする場合がある。非対称型転送の例としては、リムーバブルな不揮発性メモリカードをムービー等の携帯型レコーダーに対する記憶媒体として使用し、前記不揮発性メモリカード上のデータを情報処理機器に内蔵されている大容量ハードディスクに移動する場合がある。
近年、据え置き機器に内蔵されているハードディスクは数十ギガバイトから数百ギガバイトの容量をもつようになっており、さらに、リムーバブルな不揮発性メモリカードとしても容量が数ギガバイトに及ぶものが普及し始めている。そこで、記憶媒体間でのデータ転送ではギガバイト・オーダーのデータを転送する必要があり、転送速度が不十分ならば利用者の利便性を著しく損なう可能性がある。例えば、非対称型転送の前記例において、4ギガバイトのメモリカードに高画質のDVファーマット動画を記録すると最大8分程度の動画を記録できるが、メモリカードからハードディスクへの転送が1メガバイト/秒とすると4ギガバイトの転送に1時間以上を要し、撮影時間の約8倍の転送時間がかかってしまう。そこで、記憶媒体間でのデータ転送を高速化することが課題となっている。
図に基づいて、記憶媒体間でのデータ転送処理について説明する。図7は、記憶媒体における保存データの配置の一例を示している。
記憶領域10は、記録再生の最小単位である固定長ブロック(セクタ20と呼ぶ)で構成されており、各セクタ20はセクタアドレス30により記憶領域10内で一意に識別される。記憶領域10を構成するセクタ群は、通常いくつかの部分集合に分割され、この部分集合毎に独立した記憶領域として使用されるが、この部分記憶領域をボリューム領域40と呼ぶ。ボリューム領域40を構成するセクタ20は、そのボリューム領域内で閉じた仮想セクタアドレスにより識別可能である。どのボリューム領域40にも属さない未使用セクタは未使用セクタ群60に分類され、新たにボリューム領域40を作成する時に使用することができる。ボリューム領域40、及び、未使用セクタ群を管理するための情報は、ボリューム管理情報70として記憶領域10内に記録されている。
ボリューム領域40には、1つのファイル領域80が構築される。ファイル領域80では、ユーザが、任意長の利用者データをファイル90として記録することができる。セクタ20は通常512バイトであり、これをファイル領域80での管理の基本単位とすると大容量ファイルに対する管理負荷が大きくなる。そこで、ファイル領域80では所定数の隣接するセクタ20群(以下、クラスタ100と呼ぶ)を読書きの基本単位とすることにより、管理単位の粒度を大きくしてファイル管理負荷を低減が図られている。通常、クラスタ100は数キロバイトから数十キロバイト程度のサイズとなる。ファイル90として使用されていないクラスタ100は、ファイル領域内未使用領域110として管理されている。ファイル90、及び、ファイル領域内未使用領域110を管理するための情報は、ファイル管理情報120としてボリューム領域40内に記録されている。
図8は、ハードディスクの記憶領域における保存データの配置例をファイル領域レベルで表している。ハードディスク記憶領域130は、3つのボリューム領域、すなわち、ボリュームA(40−A)、ボリュームB(40−B)、及び、ボリュームC(40−C)に分割して使用されている。
ボリューム管理情報70としては、MBR(Master Boot Record)140とEBR(Extended Boot Record)150中にパーティションテーブル160が存在する。各パーティションテーブル・エントリ170は、対応するボリューム40に関する情報として、ボリュームの種類を表すボリュームタイプ180、ボリュームの開始セクタを示す開始セクタアドレス190、及び、ボリュームの総セクタ数を表すボリュームサイズ200をもつ。各パーティションテーブル160では、最初のエントリが1つのボリューム40を表し、2つ目のエントリが後続のボリュームを管理しているEBRが配置されている領域を表す。例えば、MBR中のパーティションテーブル160では、最初のエントリがボリュームA(40−A)を表し、2つ目のエントリがボリュームB(40−B)を管理しているEBR(160−2)が先頭に配置されている領域を表す。このパーティションテーブルのチェーンを用いることにより、任意個のボリュームを記憶領域に作成することが可能である。
図8の例では、各ボリューム領域中には各々1つのFAT(File Allocation table)ファイルシステムが構築されている。すなわち各ボリューム領域40上には、ファイル領域80に加えてファイル管理情報120として、ブートセクタ210、FAT領域220、及び、ディレクトリ領域230が存在する。ファイル領域80の基本単位であるクラスタ100のサイズは、ブートセクタ210中のセクタ当りのバイト数240と、クラスタ当りのセクタ数250により指定される(本図の例では、4キロバイトとしている)。
クラスタ100の線形リストによりファイル90が構成されるが、図8のファイル領域80ではファイルAが番号160のクラスタ、番号161のクラスタ等で構成されている場合を表している。ファイル80の構成は、FAT領域220とディレクトリ領域230により管理されている。ディレクトリ領域230には各ファイル80に対応してディレクトリエントリ260が存在し、ファイル名270からそのファイルの先頭クラスタの番号(ファイル開始位置280)と、ファイルサイズ290を取得することが可能である。図8の例ではディレクトリエントリ260より、ファイルAは160番目のクラスタから始まり、ファイル長が5メガバイトであることがわかる。
ファイルを構成するクラスタ100の線形リストは、FAT領域220にFATエントリ300のチェーンとして記録されている。各FATエントリ300はクラスタと1対1に対応しており、n番目のFATエントリはn番目のクラスタに対応する。FATエントリ300は値として、そのエントリの次に位置するFATエントリの番号が記録されている。FATチェーンの終端のエントリには、EOF(End of File)として特別な値(例えば、0xFFFFFFFF)が記録されており、どのFATチェーンに属さないFATエントリには零が記録される。図8の例では、FATエントリの160番目から163番目がFATチェーン310を構成している。これは、FATチェーン310中の各FATエントリ300と対応するクラスタ、すなわち、クラスタ番号160、クラスタ番号161、クラスタ番号162等のクラスタ100がファイルAを構成していることを示している。
ボリューム間のファイル転送について、図8のボリュームC(40−C)上のファイルAを、ボリュームB(40−B)にコピーする場合を例として説明する。
まず転送元ボリュームに対する処理として、ディレクトリ領域230を検索して、ファイル名270がファイルAであるディレクトリエントリ260を取得する。このディレクトリエントリのファイル開始位置280より、ファイルAが160番目のクラスタから始まることが判明する。次に、FAT領域220から160番目のFATエントリから始まるFATチェーン310を取得する。取得したFATチェーンにおいて、先頭のFATエントリから順次、それに対応するクラスタを読み込む。
転送元でのクラスタの読込みに対応して、その転送先となる転未使用クラスタを送先ボリュームで検索する。すなわち、転送先ボリュームのFAT領域220中をサーチして、値が零であるFATエントリを取得する。そして、取得したFATエントリに対応したクラスタに、前記の転送元で読込んだクラスタ・データを書き込む。
(従来技術1)
前述したようにボリューム間のファイル転送では、転送元ボリュームでのファイルを構成するクラスタ群を同定するためのFAT領域の検索処理と、転送先での未使用クラスタを取得するためのFAT領域の検索処理が必要となる。ギガバイトのサイズをもつファイルを転送する場合、粒度の小さいクラスタ毎に転送元と転送先のFAT領域を検索することは処理負荷が大きい。例えば、4ギガバイトのファイルを4キロバイトのクラスタ単位で転送すると、転送元と転送先でそれぞれ1メガ個のFATエントリを読込んで、同数のクラスタを同定する必要がある。ファイルのサイズに比べて、過小な単位で管理しているために、ファイル管理のためのコストが、ファイル転送処理全体に占める比率が過大となっている。
そこで、記憶領域10に、ファイル管理方法の異なる複数のボリューム領域40を設け、保存されるファイル90毎にその特性に最適のファイル管理方法をもつボリューム領域を選択して、そこに保存することを特徴とするファイル保存方式が従来技術として考案されている(例えば特許文献1参照。)。
この従来技術では、1つの記憶領域10中にクラスタサイズの異なる複数のボリューム領域40を設け、保存するファイル毎に、ファイル管理コストと記憶容量の利用効率との間のトレードオフを考慮して、記録するボリュームを決定する。図8の例では、前記のようにボリュームC(40−C)におけるクラスタ100のサイズを4キロバイトとしたが、ボリュームB(40−B)のクラスタサイズは32キロバイトとボリュームCの8倍の大きさとする。
動画ファイルのようにサイズの大きなファイルは、クラスタサイズの大きなボリュームBへ記録する。これにより、クラスタサイズが8分の1であるボリュームCに記録した場合に比べて、転送元ボリュームでのファイルを構成するクラスタ群を同定するためのFAT領域の検索処理と、転送先での未使用クラスタを取得するためのFAT領域の検索処理といったファイル管理のためのコストが8分の1となる。
しかし、たとえ1バイト長のファイルであっても記憶領域として1つのクラスタが割当てられるので、クラスタのサイズを大きくすると記憶領域の利用効率が低下する。そこで、小規模のテキストファイルのようにサイズの小さなファイルは、クラスタサイズの小さなボリュームCに記録することにより、記憶容量の利用効率を改善することができる。
(従来技術2)
ファイル転送に伴うファイル管理コストを低減するために、「従来技術1」では1つの記憶領域10中にクラスタサイズの異なる複数のボリューム領域40を設けたが、1つのボリューム領域においてファイルのサイズに応じて管理単位のサイズを変更して、通常のファイルに対してはクラスタ単位で転送を実施し、大きいサイズのファイルに対しては複数の連続するクラスタ群をまとめた単位(以下では、スーパークラスタ320と呼ぶ)で転送を実施する転送方式が従来技術として考案されている(例えば特許文献2参照。)。この従来技術について、図7に基づいて説明する。
ファイル管理情報120には、ファイル90をクラスタ100単位で管理するための、前記FAT領域220と前記ディレクトリ領域230が存在する。それに加えて、所定の数の連続するクラスタをまとめたスーパークラスタ320毎に、使用中であるか未使用であるかを管理するための使用状況管理領域がファイル管理情報120として存在する。所定閾値以上のサイズのファイルをボリューム間転送する場合、転送先ドライブでFAT領域220を検索してクラスタ単位に未使用領域を求める代りに、前記の使用状況管理領域を参照してスパークラスタ320単位で未使用領域を取得する。転送先でのファイル管理単位を大きくすることにより、転送データを書き込むための領域を検索するための負荷が低減する。さらに、転送先での書込み領域の連続性がスーパークラスタ320単位で保証されるので、転送速度が向上する。
(従来技術3)
記憶媒体間でのデータ転送としては、「従来技術2」で述べた「ファイル単位の転送」以外に、ボリュームのバックアップのように転送元ボリュームの全記録データを転送先にコピーする「ボリューム単位の転送330」がある。
ボリューム単位の転送330では、セクタ20がファイル90として使用されているかどうかに関わらず、ボリューム内の全てのセクタをそのまま転送先に書き込めばよい。すなわち、転送元ボリューム40のサイズ以上のボリュームを転送先の記憶領域10に割当て、転送元ボリューム40内のセクタ20を仮想セクタアドレス空間50内での並びの順序で読出し、転送先ボリュームの仮想セクタアドレス空間内で同一のアドレスをもつセクタへ読込んだセクタデータを書き込むことで、転送元ボリュームのセクタイメージをそのまま転送先ボリュームに複製することができる。
ボリューム単位の転送330は、転送元ボリューム内の全てのセクタをそのまま転送先に複製するだけなので、ファイル管理情報120を解析するためのオーバーヘッドが発生しない。しかし、転送元ボリュームのファイル領域80に未使用のセクタ群(以下では、ファイル空間内未使用領域110と呼ぶ)が大容量で存在すると、本来は転送する必要がないこの領域も転送してしまうためのオーバーヘッドが発生する。
そこで、ボリューム単位の転送330においても、転送元ボリュームのFAT領域220をチェックし、未使用のクラスタ(すなわち、対応するFATエントリ300の値が零であるクラスタ)は転送の対象から除外するする転送方式が従来技術として考案されている(例えば特許文献3参照。)。
特開平9−319523号公報(第1頁、第1図) 特開2003−296156号公報(第14頁、第1図) 特開2003−256148号公報(第18頁、第1図)
通常、ボリューム領域40のサイズは一旦割当てられた後で、増減させることは困難である。従来技術1では1つの記憶領域10をクラスタサイズの異なる複数のボリューム領域40に分割するが、各ボリューム領域のサイズをその使用に先立って、固定的に決定する必要がある。しかし、各ボリューム領域の使用量は使用状況に依存して決まるので、予め決定することは困難である。例えば、動画ファイルを多く記録するユーザに対してはクラスタサイズの大きなボリュームの容量を大きくする必要が有り、逆に、サイズの小さいデータファイルを多く記録するユーザに対してクラスタサイズの小さなボリュームの容量を大きくする必要がある。動画ファイルを記録する場合、クラスタサイズの小さなボリュームにいくら空き領域が存在しても使用することができない。したがって、従来技術1では記録するファイルの特性に合わせて、各ボリュームのサイズを予め設定しておく必要があるがこれは困難であり、その結果、記憶容量の利用率が低下してしまうことが多い。
また、記憶媒体間でのデータ転送アプリケーションとしては、転送先の記憶媒体は転送されたファイル群をそのままの形で保持しておくだけでよく、保存ファイルへの書込みアクセスが不要なものがある。例えば、情報処理機器の内蔵ハードディスクを外部のハードディスクにバックアップした場合、転送先の外部ハードディスクに対してはバックアップデータを復旧する場合の読出しアクセスは必須であるが、保存されているファイルを変更するための書込みアクセスは不要である。前記外部ハードディスクへの書込みアクセスは、新たなバックアップデータを上書きする場合だけ必要となる。
ボリューム40が前記のようにファイルへの書込みアクセスが不要である場合、ファイル空間内未使用領域110に割当てられたセクタ20は使用されることはない。しかし、前記の従来技術2と従来技術3では、ファイル空間内未使用領域110に対してもセクタ20が固定的に割当てられるので、転送先ボリュームの記憶容量を浪費することになる。
また、従来技術2では転送先での空き領域を管理する単位(スーパークラスタ320)を大きくすることにより、ボリューム40間でのファイル転送のための管理コストを低減しているが、転送元ファイル90を構成するクラスタ100を同定するためにFAT領域220の検索は必要である。FAT領域220の検索において、対象ファイルが分断化している場合は対応するFATチェーン310も分断化するので、FATチェーン上で隣り合うFATエントリ300がセクタアドレス空間30上では大きく隔たっている場合がある。ハードディスク等のディスク型記録媒体では、セクタアドレス空間30上で隔たったセクタにアクセスするためには、磁気ヘッド340を移動させるための時間(シーク時間)が数十ミリ秒必要となる。したがって、転送元ボリュームにおけるファイル領域80の分断化状況によっては、従来技術2によるファイル単位の転送ではFAT領域220の検索に長時間要する危険性がある。
また、従来技術3のボリューム単位のデータ転送330では、転送元ボリューム40中の全セクタ20が転送先ボリュームの対応するセクタにそのまま複製される(ただし、転送先ボリュームのファイル空間内未使用領域110には書き込みは実行されない)。このため、転送元で分断化していたファイル90は、転送先でもそのまま分断化したままのセクタ配置で記録される。これに対して、従来技術2のようにファイル単位で転送すると、転送先ボリュームでファイルが新たなセクタ配置で再構成されるので、転送元のファイルが分断化していても転送先では連続セクタに記録される。前述のように、分断化した記録データへのアクセスはシーク時間のためにアクセス性能の低下につながるので、記憶媒体間でのデータ転送においてファイルの配置が再構成されないことは、従来技術3における問題点である。
以上の従来技術1、従来技術2および従来技術3における課題を受け、本発明では、複数のボリュームが存在する記憶領域において、記憶容量の高い利用効率を実現するボリューム管理装置を実現することを目的とする。
特に、バックアップ形式のボリューム間データ転送において、転送先ボリュームの記憶容量の高い利用効率を実現するとするデータ転送装置を実現することを目的とする。
また、ボリューム単位のデータ転送330を、転送元ボリュームでの記録状態に依らず高速に実行できるデータ転送装置を実現することを目的とする。
さらに、転送先ボリュームにおいてデータ記録位置を再配置することでデータ配置の分断化を解消することができるデータ転送装置を実現することを目的とする。
前記の目的を達成するために請求項1に記載のデータ保存装置は、保存すべきデータを生成するデータ発生源と、記憶アドレス空間を複数のボリューム空間に分割し、各ボリューム空間毎に独立したファイルシステム空間をもつ記憶装置を1つまたは複数有し、前記データ発生源で生成された第1のデータを保存先である第1のボリューム空間にファイルとして記録するデータ保存装置であって、ボリューム空間を固定長の記憶ブロックが動的に割当てられる仮想記憶として管理し、前記第1のデータ中に有意な情報を保持していない無為データ部分が存在する場合、
前記第1のボリューム空間において前記の無為データ部分に対応する空間へ前記記憶ブロックを割当てないことを特徴としたものである。
また請求項2に記載のデータ保存装置は、請求項1記載のデータ保存装置であって、前記データ発生源で生成されたデータにおいて同一のデータ値が所定の長さ以上続く部分を前記無為データ部分とすることを特徴としたものである。
また請求項3に記載のデータ保存装置は、請求項1記載のデータ保存装置であって、前記データ発生源は第2のボリューム空間内のデータを所定の順番に読出し、前記第2のボリューム空間内でファイルが配置されていない空間を前記無為データ部分とすることを特徴としたものである。
また請求項4に記載のデータ保存装置は、請求項3記載のデータ保存装置であって、前記第2のボリューム空間のファイルシステム空間はFATファイルシステム空間であり、FATエントリが零であるか非零であるかにより、対応するファイルシステム空間にファイルが配置されているか否かを判断することを特徴としたものである。
また請求項5に記載のデータ保存装置は、請求項3記載のデータ保存装置であって、前記第2のボリューム空間のファイルシステム空間はユニバーサルディスクフォーマットファイルシステム空間であり、空間ビットマップ記述子が零であるか非零であるかにより、対応するファイルシステム空間にファイルが配置されているか否かを判断することを特徴としたものである。
また請求項6に記載のデータ保存装置は、記憶アドレス空間を複数のボリューム空間に分割し、各ボリューム空間毎に独立したファイルシステム空間をもつ記憶装置を有し、各ボリューム空間を仮想記憶として管理するデータ保存装置であって、前記記憶装置の記憶領域は複数のブロックから構成され、各ボリューム空間は複数のサブ空間に分割され、各サブ空間は前記ブロックのうちの特定の1つにのみ割当て可能であり、あるサブ空間(第1のサブ空間)へ割当て可能なブロックが他のサブ空間(第2のサブ空間)に割当て済みである場合、前記第1のサブ空間へのアクセスを不良記憶領域へのアクセスとして取り扱うことを特徴としたものである。
本発明の情報記録管理装置では、各ボリューム内でファイルとして使用されていない記憶領域は、他のボリュームの記憶領域として使用することが可能なので、複数のボリュームが存在する記憶装置における記憶容量の利用効率を向上することができる。
また本発明の情報記録管理装置では、各ボリューム内で同一のデータが連続して記録されている記憶空間に対しては物理的な記憶領域を割当てられず、この使用されなかった記憶領域を他のボリュームの記憶領域として使用することが可能なので、複数のボリュームが存在する記憶装置における記憶容量の利用効率を向上することができる。
また本発明の情報記録管理装置では、あるボリュームから他のボリュームにデータを転送する時に、ボリューム空間がファイルとして使用されているかどうかを判断するためにファイル管理情報にアクセスする必要があるが、これはファイル管理情報の先頭から最後までシーケンシャルに一通りだけアクセスすればよく、ファイル管理情報に対する検索等のランダムアクセスは不要なので、転送を高速化することができる。
また本発明の情報記録管理方法では、ボリューム空間に対する記憶領域の割当てはそのボリューム空間にデータが書き込まれる時に実行されるので、アドレス空間内で分断化しているデータであっても、物理的な記憶領域上では連続的に配置される可能性がある。
また本発明の情報記録管理装置では、記憶装置の全記憶容量を全てのボリューム間で共有させ、各ボリュームにその使用状況に応じた記憶容量を動的に割り付けることができるので、複数のボリュームが存在する記憶装置における記憶容量の利用効率を向上することができる。
以下、本発明の実施の形態について、図を用いて説明する。
図1は、本発明を適用したデータ転送装置の全体構成を示す。データ転送装置400は、リームバブル記憶媒体であるメモリカード410に記録されたデータを、大容量のHDD装置420に複製する機能を有する。本実施例では、データ転送装置400およびHDD装置420は小型かつ軽量で、外出先でムービー等でメモリカード410に記録されたディジタルコンテンツをその場で移動して保存することができる携帯型データ蓄積装置として使用される。そこで本実施例では、HDD装置420に保存されるデータは携帯先での一時的なものであり、この一時保存されたデータはデータ転送装置400に内蔵されているUSBインタフェース430を介して、パーソナルコンピュータ等に移動して永続的に保存される。
データ転送装置400は、装置内の動作を制御するプロセッサ440と、プロセッサ440の作業用一時記録領域である主メモリ450と、電源ON/OFFを跨いで保持される必要のある情報を読み書きするための不揮発性メモリであるEEPROM460と、前記プロセッサにより解釈/実行さえる命令群が記録されているROM470と、USB回線との通信を終端するUSB I/F430と、HDD装置420との通信を終端するHDDインタフェース480と、メモリカード410との通信を終端するカードI/F490と、HDD装置420またはメモリカード410との間で送受信されるデータを一時的に保持しておくためのデータバッファ500と、HDD装置420またはメモリカード410とデータバッファ500間のデータ転送を実行するDMAC510から構成される。
メモリカード410は、データ転送装置400からの指示を受け付けてデータ転送を実行するカード制御部520と、記憶領域10としての不揮発性半導体メモリ530から構成される。不揮発性半導体メモリ530は数ギガバイトの容量をもち、これは再生時間が十分程度の高精彩動画を記録可能な容量に相当する。不揮発性半導体メモリ530には、1つのボリューム領域40−Dが構築されており、このボリューム内のファイル領域80−Dのファイルとして、動画等のコンテンツが記録される。
HDD装置420は、記録データの流れに直接関与するデータ系の構成要素と、HDD装置自体の動作を制御するための制御系の構成要素からなる。データ系の構成要素としては、記録領域10としてのHDDディスク550と、HDDディスク上のデータへのアクセスを実行する磁気ヘッド340と、データ転送装置400から渡された書込みデータを一時保存するライトバッファ560と、HDDディスク550から読み出されたデータを一時保存するリードバッファ570がある。制御系の構成要素としては、データ転送装置400からの指示を受け付けてデータ転送を制御するHDD制御部580と、HDDの動作を管理するための情報であるHDD管理情報590と、磁気ヘッド340によるHDDディスク550へのアクセスを制御するヘッドアクセス回路600と、ライトバッファ560とヘッドアクセス回路600の間に位置して書込みデータの定数性を判断するセグメント定数性検出部610がある。これらの制御系の構成要素は、内部バス620により連結されている。
HDDディスク550上には複数のボリューム領域40が構築されているが、各ボリューム領域にはメモリカード410のボリューム40−Dのある時点でのデータイメージが複製されている。例えば、最初に撮影したメモリカード1枚分の動画をボリューム40−Aに保存さあれ、次に撮影したメモリカード1枚分の動画をボリューム40−Bに保存されている。これにより、数ギガバイトのメモリカード410が1枚と、100ギガバイト程度のHDD装置420があれば、メモリカード数十枚分の動画を保存可能となる。
次に、HDDディスク550上のボリューム領域へのセクタ20の割当方法について、図2に基づいて説明する。図2は本発明に固有のボリューム領域割当方式を示しており、図7で示した従来技術に対応している。ここでは、図7との差分に関してのみ述べる。図7の従来技術では、ファイル領域80の仮想セクタアドレス空間50に対しては、セクタアドレス空間30内の実セクタ20が1対1で漏れなく割当てられている。このため前記のように、ファイル空間内未使用領域110に対しても実セクタ20が固定的に割当てられる。
これに対して、図2に示す本発明のボリューム領域割当管理では、セクタアドレス空間30内の実セクタ20は所定の数を1纏めとした単位(以下では、セグメント630と呼ぶ)で仮想セクタアドレス空間への割当を管理する。ファイル領域80内でファイル90として使用されている仮想セクタアドレス空間(図2の割当済み仮想セクタドレス空間640)にのみセグメント630を割当て、ファイル空間内未使用領域110に対しては仮想セクタアドレス空間(図2の未割当仮想セクタアドレス空間650)は存在するが対応するセグメント630は割当てない。これにより、各ボリューム領域内のファイル空間内未使用領域110に相当するセグメント630を未使用セグメント群660として、新たなボリューム領域40を割当てる時に使用することができる。
例えば、4ギガバイトのメモリカード410に2ギガバイトの動画コンテンツを記録し、80ギガバイトのHDD装置420にボリューム単位で転送するとする。この場合、従来のボリューム領域割当管理では、2ギガバイト分のファイル90しか存在しなくともボリューム領域40として4ギガバイトであれば、HDD装置420中のセクタ20を4ギガバイト分必要とするので、80ギガバイトのHDD装置420では20枚分のメモリカード410のデータしか保存できない。一方、本発明のボリューム領域割当管理では、2ギガバイト分のファイル90しか存在しなくともボリューム領域40はボリューム領域自体のサイズに無関係に2ギガバイト分のセクタ20のみを必要とするので、80ギガバイトのHDD装置420では40枚分のメモリカード410のデータが保存可能となる。
セグメント630のサイズとしては、記憶領域10の容量に応じて、数十メガバイトから数ギガバイトの範囲で、セグメント管理のためのコストと記憶領域の利用率とのトレードオフを考慮した値を用いる。また、ファイル領域80での管理単位との整合性をとるために、セグメント630長としては、クラスタ100のサイズの倍数となるサイズを用いる。
本発明のボリューム領域割当管理では、未割当仮想セクタアドレス空間650として実際にセグメント630が割当てられていない領域がファイル領域30内に存在するために、新規にファイルを作成する場合や、既存のファイルに追記する場合に、ファイル書込み処理に先立ってセグメント630を割当てる必要がある。このファイル書込み時のオーバーヘッドは、データ転送装置400の使用形態によれば問題にならない場合がある。例えば、本実施例のように携帯型データ蓄積装置として使用される場合、HDD装置420に保存されるデータは携帯先での一時的なものであるので、それに対するファイル書込みは必要ない。また、セグメント630のサイズを数百メガバイト以上とすれば、セグメント割当による処理オーバーヘッドは十分小さく抑えることができる。
次に、ボリューム領域へのセグメント630の動的な割当を実現するための管理情報について述べる。図1に示すように、HDD装置420内のHDD管理情報590として、セグメント・ビットマップ670とセグメント・マッピングテーブル680が存在する。これらの管理情報の意味を図3に示す。HDDディスク550上の各セグメント630は、2つの識別番号すなわち、物理セグメント番号690と仮想セグメント番号700をもつ。物理セグメント番号690は、セグメント630の物理的な配置を表す物理セグメント空間710内で一意な番号である。仮想セグメント番号700は、HDD装置に対するATAコマンド/レスポンス720のパラメータとして指定される値であり、データ保存装置400から見たデータ配置は仮想セグメント番号700に基づいた仮想セグメント空間730となる。したがって、データ保存装置400はHDDディスクの仮想セグメント空間730内にボリューム領域40を構築するが、HDD装置420内で実際に保存される配置は物理セグメント空間710に変換されたものとなる。
HDD管理情報590内のセグメント・ビットマップ670は、各物理セグメント番号690に対応するセグメント630が割当済みか未割当かを表すビットマップとなっている。図3の例では、物理セグメント番号が0から2までが使用中である場合を示している。
HDD管理情報590内のセグメント・マッピングテーブル680は、仮想セグメント番号700から物理セグメント番号690へのマッピングを管理する。セグメント・マッピングテーブル680は、仮想セグメント番号700毎にセグメントマッピングエントリ740を持つ。セグメントマッピングエントリ740の割当状態フラグフィールド750は、仮想セグメント番号に対するセグメント630の割当状態を表し、このフィールドに「割当済み」が設定されている場合は、物理セグメント番号フィールド760に割当てられているセグメント630の物理セグメント番号690が設定されている。図3の例では、0番目の仮想セグメントに0番目の物理セグメントが、1番目の仮想セグメントに1番目の物理セグメントが、4番目の仮想セグメントに2番目の物理セグメントがそれぞれ割当てられている。
このセグメント・マッピングテーブル680により、仮想的なアドレス(データ転送装置400に見える記録位置)で指定されるセグメントを、セグメント境界を満たす任意の物理的な記録位置に配置することが可能となる。これにより、従来技術3の課題として前述した、ボリューム単位のデータ転送330においてセクタ配置が再構成されないという問題に対応することができる。例えば図3では、プロセッサ440から見える仮想アドレスとしては1番目のセグメントと4番目のセグメントは2つのセグメント分だけ隔たっているが、実際に記録されている物理位置は1番目と2番目のセグメントであり、隣接しているのでこれらのデータにアクセスするためのシーク時間は短い。
図3の例における2番目の仮想セグメントのように、1つのセグメント分の仮想アドレス空間がファイル空間内未使用領域110に含まれる場合は、この仮想アドレス空間に対するセグメント630の割当は実施されず、対応するセグメントマッピングエントリの割当状態フラグフィールド750は「未割当」となる。1つの仮想セグメント全体がファイル領域80内で使用されているかどうかは、FAT領域220により判断できる。前記のように、FATエントリ300は対応するクラスタ100が未使用ならば値が零となるので、1つの仮想セグメントに含まれるクラスタに対応したFATエントリ群をチェックし、前記FATエントリ群の値が全て零ならば対応する仮想セグメントは未使用である判断できる。
よって、転送元のボリューム空間がファイルとして使用されているかどうかを判断するためにファイル管理情報にアクセスする必要があるが、これはファイル管理情報の先頭から最後までシーケンシャルに一通りだけアクセスすればよく、ファイル管理情報に対する検索等のランダムアクセスは不要なので、転送を高速化することができる。
本発明のボリューム領域割当管理では、ファイルとして使用されていない仮想セグメントに対しては物理セグメントを割当てないことに加えて、1つの仮想セグメントに記録されているデータ値が全て同一である場合も物理セグメントを割当てないことで、記憶領域の利用効率の向上を図ることを特徴としている。図3の例では、3番目の仮想セグメントにはオール0が記録されており、対応するセグメントマッピングエントリ740は割当状態フラグ750として「定数」が設定され、データ値フィールド770に零が設定されている。HDD装置420内のHDD制御部580は、割当状態750が「定数」であるセグメントへの読込み要求を受け付けると、対応するデータ値フィールド770に設定されている値をセグメントのサイズ分だけリードバッファ570に書き込むことにより、物理セグメント630が未割手でも読出しアクセスを実現できる。
1つの仮想セグメントに記録されているデータ値が全て同一であるかどうかの判断は、図1に示すセグメント定数性検出部610が実行する。セグメント定数性検出部610は、ライトバッファ560中のデータを監視し、1つのセグメントに渡って同一のデータが連続していることを検出すると、内部バス620を介してHDD制御部420に通知する。
以上に説明したボリューム領域割当管理により、本発明のHDD装置420では、セグメントに渡って同一のデータ値であるファイルが多数存在すれば、実際の記憶容量を越えたデータ量を保存することができる。この種のファイルとしては、データを記録する位置(すなわち、ファイル先頭からのオフセット値)が意味をもつ記録フォーマットであるためにファイル中に有効なデータが局所的に点在する場合が考えられる。
このようなファイルはスパースファイルと呼ばれ、UDF(Universal Disk Format)、NTFS(NT File System)等の既存のファイルシステムにおいても、有効なデータ部分のみへ記憶領域を割当てることにより、記憶容量の利用効率を改善している。しかし、これらの従来ファイルシステムでは、スパースファイルにおいて割当を省くことができたセクタ群はファイル空間内未使用領域110に属することになるが、前述のようにこの領域内のセクタは特定のボリュームに固定的に割当てられるため、他のボリュームにおいて使用することができない。このため前記の例のように、4ギガバイトのボリュームに2ギガバイトの有効データしか存在しなければ、残りの2ギガバイトはこのボリューム中のファイル空間内未使用領域に存在するが、この未使用領域を他のボリュームで使用することができないので、複数のボリュームが存在する記憶領域10においては記憶容量の利用効率が低下する。
これに対して本発明では、スパースファイルにおいて割当を省くことができたセクタ群は未使用セグメント群660に属することになり、全てのボリューム(新たに作成するボリュームを含む)で使用することができるので、複数のボリュームが存在する記憶領域10において記憶容量の利用効率を改善することができる。
次に、ボリュームにデータを書き込むための処理手順を、図4に基づいて説明する。図4に示すセクタ書込み処理は、書込み対象セクタの開始位置を示す「ボリューム内仮想セクタアドレス」780と、書き込むセクタ数を示す「ライトセクタ数」790と、書き込むデータが配置されているデータバッファ500上の開始アドレスを示す「ライトデータバッファ」800を入力情報として受け取る。
まず、「セクタ−セグメントアドレス変換処理」810を実行して、「ボリューム内仮想セクタアドレス」780と「ライトセクタ数」790から、書込み対象のセクタ群が属するセグメント630の識別番号である「仮想セグメント番号」820と、書込み対象領域のセグメント内オフセット値を表す「セグメント内オフセット」830を算出する。ここでの計算には、パーティションテーブルエントリ中の開始セクタアドレス190とボリュームサイズ200を使用する。
次に、前記の「仮想セグメント番号」820により識別される書込み対象の仮想セグメントについて、その割当状態をチェックする(「仮想セグメントの割当状態チェック」840)。対象の仮想セグメントに対するセグメント・マッピングテーブルエントリ740において、その割当状態フラグ750が未割当か定数であれば、前記仮想セグメントには物理セグメントが割り当てられていないので新たに割り当てる必要がある。
仮想セグメントへの物理セグメントの割当は、まずセグメント・ビットマップ670に基づいて、未使用の物理セグメントを検索する(「未使用物理セグメントの検索」850)。未使用の物理セグメントが見つかれば、これを仮想セグメントに割り当てるために、対応するセグメント・マッピングテーブルエントリ740とセグメント・ビットマップ670を更新する(「物理セグメントの割当」860)。
書込み対象の仮想セグメントへ割り当てられている物理セグメントの番号870が同定されると、この物理セグメントの前記セグメント内オフセット位置830へ、ライトデータバッファ800中のデータを、ライトセクタ数790で指示されたサイズだけ書き込む(「物理セグメントへのデータ書込み」880)。ここで書き込まれるデータはセグメント定数性検出部610により監視されている。セグメント定数性検出部610は、書き込み対象の仮想セグメント全体が1つの定数値を検出すると、その仮想セグメントを定数かする処理を起動する。
セグメントの定数化890では、対象のセグメントに書き込まれている定数値を、セグメント・マッピングテーブルエントリのデータ値フィールド770に設定し、割当状態フラグフィールド750を定数に設定し、その後セグメント・ビットマップ67を更新して、この仮想セグメントに割当てられていた物理セグメントを未使用にする。
次に、ボリューム中のデータを読み出すための処理手順を、図5に基づいて説明する。図4に示すセクタ読込み処理は、読込み対象セクタの開始位置を示す「ボリューム内仮想セクタアドレス」900と、読み出すセクタ数を示す「リードセクタ数」910と、読み出したデータを格納するデータバッファ500上の開始アドレスを示す「リードデータバッファ」920を入力情報として受け取る。
まず、「セクタ−セグメントアドレス変換処理」930を実行して、「ボリューム内仮想セクタアドレス」900と「リードセクタ数」910から、読み出し対象のセクタ群が属するセグメント630の識別番号である「仮想セグメント番号」940と、書込み対象領域のセグメント内オフセット値を表す「セグメント内オフセット」950を算出する。
次に、前記の「仮想セグメント番号」940により識別される仮想セグメントについて、その割当状態をセグメント・マッピングテーブルエントリ740に基づいてチェックする(「仮想セグメントの割当状態チェック」960)。
物理セグメントが割当て済みならば、この物理セグメントの前記セグメント内オフセット位置950に記録されているデータをリードセクタ数910で指示されたサイズだけ読み出し、リードデータバッファ920へ転送する(「物理セグメント・データの読出し」970)。
セグメント・マッピングテーブルエントリの割当状態フィールド750が定数ならば、データ値フィールド770の値を、リードセクタ数910で指示されたサイズだけリードデータバッファ920へ転送する(「定数データ生成」980)。
以上の「書込み処理」と「読出し処理」により、HDD装置420を使用するデータ転送装置400は、HDD装置420内で実行されているセグメント630単位での記憶領域管理を意識せず、通常のハードディスクと同様に使用することができる。
実施例1では、ボリューム上のファイルを管理するファイルシステムが固定長のブロック単位(すなわち、クラスタ単位)である場合に対して、本発明の情報記録管理方法を適用したが、管理単位が可変長であるファイルシステムに対しても本発明を適用可能である。例えば、UDFのボリュームに本発明を適用する場合は、セグメントがファイルシステムにより使用されているかどうかを判断するために、FAT領域220の代わりに、UDFボリューム中の各論理ブロックが使用中か未使用かを表す「空間ビットマップ記述子」を使用する。
実施例1では、図1に記載のデータ転送装置400はメモリカード410に記録されたデータをHDD装置420に転送する携帯型バックアップ装置である場合について述べた。これに対して実施例2では、転送元のデータがストリームデータであるデータ転送装置400に対して、本発明を適用した場合について述べる。実施例2の説明では、実施例1との差分についてのみ述べる。
図1のデータ転送装置400は、動画インタフェース990と静止画インタフェース1000を介して、外部のカメラ装置で撮影された動画および静止画を受け取る。動画はストリームデータとして撮影中にリアルタイムで送られてき、静止画は1枚撮影する毎にそのデータが送られてくる。データ転送装置400は、これらのデータを受信するとHDD装置420にファイルとして保存していく。
1枚の静止画データは数百キロバイト程度のサイズであるが、動画は数百メガバイトから数十ギガバイトとなり、記録した場合のファイルサイズが大きく異なる。そこで、静止画と動画を記録するボリュームを分ける。ファイル管理コストと記憶容量の利用効率との間のトレードオフを考慮して、静止画を記録するボリューム40−Aはクラスタのサイズは通常の値である4キロバイトとしたが、動画を記録するボリューム40−Bはクラスタのサイズを32キロバイトと大きくする。
これにより、1つの動画ファイルを保存する場合のファイル管理コストは同じサイズの静止画ファイルを保存する場合の8分の1となり、転送速度の高速化が図れる。反面、1つの動画ファイルを保存する時に無駄に使用される記憶領域は最大で32KBと大きくなるが、数百メガバイトから数十ギガバイトのファイルサイズと比較すれば十分小さい。これに対して、数百キロバイト程度のファイルサイズしかない静止画ファイルの保存においては、ファイル管理コストが増加してもクラスタサイズを小さくして無駄に使用される領域を小さくする必要がある。
ファイルの種類により保存先のボリュームを分けると、従来技術1の課題として述べたように、各ボリューム領域のサイズをその使用に先立って固定的に決定する必要があるが、使用状況に依存して決まる各ボリューム領域の必要容量を予め決定することは困難であり、結果として記憶容量の利用率が低下してしまうことが多い。そこで本発明では、各ボリュームの未使用領域を全ボリュームで共有させ、ボリュームの使用状況に応じて動的に容量を割当てることで、HDDディスク550全体としての記憶容量の利用効率を改善する。
ボリューム領域への物理セグメントの割当て管理方法を図6に示す。図3に示した実施例1のセグメント割当管理では、各ボリュームは仮想セグメント空間730内でボリュームのサイズに応じた独立した区分を固定的に割当てられている。これに対して図6のセグメント割当管理では、仮想セグメント空間730内で各ボリュームはHDDディスク全体の記憶容量に相当するサイズの区分を持つ。ボリューム中の仮想セグメントは、ファイルシステムの管理情報が配置される先頭セグメントを除いて、仮想セグメント番号700と同一の値の物理セグメント番号690をもつ物理セグメントにのみ対応付けられ得る(図6中の「ストレートマッピング・セグメント1020」)。
ストレートマッピング・セグメント1020は、対応する物理セグメントが他のボリュームに使用されると、記憶領域をもつことができなくなる。この物理セグメントを割当できなくなった仮想セグメントに対するライトアクセスはエラーとなるので、データ転送装置400はこの領域を不良セクタ領域と判断して、今後使用されることが無いようにファイル空間内未使用領域110から取り出す。FATファイルシステムでは、不良セクタを含むクラスタに対応したFATエントリ300に、不良であることを表す非零値を書き込む。このような他のボリュームに割当てられているために使用することが不可となったストレートマッピング・セグメントを以下では擬似不良セグメント1030と呼ぶこととする。図6の例では、ボリューム40−Bの2番目の仮想セグメントは、対応する物理セグメントがボリューム40−Aに割当てられているため擬似不良セグメントとなっている。
ストレートマッピング・セグメント1020は各ボリュームのその使用状況に応じて動的に割当てられるが、FAT領域220等のファイル管理情報120は各ボリュームの仮想セクタアドレス空間50内で所定の位置に格納される必要があるので擬似不良セグメント化する可能性のあるストレートマッピング・セグメント1020に配置することはできない。例えば図8に示すように、ブートセクタ210はボリュームの先頭に配置し、FAT領域220はその直後に配置しなければならない。このように配置する位置がファイルシステムにより決定されている領域に対しては、セグメントを固定的に割当てる(固定割当セグメント1040)。図6に示す例では、ファイル管理情報120が存在する各ボリュームの先頭セグメントのみを固定割当セグメント1040として割当てている。
全ボリュームのファイル領域内未使用領域110をストレートマッピング・セグメント1020として共有し、あるボリュームに割当てられたストレートマッピング・セグメントについては他のボリュームでは不良セクタ領域として認識させて使用不可とする。このボリューム領域の共有管理により、各領域のファイル領域90に対してはその使用状況に応じて物理領域が割当てられることになる。例えば先の例では、ユーザデータをまだ記録していない状態では静止画用のボリューム40−Aと動画用のボリューム40−Bは未使用のストレートマッピング・セグメント1020を共有しており、両方のボリュームともHDDディスク550の全容量とほぼ等しいサイズのファイル領域内未使用領域110を所有している。その後ユーザデータとして10ギガバイトの静止画と90ギガバイトの動画を記録したとすると、静止画用ボリューム40−Aは10ギガバイトのファイル領域80と90ギガバイトの不良セクタ領域をもち、逆に動画用ボリューム40−Bは90ギガバイトのファイル領域80と10ギガバイトの不良セクタ領域をもつようになる。
次に図6に基づいて、本実施例おける管理情報について述べる。HDD管理情報590としては、ボリューム管理テーブル1050、物理セグメント管理テーブル1060及び、未使用セグメント数カウンタ1070がある。
ボリューム管理テーブル1050は、各ボリュームへの物理セグメントの割当状態を表すボリューム情報1075をテーブルエントリとしてもつ。ボリューム情報1075は、ボリュームの先頭セグメントに対してどの物理セグメントが割当てられているかを示す先頭物理セグメント番号1080と、ボリュームに割当てられている物理セグメントの数を表す割当済みセグメント数1090をもつ。先頭物理セグメント番号1080により、前記の固定割当セグメント1040を登録する。図6の例では、ボリューム40−Aの状態を表す0番目のエントリは、先頭セグメントとして0番目の物理セグメントが割当てられおり、現在には合計2つの物理セグメントが割当て済みであることを示している。
物理セグメント管理テーブル1060は、各物理セグメントの割当状態を表す物理セグメント管理情報1100をテーブルエントリとしてもつ。物理セグメント管理情報1100は、対象物理セグメントの割当状態を表す使用状態フラグ1110と、対象物理セグメントが割当られているボリュームの番号を表す割当先ボリューム番号1120をもつ。使用状態フラグ1110は、対象物理セグメントが未割当てならば「未割当」、固定割当セグメント1040として割当てられているならば「固定割当」、ストレートマッピング・セグメント1020として割当てられているならば「動的割当」を値とする。図6の例では、0番目と1番目の物理セグメントはそれぞれボリューム40−Aとボリューム40−Bの先頭セグメントに固定的に割当てられており、2番目の物理セグメントはボリューム40−Aに、3番目の物理セグメントはボリューム40−Bに動的に割当てられている。
未使用セグメント数カウンタ1070は、ボリュームに割当てられていない物理セグメントの総数を表す。
以上のボリューム領域の共有管理により、各ボリューム領域のファイル領域90にその使用状況に応じて物理領域が割当てられることができ、従来技術1の課題として述べた、ファイルの種類により保存先のボリュームを分けることによる記憶容量の利用率低下を回避することができる。その上、他のボリュームに割当てられたため使用することができなくなった領域は、ファイルシステムにおける通常の不良クラスタ処理により取り扱われるので、既存のファイルシステムに対して本発明をそのまま適用することが可能である。
上記では、他のボリュームに割当てられたセグメントにアクセスするとエラーとなることで、そのセグメントがアクセス不能であることをデータ転送装置400に認識させているが、この方法では1つの物理セグメント全体を使用禁止とするためにはそのセグメントに属するクラスタ全てにアクセスする必要があり、多数の無駄なアクセスを試行することになる。そこで代替手段として、HDD制御部580が擬似不良セグメント1030内へのアクセス要求を受け取ると、その擬似不良セグメントの開始アドレスとサイズをATAコマンド/レスポンス720により、データ転送装置400に通知することも可能である。この特殊なATAコマンド/レスポンス720を導入することで既存ファイルシステムを流用することはできなくなるが、擬似不良セグメント1030内の各クラスタへのアクセスを試みる必要が無くなる。
次に、あるボリュームに一旦割当てられた物理セグメントが未使用となった場合、それを開放して他のボリュームで再利用できるようにする必要がある。この物理セグメントの再利用処理の1実施例として、データ転送装置400が主導する場合について述べる。データ転送装置400は、使用中のクラスタ100を未使用とする時に前記のセグメント定数性検出610を用いてセグメント630単位で未使用となっていないかをチェックする。もしセグメントが未使用となっていれば、そのセグメントへの物理セグメントの割当を解除するようにHDD装置420に依頼する。
その後、データ転送装置400が他のボリュームへの書き込みにおいて擬似不良セグメント1030の発生を検出すると、そのボリューム中のFAT領域220を検索し、不良クラスタとしてマークされている領域へのアクセスを実施する。先の処理で開放された物理セグメントに対応する擬似不良セグメント1030は割当可能となっているので、このアクセスが成功し、通常にファイル領域として使用することができる。
実施例2では、各ボリュームが同種のファイルシステムすなわち、FATファイルシステによりファイルを管理していたが、ボリューム毎に異なるファイルシステムを用いることも可能である。例えば、静止画用ボリュームはFATファイルシステムとし、動画用ボリュームはUDFとすることも可能である。
本発明にかかるデータ転送方法は、大量のデータを記憶装置間で転送する場合、特に、携帯型のバックアップ用記憶装置に一時保存するデータを転送する場合に、転送速度の高速化と記憶容量の利用効率向上する転送装置として有用である。
本発明を適用したデータ転送装置の構成を表す図 本発明によるボリュームへの記憶領域の動的な割当方法を表す図 実施例1におけるボリュームへの記憶領域割当のための管理情報を表す図 実施例1におけるボリュームへのデータ書込み手順を示す図 実施例1におけるボリュームからのデータ読出し手順を示す図 実施例2におけるボリュームへの記憶領域割当のための管理情報を表す図 従来技術におけるボリュームへの記憶領域の割当方法を表す図 ボリュームに保存されているデータのファイルレベルでの配置例を表す図
符号の説明
10 記憶領域
20 セクタ
30 セクタアドレス空間
40 ボリューム領域
50 仮想セクタアドレス空間
60 未使用セクタ群
70 ボリューム管理情報
80 ファイル領域
90 ファイル
100 クラスタ
110 ファイル領域内未使用領域
120 ファイル管理情報
130 ハードディスク記憶領域
140 MBR(Master Boot Record)
150 EBR(Extended Boot Record)
160 パーティションテーブル
170 パーティションテーブル・エントリ
180 ボリュームタイプ
190 開始セクタアドレス
200 ボリュームサイズ
210 ブートセクタ
220 FAT領域
230 ディレクトリ領域
240 セクタ当りのバイト数
250 クラスタ当りのセクタ数
260 ディレクトリエントリ
270 ファイル名
280 ファイル開始位置
290 ファイルサイズ
300 FATエントリ
310 FATチェーン
320 スーパークラスタ
330 ボリューム単位のデータ転送
340 磁気ヘッド
400 データ転送装置
410 メモリカード
420 HDD装置
430 USBインターフェイス
440 プロセッサ
450 主メモリ
460 EEPROM
470 ROM
480 HDDインタフェース
490 カードI/F
500 データバッファ
510 DMAC
520 カード制御部
530 不揮発性半導体メモリ
550 HDDディスク
560 ライトバッファ
570 リードバッファ
580 HDD制御部
590 HDD管理情報
600 ヘッドアクセス回路
610 セグメント定数性検出部
620 内部バス
630 セグメント
640 割当済み仮想セクタドレス空間
650 未割当仮想セクタドレス空間
660 未使用セグメント群
670 セグメント・ビットマップ
680 セグメント・マッピングテーブル
690 物理セグメント番号
700 仮想セグメント番号
710 物理セグメント空間
720 ATAコマンド/レスポンス
730 仮想セグメント空間
740 セグメントマッピングエントリ
750 割当状態フラグフィールド
760 物理セグメント番号フィールド
770 データ値フィールド
780 ボリューム内仮想セクタアドレス
790 ライトセクタ数
800 ライトデータバッファ
810 セクタ−セグメントアドレス変換
820 仮想セグメント番号
830 セグメント内オフセット
840 仮想セグメントの割当状態チェック
850 未使用物理セグメントの検索
860 物理セグメントの割当
870 書き込み対象物理セグメントの番号
880 物理セグメントへのデータ書込み
890 セグメントの定数化
900 ボリューム内仮想セクタアドレス
910 ライトセクタ数
920 ライトデータバッファ
930 セクタ−セグメントアドレス変換
940 仮想セグメント番号
950 セグメント内オフセット
960 仮想セグメントの割当状態チェック
970 物理セグメント・データの読出し
980 定数データ生成
990 動画入力インタフェース
1000 静止画入力インタフェース
1020 ストレートマッピング・セグメント
1030 擬似不良セグメント
1040 固定割当セグメント
1050 ボリューム管理テーブル
1060 物理セグメント管理テーブル
1070 未使用セグメント数カウンタ
1075 ボリューム情報
1080 先頭物理セグメント番号
1090 割当済みセグメント数
1100 物理セグメント管理情報
1110 使用状態フラグ
1120 割当先ボリューム番号

Claims (6)

  1. 保存すべきデータを生成するデータ発生源と、
    記憶アドレス空間を複数のボリューム空間に分割し、
    各ボリューム空間毎に独立したファイルシステム空間をもつ記憶装置を1つまたは複数有し、
    前記データ発生源で生成された第1のデータを保存先である第1のボリューム空間にファイルとして記録するデータ保存装置において、
    ボリューム空間を固定長の記憶ブロックが動的に割当てられる仮想記憶として管理し、
    前記第1のデータ中に有意な情報を保持していない無為データ部分が存在する場合、
    前記第1のボリューム空間において前記の無為データ部分に対応する空間へ前記記憶ブロックを割当てないことを特徴とするデータ保存装置。
  2. 請求項1記載のデータ保存装置において、
    前記データ発生源で生成されたデータにおいて同一のデータ値が所定の長さ以上続く部分を前記無為データ部分とすることを特徴とするデータ保存装置。
  3. 請求項1記載のデータ保存装置において、
    前記データ発生源は第2のボリューム空間内のデータを所定の順番に読出し、
    前記第2のボリューム空間内でファイルが配置されていない空間を前記無為データ部分とすることを特徴とするデータ保存装置。
  4. 請求項3記載のデータ保存装置において、
    前記第2のボリューム空間のファイルシステム空間はFATファイルシステム空間であり、
    FATエントリが零であるか非零であるかにより、対応するファイルシステム空間にファイルが配置されているか否かを判断することを特徴としたデータ保存装置。
  5. 請求項3記載のデータ保存装置において、
    前記第2のボリューム空間のファイルシステム空間はユニバーサルディスクフォーマットファイルシステム空間であり、
    空間ビットマップ記述子が零であるか非零であるかにより、対応するファイルシステム空間にファイルが配置されているか否かを判断することを特徴としたデータ保存装置。
  6. 記憶アドレス空間を複数のボリューム空間に分割し、
    各ボリューム空間毎に独立したファイルシステム空間をもつ記憶装置を有し、
    各ボリューム空間を仮想記憶として管理するデータ保存装置において、
    前記記憶装置の記憶領域は複数のブロックから構成され、
    各ボリューム空間は複数のサブ空間に分割され、
    各サブ空間は前記ブロックのうちの特定の1つにのみ割当て可能であり、
    あるサブ空間(第1のサブ空間)へ割当て可能なブロックが他のサブ空間(第2のサブ空間)に割当て済みである場合、
    前記第1のサブ空間へのアクセスを不良記憶領域へのアクセスとして取り扱うことを特徴としたデータ保存装置。
JP2007005634A 2007-01-15 2007-01-15 データ保存装置 Pending JP2008171311A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007005634A JP2008171311A (ja) 2007-01-15 2007-01-15 データ保存装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007005634A JP2008171311A (ja) 2007-01-15 2007-01-15 データ保存装置

Publications (1)

Publication Number Publication Date
JP2008171311A true JP2008171311A (ja) 2008-07-24

Family

ID=39699330

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007005634A Pending JP2008171311A (ja) 2007-01-15 2007-01-15 データ保存装置

Country Status (1)

Country Link
JP (1) JP2008171311A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010541060A (ja) * 2007-10-01 2010-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション シン・プロビジョニングの移行および取り消しのための方法および装置
JP2011150681A (ja) * 2010-01-20 2011-08-04 Hitachi Ltd ストレージシステムのためのi/o変換方法及び装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010541060A (ja) * 2007-10-01 2010-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション シン・プロビジョニングの移行および取り消しのための方法および装置
US8386744B2 (en) 2007-10-01 2013-02-26 International Business Machines Corporation Thin provisioning migration and scrubbing
JP2011150681A (ja) * 2010-01-20 2011-08-04 Hitachi Ltd ストレージシステムのためのi/o変換方法及び装置

Similar Documents

Publication Publication Date Title
US11048624B2 (en) Methods for multi-stream garbage collection
JP5090941B2 (ja) ストレージサブシステム及びストレージシステム
KR101767710B1 (ko) 폐기가능 파일들의 카드-기반 관리
WO2017088185A1 (zh) 一种存储设备存储数据的方法及存储设备
JP5129156B2 (ja) アクセス装置、および、ライトワンス記録システム
US8472449B2 (en) Packet file system
US7660837B2 (en) Method for automatically managing disk fragmentation
US8621176B2 (en) Method and system for allocating data objects for efficient reads in a mass storage subsystem
KR20070100151A (ko) 플래시 메모리 장치 및 플래시 메모리 액세스 방법
US7676140B2 (en) Recording apparatus
JP2004013276A (ja) ファイルシステム及び記録媒体
JP2005135116A (ja) ストレージ装置及びそのアクセス制御方法
JP4502375B2 (ja) ファイルシステムおよびその制御方法
JP4347707B2 (ja) 情報記録媒体のフォーマット方法および情報記録媒体
WO2011121870A1 (ja) データ記録装置、及びデータ記録方法
US7062603B2 (en) External storage device for selectively storing data between first and second recording media
US10585592B2 (en) Disk area isolation method and device
JP2008171311A (ja) データ保存装置
WO2010119478A1 (en) Storage system and control method therefor
US20100169555A1 (en) Method of writing data into flash memory based on file system
US8200936B2 (en) Systems and methods for recording information to a memory card
JP2008262452A (ja) 記録デバイスのキャッシュ方法および記録装置
JP4211563B2 (ja) 再生記録装置
JP2003296156A (ja) 情報記録管理装置、データ記録再生装置、情報記録管理方法及びファイル管理方法
US11829288B2 (en) Mapping of object data and metadata in an object storage volume