파일 시스템에서 루트를위한 예약 공간-왜?


105

기본적으로 새로 작성된 파일 시스템은 루트에 할당 된 공간의 5 %로 작성됩니다. 또한 다음과 같이 정의 된 공간을 변경할 수 있다는 것을 알고 있습니다.

tune2fs -m 1 /dev/sdXY

그래도 궁금한 점은이 예약 공간의 실제 목적입니다. 어떤 상황에서는 5 % 이상의 공간을 차지할 실용적인 목적을 제공합니까?

내가이 질문에 걸려 넘어진 이유는 최근에 1TB 파일 저장소를 구축했기 때문에 df -h가 용량의 5 %를 누락시킨 이유를 알 수 없었기 때문입니다.


1
자, 이제는 '사용할 수없는'공간의 엄청난 낭비입니다. 5 %는 X보다 작은 드라이브 크기 (예 : 디스크 공간의 5 %에서 최대 100MB)로 제한되어야합니다.
tshepang 2019

3
내 8TB 파일 시스템에서 400GB가 사라졌습니다. 이것은 실제 공간 낭비입니다! :)
Ilia Rostovtsev

답변:


101

중요한 루트 프로세스 (및 가능한 구조 작업)를위한 공간을 절약하는 것이 한 가지 이유입니다.

그러나 또 다른 것이 있습니다. Ext3는 파일 시스템 조각화를 피하는 데 능숙하지만 약 95 %가 가득 차면 그 동작이 절벽에서 떨어지고 갑자기 파일 시스템 성능이 혼란스러워집니다. 따라서 5 % 예약을 남겨두면 이에 대한 버퍼가 제공됩니다.

리눅스 파일 시스템 개발자 / 구루 Theodore Ts'o가 설명했듯이 Ext4가 이것에 더 좋을 것이다 .

예약 된 블록 수를 0으로 설정하면 파일 시스템이 거의 가득 찼을 때 (예 : 95 % 이상) 장시간 (파일 생성 및 삭제가 많은) 실행하는 경우를 제외하고 성능에 큰 영향을 미치지 않습니다. 이 시점에서 조각화 문제가 발생할 수 있습니다. Ext4의 멀티 블록 할당 기는 인접한 블록을 찾기가 훨씬 더 어렵 기 때문에 조각화에 훨씬 더 강합니다. 따라서 다른 ext4 기능을 활성화하지 않아도 파일 시스템 앞에 ext4를 사용하여 ext3 파일 시스템을 마운트하는 것만으로도 더 나은 결과를 볼 수 있습니다 완전히 가득 찼습니다.

파일이 자주 변경되지 않는 장기 보관 용 파일 시스템 (예 : 거대한 mp3 또는 비디오 저장소)을 사용하는 경우에는 문제가되지 않습니다.


3
superuser.com/a/1257550/38062에 언급 된 바와 같이 , 이러한 "90 %"및 "95 %"수치는 1980 년대 버클리 FFS에 대한 측정에서 그 기원이 있습니다. 그 이후로 수십 년 동안 다른 사람들은이 반복되는 지혜를 얻지 못했습니다.
JdeBP

1
이 예약 된 공간을 가진 일반 사용자에 대한 성능 완화는 없습니다. 그들은 예상보다 일찍 장치에 공간을 확보하지 못합니다. 그러나 루트는 디스크를 채우는 문제를 해결하기에 충분한 공간이 있습니다.
crististm

44

예를 들어, 이러한 5 % 블록을 예약하는 등 다른 사람이 ssh를 통해 시스템에 로그온 할 수 있도록 허용하면 외부 사용자가 디스크를 채울 수 없습니다. 다른 사람이 시스템에 로그인하도록 허용하지 않더라도 예약 된 차단은 루트로 실행되지 않는 프로그램이 디스크를 채우지 못하게합니다.


고마워, 정답으로 표시하는 답변에 어려움을 겪어 주셔서 감사합니다. 답변이 처음 올라 왔을 때 정답을 올렸습니다. mattdm은 추가 배경과 세부 사항으로 인해 "왜"를 더 많이 이해하는 데 도움이 되었기 때문에 올바른 것으로 표시되었습니다.
suitedupgeek

22

사용자로 예약 된 블록과 루트로 실행하지 않고 특정 사용자로 실행되는 서비스를 사용하면 파일 시스템을 채울 수 없으며 해당 파일 시스템에 기록해야하는 다른 항목을 손상시킬 수 있습니다. 루트로 실행되는 서비스는 여전히이를 완전하게 만들 수 있습니다 물론 가득합니다.

또한 사용자가 디스크가 꽉 찼거나 파일 시스템이 가득 찼기 때문에 서비스가 실패한다고 불평 할 때 작업 할 공간을 제공합니다. 예를 들어, 파일을 제거하기 전에 일부 파일을 zip / gz / 7zip 아카이브로 아카이브 할 수 있습니다 (파일 시스템이 완전히 가득 차더라도 다른 파일 시스템을 사용하여 대신 아카이브 파일을 작성할 수 있음).

디스크가 훨씬 더 작을 때 (수백 기가 바이트가 아니라 수십 기가 바이트)에서 5 %가 오랫동안 기본값으로 사용 되어 5 %가 그다지 많지 않았습니다. 다행히 그것은 쉽게 당신이 말한대로 작은 비율 아래로 조정하거나 사용하는 경우 블록의 특정 숫자로 설정할 수 tune2fs의의 -r대신 옵션을 -m. 두 경우 모두 예약을 완전히 해제하기 위해 매개 변수 0을 지정할 수 있습니다 /. /tmp, /var등을 위해이 작업을 수행하지 않지만 사용자 저장 장치로만 작동하는 파일 시스템 (예 : 전역 파일- 공유) 또는 고정 된 크기의 VM과 같은 고정 된 크기의 파일 만 보유하고 새 크기의 파일을 만들 때만 커지는 파일입니다.


22

기본값 5 %는 시스템 파티션을위한 것입니다. 예를 들어 디스크 공간이 가득 찬 경우 시스템 로그 ( /var/log) 및 루트 사서함 ( /var/mail/root)은 여전히 ​​중요한 정보를받을 수 있습니다. A의 /home또는 일반 데이터 스토리지 파티션 루트에 대한 모든 공간을 떠날 필요가 없습니다. 특별한 요구에 따라 비상 공간 ( tune2fs -u 1234) 을 얻는 사용자를 변경할 수 있습니다 .

ext [234] 파일 시스템이 가득 차게하지 않는 또 다른 이유가 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.