![파일 시스템의 루트용으로 예약된 공간 - 이유는 무엇입니까?](https://linux55.com/image/16145/%ED%8C%8C%EC%9D%BC%20%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%98%20%EB%A3%A8%ED%8A%B8%EC%9A%A9%EC%9C%BC%EB%A1%9C%20%EC%98%88%EC%95%BD%EB%90%9C%20%EA%B3%B5%EA%B0%84%20-%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
제가 아는 한, 기본적으로 새로 생성된 파일 시스템은 루트에 할당된 공간의 5%를 사용하여 생성됩니다. 또한 다음을 통해 정의된 공간을 변경할 수 있다는 것도 알고 있습니다.
tune2fs -m 1 /dev/sdXY
그런데 제가 궁금한 것은 이 예약된 공간이 실제로 어떤 용도로 사용되는지 입니다. 실용적인 목적에 부합하고 어떤 경우에는 공간의 5% 이상의 가치가 있습니까?
제가 이 질문을 우연히 발견한 이유는 최근에 1TB 파일 저장소를 구축했는데 왜 df -h로 인해 용량이 5% 손실되는지 알 수 없었기 때문입니다.
답변1
중요한 루트 프로세스(및 가능한 복구 작업)를 위한 공간을 절약하는 것도 한 가지 이유입니다.
그러나 또 다른 것이 있습니다. Ext3는 파일 시스템 조각화를 방지하는 데 매우 뛰어나지만 일단 95% 이상이 되면 이 동작이 급격히 떨어지고 파일 시스템 성능이 갑자기 엉망이 됩니다. 따라서 5%를 유지하면 쿠션이 제공됩니다.
Ext4는 이에 대해 더 나은 작업을 수행해야 합니다.Linux 파일 시스템 개발자/전문가 Theodore Ts'o가 설명합니다.:
예약된 블록 수를 0으로 설정하면 장시간 실행(많은 파일 생성 및 삭제)하고 파일 시스템이 거의 가득 차 있지 않는 한(예: 95%), 이 시점에서 잔해물 문제가 발생하게 됩니다. Ext4의 다중 블록 할당자는 인접한 블록을 찾기가 더 어렵기 때문에 조각화에 더 강합니다. 따라서 다른 ext4 기능을 활성화하지 않고 단순히 파일 시스템 전에 ext4를 사용하여 ext3 파일 시스템을 마운트하더라도 완전히 가득 찬 더 나은 결과를 볼 수 있습니다.
파일이 자주 변경되지 않는 장기 보관용 파일 시스템(예: 대용량 mp3 또는 비디오 저장소)을 사용하는 경우 이는 분명히 중요하지 않습니다.
답변2
예를 들어, 다른 사람이 SSH를 통해 시스템에 로그인하도록 허용하는 경우 이 5% 블록을 예약하면 외부 사용자가 디스크를 채울 수 없습니다. 다른 사람이 시스템에 로그인하는 것을 허용하지 않더라도 예약된 블록은 루트로 실행되지 않는 프로그램이 디스크를 채우는 것을 방지합니다.
답변3
시스템 파티션에는 기본값 5%가 적합합니다. 예를 들어 디스크 공간이 가득 차더라도 syslog( /var/log
) 및 루트 사서함( /var/mail/root
)은 여전히 중요한 정보를 받을 수 있습니다. 일반 데이터 저장 파티션 의 경우 /home
루트를 위한 공간을 남겨둘 필요가 없습니다. 특별한 요구사항이 있는 경우 비상 공간을 확보할 사용자를 변경할 수 있습니다( tune2fs -u 1234
).
ext[234] 파일 시스템이 가득 차는 것을 허용하지 않는 또 다른 이유가 있습니다.분열.
답변4
예약된 블록을 사용하면 루트가 아닌 특정 사용자로 실행되는 사용자 및 서비스는 파일 시스템을 채울 수 없으며 해당 파일 시스템에 기록해야 하는 다른 콘텐츠를 손상시킬 수 있습니다. 그러나 루트로 실행되는 서비스는 여전히 완전히 완료할 수 있습니다. 물론 꽉 찼어요.
또한 사용자가 디스크가 꽉 찼다고 불평하거나 파일 시스템이 꽉 차서 서비스가 실패하기 시작할 때 여유 공간을 제공합니다. 예를 들어 특정 파일을 삭제하기 전에 zip/gz/7zip 아카이브에 아카이브할 수 있습니다(단, 파일 시스템이 완전히 가득 찬 경우 아카이브 파일을 생성할 수 있는 다른 사용 가능한 파일 시스템이 있을 수 있음).
5%가 기본값이 되었습니다긴그 이후로 디스크는 훨씬 작아졌으므로(수백 기가바이트가 아닌 수십 메가바이트) 5%는 그리 많지 않습니다. 다행스럽게도 tune2fs
s 옵션을 대신 사용하면 -r
말하는 내용의 더 작은 비율로 쉽게 조정하거나 특정 블록 수로 설정할 수 있습니다 -m
. 두 경우 모두 인수 0을 제공하여 보존을 완전히 끌 수 있습니다. 등의 경우에는 이 작업을 수행하지 않겠지 만 사용자 저장소 역할만 하는 파일 시스템(예: 전역 파일 공유) 또는 다음과 같은 파일에 대해 이 작업을 수행할 수 있습니다 /
. 새 파일을 생성할 때만 커지는 고정 크기 파일(예: 고정 크기 가상 머신)을 보관합니다./tmp
/var