差分

ファイルシステム

183 バイト追加, 2021年11月17日 (水) 08:35
/* ファイルシステム */
;補足
: 次の解説も大変役に立ちます。 '' Linux ファイルシステムの徹底調査, 階層化構造からの検討, IBM developerWorks '' ([http://www.ibm.com/developerworks/jp/linux/library/l-linux-filesystem/ リンクリンク切れ]) ([https://developer.ibm.com/tutorials/l-linux-filesystem/ オリジナル英語版])
=== ツリー構造 ===
これらのファイルシステムは、それぞれ性能や機能に特徴があります。
ユーザの選択肢が広く、その選択をユーザにゆだねているのもまたLinuxの特徴です。
個々のファイルシステムの特徴に関しては後ほど説明します。
複数のファイルシステム方式があるのに、何故ユーザは統一したインタフェースでファイルにアクセスできるのでしょう?
それはVFS (Virtual File System)
<ref>VFSに関する資料 httphttps://wwwdeveloper.valinuxibm.cocom/tutorials/l-virtual-filesystem-switch/</ref><ref>Overview of the Linux Virtual File System https://www.jpkernel.org/docsdoc/pdfhtml/D-2latest/filesystems/vfs.pdfhtml</ref>
が用意されているからです。
VFSの下に位置するファイルシステムは、少なくともカーネルのソースコードをチェックする限り30以上あります。VFSの下に位置するファイルシステムは、少なくともカーネルのソースコードで数えた所、50以上ありました。<ref>httphttps://lxrgithub.linux.nocom/torvalds/#linux+v2.6.36/tree/master/fs/</ref>
個々のファイルシステムがどこまで利用可能なのか、つまり、常用のファイルシステムとして使えるのか、
互換性のために残しているのか、あるいは読み込みだけで書き込みができない、
あるいは一部の機能しか使えないなどに関しての資料が見当たらないので一概に30以上というのは不適切かも知れません。あるいは一部の機能しか使えないなどに関しての資料が見当たらないので一概に50以上というのは不適切かも知れません。次によく使われるファイルシステムを取り上げて説明してみましょう。しかし、数種類、あるいは十数種類というレベルではないことは確かです。 次に主要なファイルシステムを取り上げて説明します。
== ファイルシステム ==
ここでは下位レイヤでのファイルシステムを個別に説明します。
その前に、現在利用しているGNU/Linuxのシステムがどのようなファイルシステムをサポートしているのかを確認する時は [[/proc/filesystems ]] を参照するとわかります。
<pre class="bash">
最大ファイルシステムサイズ4TB、最大ファイルサイズ4TBまで扱えます。
 
=== ext4 ファイルシステム ===
 
 
ext4 は ext3 の後継として作られたファイルシステムです。カーネル2.6.19 から正式採用しています。ext4 のファイルシステムは1EB、ファイルサイズは16TBのサイズをサポートしています。
 
同時期に存在していた競合していたJFSやXFSファイルシステムから良い点を導入しするなど新しい機能や拡張を行い、また安定性も十分に備え、ext3に比べて大きく進化しています。
 
たとえばパフォーマンスに関してはブロックの遅延アロケーションが可能になりました。これはなるべくディスク上の物理ブロックを連続に確保するために書き込みを遅滞させます。連続した物理ブロックに書き込むことが出来るようになり、その後にファイルをリードする際に高速に読み込むことが出来るようになります。ファイルサイズが最初にわかっている場合はファイルのプリアロケーションの機能を使いディスク上の物理ブロックを予め確保することが出来ます。
 
他にもたくさんの新しい機能があります。調べるには下記の資料が役に立つでしょう。
 
 
* RED HAT ENTERPRISE LINUX ストレージ管理ガイド [https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/storage_administration_guide/ch-ext4 第6章 EXT4 ファイルシステム]
 
* AAnatomy of ext4 [https://developer.ibm.com/tutorials/l-anatomy-ext4/ Anatomy of ext4 ]
=== JFS / ReiserFS / XFS ===
ext3と比べるべきファイルシステムとしてIBM社が開発したJFSファイルシステムext4と比べるべきファイルシステムとして過去IBM社が開発しLinuxカーネルにマージされているJFSファイルシステム
<ref>
JFS概説JFSジャーナル・ファイル・システムによるシステム再始動時間の短縮httphttps://wwwwiki.ibmarchlinux.com/developerworks/jp/linuxindex.php/library/l-jfs.htmlJFS
</ref>
ReiserFS ファイルシステム、
あるいはシリコングラフィックス社が開発したXFSファイルシステムあるいは過去シリコングラフィックス社が開発しLinuxカーネルにマージされているXFSファイルシステム
<ref>
http://xfs.org/index.php/Main_Page
熟練オペレーターによる運用が行われる場合、これらのエンタープライズ環境で必須な障害からの復帰などの能力や特性を十分に活かすことが出来るでしょう。
; 補足 : 日常利用するディスクトップのレベルであれば、GNU/Linuxのディストリビューションがデフォルトで選択するファイルシステムで十分な能力を発揮します。 === ext4 ===  ext4 は ext3 の後継として作られたファイルシステムです。カーネル2.6.19 から正式採用しています。ext4 のファイルシステムは1EB、ファイルサイズは16TBのサイズをサポートしています。 同時期に存在していた競合していたJFSやXFSファイルシステムから良い点を導入しするなど新しい機能や拡張を行い、また安定性も十分に備え、ext3に比べて大きく進化しています。 たとえばパフォーマンスに関してはブロックの遅延アロケーションが可能になりました。これはなるべくディスク上の物理ブロックを連続に確保するために書き込みを遅滞させます。連続した物理ブロックに書き込むことが出来るようになり、その後にファイルをリードする際に高速に読み込むことが出来るようになります。ファイルサイズが最初にわかっている場合はファイルのプリアロケーションの機能を使いディスク上の物理ブロックを予め確保することが出来ます。 他にもたくさんの新しい機能があります。調べるには下記の資料が役に立つでしょう。  * RED HAT ENTERPRISE LINUX ストレージ管理ガイド [https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/storage_administration_guide/ch-ext4 第6章 EXT4 ファイルシステム] * IBM seveloperWorks チュートリアル Linux ext4 の徹底調査 [https://www.ibm.com/developerworks/jp/linux/library/l-anatomy-ext4/index.html 第 4 世代拡張ファイルシステム、ext4 の紹介 ]Linuxのディストリビューショ
=== Reiser4 / NILFS2 / Btrfs ===