참고 사이트(출처) :
http://blog.blueweb.co.kr/145
최근 IT 인프라스트럭처 화두는 당연 서버 가상화라 할 수 있다. 효율적인 서버 자원의 이용과 응급 재해시 서비스 중단 없는 빠른 서비스
복구, 신규 서버 구입에 필요한 하드웨어 비용 지출의 감소 및 서버가 차지하고 있는 공간과 전원을 절약시켜 데이터 센터의 효율성을 대폭 향상
시킬 수 있는 것 등이 서버 가상화의 장점이라고 할 수 있다.
그러나 서버가상화 기술의 핵심인 가상화 소프트웨어의 높은 가격으로
인한 초기 도입 비용의 상승은 이러한 장점에도 불구하고 서버 가상화 도입을 꺼리는 원인중 하나임은 분명하다. 서버 가상화 소프트웨어의 절대
강자인 vmware esx의 높은 구매 비용 때문에 가상화 도입이 꺼려진다면 시트릭스사의 무료 가상화 솔루션 젠서버 도입을 고려해 볼
만하다.
젠서버는 오픈소스 가상화의 대표격이라 할 수 있는 xen 프로젝트의 핵심 개발자들이 설립한 젠소스사에서 만들었다.
이전부터 기능이 제한된 싱글서버용 하이퍼바이저 익스프레스 에디션은 무상으로 제공되었지만 기능상 제약이 많아 실제 사용하기에는 어려움이 있었다.
그러나 시트릭스사에서 젠소스를 인수하고 모든 기능을 갖춘 젠서버 엔터프라이즈 버전을 무료로 배포하고 있는데 현재 가상화 도입을 고려하고 있는
기업들에게 상당한 영향을 끼칠 것으로 생각된다. 여기서는 젠서버로 간단히 가상화 시스템을 구축해 보고 간단히 사용 소감을 말해 보기로
하겠다.
1. 젠 서버의 구성
젠서버를 이용한 가상화 시스템은 젠서버를 설치하고 가상의 머신(가상 서버)를 설치할 물리적인
호스트 서버와 이들을 관리하는 젠센터 그리고 가상 머신들이 이용 할 수 있는 저장소 이렇게 3 부분으로 나눌 수 있다.
아래의
구성도에서는 두대의 물리적인 서버에 각각 젠서버 호스트를 설치하고 각 호스트당 두대의 가상 머신을 두어서 총 4대의 서버를 운영하고 있다.
각각의 가상 머신은 리눅스일 수도 있고 윈도우 일 수도 있다. 두 대의 물리적 서버는 리소스 풀로 구성해서 하나로 묶어 놓았다. 가상 머신이
돌아가는 호스트 서버를 반드시 풀로 구성할 필요는 없지만 리소스 풀로 하나로 묶을 경우 VM 관리에 좀 더 유연성을 제공한다. 또한 이들
VM들이 이용 할 수 있는 스토리지도 필요하다. 스토리지는 LVM, ext3 같은 각 젠 호스트 서버에서만 사용 할 수 있는 로컬 스토리지 와
공유 NFS, iSCSI같은 모든 젠 서버 호스트 들이 같이 사용한는 공유 스토리지로 나눌 수 있다. 규모가 작은 곳은 로컬 스토리지를 써도
충분하지만 젠서버 호스트 수가 많고 리소스 풀로 구성 해야 할 경우는 공유 스토리지를 쓰는 것이 나을 것이다.
젠서버구축하기 - 1
2. 젠 서버의 설치
젠 서버를 설치하기 위해서는 3가지 패키지가 필요하다. 젠서버 BASE 인스톨 팩 그리고 리눅스 설치에 필요한
리눅스 팩 그리고 젠 서버 호스트를 제어하고 가상 머신을 관리 할 수 있는 XenCenter 관리자 콘솔 인스톨러이다.
윈도우
가상머신만을 설치하기 위해서는 베이스팩만 설치하면 되나 리눅스 가상머신까지 같이 설치해서 운영하려면 젠 서버 호스트에 리눅스 팩까지 같이 설치해
주어야 한다.
또한 젠서버는 기업 환경에 필요한 다양한 설치 옵션을 제공한다. 설치할 서버 수가 얼마 없다면 직접 설치 CD를
넣어서 설치해도 상관없으나 PXE서버와 네트워크 부팅을 통해 한번에 젠서버를 설치 할 수도 있으며 설치 시 필요한 모든 옵션을 자동화 할 수 도
있다. 다만 한가지 주의 할 점은 리눅스 가상 머신은 상관 없으나 윈도우 가상 머신을 인스톨 하기 위해서는 CPU에서 가상화 기능을 지원해야
한다는 것이다. CPU에서 가상화 기능이 지원이 되나 윈도우 가상머신이 인스톨 되지 않을 경우 BIOS에서 가상화 지원 기능이 비 활성화 되어
있을 수도 있으니 이 부분도 확인 해야 한다.
CD를 통해서 설치 하지 않고 직접 PXE를 통한 네트워크 설치 서버를 구축하고
원격으로 젠 서버를 설치하려면
다음의 예제를 보면 된다. CentOS상에서 젠서버 메뉴얼대로 PXE 서버를 구축하면 제대로 동작이 되지
않을 것이다. 따라서 다음의 수정 메뉴얼을 만들었다.
[CentOS] xenserver PXE 부팅서버 구축 및 네트워크를 통한 젠서버
설치
XenServer 관리지 콘솔 인스톨 방법과 버츄얼 머신 생성 방법은 다음의 글을 읽어 보기
바란다.
3. 젠서버 스토리지 구성과 관리
젠 서버는 스토리지 관리 기능은 매우 유연하다. 사용자는 자신의
목적에 맞게 가상 머신이 사용할 다양 스토리지를 구성 할 수도 있다. 스토리지 형태는 로컬 서버의 하드 디스크일 수도 있고 원격의 공유
스토리지를 사용 할 수 도 있다. 중요한 것은 가상화한 디스크 이미지는 SR(Storage Repositories)이라고 하는 컨테이너에 저장
된다는 것이다. 다음 관계도는 젠 서버의 스토리지 구성을 이해하는데 매우 중요하다.
젠서버구축하기 - 2
각 젠서버 호스트와 SR과는 PBD를 매개로 연결된다. SR에는 가상화된 디스크 이미지(VDI)가 저장된다. 가상 머신과 가상 디스크
이미지는 VBD를 통해서 사용할 수 있다. 여기서 중요한것은 SR에 있는 VDI는 여러 가상 머신에서 공유 할 수 있다는것이다. 다만 그렇게
하기 위해서는 각 가상 머신은 스토리지를 공유해야 한다.
젠서버의 스토리지 구성에 있어서 가장 고려해야 할 점은 로컬 스토리지와
공유스토리지의 장 단점과 그 특징을 이해 해야 한다는 것이다. 몇가지 중요한 특징과 차이점을 설명하면 다음과 같다.
먼저 SR을
서버의 로컬 저장소에 구성 할 수도 NFS저장소나 iSCSi, 혹은 NetApp같은 원격 스토리지 장비에 구성 할 수도 있다. 각각 장단점이
있는데 아무래도 물리적 스토리지 장비를 갖추려면 그만큼의 비용을 들 수 밖에 없을 것이다. 운영할 가상머신의 10대 이내로 적다면 로컬
하드디스크에 레이드를 사용하여 서버 가상화를 하는게 비용적인 면이나 성능상 더 낫다고 할 수 있으나 가상화 할 서버가 많다면 원격 스토리지를
두고 풀을 구성하는것이 필수 라고 할 수 있다.
풀을 구성하면서 얻을 수 있는 여러가지 이점이나 VDI공유, VM 실시간 마이그레이션이나
젠의 고가용성 기능을 사용하기 위해서는 반드시 원격 스토리지를 구성해야 한다.
로컬 저장소와 공유 NFS를 이용한 SR 구성방법과
예제는 다음 글을 참고한다.
4. 젠서버 커맨드 라인 인터페이스
젠 서버는 강력한
CLI 기능을 제공한다. 일부 작업은 xen CLI 기능을 이용해서만 수행 할 수 있다. 젠 서버의 모든 기능을 CLI를 통해서 제어 할 수
있기 때문에 스크립트를 작성하여 시스템 관리를 자동화 하거나 단순화 시키는데 상당히 유용할 것이라 생각된다. 기본적으로 xen CLI는 젠센터를
설치하면 같이 제공 되기 때문에 CLI기능을 사용하기 위해서는 젠센터를 설치 하기만 하면된다. 젠 센터를 보면 Console항목이 있는데
여기서 CLI기능을 사용 할 수 있다. 뿐만 아니라 SSH를 통한 제어도 가능하기 때문에 SSH 클라이언트 프로그램을 이용해 젠 서버
호스트에 원격에서 접속하여 CLI를 이용해 작업을 수행해도 된다.
젠의 CLI기능은 워낙 방대하기 때문에 여기서 전부 설명하기는
힘들다. 하지만 몇가지 기본 규칙을 알면 쉽게 CLI에 적응 할 수 있다. 간단 문법 몇가지를 설명하자면 다음과 같다.
우선
대부분의 CLI 명령어는 xe로 시작 한다는 것이다. 많이 사용하는 CLI 명령어를 보고자 한다면 다음과 같이 입력하면 된다. 또한 TAB키를
누르면 자동 완성 기능이 되기 때문에 편리하게 사용 할 수 있다.
# xe help
CLI의 전테 xe 커맨드를 알고 싶으면 다음과
같이 입력한다.
# xe help --all
특정 커맨드에 help파일을 보고 싶다면 다음과 같이 친다.
# xe help
command
두번째 기본적인 xe 명령의 구문은 다음과 같은 형식으로 실행된다.
xe command-name
<argument=value> <argument=value> …
앞서 저장소를 생성할 때 CLI를 사용했으므로
xe sr 명령어를 이용해서 설명을 해 보겠다.
# xe sr-list
sr은 command이고 list는 name유형이다. 각
명령어는 각 명령어는 탭키를 누르며 자동 완성이 된다. 예를 들면
xe sr-<TAB>을 누르면 sr명령의 name들이 모두
나열 된다. argument를 줘서 sr-list를 입력해 보자.
# xe sr-list type=lvm
LVM SR에 대한 정보를
모두 보여 달라는 명령이다. 각 xe command와 name은 젠서버의 기능과 역할에 따라 분류되어 있으므로 약간의 수고만 하면 CLI기능을
이용해서 젠서버를 관리하는것이 훨씬 편하게 느껴질 것이다. CLI 기능은 방대함으로 더 자세하게 알고 싶다면 아래 참고 문헌에서 젠서버 관리자
메뉴얼의 Command line interface 부분을 참고 하기 바란다.
5. 백업 및 복구
서버 가상화에서 가장 중요한
기능이 백업과 복구 기능이라고 생각한다. 하나의 물리적 서버에서 여러대의 가상 머신이 돌아가다 보니 서버 한대가 물리적으로 문제가 생겨도 그
피해는 눈덩이 처럼 불어난다. 때문에 관리자는 젠 서버 백업과 복구 기능을 확실 하게 이해하고 만일의 사태에 대비 해야 한다.
젠
서버의 백업 기능은 크게 세가지로 나눌 수 있다.
Pool 메타 데이터 백업
XenServer Control Domain
백업
VM 메타데이터 백업
Pool 메타 데이터 Pool 구성시 환경에 대한 모든 설정들이 들어 있다. XenServer
Control Domain 백업은 젠서버 호스트의 환경 설정 파일을 백업 하는 것이다. 그리고 VM 메타데이터도 마찬가지로 VM 구성에 관한
환경 설정 파일을 담고 있다. 위의 백업은 젠서버 설정에 대한 백업이지 파일이나 자료에 대한 백업은 아니라는 것을 알아야 한다. 젠서버는 각
백업데이타의 네트워크나 이동식 저장소에 백업이 가능함으로 가능한 이들 데이터는 최신으로 유지해야 한다.
VM의 모든 자료와 설정
파일을 백업해서 다른 호스트로 이동 할 수도 있다. 다만 CLI 명령이나 젠 센터를 이용해서 VM을 백업하려면 먼저 VM을 중단해야 한다.
서비스 중단 없이 VM을 백업 하려면 스냅샷 기능을 이용 하면 된다. 스냅샷 기능을 이용하면 매우 빠르게 그리고 적은 공간만으로도 VM 저장소와
메타데이터를 백업 할 수 있다. 명령어 라인을 이용해서 스냅샷 백업을 자동화 할 수도 있다.
자료가 정말 중요하다면 돈이 좀
들겠지만 물리적으로 스토리지를 이중화 하는것도 하나의 방법이다. 로컬 디스크에 VDI를 저장한다면 RAID 기능을 이용하는 것이 좋을 것이다.
그러나 무엇보다 중요한것은 관리자가 다양한 재해 복구 시나리오를 준비하고 백업 시스템을 시나리오에 맞추어 구성하는 것이다.
젠
서버에서 각 단계의 백업과 복구에 대한 예제와 간단한 재해 복구 시나리오를 보려면 다음 글을 참고 한다.
6. Essentials for XenServer
젠 서버의 Essentials 라이센스는
시트릭스사에서 젠 서버 엔터프라이즈 버전을 무료로 공개하고 좀 더 고급의 관리 프로그램을 유료로 내 놓은 것이다. 사람 욕심이 끝이 없다 보니
이 중 몇 몇 기능은 무료로 배포했으면 더욱 좋았겠지만 고급 관리 기능이다 보니 없어도 딱히 불편하지는 않다. 다만 일부 기능은 대규모 가상
서비스 시스템 구축에 필요한 기능들이 있는데 필요하다면 유상으로 구매하는것이 맞는 것 같다. Essentials 라이센스를 구매함으로써 사용
할 수 있는 주요 기능은 다음과 같다.
고 가용성(HA)
풀에 있는 호스트의 상태를 지속적으로 모니터링 하여 호스트가 실패 할
경우 자동으로 정상적인 호스트를 찾아서 서비스를 시작해 주는 기능으로 엔터프라이즈 버전에 포함 되었으면 하는 바람이다. 가장 탐이 나는 기능 중
하나
워크 로드 밸런스(Workload Balance )
풀의 호스트 구성원의 성능을 감시하여 서버의 로드를 자동으로 조절해
주는 것으로 간단히 말해서 여유가 있는 서버로 VM을 할당시켜 호스트 서버간의 자원 활용을 극대화 하는 기능이다. 윈도우 계열만 지원되는
기능이다.
스토리지 관리 기능
NetApp 및 EqualLogic SR을 사용하려면 Essentials 라이센스를 구매해야
한다.
젠서버 모니터링 및 관리
풀안의 젠 호스트들의 성능을 감시하고 설정된 기준값을 초과 할경우 경고를 해주고 email로
내용을 자동으로 발송한다.
7. 젠 서버의 전체적인 평가와 향후 보완점
지금 까지 젠 서버의 주요 기능과 특성에 대해 살펴
보았다. 젠 서버는 vmware esx에 비해서 성능상이나 안정성에서 그다지 밀리지 않을 뿐만 아니라 비용적인 측면에서 크게 장점이 있기 때문에
처음 서버 가상화를 도입을 고려하는 사람들에게 영향이 클 것이라 생각한다. 이미 몇몇 기업에서 자사의 서버를 젠서버를 이용하여 가상화 시스템을
구축하여 상당한 비용 절감을 이루어 냈다고 하는 기사도 보이는 걸로 보아 젠서버 자체의 성능에 의심을 품을 필요는 없을듯 하다.
다만 테스트 하는 과정에서 발견된 몇가지 보안점을 말해 보자면 메뉴얼이나 기타 운영 방법에 관한 기술 자료를 모두 영문에 의존 할
수 밖에 없다는 점이다. 적어도 서버 관리자를 위하여 젠서버에 관한 정보를 얻고 교류 할 수 있는 한글 위키 정도는 있어야 하지 않나 생각
된다.
두번째로 아무래도 젠서버 자체가 서버 가상화의 후발 주자이기 때문인지 몰라도 하드웨어 지원이 약간 부실 하지 않나 생각된다.
윈도우 가상머신을 테스트 서버에 설치 하였으나 설치가 잘 되지 않았다. 물론 서버의 CPU는 가상화를 지원했으며 바이오스에서도 활성화 되어 있는
상태였다. 다만 조립서버였기 때문에 뭔가 호환이 안되것 같다는 문제가 발생 한것 같다. 윈도우 서버 가상화 시스템을 구축하려면 충분히 검증되고
테스트한 서버에서 구입하는것이 좋을 것 같다.
국내 서버 가상화는 vmware가 독주하고 있는 것은 사실이다. 그러나 지나친 초기
투자비용으로 서버 가상화를 망설이고 있거나 혹은 가상화 할 서버가 그리 많지 않지만 가상화 시스템을 구축하고 싶은 사람에게는 젠서버가 좋은
대안이 될 것 같다.
[참고 문헌]
XenServer Administrator's Guide
By 블루웹
시스템연구 개발팀 양선곤