CentOS 7 이 최신 버전이며 6 과 비교해서 굉장히 많은 개선이 이루어졌으므로 7 을 사용하세요.

논리 볼륨 관리자(LVM - Logical Volume Manager)

리눅스에서 저장 장치를 다루려면 LVM 에 대해서 알고 있어야 한다. 파티션 작업을 진행하기전에 간단하게 LVM 의 개념과 장단점에 대해서 알아보자.


Logical volume management는 디스크나 대용량 스토리지 장치를 유연하고 확장이 가능하게 다룰수 있는 기술이며 이를 리눅스 커널에 구현한 기능은 Logical Volume Manager 이라고 부른다. 

전통적으로 저장 장치를 사용했던 방식은 물리 디스크를 파티션이라는 단위로 나눠서 이를 OS 에서 마운트해서 사용했는데 마운트를 하려면 파티션을 특정 디렉터리와 일치시켜 주어야 했다.

전통적인 파티션 구조

만약 특정 파티션(/home 이라 가정하자)에 마운트된 파티션이 용량이 찼을 경우 다음과 같이 번거로운 작업을 수행해야 했다.

  1. 추가 디스크를 장착
  2. 추가된 디스크에 파티션 생성 및 포맷
  3. 새로운 마운트 포인트(/home2) 를 만들고 추가한 파티션을 마운트
  4. 기존 home 데이타를 home2 에 복사 또는 이동
  5. 기존 home 파티션을 언마운트(unmount)
  6. home2 를 home 으로 마운트 

LVM 은 이름처럼 파티션대신 볼륨이라는 단위로 저장 장치를 다룰 수 있으며 물리 디스크를 볼륨 그룹으로 묶고 이것을 논리 볼륨으로 분할하여 관리하므로 스토리지의 확장이나 변경시 서비스의 변경을 할 수 있으며 특정 영역이 사용량이 많아져서 저장 공간이 부족해지거나 할 경우에 유연하게 대응할 수 있다. 다음 그림을 보자.

LVM 구성 예

이제 /home 영역이 거의 찼을 경우 LVM 이 적용되어 있으면 다음과 같이 처리할 수 있다.

  1. 추가 디스크를 장착
  2. 추가된 디스크에 파티션을 만들어 물리 볼륨 생성
  3. 물리 볼륨을 볼륨 그룹에 추가. home 은 vg_data 볼륨 그룹이므로 여기에 추가한다.
  4. home 이 사용하는 논리 볼륨인 lv_home 의 볼륨 사이즈를 증가시켜줌

위와 같이 변경 작업을 기존 데이타의 삭제, 이동없이 서비스가 구동중인 상태에서 유연하게 볼륨을 늘릴 수 있다. LVM 은 리눅스 서버를 운영할 경우 반드시 알고 있어야 할 기술이다.

아나콘다 인스톨러는 설치시 자동 파티션 옵션을 선택하면 LVM 을 사용하여 파티션 레이아웃을 구성하고 있다.


파티션 및 설치 종류 선택

설치 공간을 선택하고 파티션으로 나누는 가장 중요한 단계이다. 기존 데이타가 있을 경우 손실될 우려가 있으므로 신규 서버가 아닐 경우 데이타 백업후에 진행하자.

설치 종류는 다음과 같다.

  • 모든 공간 사용 - 선택된 드라이브의 모든 파티션을 삭제한다.
  • 기존의 Linux 시스템 교체 - 기본 설치 옵션이다. 윈도나 MacOS X 등의 다른 OS 가 있는 파티션은 삭제하지 않고 리눅스 파티션이 있을 경우 삭제하고 설치한다. 기본 
  • 현재 시스템 축소하기 - 리눅스를 설치할 파티션 공간이 부족할 경우 기존 파티션의 크기를 줄이는 기능이다. 
  • 여유 공간 사용 - 디스크에 여유 공간이 있을 경우 기존 데이타를 놔두고 새로운 파티션을 생성한 후에 설치한다.
  • 사용자 레이아웃 만들기 - 설치 프로그램이 기본적으로 파티션 레이아웃을 생성하나 이 옵션을 선택할 경우 수동으로 레이아웃을 생성할 수 있다.

설치 유형 선택

