윤병훈
한국IBM 기술영업지원본부 책임전문위원
bhyoon@kr.ibm.com

오늘날의 기업들은 10년 전에 비하여 약 7배나 많은 서버를 운영하고 있다. 그럼에도 불구하고 서버를 구입하는 비용은 지속적인 기술 개발에 의한 가격 성능의 향상으로 10년 전과 거의 비슷한 수준에 머물고 있다. 그러나 수많은 서버를 관리하는 비용은 약 9배 증가하여 매우 큰 부담이 되고 있는 것이 오늘날의 현실이다.
다시 말해서 기술 비용(Technology Cost)이 인건비 (People Cost)에 의하여 대치되고 있으며 더불어 복잡해진 네트웍을 관리하여야 하는 추가적인 부담을 안고 있다는 것이다. 한 조사 보고서에 의하면 2008년에는 서버 구매 비용의 약 3배를 서버 관리 비용으로 지불하는 것으로 나타났다.
이러한 상황에서 IT 환경의 단순화를 통하여 총 소유 비용을 줄일 수 있는 방법 중에서 IT 자원의 가장 큰 부분을 차지하고 있는 서버 가상화에 대하여 알아보기로 하자.

서버 가상화란?
최근에 이야기되고 있는 컴퓨터 자원의 가상화(Virtualization)란 것은 새로운 개념이 아니다. 최초로 가상화된 컴퓨터 자원은 메모리(Memory - Main Storage)로서 1964년에 발표된 IBM S/360의 다음 세대인 S/370 아키텍처가 최초로 가상화 스토리지(Virtual Storage)라는 개념을 사용하였다. 그러나 서버 가상화 (Server Virtualization)란 단순한 메모리 가상화를 넘어서 서버를 구성하는 모든 자원의 가상화를 의미하는 것이다.
<그림 1>에서 보듯이 전체 타원은 하나의 물리적인 서버를 의미하고, Subset은 마치 수학에서의 진부분 집합 개념과 같이 물리적인 서버가 가지고 있는 모든 자원을 독자적으로 가지고 독립된 논리적 서버를 뜻한다. 위의 그림으로만 본다면 Subset-1, Subset-2, Subset-3 등 3개의 논리적 서버가 1개의 물리적 서버에 존재하는 것이다.
이 논리적 서버를 우리는 가상화 서버(Virtual Server)라고 부르는데 각각의 가상화 서버는 서로 간섭을 하지 않으므로 하나의 가상화 서버에 발생한 문제는 해당 가상화 서버에만 영향을 미칠 뿐이다. 이러한 기능을 'Virtual Server Isolation'이라고 한다.
가상화 서버를 위하여 컴퓨터의 프로세서, 메모리 및 I/O 장치를 분할하여 독립적으로 동작할 수 있게 하여 주는 기능이 필요한데 이를 분할(Partitioning)이라고 한다. 용어는 같이 사용하지만 각 플랫폼에 따라 기능의 차이가 있다.
이러한 분할 기술은 다음과 같이 세 가지로 나눌 수 있다.

● 하드웨어 분할 (Hardware Partitioning)
● 논리 분할 (Logical Partitioning)
● 소프트웨어 분할 (Software Partitioning)

각각 나름의 장점과 단점을 가지고 있다. 그러면 각 플랫폼에 따라 서로 다르게 구현되고 있는 IBM의 서버 가상화에 대하여 알아보기로 하자.

IBM e서버 z시리즈
● 논리 분할
IBM은 1987년 S/390에서 PR/SM이라고 불리는 분할(Partitioning) 기술을 처음으로 발표하였다. 마이크로코드를 통하여 프로세서를 공유하고 논리적 파티션에 할당하도록 한 업계 최초의 기술이었다. 이렇게 최초에는 프로세서만을 분할할 수 있었으나 1990년 발표된 PR/SM에서는 프로세서 뿐만 아니라 I/O 공유도 가능하게 되었다. PR/SM은 지속적인 발전을 통하여 오늘날 PR/SM은 프로세서, 메모리 및 I/O 모두 공유가 가능하게 되었으며 e서버 z990 모델에서는 30개까지 분할하여 사용할 수 있게 되었다.
특히 z시리즈의 LPAR에서는 프로세서를 분할하는 최소 단위가 매우 작아서 파티션당 한 프로세서의 10만분의 1 즉 0.000001 단위까지 세분화할 수 있다. 또한 PR/SM을 통하여 각 파티션에 논리 채널(Logical Channel)을 할당할 수 있어서 더 작은 물리 채널의 사용이 가능하게 되었다. 최근에는 LPAR와 LPAR 사이에 고속으로 메모리 대 메모리(Memory-to-Memory) 통신을 가능하게 하여주는 하이퍼소켓(HiperSocket)이라고 하는 새로운 기술이 z990 서버에서 가능하게 되었다.
하이퍼소켓 기능은 z시리즈에서만 구현 가능한 가상화 기술로서 LPAR 사이에 데이터 전송이 메모리 속도로 처리되며, 별도의 Hop을 추가로 발생시키지 않고 서버 내부에서 네트웍 구성이 가능하므로 네트웍 구성을 단순화할 수 있다.
또한 데이터가 항상 서버 내부에 있어 보안이 보장된다. 이러한 LPAR에서는 z/OS, z/VM, TPF 및 리눅스와 같은 서로 다른 오퍼레이팅 시스템이 동시에 운영될 수 있다.

