ext4 파일 시스템의 최대 파일 크기 제한

ext4 파일 시스템의 최대 파일 크기 제한

Ext4의 최대 파일 시스템 크기는 1EB이고 최대 파일 크기는 16TB입니다.

그런데 파일 시스템 수준에서 최대 파일 크기를 줄이는 것이 가능합니까? 예를 들어, 지정된 값(예: 1MB)보다 큰 파일 생성을 허용하고 싶지 않습니다. ext4에서 이를 달성하는 방법은 무엇입니까?

ext4가 아닌 경우 다른 최신 파일 시스템이 이러한 기능을 지원합니까?

답변1

ext4max_dir_size_kb크기를 제한하는 설치 옵션이 있습니다목차, 그러나 일반 파일에는 유사한 옵션이 없습니다.

setrlimit()그러나 특정 셸에서 설정한 제한 이나 내장된 제한을 사용하여 ulimit프로세스가 제한보다 큰 파일을 생성하지 못하도록 할 수 있습니다 . limit대부분의 시스템에서는 각 사용자에 대해 시스템 전체에 걸쳐 이러한 제한을 설정할 수도 있습니다.

프로세스가 이 제한을 초과하면 SIGXFSZ 신호를 받습니다. 이 신호를 무시하면 파일 크기를 초과하는 작업(예: write()시스템 truncate()호출)이 오류와 함께 실패합니다 EFBIG.

이 제한을 파일 시스템으로 옮기기 위해 사용할 수 있는 한 가지 방법은 다음과 같습니다.퓨즈(사용자 공간의 파일 시스템) 이 제한 사항 세트로 사용자 공간 핸들러가 시작되는 파일 시스템입니다. bindfs좋은 후보입니다.

실행하는 경우 bindfs dir dir(즉, 바인딩 dir자체) bindfs시작을 다음과 같이 사용합니다( zsh구문).

(limit filesize 1M; trap '' XFSZ; bindfs dir dir)

그러면 이 디렉터리에 1M보다 큰 파일을 생성하려는 시도는 실패합니다. 파일을 쓰는 프로세스에 오류를 bindfs전달합니다 .EFBIG

이 제한은 일반 파일에만 적용되며 디렉터리가 제한을 초과하여 커지는 것을 막지는 못합니다(예: 그 안에 많은 수의 파일 생성).

답변2

시스템 수준에서 설정해야 합니다.

우분투 편집의 경우/etc/security/limits.conf

다음과 같은 줄을 추가합니다.

timb        hard    fsize           10000

와일드카드 문자를 사용할 수도 있습니다.

session required pam_limits.soAFAIK 에 추가하지 않으면 루트에서는 작동하지 않습니다 /etc/pam.d/common-session.

관련 정보