가상화 (Virtualization)
단일한 물리 하드웨어 시스템에서 여러 시뮬레이션 환경이나 전용 리소스를 생성할 수 있는 기술
- 사용자 또는 환경에 기능을 분산하여 물리적 시스템의 전체 용량을 사용
- 하나의 서버에 단일 운영체제와 개별 작업을 실행하는 것이 더 쉽고, 안정적이지만 각 서버는 잠재적인 용량의 일부에 불과한 약 30%를 사용
- 가상화를 사용하면 서버를 독립적인 작업으로 처리할 수 있는 2개의 고유한 서버로 분할하여 레거시 앱을 마이그레이션 할 수 있음
- 즉, 동일한 하드웨어이지만 더 많은 것을 더 효율적으로 사용
가상화 등장 배경
1. 하이퍼바이저 (Hypervisor)
Virtual Machine Monitor (VMM)라고도 하는 하이퍼바이저는 가상 머신(VM)을 생성하고 실행하는 소프트웨어
- 메모리나 프로세싱과 같은 리소스를 가상으로 공유하여 하나의 호스트 컴퓨터에서 여러 게스트 가상머신(VM)을 지원
- 경량의 운영 체제처럼 작동하며 호스트의 하드웨어에서 직접 실행
- 공격을 받기 쉬운 운영 체제와 격리되어 있기 때문에 매우 안전
- 성능이 더 좋고 효율적
- 대부분의 기업은 데이터 센터 컴퓨팅 요구 사항을 위해 베어메탈 하이퍼바이저를 선택
Type 2 - HyperVisor (Hosted)
- 다른 컴퓨터 프로그램처럼 운영 체제에서 소프트웨어 계층으로 실행
- 호스트 시스템의 운영 체제(OS) 위에서 실행되며, 하이퍼바이저 위에 추가(및 다른) 운영 체제를 설치
- 대기 시간이 길다 (하드웨어와 하이퍼바이저 간의 통신은 OS 계층을 통과하기 때문)
- 대기 시간이 문제가 되지 않는 최종 사용자 및 소프트웨어 테스트에 가장 자주 사용(클라이언트 하이 퍼바이저라고도 함)
하드웨어 가속 기술은 베어 메탈 및 호스팅된 하이퍼바이저 모두의 처리 속도를 높이고,
가상 리소스를 더 빠르게 생성 및 관리
2. 리눅스 컨테이너 (Linux Container)
운영체제 수준의 가상화 기술로 리눅스 커널을 공유하면서 프로세스를 격리된 환경에서 실행하는 기술
- 애플리케이션 실행 환경을 컨테이너라는 단위로 가상화
- 컨테이너의 기반이 되는 이미지를 효율적으로 만드는(빌드) 기능
- 이미지를 배포하기 위한 구조 (Docker Hub와 같은 저장소 서비스)를 제공
가상화 관련 오픈 소스
임베디드 가상화
Automotive
Edge Device & Container
Edge Computing & K8s