기본값인 기존의 Linux 시스템 교체 를 선택하고 하단의 파티션 레이아웃 확인 및 변경(V) 옵션을 선택하자. 이 옵션을 선택하면 설치 프로그램이 생성하는 파티션 및 마운트 포인트를 확인하고 수정할 수 있다. 레드햇은 설치시 다음 4개의 파티션은 확장을 위해 별도의 파티션으로 만드는 것을 권장하고 있다.

  • swap 파티션 - 최소 256MB 이상이어야 한다. 스왑 파티션은 시스템이 데이타 처리시 메모리가 부족할 경우 데이타 저장 용도로 사용된다. 예전에는 시스템에 장착된 RAM 용량과 동일한 크기의 스왑 공간을 잡는 것을 권장했지만 시스템에 장착되는 RAM 용량이 커짐에 따라 최근에는 시스템 RAM 용량보다는 시스템 RAM의 표준 작업량에 기반하여 스왑 잡는 것을 권장하고 있다. 아래의 표를 보고 RAM 용량에 기반하여 스왑 크기를 산정해 보자.

    시스템 RAM 용량권장 스왑 공간 크기동면 모드 허용시 권장 스왑 공간
    2GB까지RAM 의 2배. 2GB 일 경우 4GB 권장RAM 의 3배
    2GB에서 8GBRAM과 동일한 크기RAM 의 2배
    8GB에서 64GBRAM 의 절반RAM 의 1.5배
    64GB이상4GB별도의 스왑 공간 불필요
    권장 스왑 공간
  • /boot 파티션 - 리눅스 커널이 위치하며 GRUB 부트 로더가 이 디렉터리를 참고하여 리눅스 커널을 로딩한다. 커널 업데이트시 기존 커널 버전은 남겨놓으므로 최소 250MB 이상을 잡는 걸 권장한다. GRUB 부트 로더는 ext2, ext3, ext4(권장) 파일 시스템을 지원하므로 이 세 개중 하나의 파일 시스템으로 파티션을 포맷해야 한다. Reiserfs, XFS나 VFAT 등의 파일 시스템은 지원하지 않으므로 주의해야 한다.
  • root 파티션 - 루트 파티션은 / 에 마운트되며 /usr, /tmp, /var 같은 중요한 디렉터리들이 위치하게 된다. 주의할 점은 /usr 은 root 파티션과 별도의 파티션으로 부팅이 제대로 안 될수 있다. 부팅 과정중 root 파티션을 마운트하고 부팅에 필요한 요소들을 /usr 디렉토리에서 찾게 되는데 /usr 이 별도의 파티션이 되면 부팅 과정이 더 복잡해 지고 부팅에 실패할 수 있으므로 /usr 을 분리하는 것은 권장하지 않는다. 
  • /home 파티션 - 사용자의 홈 디렉터리 및 데이타가 위치하는 파티션이다. 적당히 큰 크기를 잡는 것을 권장한다.
  • 그리고 Web 서버나 DB 서버나 메일 서버등을 운영할 경우 /var 를 별도의 파티션으로 분리하는 게 좋다. MySQL 의 data 나 메일 서버의 메일큐, 서버의 로그 파일, HTTP contents, yum 의 패키지 저장등은 모두 /var 디렉터리에 저장된다. 서버의 경우 데이타가 계속 증가하므로 /var 는 별도의 파티션으로 분리하고 향후 확장을 위해 LVM 을 적용하는 것이 좋다.

이제 실제 파티션 작업을 수행하기 위해 다음을 클릭해 보자.

사용할 디스크 선택

이 화면은 디스크가 하나일 경우는 표시되지 않고 여러개의 디스크가 장착된 장비일 경우에만 표시되는 화면이다.

디스크 선택

좌측은 장착된 전체 디스크를 표시하며 리눅스에 사용할 디스크는 화살표를 눌러서 우측으로 보내면 된다.

2개 이상의 디스크를 사용할 경우 GRUP 부트 로더를 설치할 디스크를 지정해야 다음 단계로 진행할 수 있다. 

부트 로더 지정

리눅스용 디스크를 선택하고 부트 로더를 설치할 디스크를 선택했다면 다음 단계로 진행하자.

아나콘다 인스톨러가 설정한 파티션 레이아웃이다. 디스크 2개를 vg_rhel 이라는 볼륨 그룹으로 묶고 논리 볼륨으로 lv_root, lv_swap 을 만들었다. vg_root 는 마운트 지점이 / 이고 다른 논리 볼륨이 마운트 지점이 없으므로 /usr, /home, /var 등이 다 lv_root 볼륨에 포함되게 된다. 디스크 용량이 클 경우 인스톨러가 home 등을 별도의 논리 볼륨으로 만들어준다. 

