Bill Vass가 새 레터로 여러분을 다시 찾아 뵙습니다. 애독자들이 행여라도 제 글에 두서가 없다고 생각하시기 전에, 저는 이 레터를 통해 당사가 기업 데이터센터의 비용 절감, 하드웨어 이용률 증대, 애플리케이션의 가용성과 성능 향상 등을 가능하게 하는 다양한 기술들을 구축하고 있다는 사실을 밝혀 두는 바입니다. 최근의 레터에서 우리는 어떻게 썬의 CMT 프로세서가 데이터센터의 요구사항을 감소시키고, 오픈소스와 OpenSolaris가 보안 및 애플리케이션 성능을 강화하고, 오픈소스 미들웨어가 레거시 투자를 최대한으로 보호할 수 있는지에 관해 살펴보았습니다. 이번 호에서는 잠시 발길을 되돌려 오늘날의 기업들에게 초미의 관심사가 되고 있는 가상화에 관해 논해볼까 합니다. 가상화를 아주 간단하게 설명하자면 기본적인 하드웨어로부터 컴퓨팅 리소스를 추출하는 일이라고 할 수 있습니다. 한편, 가상 머신 기술은 최근에 가상화 자체와 거의 동의어가 되어버린 새로운 현상으로 부상하기에 이르렀지만, 가상 머신은 결코 가상화의 ‘시작이자 끝’은 아닙니다. Solaris Container와 같은 운영체제 가상화 방식은 매우 중요한 역할을 담당합니다. 또한 보다 넓은 관점에서 볼 때, 그리드는 애플리케이션의 개발/제공 방식을 획기적으로 바꾸어 놓을 수 있는 그리고 이미 광범하게 보급된 가상화/공유 아키텍처에 커다란 잠재력을 부여합니다. 가상화의 사업적 타당성 대형 서버 팜의 관리는 비용 증가의 또 다른 요인으로 작용하게 되며, 하드웨어 가격이 하락함에도 불구하고 관리비는 계속해서 치솟습니다. 대규모 데이터센터의 직접 비용은 차치하고라도, 모니터하고 유지 보수할 물리적 시스템의 수를 줄이는 일은 가상화 기술을 채택할 수밖에 없는 또 다른 동기가 됩니다. 물론, 이것은 기업이 단순히 물리적 관리를 가상 머신 관리로 대체하지 않는다는 가정 하에서의 얘기입니다. 자주 거론되지는 않지만 이에 못지 않게 중요한 것은 기업들이 애플리케이션의 가용성을 하드웨어에 주로 의존한다는 사실입니다. 대부분의 조직체는 애플리케이션과 비즈니스의 지속적인 운영을 보장하고 심각한 다운타임을 피하기 위해 리던던트 하드웨어를 구현하곤 하지만 하드웨어 리던던시는 애플리케이션 가용성을 보장하는 데 완벽한 수단이 되지 못할 뿐 아니라 데이터센터의 비용을 가중시키기까지 합니다. 이용률과 리던던시 문제를 동시에 해결할 수 있는 수단으로 부상하게 된 가상화는 애플리케이션과 운영체제 인스턴스가 하드웨어 리소스를 공유하게 함으로써 이용률과 투자수익률을 높여줍니다. 가상화는 기본 하드웨어에서 소프트웨어를 추출함으로써 까다로운 하드웨어에 의존하지 않고도 애플리케이션 리던던시를 구현할 수 있으므로 가용성 향상에 특히 효과적입니다. 요컨대, 조직체는 가상화를 통해 다음의 목표를 달성할 수 있게 합니다.
가상 머신의 여명기 근년 들어 VMware 기술은 가상 머신 시장에서 가장 유력한 후보로 떠올랐는데, VMware 가상화 기술의 원리는 먼저 부트되는 미니 운영체제처럼 행동하면서 본질적으로 기본 하드웨어를 작은 조각들로 가상화하여 동일한 물리적 서버 상에서 다양한 운영체제가 실행될 수 있도록 하는 하이퍼바이저를 생성하는 것입니다. 이런 접근법은 혼용 운영체제 환경을 필요로 하는 레거시 애플리케이션을 보유한 조직체에게 특히 유용한 것으로 입증되었습니다.
VMware 가상 머신 방식은 매력적이긴 하지만 성능 면에서 볼 때는 상대적으로 고가입니다. 일반적으로 하이퍼바이저는 총 CPU 파워의 5~15%를 소비하며, 각 운영체제의 오버헤드는 점진적으로 증가하게 됩니다. 결국 기업들은 단지 가상 머신 인프라를 지원하기 위해 대량의 CPU 리소스를 소비하게 되는 셈입니다. 또한 가상 머신은 애플리케이션에 장애가 발생할 경우 애플리케이션, 운영체제, 가상 머신 기술 중 어디에 원인이 있는지 파악하기 어렵기 때문에 가시성(observability)에 부정적인 영향을 줄 수 있습니다. 최근에는 Open Source Xen 소프트웨어가 VMware의 대안으로 떠오르고 있는데, Xen도 VMware와 마찬가지로 동일한 하드웨어 상에서 복수의 게스트 운영체제를 실행할 수 있게 해줍니다. Xen은 훨씬 낮은 레벨의 가상화 방식으로, 관리자가 메모리와 CPU를 포함한 시스템의 다양한 부분을 가상화할 수 있게 합니다. Xen은 이처럼 낮은 레벨에 상주하기 때문에 상당한 수준의 리소스와 장애 격리 기능을 제공할 수 있습니다. Xen을 고려하지 않을 수 없도록 만드는 이유로는 여러 가지가 있습니다. 첫째, Xen은 오픈소스입니다. 둘째, Xen은 상대적으로 경량이므로 과도한 양의 CPU 리소스를 소비하지 않습니다. 셋째, Xen은 가상 머신 기술 간에 높은 수준의 격리 효과를 실현합니다. 끝으로, Xen은 다른 가상 머신 기술과 마찬가지로 혼용 운영체제와 버전을 지원하며 관리자가 서비스에 영향을 주지 않고 운영체제 인스턴스를 동적으로 인스턴스화하고 실행할 수 있게 해줍니다. 가상 머신으로 Solaris Container 사용하기 Solaris Container는 복수의 운영체제 인스턴스를 허용하지는 않지만 그 외에 다음과 같은 여러 가지 이점을 제공합니다. 이용률 향상: 컨테이너는 오버헤드를 추가하지 않고 작업부하로 인해 요구되는 리소스만을 소비하기 때문에 이용률을 증대시켜 줍니다. 관리비 경감: 관리자가 각각의 작업부하를 위해 별도의 운영체제 인스턴스를 유지할 필요가 없기 때문에 관리비 절감 효과가 뛰어납니다. 탁월한 가시성: 특히 실시간 문제해결을 위한 DTrace 등의 다른 솔라리스 기능과 연계하여 가상화된 환경에 대해 뛰어난 가시성을 제공합니다. 신속한 프로비저닝: 다양한 시스템과 서비스 구성에 대해 광범위한 회귀 검사(regression testing)를 수행하는 QA 환경에서처럼 신속한 프로비저닝과 호스트의 단기적 가용성을 보장해 줍니다. 라이센스 비용 절감: 하나의 OS 라이센스로 수백 개의 Solaris Container를 지원할 수 있기 때문에 잠재적으로 라이센스 비용을 절감시켜 줍니다. 하지만 가상 머신이 제공하는 더 높은 레벨의 리소스와 장애 격리 기능을 과소평가해서는 안 됩니다. 때로는 애플리케이션이 Solaris Container의 능력을 넘어선 수준의 격리를 요구하는 경우가 있는데, 바로 이런 경우에 가상 머신을 Solaris Container와 연계해서 사용하면 최고 수준의 격리, 이용률, 관리 용이성을 달성할 수 있습니다. Solaris Container와 가상 머신의 혼합 이 예에서, 자체적인 운영체제 인스턴스를 요하는 세 개의 애플리케이션은 가상 머신을 이용하여 가상화될 수 있고, 네 번째 가상 머신 운영체제 인스턴스는 단지 하나의 솔라리스 인스턴스를 요하는 애플리케이션들을 위한 4개의 Solaris Container를 수용할 수 있습니다. 이 경우 다음과 같은 이점이 있습니다.
그리드: 과거와 현재와 미래의 가상화 기업이 가상화 환경을 향해 나아가다 보면 가상화는 본질적으로 그리드 환경을 지향한다는 것을 알게 될 것입니다. 그 이유는, 가상화된 솔라리스 인스턴스와 복수의 Solaris Container가 있을 경우, 이 컨테이너의 리소스는 복수의 그리드에 의해 소비될 수 있기 때문입니다. 애플리케이션 그리드는 소프트웨어를 서비스로 제공하는 그리드 프레임워크에 의해 형성·제어될 수 있으며, 그리드 엔진은 컴퓨트 그리드의 초과 사이클(excess cycles)을 활용할 수 있습니다. 실례합니다. 여느 때처럼 제가 좀 서두르는 것 같군요. 그리드는 물론 새로운 것이 아니며, 연산 집약적 작업을 집단적으로 처리하기 위한 수단으로 이용되어 왔습니다. 즉, 그리드는 복잡한 기상 시뮬레이션을 제작하고, 막대한 지하 유전을 측량하고, 핵 폭발의 결과를 유추하고, 복잡한 금융 파생상품의 재정 실적을 시뮬레이트하고, 영화의 개별 프레임에 다층 구조를 추가하는 등의 작업에 사용되어 왔던 것입니다. 결국 과중한 프로세싱 요구에 직면하는 대다수의 산업이 그리드에 크게 의존하고 있는 것이 현실입니다. “Stateless vs Stateful” 그리드
어떤 경우든, 하나의 서버가 다운되면 그리드 컨트롤러는 다른 999개의 작업부하를 수집하여 1개가 모자라는 것을 확인한 다음 나머지 부하를 정상적인 서버로 분산시킵니다. 이 가장 기본적인 형태의 그리드를 stateless 그리드라고 하는데, 그 이유는 누군가가 한 서버에 접근해 전원을 차단하더라도 전체적으로는 별 차이가 나지 않기 때문입니다. 그리드 컨트롤러는 단순히 없어진 작업부하를 다른 서버에 재할당하는 것입니다—아무런 손상이나 충돌도 없이 말이죠. 최근에는 이른바 stateful 그리드가 출현하기에 이르렀습니다. 썬은 엄청난 양의 불필요한 프로세싱 파워를 지닌 데스크탑을 여러 대 설치하는 대신 디스플레이 그리드와 Sun Ray 씬 클라이언트를 연계하여 사용자가 필요로 하는 시간과 장소에 맞추어 데스크탑을 제공합니다. 또한 썬의 그리드 컨트롤러는 700대의 디스플레이 그리드 전용 서버 중에서 각 개인이 필요로 하는 프로세싱 파워만을 제공합니다. 예를 들어, 어떤 직원이 사무실에 출근해서 StarOffice를 가동시키면 일반적으로 CPU의 총 프로세싱 파워 중 60% 정도가 필요할 것이므로, 그리드 컨트롤러는 이에 해당하는 양을 직원에게 제공하는 것입니다. 썬 디스플레이 그리드를 stateful 그리드라고 하는데, 그 이유는 사용자가 기본 인프라에 상태 기반(stateful) 연결을 하기 때문입니다. 따라서 누군가가 데스크탑의 전원을 꺼버리면 대개의 경우 사용자는 이를 알아차리게 됩니다. 애플리케이션 그리드를 통한 리소스 최적화 그런 다음 기업은 애플리케이션 서버의 역할을 하는 두 세트의 컨테이너 간에 stateful 클러스터를 생성하여 누군가가 애플리케이션 서버 중 하나를 꺼버릴 경우 그리드 컨트롤러가 정상적인 애플리케이션 서버에서 해당 작업을 재개하도록 할 수 있습니다. 이제 회사가 그리드에 데이터베이스 레이어를 추가할 경우 그리드는 컨테이너를 stateful 컴포넌트로 할당하고, 심지어 그 컨테이너들을 그리드 전반에 걸친 고가용성 클러스터로 만들어 컨테이너들이 다양한 물리적 위치를 차지하도록 할 수 있습니다. 과거에는 이런 아키텍처를 구축하려면 독립형 Oracle ERP 시스템이 각 레이어에 대해 20개 정도의 CPU를 전담시켜야 했을 것입니다. 전형적인 ERP 시스템의 경우 오전에 맹공을 당하고 잠시 소강 상태를 유지하다가 오후에 다시 프로세싱 요구가 피크에 달하는 경향이 있다는 사실에도 불구하고 말이지요. 역시 이 경우에도, 피크대를 위해 지나치게 많은 하드웨어와 리소스가 낭비될 뿐입니다.
그리드 환경에서는 그리드 컨테이너를 이용해서 동일한 아키텍처를 생성할 수 있습니다. 따라서 웹 서버 레이어는 20개의 컨테이너로 구성되고, 애플리케이션 레이어는 10개의 주 컨테이너와 10개의 리던던트 컨테이너를 보유하고, 데이터베이스 레이어는 또 다른 10개의 컨테이너와 10개의 리던던시를 보유하도록 하는 것이 가능합니다. 그리고 모든 레이어가 동일한 가상 하드웨어 리소스를 공유하게 되는 것이지요. 하드웨어 이용률 100%를 향하여 결국, 모든 애플리케이션이 동일한 가상화 인프라를 공유하도록 하고 적절한 리소스 관리를 활용함으로써, 기업은 오늘날의 현실인 15%가 아닌 100%에 육박하는 하드웨어 이용률을 실현하고 애플리케이션 리던던시와 가용성을 동시에 향상시킬 수 있게 될 것입니다. 가상화와 그리드를 모두 함께 또한 거대한 자동차 회사와 세계적 수준의 금융기관을 비롯한 일부 선도적 기업들은 가상화 운영체제, 가상화 애플리케이션, 공유 데스크탑 인프라, stateless/stateful 부하를 처리하기 위한 그리드 등을 포함하여 완벽한 가상화 환경으로 이동하고 있습니다. 이는 부정할 수 없는 대세입니다. 이제 규모를 막론한 거의 대부분의 조직체들이 각자의 기본적인 하드웨어 인프라 전체를 모든 애플리케이션이 공유하는 리소스로 취급하게 되는 것도 시간 문제라 할 수 있습니다. 이익은 크고 사업적 타당성도 너무나 명확한데 이에 관심을 갖지 않을 기업이 과연 있을까요? Bill Vass |
출처 : kr.sun.com