한국은 가상데스크톱인프라(VDI)의 높은 보급률을 자랑한다. 동시에 한국기업에게 VDI는 최상급 서버, 최고사양 네트워크를 구축해야 하는, 즉 비싸다는 인식을 준다.
VDI 구축비용 증가의 이유는 간단하다. 직원에게 지급된 PC는 성능이 너무 좋았다. PC는 듀얼코어, 쿼드코어 CPU였고, 메모리는 2GB나 4GB였다. 솔리드스테이트드라이브(SSD) 사용자도 적지 않다. PC 성능을 서버 속에서 구현하기 위해 가장 좋은 제품을 구입하면 최고 성능이 나올 거라 여기는 건 당연한 발상이다.
그렇게 VDI를 구축한 기업이 맞닥뜨린 결과는 의외다. 최고가 서버를 사용하고, 네트워크 대역폭 투자까지 아끼지 않았는데, 직원의 VDI 체감성능은 PC에 한참 못 미친다. VDI는 결국 비싼 돈만 들여, 더 나쁜 생산성 도구를 직원에게 쥐어주는 취급을 받고 있다.
VDI에 대한 과투자 현상은 미국이나 다른 나라에서도 다르지 않은 모양이다. 한국은 그 정도가 더 심해서 ‘무조건 좋은 것으로’란 무책임한 기획이 남발한다. 이런 가운데, VDI에 대한 오해를 불식시키기 위한 야심찬 시도가 있었다. 왜 VDI가 비싸지는지, 정상적인 VDI는 어떤 것인지에 대한 솔루션기업의 고민을 소개한다.
■한번쯤 했지만, 구매결정요소는 아니었던 질문들
올해초 시스코시스템즈의 블로그에 'VDI-당신이 하지않았던(그러나 그래야 했던) 질문들'이란 제목의 글이 올라왔다. 토니 페이크데이 시스코 데스크톱가상화솔루션 마케팅 수석매니저가 올린 글이다. 그의 글을 시작으로 약 5개월동안 10회에 걸친 연재가 시작됐다. 시스코 내 분야별 엔지니어의 연재였다.
연재는 서버 사양은 얼마나? 직원에게 할당해줄 가상데스크톱의 가상CPU(vCPU)는 몇개여야 할까? 메모리는? 용량은? 디스크 종류는? 등 VDI 구축 시 하게 되는 하드웨어적 고민을 담았다.
첫 글은 VDI 솔루션 퍼포먼스를 최적화하기 위한 밸런스를 말한다. CPU, 메모리 속도, IOPS 등 전체 성능을 결정하는 하드웨어 요소의 어떤 균형점을 찾자는 것이다.
토니 페이크데이 수석매니저는 “VDI는 컴퓨트, 스토리지, 네트워크 자원의 소비 형태가 데이터센터 내 다른 워크로드와 비교해 매우 독특하다”라며 “서버 제조업체에서 제공되는 성능 벤치마크는 VDI 성능에 특화되지 않거나, 사용자 경험이 vCPU의 숫자나 클럭속도 같은 단순한 선택에 얼마나 영향을 받는지 알려주지 않는다”라고 밝혔다.
그는 하드웨어 구성요소와 VDI 환경 일부에 대한 작은 선택이 큰 차이를 만들어낸다고 강조한다. CPU의 코어수, 클럭속도, 메모리속도, vCPU 할당, 집적도 등에 변화를 줘 VDI성능이 어떻게 달라지는지 벤치마크 테스트 결과를 공개했다.
VDI환경 벤치마크를 위한 기본 사양은 시스코 UCS B200 M3 서버, 로그인버추얼세션인덱서(VSI) 3.6.1 벤치마크툴, VM웨어 뷰 5.1.1, 마이크로소프트(MS) 윈도7 SP1 32비트, 퓨어스토리지 플래시어레이 등을 사용했다.
■CPU, 코어수냐 클럭속도냐
첫 논제는 VDI용 서버에 어떤 CPU사양을 사용할 것이냐다. 서버의 코어수가 많은 게 좋은지, 코어수는 적더라도 클럭속도가 빠른 게 좋은지 등에 대한 실험이었다. 쉽게 말해 빠른 걸 적게 살 것인가, 느린 걸 많이 살 것인가다.
VDI환경에서 사용자의 체감성능은 클릭이나 엔터키를 눌렀을 때 얼마나 빨리 결과를 볼 수 있느냐다. 응답시간이 VDI 사용자경험의 핵심인 것이다. 시스코에서 사용한 벤치마크툴인 VSI는 그 한계점을 4초로 본다. 4초안에 반응이 와야한다는 거다.
시스코는 인텔 제온 E5-2643과 E5-2665 프로세서를 비교했다. 전자는 4코어 프로세서이면서 3.3GHz(최대 터보 3.5GHz) 클럭속도를 보인다. 후자는 8코어 프로세서이면서 2.4GHz(최대 터보 3.1GHz) 클럭속도를 보인다. 가격은 코어수가 많은 E5-2665가 60% 가량 비싸다.
벤치마크는 각 CPU에 VDI용 1개 vCPU로 이뤄진 가상데스크톱 VM을 올리고, 애플리케이션을 실행했을 때 응답시간(latancy)을 테스트했다. VM수를 늘려갈 때 애플리케이션 실행 응답시간 한계점이 4초에 도달하는 지점을 알아본 것이다.
그 결과 클럭속도는 낮고 코어수는 많은 E5-2665가 E5-2643보다 2배 가량의 VM집적도를 내는 것으로 밝혀졌다. 동일한 지연시간을 보인다고 가정했을 때 클럭속도보다 코어수를 늘리 게 좋은 성능을 낸다는 결과다.
두 CPU 모두 40~50개 데스크톱을 생성할 때까지 비슷한 성능을 낸다. 그래프는 이후 서서히 다른 기울기를 보이게 되고, E5-2643의 경우 60개 데스크톱 이후 급격한 성능저하를 보였다. 이 프로세서는 81개 가상데스크톱 생성에서 한계에 도달했다.
E5-2665의 경우 100개 가상데스크톱 할당까지도 완만한 성능저하 기울기를 보인다. 한계치는 130개였다. E5-2665가 E5-2643보다 60% 많은 VM집적도를 보인 것이다.
■유저당 vCPU는 많을수록 좋다는 편견
이어진 벤치마크는 VM에 vCPU 2개를 할당할 경우와 vCPU 1개를 할당할 경우의 성능비교다. 사용자에게 듀얼코어 PC와 1코어 PC를 지급하는 경우에 해당한다.
1차 실험과 마찬가지로 코어수가 많을수록 더 좋은 성능을 낸다는 결과는 동일했다. 그리고 2vCPU를 할당했을 경우 1vCPU 할당 환경보다 더 빨리 한계점에 도달한다는 결과가 나왔다. 유저당 1개의 vCPU만 할당했을 때 더 좋은 성능을 낸다는 것이다.
클럭속도 높은 CPU보다 코어수 많은 CPU를 사용하라. 사용자 VM에 1개의 vCPU만 할당해도 충분한 성능을 낸다 등이 벤치마크의 결과다.
시스코 엔지니어는 그렇다고 10개의 코어를 가진 E7 프로세서를 사용하는게 E5보다 낫다는 의미는 아니다라고 덧붙였다. 단순 코어수 비교로는 E7이 앞서지만, 가격대비 집적도 측면에서 보면, E5가 E7보다 낫다는 얘기다.
다음으로 VM당 vCPU를 몇개 할당할 것이냐에 대한 좀 더 세부적인 검증이 이어졌다. 기업에서 사용하는 업무용 애플리케이션이 복수의 CPU코어를 한번에 효과적으로 활용하느냐에 대한 것이다. 예를 들어 듀얼코어 CPU 환경에서 MS오피스 엑셀을 실행했을 때 2개의 코어를 사용하는지, 아니면 둘 중 하나만 사용하는지다.
결론적으로 한 사용자에게 할당된 CPU 코어수 증가는 사용자경험 개선에 별다른 영향을 미치지 못했다. 개인용 애플리케이션이 복수의 코어를 사용하도록 설계되지 않았기 때문이다. 현존 서버용 애플리케이션은 멀티프로세싱(SMP)에 최적화됐지만, PC용 애플리케이션은 그렇지 않다. 엑셀을 실행했을 때 그 순간 CPU의 모든 코어를 사용해 터보엔진을 작동시킨 것처럼 처리되는 게 아니란 얘기다.
1vCPU든 2vCPU든 결과적으로 VDI환경에서 애플리케이션 성능에 관련되는 건 CPU코어의 수가 아니란 결론이 나온다. 또한 여기서 100명 미만의 유저를 수용한다면 E5-2643이면 족하고, 100명 이상 유저를 수용한다면 E5-2665를 사용하면 족하다.
■코어수가 늘어나면, 필요한 서버는 줄어든다
이를 근거로 하드웨어 구매규모를 산정해보자. 4초 이내 응답시간을 실현하고, VDI 사용자 규모 1천 유저를 수용하는 경우 인텔 제온 E5-2665 프로세서를 탑재한 2소켓 블레이드 서버가 기본 사양이다.
유저당 1vCPU를 할당하면, 8개의 블레이드면 족하다. 그러나 2vCPU 할당 시 11개의 블레이드가 필요하다. 같은 성능을 내는데 3대의 서버를 불필요하게 사게 되는 것이다. 오히려 1vCPU가 2vCPU보다 더 좋은 반응시간을 보임에도 말이다.
막연히 CPU를 가장 성능 좋은 것으로 사고, 무작정 사용자에게 많은 vCPU를 할당한다고 해서 사용자경험이 늘어나는 것도 아니다. 오히려 정반대로 사용자경험만 나빠진다는 점을 시스코 엔지니어들은 지적하고 있다.
필자는 대부분의 서버회사가 VDI에 서버를 공급하면서, 사용자당 CPU 코어할당을 늘리면 늘릴수록 좋다고 조언한다고 꼬집었다. 2vCPU로 1천 사용자를 수용하면서 더 빠른 응답속도를 내려 한다면, 서버 노드가 11대에서 23대로 2배 이상 늘어난다는 지적과 함께다.
그리고 명백히 ‘그것은 잘못이다’라고 지적한다. 시스코 엔지니어는 2vCPU를 고집하는 건 의미없고, 어리석은 선택이라고 강조한다. 최종 사용자의 생산성 혹은 사용자경험만 나빠지며, 돈낭비란 얘기다.
그런데, 한국의 VDI 환경이 바로 2vCPU 혹은 그 이상으로 이뤄져 있다.
■CPU보다 메모리, 스토리지에 투자하라
다음은 메모리버스의 속도가 VDI 사용자경험에 어떤 영향을 미치냐의 문제다. 시스코 엔지니어는 E5-2665 프로세서를 사용하고, 메모리 버스를 1600MHz일 경우와 1066MHz일 경우로 나눠 1vCPU 및 2vCPU 환경에서 다시 테스트한다. 메모리버스 속도가 VM집적도와 반응속도에 미치는 영향을 도출하기 위해서다.
테스트 결과 메모리버스 속도가 1600MHz일 경우 성능 개선이 뚜렷하게 나타났다. 전반적인 VM집적도 증가에 따른 반응속도 저하 추세그래프는 동일했다.
1vCPU 할당 시 메모리버스가 작으면 시스템 응답속도가 매우 불안정한 것으로 나타났다. CPU에 같은 수의 VM을 집적했을 때 한계치를 돌파하진 않더라도 그에 근접한 상태를 보였다.
더 재밌는 현상은 2vCPU 할당 테스트에서 나타났다. 2vCPU 할당 시 메모리 버스가 늘어나도 응답시간이 불안정했던 것이다. 2vCPU 사용의 불합리성이 또 한번 증명된 것이다.
이에 따르면, 1vCPU 할당, 메모리버스를 최대한 확보하는 게 중요하다. 이는 한 블레이드 서버 안에 많은 메모리카드를 장착할 수록 VDI 반응속도가 개선된다는 것으로 요약된다.
프로세서를 E5-2643으로 바꿔 같은 실험을 반복했을 때 메모리버스의 차이가 큰 변화를 만들어내지 못했다. CPU 클럭속도가 높더라도 코어수가 적다면 메모리를 아무리 많이 확보해도 큰 효과를 보기 어렵다는 의미다.
마지막 검토요소는 스토리지다. 대부분의 기업들은 VDI 구축 시 서버와 네트워크에 집중하고, 스토리지 투자를 등한시한다. 저렴한 SATA 디스크를 사용하는 것이다.
시스코는 VDI 환경의 성능을 획기적으로 개선하는 방안은 서버보다 디스크에 있다고 강조한다. 즉 SATA보다는 SAS를, SAS보단 SSD란 얘기다. 벤치마크 결과 획기적인 성능 개선효과는 SSD로 나타났다. 응답시간, IOPS, 밴드위스 세 측면에서 SSD는 어떤 디스크보다 월등한 성능을 보였다.
■메모리는 얼마나 확보해야 하나
윈도7 32비트 OS를 사용하려면 1명당 최소 1GB의 메모리를 할당해야 한다. 64비트 OS를 사용하려면 최소 2GB 메모리가 할당돼야 한다. 이를 평균내면 1vCPU당 1.5GB의 메모리가 할당돼야 한다.
그렇다면 1vCPU 환경에서 반응속도 한계치인 130개 데스크톱을 생선한다고 하자. 이같은 VDI환경에서 필요한 메모리는 VM웨어 ESXi 하이퍼바이저를 위한 200MB에 데스크톱별 메모리를 합쳐 203.65GB 혹은 198.89GB 정도의 메모리가 필요하다.
시스코는 만약 메모리 용량을 160GB로 줄였을 경우도 상정한다. 메모리를 줄였을 때 VM집적도와 반응속도 상관성을 본 것이다. 그 결과 160GB 메모리 환경에서 VM수는 104개에서 반응속도 한계점에 도달한다. 메모리를 늘렸을 때 속도가 더 빠르고 안정적이며, 더 많은 VM을 수용할 수 있다는 걸 증명한 실험이다.
VM웨어나 시트릭스 같은 하이퍼바이저 회사들은 물리적 메모리의 비용절감을 위한 여러 방안을 내놓고 있다. 여러 VM이 가상화된 메모리풀을 함께 점유하는 방식이 대표적이다. 그러나 이는 물리적 메모리의 절대적 한계치에 도달했을 땐 무용지물이다. 시스코는 결국 물리적 메모리 용량을 늘려야 전반적인 성능향상과 비용대비효과를 기대할 수 있다고 강조했다.
만약 SW로 메모리 투자를 줄였다고 하더라도, 어떤 한계치에 도달했을 때 메모리 문제로 야기되는 상황은 시스템 다운이다. 단순히 보틀넥의 문제나 속도저하가 아니라 회사 업무환경이 어둠속에 파묻히는 것이다.
관련기사
- 시트릭스, 1천400대 직원VDI 무중단 이전2013.05.28
- VM웨어, 배재대학교 VDI 공급2013.05.28
- MS 윈도8, 기업용PC관리-VDI 시장 흔든다2013.05.28
- VDI용 스토리지 숨은 논쟁 '외장 VS 내장'2013.05.28
최우형 시스코코리아 부장은 “VDI에 대해 무조건 좋은 CPU를 쓰고 무조건 많은 코어를 할당하면 될 것이란 생각은 잘못이다”라며 “한국은 그 정도가 더 심해서 가장 빠른 CPU에 코어수도 많은 걸 선호한다”라고 지적했다.
그는 “결론은 CPU 클럭속도를 낮추고 코어수 많은 걸 쓰면서 사용자에게 vCPU를 적게 할당하라는 데 있다”라며 “그럼 서버 구매할 비용을 아끼게 되고, 대신 메모리를 더 늘리고, SSD를 사용해 사용자 체감속도를 더 개선할 수 있다”라고 강조했다.