가상화 서버와 ESXi
처음에 뭣도 모르고 가상화 서버에 뛰어들었을때 남들이 다 쓰는 ESXi를 선택한건 당연한 결정이었을지 모른다. 어떤 선택지가 있는지도 잘 몰랐고, 내가 서버에 어떤 서비스들을 돌릴지도 몰랐으니까. 허나 써보면 써볼수록 무료버전 ESXi의 한계는 너무나도 뚜렷했다. 그냥 VM을 올리고, 설치해서 돌리는 작업밖에 못했으니까. 가상화가 주는 편리함은 충분히 맛보았지만, 기능상으로 성에 차지 않았다. 그래서 다른 선택지들을 찾기 시작했다.
ESXi를 떠나 어떤 선택지가 있나?
- Hyper-V – 윈도우 위에서 서비스를 돌리고 싶으면 너무나 당연한 선택이지만, 나에겐 해당 사항이 없다.
- Xenserver – 도커를 지원하고 VM도 돌리는 매력적인 선택지.
- Proxmox – LXC 컨테이너를 지원하고, 역시 VM도 가능.
- Unraid – 원래 NAS 구성을 위한 OS지만 최근부터 컨테이너와 VM 둘 다 지원.
Xenserver와 Proxmox가 아무래도 내가 필요한 사양과 잘 맞았고, 둘 중에 고민하다가 Proxmox를 택했다. 왜냐고? 내가 익숙한 데비안 베이스라서. ㄷㄷㄷ
설치와 첫 컨테이너
설치는 그냥 여타 리눅스 까는 것과 크게 다르지 않았다. 내 서버가 NVMe를 지원하지만 NVMe로의 부팅은 지원하지 않는걸 뒤늦게 발견하고(…) Proxmox는 하드에 깔고 NVMe 드라이브는 컨테이너와 VM 이미지를 올리는데 쓰기로 급 결정을 했다. 어찌저찌 설치 후 대망의 첫 컨테이너. 컨테이너 템플릿을 웹UI에서 바로 다운받고 첫 컨테이너를 올리는데 걸린 시간은 3분도 안됐다. 아… ESXi에서 뭐 할때마다 새로 깔던 날을이여 안뇽…
Privileged vs. Unprivileged
컨테이너는 크게 두 종류가 있다. Privileged와 Unprivileged인데 전자는 컨테이너의 root 계정이 Proxmox의 root 계정이고, 후자는 컨테이너 내의 root이 Proxmox 가면 듣보잡인 뭐 그런 개념이다. 아무래도 컨테이너에서 계정이 탈출하는 상황을 가정하면 후자가 안전하다. 다만 듣보잡 계정을 쓰면 상대적으로 안전한 만큼 불편함도 있다. 예를 들어 외부 스토리지를 연결해줘도 unprivileged 컨테이너는 그 스토리지에 쓰기를 할 수가 없다. 뭐 어찌 방법이 있는거 같긴 한데 Proxmox 문서가 좀 시망이라 좀 더 찾아봐야 할 듯.
지금까지 8개의 컨테이너를 올렸는데 두개는 privileged로 할 수 밖에 없었다. 외부 스토리지에 쓰기를 해야하거나 브릿지 네트워크 말고 추가로 터널을 뚫어줘야 했던 경우. Unprivileged 컨테이너는 컨테이너 안에 있구나라는 느낌이 드는 반면 privileged 컨테이너는 일단 콘솔 안으로 들어가면 이게 컨테이너인지 VM인지 체감하기가 매우 어렵다.
백업의 감동
ESXi에서 사실상 불가능했던 백업… Proxmox에선 클릭 한두번이면 가능하다. 하… 진짜 감동 먹을 수 밖에 없다. 이건 말로 설명 못한다. 서버는 당연히 백업이 돼야한다. 너무너무 당연한거다. 일단 수동으로 하나씩 백업 받아놨고 일주일에 한번 자동으로 되도록 설정 해놓음. 외장 하드로 백업하도록 했다.
퍼포먼스의 차이
VM과 컨테이너는 당연히 퍼먹는 리소스 차이가 있을 수 밖에 없다. 이 블로그가 돌아가는 웹서버는 ESXi 시절 1.5기가 메모리를 할당해줬었는데, 컨테이너에선 384메가로도 충분하다. 이런 차이가 쌓이고 쌓여 원래 있던 서비스 전부+@를 올리고도 윈도우 10 VM을 추가적으로 돌릴 수 있는 위엄을 보여준다. 이러고도 아직 두어개 정도 추가할만한 여력이 남아있으니 말 다했다.
그럼 단점은?
우선 가장 큰 단점은 문서화documentation에 있다. 인터넷에서 찾을 수 있는 문서가 절대적으로 부족하고 Proxmox 홈페이지나 포럼에도 너무 대충 설명돼있다. 한글로 된 정보는 아예 없다고 보면 됨. 문서의 절대적인 양도 적은데 이놈이 한번 베이스 OS를 바꿨었는지 예전 문서는 지금 상황에서 아예 적용을 못한다. 그래도 어차피 데비안이라 그냥 데비안 관리하듯 하면 되긴 하다.
엔터프라이즈 레벨에서 사용을 안한다. 하이퍼바이저 배워서 나중에 어딘가 써먹을 생각이면 다른거 쓰는게…
데비안 9.0 (스트레치) 베이스의 Proxmox 5.0은 아직 베타다. 이게 중요하면 좀만 기다렸다 정식버전 나오고 쓰는게 나을듯.