GNU/Linux >> Linux の 問題 >  >> Linux

Linuxファイルシステムの種類の説明、どちらを使用する必要があるか

Linuxは、ext4、ZFS、XFS、Btrfs、Reiser4などのさまざまなファイルシステムをサポートしています。さまざまな種類のファイルシステムがさまざまな問題を解決し、その使用法はアプリケーション固有です。

アプリケーションにLinuxファイルシステムを選択することは重要な決定です。このチュートリアルでは、主要なLinuxファイルシステムのいくつかについて説明し、アプリケーションに適した適切なファイルシステムに関する推奨事項を示します。

Linuxファイルシステムとは

Linuxシステムを起動して動作を維持するために必要なデータとプログラミングのほとんどすべてがファイルシステムに保存されます。たとえば、オペレーティングシステム自体、コンパイラ、アプリケーションプログラム、共有ライブラリ、構成ファイル、ログファイル、メディアマウントポイントなどです。

ファイルシステムはバックグラウンドで動作します。他のオペレーティングシステムのカーネルと同様に、日常の使用ではほとんど見えません。

Linuxファイルシステムは通常、ストレージデータ管理を処理するために使用されるLinuxオペレーティングシステムの組み込みレイヤーです。データの保存方法と取得方法を制御します。

さらに、ファイル名、ファイルサイズ、作成日、およびファイルに関する詳細情報を管理します。

Ext4ファイルシステム

1992年に、拡張ファイルシステムまたはextがLinuxオペレーティングシステム専用にリリースされました。 Minixオペレーティングシステムにルーツがあります。 1993年に、Extended File System 2またはext2と呼ばれるアップデートがリリースされ、長年にわたって多くのLinuxディストリビューションのデフォルトのファイルシステムでした。

2001年までに、ext2はext3にアップグレードされ、クラッシュや電源障害による破損から保護するためのジャーナリングが導入されました。

Ext4(Fourth Extended Filesystem)は2008年に導入され、2010年からデフォルトのLinuxファイルシステムになっています。ext3ファイルシステムのプログレッシブリビジョンとして設計され、ext3のいくつかの制限を克服しました。

その結果、ext4には、設計の改善、パフォーマンス、信頼性の向上、新機能など、以前のバージョンに比べて大きな利点があります。

現在、ext4はほとんどのLinuxディストリビューションのデフォルトのファイルシステムです。最大16テラバイトの大きなファイルとファイルシステムをサポートできます。

また、無制限の数のサブディレクトリをサポートします(ext3ファイルシステムは最大32,000までしかサポートしません)。さらに、ext4はext3およびext2と下位互換性があるため、これらの古いバージョンをext4ドライバーでマウントできます。

ほとんどのLinuxディストリビューションでext4がデフォルトの選択肢であるのには理由があります。試行錯誤され、安定しており、優れたパフォーマンスを発揮し、広くサポートされています。したがって、安定性を求めているのであれば、ext4が最適なLinuxファイルシステムです。

その機能にもかかわらず、ext4は透過的な圧縮、透過的な暗号化、またはデータ重複排除をサポートしていません。

XFSファイルシステム

XFSは、Silicon Graphicsによって開発され、1994年にUnixベースのIRIXオペレーティングシステムに最初に導入された高度にスケーラブルなファイルシステムです。これはジャーナリングファイルシステムであるため、メインに変更をコミットする前にログ内の変更を追跡します。ファイルシステム。

この利点は、ファイルシステムの一貫性が保証され、電源障害やシステムクラッシュが発生した場合の迅速なリカバリです。

当初、XFSは非常に大規模なファイルシステムをサポートするために作成されました 最大16エクサバイトのサイズと最大8エクサバイトのファイルサイズ。その結果、大規模なサーバーやストレージアレイで実行されてきた長い歴史があります。

XFSの注目すべき機能の1つは、保証レートIOです。これにより、アプリケーションは帯域幅を予約できます。ファイルシステムは、利用可能なパフォーマンスを計算し、既存の予約に従ってその動作を調整します。

