JP6343438B2 - コンピュータシステム及びコンピュータシステムのデータ管理方法 - Google Patents

コンピュータシステム及びコンピュータシステムのデータ管理方法 Download PDF

Info

Publication number
JP6343438B2
JP6343438B2 JP2013202222A JP2013202222A JP6343438B2 JP 6343438 B2 JP6343438 B2 JP 6343438B2 JP 2013202222 A JP2013202222 A JP 2013202222A JP 2013202222 A JP2013202222 A JP 2013202222A JP 6343438 B2 JP6343438 B2 JP 6343438B2
Authority
JP
Japan
Prior art keywords
data
block
node
extent
data block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013202222A
Other languages
English (en)
Other versions
JP2014071905A (ja
Inventor
昌 晩 李
昌 晩 李
在 極 金
在 極 金
▲テツ▼ 李
▲テツ▼ 李
珠 榮 黄
珠 榮 黄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2014071905A publication Critical patent/JP2014071905A/ja
Application granted granted Critical
Publication of JP6343438B2 publication Critical patent/JP6343438B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、コンピュータシステム及びコンピュータシステムのデータ管理方法に関する。
ファイルシステムが記憶装置にファイルを格納する際、ファイルデータとメタデータとを記憶装置に格納する。ファイルデータはユーザアプリケーションが格納しようとするファイルの内容を含み、メタデータはファイルの属性とファイルデータが格納されるブロックの位置などを含む。
一方、ファイルシステムが記憶装置からファイルを読み込む際は、格納されているメタデータを記憶装置から読み込んだ後、読み込んだメタデータに基づいてファイルデータを読み込む。したがって、メタデータとファイルデータとの関連性を効率よく構成する場合、記憶装置からファイルデータの読み込み時間を短縮できる。
米国特許出願公開2003−0177151号公報
本発明が解決しようとする技術的課題は、記憶装置内の格納空間を効率的に使用し、読み込み時間を短縮できるコンピュータシステムを提供することである。
本発明が解決しようとする他の技術的課題は、記憶装置内の格納空間を効率的に使用し、読み込み時間を短縮できるコンピュータシステムのデータ管理方法を提供することである。
本発明の技術的課題は、上述した技術的課題に制限されず、言及されていないまた他の技術的課題も、次の記載から当業者に明確に理解できるであろう。
前記技術的課題を達成するための本発明の一実施形態によるコンピュータシステムは、少なくとも一つのデータブロックにより格納されるファイルデータと、ノードブロックを介して格納されるメタデータとが格納された記憶装置と、記憶装置に格納されたファイルデータとメタデータを管理するファイルシステムとを含み、ノードブロックは、少なくとも一つのデータブロックを各々指す少なくとも一つのデータポインタと少なくとも一つのデータブロックのうち連続な物理アドレスを有するデータブロックをグループとして指すエクステントを含む。
本発明のいくつかの実施形態で、前記エクステントは、前記ファイルデータ内で前記グループ化したデータブロックを介して格納されるデータのオフセット情報と、前記グループ化したデータブロックを指すブロックポインタと、前記グループ化したデータブロックの長さ情報とを含む。
本発明のいくつかの実施形態で、前記ノードブロックに含まれた前記エクステントの個数は予め定めたN(ここで、Nは前記データポインタの個数より小さい自然数)以下で管理される。この際、前記Nは前記データポインタの個数の半分以下であり得る。
本発明のいくつかの実施形態で、前記ノードブロックは、前記データブロックを指すダイレクトノードブロックと、前記ダイレクトノードブロックを指すインダイレクトノードブロックと、前記ダイレクトノードブロック及び前記インダイレクトノードブロックを指すiノードブロックとを含み、前記エクステントは前記iノードブロックまたは前記ダイレクトノードブロックに含まれる。
本発明のいくつかの実施形態で、前記ファイルシステムは、前記記憶装置から前記ファイルデータを読み込む場合、前記データポインタと前記エクステントとのうち前記エクステントを先に参照して前記ファイルデータを読み込みできる。
本発明のいくつかの実施形態で、前記記憶装置はランダムアクセス(random access)方式により書き込まれる第1領域と、順次アクセス(sequential access)方式により書き込まれる第2領域を含み、前記少なくとも一つのデータブロックと前記ノードブロックは前記第2領域に格納され得る。この際、前記記憶装置で前記第1領域の物理アドレスは前記第2領域の物理アドレスより先行し得、前記第1領域には前記ノードブロックに対応するノード識別子(NODE ID)と、前記ノード識別子に対応する物理アドレスを含むノードアドレステーブルが格納され得る。
本発明のいくつかの実施形態で、前記記憶装置はSSD(Static Solid Disk)を含み得る。
前記他の技術的課題を達成するための本発明の一実施形態によるコンピュータシステムのデータ管理方法は、ファイルデータを格納する第1データブロックを生成し、第1データブロックと関連するノードブロックに、第1データブロックを指すデータポインタと第1データブロックと連続な物理アドレスを有するデータブロックをグループとして指すエクステントを生成することを含み、ノードブロックに含まれたエクステントの個数は予め定めたN(ここで、Nはデータポインタの個数より小さい自然数)以下で管理される。
本発明のいくつかの実施形態で、前記エクステントを生成することは、前記第1データブロックが第2データブロックと連続な物理アドレスを有する場合、前記ノードブロックに含まれて前記第2データブロックを指すエクステントが前記第1データブロックと前記第2データブロックをグループとして指すようにすることを含む。
本発明のいくつかの実施形態で、前記エクステントを生成することは、前記第1データブロックが第2データブロックと不連続な物理アドレスを有し、前記第2データブロックが第3データブロックと連続な物理アドレスを有する場合、前記ノードブロックに含まれて前記第2データブロックを指す第1エクステントと、前記ノードブロックに含まれて前記第3データブロックを指す第2エクステントとをマージし、前記第1データブロックを指すエクステントを新規生成することを含む。
本発明のいくつかの実施形態で、前記エクステントを生成することは、前記第1データブロックが第2データブロックと不連続な物理アドレスを有し、前記第2データブロックが第3データブロックと不連続な物理アドレスを有する場合、前記ノードブロックに含まれて前記第2データブロックを指す第1エクステントと、前記ノードブロックに含まれて前記第3データブロックを指す第2エクステントとのうち長さ情報が小さいエクステントを削除し、前記第1データブロックを指すエクステントを新規生成することを含む。
本発明のいくつかの実施形態で、前記Nは前記データポインタの個数の半分以下であり得る。
その他実施形態の具体的な内容は詳細な説明及び図面に含まれている。
本発明の一実施形態によるコンピュータシステムを説明するためのブロック図。 図1のホストを説明するためのブロック図。 図1の記憶装置を説明するためのブロック図。 図1の記憶装置に格納されるファイルの構造を説明するための図。 図4のダイレクトノードブロックの一例を図示する図。 図1の記憶装置を説明するためのブロック図。 ノードアドレステーブルを説明するための図。 本発明の一実施形態によるコンピュータシステムのデータ読み込み方法を説明するための順序図。 本発明の一実施形態によるコンピュータシステムのデータ書き込み方法を説明するための順序図。 本発明の一実施形態によるコンピュータシステムのデータ書き込み方法を説明するための図。 図6の記憶装置の他の構成例を説明するためのブロック図。 図6の記憶装置の他の構成例を説明するためのブロック図。 図6の記憶装置の他の構成例を説明するためのブロック図。 本発明のいくつかの実施形態によるコンピュータシステムの具体的な一例を説明するためのブロック図。 本発明のいくつかの実施形態によるコンピュータシステムの具体的な他の例を説明するためのブロック図。 本発明のいくつかの実施形態によるコンピュータシステムの具体的な他の例を説明するためのブロック図。 本発明のいくつかの実施形態によるコンピュータシステムの具体的な他の例を説明するためのブロック図。
本発明の利点及び特徴、これらを達成する方法は添付する図面と共に詳細に後述する実施形態において明確になるであろう。しかし、本発明は、以下で開示する実施形態に限定されるものではなく、互いに異なる多様な形態で実現されるものであり、本実施形態は、単に本発明の開示を完全にし、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるために提供されるものであり、本発明は、請求項の範囲によってのみ定義される。明細書全体にかけて同一参照符号は同一構成要素を指称し、「および/または」は、言及されたアイテムの各々および一つ以上のすべての組合せを含む。
一つの素子(elements)が他の素子と「接続された(connected to)」または「カップリングされた(coupled to)」と指称されるものは、他の素子と直接連結またはカップリングされた場合または中間に他の素子を介在する場合をすべて含む。反面、一つの素子が他の素子と「直接接続された(directly connected to)」または「直接カップリングされた(directly coupled to)」と指称されるものは中間に他の素子を介在しないことを示す。
第1、第2などが多様な素子、構成要素を叙述するために使用されるが、これら素子、構成要素はこれらの用語によって制限されないことはいうまでもない。これらの用語は、単に一つ構成要素を他の構成要素と区別するために使用するものである。したがって、以下で言及される第1構成要素または第1セクションは本発明の技術的思想内で第2素子、第2構成要素または第2セクションであり得ることは勿論である。
本明細書で使用された用語は実施形態を説明するためであり、本発明を制限しようとするものではない。本明細書で、単数型は文句で特に言及しない限り複数型も含む。明細書で使用される「含む(comprises)」および/または「含む(comprising)」は言及された構成要素、段階、動作および/または素子は一つ以上の他の構成要素、段階、動作および/または素子の存在または追加を排除しない。
他に定義されなければ、本明細書で使用されるすべての用語(技術及び科学的用語を含む)は、本発明が属する技術分野で通常の知識を有する者に共通に理解できる意味で使用される。また一般的に使用される辞書に定義されている用語は特別に定義して明らかにしない限り理想的にまたは過度に解釈されない。
図1は、本発明の一実施形態によるコンピュータシステムを説明するためのブロック図である。図2は、図1のホストを説明するためのブロック図である。図3は、図1の記憶装置を説明するためのブロック図である。図4は、図1の記憶装置に格納されるファイルの構造を説明するための図である。図5は、図4のダイレクトノードブロックの一例を図示する図である。図6は、図1の記憶装置を説明するためのブロック図である。図7は、ノードアドレステーブルを説明するための図である。
先ず、図1を参照すると、本発明の一実施形態によるコンピュータシステム1はホスト10と記憶装置20とを含む。
ホスト10と記憶装置20とは特定のプロトコルを利用して通信する。例えば、USB(Universal Serial Bus)プロトコル、MMC(multimedia card)プロトコル、PCI(peripheral component interconnection)プロトコル、PCI−E(PCI−express)プロトコル、ATA(Advanced Technology Attachment)プロトコル、Serial−ATAプロトコル、Parallel−ATAプロトコル、SCSI (small computer small interface)プロトコル、ESDI(enhanced small disk interface)プロトコル、またIDE(Integrated Drive Electronics)プロトコルなどのような多様なインターフェースプロトコルのうち少なくとも一つにより通信できるが、これに限定されるものではない。
ホスト10は記憶装置20をコントロールする。例えば、ホスト10は記憶装置20にデータを書き込んだり、記憶装置20からデータを読み込んだりする。
図2を参照すると、このようなホスト10はユーザスペース(user space)11とカーネルスペース(kernel space)13とを含む。
ユーザスペース11はユーザアプリケーション(user application)12が実行される領域であり、カーネルスペース13はカーネル実行のために制限的に保障する(restrictively reserved)領域である。ユーザスペース11はカーネルスペース13にアクセスするため、システムコール(system call)を利用する。
カーネルスペース13は仮想ファイルシステム14、ファイルシステム16、装置ドライバ18などを含む。ここで、ファイルシステム16は一つ以上である。一方、本発明のいくつかの実施形態でコンピュータシステム1はF2FSファイルシステムを含む。このようなF2FSファイルシステムについては後述する。
仮想ファイルシステム14は一つ以上のファイルシステム16が互いに相互動作できるようにする。仮想ファイルシステム14は互いに異なるメディアの互いに異なるファイルシステム16に対して読み込み/書き込み作業をするため、標準化システムコールを使用できるようにする。したがって、例えば、open()、read()、write()のようなシステムコールは、ファイルシステム16の種類に関係なく使用できる。すなわち、仮想ファイルシステム14はユーザスペース11とファイルシステム16との間に存在する抽象化階層である。
装置ドライバ18はハードウェアとユーザアプリケーション(またはオペレーティングシステム)の間のインターフェースを担当する。装置ドライバ18はハードウェアが特定のオペレーティングシステム下で正常に動作するために必要なプログラムである。
以下では、F2FSファイルシステムが記憶装置20をどう制御するのかについて説明する。しかし、本実施形態によるファイルシステム16がこれに制限されるものではなく、ファイルシステム16の種類はいくらでも変形できる。
記憶装置20はSSD(Static Solid Disk)、HDD(Hard Disk Drive)、eMMCのような各種カードストレージ、データサーバなどがあるが、これに限定されない。
記憶装置20は図3に図示するように構成される。セグメント(SEGMENT)53は多数のブロック(BLK)51を含み、セクション(SECTION)55は多数のセグメント53を含み、ゾーン(ZONE)57は多数のセクション55を含む。例えば、ブロック51は4Kbyteであり、セグメント53は512個のブロック51を含み、2M byteである。このような構成は、記憶装置20のフォーマット(format)時点で決定されるが、これに限定されるものではない。セクション55とゾーン57のサイズはフォーマット時点で修正される場合もある。F2FSファイルシステムはすべてのデータを4Kbyteのページ単位で読み込み/書き込みする。すなわち、ブロック51に一つのページが格納され、セグメント53に多数のページが格納される。
一方、記憶装置20に格納されるファイルは図4に図示するように、インデクス構造(indexing structure)を有する。一つのファイルはユーザアプリケーション(図2の12を参照)が格納しようとするファイルの内容を含むファイルデータと、ファイルの属性とファイルデータが格納されるブロックの位置などを含むメタデータを含む。ここで、データブロック70はファイルデータを格納する部分であり、ノードブロック80,81〜88,91〜95はメタデータを格納する部分である。
ノードブロック80,81〜88,91〜95はダイレクトノードブロック(direct node block)81〜88、インダイレクトノードブロック(indirect node block)91〜95、iノードブロック(inode block)80を含む。
ダイレクトノードブロック81〜88は、データブロック70を直接指すデータポインタ(data pointer)と連続な物理アドレスを有するデータブロック70をグループとして指すエクステント(extent)を含む。これについては図5を参照して以下で詳細に説明する。
図5を参照すると、ダイレクトノードブロック81はデータブロック70各々を指すデータポインタ81−1と、連続な物理アドレスを有するデータブロック70−2,70−3をグループとして示す指すエクステント81−2を含む。例えば、ファイルデータが図示するようにABCDEFと仮定すると、データポインタ81−1はABCDEFを格納している各々のデータブロック70を示し、エクステント81−2はBCDを格納している連続な物理アドレスを有するデータブロック70−2と、EFを格納している連続な物理アドレスを有するデータブロック70−3を指す。
一方、各エクステント81−2は図示するように、グループ化したデータブロック70−2,70−3を介して格納されるデータのファイルデータ内でオフセット情報、グループ化したデータブロック70−2,70−3を指すブロックポインタと、グループ化したデータブロック70−2,70−3の長さ情報を含む。前述した例で、グループ化したデータブロック70−2を指すエクステント81−2のオフセット情報として2が格納され(ABCDEFでBはオフセットが2である)、ブロックポインタはBを格納しているデータブロック70−2を指し、長さ情報として3が格納される。また、グループ化したデータブロック70−3を指すエクステント81−2のオフセット情報として5が格納され、ブロックポインタはEを格納しているデータブロック70−3を指し、長さ情報としては2が格納される。
ここで、データポインタ81−1の個数はダイレクトノードブロック81が指すデータブロック70の個数と同一であり得るが、エクステント81−2の個数は予め定めたN(ここでNは自然数)より小さい場合もある。本発明のいくつかの実施形態で、Nはダイレクトノードブロック81が指すデータブロック70の個数より小さい場合もある。具体的には、Nはダイレクトノードブロック81が指すデータブロック70の個数またはデータポインタ81−1の個数の半分以下であり得るが、本発明がこれに制限されるものではない。
本実施形態によるコンピュータシステム1は、このようにダイレクトノードブロック81内にデータポインタ81−1とエクステント81−2を共に含め、エクステント81−2の個数をN以下で管理することによってデータ処理性能を向上させる。これに関するさらに詳細な説明は後述する。
再び図4を参照すると、インダイレクトノードブロック91〜95はデータブロック70ではない、他のダイレクトノードブロック83〜88(すなわち、下位のノードブロック)を指すポインタを含む。インダイレクトノードブロック91〜95は例えば、第1インダイレクトノードブロック(91〜94)、第2インダイレクトノードブロック95などを含む。第1インダイレクトノードブロック(91〜94)はダイレクトノードブロック83〜88を指す第1ノードポインタを含む。第2インダイレクトノードブロック95は第1インダイレクトノードブロック93,94を指す第2ノードポインタを含む。
iノードブロック80はデータブロック70を直接指すデータポインタ、ダイレクトノードブロック81,82を指す第1ノードポインタ、第1インダイレクトノードブロック91,92を指す第2ノードポインタ、第2インダイレクトノードブロック95を指す第3ノードポインタ、連続な物理アドレスを有するデータブロック70をグループとして指すエクステントのうち少なくとも一つを含む。ここで、iノードブロック80が含むエクステントに関する説明は前述したダイレクトノードブロック81に含まれたエクステントに関する説明と同じであるため、重複する説明は省略する。
ここで、一つのファイルは例えば、最大3Tbyteであり、このような大容量のファイルは次のようなインデックス構造を有する。例えば、iノードブロック80内のデータポインタは994個であり、994個のデータポインタ各々は994個のデータブロック70各々を指す。第1ノードポインタは2個であり、2個の第1ノードポインタ各々は2個のダイレクトノードブロック81,82を指す。第2ノードポインタは2個であり、2個の第2ノードポインタ各々は2個の第1インダイレクトノードブロック91,92を指す。第3ノードポインタは1個であり、第2インダイレクトノードブロック95を指す。
また、ファイルごとにiノードメタデータを含むiノードページが存在する。
一方、図6のように、本発明の一実施形態によるコンピュータシステム1において、記憶装置20は第1領域Iと第2領域IIとに分けられる。ファイルシステム16はフォーマットする際、記憶装置20を第1領域Iと第2領域IIとに分け得るが、これに限定されるものではない。第1領域Iはシステム全体により管理する各種情報が格納される領域であり、例えば、現在割り当てられたファイル数、有効なページ数、位置などの情報を含む。第2領域IIは実際ユーザが使用している各種ディレクトリ情報、データ、ファイル情報などを格納する空間である。
また、第1領域Iは記憶装置20の前部分に格納され、第2領域IIは記憶装置20の後部分に格納される。ここで、前部分は後部分より物理アドレス(physical address)を基準に前にあることを意味する。
具体的には、第1領域Iはスーパーブロック61,62、チェックポイント領域(CheckPoint area、CP)63、セグメント情報テーブル(Segment Information Table、SIT)64、ノードアドレステーブル(Node Address Table、NAT)65、セグメント要約領域(Segment Summary Area、SSA)66などを含む。
先ず、スーパーブロック61,62には、ファイルシステム16のデフォルト情報が格納される。例えば、ブロック51のサイズ、ブロック51の個数、ファイルシステム16の状態フラグ(clean、stable、active、logging、unknown)などが格納される。図示するように、スーパーブロック61,62は2個であり、各々には同一な内容が格納される。したがって、二つのうち何れか一つに問題が発生しても、他の一つを利用することができる。
チェックポイント領域63はチェックポイントが格納される。チェックポイントは論理割り込みであって、このような割り込み点までの状態が完全に保存される。コンピュータシステムの動作中に事故(例えば、パワーオフ(sudden power off))が発生すると、ファイルシステム16は保存されたチェックポイントを利用してデータを復旧できる。このようなチェックポイントの生成時点は、例えば、周期的に生成、システムの停止(System shutdown)時点などであるが、これに限定されるものではない。
ノードアドレステーブル65は図7に図示するように、ノード各々に対応する多数のノード識別子(NODE ID)と、多数のノード識別子各々に対応する多数の物理アドレスを含む。例えば、ノード識別子N0に対応するノードブロックは物理アドレスaに対応し、ノード識別子N1に対応するノードブロックは物理アドレスbに対応し、ノード識別子N2に対応するノードブロックは物理アドレスcに対応する。すべてのノード(iノード、ダイレクトノード、インダイレクトノードなど)は各々固有のノード識別子を有する。言い換えると、すべてのノード(iノード、ダイレクトノード、インダイレクトノードなど)はノードアドレステーブル65から固有のノード識別子を割り当てられる。ノードアドレステーブル65はiノードのノード識別子、ダイレクトノードのノード識別子及びインダイレクトノードのノード識別子などを格納する。各ノード識別子に対応する各物理アドレスはアップデートされる。
セグメント情報テーブル64は各セグメントの有効なページ数と、多数のページのビットマップを含む。ビットマップは各ページが有効であるかどうかを0または1で示すものを意味する。セグメント情報テーブル64はクリーニング(cleaning)作業(またはガービッジコレクション(garbage collection))で使用される。特にビットマップはクリーニング作業を行う際、不要な読み込み要請を減らし、アダプティブデータロギン(adaptive data logging)の際にブロック割り当てるとき利用される。
セグメント要約領域66は第2領域IIの各セグメントの要約情報を集めて置く領域である。具体的には、セグメント要約領域66は第2領域IIの各セグメントの多数のブロックが属するノードの情報を記述する。セグメント要約領域66はクリーニング(cleaning)作業(またはガービッジコレクション(garbage collection))で使用される。詳しく説明すると、ノードブロック80,81〜88,91〜95はデータブロック70または下位のノードブロック(例えば、ダイレクトノードブロックなど)の位置を確認するため、ノード識別子リストまたはアドレスを有している。これに対し、セグメント要約領域66はデータブロック70または下位のノードブロック80,81〜88,91〜95が上位のノードブロック80,81〜88,91〜95の位置を確認できるインデックスを提供する。セグメント要約領域66は多数のセグメント要約ブロックを含む。一つのセグメント要約ブロックは、第2領域IIに位置する一つのセグメントに対する情報を有している。また、セグメント要約ブロックは多数の要約情報で構成されており、一つの要約情報は一つのデータブロックまたは一つのノードブロックに対応する。
第2領域IIは互いに分離されたデータセグメント(data segment)DS0,DS1とノードセグメント(node segment)NS0,NS1を含む。多数のデータはデータセグメントDS0,DS1に格納され、多数のノードはノードセグメントNS0,NS1に格納される。データとノードが分離される領域が互いに異なると、効率的にセグメントを管理でき、データを読み込む際により効果的に短時間内に読み込みできる。
一方、第2領域IIは順次アクセス(sequential acess)方式により書き込まれる領域であり、第1領域Iはランダムアクセス(random acess)方式により書き込まれる領域である。第2領域IIは記憶装置20の後部分に格納され、第1領域Iは記憶装置20の前部分に格納される。ここで、前部分は後部分より物理アドレス(physical address)を基準に前にあることを意味する。
記憶装置20が例えば、SSD(Static Solid Disk)である場合、SSD内部にバッファ(buffer)がある。バッファは例えば、読み込み/書き込み速度が速いSLC(Single Layer Cell)メモリである。したがって、このようなバッファは限定された空間のランダムアクセス方式の書き込み速度を速くすることができる。
図面では、第1領域Iはスーパーブロック61,62、チェックポイント領域62、セグメント情報テーブル64、ノードアドレステーブル65、セグメント要約領域66の順序になっているが、これに限定されるものではない。例えば、セグメント情報テーブル64とノードアドレステーブル65の位置が変わってもよく、ノードアドレステーブル65とセグメント要約領域66の位置が変わってもよい。
次の図8ないし図10を参照して本発明の一実施形態によるコンピュータシステムのデータ管理方法について説明する。
図8は、本発明の一実施形態によるコンピュータシステムのデータ読み込み方法を説明するための順序図である。
先に、図8を参照して本発明の一実施形態によるコンピュータシステムのデータ読み込み方法について説明する。
図8を参照すると、ファイルの読み込み要請が提供される(S100)。例えば、仮想ファイルシステム(図2の14を参照)またはファイルシステム(図2の16を参照)はユーザアプリケーション(図2の12を参照)からファイルの読み込み要請を受ける。
次の図8を参照すると、ファイルデータを読み込むためにエクステントを参照できるかを確認する(S110)。仮に、参照できるエクステントがない場合、データポインタを利用してファイルデータを読み込む(S120)。しかし、参照できるエクステントがある場合、エクステントを利用してファイルデータを読み込む(S130)。また、データポインタまたはエクステントを利用して読み込んだデータがファイルデータの終わりであるかを確認する(S140)。仮に、ファイルデータの終わりでなければ、前記S110〜S130を繰り返し、ファイルデータの終わりであれば読み込み動作を終了する。
以下では、説明を深めるため、図5に図示した例を参照して本発明の一実施形態によるコンピュータシステム1のデータ読み込み方法についてさらに詳しく説明する。
先ず、図5の例において、ファイルデータAはこれを参照するエクステント81−2が存在しない(S110)。したがって、ファイルデータAはデータポインタ81−1を参照して読み込みする(S120)。まだファイルデータがすべて読み込みされていないため、読み込み動作を継続して行う(S130)。
次に、ファイルデータBはこれを参照するエクステント81−2が存在する(S110)。したがって、ファイルデータBを、エクステント81−2を参照して読み込む(S130)。この際、ファイルデータBを参照するエクステント81−2を利用してファイルデータを読み込む場合、一度にファイルデータBCDを読み込みできる。まだすべてのファイルデータを読み込んでいないため、読み込み動作を継続して行う(S130)。
次に、ファイルデータEもこれを参照するエクステント81−2が存在する(S110)。したがって、ファイルデータEを、エクステント81−2を参照して読み込む(S130)。この際、ファイルデータEを参照するエクステント81−2を利用してファイルデータを読み込む場合、一度にファイルデータEFを読み込みできる。この段階ではすべてのファイルデータを読み込んだので読み込み動作を終了する(S130)。
このように、本実施形態によるコンピュータシステム1は、ダイレクトノードブロック81またはiノードブロック80内にデータポインタ81−1と共にエクステント81−2を含めることによって、データポインタ81−1のみを利用してデータを読み込む場合に比べてデータ読み込み時間を短縮できる長所がある。ここで、一つのエクステント81−2が指すファイルデータの量が多くなるほど(すなわち、データブロック70の個数が多くなるほど)データ読み込みに必要な時間はさらに短くなる。
一方、図5に図示したものとは異なって、記憶装置20に格納されたファイルデータをすべて物理的に不連続なアドレスを有するデータブロック(例えば、70−1)に分散して格納すると、最悪の場合データポインタ81−1の個数とエクステント81−2の個数がすべてデータノード70の個数と同一になる。この場合は、追加して含まれるエクステント81−2により格納空間が浪費される恐れがある。
したがって、本実施形態によるコンピュータシステム1はエクステント81−2の個数を予め定めたN以下で管理する。このような場合、エクステント81−2を利用した読み込み動作により、データ読み込み時間を短縮すると共に格納空間の浪費も防ぐ。
以下では、図9及び図10を参照して本発明の一実施形態によるコンピュータシステムのデータ書き込み方法について説明する。
図9は、本発明の一実施形態によるコンピュータシステムのデータ書き込み方法を説明するための順序図である。図10は、本発明の一実施形態によるコンピュータシステムのデータ書き込み方法を説明するための図である。
図9を参照すると、新たなファイルデータをデータブロックに書き込む(S200)。ここでは説明の便宜上、前述したABCDEFから成るファイルデータ(図5を参照)にファイルデータGを追加して書き込むことを例にあげて説明する。このようにファイルデータGを追加すると図10に図示するように新たなデータブロック70−4が割り当てられ、これを指すデータポインタ81−1が生成される。
再び図9を参照すると、新たに生成されたデータブロックを指す新規エクステントがログエクステント(log extent)とマージ(merge)できるかを判断する(S210)。判断の結果、マージできる場合、新規エクステントをログエクステントにマージする(S220)。具体的には図10を参照すると、ここでログエクステント81−2bは最も最近追加されたファイルデータを指すエクステントを意味する。したがって、図10の例では新規エクステント81−2cがログエクステント81−2bにマージできるかを判断する。仮に、データブロック70−4の物理アドレスがデータブロック70−3に連続して配置されていれば、新規エクステント81−2cはログエクステント81−2bにマージできる。したがって、この場合、新規エクステント81−2cをログエクステント81−2bにマージする。二つのエクステント(81−2b、81−2c)がマージすると、ログエクステント81−2bの長さ情報(length)は3に増えるようになり、ノードブロック81内の全体エクステントの個数はファイルデータG入力前と同じく2個が維持される。
再び図9を参照すると、判断結果、新規エクステントがログエクステントとマージできない場合、ログエクステントと他のエクステントがマージできるかを判断する(S230)。判断結果、ログエクステントと他のエクステントがマージできる場合、ログエクステントと他のエクステントをマージする(S240)。そして、新規エクステントをログエクステントとして割り当てる(S260)。
具体的には、図10の例において、データブロック70−4の物理アドレスがデータブロック70−3に連続して配置されておらず、新規エクステント81−2cをログエクステント81−2bにマージできない場合、ログエクステント81−2bと他のエクステントドゥル81−2aがマージできるかを判断する。ファイルデータは持続して更新されるため、ファイルデータを格納するデータブロック70−2,70−3の物理アドレスは持続して変更される。したがって、最初にエクステント81−2が生成されたときはマージできなかったが、このようなデータ更新によって時間が経過した後、ログエクステント81−2bとマージできるエクステント81−2が存在し得る。本例では、ファイルデータBCDが格納されたデータブロック70−2の物理アドレスと、ファイルデータEFが格納されたデータブロック70−3の物理アドレスを比較してログエクステント81−2bと既存エクステント81−2aがマージできるかを比較する。比較結果、仮にマージできる場合、ログエクステント81−2bを既存エクステント81−2aにマージする。その結果、既存エクステント81−2aの長さ情報は5に増える。この後、新規エクステント81−2cをログエクステント81−2bとして割り当てる。このような場合、全体エクステントの個数はファイルデータG入力前と同じく2個が維持される。
再び図9を参照すると、判断の結果、ログエクステントと他のエクステントがマージできる場合、ノードブロックに含まれた総エクステントの個数が予め定めたNより小さいかを判断する(S250)。その結果、Nより小さい場合、新規エクステントをログエクステントとして割り当てる(S260)。しかし、判断の結果、N以上の場合、最も小さい長さ情報を有するエクステントを削除し(S270)、新規エクステントをログエクステントとして割り当てる(S260)。
すなわち、本実施形態では図10に図示する新規エクステント81−2cが追加されることによってノードブロック81に含まれるエクステント81−2の総個数が予め定めたN以下の場合、新規エクステント81−2cをログエクステント81−2bとして割り当てる。しかし、新規エクステント81−2cが追加されることによってノードブロック81に含まれるエクステント81−2の総数が予め定めたNを越える場合、最も小さい長さ情報を有するエクステント81−2を削除し(図10の例ではエクステント81−2bが削除される)、新規エクステント81−2cをログエクステント81−2bとして割り当てることによって、エクステント81−2の総数を常に予め定めたN以下に維持する。
一方、本発明のいくつかの実施形態において、このようなNはノードブロック81が指すデータブロック70の個数またはデータポインタ81−1の個数の半分以下である。このようにノードブロック81に含まれたエクステント81−2の個数を制限する場合、エクステント81−2を利用することによって格納空間の不要な浪費を防ぐことができる。
図11ないし図13は、図6の記憶装置の他の構成例を説明するためのブロック図である。以下で説明の便宜上、図6を参照して説明した内容と違う点を中心に説明する。
図11を参照すると、本発明の他の実施形態によるコンピュータシステムの記憶装置において、第2領域IIは互いに分離された多数のセグメント(S1〜Sn、ただし、nは自然数)を含む。各セグメントS1〜Snは、データとノードの区分なしに格納される。
反面、本発明の一実施形態によるコンピュータシステムで、記憶装置は互いに分離したデータセグメントDS0,DS1、ノードセグメントNS0,NS1を含む。多数のデータはデータセグメントDS0,DS1に格納され、多数のノードはノードセグメントNS0,NS1に格納される。
図12を参照すると、本発明のまた他の実施形態によるコンピュータシステムの記憶装置において、第1領域Iはセグメント要約領域(図6の66を参照)を含まない。すなわち、第1領域Iはスーパーブロック61,62、チェックポイント領域62、セグメント情報テーブル64、ノードアドレステーブル65を含む。
セグメント要約情報は第2領域II内に格納される。具体的には、第2領域IIは多数のセグメントS0〜Snを含み、各セグメントS0〜Snは多数のブロックに区分される。各セグメントS0〜Snの少なくとも一つのブロックSS0〜SSnにセグメント要約情報を格納する。
図13を参照すると、本発明のまた他の実施形態によるコンピュータシステムの記憶装置において、第1領域Iはセグメント要約領域(図6の66を参照)を含まない。すなわち、第1領域Iはスーパーブロック61,62、チェックポイント領域62、セグメント情報テーブル64、ノードアドレステーブル65を含む。
セグメント要約情報は第2領域II内に格納される。第2領域IIは多数のセグメント53を含み、各セグメント53は多数のブロック(BLK0〜BLKm)に区分され、各ブロック(BLK0〜BLKm)はOOB(Out Of Band)(OOB1〜OOBm、ただし、mは自然数)領域を含む。OOB領域(OOB1〜OOBm)にセグメント要約情報を格納する。
以下では、本発明のいくつかの実施形態によるコンピュータシステムが適用される具体的なシステムについて説明する。以下で説明されるシステムは例示的なものに過ぎず、これに限定されるものではない。
図14は、本発明のいくつかの実施形態によるコンピュータシステムの具体的な一例を説明するためのブロック図である。
図14を参照すると、ホストサーバ300はネットワーク320を介して多数のデータベースサーバ330,340,350,360と接続されている。ホストサーバ300内に、データベースサーバ330,340,350,360のデータを管理するためのファイルシステム316を設ける。ファイルシステム316は、図1ないし図13を参照して説明したファイルシステムのうち何れか一つである。
図15ないし図17は、本発明のいくつかの実施形態によるコンピュータシステムの具体的な他の例を説明するためのブロック図である。
先ず、図15を参照すると、記憶装置100(図1の20に対応する)は不揮発性メモリ装置1100及びコントローラ1200を含む。
ここで、不揮発性メモリ装置1100には、前述したスーパーブロック61,62、チェックポイント領域63、セグメント情報テーブル64、ノードアドレステーブル65などが格納されている。
コントローラ1200はホスト及び不揮発性メモリ装置1100に接続する。ホスト(Host)からの要請に応答してコントローラ1200は不揮発性メモリ装置1100をアクセスするように構成される。例えば、コントローラ1200は不揮発性メモリ装置1100の読み込み、書き込み、削除、そしてバックグラウンド(background)の動作を制御するように構成される。コントローラ1200は不揮発性メモリ装置1100とホスト(Host)との間にインターフェースを提供するように構成される。コントローラ1200は不揮発性メモリ装置1100を制御するためのファームウェア(firmware)を駆動するように構成される。
例示的には、コントローラ1200はRAM(Random Access Memory)、プロセシングユニット(processing unit)、ホストインターフェース(host interface)、及びメモリインターフェース(memory interface)のようなよく知られている構成要素をさらに含む。RAMはプロセシングユニットの動作メモリ、不揮発性メモリ装置1100及びホストの間のキャッシュメモリ、そして不揮発性メモリ装置1100及びホスト(Host)の間のバッファメモリのうち少なくとも一つとして利用される。プロセシングユニットはコントローラ1200の諸般の動作を制御する。
コントローラ1200と不揮発性メモリ装置1100とは一つの半導体装置に集積される。例示的には、コントローラ1200と不揮発性メモリ装置1100とは一つの半導体装置に集積され、メモリカードを構成する。例えば、コントローラ1200と不揮発性メモリ装置1100とは、一つの半導体装置に集積され、PCカード(PCMCIA、personal computer memory card international association)、コンパックフラッシュカード(CF)、スマートメディアカード(SM、SMC)、メモリスティック、マルチメディアカード(MMC、RS−MMC、MMCmicro)、SDカード(SD、miniSD、microSD、SDHC)、ユニバーザルフラッシュ記憶装置(UFS)などのようなメモリカードを構成する。
コントローラ1200と不揮発性メモリ装置1100とは一つの半導体装置に集積されSSD(Solid State Drive)を構成する。SSDは半導体メモリにデータを格納するように構成される格納装置を含む。システム1000が半導体ドライブ(SSD)として利用される場合、システム1000に接続されたホスト(Host)の動作速度が画期的に改善される。
他の例として、システム1000はコンピュータ、UMPC(Ultra MobilePC)、ワークステーション、ネットブック(net−book)、PDA(Personal Digital Assistants)、ポータブル(portable)コンピュータ、ウェブタブレット(web tablet)、無線電話機(wireless phone)、モバイルフォン(mobile phone)、スマートフォン(smart phone)、e−ブック(e−book)、PMP(portable multimedia player)、携帯用ゲーム機、ナビゲーション(navigation)装置、ブラックボックス(black box)、デジタルカメラ(digital camera)、3次元テレビ(3−dimensional television)、デジタルオーディオレコーダ(digital audio recorder)、デジタルオーディオプレーヤ(digital audio player)、デジタル画像レコーダ(digital picture recorder)、デジタル画像プレーヤ(digital picture player)、デジタル動画レコーダ(digital video recorder)、デジタル動画プレーヤ(digital video player)、情報を無線環境で送受信できる装置、ホームネットワークを構成する多様な電子装置のうち一つ、コンピューターネットワークを構成する多様な電子装置のうち一つ、テレマティクスネットワークを構成する多様な電子装置のうち一つ、RFID装置、またはコンピュータシステムを構成する多様な構成要素のうち一つなどのような電子装置の多様な構成要素のうち一つとして提供される。
例示的には、不揮発性メモリ装置1100またはシステム1000は多様な形態のパッケージで実装される。例えば、不揮発性メモリ装置1100またはシステム1000は、Package on Package(PoP)、Ball grid arrays(BGAs)、Chip scale packages(CSPs)、Plastic Leaded Chip Carrier(PLCC)、Plastic Dual In Line Package(PDIP)、Die in Waffle Pack、Die in Wafer Form、Chip On Board(COB)、Ceramic Dual In Line Package(CERDIP)、Plastic Metric Quad Flat Pack(MQFP)、Thin Quad Flatpack(TQFP)、Small Outline(SOIC)、Shrink Small Outline Package(SSOP)、Thin Small Outline(TSOP)、Thin Quad Flatpack(TQFP)、System In Package(SIP)、Multi Chip Package(MCP)、Wafer−level Fabricated Package(WFP)、Wafer−Level Processed Stack Package(WSP)などのような方式でパッケージ化して実装される。
次いで、図16を参照すると、システム2000は不揮発性メモリ装置2100及びコントローラ2200を含む。不揮発性メモリ装置2100は複数の不揮発性メモリチップを含む。複数の不揮発性メモリチップは複数のグループに分割される。複数の不揮発性メモリチップの各グループは一つの共通チャンネルを介してコントローラ2200と通信するように構成される。例えば、複数の不揮発性メモリチップは第1ないし第kチャンネル(CH1〜CHk)を介してコントローラ2200と通信するものが図示されている。
図16では、一つのチャンネルに複数の不揮発性メモリチップが接続されることが説明されている。しかし、一つのチャンネルに一つの不揮発性メモリチップが接続されるようにシステム2000を変形できることが理解できるであろう。
次いで、図17を参照すると、システム3000は中央処理装置3100、RAM(Random Access Memory)3200、ユーザインターフェース3300、電源3400、そして図16のシステム2000を含む。
システム2000はシステムバス3500を介して中央処理処置3100、RAM3200、ユーザインターフェース3300、及び電源3400に電気的に接続される。ユーザインターフェース3300を介して提供されるか、または中央処理装置3100によって処理されたデータはシステム2000に格納される。
図17には、不揮発性メモリ装置2100はコントローラ2200を介してシステムバス3500に接続されるものが図示されている。しかし、不揮発性メモリ装置2100はシステムバス3500に直接接続するように構成され得る。
以上添付する図面を参照して本発明の実施形態について説明したが、本発明が属する技術分野で通常の知識を有する者は、本発明がその技術的思想や必須の特徴を変更しない範囲で他の具体的な形態で実施され得ることを理解できるものである。したがって、上記実施形態はすべての面で例示的なものであり、限定的なものではないと理解しなければならない。
10 ホスト
14 仮想ファイルシステム
16 ファイルシステム
18 装置ドライバ
20 記憶装置

Claims (7)

  1. 少なくとも一つのデータブロックを介して格納されるファイルデータと、ノードブロックを介して格納されるメタデータとが格納された記憶装置と、
    前記記憶装置に格納された前記ファイルデータと前記メタデータとを管理するファイルシステムとを含み、
    前記ノードブロックは、前記少なくとも一つのデータブロックを各々指す少なくとも一つのデータポインタと前記少なくとも一つのデータブロックのうち連続な物理アドレスを有するデータブロックをグループとして指すエクステントとを含み、
    前記ノードブロックに含まれた前記エクステントの個数は予め定めたN(ここで、Nは前記データポインタの個数より小さい自然数)以下で管理され、
    前記Nは、前記データポインタの個数の半分以下であるコンピュータシステム。
  2. 前記エクステントは、前記ファイルデータ内で前記グループ化したデータブロックを介して格納されるデータのオフセット情報と、前記グループ化したデータブロックを指すブロックポインタと、前記グループ化したデータブロックの長さ情報とを含む請求項1に記載のコンピュータシステム。
  3. 前記ノードブロックは、前記データブロックを指すダイレクトノードブロックと、前記ダイレクトノードブロックを指すインダイレクトノードブロックと、前記ダイレクトノードブロック及び前記インダイレクトノードブロックを指すiノードブロックとを含み、
    前記エクステントは前記iノードブロックまたは前記ダイレクトノードブロックに含まれる請求項1に記載のコンピュータシステム。
  4. 前記ファイルシステムは、前記記憶装置から前記ファイルデータを読み込む場合、前記データポインタと前記エクステントとのうち前記エクステントを先に参照して前記ファイルデータを読み込みする請求項1に記載のコンピュータシステム。
  5. ファイルデータを格納する第1データブロックを生成し、
    前記第1データブロックと関連するノードブロックに、前記第1データブロックを指すデータポインタと前記第1データブロックと連続な物理アドレスを有するデータブロックをグループとして指すエクステントを生成することを含み、
    前記ノードブロックに含まれた前記エクステントの個数は予め定めたN(ここで、Nは前記データポインタの個数より小さい自然数)以下で管理され
    前記エクステントを生成することは、
    前記第1データブロックが第2データブロックと不連続な物理アドレスを有し、前記第2データブロックが第3データブロックと連続な物理アドレスを有する場合、前記ノードブロックに含まれて前記第2データブロックを指す第1エクステントと、前記ノードブロックに含まれて前記第3データブロックを指す第2エクステントとをマージし、前記第1データブロックを指すエクステントを新規生成するコンピュータシステムのデータ管理方法。
  6. ファイルデータを格納する第1データブロックを生成し、
    前記第1データブロックと関連するノードブロックに、前記第1データブロックを指すデータポインタと前記第1データブロックと連続な物理アドレスを有するデータブロックをグループとして指すエクステントを生成することを含み、
    前記ノードブロックに含まれた前記エクステントの個数は予め定めたN(ここで、Nは前記データポインタの個数より小さい自然数)以下で管理され
    前記エクステントを生成することは、
    前記第1データブロックが第2データブロックと不連続な物理アドレスを有し、前記第2データブロックが第3データブロックと不連続な物理アドレスを有する場合、
    前記ノードブロックに含まれて前記第2データブロックを指す第1エクステントと、前記ノードブロックに含まれて前記第3データブロックを指す第2エクステントとのうち長さ情報が小さいエクステントを削除し、
    前記第1データブロックを指すエクステントを新規生成するコンピュータシステムのデータ管理方法。
  7. 前記エクステントを生成することは、
    前記第1データブロックが前記第2データブロックと連続な物理アドレスを有する場合、
    前記ノードブロックに含まれて前記第2データブロックを指すエクステントが前記第1データブロックと前記第2データブロックをグループとして指すようにすることを含む請求項5又は6に記載のコンピュータシステムのデータ管理方法。
JP2013202222A 2012-09-28 2013-09-27 コンピュータシステム及びコンピュータシステムのデータ管理方法 Active JP6343438B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2012-0109162 2012-09-28
KR1020120109162A KR102050725B1 (ko) 2012-09-28 2012-09-28 컴퓨팅 시스템 및 컴퓨팅 시스템의 데이터 관리 방법

Publications (2)

Publication Number Publication Date
JP2014071905A JP2014071905A (ja) 2014-04-21
JP6343438B2 true JP6343438B2 (ja) 2018-06-13

Family

ID=50386227

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013202222A Active JP6343438B2 (ja) 2012-09-28 2013-09-27 コンピュータシステム及びコンピュータシステムのデータ管理方法

Country Status (3)

Country Link
US (1) US9489388B2 (ja)
JP (1) JP6343438B2 (ja)
KR (1) KR102050725B1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9763518B2 (en) 2014-08-29 2017-09-19 Cisco Technology, Inc. Systems and methods for damping a storage system
US9846703B2 (en) * 2014-09-30 2017-12-19 Vivint, Inc. Page-based metadata system for distributed filesystem
US9900250B2 (en) 2015-03-26 2018-02-20 Cisco Technology, Inc. Scalable handling of BGP route information in VXLAN with EVPN control plane
US10108344B1 (en) * 2015-05-06 2018-10-23 American Megatrends, Inc. Systems, devices and methods using a solid state device as a caching medium with an SSD filtering or SSD pre-fetch algorithm
US10222986B2 (en) 2015-05-15 2019-03-05 Cisco Technology, Inc. Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system
US11588783B2 (en) 2015-06-10 2023-02-21 Cisco Technology, Inc. Techniques for implementing IPV6-based distributed storage space
US9892075B2 (en) 2015-12-10 2018-02-13 Cisco Technology, Inc. Policy driven storage in a microserver computing environment
KR102545067B1 (ko) 2016-03-02 2023-06-20 한국전자통신연구원 로그 구조 파일 시스템의 메타 데이터 저장 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
US20170351639A1 (en) 2016-06-06 2017-12-07 Cisco Technology, Inc. Remote memory access using memory mapped addressing among multiple compute nodes
US11563695B2 (en) 2016-08-29 2023-01-24 Cisco Technology, Inc. Queue protection using a shared global memory reserve
US10545914B2 (en) 2017-01-17 2020-01-28 Cisco Technology, Inc. Distributed object storage
US10243823B1 (en) 2017-02-24 2019-03-26 Cisco Technology, Inc. Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks
US10713203B2 (en) 2017-02-28 2020-07-14 Cisco Technology, Inc. Dynamic partition of PCIe disk arrays based on software configuration / policy distribution
US10254991B2 (en) 2017-03-06 2019-04-09 Cisco Technology, Inc. Storage area network based extended I/O metrics computation for deep insight into application performance
US10303534B2 (en) 2017-07-20 2019-05-28 Cisco Technology, Inc. System and method for self-healing of application centric infrastructure fabric memory
US10404596B2 (en) 2017-10-03 2019-09-03 Cisco Technology, Inc. Dynamic route profile storage in a hardware trie routing table
US10942666B2 (en) 2017-10-13 2021-03-09 Cisco Technology, Inc. Using network device replication in distributed storage clusters
US11010479B2 (en) * 2018-10-01 2021-05-18 International Business Machines Corporation Cyber security for space-switching program calls
US10915640B2 (en) * 2018-10-01 2021-02-09 International Business Machines Corporation Cyber security testing for authorized services
CN109933570B (zh) * 2019-03-15 2020-02-07 中山大学 一种元数据管理方法、系统及介质
US11336679B2 (en) 2020-01-28 2022-05-17 International Business Machines Corporation Combinatorial test design for optimizing parameter list testing

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520142A (ja) * 1991-07-15 1993-01-29 Nec Corp ブロツク管理方式
JPH0793192A (ja) 1993-09-28 1995-04-07 Toshiba Corp ファイル管理方法
JPH07325669A (ja) * 1994-05-31 1995-12-12 Mitsubishi Electric Corp ディスク管理方法
US5991862A (en) * 1996-12-30 1999-11-23 Sun Microsystems, Inc. Modified indirect addressing for file system
US6505217B1 (en) 1998-11-25 2003-01-07 Compaq Computer Corporation Method and apparatus for file placement
EP1049029A3 (en) * 1999-04-28 2003-07-09 Emc Corporation File systems with versatile indirection
US6895418B1 (en) * 1999-04-28 2005-05-17 Emc Corporation Versatile indirection in an extent based file system
US7054927B2 (en) * 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
US6578121B1 (en) 2001-02-05 2003-06-10 Emc Corporation File mapping system and related techniques
KR100484942B1 (ko) 2002-03-14 2005-04-25 한국전자통신연구원 대용량 파일시스템의 디렉토리 관리방법
DE10227255B4 (de) 2002-06-19 2008-06-26 Hyperstone Gmbh Verfahren zur Wiederherstellung von Verwaltungsdatensätzen eines blockweise löschbaren Speichers
US7159073B2 (en) 2003-03-27 2007-01-02 Stmicroelectronics, Inc. Data storage and caching architecture
US7814128B2 (en) * 2003-05-30 2010-10-12 Symantec Operating Corporation Multi-volume file support
JP2005135126A (ja) * 2003-10-30 2005-05-26 Hitachi Ltd フラグメント防止ファイルシステム
US7711916B2 (en) 2005-05-11 2010-05-04 Oracle International Corporation Storing information on storage devices having different performance capabilities with a storage system
US7873601B1 (en) * 2006-06-29 2011-01-18 Emc Corporation Backup of incremental metadata in block based backup systems
KR100791325B1 (ko) 2006-10-27 2008-01-03 삼성전자주식회사 비휘발성 메모리를 관리하는 장치 및 방법
US8683228B2 (en) 2007-01-16 2014-03-25 Terry Lee Stokes System and method for WORM data storage
JP4331220B2 (ja) 2007-03-07 2009-09-16 株式会社東芝 未使用物理領域自律管理機能を持つストレージ装置
US8533410B1 (en) * 2007-03-29 2013-09-10 Netapp, Inc. Maintaining snapshot and active file system metadata in an on-disk structure of a file system
US8903772B1 (en) * 2007-10-25 2014-12-02 Emc Corporation Direct or indirect mapping policy for data blocks of a file in a file system
JP2009205591A (ja) * 2008-02-29 2009-09-10 Panasonic Corp アクセスモジュール、情報記録モジュール、及び情報記録システム
JP4691209B2 (ja) * 2008-04-04 2011-06-01 パナソニック株式会社 アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム
KR101086857B1 (ko) * 2008-07-25 2011-11-25 주식회사 팍스디스크 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
US8554745B2 (en) * 2009-04-27 2013-10-08 Netapp, Inc. Nearstore compression of data in a storage system
US8204871B1 (en) 2010-09-28 2012-06-19 Emc Corporation Extended file mapping cache for fast input-output
US8612382B1 (en) * 2012-06-29 2013-12-17 Emc Corporation Recovering files in data storage systems
US8954383B1 (en) * 2012-06-29 2015-02-10 Emc Corporation Analyzing mapping objects of file systems

Also Published As

Publication number Publication date
US20140095556A1 (en) 2014-04-03
US9489388B2 (en) 2016-11-08
KR20140042419A (ko) 2014-04-07
JP2014071905A (ja) 2014-04-21
KR102050725B1 (ko) 2019-12-02

Similar Documents

Publication Publication Date Title
JP6343438B2 (ja) コンピュータシステム及びコンピュータシステムのデータ管理方法
KR102050732B1 (ko) 컴퓨팅 시스템 및 컴퓨팅 시스템의 데이터 관리 방법
US11687446B2 (en) Namespace change propagation in non-volatile memory devices
KR102002830B1 (ko) 세그먼트 클리닝 장치 및 방법
KR102050723B1 (ko) 컴퓨팅 시스템 및 그 데이터 관리 방법
KR101907059B1 (ko) 비휘발성 메모리 장치의 블록 관리 방법 및 블록 관리 시스템
KR102007650B1 (ko) 세그먼트 그룹을 고려하는 세그먼트 클리닝 장치 및 방법
KR101977575B1 (ko) 디렉토리 엔트리 조회 장치, 그 방법 및 디렉토리 엔트리 조회 프로그램이 기록된 기록 매체
KR101867282B1 (ko) 비휘발성 메모리 장치의 가비지 컬렉션 방법
US20160162187A1 (en) Storage System And Method For Processing Writing Data Of Storage System
EP2665065A2 (en) Electronic device employing flash memory
US20190043540A1 (en) Adaptive object buffering and meta-data indexing using persistent memory to improve flash memory durability in tiered storage
CN110968253B (zh) 一种数据存储方法、装置及系统
KR20140050941A (ko) 비휘발성 메모리 장치의 데이터 관리 방법
KR20120105294A (ko) 불휘발성 메모리를 제어하는 메모리 컨트롤러
US20160378375A1 (en) Memory system and method of operating the same
KR20210068699A (ko) 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법
US20140095771A1 (en) Host device, computing system and method for flushing a cache
JP6215631B2 (ja) コンピュータシステム及びそのデータ管理方法
US10671307B2 (en) Storage system and operating method thereof
US20140095558A1 (en) Computing system and method of managing data thereof
CN109002265B (zh) 一种数据处理的方法以及相关装置
KR20140042520A (ko) 비트맵을 이용한 세그먼트 클리닝 장치 및 상기 비트맵을 저장하는 스토리지 장치
KR101744401B1 (ko) 컴퓨팅 장치의 시스템 상태 저장, 복원방법 및 이를 위한 컴퓨팅 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160923

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20161222

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20161228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171221

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: 20180515

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180521

R150 Certificate of patent or registration of utility model

Ref document number: 6343438

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250