XFS

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page XFS and the translation is 65% complete.

XFS ファイルシステムは、高性能なジャーナリングファイルシステムです。Linux での使用のために ACL (POSIX) に対応しています。

XFS は信頼性の面で特に確固たる評判を受けており、由緒ある xfstests Linux カーネルテストスイートの作成につながり、これは現在では各種ファイルシステムの回帰テストを行っています。

インストール

カーネル

カーネル XFSサポートを有効にする(CONFIG_XFS_FS:
File systems  --->
   <*> XFS filesystem support

オプション:

カーネル オプションの XFS の機能を有効にする
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 size

Freezing

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) ファイルシステムです。

参照