[CentOS LVM 기반 XEN 가상화 구축하기]에서 XEN 환경의 가상화 시스템을 구축하는 경우를 정리하였습니다. 하지만 실제 서비스 환경에서는 공인 IP가 넉넉하게 주어지지 않기 때문에 IP를 아껴써야 하는 경우가 있을 수 있습니다. 이번에는 이런 환경에서 호스트서버의 특정 포트로의 요청을 공인 IP가 없는 내부 내트워크의 특정 가상 게스트에 포트 포워딩 하는 방법에 대해서 정리해 보겠습니다.
구글링해서 얻은 이미지입니다만, 내부 아이피만을 가진 게스트 서버들의 경우 virbr0를 통해 내부끼리의 통신을 할 수 있게 됩니다. 이러한 내부 내트웍으로의 통신이 가능해 지려면 virt-install 명령을 사용할 때 잊지 말고 다음과 같이 default 네트워크 설정을 해주시면 됩니다.
$ virt-install ... --network=network:default
작업에 앞서 /etc/sysctl.conf 파일의 내용을 수정해 줍니다. 사용하는 이더넷 포트가 eth0일 경우
가상화 머신을 하나 가지고 싶다고 생각하던 중 실제로 구축을 해보고자 서버를 구매하였습니다. 처음에는 싱글 노드를 가진 OpenStack 시스템을 구축하고 싶었지만 생각보다 과정이 만만치 않더군요. 일단은 간단하게 Xen 서버를 구축하여 구동하기로 하였고 몇주째 사용중에 있습니다. 생각 이상으로 안정적인것 같아 설치 과정을 기록해 두고자 정리합니다.
제가 개발에 사용한 서버는 DELL PowerEdge C1100 중고에 72G메모리와 1TB 하드디스크 3개를 RAID5로 묶었습니다. CentOS는 현재 최신버전인 6.5를 설치하였습니다. 부가적인 서비스 모두 필요없으므로 [링크]에서 CentOS Minimal 버전을 다운로드 합니다.
페이지에서 위와 같이 64비트용 ISO를 다운 받습니다. 시디로 굽거나 USB에 구워서 사용하시면 됩니다. 이후에 서버에 일반적인 방식으로 설치를 하시면 됩니다. 다만 파티션의 전체를 LVM Volume Group으로 묶어서 사용합니다. 저의 경우 전체 2T용량을 다음과 같이 설정하였습니다.
위와 같이 네트워크 설정을 진행해 주시면 네트워크의 준비는 끝납니다. 기본적으로 eth0에 할 설정을 xenbr0에 설정했다는것이 중요한 부분입니다. 예시에는 DHCP를 사용하는 네트워크 환경의 예시를 적어놓았는데 만약 고정 아이피를 사용할 경우 다음과 같이 설정하시면 됩니다.
여기서 유심히 봐야 하는 부분은 virt_caps인데요 CPU가 전가상화를 지원하고 BIOS에서 Enabled되어있다면 hvm이 보여집니다. hvm이 없다면 전가상화는 불가능한것으로 이해하시면 됩니다. 개인적으로 설정파일을 이용하는 xm 또는 xl 커맨드로의 가상서버 생성은 조금 복잡한것 같아 libvirt를 설치하겠습니다.
여기서 기존에 정의하지 않았던 virbr0를 확인할 수 있습니다. 여기의 네트워크 대역이 192.168.122.0인것을 확인할 수 있습니다.
기본적으로 물리적인 eth0은 xenbr0 브릿지를 통해 dom0라는 가장 기본이 되는 가상 도메인의 eth0에 연결됩니다. 이를 통해서 다른 게스트들이 외부로의 통신이 가능해 집니다. 여기서 보여지는 vif들은 192.168.122.x를 부여받게 됩니다. 즉 새로 설치한 게스트의 eth0(bridge:xenbr0)은 xenbr0를 직접 사용하여 공용 아이피를 설정할 것이고 eth1(network:default)은 dom0의 사설 아이피를 설정할 것입니다.
잊지 말고 네트워크 서비스를 재시작 해줍시다. 이제 이 서버는 외부 네트워크뿐만 아니라 다른 가상 서버들과도 통신이 가능한 가상 서버가 되었습니다. xm help를 통해 어떤 작업이 가능한지 확인해 보시기 바랍니다. (xm top을 통해 전체 게스트들의 상태를 확인할수도 있습니다) 네트워크 문제가 발생했을 경우 콘솔에 바로 접속하는 방법은 다음의 명령어를 사용하시면 됩니다.
$ xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 1022 16 r----- 17344.6
theeye 1 16384 2 -b---- 379145.7
$ xm console theeye
virt-install을 이용하여 설치할 때에 사용할 수 있는 원격지 저장소중에 제 생각에 빠른곳 몇개를 정리해 보았습니다.