XFS
XFS ファイルシステムは、高性能なジャーナリングファイルシステムです。Linux での使用のために ACL (POSIX) に対応しています。
XFS は信頼性の面で特に確固たる評判を受けており、由緒ある xfstests Linux カーネルテストスイートの作成につながり、これは現在では各種ファイルシステムの回帰テストを行っています。
インストール
カーネル
File systems --->
<*> XFS filesystem support
オプション:
File systems --->
[*] XFS Quota support
[*] XFS POSIX ACL support
[*] XFS Realtime subvolume support
[ ] XFS Verbose Warnings
[ ] XFS Debugging support
[ ] XFS online metadata check support
[ ] XFS online metadata check usage data collection
[ ] XFS online metadata repair support
Emerge
XFSのユーザスペースユーティリティを使うにはsys-fs/xfsprogsパッケージが必要です:
root #
emerge --ask sys-fs/xfsprogs
使い方
マウント
mount コマンドで XFS ファイルシステムをマウントします。
XFS は /etc/fstab での SSD discard に対応しています。
作成
xfsprogs の mkfs.xfs を使用して XFS ファイルシステムを作成します:
root #
mkfs.xfs -L 'label'
ラベルは省略可能です。RAID として使用したり、テラバイト級のドライブを使用したり、あるいは HDD のためのジャーナリングを分離した SSD 上で行うなどの場合、作成時のさらなるチューニングに興味があるかもしれません。
ファイルシステム情報
xfs_spaceman を使用すると、利用可能な容量についての情報を表示し、ファイルシステムのヘルスについてのレポートを作成することができます。
root #
xfs_spaceman -c info /path/to/mountpoint
パラメータを変更する
マウントされているファイルシステムのパラメータを変更することはできません
XFS ファイルシステムのパラメータは、xfs_admin を使用して変更することができます。オプションの完全な一覧については、manpage を確認してください: xfs_admin(8)
root #
xfs_admin -L 'label' /dev/sda1
Expanding a filesystem
The filesystem must be mounted to be grown
To grow an XFS filesystem to N amount, use xfs_growfs.
root #
xfs_growfs -D N /path/to/mountpoint
Using the
-d
argument results in it being expanded to the max sizeFreezing
To suspend access to a filesystem, use the xfs_freeze command.
root #
xfs_freeze -f /path/to/mountpoint
ユーティリティ
ユーティリティ | 説明[1] | man ページ |
---|---|---|
fsck.xfs | Checks a filesystem for corruption | fsck.xfs(8) |
mkfs.xfs | Creates a new filesystem | mkfs.xfs(8) |
xfs_admin | Changes the parameters of a filesystem | xfs_admin(8) |
xfs_bmap | Prints block mapping for an XFS file | xfs_bmap(8) |
xfs_copy | Copies contents of a filesystem to one or more targets in parallel | xfs_copy(8) |
xfs_estimate | Estimate the amount of space a directory would consume if it were copied to an XFS filesystem | xfs_estimate(8) |
xfs_db | Used to debug an XFS filesystem | xfs_db(8) |
xfs_freeze | Suspends access to a filesystem | xfs_freeze(8) |
xfs_fsr | Improves organization of mounted filesystems, compacting or improving the layout of extents | xfs_fsr(8) |
xfs_growfs | Increases a filesystem's size | xfs_growfs(8) |
xfs_info | Equivalent to invoking xfs_growfs but does not change any aspects about the filesystem | xfs_info(8) |
xfs_io | Used for debugging, like xfs_db but for regular file paths than raw volumes | xfs_io(8) |
xfs_logprint | Prints the log of an XFS filesystem | xfs_logprint(8) |
xfs_mdrestore | Restores an XFS metadump image to a filesystem image | xfs_mdrestore(8) |
xfs_metadump | Copies filesystem metadata to a file | xfs_metadump(8) |
xfs_mkfile | Creates an XFS file (padded by zeroes by default) | xfs_mkfile(8) |
xfs_ncheck | Generates pathnames from inode numbers | xfs_ncheck(8) |
xfs_quota | Used for reporting and editing different aspects of filesystem quotas | xfs_quota(8) |
xfs_repair | Repairs corrupted or damaged XFS filesystems | xfs_repair(8) |
xfs_rtcp | Copies a file to a real-time partition | xfs_rtcp(8) |
xfs_scrub | Checks and repairs contents of a mounted filesystem | xfs_scrub(8) |
xfs_scrub_all | Scrubs all mounted XFS filesystems | xfs_scrub_all(8) |
xfs_spaceman | Reports and controls free space usage | xfs_spaceman(8) |
メンテナンス
2038 年以降のタイムスタンプサポート (bigtime)
古いパーティション (<xfsprogs-5.15 で作成されたもの) は、デフォルトでは bigtime が有効化されていないでしょう。そのようなパーティションをマウントすると、以下のような警告になります:
root #
dmesg
... [ 4.036258] xfs filesystem being mounted at /home supports timestamps until 2038 (0x7fffffff) ...
xfsprogs の現在のバージョンをチェックするためには、mkfs.xfs -V を実行してください。最新の Gentoo システムではこれを行う必要はありませんが、古いユーザランドを持つ他のディストリビューションのインストールメディアを使用している場合は、必要になる場合があります。
bigtime コードのサポートは xfsprogs 5.15 でデフォルトで有効化されましたので、新しいバージョンでは手動設定は必要ありません。
カーネル 5.10 より、XFS には bigtime
サポートが入り、V5 オンディスクフォーマットで記録される最大のタイムスタンプは 2038 年から 2486 年へと拡張されました。[2]
古いファイルシステムを bigtime
にアップグレードするためには、まずファイルシステムをクリーンにアンマウントしてください。アンマウントが完全にクリーンでないと、アップグレードの実行は拒否されるでしょう。
そして、以下を実行してください:
root #
xfs_admin -O bigtime=1 /dev/sda1
/dev/sda1 はデバイスパスで置き換えてください。
ルートマウントで XFS が使用されている場合、メタデータのアップグレードを実行するために必要なツールを備えた、initramfs またはその他の live 環境が必要になるでしょう。
Dracut initramfs を使用してアップグレードを実行する
まず、Dracut を使って、アップグレードを実行するための追加のファイルを initramfs 内に含める必要があります。これは --install
オプションを使用するか、設定ファイル内で install_items
オプションを使用するかの、いずれかによって達成できます。
root #
dracut --install "/usr/sbin/xfs_admin /usr/bin/expr" ...
次に、カーネルコマンドラインオプションを rd.break=pre-mount
を含むように変更して、ルートファイルシステムをマウントする直前に initramfs を停止させてください。これは一時的に実行され、アップグレード後の再起動時に削除されるようにしてください。
削除
次の実行時に削除するようスケジューリングするには、次のコマンドを実行してください:
root #
emerge --ask --depclean --verbose sys-fs/xfsprogs
関連項目
- Deduplication — uses the clone mechanism of a copy-on-write or CoW capable filesystem, a feature that allows to share data of copied but identical files
- FAT — 当初は MS-DOS (および後の NT 以前の Microsoft Windows) で使用するために作られたファイルシステム。
- Ext4 — オープンソースのディスクファイルシステムで、extended filesystem シリーズの最新バージョンです。
- Btrfs — 耐障害性、自己修復特性、管理のしやすさに焦点を当てつつ、先進的な機能を実装することも主眼としている、Linux 向けのコピーオンライト (CoW) ファイルシステムです。