가상화를 위한 준비 #2 – 네트워크

가상화를 위한 준비에서 네트워크 준비에 대해 고민을 많이 했다.

인터넷에서 찾아본 대부분의 문서들이 가정에서 공유기 밑에 ESXi를 설치하는 문서만 있었기에 거의 도움이 되지 않았다. 공유기 밑에서 DHCP 환경으로 ESXi를 설치하는 것은 별로 어려운 일이 아닐뿐더러, IP가 계속 할당되기 때문에 IP에 대해서도 고민할 필요가 거의 없다.

난 IDC에 서버를 넣어야하고 고정IP가 제한적으로 부여되기 때문에 어려움이 많았다.

[gads_468x60]

여기서 중요한 것은 ESXi를 관리하는데에 쓰이는 IP와 실제 서버에 사용될 IP, 즉 최소 2개 이상의 IP가 확보되어야만 ESXi를 사용할 수가 있다. 이 사실을 아주 오랜 시간과 실패 끝에 알아냈다. 인터넷에 있던 문서들은 공유기 밑에서 사용했으므로 이러한 문제를 하나도 겪지 않았을 것이다. IP 하나로는 ESXi를 운영할 수가 없는데 그 이유는 다음과 같다.

  1. ESXi 서버는 자체적으로 80, 443, 22번 등의 중요한 포트를 관리용 포트로 사용한다.
  2. 그 포트 번호를 다른 포트 번호로 바꿀 수 없다면 이 포트를 해당 IP의 서비스 포트로 사용할 수가 없다는 얘기가 된다.
  3. VMWare의 kb에는 이 포트번호들을 바꾸는 방법이 설명되어 있으나 실제로는 적용 되지 않는다.

결론적으로 3번을 시도하느라 엄청난 시도와 실패를 경험하고 VMWare에서 만든 문서가 잘못되어 있다는 결론이 났다. 아이피가 2개이면 이 모든 문제를 고민할 필요가 없어지게 된다.

그래서 IDC와 계약시 부여받은 IP는 3개였다. 하나는 ESXi의 관리용으로, 하나는 서비스용으로, 하나는 예비용으로 사용하고 있다. ESXi를 설치할 때 관리용 IP로 입력을 하고, ESXi 위에서 NAT와 방화벽을 담당할 서버에 서비스용 IP를 부여했다.

부디 ESXi를 실제 서비스에 응용하는 사람들은 나 같은 실패를 겪지 않기를.

가상화를 위한 준비 #1 – 서버 하드웨어

가상화를 위한 서버 하드웨어와 네트워크를 준비할 때의 참고사항을 정리해본다.

[gads_468x60]

일단 서버 하드웨어를 준비해야했다.

보유하고 있는 서버는 HP DL120G7 기본형 모델이었다. Intel Xeon E3-1220 프로세서와 4GB ECC 메모리, 250GB 하드디스크를 장착한 1U 사이즈 서버이다.

ESXi를 설치해서 게스트 운영체제들을 운영할 때 중요한 것은 CPU보다는 메모리와 디스크이다.

메모리

c03186237

메모리는 게스트 운영체제마다 개별적으로 쓰는 부분이라 내가 설치할 게스트 운영체제들이 모두 쓸 메모리의 크기에 예비용 메모리량과 시스템이 사용하는 메모리량을 고려해야한다. ESXi도 일종의 운영체제이므로 메모리를 사용하게 된다. ESXi를 실제 운영시에는 2.5GB 정도 사용하고 있으나 약 4GB 정도는 ESXi가 쓴다고 예측하면 좋을 것 같다. 참고로 ESXi는 4GB 미만의 메모리에서는 설치 자체가 되지 않는다. 4GB의 메모리를 가지고 있다 하더래도 비디오메모리 등으로 공유메모리가 나가게 되어 실제 가용메모리가 4GB가 되지 않으면 설치가 되지 않는다. 결국 메모리는 8GB ECC 메모리를 4개 장착해서 32GB로 설치했다.

하드디스크

western-digital-blue-wd10ezex-hard-drive

디스크는 사실 요새 가격이 너무 떨어졌기 때문에 용량을 증설하는데에는 어려움이 없으나 가상화를 하게되면 디스크 속도가 저하되므로 이에 대해 고민해봐야한다. 많은 커뮤니티 사이트들과 카페를 돌아다녔을 때, SSD로 하면 쾌적한 성능이 나온다고 되어있으나 여유롭게 운영체제를 이것저것 설치해보기에는 SSD는 비용이 너무 많이 든다는 문제가 있었다. 결론적으로 하드디스크는 기존에 설치되어있던 하드디스크를 모두 제거하고 Western Digital의 7200RPM 1TB 하드디스크를 두개 구입하여 넣었다. 차후에도 디스크를 더 추가할 계획을 가지고 있다.

실제 운영 상황에서 CPU는 아직까지 크게 모자라지 않았으나 예측대로 메모리는 많이 소모되었다. 디스크는 스왑메모리 때문에 그런지 생각보다 공간이 많이 소모되었다. 디스크를 처음부터 크게 장착하는 것이 좋을 것 같다.

이정도 하드웨어를 준비해서 실제 운영을 시작했는데 사실 자원은 굉장히 여유로웠다. 대부분의 경우에 CPU는 모든 서버들의 사용량 총합이 500MHz가 채 되지 않았다. 이걸 본다면 막강한 CPU를 장착하고도 효율적으로 쓰지 못하는 서버들이 얼마나 많은지 알만하다.

가상화 하이퍼바이저의 선택

서버를 가상화하기로 생각하고 처음 생각한건 가상화 하이퍼바이저의 선택이었다. (위키피디아 : 하이퍼바이저)

