리눅스는 디폴트로 파일 크기 제한이 있다.
2G를 넘어서면 문제가 생긴다. 아파치 로그가 2G가 넘지 않아야 하고, 로그파일이 2G가 넘어가지 않도록 이메일을 통해 alert mail을 보내곤 했었다. 그래서 파일 시스템과 관련된 공부의 필요성을 느꼈다.

 

알고보니.. 꼭 그런 거만 아니더라.

 

커널 2.6은 64비트로 블럭 디바이스를 처리하는 기능이 추가되어 2TB까지의 파일시스템을 지원하게 되었다

컴파일시 다음의 옵션을 쓰면 된다고 하더라..

 
-D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64
또는
-D_GNU_SOURCE

참고자료 : /usr/include/features.h

 

ext 파일시스템 자료는 다음의 링크를 참조하시라.

http://linux390.3atec.com/cgi/cvsweb/BiBle/4.1.3.1.txt?rev=1.6


이와 관련해서 재미있는 것을 하나 찾았는데. 바로 LFS라는 것이다.
Large File Support in Linux 라는 것인데, 파일 크기때문에 스트레스를 받는다면 이걸 쓰면 될 것 같다. x86에서도 잘 돌아간다니. 쓸만할 것 같다.
대용량 파일이 필요한 곳이 생기면 써봐야겠다.

http://www.suse.de/~aj/linux_lfs.html

 

의문이 드는 게 왜 2G라는 파일 제한이 있게 된 걸까? 라는 궁금증이 있었다.

자료를 찾던 중 다음의 블로거에서 좋은 정보를 얻었다.

출처 : http://monac.egloos.com/1227726

 리눅스에서는 fopen(), open()을 통해 열 수 있는 최대 파일 크기가 2GB이다.

파일 시스템은 2G 이상의 파일을 지원할 수 있지만 표준 함수들의 제약 때문에 2GB 이상의 파일에 접근하지 못하는 문제가 생기는 것이다.

그리고, 최대 파일 크기는 표준 함수가 아니라 각 운영체제에서 제공하는 확장 함수들이 있다면, 이들 함수를 사용하기 때문에 운영체제마다 최대 파일 크기는 달라진다고 할 수 있다

 

POSIX 표준 인가에 따르면 표준 파일 함수는 최대 2GB까지로 정의되어 있다고 알고 있다 (이 부분은 내가 확인해야 겠다.)

 

 

결국은 운영체제에서 지원하는 시스템을 사용하는 프로그래밍  api의 제한때문에 제대로 활용을 못하고 있었던거 같다...

 

흐흐~~

 

'unix and linux' 카테고리의 다른 글

zagent 좀비 프로세스.  (0) 2007.10.08
포트 충돌 (zagent)  (0) 2007.10.08
파일시스템 타입 보기  (0) 2007.10.05
스카시 디스크 장비 보기  (0) 2007.10.01
csh과 bash 차이. (변환 가이드)  (0) 2007.09.12
Posted by '김용환'
,