新しく作成されたXFSファイルシステムでは、78 GBが使用されています


18

XFSファイルシステムを持つ単一のパーティションとしてセットアップされることになっている12 TB RAID 6アレイがあります。新しいファイルシステムを作成すると、使用中の78 GBがありますが、ドライブにファイルがありません。

[root@i00a ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs         32G     0   32G   0% /dev
tmpfs            32G     0   32G   0% /dev/shm
tmpfs            32G   11M   32G   1% /run
tmpfs            32G     0   32G   0% /sys/fs/cgroup
/dev/sdb3       154G  3.9G  150G   3% /
/dev/sdb2      1014M  153M  862M  16% /boot
/dev/sdb1       599M  6.7M  593M   2% /boot/efi
/dev/sdc1       187G  1.6G  185G   1% /var
tmpfs           6.3G     0  6.3G   0% /run/user/0
/dev/sda1        11T   78G   11T   1% /export/libvirt

私は何か間違ったことをしましたか?これは仕様によるものですか?

ファイルシステムログは約2 GBしか占有していないようで、他に何がスペースを使用しているのかわかりません。

[root@i00a ~]# xfs_info /export/libvirt/
meta-data=/dev/sda1              isize=512    agcount=11, agsize=268435455 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=2929458688, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=521728, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

パーティション情報:

[root@irb00a ~]# parted /dev/sda1
GNU Parted 3.2
Using /dev/sda1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: Unknown (unknown)
Disk /dev/sda1: 12.0TB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:

Number  Start  End     Size    File system  Flags
 1      0.00B  12.0TB  12.0TB  xfs

これは、Red Hat Enterprise Linux 8(Ootpa)を実行する4つのFC430計算ノードと2つのFD332ストレージノードを備えたDell FX2 です。


本当に空ですか?再現しようとしている(12TB画像と、デフォルトのmkfsの設定、bsize=4096 blocks=2929687500df -h結果がありSize 11T, Used 12Gません、78Gあなたの例のとおり。xfsdump21KBファイルを生成します... ;-)
frostschutz

2
ああ、私はあなたが持っていreflink=1たことに気付きましたが、私にとってのデフォルトはでしたreflink=0。でreflink=1、それはまた78G私のために使用されると言うので、私は今それを再現することができます。
frostschutz

したがって、これは仕様によるもののようですが、reflinksがユースケースに対して何もしないことが確実な場合は、オフにすることを検討できます。
frostschutz

知りません。ここでの唯一のものは、仮想マシン用のqcow2ファイルです。
yakatz

いくつかのlibvirtツールのように見えるがreflinkをサポートしていますが、おそらくトラブル価値がない:stackoverflow.com/a/41968000/597234は、私はおそらく、保存された空間で、全体の追加VMを収めることができます。
yakatz

回答:


2

XFSの場合、図に示されてdf -hいる空のファイルシステム「使用サイズ」は、mkfs.xfs一度に有効にするメタデータ機能に大きく依存しているようです。

空の12TBファイルを使用したテスト:

# truncate -s 12TB xfstest.img

デフォルト設定(現在のArchLinuxシステム):

# mkfs.xfs xfstest.img 
meta-data=xfstest.img            isize=512    agcount=11, agsize=268435455 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=0
data     =                       bsize=4096   blocks=2929687500, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=521728, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
# mount -o loop xfstest.img loop/
# df -h loop/
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0       11T   12G   11T   1% /dev/shm/loop
# umount loop/

を使用してreflink=1

# mkfs.xfs -m reflink=1 -f xfstest.img
meta-data=xfstest.img            isize=512    agcount=11, agsize=268435455 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=2929687500, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=521728, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
# mount -o loop xfstest.img loop/
# df -h loop/
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0       11T   78G   11T   1% /dev/shm/loop

使用してcrc=0reflink=0(何らかの理由で、また変わることをfinobt=0sparse=0

# mkfs.xfs -m reflink=0 -m crc=0 -f xfstest.img 
meta-data=xfstest.img            isize=256    agcount=11, agsize=268435455 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0, sparse=0, rmapbt=0
         =                       reflink=0
data     =                       bsize=4096   blocks=2929687500, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=521728, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
# mount -o loop xfstest.img loop/
# df -h loop/
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0       11T   33M   11T   1% /dev/shm/loop

要するに:

# df -h loop/
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0       11T   78G   11T   1% /dev/shm/loop (reflink=1, crc=1)
/dev/loop0       11T   12G   11T   1% /dev/shm/loop (reflink=0, crc=1)
/dev/loop0       11T   33M   11T   1% /dev/shm/loop (reflink=0, crc=0)

したがって、新しい12TBファイルシステムの「使用済み」スペースは、mkfs時に有効にするメタデータ機能に応じて、78G、12G、または33Mになります。


RedHat 8のreflinks=1デフォルトは
yakatz

24

すべてのファイルシステムには、独自の内部データ構造のオーバーヘッドがあります。この内部情報は、ファイルシステムが将来ファイルとディレクトリを作成し、すべてが割り当てられている場所を追跡するために使用されます。このデータは、まとめて「メタデータ」と呼ばれます。ファイルシステム上のデータの「約」データです。メタデータはスペースを占有しますが、ユーザーデータではないため、オーバーヘッドと見なされます。このオーバーヘッドは、ファイルシステムを使用することの避けられない副作用です。

このブログ投稿によると、XFSのオーバーヘッドは総ディスク容量の約0.5%です。(この投稿は2009年のものですが、これが大幅に変更された理由はありません)。彼は、を使用して十数種類のファイルシステムのオーバーヘッドをテストすることでその結果を得ましたguestfish

12TBのスペースの0.5%は60GBであるため、予想される使用量にかなり近いようです。彼の数は0.5%をわずかに上回るはずだったが、それは四捨五入されたと思う。


9
一部のファイルシステムは割り当てられたサイズ全体を報告し、使用済みスペースに対して簿記のオーバーヘッドを請求しますが、他のファイルシステムはフルサイズから簿記を差し引き、ファイルスペースのみを「使用済み」として報告します。
クリリス

3
ファイルシステムのオーバーヘッド... 1983
J ...

3
@J ...実際、ハードドライブは多くの場合、1024MBではなく1GB = 1000MBを使用してサイズを販売しています。したがって、512GBで販売されているHDは、実際にはリストされているサイズよりも12GB小さくなります。TBは1TB = 1000 GB = 1000 * 1000 MBを使用するため、さらに悪化します。1TB HDは、1024GBではなく976GBです。TBで失われた百日咳48GB。
ジャスティン

4
ギガバイト(ベース10)とギビバイト(ベース2)の測定の違いは、の使用済みスペースとして表示されませんdf
yakatz

1
@JustinLessard MiBおよびKiBレベルのオーバーヘッドを忘れました。512 GBのハードドライブは、実際の512 GiBドライブよりも実際には32 GiB以上小さくなっています。さらに、TiB、GiB、MiB、KiBのオーバーヘッドを考慮すると、1 TBドライブは0.909 TiBのようです。(1 * 1000 ^ 4/1024 ^ 4)= 0.90949
ペンギン359
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.