XFSは、高いパフォーマンスとスケーラビリティを必要とする環境で動作することで定評があり、したがって、エンタープライズワークロードを備えた大規模システムで最もパフォーマンスの高いファイルシステムの1つとして日常的に測定されています。

現在、XFSはほとんどのLinuxディストリビューションでサポートされており、Red Hat Enterprise Linux、Oracle Linux、CentOS、およびその他の多くのディストリビューションのデフォルトのファイルシステムになっています。

XFSファイルシステムのベストユースケース

それで、あなたは大きなサーバーを持っていますか?大容量のストレージが必要ですか、それともローカルの低速SATAドライブがありますか?

サーバーとストレージデバイスの両方が大きく、ファイルシステムのサイズを小さくする必要がない場合は、XFSが最適な選択肢となる可能性があります。

XFSは優れたファイルシステムであり、大規模なサーバーに適しています。ただし、ストレージアレイが小さい場合でも、平均ファイルサイズが大きい場合(たとえば、サイズが数百メガバイトの場合)、XFSは非常に優れたパフォーマンスを発揮します。

Btrfsファイルシステム

Btrfsは、高度な統合デバイス管理、スケーラビリティ、信頼性などの独自の機能を提供する次世代の汎用Linuxファイルシステムです。これはGPLの下でライセンスされており、誰からの寄付も受け付けています。ファイルシステムには、「Butter FS」、「B-tree FS」、「BetterFS」などのさまざまな名前が使用されています。

Btrfsの開発は2007年にOracleで開始されました。2009年にメインラインのLinuxカーネルに統合され、Linux2.6.29リリースでデビューしました。

Btrfsは、ほとんどのLinuxディストリビューションで使用されているデフォルトのext4ファイルシステムの後継ではありませんが、スケーラビリティと信頼性が向上しています。代わりに、Btrfsは、現在のLinuxファイルシステムのさまざまな弱点に対処することを目的としたコピーオンライト(CoW)ファイルシステムです。

Btrfsは主に焦点 フォールトトレランス、自己回復特性、および簡単な管理について。

Btrfsは、最大16エクスビバイトのパーティションと同じサイズのファイルをサポートできます。したがって、数字に戸惑う場合は、BtrfsがExt4の最大16倍のデータをサポートできることを知っておく必要があります。

コピーオンライトはどのように機能し、なぜそれが必要なのか

従来のファイルシステムでは、ファイルを変更すると、データが読み取られ、変更されてから、同じ場所に書き戻されます。コピーオンライトファイルシステムでは、データを読み取り、変更して、新しい場所に書き込みます。これにより、データは常にディスク上にあるため、読み取り-変更-書き込みトランザクション中のデータ損失が防止されます。

新しいブロックが完全に書き出されるまで「リポイント」しないため、書き込みの途中で電源が切れたりクラッシュしたりすると、古いブロックまたは新しいブロックのいずれかになりますが、半分書かれた破損はありませんブロック。したがって、fsckを実行する必要はありません。 起動時にファイルシステムを使用すると、データ破損のリスクを軽減できます。

ファイルシステムはいつでもスナップショットを作成でき、現在のポインターのセットを使用してメタデータにスナップショットエントリを作成できます。

これにより、古いブロックが後でガベージコレクションされるのを防ぎ、ファイルシステムがスナップショット中のボリュームを表示できるようにします。つまり、インスタントロールバック機能があります。そのボリュームのクローンを作成して、スナップショットに基づいて書き込み可能なボリュームにすることもできます。

もう1つの選択肢はLinux上のZFSです。これはより安定している可能性がありますが、一般的なLinuxディストリビューションにインストールするにはさらにいくつかの手順が必要です。

