blog

ログ・ファイル・システムの深層

ログファイルシステムは、ログと呼ばれるトレースファイルを記録する特別なタイプのファイルシステムです。ログはシステムが異常終了時に発生する不整合を修正することを可能にします。これは、メインファイルシステ...

May 22, 2014 · 8 min. read
シェア

平たく言えば、コンピュータのファイルシステムとは、ディスクのようなストレージデバイスがファイルを保存、検索、管理する方法のことです。ファイルシステムは、ファイル自体の各バイトとストレージデバイス上の位置を記録するだけでなく、ファイル関連の情報も保存する必要があります。たとえば、各ファイルの名前、ファイルが保存されている階層、ファイルの更新日時などのメタデータも保存する必要があります。

linuxで利用可能なファイルシステムには多くの種類がありますが、大多数のユーザーはどれを使うかについてほとんど注意を払っておらず、通常は無視されています。使用するファイルシステムの選択は状況によって異なり、考慮すべき関連要素には互換性、パフォーマンス、リストア機能、使用するメディア、ストレージメディアのサイズと数、機能、セキュリティの考慮などがあります。

ログ・ファイル・システムは、ログと呼ばれるトレース・ファイルを記録する特殊なタイプのファイル・システムです。ログは、システムが異常終了時に発生する不整合を修正することを可能にします。これは、メイン・ファイル・システムにコミットされた変更を追跡することによって行われます。コンピュータが異常終了した場合、失われたデータを再構築することができます。その結果、このファイルシステムは損傷を受ける可能性が低くなり、ファイルシステムが迅速に作業を再開できるようになります。

ログファイルシステムを使用する際のヒントとなるよう、優先リストを作成しました。

では、ログファイルシステムについて説明しましょう。

  • ext3 多くの一般的なLinuxディストリビューションのデフォルトファイルシステム。
  • XFS 高性能と大容量ファイル用に設計されたファイルシステム。
  • Btrfs 校正コピーオンライト・ファイルシステム
  • ext4 は、多くの重要な機能と拡張を備えた ext3 から進化したファイルシステムです。

エクストスリー

ext3(第3の拡張ファイルシステム)は、Linuxカーネルでよく使われるジャーナリングファイルシステムです。ロギング機能は、fsckのために長時間待つ必要がなく、メタデータの破損を心配する必要がないことを意味します。

Ext3がデフォルトで%5の空き領域を確保する主な理由は、ファイルシステムがいっぱいになってもスーパーユーザがログインできるようにするためです。

エクストスリー

0.9.18

価格 : 無料ダウンロード

サイズ:13.8KB

プロトコル : GNU GPL

開発者 : Stephen Tweedie

ウェブサイト ftp://ftp.kernel.org/

サポート : FAQ, メーリングリスト

特徴は以下の通り。

  • シンプル、堅牢、スケーラブル
  • カーネルとユーザー空間のコードは広範囲にテストされています。
  • ext2に追加された機能
    • ロギング:信頼性が向上し、異常終了後にファイルシステムをチェックする必要がなくなりました。
    • 様々なロギングモード:ログ、順序付き、ライトバック
    • ファイルシステムの再マウント時の自動リカバリ
    • すべてのVFS操作はログに記録されます。
    • データ追加の更新もログに記録
    • オンライン・ファイルシステム拡張
    • 大規模ディレクトリでのHtreeインデックスの使用
  • 拡張プロパティ・ブロックと大量のinode
  • オンライン・ファイルシステムのリサイズをサポート
  • ハッシュ・インデックスのカタログ
  • ログはファイル/デバイスの両方でサポートされています。
  • カタログエントリーにファイルタイプを記録
  • ログ回復の依存関係
  • ブロックグループのバックアップの削減
  • スーパーブロックバックアップの削減
  • ファイルサイズは2GB以上
  • パーティションのバックアップ、リストア、フォーマットが不要で、ext2からのファイルシステム移行が容易。
  • UNIXのパーミッション、ACL、その他のセキュリティ属性

エックスエフエス

XFS は、Silicon Graphics 社によって開発された、ファイルシステムの一貫性をサポートする 64 ビットの高性能ジャーナリングファイルシステムです。IRIX 5.3 以降のバージョンではデフォルトのファイルシステムであり、後に Linux カーネルに移植されました。

XFSは、先進のロギング技術と、完全な64ビットアドレッシング、スケーラブルなデータ構造とアルゴリズムを組み合わせています。

XFSは、Linux 2.4以降、公式Linuxカーネルツリーに含まれています。最近のLinuxディストリビューションはすべてXFSをサポートしています。

特徴は以下の通り。

  • 高速リカバリ - 予定外の中断後の再起動は、管理ファイル数に関係なく非常に高速です。
  • 高速トランザクション - データの読み取りと書き込みのトランザクション中のロギングによるパフォーマンスへの影響を最小限に抑えながら、優れたロギングを提供します。
  • 大規模なスケーラビリティ - 最大8 EiBまでのファイルシステムをサポート - 1
  • 効率的な割り当て - 極めて複雑なスペース管理技術の実現
  • 優れた帯域幅利用 - 基礎となるハードウェア自体に非常に近いI/O性能を提供可能
  • 実際のディスク・ブロックが更新される前に、まず連続ログを書き込んでファイル・システムを更新する、ログ記録されたファイル・システム・メタデータを提供します。
  • ファイルシステムのマウントボリュームの増加をサポートし、ファイルシステムの「フリーズ」と「アンフリーズ」操作を可能にします。 ボリュームレベルのスナップショットをサポートし、オンラインファイルデフラグツールを提供します。
  • 完全なロギング拡張プロパティの実装
  • POSIX 1003.1eドラフト標準におけるACLセマンティクスとインターフェース記述のサポート
  • NFS互換
  • オープンソースのSambaサービスを使用したMicrosoft WindowsシステムへのXFSファイルシステムのエクスポート
  • データ管理APIにより、カーネルを変更することなく階層型ストレージ管理ソフトウェアを実装可能
  • ライブ・サブボリューム "のコンセプトをサポートします。

