리눅스의 디렉토리별 파티션 구성
작성일 16-09-30 14:27
페이지 정보
작성자서방님 조회 610회 댓글 0건본문
디스크 파티션의 등장 배경
초기 유닉스 시스템의 구성에서 예측하기 어려운 부분이 RAM이었다.
CPU와 HDD는 일정한 사용량을 예측하여 구성하더라도, 많은 수의 클라이언트들이 서버에 접속하면 프로세스가 발생하면서 RAM 사용량이 급격히 증가할 수 있기 때문이다.
그래서 상대적으로 가격이 저렴하고 공간적 여유가 있는 하드디스크의 일부를 SWAP 영역이라는 이름으로 파티션을 설정하여 최상위 디렉토리인 "/(루트)"가 사용하는 파티션과 더불어 디스크를 파티셔닝하여 사용하였다. 이때 SWAP의 용량은 전체 디스크의 10% 정도가 권장되었다.
리눅스의 파티션은 초창기는 유닉스처럼 /와 swap 영역으로만 분할되었으나 본격적으로 서버로 사용되기 시작한 커널 2.2 기반의 레드헷 리눅스 버전 6(1999년)에서는 4개의 파티션 분할이 권장되었다.
이때부터 리눅스는 Primary Partition을 4개까지 지원하였고, 이때 권장하는 분할 파티션이 /, swap, /usr, /home 이었다. /usr과 /home의 공통점은 서버로 사용될 경우 급격한 디스크 용량 증가가 발생할 수 있는 디렉토리라는 점이다.
2000년 이후로 기업체의 서버로 리눅스가 사용되면서 이메일(스팸메일 포함)이 쌓이는 /var/spool/mail 디렉토리와 각종 로그가 쌓이는 /var/log 때문에 /var 디텍토리도 분할하여 사용되기 시작하였다.
/usr, /home, /var 디렉토리를 분할하여 파티셔닝하지 않는 경우 / 디렉토리의 용량이 풀(full) 이 되면 프로세스가 중단되거나, 새로운 프로세스를 실행시킬 수 없는 문제가 발생할 수 있으므로 분할하여 사용하는 것이 권장되는 것이다.
추가적으로 멀티부팅을 위해 사용하는 LILO 부트 매니저 프로그램은 부팅을 위한 리눅스 커널이 하드디스크의 1024 실린더 영역에 있어야 부팅이 가능하기 때문에 부팅을 위해 /boot 도 분할하여 사용해야 했다(현재 부트 매니저로 사용되는 GRUB은 이 문제점을 해소한 상태이다)
파티션 분할이 필요한 디렉토리
현재는 보안상의 이유, 시스템의 안정성 확보, 관리의 편의성에 따라 리눅스에서 사용하는 각 디렉토리의 특성에 따라 별도의 파티션을 구성하거나, 단지 /와 swap 만으로 분할하여 파티셔닝을 한다. (전적으로 사용자 맘이다)
별도의 파티션을 구성하는 것을 검토할 필요가 있는 디렉토리는 다음과 같다.
- /swap : /와 함께 반드시 필요한 파티션이다. 통상 물리 메모리의 2배 정도를 할당한다.
- /boot : 운영 시스템의 커널이 들어가는 디렉토리이다. 커널 컴파일을 위해 여유있게 100M 이상으로 할당해야 한다.
- /usr : 리눅스의 응용프로그램이 설치되는 디렉토리이다.(windows의 C:\Program Files에 해당) 전통적으로 분할이 권장되었지만, 현재는 /와 /usr이 분리될 경우 유지관리의 문제가 발생할 수 있으므로 분리하지 않도록 권장된다
(시스템 유지관리에 필요한 일부 명령어가 /usr/sbin에 저장되기 때문)
- /var : 위에서 언급한 것처럼 반드시 분할해야 하는 디렉토리로 부상하고 있다. 스풀링 파일들이 저장되는 /var/spool, 메일이 저장되는 /var/spool/mail, 로그가 저장되는 /var/log, yum 패키지를 다운로드하는 /var/cache/yum 디렉토리 때문에 적어도 3G 이상 설정을 권장한다.
- /home : 시스템을 사용하는 사용자 계정이 많을 경우 반드시 분할하도록 권장된다. 사용자 계정을 만들면 각 사용자는 자신의 홈 디렉토리를 /home 디렉토리 밑에 자신의 계정명을 디렉토리로 갖기 때문이다.(/home/user01, /home/user02....등)
/home을 분할할 경우 각 사용자가 불필요한 파일을 업로드 하는 것을 제한할 수 있고, 특수 파일 생성 제한 등의 정책을 파티션에 부여할 수 있으므로 분할이 권장된다.
- /tmp : 스티키 비트라고 부르는 특별한 권한으로 인해 보안상의 이유로 파티션 분할이 권장된다. /tmp 디렉토리는 원래 임시 저장 을 위한 디렉토리로 다양한 시스템 계정이 사용하기 때문에 스티키 비트라는 특수 권한을 부여해서, 공유 디렉토리처럼 모든 사용자가 /tmp 디렉토리에 파일을 생성할 수 있도록 하되, 삭제시에는 본인이 생성한 파일만 삭제할 수 있도록 만든 권한체계이다.
(2010년 분할되지 않은 /tmp 디렉토리를 이용해 root 권한을 획득하는 취약점이 발표되었는데, /tmp 디렉토리를 분할하여 파티션 했다면 막을 수있는 취약점이었다)
파티션의 종류
위에서 잠깐 언급한 것처럼 하나의 디스크는 모두 4개의 Primary Partition을 가질 수 있다.
간단한 리눅스 서버 시스템이나 데스크탑으로 리눅스를 사용할 경우 /와 swap 두 개의 파티션으로만 구성할 수도 있다.
그러나 /var, /tmp, /home 등 보안이나 안정성을 위해 추가적인 파티션 구성이 필요할 경우 4개의 Primary Partition만으로 만들 수 없기 때문에 Extended Partition(확장 파티션)을 사용한다.
Extended 파티션은 논리 파티션을 담을 수 있는 그릇 역할을 하는 파티션이고 하나의 디스크에 하나의 확장 파티션만 설정할 수 있으므로 일반적으로 프라이머리 파티션을 구성하고 남은 디스크 전체의 공간을 확장 파티션으로 설정한다.
논리 파티션은 확장 파티션 안에 논리적으로 만들 수 있는 파티션으로 최대 12개의 논리 파티션을 구성할 수 있다.
아래 그림은 주 파티션(Primary Partition)과 확장 파티션, 논리 파티션을 이용한 파티션 구성의 예이다.
댓글목록
등록된 댓글이 없습니다.
