ジャーナリングファイルシステムとは何ですか?

ジャーナリングファイルシステムの特集画像

すべてのオペレーティングシステムは、データを保存するために独自のファイルシステムを使用します。WindowsはNTFSを使用し、macOSはAPFS、ほとんどのLinuxディストリビューションはExt4を使用します。これらのファイルシステムは根本的に異なりますが、すべてのファイルシステムに共通して存在する機能がジャーナリングです。

ジャーナリングファイルシステムについて学び、日常のコンピューティングにどのように影響するのかを見ていきましょう。

ジャーナリングとは?

コンピュータ上のすべてのファイルを、ジャーナル、定期刊行物、または文書のユニークなライブラリカタログとして想像してみてください。カタログに新しい号を追加すると、その情報はわずかに変更されます。ライブラリ全体を探してエントリーを探す代わりに、関連するカタログを確認するだけで済みます。

コンピュータのファイルシステムのジャーナリングは非常に似たような仕組みです。その目的は、まだファイルシステムにコミットされていない変更を追跡することです。クラッシュや予期しないシャットダウンの後でも、データが破損する可能性が低く最新のファイルバージョンにアクセスできます。

ジャーナリングファイルシステムのイメージ

「ジャーナル」という用語は日記のアナロジーから来ています。日記のエントリーに記録された変更は、日付と時間で保存されます。同様に、ジャーナリングはファイルへのすべての更新をディスク上の隣接する部分に保存します。

これらの更新は物理的に互いの近くに配置される必要はありません。実際、ジャーナルファイルのエントリーはディスク全体に散らばっています。しかしそれらにランダムにアクセスするのではなく、日記のような順序で利用でき、何千倍もの高速です。

ジャーナリングファイルシステムのスキーマ

ジャーナリングは連続メモリ割り当てのおかげでファイルストレージの取得に多くの時間を節約します。

定義

オペレーティングシステムに応じて、異なる種類のジャーナルエントリーが存在します。これについて議論する前に、いくつかの数値用語を明確にする必要があります。

テビバイト(TiB): ギガバイトがどれほどのものかは皆知っています。テビバイト(TiB)は1024(= 210)ギガバイトに等しいです。TiBは、ファイルストレージの大きな値を表すためのデフォルトの単位の一つです。また、1 TiB = 1.09951テラバイト(TB)です。

ペビバイト(PiB): ペビバイト(PiB)は1024 TiBに等しく、およそ100万ギガバイト – 非常に大きな値です。

クラスター: データクラスターは、ファイルを保存するために使用できるディスクスペースの最小単位です。単一のセクターあたり512バイトから128セクターあたり64 KBまでの範囲です。

1. NTFS

新技術ファイルシステム(NTFS)は、MicrosoftのWindowsおよびWindows Server用のデフォルトのジャーナリングシステムです。ログファイルとチェックポイント情報を使用して、再起動後のファイルシステムの安定した値を復元します。

NTFSは大きなデータボリュームをサポートしています:4 KBのクラスターサイズの場合、16 TiBのデータを収容できます。64 KBのクラスターサイズ(最大)の場合、256 TiBのデータを意味し、256 TiBが最大ファイルサイズです。

現在、NTFSは「セルフヒーリングNTFS」として知られる方法を通じてファイルの破損をオンラインで修正します。Windows 10ユーザーは、古いWindowsバージョンで常に問題を引き起こしていたChkdskによるダウンタイムの経験を思い出すかもしれません。最新のセルフヒーリングNTFSアップデートでは、問題がオンラインで解決され、ダウンタイムは発生しません。

関連記事を読む: FAT32 vs. exFAT vs. NTFS: 違いは何ですか?

2. Ext

拡張ファイルシステム(ext)は、最初からLinuxのジャーナリングシステムです。Unixファイルシステム(UFS)に触発されており、1990年代初頭の登場以来、他の3つの反復を経ています。

  • ext2: 元々DebianおよびRed Hat Linuxで使用されていたext2は、現在でもSDカードやUSBドライブなどのフラッシュメディアで使用されています。最大クラスターサイズが8 KBのとき、2から32 TiBのデータを収容できます。
  • ext3: 第三の拡張ファイルシステムであるext3はLinux、BSD、およびReactOSで使用されてきました。サイズ制限はext2と似ています。
  • ext4: 拡張ファイルシステムの最新バージョンで、Googleファイルストレージ、BSD、PowerPC、ほとんどの現在のLinuxディストリビューションで使用されています。サイズ制限は1024 PiB、つまり約100万TiBに等しいです。最大クラスターサイズは64 KBです。

ext4はジャーナル内のチェックサムを使用して信頼性を向上させます。それにより、ジャーナリング中にディスクのI/O待機を安全に避け、ディスクのパフォーマンスをわずかに向上させることが可能です。

3. APFS

Appleファイルシステム(APFS)はmacOS High Sierra、iOS 10.3以降、およびいくつかの他のシステムと共に使用されます。最大8000 PiB(263バイト)をサポートし、これはext4の約8倍です。

ジャーナリングファイルシステムのAPFS

APFSの主な機能は多く、特定の時点でのシステムの「スナップショット」を作成することなどが含まれます。NTFSと同様に、データの整合性を確保するためのチェックサムを使用し、「コピーオンライター」と呼ばれるアプローチを使用してシステムクラッシュから保護します。APFSは完全なディスク暗号化を使用しています。

結論

ファイルシステムのジャーナリングは、システムクラッシュや予期しないシャットダウンに対する基本的な保険です。変更をすばやくジャーナルに書き込むことによって、すべてのファイルの変更が記録され、電源シャットダウンやコンピュータのクラッシュの際に失われないようにすることができます。

ここで議論されたもの以外にも、多くのジャーナルファイルシステムがあります。Oracle、VMware、BSD、Cisco、Solarisなど、多くの他のシステムには独自のプロプライエタリジャーナルユニットがあります。