![Oracle Linux 장치에 남은 공간이 없습니다.](https://linux55.com/image/168622/Oracle%20Linux%20%EC%9E%A5%EC%B9%98%EC%97%90%20%EB%82%A8%EC%9D%80%20%EA%B3%B5%EA%B0%84%EC%9D%B4%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
내 Oracle Linux 시스템에서 장치에 남은 공간이 없다고 불평합니다. 디스크 활용도와 inode 활용도를 확인하기 위해 몇 가지 명령을 실행했습니다. 이것이 올바른지 말해 줄 수 있는 사람이 있나요? dev/sda2에는 inode가 전혀 없는 것 같습니다.
[fatty@oralinux ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 206M 1.7G 12% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/vda2 15G 13G 1.6G 90% /
/dev/vda1 497M 328M 169M 66% /boot
tmpfs 370M 0 370M 0% /run/user/0
tmpfs 370M 0 370M 0% /run/user/1001
[fatty@oralinux ~]$
[fatty@oralinux ~]$
[fatty@oralinux ~]$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 468704 352 468352 1% /dev
tmpfs 472674 1 472673 1% /dev/shm
tmpfs 472674 9146 463528 2% /run
tmpfs 472674 15 472659 1% /sys/fs/cgroup
/dev/vda2 0 0 0 - /
/dev/vda1 512000 369 511631 1% /boot
tmpfs 472674 1 472673 1% /run/user/0
tmpfs 472674 1 472673 1% /run/user/1001
[fatty@oralinux ~]$
[ ~]$ lsblk --fs
NAME FSTYPE LABEL UUID MOUNTPOINT
sr0 iso9660 cidata 2018-08-31-20-55-08-00
vda
├─vda1 xfs /boot c9cf52e1-ca900 /boot
└─vda2 btrfs btr_pool 0d127ec75de7 /
답변1
lsblk --fs
출력 에 따르면 파일 시스템 /dev/vda2
이 포함됩니다 btrfs
.
필요에 따라 자동으로 inode를 생성하고 사용 가능한 디스크 공간 외에 inode 수에 제한이 없는 최신 파일 시스템입니다. 이것이 바로 inode 수를 추적하는 것이 btrfs
파일 시스템 유형에 대해 실질적인 의미가 없으므로 모든 inode 통계 쿼리에 대해 모두 0을 반환하는 이유입니다.
XFS 파일 시스템(예: 디스크 장치 /boot
의 파일 시스템 /dev/vda1
)도 요청 시 inode를 생성할 수 있지만 파일 시스템 생성 시 총 파일 시스템 용량의 백분율로 표시되는 제한이 설정됩니다. 기본 제한은 파일 시스템 용량의 25%를 inode로 허용하는데, 이는 작은 파일이 많다는 것을 의미합니다. XFS를 루트 파일 시스템으로 사용하는 시스템에서 다음 명령을 사용하여 imaxpct
이 제한 사항을 확인할 수 있습니다.xfs_info
# xfs_info /
meta-data=/dev/mapper/vgsys-root isize=512 agcount=4, agsize=488192 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=0, rmapbt=0
= reflink=0
data = bsize=4096 blocks=1952768, imaxpct=25 <--- Here!
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
따라서 XFS 파일 시스템에서 inode 통계는 매우 특별한 상황에서 중요하지만 여전히 의미가 있습니다. XFS 파일 시스템의 현재 총 inode 수에 도달하고 그 수가 여전히 이 값으로 설정된 백분율 제한보다 작고 imaxpct
사용 가능한 디스크 공간이 있는 경우 XFS 파일 시스템의 총 inode 수가 자동으로 증가합니다. .
그러나 XFS 파일 시스템은 일반적으로 파일 수가 매우 제한되어 있으므로 이 질문이 적용되는 유일한 방법은 /boot
실수로 많은 작은 파일을 복사한 경우이지만 지금은 그렇지 않은 것 같습니다. /boot
이런 식으로 말입니다.
실제 "장치에 남은 공간이 없습니다" 오류
귀하의 df -h
합계 df -i
출력이 나에게는 괜찮아 보입니다. 그러나 btrfs
그들은 항상 전체 이야기를 말하지는 않을 수도 있습니다. btrfs-progs
시스템에서 사용되는 버전 에 따라 btrfs
파일 시스템에서 사용 가능한 디스크 공간에 대한 추가 정보를 제공할 수 있는 두 가지 명령이 있습니다.
btrfs-progs
3.18 이전 버전의 경우 :
btrfs fi df /
btrfs-progs
버전 3.18 이상의 경우 :
sudo btrfs fi usage /
btrfs
LVM 및 소프트웨어 RAID의 기능을 기본적으로 포함하는 복잡한 파일 시스템이므로 디스크 공간 할당이 df
기존 명령이 나타내는 것보다 더 복잡할 수 있습니다.
자세한 내용은 BTRFS 위키를 참조하세요. https://btrfs.wiki.kernel.org/index.php/FAQ#or_My_filesystem_is_full.2C_and_I.27ve_put_almost_nothing_into_it.21
위에서 언급한 btrfs 관련 명령이 루트 파일 시스템에 실제로 공간이 부족하다는 것을 나타내는 경우 이 웹 페이지가 도움이 될 수 있습니다.
https://ohthehugemanatee.org/blog/2019/02/11/btrfs-out-of-space-emergency-response/
기본적으로 필요한 쓰기 작업의 시간과 양을 최소화하는 btrfs balance start /
옵션을 사용하여 실행할 수 있습니다 . -dusage=<some percentage value>
그러나 BTRFS에 여유 공간이 없으면 이 명령을 실행할 수 없습니다. 이 경우 먼저 파일 시스템을 다른 디스크 장치로 확장해야 할 수도 있습니다.