XFSとbtrfsファイルシステム

はじめに

第21章はじめに

XFSとbtrfsファイルシステムは、エンタープライズLinuxディストリビューションにおいて優位なext4に対抗する重要なファイルシステムになってきています。これらの次世代ファイルシステムは、複数の物理および論理ボリュームにまたがる大きなサイズの処理とパフォーマンス性能に関して、堅牢な機能を備えています。


学習目標
この章の終わりまでに、次のことができるようになります。

XFSファイルシステムについて説明できます。
XFSファイルシステムを保守できます。
btrfsファイルシステムについて説明できます。


XFSとbtrfsファイルシステム

XFS
XFSファイルシステムはSilicon Graphics Inc.（SGI）によって設計・開発され、IRIXオペレーティング システムで使用され、その後Linuxに移植されました。SGIシステムの大規模なデータ セットを処理し、並列I/Oタスクを非常に効率的に処理するように設計されています。

以下を処理できます。

ファイルシステム全体で最大16EB（エクサバイト）。
個々のファイルに対して最大8EB。

高性能であることはXFSの極めて重要な設計要素の1つであり、次のメソッドを実装しています。

DMA（Direct Memory Access）I/Oの採用
I/O性能の保証
基盤となるRAIDまたはLVMのストレージ デバイスに一致するように、ストライプ サイズを調整。

他のLinuxファイルシステムとは異なり、XFSはクォータ情報をジャーナルに保管することもできます。これにより、クォータが有効なファイルシステムが正しくアンマウントされた時には、リカバリ時間が短縮されます。さらに、ジャーナルは外部デバイス上にある場合もあります。

他のUNIXとLinuxのファイルシステムと同様に、XFSは拡張属性をサポートしています。

XFSファイルシステムのメンテナンスは、ほとんどのメンテナンス作業をオンラインで（つまり、ファイルシステムがすべてマウントされている間に）実行できるので、簡単に行えます。このディレクトリには以下が含まれます。

デフラグ
サイズ変更（拡大のみ）
ダンプ／復元。

バックアップと復元は、もともとXFSにある以下のユーティリティを使用して実行できます。

xfsdump
xfsrestore

これらは、任意の時点で停止したり再開したりすることができます。これらのユーティリティ プログラムもマルチスレッドであるため、XFSのダンプと復元は非常に迅速に実行できます。

従来のクォータ コマンドを使用して、XFSボリューム上のファイルシステムごとのクォータを操作できます。ただし、xfs_quotaコマンドを使用する場合は、XFSがサポートするディレクトリごとのクォータを使用できます。

XFSファイルシステムは、ハードウェアまたはソフトウェアのスナップショットを直接サポートしていません。ただし、xfs_freezeユーティリティを使用してファイルシステムを静止させ、基盤となるデバイスでスナップショット ツールを動作させることができます。Linux LVMツールは、xfs_freezeを使用して、スナップショットを取るためにXFSファイルシステムを静止します。


btrfs
Linux開発者と、高性能と大容量、もしくは特殊なニーズを持つLinuxユーザーの両方が、Chris Masonが作成したbtrfs filesytemの開発と段階的なデプロイに注目しています。btrfsは、B-tree file systemの略です。完全なドキュメントは、btrfs wikiページにあります。

btrfsは、ext4など他のLinuxファイルシステムでのプーリング、スナップショット、チェックサム、および統合マルチ デバイス スパニングの不足に対処することを目的としています。このような機能は、Linuxが大規模なエンタープライズ ストレージ構成へと拡張していくためには重要です。

btrfsはメインライン カーネル2.6.29から含まれていますが、一般的には実験的なものと見なされています。ただし、一部のベンダーはこれを新しい製品で使用しており、SLESとOpenSUSEではデフォルトのルート ファイルシステムになっています。

主な機能の1つは、ファイルシステム全体のスナップショットを頻繁に取得できる、またはファイルシステム全体のサブボリュームをほぼ瞬時に取得できることです。btrfsはCOW手法（Copy on Write）を広範囲に使用するため、このようなスナップショットには、データ ブロックの初期領域と、メタデータ更新を除くIOアクティビティは含まれません。

以前のスナップショットで表わされた状態に簡単に戻すことができますし、以前のルート ファイルシステムのスナップショットからカーネルを再起動させることもできます。

btrfsは、LVM（Logical Volume Management）と同様に、既存のファイルシステムに新しいパーティションや物理メディアを追加または削除するための、独自の内部フレームワークを持っています。

btrfsが、重要なファイルシステムとして日常使いされるようになるには、一部のbtrfs機能の開発が終了する必要があります。btrfsの開発履歴と予想される進化の報告については、カーネル開発のウェブ ページを参照してください。


演習

演習 21.1. XFSについて、もっと知る

🚩
以下のPDFドキュメントに埋め込まれた外部URLにアクセスする場合は、常に右クリックして新しいタブまたはウィンドウで開いてください。直接クリックしてURLを開こうとすると、コース ウィンドウ／タブが閉じます。

【【これ以降は橋本さんの訳を挿入】】

Please Note