Btrfsの機能

  • コピーオンライト(CoW)とスナップショット –「ホット」なファイルシステムまたは仮想マシン(VM)からでも増分バックアップを簡単に作成できます。
  • ファイルレベルのチェックサム –各ファイルのメタデータには、エラーの検出と修復に使用されるチェックサムが含まれています。
  • 圧縮 –ファイルはその場で圧縮および解凍できるため、読み取りパフォーマンスが向上します。
  • 自動最適化 –バックグラウンドスレッドは、使用中にファイルシステムを調整します。
  • サブボリューム –ファイルシステムは、パーティションに配置する代わりに、単一のスペースプールを共有できます。
  • RAID – BtrfsはRAID実装を行うため、LVMまたはmdadmにRAIDが必要なわけではありません。現在、RAID 0、1、および10がサポートされています。 RAID5および6は不安定であると見なされます。
  • パーティションはオプションです – Btrfsはパーティションを操作できますが、rawデバイス(/ dev / )を直接使用する可能性があります。
  • データ重複排除 –データ重複排除のサポートは限られています。ただし、重複排除は最終的にBtrfsの標準機能になります。これにより、Btrfsはバイナリ差分を介してファイルを比較することでスペースを節約できます。

Btrfsは、一度実装すると管理を必要としないファイルシステムです。したがって、fsckを実行する必要はありません。 その上でコマンド。エラーや不整合が発生した場合は、それを処理して処理を進める必要があります。

Btrfsはまだ実験的であり、現在活発に開発されていることは事実ですが、BtrfsがLinuxシステムのデフォルトのファイルシステムになる時期が近づいています。一部のLinuxディストリビューションは、現在のリリースですでにそれに切り替え始めています。

やや成熟度の低いエコシステムに対処することを恐れていない場合は、Btrfsの方が適している可能性があります。

ZFSファイルシステム

ZFS(Zettabyte File System)は、2005年10月に登場して以来、最も技術的に高度で機能が充実したファイルシステムの1つです。これは、Sun Microsystemsによって作成されたローカルファイルシステム(つまり、ext4)および論理ボリュームマネージャー(つまり、LVM)です。

ZFSは、OracleがSun Microsystemsを買収してライセンスを閉じるまで、オープンソースライセンスの下で公開されていました。

ZFSはボリュームマネージャーとRAIDアレイを1つにまとめたものと考えることができます 、これにより、ZFSボリュームに追加のディスクを追加できるようになり、ファイルシステムに追加のスペースを追加できるようになります。さらに、ZFSには、従来のRAIDにはない他の機能がいくつか付属しています。

ZFSはメモリに大きく依存するため、起動するには少なくとも8GBが必要です。実際には、ハードウェア/予算に可能な限り使用してください。

ZFSは、クラウドではなく独自の冗長ストレージシステムに信頼を置くことを好むデータ貯蔵者、NASユーザー、およびその他のオタクによって一般的に使用されます。これは、データの複数のディスクを管理するための素晴らしいファイルシステムであり、優れたRAIDセットアップのいくつかに匹敵します。

ZFSは他のストレージ管理アプローチと似ていますが、いくつかの点で根本的に異なります。たとえば、ZFSは通常Linux論理ボリュームマネージャー(LVM)またはディスクパーティションを使用しません。一般に、zpool用のメディアを準備する前にパーティションとLVM構造を削除すると便利です。

zpoolはLVMのアナログです。 zpoolは1つ以上のストレージ・デバイスにまたがっており、zpoolのメンバーはさまざまなタイプのものである可能性があります。基本的なストレージ要素は、単一のデバイス、ミラー、およびraidzです。これらのストレージ要素はすべてvdevと呼ばれます。

ZFSは、ファイルシステム構造に関する深い知識を持っているため、どのRAIDコントローラーよりもはるかに優れたストレージ整合性を実現できます。その結果、データの安全性はZFSの重要な設計機能です。 zpoolに書き込まれたすべてのブロックは、データの一貫性と正確性を確保するために積極的にチェックサムされます。

データ損失の可能性をほぼ完全に排除したいサーバーの使用と安定性がゲームの名前である場合は、ZFSを調べることをお勧めします。

ZFS機能

無限のスケーラビリティ 。技術的には無限ではありませんが、ゼタバイト(10億テラバイト)のデータを管理できる128ビットのファイルシステムです。したがって、ハードドライブの容量に関係なく、ZFSはそれを管理するのに適しています。

