LinuxはBtrfsを介してファイルシステムのロギング機能を提供しますか?

LinuxはBtrfsを介してファイルシステムのロギング機能を提供しますか?

NTFSはジャーナルと呼ばれる機能を提供します。すべてのアプリケーションで行ったファイル名の変更/移動/削除などの記録だと思います。 Linux + BTRFSで同様のログまたはログを取得できますか? 1つのLinuxインストールでのみ使用される1つのBTRFSパーティション。

GoogleイメージのNTFSログの例: ここに画像の説明を入力してください。

ベストアンサー1

雑誌の目的を間違って理解していたようです。これはアプリケーションが実行した操作のログではなく、どのアプリケーションが変更を引き起こしたかを記録しません。ユーザーや管理者には適用されません。これはファイルシステムの内部ツールとして使用されます。

パフォーマンス上の理由から、ディスクへの書き込みが常に実行された順序で行われるわけではありません。すべての内容が記録される前に停電やシステムのクラッシュが原因でシステムがクラッシュした場合、ファイルシステムは一貫性のないままになる可能性があります。たとえば、あるディレクトリから別のディレクトリにファイルを移動すると、以前のディレクトリの内容を含むディスクブロックは書き込まれた可能性がありますが、新しいディレクトリの内容を含むディスクブロックはまだ書き込まれていません。この時点でシステムが停止すると、ファイルは両方のディレクトリで参照されなくなり、実際に失われます。

この問題を防ぐためのいくつかの技術があります(しばしば弾力ファイルシステム設計から)。 NTFSを含む多くのファイルシステムが使用されます。雑誌この目的のために。ログは、実行された順序でタスクを記録し、各タスクを追加します。原子的にしたがって、ログを読み取ると常に一貫した状態が生成されます。次のファイルシステムがあります。ログ構造ファイルシステムここで、ログはファイルシステムの内容に関するすべての情報が記録される場所です。他のシステム(NTFSを含む)では、最終的にすべての情報がログの外部に書き込まれます。ログには、「正常」位置に記録されていない最新の情報のみが含まれます。ファイルを読み取ると、ログにアクセスせずに通常の場所にあるデータに直接アクセスします。ログは、まだ実行されていない操作を完了するために、起動時に(より正確にはファイルシステムがマウントされたとき)にのみ読み取られます。

通常、ログ構造ではなくログファイルシステムの場合、ログには最新のジョブのみが含まれます。ログは通常スペースが制限されており、そのジョブがディスクに書き込まれると、以前のエントリを上書きできます。これは通常数秒以内に完了します。日記のサイズに比べて多くの活動がない場合は、まだ古い日記の項目を見ることができますが、これは信頼できるものではありません。

一部のLinuxファイルシステム(ext4など)はジャーナリングを使用します。しかし、Btrfsはそのうちの1つではありません。 Btrfsは次の方法で回復力を達成します。書き込み中のコピー。使用中のディスクブロックを上書きしません。更新するには、新しいデータで新しいブロックを作成し、更新する必要があるブロックの場所を含む場所に新しいブロックを作成し、その場所を含む場所に新しいブロックを作成します。ルートに到達したら、すべてのサブブロックが記録されていることを確認し、ルートを更新します。このように、ルートは常に有効なブロックを参照します。

LinuxまたはWindowsでファイル操作を追跡したい場合、ファイルシステムログはこれを行う方法ではありません。 Linuxの主なツールは次のとおりです。ロギングファイルシステムそして監査サブシステム。バラよりどのプログラムやスクリプトが特定のファイルを生成したかを調べることは可能ですか?そしてプログラムがアクセスするファイルのリスト

1これは、ディレクトリツリーのルートではなく、ブロックツリーのルートです。この詳細レベルでは違いは明確ではありません。

おすすめ記事