ビーティーエフ

Btrfs(B-treeファイルシステム)はLinuxのコピーオンライトファイルシステムです。コピーオンライトは、データの集まりのコピーを維持し、同じデータを複数のタスクに使用する際のリソースを管理するための最適化された技術です。

このログファイルシステムの目的は、より効率的なストレージ管理と、より優れたデータ整合性機能をLinuxにもたらすことです。

Btrfs はフォールトトレランス、スケーラビリティ、信頼性を維持しながら、先進的な機能をうまく実装しています。このファイルシステムは 2007 年から開発されており、その基本コードは現在、ディスクフォーマットが変更されることのない成熟度に達しています。ベースコードは現在も集中的に開発中です。

Btrfsは、Linux 2.6.29のリリースでデビューしました。Btrfsは最大264バイト、数百少ない特別なエントリーを扱うことができます。

特徴は以下の通り:

  • スケーラブルな64ビットファイルシステムで、ボリュームをまたいでファイルを配信可能。
  • 統合ボリューム管理
  • オンライン・ファイルシステムのデフラグ - ボリュームのデフラグは、ボリュームのマウント中またはオンライン中に実行できます。
  • オフラインファイルシステムチェック
  • オンライン取扱高の伸びと縮小
  • オンライン・ブロック・デバイスの追加と削除
  • オンラインバランシング
  • Bツリー構造を使用して、ディスクに保存されたデータ型と情報ポイントを保存します。
  • オンラインデータ消去は、エラーを検出し、自動的にファイルの冗長コピーを修復します。
  • より良いディスク割り当てのための遅延割り当て
    • 小さなファイルのスペース効率的なパッキング
    • スペース効率の良いディレクトリのインデックス作成
  • サブボリューム
  • 透過的圧縮
  • 書き込み可能なスナップショット、読み取り専用のスナップショットを簡単に使用できます。スナップショットディレクトリでは、スナップショットは一般的なディレクトリとみなされます
  • 送受信
  • データの一貫性.
    • 内蔵RAIDサポート.データ消去、特にRAID 1に使用可能。
    • フォールト・アイソレーションとチェックサム・アルゴリズム - フォールト・アイソレーションのため、ユーザー・データとは別に保存されたメタデータ。
    • データとメタデータのチェックサム、オプションでデータチェックサムオフ。
    • メタデータは、1つのデバイス上であっても、2つの場所に冗長に保存されます。
    • リビルド回数
    • 暗号化
  • ファイルのクローニング
  • ext3/4をその場でBTRFSに移行(ロールバック対応)
  • ファイルシステムシーディング
  • SSD 識別と最適化
  • ファイル・ストライピング、ファイル・イメージ、ファイル・ストライピング+イメージ、ストライピングのシングル・パリティとダブル・パリティ
  • サブボリュームごとの階層クォータ
  • 拡張子ベースのファイルストレージ
  • 乱用を防止するため、最小限のユーザー調整が可能

エクステンドフォー

ext4 は第4の拡張ファイルシステムとも呼ばれ、ext3 から発展した Linux のジャーナリングファイルシステムです。Linux カーネル 2.6.28 で安定しています。

ext4には、ext2やext3で使われていた従来のブロックマッピング方式に代わり、単一の連続したブロック記述子が採用されるなど、多くの重要な機能が追加されています。これは、より効率的な CPU 利用と、より少ないメタデータの入出力で、大きなファイルを表現する効率的な方法です。また、ファイルシステムのチェックサムがより高速になり、ファイルシステムのサイズ拡大に有利になります。

特徴は以下の通り。

  • 拡張プロパティ・ブロックと大量のinode
  • 拡張ディスク・フォーマット
  • オンラインデフラグ
  • オンライン・ファイルシステムの事前サイズ設定
  • ハッシュ・インデックス・カタログ
  • ファイル/デバイスのログ
  • カタログエントリーにファイルタイプを記録
  • ログによる回復
  • 文書配布のための拡張フォーマット
  • 232以上のファイルシステムブロックをサポート
  • ブロックグループのメタデータを柔軟に配置
  • ブロックグループのバックアップの削減
  • スーパーブロックバックアップの削減
  • ファイルサイズは2GB以上
  • グループ記述子チェックサム・スパース・インノード・テーブル
  • 32000以上のサブディレクトリ
  • inodeの特徴
    • より多くのinode
    • inode
    • ナノ秒のタイムスタンプと作成時間
  • ファイルサイズは2TiB以上
  • ログ検証 - ログデータを検証し、ログブロックが故障または破損しているかどうかを判断できます。
  • ログを閉じるオプション
  • 永続的な事前割り当て
  • ext2およびext3との下位互換性
  • 配信プログラム
    • 永続的な事前割り当て
    • 遅延割り当て
    • マルチブロック割り当て
    • チャンクされた知覚的割り当て
  • 拡張属性
  • クォータ・ログ

via:

Read next

アジャイル開発の理由

アジャイル開発に関連する情報を概観し、私が長期にわたってアジャイル開発を実践してきたことと合わせて、アジャイル開発の本質について考えてみたいと思います。本稿では、アジャイル開発の核心を整理し、そこからその価値を導き出すつもりです。このレンガを投げることで、玉の輿に乗れることを願っています。

May 22, 2014 · 6 min read