最大限の整合性 。 ZFS内で行うすべてのことは、チェックサムを使用してファイルの整合性を保証します。その結果、ファイルとその冗長コピーでサイレントデータの破損が発生することはありませんのでご安心ください。また、ZFSはデータの整合性を静かにチェックしている間、可能な場合はいつでも自動修復を実行します。

ドライブプーリング 。 ZFSの作成者は、コンピューターがRAMを使用する方法に似ていると考えてほしいと考えています。コンピュータにさらにメモリが必要な場合は、別のスティックを挿入すれば完了です。

同様に、ZFSでは、より多くのハードドライブ容量が必要な場合は、別のハードドライブを挿入すれば完了です。ディスクのパーティション分割、フォーマット、初期化、またはその他の作業に時間を費やす必要はありません。より大きなストレージ「プール」が必要な場合は、ディスクを追加するだけです。

RAID 。 ZFSは、ハードウェアRAIDコントローラーと同等のパフォーマンスを提供しながら、さまざまなRAIDレベルに対応できます。これにより、コストを節約し、セットアップを容易にし、ZFSが改善した優れたRAIDレベルにアクセスできます。

Reiser4ファイルシステム

ReiserFSは、ハンスライザーが率いるNamesysのチームによって最初に設計および実装された、汎用のジャーナリングコンピュータファイルシステムです。 Linuxカーネルのバージョン2.4.1で導入された、これは標準カーネルに含まれる最初のジャーナリングファイルシステムでした。

セキュリティアップデートと重大なバグ修正を除いて、NamesysはReiserFSでの開発を中止しました。 Reiser4は、ReiserFSの後継ファイルシステムです。 暗号化が追加され、パフォーマンスが向上しました。

Reiser4にはパッチが適用されたカーネルが必要です。残念ながら、それはまだ公式のLinuxカーネルには含まれていませんが、Linux-5.xのパッチはすでに利用可能です。 Reiser4が今日Linuxカーネルにない理由は、さらなるテストが必要であるという主張として要約することができます。

Reiser4は、すべてのシナリオとワークロードのすべてのファイルシステムの中で最も効率的なディスクスペースの使用を提供します。 ReiserFSは、特に多数の小さなファイルを処理する場合に、他のファイルシステムよりも優れています。

問題が発生した場合の迅速な復旧のためのジャーナリングをサポートしています。ファイルシステムの構造はツリーに基づいています。さらに、Reiser4は他のファイルシステムよりも少し多くのCPUを消費します。

Reiser4には、小さなファイル(1ブロック未満)が占めるディスク容量を最適化する独自の機能があります。これは、データ領域にブロックを割り当てずに、完全にiノードに格納されるためです。

Reiser4は、従来のLinuxファイルシステム機能を実装するだけでなく、ファイルの透過的な圧縮と暗号化、完全なデータジャーナリング、ほぼ無制限の(プラグインアーキテクチャの助けを借りた)拡張性など、いくつかの追加機能をユーザーに提供します。

ただし、ダイレクトIO(実装の作業が開始されています)、クォータ、およびPOSIXACLはサポートされていません。

結論

特定のアプリケーションのニーズを満たすファイルシステムを選択するには、さまざまなパラメータの相談と調査が必要です。

この記事では、ext4、ZFS、XFS、Btrfs、およびReiser4ファイルシステムオプションの利点について概説し、アプリケーション環境に適したファイルシステムを決定するのに役立ちます。

ここでお時間を割いていただきありがとうございます。


Linux
  1. どのオープンソースバックアップソリューションを使用していますか?

  2. どのLinuxターミナルコマンドを最もよく使用しますか?

  3. OSX と Linux の間で使用するファイル システム

  1. Linuxコンテナを最初に使用したワークロードはどれですか?

  2. 絶対に使用してはならない3つのLinuxコマンド

  3. なぜsudoを使用する必要があるのですか?

  1. 私がManjaroLinuxを使用する7つの理由とあなたも

  2. Linuxではどのくらいのスワップを使用する必要がありますか?

  3. Visual Studio CodeまたはAtom?どのコードエディタを使用する必要がありますか?