하이퍼바이저의 선택이 잘못되었을 때 나중에 바꾼다는건 굉장히 어렵고 복잡하므로 처음 선택이 중요하다.

내가 회사에서 사용하고 있던 것은 VMWare의 ESXi 5.0이었고 이번에 바꾸기 위해 몇가지 하이퍼바이저를 찾아보고 조사해보았다.

Microsoft – Hyper-V

mshv-overview

마이크로소프트의 하이퍼브이 시스템.(http://www.microsoft.com/ko-kr/server-cloud/solutions/virtualization.aspx)

HyperV_Homepage

장점은 익숙한 윈도우GUI를 그대로 이용할 수 있다는 것. 시중에 이미 Hyper-V를 다루는 기술이라는 하이퍼브이에 관련된 책이 나와있기 때문에 참고하기 쉽다는 점이 있었다. 실제로 교보문고에 가서 이 책을 잠시 읽어봤는데 내용도 상당히 괜찮았다.

하지만 단점도 있다. 하이퍼브이는 하이퍼브이를 지원하는 운영체제만 공식지원하고 있다. (참고 : http://technet.microsoft.com/ko-kr/library/cc794868(v=ws.10).aspx) 게스트 운영체제가 이를 지원하지 않으면 사용상 애로사항이 생길 우려가 보였다. 또한, 사실상 콘솔모드로 작동하는 Windows Hyper-V를 쓰지 않으면 Windows 서버 운영체제를 구입해야한다는 경제적인 문제도 고려해야했다.

Xen Project – XenServer

xen_project_logo_384x157

Citrix사에서 시작된 Xen Project의 XenServer. (http://www.xenproject.org)

Xen_Homepage

XenServer는 국내외에서 많이 사용되고 있다. 가장 유명한 아마존 AWS도 Xen을 사용하고 있고 KT의 ucloud시스템도 Xen을 이용하고 있다고 한다. 반가상화 시스템에서 오는 성능적인 장점이 굉장히 크다고 한다.

사실 ESXi를 설치해보다가 Xen도 한번 설치해본 것인데, 기본적인 설치방법이라던가 설치한 이후 화면에 나오는 것은 ESXi와 별반 다르지 않다. 단지 ESXi는 노랑색 화면이 나오고 Xen은 옅은 회색 화면으로 나온다는 정도?

장점은 전가상화가 아닌 반가상화이기 때문에 성능이 매우 좋다는 점. 여러 업체가 쓰고 있다는 사실만으로 믿음직하다는 점이다. 그럼에도 내가 Xen으로 가지 않은 이유는, 사용상 너무 불편하다. 특히 ESXi와 비교해서 너무 불편했는데, 가상운영체제를 설치하려고 할 때 ESXi는 ISO 파일을 그냥 업로드한 다음 마운트 해주면 그만이지만, Xen은 ISO파일을 올리고 그것을 공유디렉토리로 마운트 하는 식으로만 접근이 가능했다. 왜 이런식의 접근을 요구하는지 잘 모르겠으나 어쩄튼 사용방법이 너무 번거롭고 귀찮아서 제외하기로 결정.

VMWare – ESXi

esxi-dedicated-server-icon

VMWare의 ESXi. (http://www.vmware.com/kr/products/vsphere-hypervisor)

VMWare_Homepage

가상화 체제에서 아직까지는 최고로 유명한 ESXi. 사실 내가 계속 사용해온 것이기도 하고 위 두가지와 비교했을 때 사용상 제일 편리했다.

장점은 편리한 사용방법, 인터넷에 자료가 많다는 점. 전세계적으로도 많이 쓰이고 있다는 점, 그리고 전가상화 시스템이기 때문에 위 두 운영체제와는 달리 어떤 운영체제도 지원한다는 점이 제일 좋았다. 사실 어떤 운영체제든 다 지원한다고는 할 수 없겠으나 vSphere Client에서 지원하는 운영체제는 현존하는 대부분의 메이저 운영체제들은 다 지원한다고 봐도 무방하다. 그리고 ESXi는 무료로 배포되고 있다. 다만, 라이센스는 무료로 발급 받을 수 있으나 사용상의 제약조건이 존재한다. 단점은 전가상화로 인해 성능은 약간 낮다는 점이 있었다.

그래서 결국 무엇을 선택했는가.

결론적으로는 VMWare ESXi를 선택했다. 세가지 비교 결과 성능은 약간 낮을 수 있지만, 일단 사용상으로 불편하다면 계속 사용하지 않게 될 수 밖에 없었다. 더군다나 내 서버는 서비스용 서버라기 보다는 공부용 성격이 강하기 때문에 이런 저런 운영체제를 자유자재로 설치했다 지웠다 하게 되는데 Xen의 경우는 이게 너무나 불편해서 제외하게 되었다. 만약 성능을 중시한다면 Xen이 가장 좋은 선택이 아닐까 싶다. 하여튼 난 Hyper-V와 ESXi 중에 선택을 해야했는데 Hyper-V는 공식적으로 지원하는 운영체제가 제한적이었다. 사실 공식지원을 안하는 것이지 설치 자체는 잘 될 것 같지만 그래도 일단 기분이 다르니까. 만약 윈도우를 못 벗어나겠다거나 윈도우만 써야겠다, 난 MS가 신뢰가 간다면 Hyper-V를 선택해야할 것 같다.

결국에는 손에 제일 익었고 내가 사용할 상황에 가장 적절한 ESXi를 선택하고 지금도 잘 사용하고 있지만 나중에는 한번 Xen이나 Hyper-V도 설치해서 살펴봐야할 것 같다.