● 소프트웨어 분할 -z/VM
서버 가상화라는 것이 단순하게 하나의 서버에 여러 개의 가상 서버를 넣을 수 있다는 수준의 문제는 아니다. 여러 서버간의 자원을 동적으로 할당하고 보다 많은 자원이 필요로 하는 곳에 더 많은 자원을 제공하여 시스템 효율을 극대화 할 수 있는 방법을 제공할 때 진정한 의미의 서버 가상화 라고 이야기 할 수 있다.
또한 여러 가상 서버간의 통신의 경우 서버 내에서 가상 네트웍을 구성하여 성능은 물론 네트웍 장치의 장애에 대한 대비와 함께 완벽한 네트웍 보안을 구축할 수 있는 기능을 제공해야 한다. 이점에서 z시리즈의 서버 가상화는 각 가상 서버들이 프로세서, 메모리 등의 자원을 독점적으로 점유하여 사용하는 물리적 분할과 비교된다. 필요한 만큼의 자원을 필요한 순간에 제공하고 또한 가상 서버간의 통신은 가상 네트웍을 통하여 이루어져 물리적 네트웍 장치를 통해서 이루어지는 것에 비하여 월등한 성능과 함께 완벽한 네트웍 보안 환경을 구축할 수 있는 것이다.
이런 가상화를 가능하게 하는 하게 하는 z시리즈의 서버 가상화 방법에는 앞에서 설명한 논리 분할 방식(LPAR) 이외에 소프트웨어 분할 방식(z/VM) 두 가지가 있다. 기본적으로 LPAR와 z/VM은 거의 동일한 코드로 작성되어 수행된다. 다만, LPAR가 마이크로코드 차원에서의 하드웨어적인 접근이라면 z/VM은 소프트웨어적인 방법으로 접근하는 것이 차이라고 할 수 있다.
LPAR의 경우 물리적으로 30개라는 분할이 가능하지만 z/VM의 경우 자원이 충분하다면 물리적으로 숫자에 제한 없이 수십~수백의 분할이 가능하다. z/VM을 통한 소프트웨어적인 가상화는 리눅스가 z시리즈에 도입되기 시작하면서부터 더욱 각광 받기 시작하여 현재 수 많은 고객들이 수십 혹은 수백의 가상서버를 운영하여 서버 자원을 효율적으로 사용하고 있다.
z/VM은 LPAR의 30개라는 한계를 뛰어 넘어서 서버 자원이 충분하다면 제한없이 가상 서버를 구축하여 운영할 수 있다. z시리즈에서 리눅스를 운영할 때 z/VM은 최고의 가상 서버 환경을 제공한다. 하나의 z시리즈에 수십 혹은 그 이상의 서버들을 통합하여 가상 서버 팜 (Virtual Server Farm)을 구축할 수 있다.
물론 <그림 3>에서 보듯이 z/VM의 가상 서버로 반드시 리눅스만을 사용해야 하는 것은 아니다. z/OS 운영체제도 z시리즈의 운영체제의 하나로서 z/VM의 게스트로 설치하여 운영할 수도 있다. z/VM은 LPAR에서는 제공하지 못했던 몇몇 추가적인 가상화 기능을 제공한다. 예를 들어, 메모리의 경우 LPAR와는 다르게 z/VM 자체의 페이징 기능을 활용하여 가상 서버들에게 더 많은 메모리를 제공해 줄 수 있다. 그리고 전체적인 메모리의 사용을 z/VM이 관리하여 메모리를 많이 필요로 하는 게스트에 메모리를 제공하고, 현재 사용하지 않는 부분은 페이지에 저장하여 완벽하게 가상화 환경을 게스트에게 제공하여 준다.
또한 <그림 4>에서 볼 수 있는 것과 같이 가상 네트웍인 HiperSocket의 경우도 z/VM의 가상 서버간에는 물론 LPAR와 z/VM의 게스트 사이에도 통신 할 수 있어 하나의 z시리즈 서버 내에서 완벽한 환경을 구축 할 수 있다.
이처럼, z시리즈 서버 가상화는 기존의 어떤 서버에서도 이룩하지 못한 최고의 가상화 환경을 제공한다. 하드웨어적인 LPAR는 물론 소프트웨어적인 z/VM 그리고 가상 서버간의 연결은 가상 네트웍 기능을 통하여 성능, 장애 대비 및 보안의 모든 관점에서 완벽한 환경을 제공 하고 있다. 즉 하나의 z시리즈 서버 안에 대형 시스템을 위한 환경에서 중소업무의 환경까지 통합하고 네트웍 장치 또한 가상화 하는 환경을 구축할 수 있다.

