Proxmox VE에서는 LXC(Linux Container)와 KVM(Kernel-based Virtual Machine) 두 가지의 가상화 기술을 동시에 지원한다. 오늘은 LXC에 대해 알아보고 Proxmox에서 설치 및 사용방법에 대해서도 알아보자.
1. LXC
(Linux Containers)란?
단일 컨트롤 호스트 상에서 여러 개의 고립된 리눅스 시스템 (컨테이너)들을 실행하기 위한 운영체제 수준 가상화 방법이다. 호스트 OS의 커널을 공유하면서 독립된 사용자 공간을 제공합니다. 가장 유명한 Docker 또한 해당 컨테이너 방식을 사용하여 구현 가능하다. [출처 :Wikipedia]
1.1 LXC특징
자원(리소스) 사용
전체 OS를가상화하지 않고 호스트 커널을 공유하기 때문에 오버헤드가 적고 자원 사용 효율이 높다.
성능
오버헤드가 적기 때문에 네이티브의 성능에 가깝게 동작한다.
빠른 시작 및 종료
컨테이너는 거의 즉시 시작되고 종료된다.
높은 밀도
경량화 하여 단일 호스트에서 많은 수의 컨테이너를 실행 할 수 있다.
호환성
Linux 운영체제에 최적화 되어있다.
격리 수준
프로세스 수준의 격리를 제공하며, 보안 설정에 따라 격리 수준이 달라질 수 있음
1.2 LXC 장단점
LXC의 특징에 잘 나타나 있듯이 장단점을 구분하면 다음과 같다.
👍장점
호스트 OS와 커널을 공유함으로 네이티브에 가까운 성능을 제공
낮은 오버헤드로 자원의 효율성이 높음
업데이트가 간단하며 관리 및 운영이 편리함
👎 단점
다양한 OS지원이 어려움
완전한 수준의 격리가 이뤄지지 않아 보안 문제가 발생할 가능성이 있음.
커널 모듈 로딩 불가 등 일부 고급 기능은 제한될 수 있음.
1.3 LXC 활용 전략
리소스 사용이 적은 경량 애플리케이션
마이크로 서비스 아키텍처 서비스
Linux 기반의 웹 서버 및 API서버
내부 개발 서버 및 테스트 환경생성
2. Proxmox VE에서 LXC서버 생성
2.1 WEB UI를 통한 생성
2.1.1 사전준비(설치파일 다운로드 및 서버저장)
수동 다운로드 및 이미지 업로드
LXC를 생성하여 사용하기 위해서는 Linux를 설치할 설치 파일을 필요로 한다. 보통 linux 설치 파일(tar.gz)을 다운로드하면 직접 다운로드하는 경우 CT Templates 항목에 업로드시켜서 설치 시 사용가능하다.
직접다운받은 설치 파일 Upload
자동 다운로드 및 업로드
하지만 Proxmox VE에서는 Templates을 통해 기본적인 설치 파일을 제공해 주기 때문에 여기서 다운로드하면 편하다.
Templates 항목에서 lxc 이미지 다운로드
❗참고로 local 스토리지 선택 시 CT Templates 항목이 보이지 않는 경우 Datacenter > Storage 항목의 자신의 저장공간 선택 후 Content 부분에서 Disk image, ISO image,Container template를 선택해 주면 나타나게 된다. CT Templates 활성화
2.1.2 CT(LXC) 생성 및 설치
General
항목
설명
CT ID
Proxmox에서 사용하는 숫자형태의 고유 ID (100 ~ 999999999) - 최대 9자리까지 가능
Hostname
말 그대로 서버 Hostname
Unprivileged container
권한 없는 컨테이너 생성여부 (※ 간략하게 호스트의 root 권한 실행여부에 따라 구분됨) 기본적으로 권한 없는 컨테이너 생성이 일반적임(권장사항)
Password Confirm password
생성한 컨테이너의 root 패스워드
Template
항목
설명
Storage
컨테이너 이미지를 다운받은 Storage
Template
다운받은 컨테이너 이미지 템플릿 선택
General 및 Template 설정
기타 세부사항 설정 및 최종확인 [선택사항 - ※추후 변경 가능]
이후 Disk, CPU, Memory, Network, DNS 부분은 본인의 환경에 맞춰 생성하면 된다 아래와 같이 최종확인 할 수 있으며 참고로 하단에 Start after created 항목을 체크하면 Finish를 통해 생성이 완료되는 즉시 실행된다. 생성이 완료된 LXC컨테이너는 좌측 항목에서 확인 가능하다.