12-23 03:50
Notice
Recent Posts
Recent Comments
관리 메뉴

Scientific Computing & Data Science

가상화 vs 에뮬레이션, 차이점은 대체 무엇일까? 본문

ICT/Articles

가상화 vs 에뮬레이션, 차이점은 대체 무엇일까?

cinema4dr12 2014. 4. 27. 20:24

원문 : http://www.itworld.co.kr/blog/?l=http://dellpowersolution.co.kr/208176351

에뮬레이션(Emulation)과 가상화(Virtualization)는 비슷한 점이 많지만 운영상 차이점도 많습니다. 새로운 아키텍처에서 기존의 운영체제에 접근하려 한다면 에뮬레이션을 선호할 테지만, 반대로 가상화된 시스템은 기초 하드웨어와 독립적으로 작동합니다. 오늘은 자주 혼동하는 이 용어들을 구분하고 기업 IT 운영에 있어서 각각 무엇을 의미하는지 살펴보도록 하겠습니다.

 


차이점


짧게 말해, 에뮬레이션은 하나의 시스템이 다른 시스템을 흉내 내도록 하는 것입니다. 예를 들어, 한 소프트웨어가 시스템 A에서는 구동되고 시스템 B에서는 구동되지 않을 때 시스템 B에서 시스템 A의 동작을 "에뮬레이션"합니다. 그러면 해당 소프트웨어는 시스템 A의 에뮬레이션에서 구동하게 됩니다. 


이 때, 가상화에서는 시스템 A를 B와 C 두 개의 서버로 분리합니다. 이 "가상" 서버들은 독립적인 소프트웨어 컨테이너(Container)로써 자체적으로 CPU, RAM, 스토리지, 네트워킹 등 소프트웨어 기반 자원에 접근할 수 있으며 독립적으로 재부팅도 가능합니다. 이 둘은 정확히 실제 하드웨어처럼 작동하며, 애플리케이션 또는 다른 컴퓨터는 그 차이점을 인지하지 못합니다.
 

이 각각의 기술은 저마다의 용도, 장점, 단점이 있습니다.



에뮬레이션(Emulation)


에뮬레이션의 예에서 소프트웨어는 하드웨어를 대신해 하드웨어와 같은 방식으로 동작하는 환경을 구성합니다. 이 때, 에뮬레이션 프로세스에 사이클을 할당함으로써 프로세서에 피해를 주는 대신에 사이클은 실행 연산으로 활용됩니다. 따라서 CPU 연산능력의 상당 부분을 이 환경을 구성하는데 사용하게 되죠.
 
흥미롭게도 사용자는 에뮬레이션 환경에서 가상 서버를 구동할 수 있습니다. 그렇다면 에뮬레이션의 자원 낭비가 심한데도 불구하고 이를 고려해야 하는 이유는 무엇일까요?
 
에뮬레이션은 다음의 시나리오에서 효과적으로 활용할 수 있습니다.

 

 

•    다른 하드웨어용 운영체제 구동 (PC에서 맥(Mac) 소프트웨어 구동 또는 컴퓨터에 콘솔 기반 게임 구동)
•    다른 운영체제용 소프트웨어 구동 (PC에서 맥 전용 소프트웨어 구동 또는 반대의 경우)
•    호환 하드웨어가 없는 상태에서 레거시(Legacy) 소프트웨어 구동


또한 에뮬레이션은 여러 시스템을 위한 소프트웨어를 설계할 때 유용합니다. 코딩을 단일 머신에서 수행할 수 있으며 애플리케이션은 자체 창에서 동시에 실행되는 복수의 운영체제 에뮬레이션에서 구동할 수 있습니다.

 



가상화(Virtualization)


가상화의 경우, 물리적인 위치 또는 배치에 상관 없이 컴퓨팅 자원을 효율적이며 기능적인 방식으로 활용합니다. 충분한 RAM과 스토리지를 갖춘 고성능 머신은 가상화로 각각 자원을 보유한 여러 대의 서버로 분리될 수 있습니다. 가상화를 사용하지 않으면 일반적으로 단일 서버로 배치되는 이런 단일 머신들은 각각 회사의 웹이나 이메일 서버를 호스팅할 수 있습니다. 따라서 기존에 충분히 활용하지 않던 컴퓨팅 자원을 적극적으로 활용할 수 있습니다. 이는 비용 절감에 크게 도움이 되겠죠.
 
에뮬레이션 환경은 하드웨어와 상호 작용하는 소프트웨어 브리지가 필요한 반면에 가상화는 하드웨어에 직접 접근합니다. 단, 가상화는 전반적으로 속도가 빠르기는 하지만 이미 기본 하드웨어에서 구동할 수 있는 소프트웨어 구동으로 제한됩니다. 가상화의 이점은 다음과 같습니다.

 


•    기존 x86 CPU 아키텍처와의 광범위한 호환성
•    모든 하드웨어와 소프트웨어에 물리적인 장치로 표시
•    각 인스턴스가 독립적으로 작동함
 

에뮬레이션과 가상화를 통해 기업은 대부분의 가상 시스템 기능을 수행할 수 있습니다. 두 서비스가 비슷하게 들리겠지만, 중요한 것은 소프트웨어를 어떻게 활용하느냐입니다. 소프트웨어를 더욱 빨리 실행하고 싶다면 가상화를 통해 게스트 코드를 CPU에서 직접 실행할 수 있습니다. 반대로, 에뮬레이터는 게스트 코드 자체를 구동하여 CPU를 다른 작업에 활용할 수 있습니다.

Comments