XFS 잘못된 문장 “장치에 남은 공간 없음” 34G 1.5G 96%

서버 설정이 있습니다. XFS 파티션 …에 LVM ~에 우분투 14.04.1 LTS . 파일을 홈 파티션에 복사하는 동안 ” 기기에 남은 공간이 없습니다. “이 표시됩니다.

df -h 충분한 공간을 표시합니다.

/dev/mapper/prod--vg-home     35G   21G   15G  60% /home

할당량이나 다른 디스크 공간 문제가 관련되지 않도록 동일한 홈 계좌에서 디스크를 거의 완전하게 채우는 데 fallocate를 사용했습니다.

/dev/mapper/prod--vg-home     35G   34G  1.5G  96% /home

df -i 또한 충분한 inode를 표시합니다.

/dev/mapper/prod--vg-home   36700160  379390 36320770    2% /home

나는 또한 많은 양의 작은 임의 파일 동일한 주택 계좌에서 문제를 재현했다. :

mkdir 1
cd 1
dd if=/dev/zero of=masterfile bs=10000000 count=1
split -b 10 -a 10 masterfile
cd ..
cp -R 1 2

이로 인해 추가 공간이 거의 필요하지 않고 “장치에 남은 공간 없음”이 다시 발생했습니다 (약 30MB). df -i 언급 :

/dev/mapper/prod--vg-home   36700160 1310464 35389696    4% /home

나는 같은 기계에 대한 두 번째 테스트 (우분투 14.04.1 LTS).

나는 새로운 논리 볼륨 5GB의 작은 파일들 위의 dd 및 분할 절차를 사용하십시오.

다음과 같은 디스크 공간 및 inode를 사용할 수있는 “No space left device”가 나타납니다.

/dev/mapper/prod--vg-test    5.0G  4.2G  811M  85% /mnt/test
/dev/mapper/prod--vg-test    4257712  937920  3319792   23% /mnt/test

예약 된 공간이 여전히 여기에서 무의미하다는 것을 확인하기 위해 루트 권한을 사용하여이 테스트를 수행했습니다.

나는 다른 기계에 대한 세 번째 테스트 (데비안 2.6.32-5).

나는 5GB의 새로운 논리 볼륨을 생성하고 위의 dd 및 split 절차를 사용하여 작은 파일로 채 웁니다.

그만큼 절차가 성공했습니다. 다음 디스크 공간 및 inode를 사용할 수 있습니다.

/dev/mapper/data-test      5.0G  4.2G  909M  83% /mnt/test
/dev/mapper/data-test      4721904 1000005 3721899   22% /mnt/test

예약 된 공간이 여전히 여기에 무관한지 확인하기 위해 루트 권한을 사용하여이 테스트를 수행했습니다.

이 점은 Ubuntu 14.04.1 LTS의 버그 ?

우분투 14.04.1 LTS에서 odes의 최대 비율 변경의 영향을 확인했습니다.

xfs_growfs -m 25 /dev/mapper/prod--vg-home

이 금액은 쉽게 줄이거 나 늘릴 수 있습니다.

이 설정을 실험하면서 3 %로 줄이고 다시 25 %로 늘리거나 일부 파일을 삭제하면 많은 파일을 다시 추가 할 수 있지만 여전히 저장소 나 inode를 채우기 전에 오류가 발생한다는 것을 알았습니다 .

xfs_info 표시 :

meta-data=/dev/mapper/prod--vg-home isize=256    agcount=14, agsize=655360 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=9175040, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

“No space left on device”메시지를 유발할 수있는 다른 설정이 있습니까? 아니면 이것이 버그라고 결론 내릴 수 있습니까?

고맙습니다



답변

inode가 파티션 전체에 제대로 분배되지 않게하는 xfs_growfs의 버그가 있습니다. 해결책은 단순히 inode64 옵션으로 다시 마운트하는 것입니다. 예를 들어 이것이 / dev / vda1 인 경우 다음을 수행합니다.

mount -o remount,inode64 /dev/vda1

버그에 대한 자세한 정보를 찾을 수 있습니다. 이리 .


답변

디렉토리 (특별히 /home )는 디스크가 꽉 찼다 고 말할 수 있으며 그 상황은 사용자의 할당량을 의미합니다. 사용자의 사용 가능한 공간에 제한이있을 수 있습니다. 문제가 있는지 확인하십시오.