새로 작성된 XFS 파일 시스템에 78GB 사용 표시

XFS 파일 시스템 과 함께 단일 파티션으로 설정되는 12TB RAID 6 어레이가 있습니다. 새 파일 시스템을 만들 때 사용중인 용량은 78GB이지만 드라이브에 파일이 없습니다.

[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

내가 뭐 잘못 했어요? 의도적으로 설계된 것입니까?

파일 시스템 로그가 약 2GB를 차지하는 것처럼 보이며 공간을 사용할 수있는 다른 것을 파악할 수 없습니다.

[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입니다 .



답변

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=0, reflink=0: 사용 하기 (어떤 이유로 finobt=0, sparse=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 정도로 낮습니다.


답변

모든 파일 시스템에는 자체 내부 데이터 구조에 대한 오버 헤드가 있습니다. 이 내부 정보는 파일 시스템이 미래에 파일과 디렉토리를 작성하고 모든 것이 할당 된 위치를 추적하는 데 사용됩니다. 이 데이터를 통칭하여 “메타 데이터”라고합니다. 파일 시스템의 데이터에 대한 데이터입니다. 메타 데이터는 공간을 차지하지만 사용자 데이터는 아니기 때문에 오버 헤드로 간주됩니다. 이 오버 헤드는 파일 시스템 사용으로 인한 피할 수없는 부작용입니다.

이 블로그 게시물 에 따르면 XFS는 전체 디스크 공간의 약 0.5 %의 오버 헤드를가집니다. (이 게시물은 2009 년부터 작성되었지만 크게 변경 될 이유는 없습니다.) 그는를 사용하여 수십 가지가 넘는 파일 시스템의 파일 시스템 오버 헤드를 테스트함으로써 그 결과를 얻었습니다 guestfish.

12TB 공간의 0.5 %는 60GB이므로 예상 사용량과 거의 비슷합니다. 그의 숫자는 0.5 %보다 약간 높아야했지만 반올림 한 것 같습니다.


답변