JP3629216B2 - デフラグメンテーション機能を有するディスク記憶システム、及び同システムにおけるデフラグメンテーション方法 - Google Patents
デフラグメンテーション機能を有するディスク記憶システム、及び同システムにおけるデフラグメンテーション方法 Download PDFInfo
- Publication number
- JP3629216B2 JP3629216B2 JP2001065248A JP2001065248A JP3629216B2 JP 3629216 B2 JP3629216 B2 JP 3629216B2 JP 2001065248 A JP2001065248 A JP 2001065248A JP 2001065248 A JP2001065248 A JP 2001065248A JP 3629216 B2 JP3629216 B2 JP 3629216B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- area
- disk
- head
- sequential
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/02—Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
- G11B27/031—Electronic editing of digitised analogue information signals, e.g. audio or video signals
- G11B27/036—Insert-editing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B19/00—Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
- G11B19/02—Control of operating function, e.g. switching from recording to reproducing
- G11B19/12—Control of operating function, e.g. switching from recording to reproducing by sensing distinguishing features of or on records, e.g. diameter end mark
- G11B19/125—Control of operating function, e.g. switching from recording to reproducing by sensing distinguishing features of or on records, e.g. diameter end mark involving the detection of carrier data format
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/02—Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
- G11B27/031—Electronic editing of digitised analogue information signals, e.g. audio or video signals
- G11B27/034—Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2206/00—Indexing scheme related to dedicated interfaces for computers
- G06F2206/10—Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
- G06F2206/1004—Defragmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/10537—Audio or video recording
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2508—Magnetic discs
- G11B2220/2516—Hard disks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Management Or Editing Of Information On Record Carriers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、編集等によりディスク媒体上で断片化されたシーケンシャルデータを自動的にデフラグメンテーションするのに好適なデフラグメンテーション機能を有するディスク記憶システム、及び同システムにおけるデフラグメンテーション方法に関する。
【0002】
【従来の技術】
近時、ディスク記憶システム、例えば磁気ディスク装置(以下、HDDと略称する)の記憶容量の増大に伴い、当該HDDを、デジタル音楽データ、デジタル映像データ等のいわゆるAV(Audio Visual)データを記録するためのAV HDDとして用いるようになっている。AVデータは時間的に連続したシーケンシャルデータであることから、AVストリーム(データストリーム)とも呼ばれる。
【0003】
ユーザは、HDDに記録されているAVデータを、ホストシステムから編集できる。この編集によりAVデータの不要部分がカットされると、必ずデータの断片化(フラグメンテーション)が発生し、AV HDDのパフォーマンスが低下してしまう。そこで、このデータの断片化を改善するためには、適当なタイミングでHDD内のデータの並び替え(デフラグメンテーション)を行う必要がある。
【0004】
従来、このデフラグメンテーションを行うには、当該デフラグメンテーションのためのユーティリティプログラムをユーザの操作により任意のタイミングで起動する必要があった。このユーティリティプログラムは、ホストシステム上で動作して、HDD内の断片化されたデータを一度ホストシステムのメモリに読み出して当該データが連続して格納されるように並び替えた上で、HDDに書き込む。これによりHDD内でのAVデータの断片化が解消され、HDDのパフォーマンスが低下するのを防止できる。
【0005】
一方、特開平10−11337号公報には、利用頻度の高いデータを断片化の進行していない領域に移動させる技術が記載されている。この技術によれば、利用頻度の高い断片化されたデータが連続領域に移動されることで、当該データの読み出し時のパフォーマンスの向上が図れる。また、断片化されている領域が減少するために、ガーベジコレクションによって処理されるデータ量を減らすことができる。
【0006】
【発明が解決しようとする課題】
上記したように従来は、HDDに格納されているAVデータの断片化を改善するには、ホストシステム上でユーティリティプログラムを起動してAVデータのデフラグメンテーションを実行する必要があった。この結果、HDDのパフォーマンス低下は防止できるものの、ホストシステムのパフォーマンスの低下を招くという問題があった。また、デフラグメンテーションが実行されている期間は、ホストシステムとHDDとの間で、AVストリームの再生などのデータ入出力が一切できないという問題もあった。
【0007】
そこでホストシステムのパフォーマンスの低下を防止するために、AV HDDに、ホストシステムから独立にデフラグメンテーションを実行する機能を持たせることが考えられる。しかし、デフラグメンテーションが実行されている期間、ホストシステムとHDDとの間でデータ入出力が行えない点については何ら改善されない。
【0008】
また、HDDにおけるデフラグメンテーションに、上記特開平10−11337号公報に記載されている技術を適用し、利用頻度の高いAVデータについてのみデフラグメンテーションを行うことも考えられる。この場合、デフラグメンテーションに要するHDDの負荷を極力減らすことが可能となり、また利用頻度の高いAVデータの読み出し時のパフォーマンスの向上も図れる。しかし、デフラグメンテーションが実行されている期間、ホストシステムとHDDとの間で、AVストリームの再生などのデータ入出力ができない点では、従来と変わらない。また、利用頻度の低いAVデータの読み出し時のパフォーマンスは低いままである。
【0009】
本発明は上記事情を考慮してなされたものでその目的は、ホストシステムから要求された時間的に連続したシーケンシャルデータを再生するのと並行して、当該再生されたデータを連続領域に書き込むことにより自動的にデフラグメンテーションが行えるディスク記憶システム、及び同システムにおけるデフラグメンテーション方法を提供することにある。
【0010】
【課題を解決するための手段】
本発明は、ディスク媒体へのデータ書き込みと当該ディスク媒体からのデータ読み出しとが可能なディスク記憶システムにおいて、ホストシステムから時間的に連続したシーケンシャルデータの読み出しが要求された場合、当該シーケンシャルデータが上記ディスク媒体上で複数のデータブロックに断片化されているか否かを判定する断片化判定手段と、上記要求されたシーケンシャルデータが断片化されていると前記断片化判定手段により判定された場合、当該シーケンシャルデータをディスク媒体から読み出してホストシステムに転送する制御と並行して、上記ディスク媒体から読み出されたデータをディスク媒体の連続領域に書き込む制御を実行する制御手段とを備えたことを特徴とする。
【0011】
このような構成においては、ホストシステムからディスク記憶システムに対してAVストリーム等のシーケンシャルデータの読み出し(再生)が要求されると、当該シーケンシャルデータが編集等により複数のデータブロックに断片化されている場合には、当該シーケンシャルデータの再生と並行して、当該シーケンシャルデータを構成する上記複数のデータブロックがディスク記憶媒体の連続領域に書き込まれる。このように上記の構成においては、ホストシステムから要求されたシーケンシャルデータの再生とほぼ同時に、当該シーケンシャルデータのデフラグメンテーションをディスク記憶システム側で自動的に行うことができ、しかもホストシステム側ではデフラグメンテーションを何ら意識する必要がない。
【0012】
上記の構成において、要求されたシーケンシャルデータの総量以上の大きさの連続する空き領域を、上記連続領域として用いるとよい。また、要求されたシーケンシャルデータが記録されていた領域を用い、当該シーケンシャルデータを構成する上記複数の断片化されたデータブロックのうち、先頭のデータブロックを除くデータブロックを、当該先頭データブロックが記録されているディスク媒体の領域の最後尾位置から順に前詰めで連続して書き込むとよい。ここでは、要求されたシーケンシャルデータの総量以上の大きさの連続する空き領域が存在しない場合にも、当該シーケンシャルデータの再生と並行しての自動デフラグメンテーションが可能となる。
【0013】
以上の自動デフラグメンテーションを効率的に行うには、磁気ディスク装置(HDD)等のディスク記憶システムにおいては、少なくともデータ読み出しが可能な第1のヘッドと、少なくともデータ書き込みが可能な、上記第1のヘッドとは独立に動作可能な第2のヘッドとを備え、第1のヘッドによるシーケンシャルデータの読み出しと、この第1のヘッドにより読み出されたデータの第2のヘッドによる上記連続領域への書き込みとを並行して行えばよい。
【0014】
ディスク記憶システムには、当該システムとホストシステムとの間のデータ転送速度の違いを吸収するために、ディスク媒体から読み出されたデータを一時格納するためのバッファメモリが設けられているのが一般的である。したがって、ディスク媒体から読み出されてバッファメモリに格納されたシーケンシャルデータを当該バッファメモリから読み出してディスク媒体の上記連続領域に書き込む制御を行うことで、シーケンシャルデータの再生と並行しての自動デフラグメンテーションを確実に行うことができる。この場合、デフラグメンテーションのための特別なバッファメモリを用意する必要はない。
【0015】
また本発明のディスク記憶システムは、ホストシステムから時間的に連続したシーケンシャルデータの読み出しが要求された場合、当該シーケンシャルデータが記録されているディスク媒体上の各物理トラックを単位に、当該トラックに記録されているシーケンシャルデータの少なくとも一部をなすデータが複数のデータブロックに断片化されているか否かを判定する断片化判定手段と、上記物理トラックに記録されているシーケンシャルデータの少なくとも一部をなすデータが複数のデータブロックに断片化されていると上記断片化判定手段により判定される毎に、当該複数のデータブロックの間の領域が他のデータの領域に用いられているか否かを判定するブロック間領域判定手段と、上記複数のデータブロックの間の領域が他のデータ領域に用いられていないと判定された場合、当該複数のデータブロックを対応する物理トラックからヘッドにより読み出させてバッファメモリに格納する第1の制御と、上記バッファメモリに格納された上記複数のデータブロックをホストシステムに転送する第2の制御と、上記バッファメモリに格納された上記複数のデータブロックを当該ブロックが記録されていた物理トラックの連続領域に上記ヘッドにより前詰めで連続して書き込ませる第3の制御とを並行して実行する制御手段とを備えたことを特徴とする。
【0016】
このような構成のディスク記憶システムにおいては、ヘッド1本でも、シーケンシャルデータの再生と並行しての自動デフラグメンテーションを行うことができる。但し、上記第1及び第2のヘッドを備えたディスク記憶システムよりも高速であることが好ましい。
【0017】
また本発明は、データの記録再生が可能な複数のディスクドライブと、これら複数のディスクドライブを制御するディスクアレイコントローラとを備えたディスクアレイ型のディスク記憶システムにおいて、上記コントローラに、次の断片化判定手段と制御手段とを設けたことを特徴とする。ここで断片化判定手段は、ホストシステムから時間的に連続したシーケンシャルデータの読み出しが要求された場合、当該シーケンシャルデータが上記ディスクドライブ内で複数のデータブロックに断片化されているか否かを判定する。一方、制御手段は、上記要求されたシーケンシャルデータが断片化されていると断片化判定手段により判定された場合、当該シーケンシャルデータを対応するディスクドライブから読み出してホストシステムに転送する第1の制御と、上記ディスクドライブから読み出されたデータを当該ディスクドライブとは異なる別のディスクドライブに書き込む第2の制御とを並行して実行する。
【0018】
このような構成のディスク記憶システムにおいては、通常のディスクドライブを用いながら、シーケンシャルデータの再生と並行しての自動デフラグメンテーションを確実に且つ高速に行うことができる。
【0019】
以上の各手段、即ち制御手段、断片化判定手段、及びブロック間領域判定手段等は、所定の制御プログラムを実行するCPUにより実現される。
なお、以上のディスク記憶システムに係る本発明は、方法(デフラグメンテーション方法)に係る発明としても成立する。
【0020】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
【0021】
[第1の実施形態]
図1は本発明の第1の実施形態に係る磁気ディスク装置の構成を示すブロック図である。図1において、データが記録される例えば複数の磁気ディスク11は、スピンドルモータ(SPM)12により支持されている。各ディスク11はスピンドルモータ12により高速に回転する。各ディスク11の各記録面に対応して、それぞれ2つのヘッド13a(HEAD#1)及びヘッド13b(HEAD#2)が設けられている。但し、図では、作図の都合上、1つのディスク11の一方の記録面に対応して設けられるヘッド13a及び13bのみが示されている。ヘッド13a及び13bは、ディスク11へのデータ書き込み(データ記録)及びディスク11からのデータ読み出し(データ再生)に用いられる、
ディスク11の各記録面には、同心円状の多数のデータトラック(物理トラック)が形成されている。各トラックには、ヘッド13a及び13bのシーク・位置決め等に用いられるサーボデータが記録されたサーボエリアが等間隔で配置されている。サーボデータは、トラックコード(シリンダ番号)及びサーボバーストデータを含む。トラックコードは、データトラックを識別するためのトラックアドレスである。サーボバーストデータは、データトラックの目標位置にヘッドを位置決めするためのトラック追従動作に使用される位置誤差データである。サーボエリア間には複数のセクタ(データセクタ)が配置されている。各サーボエリアは、ディスク11上では中心から各トラックを渡って放射状に等間隔で配置されている。
【0022】
ヘッド13a及び13bは、それぞれ、互いに独立に駆動可能なロータリ型のアクチュエータ14a及び14bのアーム15a及び15bの先端に取り付けられている。アクチュエータ14a及び14bは、それぞれアーム15a及び15bをディスク11の半径方向に独立して駆動するためのボイスコイルモータ16a(VCM#1)及び16b(VCM#2)を含んでいる。
【0023】
SPM12は、モータドライバ17から供給される駆動電流(SPM電流)により駆動される。アクチュエータ14a及び14bは、それぞれモータドライバ17から独立に供給される駆動電流(VCM電流)により駆動される。
【0024】
ヘッド13a及び13bはヘッドIC19と接続されている。ヘッドIC19は、ヘッド13aまたは13bにより読み出されたリード信号を増幅するリードアンプ、及びライトデータをライト電流に変換するライトアンプを有する。
【0025】
ヘッドIC19は、リード/ライトIC20と接続されている。リード/ライトIC20は、リード信号に対するA/D(アナログ/ディジタル)変換処理、ライトデータの符号化処理及びリードデータの復号化処理等の各種の信号処理を実行する。リード/ライトIC20は、リード信号をパルス化してパルス化リードデータとして出力するパルス化機能と、ゲートアレイ21からのタイミング信号(バーストタイミング信号)に応じてサーボデータ中のサーボバーストデータを抽出する機能とを有している。このサーボバーストデータはCPU24に送られて、ヘッド13aまたは13bを目標トラックの目標位置に位置決めするためのトラック追従制御に用いられる。
【0026】
ゲートアレイ21は、リード/ライトIC20から出力されるリードパルスからバーストタイミング信号を含む各種タイミング信号を生成する機能と、サーボデータに含まれているトラックコードを抽出する機能とを有している。このトラックコードは、CPU24に送られて、ヘッド13aまたは13bを目標トラックに移動するシーク制御に用いられる。
【0027】
ディスクコントローラ(HDC)22は、HDDを利用するホストシステムと接続されている。ホストシステムは、パーソナルコンピュータ等のデジタル機器である。ディスクコントローラ22は、ホストシステムとの間のコマンド(ライトコマンド、リードコマンド等)、データの通信を制御するインタフェース制御機能と、リード/ライトIC20及びヘッドIC19を介してディスクl1との間のデータ転送を制御するディスク制御機能と、バッファメモリ23を制御するバッファ制御機能とを有する。
【0028】
バッファメモリ23には、ディスクl1から読み出されてホストシステムに転送されるデータ(リードデータ)を一時格納するためのリードバッファ23aと、ホストシステムから転送されてディスク1lに書き込むべきデータ(ライトデータ)を一時格納するためのライトバッファ(ライトキャッシュ)23bとが確保される。バッファメモリ23は例えばRAM(Random Access Memory)を用いて構成される。
【0029】
CPU24は、不揮発性メモリ、例えば書き換え可能な不揮発性メモリとしてのFROM(Flash Read Only Memory)25に格納されている制御プログラムに従ってHDD全体の制御を実行する。この制御プログラムは、ヘッド13a及び13bを独立して動作させる制御ルーチンを含む。このルーチンでは、ホストシステムから要求されたAVデータを一方のヘッドでリードして時間的に連続したAVストリームとして再生しながら、リードしたデータを他方のヘッドでディスク11の連続領域にライトする制御が行われるようになっている。このFROM25には、後述する管理情報テーブル500も格納される。
【0030】
CPU24には、FROM25とRAM26とが接続されている。RAM26は、CPU24のワーク領域等を提供する。
ゲートアレイ21、ディスクコントローラ22、HDD23、CPU24、FROM25及びRAM26は、CPUバス27により相互接続されている。
【0031】
次に図1の構成の動作を説明する。
まず、本実施形態の特徴は、図1のHDD内のディスク11に記録された断片化したAVデータ、つまりディスク11上では不連続であるが時間的には連続したAVシーケンシャルデータを、当該AVデータの再生時に、ディスク11内の連続した領域にまとめるデフラグメンテーション処理を並行して実行する点にある。このHDDは、AVストリームを直接入出力するAV HDDとして用いられ、当該HDD自身がファイルシステムを管理するように構成されている。
【0032】
ユーザは、HDDに記録されているAVデータを編集したい場合、ホストシステムを操作して、当該ホストシステムからHDDに対して編集コマンドを発行させる。この編集コマンドが、指定位置のデータの消去を指定するイレース(ERASE)コマンドの場合、編集後には、データの断片化(フラグメンテーション)が必ず発生する。このAVデータの編集例を図2に示す。なお、以下の説明では、HDDに入出力されるAVデータと、HDD(ディスク11)に記録されているAVデータ(コンテンツ)とを区別するために、前者をAVストリームと呼び、後者をAVトラックと呼ぶ。このAVトラックは、一般に複数の物理トラックに記録される。但し、1物理トラック上に記録されるAVトラックも存在し得る。また、HDDには一般に複数のAVトラックが記録される。
【0033】
図2には、AVトラック210に対してデータの消去を指定する編集(イレース)コマンドCMD1〜CMD3による編集(消去)処理が行われた結果、AVトラック210からデータブロック221〜223が消去(カット)された、編集後のAVトラック220が得られた様子が示されている。このAVトラック220は、データの断片化が発生した結果、断片化されたデータブロック231〜233を含んでいる。
【0034】
次に、断片化が発生しているAVトラックからAVストリームを再生する際のデフラグメンテーション処理の概要について、図3を参照して説明する。
まず、図3(a)に示すデフラグメンテーション前のAVトラック300は、図2中の編集後のAVトラック220に相当する。このAVトラック300では、編集処理の結果、データブロック301〜303がカットされ、残りがデータブロック311(A),312(B)及び313(C)に断片化されている。
【0035】
本実施形態では、ホストシステムからの要求により、このAVトラック300からAVストリームを再生する場合に、当該AVトラック300に対するデフラグメンテーションを行う。そのため、2つのヘッド13a(HEAD#1)及び13bの一方をAVストリームの再生に使用し、他方をリードしたデータをHDD(ディスク11)の連続領域にライトするのに使用する。ここでは、HEAD#1(ヘッド13a)を再生(リード)用に、HEAD#2(ヘッド13b)をライト用に、それぞれ使用する。
【0036】
さて、HEAD#1によるAVトラック300からのデータリードは、図3(b)に示すように、断片化されたデータブロック311(A),312(B)及び313(C)の記録部分321,322,323を当該HEAD#1が通る期間だけ行われる。これにより、データブロック311(A),312(B)及び313(C)が連続してリードされ、AVストリームとして再生される。
【0037】
HEAD#1によりリードされたデータブロック311(A),312(B)及び313(C)は、図3(c)に示すように、HDD(ディスク11)内の、AVトラック300が記録されている領域とは独立した別の連続領域に、データブロック331(A′),332(B′)及び333(C′)として、HEAD#2によりライトされる。つまり図3の例では、AVトラック300からのAVストリームの再生と並行して、そのAVストリームを構成するデータブロック311(A),312(B)及び313(C)がデータブロック331(A′),332(B′)及び333(C′)として連続して配置されたAVトラック330が、AVトラック300とは別の領域に記録される。
【0038】
次に、図1中のCPU24によるデフラグメンテーション処理の手順について、図4のフローチャートを参照して説明する。
まず、CPU24は、ホストシステムから与えられたAVストリームをリード(再生)することを要求するコマンドをディスクコントローラ22経由で受信したものとする(ステップ401)。
【0039】
CPU24はホストシステムからのリードコマンドを受け付けると、当該コマンドで要求されたAVストリーム(対象ストリーム)に断片化されたデータが含まれているか否かを判定する(ステップ402)。この判定は、後述するように、管理情報テーブル500(図5参照)を参照することで実現される。
【0040】
CPU24は、対象ストリームに断片化されたデータが含まれていない場合には、デフラグメンテーション処理は不要であると判断する。この場合、CPU24は、リードコマンドで指定されたAVトラックからデータをリードしてAVストリームを再生するための通常のリード制御を行う。
【0041】
これに対し、対象ストリームに断片化されたデータが含まれている場合には、HDD(ディスク11)内に、当該対象ストリームをライトするのに十分な大きさ(つまり当該対象ストリームの総量以上)の連続する空き領域が存在するか否かを判定する(ステップ403)。もし、十分な連続する空き領域が存在しない場合、CPU24はデフラグメンテーション処理は不可能であると判定する。この場合もCPU24は、指定されたAVトラックからデータをリードしてAVストリームを再生するための通常のリード制御を行う。
【0042】
一方、十分な連続する空き領域が存在する場合、CPU24はデフラグメンテーション処理が可能であると判定する。この場合、HEAD#1(ヘッド13a)のリード開始位置をディスク11上のAVトラック上の断片化しているデータブロックのうち、先頭のブロックの開始位置に設定すると共に、HEAD#2(ヘッド13b)のライト開始位置をディスク11上の上記空き領域の先頭位置に設定して、その各設定位置にHEAD#1及びHEAD#2を独立して移動させる(ステップ404)。したがって、図3に示すAVトラック300が指定されたものとすると、HEAD#1のリード開始位置はデータブロック311の先頭位置に設定される。
【0043】
次にCPU24は、リード開始位置が設定されたブロック(311)のサイズを転送サイズとして設定する(ステップ405)。そしてCPU24は、ステップ404で設定されたリード開始位置からステップ405で設定された転送サイズ分のデータブロック(311)をHEAD#1によりリードさせ、ディスクコントローラ22によりバッファメモリ23内のリードバッファ23aに一時格納させる(ステップ406)。このステップ406では、リードバッファ23aに格納されたデータブロック(311)をホストシステムに転送する動作がディスクコントローラ22により行われる。またステップ406では、リードバッファ23aに格納されたデータブロック(311)をディスクコントローラ22からリード/ライトIC20及びヘッドIC19を介してHEAD#2に転送し、ステップ404で設定されたライト開始位置から始まる空き領域に当該HEAD#2によりライトする動作も並行して行われる。
【0044】
したがって、図3の例であれば、まず、AVトラック300の先頭データブロック311(A)をHEAD#1によりリードしてリードバッファ23aに一時格納しながら、当該リードバッファ23aに格納されたデータブロック311(A)をホストシステムに転送する通常のリード動作が行われる。そして、このリード動作と並行して、リードバッファ23aに格納されたデータブロック311(A)を、AVトラック300とは別のディスク11上の連続した領域に、データブロック331(A′)としてHEAD#2によりライトするライト動作が行われる。このように本実施形態では、ディスク11の記録面に対応して設けられた、独立に動作可能な2つのHEAD#1及びHEAD#2により、ディスク11からのリード動作とディスク11へのライト動作とが同時に行われる。
【0045】
CPU24は、1データブロックの処理を終了すると、すべてのデータブロックの処理が終了したか否かを判定する(ステップ407)。もし、処理すべきデータブロックが残っているならば、CPU24はHEAD#1のリード開始位置を次のデータブロックの先頭位置に変更する(ステップ408)。そして、上記ステップ405以降の処理を実行する。これにより、次のデータブロックがリードされてリードバッファ23aを介してホストシステムに転送されると同時に、当該データブロックが先行するデータブロックに後続するディスク11上の領域に連続してライトされる。したがって、図3の例であれば、AVトラック300の2番目のデータブロック312(B)がリードされてホストシステムに転送されると同時に、当該データブロック312(B)がデータブロック332(B′)として、データブロック331(A′)に後続する領域にライトされる。
【0046】
やがて、すべてのデータブロックの処理が終了すると、CPU24は、読み出しの対象となった元のAVトラック300は不要になったものとして、当該AVトラック300を管理情報テーブル500上で論理的に破棄して、一連の処理を終了する(ステップ409)。このときディスク11には、図3の例であれば、AVトラック300内のデータブロック311(A),312(B)及び313(C)がそれぞれデータブロック331(A′),332(B′)及び333(C′)として連続して配置されたAVトラック330が、AVトラック300とは別の領域に記録されている。
【0047】
このように本実施形態においては、次に列挙する効果を得ることができる。
【0048】
1)デフラグメンテーション処理はHDDにてホストシステムから独立に行われ、当該HDDの中だけで完結するため、ホストシステムの介在を一切必要としない。よって、デフラグメンテーション処理のためにホストシステムのパフォーマンスの低下を招く恐れがない。
【0049】
2)ホストシステムから指定されたAVストリームを再生しながら、そのAVストリームを利用してデフラグメンテーション処理を行うため、デフラグメンテーションの実施期間でもホストシステムへのAVストリームの出力が途切れることなく行える。よって、HDDにおけるパフォーマンスが向上する。
【0050】
3)上記2)と同様の理由でデフラグメンテーション処理を行う時間を特別に用意する必要がない。
4)ホストシステムから指定されたAVストリームを当該ホストシステムに転送するのに必要なリードバッファ23aに一時格納されたデータを利用してデフラグメンテーション処理を行うため、特別なメモリ領域を必要としない。
【0051】
ここで、AVストリームの再生及び記録に際して用いられる管理情報テーブル500について説明する。
まず、図1のHDDは、図5に示すデータ構造の管理情報テーブル500を有している。このテーブル500は、FROM25に格納されている。テーブル500は、HDD(内のディスク11)に格納されている各AVストリームと、そのAVストリームを構成する各データブロックの論理ブロックアドレス(LBA)とを関連付けるのに用いられる。このためテーブル500の各エントリは、管理の対象となるAVストリームを特定するための、ホストシステムから与えられた名称であるAVストリーム名の設定フィールド501、当該ストーリームをHDD内に格納するために予約された論理ブロックアドレスの範囲の設定フィールド(RESERVE)502、及び当該ストーリームを実際に構成する各データブロックの論理ブロックアドレスの範囲の設定フィールド(LBA)503を有する。
【0052】
明らかなように、図3の管理情報テーブル500において、予約(RESERVE)はされているが、実際には使われていない論理ブロックアドレス(LBA)のデータが編集によって削除された部分である。例えば図5(a)では、予約されている1000−4500番地のうち、1501−1503番地、2201−2499番地、2635−2999番地、3281−3501番地、及び4044−4500番地の領域が、編集によってデータが削除された部分となる。
【0053】
CPU24は、ホストシステムから指定されたAVストリームを再生する際、管理情報テーブル500を参照し、当該ストリームを管理しているエントリのフィールド502に設定されているLBAの範囲内に、LBAの不連続な部分があるか否かを調べる。これにより、図4のステップ402の判定、つまり対象ストリームに断片化データがあるか否かの判定が行われる。図5(a)の例のように、AVストリームSTREAM#1用に予約されている1000−4500番地の領域中に、編集によってデータが削除された部分があり、つまり対象ストリームに断片化データがある場合には、当該対象ストリームをライトするのに十分な大きさの連続する空き領域が検索される(ステップ403)。
【0054】
空き領域の検索は、管理情報テーブル500を参照することで行われる。ここでは、もし、空き領域が検索できた場合には、その空き領域を予約して管理情報テーブル500に登録した上で、前記したようにデフラグメンテーション動作が行われる。図5(b)には、現在STREAM#1用に予約されている1000−4500番地の領域と同サイズで当該領域から独立した10001−13501番地の領域が検索されて、デフラグメンテーション用に新たに予約されたことが示されている。この新たに予約された領域に、STREAM#1の再生と並行して、そのSTREAM#1を構成する断片化データを連続して書き込むことでデフラグメンテーションが実行される。
【0055】
AVストリームの再生時のデフラグメンテーション処理では、当該ストリーム(対象ストリーム)を構成する断片化された各データブロックのLBAを検索する必要がある。このLBAの検索は、管理情報テーブル500を参照することで行われる。例えば、図4中のステップ404及び408でHEAD#1のリード開始位置を設定する際には、管理情報テーブル500を参照し、対象ストリームを管理しているエントリのフィールド503から対象とするデータブロックの先頭LBAを取得する。このLBA(の物理アドレス)がリード開始位置を示す。また、データブロックの先頭LBAと最終LBAとから、図4中のステップ405で設定する転送サイズが決定される。図5のAVストリームSTREAM#1の例では、最初に予約された1000−4500番地の領域のうち、1000−1500番地、1504−2200番地、2500−2634番地、3000−3280番地、及び3502−4043番地の領域に断片化されたデータブロックが記録されていることから、HEAD#1のリード開始位置として、1000番地、1504番地、2500番地、3000番地、及び3502番地が順に設定される。また、断片化された各データブロックの転送サイズとして、501バイト、697バイト、135バイト、281バイト、及び542バイトが順に設定される。
【0056】
新たな予約領域(10001−13501番地)に断片化された各データブロックを連続して書き込む(コピーする)動作、つまりデフラグメンテーション動作が正常に終了すると、元のデータが格納されていた、それ以前の予約領域(1000−4500番地)は管理情報テーブル500から削除されることで予約が解除され、空き領域として開放される。
【0057】
なお、本実施形態では、HEAD#1(ヘッド13a)は少なくともリードが可能であればよく、HEAD#2(ヘッド13b)は少なくともライトが可能であればよい。但し、通常のリード/ライト動作等を考慮すると、HEAD#1及び#2は、通常のヘッドと同様に、リード及びライトの両機能を有している方がよい。
【0058】
[第2の実施形態]
以上に述べた第1の実施形態では、断片化が発生しているAVトラックに対するデフラグメンテーションを、対応するAVストリームの再生と並行して行うためには、当該ストリームをライトするのに十分な大きさの連続する空き領域を確保する必要がある。そこで、このような空き領域がない場合でも、デフラグメンテーション動作がAVストリームの再生と並行して行える第2の実施形態について説明する。なお、磁気ディスク装置のハードウェア構成については、図1の磁気ディスク装置と同様であるため、便宜的に図1の構成を援用する。
【0059】
まず、断片化が発生しているAVトラックからAVストリームを再生する際のデフラグメンテーション処理の概要について、図6を参照して説明する。
図6(a)に示すデフラグメンテーション前のAVトラック600は、図2中の編集後のAVトラック220に相当する。このAVトラック600では、編集処理の結果、データブロック601〜603がカットされ、残りがデータブロック611(A),612(B)及び613(C)に断片化されている。
【0060】
本実施形態では、ホストシステムからの要求により、このAVトラック600からAVストリームを再生する場合に、当該AVトラック600に対するデフラグメンテーションを行う。そのため、HEAD#1(ヘッド13a)を再生(リード)用に、HEAD#2(ヘッド13b)をライト用に、それぞれ使用する。
【0061】
さて、HEAD#1によるAVトラック600からのデータリードは、図6(b)に示すように、断片化されたデータブロック611(A),612(B)及び613(C)の記録部分621,622,623を当該HEAD#1が通る期間だけ行われる。これにより、データブロック611(A),612(B)及び613(C)が連続してリードされ、AVストリームとして再生される。
【0062】
HEAD#1によりリードされたデータブロック611(A),612(B)及び613(C)のうち、先頭データブロック611(A)を除くデータブロック612(B)及び613(C)は、当該先頭データブロック611(A)が記録されていた領域の最後尾位置から連続して、図6(c)に示すようにデータブロック632(B)及び633(C)として、HEAD#2により順にライトされる。ここで、先頭データブロック611(A)は当該ブロック611が記録されていた領域で、そのままデータブロック631(A)として扱われる。つまり図6の例では、AVトラック600から再生されたAVストリームを構成するデータブロック611(A),612(B)及び613(C)がデータブロック631(A),632(B)及び633(C)として連続して配置されたAVトラック630が、AVトラック300が記録されていたのと同一領域に前詰めで記録されることになる。
【0063】
次に、本実施形態におけるデフラグメンテーション処理の手順について、図7のフローチャートを参照して説明する。
まずCPU24は、ホストシステムから与えられたAVストリームをリードすることを要求するコマンドを受信すると(ステップ701)、当該コマンドで要求されたAVストリーム(対象ストリーム)に断片化されたデータが含まれているか否かを判定する(ステップ702)。
【0064】
CPU24は、対象ストリーム(AVトラック)に断片化されたデータが含まれている場合には、その断片化されたデータ(データブロック)間のディスク領域が他のデータの記録領域として使用されているか否かを判定する(ステップ703)。もし、データブロック間の領域が他のデータの領域として用いられているならば、CPU24はデフラグメンテーション処理は不可能であると判定する。この場合、CPU24は、指定されたAVトラックからデータをリードしてAVストリームを再生するための通常のリード制御を行う。
【0065】
一方、データブロック間領域が他のデータ領域として用いられていない場合、CPU24はデフラグメンテーション処理が可能であると判定する。この場合、HEAD#1(ヘッド13a)のリード開始位置をディスク11上のAVトラック上のデータブロックのうち、先頭のブロックの開始位置に設定すると共に、HEAD#2(ヘッド13b)のライト開始位置をAVトラック上のデータブロックのうちの先頭データブロックの最後尾位置に設定して、その設定位置にHEAD#1及びHEAD#2を独立して移動させる(ステップ704)。したがって、図6に示すAVトラック600が指定されたものとすると、HEAD#1のリード開始位置はAVトラック600の先頭データブロック611の先頭位置に、HEAD#2のライト開始位置は当該先頭データブロック611の最後尾位置に、それぞれ設定される。
【0066】
次にCPU24は、リード開始位置が設定された先頭データブロック(611)のサイズを転送サイズとして設定する(ステップ705)。そしてCPU24は、ステップ704で設定されたリード開始位置からステップ705で設定された転送サイズ分のデータブロック(611)をHEAD#1によりリードさせ、ディスクコントローラ22によりバッファメモリ23内のリードバッファ23aに一時格納させる(ステップ706)。このステップ706では、リードバッファ23aに格納されたデータブロック(611)をホストシステムに転送する動作がディスクコントローラ22により行われる。ここで、最初のデータ転送の対象となるデータブロック(611)、つまり先頭データブロック(611)は、図6を参照して説明したように、デフラグメンテーション後にも同一記録領域に置かれるため、ライト動作は不要である。したがって、先頭データブロック(611)は、リードバッファ23aからHEAD#2側への転送は行われない。
【0067】
次にCPU24は、HEAD#1のリード開始位置を次のデータブロック(612)の先頭位置に変更すると共に当該データブロック(612)のサイズを転送サイズとして設定する(ステップ707,708)。そしてCPU24は、ステップ707で変更設定されたリード開始位置からステップ708で設定された転送サイズ分のデータブロック(612)をHEAD#1によりリードさせ、ディスクコントローラ22によりバッファメモリ23内のリードバッファ23aに一時格納させる(ステップ709)。このステップ709では、リードバッファ23aに格納されたデータブロック(612)をホストシステムに転送する動作がディスクコントローラ22により行われる。またステップ709では、リードバッファ23aに格納されたデータブロック(612)をディスクコントローラ22からリード/ライトIC20及びヘッドIC19を介してHEAD#2に転送し、現在設定されているライト開始位置から始まる領域に当該HEAD#2によりライトする動作も並行して行われる。
【0068】
したがって、図6の例であれば、まず、AVトラック600の先頭データブロック611をHEAD#1によりリードしてリードバッファ23aに一時格納しながら、当該リードバッファ23aに格納されたデータブロック611をホストシステムに転送する通常のリード動作が行われる。このデータブロック611は、ディスク11上ではそのまま元の領域に置かれ、デフラグメンテーション後のデータブロック631として扱われる。次に、AVトラック600の2番目のデータブロック612をHEAD#1によりリードしてリードバッファ23aに一時格納しながら、当該リードバッファ23aに格納されたデータブロック621をホストシステムに転送する通常のリード動作が行われる。そして、このリード動作と並行して、リードバッファ23aに格納されたデータブロック612を、AVトラック600が記録されていたのと同一領域内の、先行するデータブロック611(631)の最後尾位置からデータブロック632としてHEAD#2によりライトするライト動作が行われる。
【0069】
CPU24は、AVトラック(600)の2番目以降の1データブロックの処理を終了する毎に、すべてのデータブロックの処理が終了したか否かを判定する(ステップ710)。もし、処理すべきデータブロックが残っているならば、CPU24は上記ステップ707以降の処理を実行する。これにより、次のデータブロックがリードされてリードバッファ23aを介してホストシステムに転送されると同時に、当該データブロックが先行するデータブロックに後続するディスク11上の領域に連続してライトされる。したがって、図6の例であれば、AVトラック600の3番目のデータブロック613がリードされてホストシステムに転送されると同時に、当該データブロック613がデータブロック633として、データブロック632に後続する領域にライトされる。
【0070】
やがて、すべてのデータブロックの処理が終了すると、CPU24は、読み出しの対象となった元のAVトラック300は不要になったものとして、当該AVトラック300を破棄して、一連の処理を終了する(ステップ711)。このときディスク11には、図6の例であれば、AVトラック600内のデータブロック611,612及び613がデータブロック631,632及び633として連続して配置されたAVトラック630が、AVトラック300が記録されていたのと同一領域(予約領域)に前詰めで記録されている。
【0071】
以上により本第2の実施形態においては、前記第1の実施形態で得られる効果に加えて、対象ストリームの総量以上の連続する空き領域がない場合でも、ホストシステムから指定されたAVストリームを再生しながらのデフラグメンテーション処理が行えるという効果を得ることができる。
【0072】
なお、第1及び第2の実施形態を組み合わせることも可能である。即ち、対象ストリームの総量以上の連続する空き領域が存在する場合には、当該ストリームの再生と並行して再生されたデータを、第1の実施形態と同様に当該空き領域に書き込む。これに対し、上記空き領域が存在しない場合には、当該ストリームの再生と並行して再生されたデータを、第2の実施形態と同様に元の領域(予約領域)に前詰めで書き込む。
【0073】
[第3の実施形態]
以上に述べた第1及び第2の該実施形態では、AVストリームを再生しながらデフラグメンテーション処理を実行するには、ディスクの記録面に対応して、独立に動作可能な2つのヘッドを設ける必要がある場合について説明したが、これに限るものではない。
【0074】
そこで、ディスクの記録面に対応して従来のように1つのヘッドしか設けられていなくても、AVストリームを再生しながらのデフラグメンテーション処理が実現できる本発明の第3の実施形態について図8及び図9を参照して説明する。なお、磁気ディスク装置のハードウェア構成については、ヘッドと当該ヘッドを駆動するアクチュエータの数以外は図1の磁気ディスク装置と同様であるため、便宜的に図1の構成を援用する。但し本実施形態では、図1の磁気ディスク装置と異なり、ディスク11の記録面に対応してヘッド13a(HEAD#1)のみが設けられているものとする。
【0075】
まずAVトラックを構成するディスク11上の物理トラックが、図8(a)に示すトラック#nと、図8(b)に示すトラック#n+1の2つであり、デフラグメンテーション(いわゆるデフラグ)前であるものとする。図8(a)に示すトラック#nでは、編集処理によりデータブロック801〜803がカットされ、残りがデータブロック811(A),812(B)及び813(C)に断片化されている。一方、図8(a)に示すトラック#n+1では、編集処理によりデータブロック821〜823がカットされ、残りがデータブロック831(D),832(E)及び833(F)に断片化されている。ここで、データブロック811(A),812(B)間の領域と、データブロック812(B),813(C)間の領域と、データブロック831(D),832(E)間の領域と、データブロック832(E),833(F)間の領域とは、いずれも他のデータの領域に使用されていないものとする。
【0076】
本実施形態では、AVトラックからAVストリームを再生する場合、そのAVトラックを構成する各物理トラックを単位に、その物理トラックから断片化された全データブロックをHEAD#1によりリードしてリードバッファ23aに一時格納し、そのリードバッファ23a内のデータをホストシステムへ転送する(ステップ901〜905)。そして、物理トラックからのリード開始時点からディスク11が1回転するのを待って、リードバッファ23a内のデータ、つまり直前に当該トラックからリードしたデータを、当該物理トラックの先頭から前詰めで連続してライトする(ステップ906,907)。但し、物理トラック上の断片化されたデータブロック間の領域が他のデータ領域として用いられている場合には、当該物理トラックからのリードのみが行われる(ステップ903,911)。
【0077】
したがって、図8(a)の物理トラック#nの例では、HEAD#1によりデータブロック811(A),812(B)及び813(C)を順次読み出してリードバッファ23aに一時格納し、ホストシステムに転送する(ステップ904,905)。ディスク11が1回転して、HEAD#1の位置が物理トラック#nの先頭位置に一致するようになると、リードバッファ23a内のリードデータ、即ちデータブロック811(A),812(B)及び813(C)を、図8(c)に示すように、HEAD#1により、物理トラック#nの先頭位置から順に前詰め840で、データブロック841(A),842(B)及び843(C)として連続してライトする(ステップ906,907)。そして物理トラック#n上のデータブロック843(C)に後続する領域のデータを論理的に消去して未使用領域844とする。
【0078】
次に、HEAD#1を物理トラック#nから隣接する物理トラック#n+1の開始位置に移動させる。そして、物理トラック#n+1からHEAD#1によりデータブロック831(D),832(E)及び833(F)をリードしてリードバッファ23aに一時格納し、ホストシステムに転送する(ステップ904,905)。次に、リードバッファ23a内のリードデータを物理トラック#n+1に連続してライトする(ステップ910)。但し、物理トラック#n+1へのライト開始位置は、先頭の物理トラック#nの場合と異なって(ステップ906)、HEAD#1の移動に必要な時間とディスク11の回転速度を考慮して決定する(ステップ909)。具体的には、、物理トラック#nに再配置されたデータをリードし終えた結果、次の物理トラック#n+1にHEAD#1のヘッド移動850を行った直後に、当該物理トラック#n+1の最初のデータをディスク11の回転待ちをすることなく直ちにリードできる位置に決定する。そのため、図8(d)に示すように、物理トラック#n+1の開始位置からヘッド移動時間851に相当する未使用領域852を確保し、その未使用領域852に後続する領域に、リードバッファ23a内のリードデータ、即ちデータブロック831(D),832(E)及び833(F)を、HEAD#1によりデータブロック861(D),862(E)及び863(F)として連続してライトする。
【0079】
[第4の実施形態]
図10は本発明の第3の実施形態に係るディスクアレイ装置(ディスクアレイ型ディスク記憶システム)の構成を示すブロック図である。
【0080】
図10のディスクアレイ装置はRAID(Redundant Arrays of Inexpensive Disks)装置であり、例えば2台のディスクドライブ(以下、HDDと称する)101(#1)及び102(#2)と、これらHDD101及び102を制御するディスクアレイコントローラ(RAIDコントローラ)103とを備えている。コントローラ103は、ホストシステムから転送されたHDD101または102にライトすべきデータ及びHDD101または102からリードされたホストシステムに転送すべきデータを一時格納するためのバッファ(バッファメモリ)104を含んでいる。コントローラ103の特徴は、断片化が発生しているAVトラックに対するデフラグメンテーションを、対応するAVストリームの再生と並行して行う制御機能を有している点にある。
【0081】
以下、図10の構成におけるAVストリームの再生時のデフラグメンテーション処理について、図11のフローチャートを参照して説明する。
【0082】
まずコントローラ103は、ホストシステムから与えられたAVストリームをリードすることを要求するコマンドを受信すると(ステップA1)、当該コマンドで要求されたAVストリームに断片化されたデータが含まれているか否かを判定する(ステップA2)。
【0083】
コントローラ103は、要求されたAVストリーム(AVトラック)に断片化されたデータが含まれている場合、当該ストリームが格納されているHDD#i(iは1または2)から当該ストリームを所定のデータ長を単位に読み出すために読み出し命令を発行すると共に、読み出されたデータを別のHDD#j(jは1または2、但しj≠i)に書き込むための書き込み命令を発行する(ステップA3)。
【0084】
HDD#iは、コントローラ103からの読み出し命令に応じ、指定されたデータを読み出してコントローラ103に転送する(ステップA4)。このコントローラ103に転送されたデータはバッファ104に一時格納された後、ホストシステムに転送されると共にHDD#jに転送される(ステップA5)。このHDD#jに転送されたデータ、即ちHDD#iから読み出されたデータは、先の書き込み命令に応じてHDD#jの連続する領域に書き込まれる。
【0085】
コントローラ103は、上記ステップA3以降の動作を、ホストシステムから指定された全データ(AVストリーム)の転送が完了するまで繰り返す(ステップA6)。なお、ホストシステムから要求されたAVストリームに断片化されたデータが含まれていない場合には、HDD#iからのデータ読み出しのみが、指定された全データ(AVストリーム)の転送が完了するまで繰り返される(ステップA8,A9)。
【0086】
なお、本発明は、上記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0087】
【発明の効果】
以上詳述したように本発明によれば、ホストシステムから要求された時間的に連続したシーケンシャルデータが編集等により断片化されている場合に、当該シーケンシャルデータを再生するのと並行して、当該再生されたデータを連続領域に書き込むようにしたので、シーケンシャルデータの再生と並行しての自動デフラグメンテーションをホストシステムに何ら意識させることなく実現できる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る磁気ディスク装置の構成を示すブロック図。
【図2】データの断片化が発生するAVデータの編集例を示す図。
【図3】同第1の実施形態で適用される、断片化が発生しているAVトラックからAVストリームを再生する際のデフラグメンテーション処理の概要を説明するための図。
【図4】同第1の実施形態における上記デフラグメンテーション処理の手順を説明するためのフローチャート。
【図5】同第1の実施形態で適用される管理情報テーブル500のデータ構造例を示す図。
【図6】本発明の第2の実施形態で適用される、断片化が発生しているAVトラックからAVストリームを再生する際のデフラグメンテーション処理の概要を説明するための図。
【図7】同第2の実施形態で適用される上記デフラグメンテーション処理の手順を説明するためのフローチャート。
【図8】本発明の第3の実施形態で適用される、断片化が発生しているAVトラックからAVストリームを再生する際のデフラグメンテーション処理の概要を説明するための図。
【図9】同第3の実施形態で適用される上記デフラグメンテーション処理の手順を説明するためのフローチャート。
【図10】本発明の第4の実施形態に係るディスクアレイ装置の構成を示すブロック図。
【図11】本発明の第4の実施形態で適用される、断片化が発生しているAVトラックからAVストリームを再生する際のデフラグメンテーション処理の手順を説明するためのフローチャート。
【符号の説明】
11…ディスク
13a…ヘッド(HEAD#1)
13b…ヘッド(HEAD#2)
14a,14b…アクチュエータ
23…バッファメモリ
23a…リードバッファ
24…CPU
25…FROM
101,102…HDD
103…ディスクアレイコントローラ
104…バッファメモリ
500…管理情報テーブル
Claims (14)
- ディスク媒体へのデータ書き込みと当該ディスク媒体からのデータ読み出しとが可能なディスク記憶システムにおいて、
ホストシステムから時間的に連続したシーケンシャルデータの読み出しが要求された場合、当該シーケンシャルデータが前記ディスク媒体上で複数のデータブロックに断片化されているか否かを判定する断片化判定手段と、
前記要求されたシーケンシャルデータが断片化されていると前記断片化判定手段により判定された場合、当該シーケンシャルデータを前記ディスク媒体から読み出して前記ホストシステムに転送する第1の制御と並行して、前記ディスク媒体から読み出された前記データを前記ディスク媒体の連続領域に書き込む第2の制御を実行する制御手段と
を具備することを特徴とするディスク記憶システム。 - 前記制御手段は、前記要求されたシーケンシャルデータの総量以上の大きさの連続する空き領域を前記連続領域として確保して前記第2の制御を実行することを特徴とする請求項1記載のディスク記憶システム。
- 前記制御手段は前記第2の制御として、前記要求されたシーケンシャルデータを構成する前記複数の断片化されたデータブロックのうち、先頭のデータブロックを除くデータブロックを、当該先頭データブロックが記録されている前記ディスク媒体の領域の最後尾位置から順に前詰めで連続して書き込む制御を実行することを特徴とする請求項1記載のディスク記憶システム。
- ディスク媒体へのデータ書き込みと当該ディスク媒体からのデータ読み出しとが可能なディスク記憶システムにおいて、
少なくとも前記ディスク媒体からのデータ読み出しが可能な第1のヘッドと、少なくとも前記ディスク媒体へのデータ書き込みが可能な、前記第1のヘッドとは独立に動作可能な第2のヘッドと、
前記ディスク媒体から読み出されたデータを一時格納するためのバッファメモリと、
ホストシステムから時間的に連続したシーケンシャルデータの読み出しが要求された場合、当該シーケンシャルデータが前記ディスク媒体上で複数のデータブロックに断片化されているか否かを判定する断片化判定手段と、
前記要求されたシーケンシャルデータが断片化されていると前記断片化判定手段により判定された場合、当該シーケンシャルデータを前記第1ヘッドにより前記ディスク媒体から読み出させて前記バッファメモリに格納する第1の制御と、前記バッファメモリに格納されたデータを前記ホストシステムに転送する第2の制御と、前記バッファメモリに格納されたデータを前記第2のヘッドにより前記ディスク媒体の連続領域に書き込ませる第3の制御とを並行して実行する制御手段と
を具備することを特徴とするディスク記憶システム。 - 前記要求されたシーケンシャルデータの総量以上の大きさの連続する空き領域が前記ディスク媒体に存在するか否かを判定する空き領域判定手段を更に具備し、
前記制御手段は、前記要求されたシーケンシャルデータが断片化されていると前記断片化判定手段により判定され、且つ当該データの総量以上の大きさの前記連続する空き領域が存在すると前記空き領域判定手段により判定された場合に、当該空き領域を前記連続領域として前記第3の制御を実行することを特徴とする請求項4記載のディスク記憶システム。 - 前記要求されたシーケンシャルデータを構成する前記複数のデータブロックの間の前記ディスク媒体上の領域が他のデータの領域に用いられているか否かを判定するデータブロック間領域判定手段を更に具備し、
前記制御手段は、前記要求されたシーケンシャルデータが断片化されていると前記断片化判定手段により判定され、且つ当該データを構成する前記複数のデータブロックの間の領域が他のデータ領域に用いられていないと前記ブロック間領域判定手段により判定された場合に、前記3の制御として、当該シーケンシャルデータを構成する前記複数のデータブロックのうち先頭のデータブロックを除くデータブロックを、当該先頭データブロックが記録されている前記ディスク媒体の領域の最後尾位置から順に前詰めで連続して前記第2のヘッドにより書き込ませる制御を実行することを特徴とする請求項4記載のディスク記憶システム。 - 前記要求されたシーケンシャルデータの総量以上の大きさの連続する空き領域が前記ディスク媒体に存在するか否かを判定する空き領域判定手段と、
前記要求されたシーケンシャルデータを構成する前記断片化されたデータブロックの間の前記ディスク媒体上の領域が他のデータの領域に用いられているか否かを判定するブロック間領域判定手段とを更に具備し、
前記制御手段は、
前記要求されたシーケンシャルデータが断片化されていると前記断片化判定手段により判定され、且つ当該データの総量以上の大きさの前記連続する空き領域が存在すると前記空き領域判定手段により判定された場合には、当該空き領域を前記連続領域として前記第3の制御を実行し、前記要求されたシーケンシャルデータが断片化されていると前記断片化判定手段により判定され、且つ当該データの総量以上の大きさの前記連続する空き領域が存在しないと前記空き領域判定手段により判定され、且つ当該データを構成する前記複数のデータブロックの間の領域が他のデータ領域に用いられていないと前記ブロック間領域判定手段により判定された場合には、前記3の制御として、当該シーケンシャルデータを構成する前記複数のデータブロックのうち先頭のデータブロックを除くデータブロックを、当該先頭データブロックが記録されている前記ディスク媒体の領域の最後尾位置から順に前詰めで連続して前記第2のヘッドにより書き込ませる制御を実行する
ことを特徴とする請求項4記載のディスク記憶システム。 - 同心円状の複数の物理トラックが形成されたディスク媒体と、
前記物理トラックへのデータ書き込みと当該物理トラックからのデータ読み出しとに用いられるヘッドと、
前記ディスク媒体から読み出されたデータを一時格納するためのバッファメモリと、
ホストシステムから時間的に連続したシーケンシャルデータの読み出しが要求された場合、当該シーケンシャルデータが記録されている前記ディスク媒体上の前記各物理トラックを単位に、当該トラックに記録されている前記シーケンシャルデータの少なくとも一部をなすデータが複数のデータブロックに断片化されているか否かを判定する断片化判定手段と、
前記物理トラックに記録されている前記シーケンシャルデータの少なくとも一部をなすデータが前記複数のデータブロックに断片化されていると前記断片化判定手段により判定される毎に、当該複数のデータブロックの間の領域が他のデータの領域に用いられているか否かを判定するブロック間領域判定手段と、
前記複数のデータブロックの間の領域が他のデータ領域に用いられていないと前記ブロック間領域判定手段により判定された場合、当該複数のデータブロックを対応する前記物理トラックから前記ヘッドにより読み出させて前記バッファメモリに格納する第1の制御と、前記バッファメモリに格納された前記複数のデータブロックを前記ホストシステムに転送する第2の制御と、前記バッファメモリに格納された前記複数のデータブロックを当該ブロックが記録されていた前記物理トラックの連続領域に前記ヘッドにより前詰めで連続して書き込ませる第3の制御とを並行して実行する制御手段と
を具備することを特徴とするディスク記憶システム。 - 前記制御手段は、前記シーケンシャルデータが複数の連続する物理トラックに亘って記録されている場合、先頭の物理トラックについては、当該物理トラック記録されていた前記複数のデータブロックのうちの先頭のデータブロックの位置が変わらないように前記第3の制御を実行し、残りの物理トラックについては、その先頭部分に、先行する物理トラックの最後のデータブロックの読み出し終了後からの前記ヘッドの移動時間に相当する未使用領域を確保して、その未使用領域に後続する領域に先頭データブロックから順に配置されるように前記第3の制御を実行することを特徴とする請求項8記載のディスク記憶システム。
- データの記録再生が可能な複数のディスクドライブと、
前記複数のディスクドライブを制御するディスクアレイコントローラとを具備し、
前記コントローラは、
ホストシステムから時間的に連続したシーケンシャルデータの読み出しが要求された場合、当該シーケンシャルデータが前記ディスクドライブ内で複数のデータブロックに断片化されているか否かを判定する断片化判定手段と、
前記要求されたシーケンシャルデータが断片化されていると前記断片化判定手段により判定された場合、当該シーケンシャルデータを対応する前記ディスクドライブから読み出して前記ホストシステムに転送する第1の制御と、前記ディスクドライブから読み出された前記データを当該ディスクドライブとは異なる別の前記ディスクドライブに書き込む第2の制御とを並行して実行する制御手段と
を有することを特徴とするディスクアレイ型ディスク記憶システム。 - ディスク媒体へのデータ書き込みと当該ディスク媒体からのデータ読み出しとが可能なディスク記憶システムにおけるデフラグメンテーション方法であって、
ホストシステムから時間的に連続したシーケンシャルデータの読み出しが要求された場合、当該シーケンシャルデータが前記ディスク媒体上で複数のデータブロックに断片化されているか否かを判定するステップと、
前記要求されたシーケンシャルデータを前記ディスク媒体から読み出して前記ホストシステムに転送するステップと、
前記要求されたシーケンシャルデータが断片化されていると判定された場合、前記転送ステップと並行して、前記ディスク媒体から読み出された前記データを前記ディスク媒体の連続領域に書き込むステップと
を具備することを特徴とするデフラグメンテーション方法。 - 少なくともディスク媒体からのデータ読み出しが可能な第1のヘッドと、少なくとも前記ディスク媒体へのデータ書き込みが可能な、前記第1のヘッドとは独立に動作可能な第2のヘッドとを備えたディスク記憶システムにおけるデフラグメンテーション方法であって、
ホストシステムから時間的に連続したシーケンシャルデータの読み出しが要求された場合、当該シーケンシャルデータが前記ディスク媒体上で複数のデータブロックに断片化されているか否かを判定するステップと、
前記複数のデータブロックに断片化されていると判定された前記シーケンシャルデータを前記第1のヘッドにより前記ディスク媒体から読み出して前記ホストシステムに転送するステップと、
前記転送ステップと並行して、前記ディスク媒体から読み出された前記データを前記第2のヘッドにより前記ディスク媒体の連続領域に書き込むステップと
を具備することを特徴とするデフラグメンテーション方法。 - 同心円状の複数の物理トラックが形成されたディスク媒体と、前記物理トラックへのデータ書き込みと当該物理トラックからのデータ読み出しとに用いられるヘッドとを備えたディスク記憶システムにおけるデフラグメンテーション方法であって、
ホストシステムから時間的に連続したシーケンシャルデータの読み出しが要求された場合、当該シーケンシャルデータが記録されている前記ディスク媒体上の前記各物理トラックを単位に、当該トラックに記録されている前記シーケンシャルデータの少なくとも一部をなすデータが複数のデータブロックに断片化されているか否かを判定するステップと、
前記物理トラックに記録されている前記シーケンシャルデータの少なくとも一部をなすデータが複数のデータブロックに断片化されていると判定される毎に、当該断片化されたデータブロックの間の領域が他のデータの領域に用いられているか否かを判定するステップと、
前記断片化された複数のデータブロックの間の領域が他のデータ領域に用いられていないと判定される毎に、当該複数のデータブロックを対応する前記物理トラックから前記ヘッドにより読み出して前記ホストシステムに転送するステップと、
前記転送ステップと並行して、当該転送ステップで前記物理トラックから読み出された前記断片化されたデータブロックを当該物理トラックの連続領域に前記ヘッドにより前詰めで連続して書き込むステップと
を具備することを特徴とするデフラグメンテーション方法。 - データの記録再生が可能な複数のディスクドライブを備えたディスクアレイ型ディスク記憶システムにおけるデフラグメンテーション方法であって、
ホストシステムから時間的に連続したシーケンシャルデータの読み出しが要求された場合、当該シーケンシャルデータが前記ディスクドライブ内で複数のデータブロックに断片化されているか否かを判定するステップと、
前記複数のデータブロックに断片化されていると判定された前記シーケンシャルデータを対応する前記ディスクドライブから読み出して前記ホストシステムに転送するステップと、
前記転送ステップと並行して、前記ディスクドライブから読み出された前記データを当該ディスクドライブとは異なる別の前記ディスクドライブに書き込むステップと
を具備することを特徴とするデフラグメンテーション方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001065248A JP3629216B2 (ja) | 2001-03-08 | 2001-03-08 | デフラグメンテーション機能を有するディスク記憶システム、及び同システムにおけるデフラグメンテーション方法 |
US10/091,566 US6779081B2 (en) | 2001-03-08 | 2002-03-07 | Apparatus and method for defragmentation in disk storage system |
SG200201343A SG115460A1 (en) | 2001-03-08 | 2002-03-07 | Apparatus and method for defragmentation in disk storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001065248A JP3629216B2 (ja) | 2001-03-08 | 2001-03-08 | デフラグメンテーション機能を有するディスク記憶システム、及び同システムにおけるデフラグメンテーション方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002268924A JP2002268924A (ja) | 2002-09-20 |
JP3629216B2 true JP3629216B2 (ja) | 2005-03-16 |
Family
ID=18923935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001065248A Expired - Fee Related JP3629216B2 (ja) | 2001-03-08 | 2001-03-08 | デフラグメンテーション機能を有するディスク記憶システム、及び同システムにおけるデフラグメンテーション方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6779081B2 (ja) |
JP (1) | JP3629216B2 (ja) |
SG (1) | SG115460A1 (ja) |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6928456B2 (en) * | 2001-03-06 | 2005-08-09 | Intel Corporation | Method of tracking objects for application modifications |
WO2003021691A1 (en) * | 2001-09-03 | 2003-03-13 | Matsushita Electric Industrial Co., Ltd. | Semiconductor light emitting device, light emitting apparatus and production method for semiconductor light emitting device |
US7454529B2 (en) * | 2002-08-02 | 2008-11-18 | Netapp, Inc. | Protectable data storage system and a method of protecting and/or managing a data storage system |
US7069466B2 (en) * | 2002-08-14 | 2006-06-27 | Alacritus, Inc. | Method and system for copying backup data |
US7882081B2 (en) * | 2002-08-30 | 2011-02-01 | Netapp, Inc. | Optimized disk repository for the storage and retrieval of mostly sequential data |
US7437387B2 (en) | 2002-08-30 | 2008-10-14 | Netapp, Inc. | Method and system for providing a file system overlay |
US8024172B2 (en) | 2002-12-09 | 2011-09-20 | Netapp, Inc. | Method and system for emulating tape libraries |
US7567993B2 (en) * | 2002-12-09 | 2009-07-28 | Netapp, Inc. | Method and system for creating and using removable disk based copies of backup data |
JP4007177B2 (ja) * | 2002-12-09 | 2007-11-14 | ソニー株式会社 | データ編集方法、データ編集装置 |
US6973369B2 (en) * | 2003-03-12 | 2005-12-06 | Alacritus, Inc. | System and method for virtual vaulting |
US7437492B2 (en) * | 2003-05-14 | 2008-10-14 | Netapp, Inc | Method and system for data compression and compression estimation in a virtual tape library environment |
US20060153026A1 (en) * | 2003-06-23 | 2006-07-13 | Koninklijke Philips Electronics, N.V. | Device and method for recording information |
JP4240300B2 (ja) * | 2003-08-20 | 2009-03-18 | ソニー株式会社 | 再生装置及び再生方法、並びに記録装置及び記録方法 |
JP4537083B2 (ja) | 2004-01-28 | 2010-09-01 | キヤノン株式会社 | データ処理装置及びその制御方法 |
US7315965B2 (en) | 2004-02-04 | 2008-01-01 | Network Appliance, Inc. | Method and system for storing data using a continuous data protection system |
US7904679B2 (en) | 2004-02-04 | 2011-03-08 | Netapp, Inc. | Method and apparatus for managing backup data |
US7426617B2 (en) | 2004-02-04 | 2008-09-16 | Network Appliance, Inc. | Method and system for synchronizing volumes in a continuous data protection system |
US7720817B2 (en) * | 2004-02-04 | 2010-05-18 | Netapp, Inc. | Method and system for browsing objects on a protected volume in a continuous data protection system |
US7490103B2 (en) * | 2004-02-04 | 2009-02-10 | Netapp, Inc. | Method and system for backing up data |
US7783606B2 (en) | 2004-02-04 | 2010-08-24 | Netapp, Inc. | Method and system for remote data recovery |
US7406488B2 (en) * | 2004-02-04 | 2008-07-29 | Netapp | Method and system for maintaining data in a continuous data protection system |
US7559088B2 (en) | 2004-02-04 | 2009-07-07 | Netapp, Inc. | Method and apparatus for deleting data upon expiration |
US7325159B2 (en) * | 2004-02-04 | 2008-01-29 | Network Appliance, Inc. | Method and system for data recovery in a continuous data protection system |
JP4241485B2 (ja) | 2004-04-15 | 2009-03-18 | ソニー株式会社 | 情報処理装置および情報処理方法、並びにプログラムおよび記録媒体 |
US8028135B1 (en) | 2004-09-01 | 2011-09-27 | Netapp, Inc. | Method and apparatus for maintaining compliant storage |
US7581118B2 (en) | 2004-12-14 | 2009-08-25 | Netapp, Inc. | Disk sanitization using encryption |
US7558839B1 (en) | 2004-12-14 | 2009-07-07 | Netapp, Inc. | Read-after-write verification for improved write-once-read-many data storage |
US7526620B1 (en) | 2004-12-14 | 2009-04-28 | Netapp, Inc. | Disk sanitization in an active file system |
US7774610B2 (en) | 2004-12-14 | 2010-08-10 | Netapp, Inc. | Method and apparatus for verifiably migrating WORM data |
US20060149899A1 (en) * | 2004-12-30 | 2006-07-06 | Zimmer Vincent J | Method and apparatus for ongoing block storage device management |
JP2006338756A (ja) * | 2005-05-31 | 2006-12-14 | Toshiba Corp | 情報記録装置と情報記録装置の初期化方法 |
TW200705177A (en) * | 2005-07-19 | 2007-02-01 | Benq Corp | Methods, systems and computer-readable storage medium for storage space management |
JP4851464B2 (ja) * | 2005-10-05 | 2012-01-11 | パナソニック株式会社 | ライセンス管理システム |
US7401198B2 (en) * | 2005-10-06 | 2008-07-15 | Netapp | Maximizing storage system throughput by measuring system performance metrics |
US7523255B2 (en) * | 2005-10-20 | 2009-04-21 | Broadcom Corporation | Method and apparatus for efficient storage and retrieval of multiple content streams |
US7409522B1 (en) * | 2005-10-26 | 2008-08-05 | Network Appliance, Inc. | Method and system for reallocating data in a file system |
US7752401B2 (en) | 2006-01-25 | 2010-07-06 | Netapp, Inc. | Method and apparatus to automatically commit files to WORM status |
US20070195821A1 (en) * | 2006-02-21 | 2007-08-23 | Lih-Chung Kuo | Apparatus, system, and computer readable medium for reducing data transmission overhead |
US7650533B1 (en) | 2006-04-20 | 2010-01-19 | Netapp, Inc. | Method and system for performing a restoration in a continuous data protection system |
GB2439577B (en) * | 2006-06-30 | 2011-12-14 | Data Equation Ltd | Data processing |
JP4970141B2 (ja) | 2007-05-25 | 2012-07-04 | 株式会社東芝 | 情報再生装置および情報再生方法 |
KR20090035938A (ko) * | 2007-10-08 | 2009-04-13 | 삼성전자주식회사 | 하이브리드 디스크의 조각 모음 장치 및 방법 |
KR101453296B1 (ko) * | 2008-01-10 | 2014-10-21 | 삼성전자주식회사 | 정보 저장 매체, 기록/재생 장치 및 기록/재생 방법 |
US8204868B1 (en) * | 2008-06-30 | 2012-06-19 | Symantec Operating Corporation | Method and system for improving performance with single-instance-storage volumes by leveraging data locality |
US9135614B2 (en) * | 2010-01-12 | 2015-09-15 | Visa U.S.A. Inc. | System and method for managing issuance of financial accounts |
CN103389946B (zh) * | 2013-07-16 | 2016-08-10 | 中国科学院计算技术研究所 | 去碎片化方法及*** |
JP5963726B2 (ja) | 2013-10-02 | 2016-08-03 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | ヘッド移動時間を活用したストレージメディア中ファイルの断片化の解消 |
WO2015076354A1 (ja) * | 2013-11-22 | 2015-05-28 | 日本電気株式会社 | ストレージ装置と方法並びにプログラム |
JP2015130135A (ja) * | 2014-01-09 | 2015-07-16 | 株式会社東芝 | データ配信装置、及びデータ配信方法 |
US10649691B2 (en) | 2014-03-27 | 2020-05-12 | Hitachi, Ltd. | Storage system |
US10649890B2 (en) | 2015-04-28 | 2020-05-12 | Nec Corporation | Information processing system, storage control apparatus, storage control method, and storage control program |
US20170123713A1 (en) * | 2015-10-30 | 2017-05-04 | Imagine Communications Corp. | Device and process for data storage and read/write efficiency |
US10528261B2 (en) | 2017-12-01 | 2020-01-07 | International Business Machines Corporation | Optimized performance through leveraging appropriate disk sectors for defragmentation in an erasure coded heterogeneous object storage cloud |
JP7234098B2 (ja) * | 2019-11-12 | 2023-03-07 | 株式会社東芝 | 磁気ディスク装置及びリオーダリング処理の方法 |
US11809747B2 (en) | 2021-12-21 | 2023-11-07 | Western Digital Technologies, Inc. | Storage system and method for optimizing write-amplification factor, endurance, and latency during a defragmentation operation |
US11809736B2 (en) | 2021-12-21 | 2023-11-07 | Western Digital Technologies, Inc. | Storage system and method for quantifying storage fragmentation and predicting performance drop |
US20230195350A1 (en) * | 2021-12-22 | 2023-06-22 | Micron Technology, Inc. | Resequencing data programmed to multiple level memory cells at a memory sub-system |
US11847343B2 (en) | 2021-12-22 | 2023-12-19 | Western Digital Technologies, Inc. | Storage system and method for non-blocking coherent re-writes |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9606927D0 (en) | 1996-04-02 | 1996-06-05 | Memory Corp Plc | Data storage devices |
JPH1011337A (ja) | 1996-06-24 | 1998-01-16 | Hitachi Ltd | 記憶装置におけるデータ制御方法 |
US6070172A (en) * | 1997-03-06 | 2000-05-30 | Oracle Corporation | On-line free space defragmentation of a contiguous-file file system |
WO1999009513A2 (en) * | 1997-08-20 | 1999-02-25 | Powerquest Corporation | Computer partition manipulation during imaging |
JP4228407B2 (ja) * | 1998-03-04 | 2009-02-25 | ソニー株式会社 | 情報記録装置及び情報記録方法 |
US6446237B1 (en) * | 1998-08-04 | 2002-09-03 | International Business Machines Corporation | Updating and reading data and parity blocks in a shared disk system |
AU6081200A (en) * | 1999-07-09 | 2001-01-30 | Eric D. Schneider | Optimized disk storage defragmentation with swapping capabilities |
-
2001
- 2001-03-08 JP JP2001065248A patent/JP3629216B2/ja not_active Expired - Fee Related
-
2002
- 2002-03-07 SG SG200201343A patent/SG115460A1/en unknown
- 2002-03-07 US US10/091,566 patent/US6779081B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US6779081B2 (en) | 2004-08-17 |
SG115460A1 (en) | 2005-10-28 |
US20020129200A1 (en) | 2002-09-12 |
JP2002268924A (ja) | 2002-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3629216B2 (ja) | デフラグメンテーション機能を有するディスク記憶システム、及び同システムにおけるデフラグメンテーション方法 | |
US7472219B2 (en) | Data-storage apparatus, data-storage method and recording/reproducing system | |
JP4282733B1 (ja) | ディスク記憶装置及びデータ書き込み方法 | |
JP3634809B2 (ja) | Av用途のディスク記憶装置及び同装置におけるセクタエラー時の処理方法 | |
TW201103016A (en) | Systems and methods for tiered non-volatile storage | |
JP2005215729A (ja) | データ伝送制御方法及び記憶装置 | |
RU2004135921A (ru) | Способ записи, устройство записи и носитель записи | |
WO2003071534A1 (fr) | Appareil de commande d'acces de donnees, procede de commande d'acces de donnees, et programme informatique | |
JP2004103127A (ja) | 情報記録媒体のセクタの再配置方法および情報記憶装置 | |
JPH10149260A (ja) | ディスクドライブにおける読出キャッシュ方式 | |
JP3770138B2 (ja) | 情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及び情報処理装置の制御プログラムを記録した記録媒体 | |
JP2968181B2 (ja) | ディスク装置及びデータ書込読出方法 | |
JP2005025829A (ja) | ディスク記憶装置及びデータストリーム制御方法 | |
JP4496790B2 (ja) | データ記憶装置及び方法、並びに記録再生システム | |
JP4269870B2 (ja) | 記録再生装置及び記録方法 | |
US20070236817A1 (en) | Magnetic-tape recording method, magnetic-tape recording apparatus, and computer system | |
JP2004220355A (ja) | ファイルシステム、ファイル操作機構、ファイル操作方法 | |
JP4301026B2 (ja) | データ記録装置及びデータ記録方法、並びに記録再生システム | |
JP2005165781A (ja) | 記録再生装置及び方法、並びに記録再生システム | |
JP3708388B2 (ja) | データ記録再生装置 | |
JP4474742B2 (ja) | データ記録再生装置およびデータ再記録処理方法 | |
JP4269915B2 (ja) | 記録再生装置及び方法、並びに記録再生システム | |
JP3506031B2 (ja) | 映像音声データ記録再生装置 | |
JP2001101786A (ja) | 情報記録再生装置と情報記録再生方法と情報記録再生プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2003217237A (ja) | 磁気ディスク装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040831 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041101 |
|
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: 20041207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041210 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071217 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081217 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091217 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091217 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101217 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111217 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121217 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121217 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131217 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |