클라우드

가상화 이해 1

akasha.park 2023. 9. 2. 19:36

가상화 virtualization

컴퓨터 리소스의 추상화를 일컫는 광범위한 용어
컴퓨팅 리소스를 '추상화'시켜서  하나의 물리 리소스를 여러 개의 논리 리소스처럼 기능 시키거나 여러 개의 물리 리소스를 하나의 논리 리소스처럼 기능하게 하는 것

단일한 물리 하드웨어 시스템에서 여러 시뮬레이션 환경이나 전용 리소스를 생성할 수 있는 기술
단일 물리 머신을 다수의 머신처럼 사용할 수 있으므로 서버와 워크스테이션 추가 비용을 단축합니다.

 



하이퍼바이저 소프트웨어가 하드웨어에 직접 연결되며 1개의 시스템을 가상 머신(VM)이라는 별도의 고유하고 안전한 환경으로 분할합니다
VM은 하이퍼바이저의 기능을 사용하여 머신의 리소스를 하드웨어에서 분리한 후 적절하게 배포합니다. 

호스트(Host) : 하이퍼바이저가 설치된 물리 하드웨어
게스트(Guest) : 호스트의 리소스를 사용하는 여러 VM
게스트는 CPU, 메모리, 스토리지 등의 컴퓨팅 리소스를 처리하는 리소스의 풀로, 쉽게 재배치할 수 있다
운영자는 필요할 때 필요한 리소스가 게스트에 제공될 수 있도록 CPU, 메모리, 스토리지, 기타 리소스의 가상 인스턴스를 제어할 수 있다.


GCP(Google Cloud Platform)

구글은 자신들의 데이터 센터에 있는 컴퓨팅 자원들을 가상화하여, 클라우드 서비스에 가입한 사용자들에게 나누어줍니다. 
사용자는 할당받은 가상 CPU를 사용하여 애플리케이션을 실행하기도 하고, 가상 스토리지에 데이터를 저장할 수도 있습니다. 
장소에 제약 없이 내 클라우드 공간에 자유롭게 접근할 수 있고,  성능이 부족하다면 아주 쉽게 컴퓨팅 자원을 더 할당받아 성능을 높일 수도 있습니다.

글의 자원을 가상으로 나누어 주는 것이기 때문에, 자원을 제공하고 회수하는 것이 빠르고 간편합니다.
가상 환경들은 모두 논리적으로 격리되어 있기 때문에, 각 가상 시스템의 문제는 전체 시스템에 영향을 주지 않습니다.

 

무어의 법칙 : 
반도체 칩의 성능 즉, 메모리의 용량이나 CPU의 속도가 약 24개월마다 2배로 증가하고, 가격은 2배씩 낮아진다 

1960~70년대 하드웨어와 소프트웨어 간의 성능 차이로 인한 컴퓨팅 자원 활용의 비효율 문제를 해결하기 위해  가상화가  등장
무어의 법칙에 의해 하드웨어의 성능은 빠르게 증가하고 있지만, 소프트웨어의 발전 속도는 하드웨어의 발전 속도를 따라가지 못해서 서버의 성능을 10% 수준밖에 활용하지 못하는 비효율이 발생하였다 
한 대의 서버 위에 동시에 여러 개의 OS를 설치하고 여러 애플리케이션을 실행시키는 가상화 적용 이후  자원 사용률은 60~80% 수준까지 향상되었다  

 

출처: IBM 'Virtualization Technology - A Manifold Arms Race'

 

 

출처: VMware 'Virtualization Overview'

 

1960년대 후반  IBM에서 완전한 가상화를 구현한 최초의 하이퍼바이저인 CP-40을 개발하였고 IBM의 서버 컴퓨터인 메인프레임에  최초의 가상화 기술이 적용되었습니다. 

 

출처: Introducing the new paradigm of Social Dispersed Computing: Applications, Technologies and Challenges (2018)

 

VM(Virtual Machine, 가상머신)  :  하드웨어 가상화에 의해 독립적인 OS를 갖는 가상 컴퓨팅 환경입니다. 
2001년에 첫 가상화 상용 솔루션인 VMware의 Workstation이 출시되었으며, 
2003년에는 Citrix의 Xen(젠)이라는 오픈 소스 솔루션이 출시됩니다. 
여러 회사에서 서버 가상화 플랫폼을 개발했고, 
VM의 배포 및 관리를 도와주는 다양한 자동화 및 오케스트레이션 툴이 개발되었습니다.


컨테이너는 애플리케이션 가상화로, VM과 달리 OS를 포함하지 않습니다. 
컨테이너는 하드웨어와 호스트 OS 는 그대로 둔 채 애플리케이션 영역만 캡슐화하여 격리하는 방식입니다

 VM에 비해 가볍고, 배포가 빠르며, 자원을 효율적으로 사용할 수 있다
 2013-14년에 차례로 등장한 Docker와 Kubernetes가 대표적인 컨테이너 배포 플랫폼입니다.