Windows Server 2008의 가장 큰 이슈 사항 중에 하나는 바로 Virtual Server입니다. 가상 서버를 이용하여 환경을 구축한다는 것은 꽤나 매력적인 일이지요.

 서버 가상화를 진행하면 서버의 하드웨어 비용은 일시적으로 증가하지만, 서버의 하드웨어 성능을 극대화 할 수 있고, 한 곳에서 관리가 가능하며, 추후 시스템 확장이 대단히 용이하기 때문에 관리상의 큰 이점을 가져다 줍니다. 하지만, 이런 건 선택적으로 구성해야겠지요.

 이번에 C사의 전체 내부 시스템을 바로 Virtual Server 2005 Enterprise SP1으로 구축해보았습니다. 여기에 들어간 하드웨어는 스토리지형으로 만든 R사의 서버.

  • CPU : 쿼드코어 x2
  • Disk : 2TB (RAID 5)
  • RAM : 4G
 사양을 보시면 메모리를 제외하고 가상 서버를 그다지 돌리기에 불편한 사양이 아닙니다. 디스크도 여유가 있으며, 메모리도 복잡한 작업을 요하는 것이 아니기에 아주 짧은 순간적인 부하만 견디면, 전체 시스템은 충분히 견딜 수 있습니다. 더구나 이 시스템은 외부에 노출된 망이 아닌, 인트라넷을 위해 구성된 시스템이기 때문에, 실제로 큰 시스템 부하가 걸릴 일도, 설령 느려진다고 해도 뭐라고 할만한 환경도 아닙니다.

사용자 삽입 이미지

Active Directory를 통한 시스템 구성도


위와 같이 AD가 구축되어 있으며, 그 속에 들어가 있는 각 서버의 사양 및 역할은 다음과 같이 정했습니다.

서버명

사양

설치된 서버 구성요소

AD1 60G / 512M IIS, ASP.NET, DHCP, DNS, RADIUS
AD2 60G+100G / 512M IIS, ASP.NET, DNS, WSUS, FCS 1-SRV
TestWWW 60G+60G / 1G IIS, ASP.NET
Mail 60G / 512M Mail Software (Merak)
SQL1 40G+300G / 1G IIS, ASP.NET, SQL 2005, SQL Reporting 2005, FCS 2-SRV

※ FCS : ForeFront Client Security

 다만, 위 시스템에서 사용하다보니 몇가지 문제점이 발생하더군요. 바로 리소스가 많이 남아있음에도 불구하고 상당히 느리다고 느껴지는 부분인데요. 원인은 바로 디스크에 있었습니다.

 가상머신에서 디스크에 파일을 쓰기 시작하면 이 증상이 바로 보이는데요. 한참 있다가 디스크에 써집니다. 10기가 정도 해당되는 파일을 생성하는데 몇 분!이 소요됩니다. (몇 초가 아닙니다!) 더 심각한 사실은 15기가를 가상디스크->가상디스크로 이동하는데 걸리는 시간은 20시간이 넘어갑니다.

 이 사실은 이미 알고 있었지만 조금 심각하더군요. 이 디스크 부하로 인하여 대용량 파일의 입출력은 어렵다고 보셔야 합니다. 이런 대량 파일의 변경/추가가 잦은 경우 해당 가상 서버의 모든 작업은 하드웨어 작업인 디스크 I/O에 집중되며, 이로 인하여 타 시스템에서의 접근이 원할하지 않을 수 있습니다.

바꿔서 말하면, 가상서버를 이용한다는 것은 디스크 부하를 많이 사용할 수 있는 서버에는 추천하지 않는다는 이야기가 되겠고요. 이러한 서버로는 파일서버와 SQL서버가 있습니다. 또한 익스체인지 처럼 무거운 시스템의 경우도 권하고 싶지 않습니다.

  • 파일 서버 : 디스크의 입출력이 잦기 때문에 비권장. 단, 대용량(30메가 보다 큰) 파일이 없는 환경이라면 괜찮습니다.
  • SQL 서버 : DB의 전체 인덱싱이나 풀 스캔, 신규 DB의 생성, DB의 확장시 시스템이 완료될 때까지 문제가 됨
  • 익스체인지 서버 : 메일의 주고 받는 양이 일정량 이상으로 커지면, 디스크 I/O의 증가로 인하여 추천하고 싶지 않음
쓴다면 아직까지는 가벼운 서비스. 즉, 죽으면 안되는 다량의 웹서버, 주기적으로 스케줄링 작업이 있는 데몬서버 계열, 저렴하지만 느려도 되며 안정적으로 구축해야만 하는 클러스터링 시스템에 권장하고 싶습니다.

사용자 삽입 이미지

VS2005 Enterprise에 있는 클러스터용 옵션


 이 디스크 엑세스의 느린 단점은 현재의 Virtual Server 2005가 가상머신에서 하드디스크로 데이터를 보낼 때 이를 에물레이션하기 때문이며 , 이는 Windows Server 2008에 탑재되어 있는 Windows Server Virtualization나, 차기 버전인 System Center Virtual Machine를 사용하면 그때는 문제가 줄어들 것이라 합니다.

가상 서버로 구성하기 좋은 서버
  • 백업용 도메인 서버 (장애 처리를 위한 두,세번째 DC)
  • 시스템 유지 보수가 힘든 오래된 시스템 (NT4.0, 98)
  • 빠른 복구가 요구되는 스케줄링을 진행하는 데몬 시스템
  • 하드웨어로의 직접 접근이 없는 테스트 서버
  • 평균 CPU 사용량 5% 미만의 시스템 (NOT File 서버)
  • 시스템의 성능을 극대화하기 위한 웹서버
참고. 이 문제는 다른 가상화 서버 소프트웨어도 비슷하게 발생하고 있는 증상이며, 현재까지는 토토리 키제기에 속하지만, 이 부분에 대해서는 MS제품 보다는 타사의 제품(예:VMWare )이 약간 더 나은 성능을 보여줍니다



참고자료

Posted by NTFAQ

트랙백 주소 :: http://ntfaq.co.kr/trackback/4109 관련글 쓰기

댓글을 달아 주세요

  1. Favicon of http://blog.sooli.com BlogIcon 김윤술 2007/12/15 00:27  댓글주소  수정/삭제  댓글쓰기

    32비트상에서는 가상서버는 솔직히 포기했습니다. 해도 너무늦다입니다. 맥OS의 패럴랠이라는 가상화도 이리 늦지않은데 버츄어서버가 많은문제인듯 싶습니다. 정말 백업DC말고는 할게 없다입니다. 버츄어서버 에뮬레이션의 최대약점은 아무리 CPU성능과 하드레이드성능이 좋다고 해도 펜티엄3 500이상의 성능도 발휘못하는데 있습니다.