728x90
반응형
가상화
- 하나의 하드웨어(물리 자원)에 하나의 소프트웨어 서버만 구동을 하면 아깝고 비효율적이므로 하나의 하드웨어에 여러개의 소프트웨어 서버를 구동하는 것
- 여러개의 소프트웨어 서버에 각각 운영체제를 설치하고 소프트웨어를 여러개를 돌려 하나의 서버에 서비스를 여러개 돌리자는 것이 가상화의 핵심!!
가상화 분야
- 데이터 가상화
- 다수의 이기종 데이터를 단일한 소스로 접근 가능하다
- 클라우드 컴퓨팅은 범위 뿐만 아니라 수많은 디바이스들로 접속할 수 있다.
- 네트워크 기능 가상화
- NFV (Network Functions Virtulization)
- 서버 가상화
- 하이퍼바이저 (Hypervisor) : 서버 자체를 가상화 하는 것
- 운영체제 가상화
- 컨테이너 (Container)
가상화 기술
- 가상화 기술 발전 이전
- 기본적으로는 하나의 물리적인 서버에 하나의 운영체제가 설치되고 하나의 운영체제 사용자가 원하는 어플리케이션을 돌리게 된다.
(과거에는 만약 다른 운영체제를 원할 경우 물리적인 서버를 하나 더 사용해야 했다.)
- 기본적으로는 하나의 물리적인 서버에 하나의 운영체제가 설치되고 하나의 운영체제 사용자가 원하는 어플리케이션을 돌리게 된다.
- 가상화 기술 발전 이후
- 하나의 물리적인 서버에 하나의 Virtualization Layer(Hypervisor)를 얹고 사용자가 원하는 수만큼의 운영체제와 어플리케이션으로 이루어진 가상 머신을 여러개 놓을 수 있다
- 가상화 레이어가 하나 더 추가되어 어플리케이션이 구동되는 시간이 조금 더 오래걸린다
하이퍼바이저(Hypervisor)
- 하나의 물리적인 서버를 여러개의 독립된 서버처럼 가상적으로 만드는 기술
- 전체를 가상화 하는 방법 : VMWare
- 부분 기능을 가상화 시킨 방법 : KVM
Type 1 : bare metal
- 하나의 하드웨어에 운영체제를 올리기 전에 BIOS처럼 Hypervisor를 깔고 Hypervisor 위에 다양한 운영체제를 돌리는 것
- VMware, Microsoft Hyper-V
Type 2 : hosted
- 기존에 사용되는 것처럼 하드웨어에 운영체제를 올린다. 그 후에 기본 운영체제가 아닌(같은 운영체제이더라도 새로운 가상의 운영체제를 새로 만들 경우) 새로운 가상의 운영체제를 만드는 것
- ex) Windows에서 Linux를 사용하여 개발하고 싶을 경우, Windows용 virtual box를 사용하여 linux를 설치하여 사용한다.
- VMWare, QEMU, Oracle Virtual Box
- 기존에 사용되는 것처럼 하드웨어에 운영체제를 올린다. 그 후에 기본 운영체제가 아닌(같은 운영체제이더라도 새로운 가상의 운영체제를 새로 만들 경우) 새로운 가상의 운영체제를 만드는 것
컨테이너(Container)
- Linux Containers (LXC, LXD)
- Docker
- OS는 하나인데 내가 원하는 어플리케이션이 실행 환경을 격리시키는 것
(어플리케이션을 각각 격리시켜 하나의 어플리케이션이 잘못되더라도 다른 어플리케이션에는 영향이 가지 않는다 ) - 어플리케이션 하나당 컨테이너가 할당된다!
하이퍼바이저 / 컨테이너
- 하이퍼바이저
- 중간에 가상화 계층이 있고 하드웨어 자체로 소프트웨어 표준,소프트웨어 가상 머신으로 만들어야 하기 때문에 이를 다시 실제 물리적인 하드웨어로 만들어야 하기 때문에 거쳐야 하는 과정이 많다.
- 전체를 가상화 하는데에는 유리
- 어플리케이션을 실행하는데 부담이 크다
- 단일 시스템에서 여러 운영체제가 동시에 실행된다
- 컨테이너
- 어플리케이션을 실행하는데 부담이 작다
- 하나의 운영체제 위에서 컨테이너를 여러개 두는 것이기 때문에 위에 올라가는 어플리케이션은 동일한 운영체제용 어플리케이션만 컨테이너로 만들 수 있다.
- 컨테이너가 리눅스 위에 올라가기 때문에 컨테이너를 사용하려면 어플리케이션이 리눅스 기반 어플리케이션이어야 한다.
- 단일 커널에서 여러 컨테이너가 동시에 실행된다(하나의 운영체제에 종속적)
LXC(Linux Containers)
- 리눅스 커널에서 제공하는 컨테이너에 접근하기 위한 인터페이스 기술(Command Line Interface나 다양한 Tool)들을 합쳐 놓은 것
- 컨테이너를 관리하는 도구들의 모음
- LXC 구성 요소
- liblxc 라이브러리 (이 라이브러리를 통해서만 LXC에 접근할 수 있다)
+) LXD
- LXC를 조금 더 편리하게 사용할 수 있도록 해준다
- liblxc를 통해 컨테이너를 관리하는 데몬 서비스
728x90
반응형
'Cloud > 가상화' 카테고리의 다른 글
[가상화] Openstack Neutron (0) | 2021.09.14 |
---|---|
[가상화] 클라우드 컴퓨팅 (0) | 2021.09.14 |