JP2005135126A - フラグメント防止ファイルシステム - Google Patents
フラグメント防止ファイルシステム Download PDFInfo
- Publication number
- JP2005135126A JP2005135126A JP2003369816A JP2003369816A JP2005135126A JP 2005135126 A JP2005135126 A JP 2005135126A JP 2003369816 A JP2003369816 A JP 2003369816A JP 2003369816 A JP2003369816 A JP 2003369816A JP 2005135126 A JP2005135126 A JP 2005135126A
- Authority
- JP
- Japan
- Prior art keywords
- file
- size
- reservation
- file system
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1724—Details of de-fragmentation performed by the file system
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】 ファイルの書き込み処理時に、ファイルサイズとあらかじめ設定しておいた複数の閾値とを比較して、ファイルサイズに応じた予約サイズで予約を行う。またファイルシステム容量不足により予約に失敗した場合は、実I/Oサイズで再度予約を試みることによりファイルシステムの領域を有効に活用する。ファイルサイズがあらかじめ設定しておいた最小の閾値に満たない場合は、実I/Oサイズで予約を行うことで、最小の閾値以下のファイルの予約解放処理をスキップ可能とする。
【選択図】 図1
Description
例えばLinuxのEXT2ファイルシステムだと、inode内に15エントリがあり、最初の12エントリは直接ブロック番号をポイントする。残りの三つのエントリはそれぞれ、第一間接参照、第二間接参照、第三間接参照となる。
エクステント形式のファイルシステムでフラグメントが発生した場合、性能が低下するだけでなく、マッピングテーブルが巨大化する。マッピングテーブルが巨大化するとメモリ不足を引き起こしやすくなり、OSを不安定(デッドロック、スローダウン、パニック)にさせる要因となる。
(1) 非同期writeシステムコールでは、ブロックの領域(大きさ)のみを予約し、ディスクに実際に書き出す際にブロック番号を確定させるDelaying Allocation方式の採用。これによりブロック番号の確定を極限まで遅らせることができ、エクステントの結合が期待できる。
(2) 予約時に実際のI/O要求長よりも大きめに予約(64KB)しておくことによって、予約長は必ず連続となる事を保証する。
(3) 大きめに予約した領域の未使用領域の解放はcloseの延長で行う。
NFS経由のアクセスでは、NFSクライアントでのI/O要求サイズに関わらず、要求がネットワークパケット化の過程で分断されるために、最終的にサーバでのI/O長は4KB〜8KB程度となる。NFS経由のwriteアクセスでは、open→write(4K〜8KB,非同期/同期両方あり)→fsync(書き込み保証)→closeの繰り返しとなり、一回のI/O毎にディスクへの書き出しが発生するため、(1)の効果は期待できない。
(4) NFS経由のwriteアクセス時には、キャッシュに登録し、そのキャッシュに登録されている限りclose時には未使用領域の解放は行わない。
XFSでは一つのエクステントエントリに16Byteを使用しており、1TBのファイルが64KBでフラグメントすると、マッピングテーブルが256MBとなってしまう。現在のハイエンドNASシステムは100TB超のストレージ容量に対して、数GBのメインメモリであるため、フラグメントした数TBのファイルに同時にアクセスすれば容易にメモリ不足となる。
従来のファイルシステムでは、フラグメントを防止しようとすると、そのトレードオフとしてファイルシステムフルが発生しやすいという問題があった。また領域を大きめに予約すれば、当然あまった領域は解放しなければならないため、この処理コストにも注意を払う必要がある。
先頭オフセットが和と等しいもしくは和より大きい場合は111のホールファイル用の予約サイズ(例えば16KB)を適用する。また、ホールファイル用の予約サイズを適用する実施形態の他に、122の実要求サイズをいきなり適用する実施形態や、114の第一段階の予約サイズを適用する実施形態も考えられる。
先頭オフセットが和より小さい場合は103へ処理が移る。103では、ファイルサイズは第三段階の閾値(例えば512MB)より大きいかどうかの判定を行う。ファイルサイズが第三段階の閾値以上だった場合には、112の第三段階の予約サイズ(例えば16MB)を適用する。
第三段階の閾値に満たない場合は104へ処理が移る。104では、ファイルサイズは第二段階の閾値(例えば32MB)より大きいかどうかの判定を行う。ファイルサイズが第二段階の閾値以上だった場合には、113の第二段階の予約サイズ(例えば1MB)を適用する。
第二段階の閾値に満たない場合は105へ処理が移る。105では、ファイルサイズは第一段階の閾値(例えば64KB)より大きいかどうかの判定を行う。ファイルサイズが第一段階の閾値以上だった場合には、114の第一段階の予約サイズ(例えば64KB)を適用する。
ここまで第一段階の閾値、第二段階の閾値、第三段階の閾値の比較対象がファイルサイズである実施形態を述べてきたが、比較対象をファイルオフセットとする実施形態も考えられる。
102〜105までの条件にいずれも適合しなかった場合には、122にて、420に予約要求を行うことにより、実I/Oサイズで予約を行う。111〜114のいずれかに該当する場合、120にて、420に予約要求を行うことにより、それぞれの適用予約サイズで予約を行う。そして、121にて領域の予約がファイルシステム容量不足で失敗したかどうかの判定を行う。ファイルシステム容量不足で失敗した場合は、122で実I/O要求サイズで再度予約を試みる。121の条件に適合しなかった場合、つまり成功、もしくはファイルシステム容量不足以外の失敗の場合は、123に処理が移る。また122実行後にも123に処理が移る。
123では、領域の予約を行った結果、予約が成功したかどうかを判定する。予約が成功した場合は132にてwrite処理を続行し、402バッファー生成部へ制御を移す。予約が失敗した場合には131にてwrite処理は失敗し、ユーザプログラムにエラーを通知する。
501の条件に合致しない場合には、503へ処理を移す。503では予約解放処理をスキップするため、420を行うことなく、412のリソース解放部に処理を移し、Close処理を終了する。
Close処理の説明で述べてきた第一段階の閾値は、図1の105の第一段階の閾値と常に一致していることが望ましい。
これまで述べてきた、第一段階の閾値、第二段階の閾値、第三段階の閾値、第一段階の予約サイズ、第二段階の予約サイズ、第三段階の予約サイズ、ホールファイル判定用閾値、ホールファイル用予約サイズは、あらかじめデフォルト値を定めておくが、システム単位、ファイルシステム単位、ファイル単位などでユーザが再設定できることが望ましい。
図6に予約サイズ決定に用いるパラメータを設定、参照するユーザ-カーネル間インターフェースのブロック図を示す。601は図1での予約サイズ決定の際使用する、第一段階の閾値、第二段階の閾値、第三段階の閾値、第一段階の予約サイズ、第二段階の予約サイズ、第三段階の予約サイズ、ホールファイル判定用閾値、ホールファイル用予約サイズを格納するテーブルである。これらテーブル内のパラメータはあらかじめデフォルト値が設定されている。
202a, 202b, 202c, 202d, 202e, 202f, 202g 第一間接参照テーブル
203a, 203b, 203c 第二間接参照テーブル
204a 第三間接参照テーブル
301 エクステント方式のマッピングテーブル
601 予約サイズ決定用テーブル
602 カーネル-ユーザー間インターフェース。
Claims (11)
- 書き込み領域の予約が可能なファイルシステムにおいて、ファイルの書き込み処理時に、書き込みを行おうとしているファイルのファイルサイズまたはファイルオフセットと、あらかじめ指定した閾値とを比較し、その比較結果に応じて書き込み領域の予約サイズを変更することを特徴とするファイルシステム。
- ファイルの書き込み処理時に、書き込みを行おうとしているファイルのファイルサイズまたはファイルオフセットが予め指定した閾値以上のときは予め指定した予約サイズで予約を行い、それ以外の場合は、書き込み要求サイズで予約を行うことを特徴とする請求項1に記載のファイルシステム。
- 前記予め指定した予約サイズでの予約がファイルシステムの領域不足により失敗した場合には書き込み要求サイズで再度予約を行うことを特徴とする請求項2に記載のファイルシステム。
- 予約した領域の未使用領域の解放時に、解放を行おうとしているファイルのファイルサイズが、前記予め指定した閾値未満の場合は開放の処理を中断し、指定した閾値以上の場合には解放処理を続行することを特徴とする請求項2に記載のファイルシステム
- ファイルサイズに関する複数の閾値と、それぞれの閾値に対応する予約サイズが指定され、書き込みを行おうとするファイルのファイルサイズが上記閾値のいずれにも達しないときには書き込み要求サイズによる予約を行い、上記書き込みを行おうとするファイルのファイルサイズがいずれかの閾値に達する場合はその閾値に対応する予約サイズで予約を行うことを特徴とする請求項2に記載のファイルシステム。
- 予約した領域の未使用領域の解放時に、解放を行おうとしているファイルのファイルサイズが、前記複数の閾値のうちの最小の閾値未満の場合は処理を中断し、該最小の閾値以上の場合には解放処理を続行することを特徴とする請求項5に記載のファイルシステム。
- 書き込み開始オフセットが、書き込みを行おうとしているファイルのファイルサイズとあらかじめ指定した値との和と等しいもしくは和より大きかった場合には、書き込み要求サイズまたは前記予め指定した予約サイズと異なる第2の予約サイズで予約を行うこと特徴とする請求項2に記載のファイルシステム。
- ユーザが値を指定すると、請求項1乃至請求項7のいずれかに記載のファイルシステムで使用する閾値や予約サイズを格納するカーネルのテーブルの該当個所に値を反映するカーネル-ユーザー間インターフェース。
- 請求項1乃至請求項7のいずれかに記載のファイルシステムで使用する閾値や予約サイズを格納するカーネルのテーブルの値をユーザが参照することができるカーネル-ユーザー間インターフェース。
- 請求項1乃至請求項7のいずれかに記載のファイルシステムを搭載した、プロセッサ、主記憶、I/O制御部、ディスクコントローラ、補助記憶、ネットワークカードによって構成される情報処理装置。
- 記憶装置の記憶領域を一定のサイズのブロック単位で管理し、且つファイル書き込みの要求があったらそのファイルに対する書き込み予定サイズもしくは書き込み予定のブロックを設定する予約動作を行い、順次書き込み処理を行うファイル書き込み方法であって、
書き込みを行おうとしているファイルのファイルオフセットと、ファイルオフセットに関する予め指定された閾値とを比較する第1の判定手順、及び
書き込みを行おうとしているファイルのファイルサイズと、ファイルサイズに関する予め指定された閾値を比較する第2の判定手順、を有し
上記第1の判定手順でその閾値に達していたら予め指定された第1の予約サイズで上記予約動作を行い、第2の判定手順でその閾値に達していたら予め指定された第2の予約サイズで上記予約動作を行い、上記第1、第2の判定手順でともにそれら閾値に達していなければ書き込み要求サイズで上記予約動作を行うファイル書き込み方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003369816A JP2005135126A (ja) | 2003-10-30 | 2003-10-30 | フラグメント防止ファイルシステム |
US10/834,837 US20050108296A1 (en) | 2003-10-30 | 2004-04-30 | File system preventing file fragmentation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003369816A JP2005135126A (ja) | 2003-10-30 | 2003-10-30 | フラグメント防止ファイルシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005135126A true JP2005135126A (ja) | 2005-05-26 |
Family
ID=34567040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003369816A Pending JP2005135126A (ja) | 2003-10-30 | 2003-10-30 | フラグメント防止ファイルシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20050108296A1 (ja) |
JP (1) | JP2005135126A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7869698B2 (en) | 2005-11-18 | 2011-01-11 | Kabushiki Kaisha Toshiba | Information recording/playback method and recording/playback apparatus |
JP2014071905A (ja) * | 2012-09-28 | 2014-04-21 | Samsung Electronics Co Ltd | コンピュータシステム及びコンピュータシステムのデータ管理方法 |
JP2015072643A (ja) * | 2013-10-04 | 2015-04-16 | 株式会社 日立産業制御ソリューションズ | コンテンツ配信装置及びコンテンツ配信装置のコンテンツ配信方法 |
JP2015203908A (ja) * | 2014-04-11 | 2015-11-16 | 富士通株式会社 | ストレージ管理装置及びストレージ管理プログラム |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070022148A1 (en) * | 2005-07-20 | 2007-01-25 | Akers David G | Reserving an area of a storage medium for a file |
US8615489B2 (en) * | 2008-08-25 | 2013-12-24 | Vmware, Inc. | Storing block-level tracking information in the file system on the same block device |
US8117410B2 (en) * | 2008-08-25 | 2012-02-14 | Vmware, Inc. | Tracking block-level changes using snapshots |
US8209513B2 (en) * | 2009-11-12 | 2012-06-26 | Autonomy, Inc. | Data processing system with application-controlled allocation of file storage space |
US8285692B2 (en) * | 2010-01-15 | 2012-10-09 | Oracle America, Inc. | Method and system for attribute encapsulated data resolution and transcoding |
US8949506B2 (en) * | 2010-07-30 | 2015-02-03 | Apple Inc. | Initiating wear leveling for a non-volatile memory |
US8812450B1 (en) | 2011-04-29 | 2014-08-19 | Netapp, Inc. | Systems and methods for instantaneous cloning |
US8539008B2 (en) * | 2011-04-29 | 2013-09-17 | Netapp, Inc. | Extent-based storage architecture |
US8745338B1 (en) | 2011-05-02 | 2014-06-03 | Netapp, Inc. | Overwriting part of compressed data without decompressing on-disk compressed data |
US8600949B2 (en) | 2011-06-21 | 2013-12-03 | Netapp, Inc. | Deduplication in an extent-based architecture |
US9367397B1 (en) * | 2011-12-20 | 2016-06-14 | Emc Corporation | Recovering data lost in data de-duplication system |
US10437470B1 (en) * | 2015-06-22 | 2019-10-08 | Amazon Technologies, Inc. | Disk space manager |
KR102468992B1 (ko) * | 2015-11-06 | 2022-11-22 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이의 동작 방법 |
US9588976B1 (en) * | 2016-07-22 | 2017-03-07 | Red Hat, Inc. | Delayed allocation for a direct access non-volatile file system |
US9886449B1 (en) * | 2016-07-22 | 2018-02-06 | Red Hat, Inc. | Delayed allocation for data object creation |
US10467196B2 (en) * | 2016-09-30 | 2019-11-05 | Napatech A/S | Prevention of disc fragmentation |
CN107122133B (zh) * | 2017-04-24 | 2020-08-07 | 珠海全志科技股份有限公司 | 数据存储方法及装置 |
US11086517B2 (en) * | 2018-10-30 | 2021-08-10 | International Business Machines Corporation | Page frame security |
CN110442555B (zh) * | 2019-07-26 | 2021-08-31 | 华中科技大学 | 一种选择性预留空间的减少碎片的方法及系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5218695A (en) * | 1990-02-05 | 1993-06-08 | Epoch Systems, Inc. | File server system having high-speed write execution |
JP3745398B2 (ja) * | 1994-06-17 | 2006-02-15 | 富士通株式会社 | ファイルのディスクブロック制御方式 |
JP3062050B2 (ja) * | 1995-07-21 | 2000-07-10 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | ディスク駆動制御方法及び装置 |
US5832525A (en) * | 1996-06-24 | 1998-11-03 | Sun Microsystems, Inc. | Disk fragmentation reduction using file allocation tables |
US6038636A (en) * | 1998-04-27 | 2000-03-14 | Lexmark International, Inc. | Method and apparatus for reclaiming and defragmenting a flash memory device |
US6389432B1 (en) * | 1999-04-05 | 2002-05-14 | Auspex Systems, Inc. | Intelligent virtual volume access |
US6640233B1 (en) * | 2000-08-18 | 2003-10-28 | Network Appliance, Inc. | Reserving file system blocks |
JP3592640B2 (ja) * | 2001-01-09 | 2004-11-24 | 株式会社東芝 | ディスク制御システムおよびディスク制御方法 |
US6745311B2 (en) * | 2001-01-24 | 2004-06-01 | Networks Associates Technology, Inc. | Method of allocating clusters of computer readable medium to a file while minimizing fragmentation of the computer readable medium |
US7797634B2 (en) * | 2002-10-31 | 2010-09-14 | Brocade Communications Systems, Inc. | Method and apparatus for displaying network fabric data |
-
2003
- 2003-10-30 JP JP2003369816A patent/JP2005135126A/ja active Pending
-
2004
- 2004-04-30 US US10/834,837 patent/US20050108296A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7869698B2 (en) | 2005-11-18 | 2011-01-11 | Kabushiki Kaisha Toshiba | Information recording/playback method and recording/playback apparatus |
JP2014071905A (ja) * | 2012-09-28 | 2014-04-21 | Samsung Electronics Co Ltd | コンピュータシステム及びコンピュータシステムのデータ管理方法 |
JP2015072643A (ja) * | 2013-10-04 | 2015-04-16 | 株式会社 日立産業制御ソリューションズ | コンテンツ配信装置及びコンテンツ配信装置のコンテンツ配信方法 |
JP2015203908A (ja) * | 2014-04-11 | 2015-11-16 | 富士通株式会社 | ストレージ管理装置及びストレージ管理プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20050108296A1 (en) | 2005-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005135126A (ja) | フラグメント防止ファイルシステム | |
US10409508B2 (en) | Updating of pinned storage in flash based on changes to flash-to-disk capacity ratio | |
US7631148B2 (en) | Adaptive file readahead based on multiple factors | |
US8850124B1 (en) | Method, system, apparatus, and computer-readable medium for implementing caching in a storage system | |
US6836819B2 (en) | Automated on-line capacity expansion method for storage device | |
US6473775B1 (en) | System and method for growing differential file on a base volume of a snapshot | |
US9805055B2 (en) | Method and apparatus for reading data in distributed file system | |
US9424314B2 (en) | Method and apparatus for joining read requests | |
EP0703526A2 (en) | Storage management system for concurrent generation and fair allocation of disk space | |
US20060190510A1 (en) | Write barrier for data storage integrity | |
US7305537B1 (en) | Method and system for I/O scheduler activations | |
JP2004110218A (ja) | Dbms向け仮想ボリューム作成・管理方法 | |
JP2007133471A (ja) | ストレージ装置及びスナップショットのリストア方法 | |
US9307024B2 (en) | Efficient storage of small random changes to data on disk | |
US20150293719A1 (en) | Storage Space Processing Method and Apparatus, and Non-Volatile Computer Readable Storage Medium | |
US7441082B2 (en) | Storage-device resource allocation method and storage device | |
US8984235B2 (en) | Storage apparatus and control method for storage apparatus | |
JP2000305818A (ja) | チップカードのメモリ断片化解消(デフラグ) | |
CN107562654B (zh) | Io命令处理方法与装置 | |
CN111625477B (zh) | 访问擦除块的读请求的处理方法与装置 | |
JP2008198221A (ja) | 記憶装置の容量自動拡張方法 | |
JP2000322306A (ja) | ノード間共用ファイル制御方式 | |
JP5494363B2 (ja) | ファイル管理プログラム,ファイル管理方法およびファイル管理装置 | |
JP2010113727A (ja) | 制御方法及び記憶システム | |
JP2009151807A (ja) | 記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060320 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060421 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081224 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090219 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090317 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090818 |