We do not have a detailed lab exercise you can do withxfs; many systems still will not have the kernel modules and relevant user utilities installed.  However, if your Linux kernel and distribution does support it, you can easily create a filesystem with mkfs -t xfs.

You can find out about availablexfs-related utilities with:

$ man -k xfs

attr (1)             - extended attributes on XFS filesystem objects
filesystems (5)      - Linux file-system types: minix, ext, ext2, ext3, ext4,...
fs (5)               - Linux file-system types: minix, ext, ext2, ext3, ext4,...
fsck.xfs (8)         - do nothing, successfully
fsfreeze (8)         - suspend access to a filesystem (Linux Ext3/4, ReiserFS...
mkfs.xfs (8)         - construct an XFS filesystem
pmdaxfs (1)          - XFS filesystem performance metrics domain agent (PMDA)
xfs (5)              - layout of the XFS filesystem
xfs_admin (8)        - change parameters of an XFS filesystem
xfs_bmap (8)         - print block mapping for an XFS file
xfs_copy (8)         - copy the contents of an XFS filesystem
xfs_db (8)           - debug an XFS filesystem
xfs_estimate (8)     - estimate the space that an XFS filesystem will take
xfs_freeze (8)       - suspend access to an XFS filesystem
xfs_fsr (8)          - filesystem reorganizer for XFS
xfs_growfs (8)       - expand an XFS filesystem
xfs_info (8)         - expand an XFS filesystem
xfs_io (8)           - debug the I/O path of an XFS filesystem
xfs_logprint (8)     - print the log of an XFS filesystem
xfs_mdrestore (8)    - restores an XFS metadump image to a filesystem image
xfs_metadump (8)     - copy XFS filesystem metadata to a file
xfs_mkfile (8)       - create an XFS file
xfs_ncheck (8)       - generate pathnames from i-numbers for XFS
xfs_quota (8)        - manage use of quota on XFS filesystems
xfs_repair (8)       - repair an XFS filesystem
xfs_rtcp (8)         - XFS realtime copy command
xfsdump (8)          - XFS filesystem incremental dump utility
xfsinvutil (8)       - xfsdump inventory database checking and pruning utility
xfsrestore (8)       - XFS filesystem incremental restore utility
xqmstats (8)         - Display XFS quota manager statistics from /proc

Read about these utility programs and see if you can play with them on the filesystem you created.


演習 21.2. btrfs について、もっと知る

🚩
以下のPDFドキュメントに埋め込まれた外部URLにアクセスする場合は、常に右クリックして新しいタブまたはウィンドウで開いてください。直接クリックしてURLを開こうとすると、コース ウィンドウ／タブが閉じます。

【【これ以降は橋本さんの訳を挿入】】

Please Note

We do not have a detailed lab exercise you can do with btrfs;  many systems still will not have the kernel modules and relevant user utilities installed.  However, if your Linux kernel and distribution support it, you can easily create a filesystem with mkfs -t btrfs.

You can find out about availablebtrfs-related utilities with either just typingbtrfs:

$ btrf

susage: btrfs [--help] [--version] <group> [<group>...] <command> [<args>]

Command groups:
subvolume         manage subvolumes: create, delete, list, etc
filesystem        overall filesystem tasks and information 
balance           balance data across devices, or change block groups using filters
device            manage and query devices in the filesystem
scrub             verify checksums of data and metadata 
rescue            toolbox for specific rescue operations
inspect-internal  query various internal information
property          modify properties of filesystem objects
quota             manage filesystem quota settings
qgroup            manage quota groups
replace           replace a device in the filesystem

Commands:
check             Check structural integrity of a filesystem (unmounted).
restore           Try to restore files from a damaged filesystem (unmounted)
send              Send the subvolume(s) to stdout.
receive          Receive subvolumes from a stream
help              Display help information
version           Display btrfs-progs version

You can get quite a bit more detail by typing:

$ btrfs --help

Read about these utility programs and see if you can play with them on the filesystem you created.
The command

$ man -k btrfs

also generates a lot of information:
btrfs-image (8)      - create/restore an image of the filesystem
btrfs-show (8)       - scan the /dev directory for btrfs partitions and print re...
btrfsck (8)          - check a btrfs filesystem
btrfsctl (8)         - control a btrfs filesystem
mkfs.btrfs (8)       - create an btrfs filesystem
btrfs (5)            - topics about the BTRFS filesystem (mount options, support...
btrfs (8)            - a toolbox to manage btrfs filesystems
btrfs-balance (8)    - balance block groups on a btrfs filesystem
....


知識チェック

「第21章 - XFSとbtrfsファイルシステム」を完遂しました。おめでとうございます。このクイズに答えて、これまでに学んだ概念の理解度をチェックしてください。

クイズ開始

問題 21.1
XFSファイルシステムにおいて、バックアップ用のデフォルトのツールは何ですか？

A. xfsrestore
B. xfsdump
C. xfs_freeze
D. xfs_quota

問題 21.2
XFSファイルシステムにおいて、復元用のデフォルトのツールは何ですか？

A. xfsdump
B. xfs_freeze
C. xfs_quota
D. xfsrestore