IBM e서버 p시리즈
RISC 기반의 유닉스 서버인 IBM e서버 p시리즈는 파워5 프로세서를 기반으로 설계되었으며 서버, 저장 장치, 네트웍 등의 자원을 효과적으로 관리할 수 있는 가상화 기술을 제공한다.

● 파워 하이퍼바이저
파워 하이퍼바이저(POWER Hypervisor)는 파워5 프로세스에 설치된 IBM 가상화 엔진 시스템(Virtualization Engine system) 기술의 필수적인 요소이다. 파워5 프로세스에 적합하게 설계된 기능들과 연계되어, 파워 하이퍼바이저는 마이크로 파티셔닝, 가상 프로세스, IEEE VLAN 지원 가능한 가상 스위치, 가상 SCSI 어댑터 및 가상 콘솔을 포함한 다른 시스템 기술들을 가능하게 한다.
파워 하이퍼바이저는 논리 파티션 사이의 독립성 강화, 물리적 프로세스에 대한 가상 프로세스의 운영 제어, 논리 프로세스 context switch 동안의 모든 프로세스 상태 정보를 저장 및 복원한다. 시스템 하드웨어와 논리 파티션 사이의 추상 계층처럼 작동하는 파워 하이퍼바이저가 파워5 기술 상에서 아무런 변경 없이 다수의 운영 시스템이 작동될 수 있도록 관리한다.

● 마이크로 파티셔닝
마이크로 파티셔닝의 개념은 파티션에 프로세스의 일부를 할당하여 자원 정의를 할 수 있게 하는 것이다.
- 파워4 시스템에서, 모든 파티션은 할당된 프로세스를 전부 사용할 수 있으며 해당 파티션에서만 사용된다. 이러한 개념을 'dedicated'라 한다.
- 파워5 시스템에서, 독점(dedicated) 프로세스 파티션과 마이크로 파티셔닝을 사용한 공유 프로세스 파티션을 선택할 수 있다.

