디스크에 쓸 수 없지만 디스크가 꽉 차지 않았습니다


36

Ubuntu 12.04를 사용하고 있으며 루트로도 파일에 쓰거나 쓰기가 필요한 다른 작업을 수행 할 수 없습니다. 어떤 프로세스도 작성해야하므로 모두 실패합니다. df충분한 공간이 있다고 말합니다.

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       30G   14G   15G  48% /
udev            984M  4.0K  984M   1% /dev
tmpfs           399M  668K  399M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            997M     0  997M   0% /run/shm

"디스크에 쓸 수 없음"에 대한 모든 결과는 합법적으로 전체 디스크에 관한 것입니다. 어디서부터 시작해야할지 모르겠습니다. 오늘 아침 아무데도 문제가 나타났습니다.

PHP의 마지막 로그 항목은 다음과 같습니다.

실패 : 장치에 남은 공간이 없습니다 (28).

Vim은 말합니다 :

쓰기 위해 파일을 열 수 없습니다

다른 응용 프로그램에서도 비슷한 오류가 발생합니다.

~ 1gb를 삭제 한 후에도 문제가 남아 있습니다. 나는 또한 재부팅했다.

df -i 말한다

Filesystem      Inodes   IUsed  IFree IUse% Mounted on
/dev/xvda1     1966080 1966080      0  100% /
udev            251890     378 251512    1% /dev
tmpfs           255153     296 254857    1% /run
none            255153       4 255149    1% /run/lock
none            255153       1 255152    1% /run/shm

14
"df -i"의 출력을 게시하십시오.
EEAA

1
@EEAA가 편집되었습니다. 맞습니다. df -i는 100 %라고 말합니다. 이것은 무엇을 의미 하는가? 왜 다른가요?
felwithe

3
IIRC, 단일 디렉토리에있는 파일이 너무 많으면 증상이 같지 않으면 비슷합니다. "너무 많은"것이 파일 시스템마다 다릅니다.
MSalters

답변:


59

inode가 부족합니다. 매우 작은 파일이 많은 디렉토리가있을 수 있습니다.


9
내가 몰랐을 rm 수도 있다고 덧붙이고 싶었다 . 이것은 교육이었습니다.
felwithe

2
@felwithe, 나는 그것이 효과 find . -name sess\* -exec rm {} +가 있었을 것이라고 상상할 수 있습니다 .
Carsten S

3
@felwithe 다른 사람들이 제안한 것. rm 아마 잘 작동했지만 셸은 *glob를 너무 많은 데이터로 확장하고 rm 을 호출 하기 전에 바브를 처리했습니다 .
CVn

8
@CarstenS : 또는 find . -name sess\* -delete기억하기 쉽고 일반적으로 더 효율적입니다.
MSalters

2
@Kaslai 한계는 RAM이 아니라 시스템 한계 ARG_MAX입니다. POSIX 표준은 불행히도 ARG_MAX에 대해 명령 행 인수를 측정하는 방법을 정확하게 지정하지 않습니다. 일부 구현에는 제한이 없으므로 ARG_MAX를 정의하지 않지만 너무 많은 프로그램이 컴파일되지 못하게하므로 널리 사용되는 옵션이 아닙니다.
James Youngman

7

분명히 OP는 특정 문제에 대한 답을 가지고 있습니다. 그러나 완전성을 위해 파일 시스템이 읽기 전용으로 다시 마운트 된 경우 OP의 증상이 발생할 수도 있습니다. 스토리지가 클러스터 된 디스크 시스템에있는 Linux VM을 사용하여 간헐적으로 드문 오류가 발생했습니다. 때때로 오류로 인해 파일 시스템이 읽기 전용으로 다시 마운트 될 수 있습니다. 결국 관찰 가능한 외부 증상은 RAM이 가득 차면 (플러시 할 수없는 디스크 쓰기) 다양한 서비스가 응답하지 않는 것이 었습니다.

당시 유일한 해결 방법은 시스템을 다시 부팅하는 것입니다 (기록되지 않은 로그는 없음). RW를 다시 마운트하지 못했습니다. (불행히도, 다시 마운트하려고 할 때 반환되는 오류 메시지는 기억 나지 않습니다.)

따라서 OP의 문제는 아니지만이 페이지에 도착한 다른 사람이이 정보를 활용할 수 있습니다.


5
실제로는 없습니다. 파일 시스템이 다시 마운트 된 경우에만 파일 시스템이 공간이 아닌 읽기 전용이라는 오류가 발생합니다.
psusi

1
@psusi : 나는하지 않았다. "filesystem full"을 포함하여 다양한 오류가 발생했습니다. 지난 2 ~ 3 년 동안 그것이 바뀌었다면 그것은 좋은 일이 될 것입니다.
Eric Towers

1
며칠 전에 Linux에서 파일을 읽기 전용 ZFS 파일 시스템으로 이동하려고했습니다. 이 오류는 "읽기 전용 파일 시스템"이라고 분명히 밝혔습니다.
CVn

아니; 30 년 이상 그런 식으로있었습니다. 읽기 전용 fs에 대한 쓰기는 -EROFS를 리턴합니다. 전체 fs에 대한 쓰기는 -ENOSPC를 리턴합니다.
psusi

4
@psusi : 나는 프로그래머가 항상 자신의 오류 메시지를 작성하는 대신 올바른 일을하는 환상의 세계에 살고 있음을 알았습니다. 나는 거기에 사는 것 같지 않습니다.
Eric Towers
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.