가상머신과 하이퍼바이저

byeol4001·2020년 12월 2일
0
post-thumbnail

지금의 회사에서는 가상환경을 구성하여
테스트 후 배포하는 방식으로 개발을 진행하고 있다고 한다.

그래서 Vagrant과 Virtualbox을 사용하는것 같은데
직접 구현할것은 아니지만 개념에 대한 이해는 필요할듯 싶어서
검색 후 내 나름 이해한 부분을 정리해두려고한다 🏄‍♀️


일단 Vagrant과 Virtualbox을 이해하려면
 가상머신 에 대한 이해와  하이퍼바이저 에 대한 이해가 필요하다.

1. 가상 머신(Virtual Machine, VM)

VM은 가상머신으로 물리적 하드웨어 시스템에 구축되어 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 독립적인 동작이 가능하도록 하는 시스템 차원의 가상 머신을 말한다.

가상 머신은 자신의 PC에 설치되어 있는 OS 외에 다른 OS를 사용할 수 있게 해준다


2. 하이퍼바이저(Hypervisor)

호스트 컴퓨터 한대에서 다수의 운영체제를 동시에 실행 할 수 있도록 하는 가상 플랫폼 기술을 말한다.

하이퍼바이저의 분류

&nbspType 1&nbsp&nbsp ( Native / Bare metal )
설정과 설치가 까다롭고 호스트의 하드웨어에 직접 설치되어 구동이 된다.

   → Xen(젠), KVM(Kernel-based Virtual Machine), mircosoft의 Hyper-v 등

&nbspType 2&nbsp&nbsp ( Hosted )
어플리케이션과 비슷하게 호스트 OS위에 설치하여 구동시킨다
기존의 컴퓨터 환경을 그대로 사용하는 방식이므로 설치 및 구성이 편리하다.

   → VMware, VirtualBox, QEMU 등



가상머신 환경은 보편화 되서 사용되고 있고, VMWare나 Oracle의 Virtual Box등을 이용하여 PC에서도 손쉽게 VM 환경을 구축할 수 있다.

Virtual Box와 같은 Hypervisor가 있다고 해도, VM을 생성하는 것 자체가 논리적인 가상 하드웨어 머신을 생성하고 가상머신에 OS를 설치하고, 일일이 설정을 해줘야 하는 번거로운 작업이라서 이런 반복적인 작업을 조금더 손쉽게 자동화 할 수 없을까? 하는 아이디어에서 시작한 것이 Vagrant이다.

Vagrant는 간소화된 가상머신 관리 서비스이고,
Virtual Box는 한 컴퓨터에서 가상 OS로 여러개의 OS실행을 가능하게 해주는 프로그램이다.

즉, 정리하자면

가상머신을 생성하기 위해 VirtualBox를 이용하고, 그 위에 OS를 설치한다.
OS 설치는 시간이 오래 걸리기 때문에 머신 이미지를 한번의 명령으로 내려받을 수 있는 Vagrant를 사용한다.


VM은 ubuntu기반 머신으로 생성되는데,
다른 OS인스턴스를 만들고 싶다면 미리 만들어져 있는 이미지들을 https://app.vagrantup.com/boxes/search 에서 찾아서 config.vm.box 에 대입해주면 된다고 한다.





Reference
http://cloudrain21.com/hypervisor-types
https://bcho.tistory.com/806
https://rudalson.tistory.com/entry/Vagrant%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-VirtualBox-%EC%A0%9C%EC%96%B4%ED%95%98%EA%B8%B0
http://blog.naver.com/PostView.nhn?blogId=kibani&logNo=221312096909&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView

profile
프론트 개발자가 되는 과정

0개의 댓글