마이크로 파티셔닝의 장점은 각각의 파티션에 필요한 프로세스 자원의 요구량만 자동으로 할당하여 시스템 자원의 전체 활용률을 증가시키는 것이다. 프로세스의 비율 뿐만 아니라 하나의 프로세스 이상을 설정할 수 도 있다. 파워 하이퍼바이저는 각각의 공유 프로세스 파티션 및 공유 풀 이내에서 현재 파티션 프로파일에 설정되었지만 할당되지 않은 여유 용량에 할당되는 프로세스 용량을 지속적으로 조절한다.
프로세스의 가상화는 전체 프로세스가 파티션에 할당되고 소유되는 파워4 시스템과는 근본적으로 다른 파티셔닝 모델을 만들 수 있었다. 이러한 새로운 모델에서, 물리적 프로세스가 가상 프로세스로 추상화된 이후 파티션에 할당되지만, 근간이 되는 물리적 프로세스는 이들 파티션에 의해 공유된다.
가상 프로세스 구성은 하드웨어 및 마이크로코드로 이루어진다. 운영 시스템 관점에서 가상 프로세스는 물리적 프로세스와 구별할 수 없다. 성능을 최적화하기 위해 운영 시스템은 공유 프로세스 풀을 좀 더 심도 있게 활용할 수 있다. 예를 들면, 필요하지 않을 때 하드웨어에 CPU 사이클을 강제적으로 양도할 수 있다.
마이크로 파티셔닝은 다수의 파티션이 하나의 물리적 프로세스를 공유할 수 있게 한다. 마이크로 파티셔닝 기술을 사용한 파티션은 공유 프로세스 파티션으로 불려진다. 파티션은 10 프로세스 단위로 프로세스 용량이 설정될 수 있다. 이것은 물리적 프로세스의 1/10을 말한다.
마이크로 파티셔닝은 모든 파워5 제품에서 지원된다. 공유 프로세스 파티션에도 여전히 해당 파티션에만 할당된 메모리가 필요하지만, 파티션 I/O는 가상 이더넷 및 가상 SCSI를 통해 지원될 수 있다.
이러한 모든 가상화 기능을 활용하면, 최대 254개의 공유 프로세스 파티션까지 지원 가능하다. 프로세싱 용량은 프로세스의 1/100 비율로 구성될 수 있다. 파티션에 할당되는 프로세스 용량의 최소 값은 프로세스의 1/10이다.
● 가상 이더넷(Ethernet)
가상 이더넷은 각 파티션에 할당된 물리적 네트웍 어댑터 없이 내부 파티션 간 통신을 가능하게 한다. 가상 이더넷은 관리자가 파티션 간에 메모리 상의 포인트 대 포인트(point-to-point) 연결을 설정할 수 있게 한다. 이러한 연결은 높은 대역폭의 이더넷 연결과 유사한 특성을 가지며 다수의 프로토콜(IPv4, IPv6, ICMP)를 지원한다. 가상 LAN은 물리적 스위치 디바이스 상에서 가상 네트웍 영역을 구성하기 위해 사용된 기술이다. 이것을 적절히 구성하게 되면 VLAN 설정은 다수의 스위치처럼 사용할 수 있다.

● 가상 SCSI
파워5 기반 시스템에서 최대 254개의 파티션을 지원하고, 서버 하드웨어는 160개의 I/O 슬롯만 제공된다. 각각의 파티션들은 기본적으로 디스크 부착을 위한 I/O 슬롯 1개와 네트웍 부착을 위한 1개가 필요하지만, 이 경우 파티션의 개수가 I/O 슬롯 개수를 초과하게 된다. 이러한 물리적 한계를 극복하기 위해서, I/O 자원을 공유할 수 있게 되었다. 가상 SCSI는 SCSI 스토리지 디바이스에 대해 공유할 수 있게 하였다. 그 이외에 가상 I/O는 이전에 지원되지 않은 스토리지를 사용할 수 있게 하기도 한다. 가상 I/O 서버가 스토리지 자원을 지원하는 한 클라이언트 파티션은 가상 SCSI 어댑터를 사용하여 해당 스토리지를 사용할 수 있다.
위에서 알아본 바와 같이 p시리즈에서도 마이크로 파티셔닝 기원이 지원됨으로써 서버 자원을 가상화하여 사용 효율성을 대폭 향상시킬 수 있게 되었다.

요약
파티셔닝과 가상화는 상호 보완적인 기술이라고 말할 수 있다. 두가지 기술이 연동되었을 때 최고의 효과를 발휘할 수 있는 것이다. 그러나 그 차이를 이해하는 것 또한 매우 중요하다. 간단히 말하자면, 파티셔닝은 하나의 물리적인 시스템 자원을 여러 개로 나누는 것을 뜻하며, 나누어진 각각의 파티션은 서로 간섭 없이 독립적으로 사용될 수 있다는 것을 의미한다.
가상화는 이러한 파티셔닝 기술을 한단계 업그레이드 시킨 것으로서 물리적으로 충분치 못한 시스템 자원을 이용하여 물리적인 자원과 가상 서버 사이에 일대일 관계로 보이도록 하여주는 것이다. 다시 말해 서버 가상화의 핵심 요소 기술이 파티셔닝 기술이며 위에서 설명한 것처럼 다양한 방식이 존재한다.
가상화는 복잡한 것이 결코 아니다. 동일 기종의 자원 가상화 및 이기종 자원의 가상화 그리고 더 나아가서 차세대 컴퓨터 기술인 그리드(Grid)를 이용한 기업 내부 수준에서의 가상화, 마지막으로 공급업체, 협력업체 및 고객을 포함한 기업 외부 수준에서의 가상화 등 단계별로 적용 가능하다.
저작권자 © 컴퓨터월드 무단전재 및 재배포 금지