서비스 서버라면 var 를 별도의 논리 볼륨으로 분리하는등 주의깊게 디스크 레이아웃를 구성하는것을 권장하지만 내부 시스템이나 개발용은 기본 설정으로 진행해도 큰 문제는 없다.

파티션 레이아웃 확인

이제 다음을 누르면 다음과 같이 포맷 경고창이 뜨며 데이타 삭제에 대해서 경고한다. 

포맷 경고
포맷해도 문제가 없는지 다시 한번 확인해 보고 다음을 누르면 파티션 구성을 디스크에 반영한다는 안내창이 뜬다. 디스크에 변경 사항 기록(W) 을 클릭하거나 Alt-W 키를 누르면 포맷이 진행된다.

 
디스크에 반영

부트로더 설치

부트 로더를 설치할 장치 및 부트 로더에 등록할 운영 체제 선택창이 표시된다. 특별히 설정할 게 없다면 다음으로 진행하자.

부트로더 선택

패키지 그룹 설치

이제 설치할 패키지를 선택할 순서이다. 도입부에 설명했듯이 RHEL과 CentOS 는 패키지 구성이 약간 다르며 이에 따라 설치시 패키지 선택 옵션도 약간 다르다. 각각의 화면을 보면서 설치를 진행해 보자.

RHEL 패키지 그룹

RHEL은 기본 패키지 설치 옵션이 기본 서버 설치 이다. 이 옵션을 선택할 경우 다음과 같은 패키지가 설치된다. 

RHEL 패키지 선택
  • base - CentOS Linux 기본 설치.
  • console-internet - 관리자가 자주 사용하곤 하는, 콘솔 인터넷 억세스 도구들.
  • core - 가능한 최소 설치
  • debugging - 잘 못 동작하는 어플리케이션의 디버깅과 성능 문제 진단을 위한 도구.
  • directory-client - 디렉터리 서비스에 의해 관리되는 네트워크에 통합하기 위한 클라이언트
  • hardware-monitoring - 서버 하드웨어를 모니터링 하기 위한 도구들
  • java-platform - CentOS Linux 서버와 데스크탑 플랫폼을 위한 자바 지원
  • large-systems - 커다란 시스템을 위한 성능 지원 도구
  • network-file-system-client - 네트워크 저장소에 시스템을 붙이도록 함
  • performance - 시스템과 어플리케이션 수준의 성능 문제를 진단하기 위한 도구.
  • perl-runtime - 공통 라이브러리와 기능에 대한 Perl 인터페이스
  • server-platform - CentOS Linux 서버 플랫폼을 위한 지원 라이브러리.

웹서버 를 선택할 경우 기본 서버의 패키지 구성과 유사하나 다음 항목들이 다르다.

(plus): 추가 (minus) : 삭제
  • (minus) hardware-monitoring
  • (minus) large-systems
  • (plus) mysql-client -  MySQL SQL 데이터베이스 클라이언트와 관련 패키지.
  • (plus) php - PHP 웹 어플리케이션 프레임워크

  • (plus) postgresql-client - PostgreSQL SQL 데이터베이스 클라이언트와 관련 패키지.
  • (plus) turbogears - TurboGears 웹 어플리케이션 프레임워크.

  • (plus) web-server - 시스템이 웹서버로 동작하며 Perl과 Python 웹 프로그램을 실행하도록 허용

  • (plus) web-servlet - 시스템이 자바 서브릿을 호스트하도록 허용

web-servlet 이나 turbogears 등은 해당 프레임워크로 개발하지 않는다면 유용하지 않으므로 기본 서버 를 선택하고 설치가 완료된 후에 불필요한 패키지를 제외하고 웹서버 패키지만 설치하자.

이제 다음을 누르면 아래와 같은 안내 화면이 펼쳐지고 설치가 진행된다.

설치 진행

CentOS 패키지 그룹

CentOS 는 기본 설치가 최소 설치라고 표시되어 있으나 실제 패키지 그룹 선택은 Desktop 으로 되어 있다. 또 RHEL 에는 없는 Minimal 옵션도 표시되어 있다. 데스크탑일 경우 엑스 윈도 시스템과 많은 프로그램이 설치되므로 RHEL처럼 Basic Server 옵션을 선택해서 설치를 진행하자.

 

CentOS 패키지 선택

다음을 누르면 아래와 같은 안내 화면이 펼쳐지고 설치가 진행된다.

qe

설치 완료

설치가 완료되면 다음 화면이 표시될 것이다. 

설치 완료

DVD 미디어를 제거하고 재부팅을 클릭하여 새로운 시스템으로 부팅해 보자

참고 자료