가상화
Virtualization
물리적인것을 가상으로 추상화
Mainframe(대용량 시스템)
아주 큰 하나의 시스템을 가지고 나누어서 썼다
전용cpu, 전용 os, 전용 아키텍쳐, 전용 네트워크 => 보안이 뛰어남
물리적인 큰것을 가상으로 나눠씀 (하드웨어를 나눌수 있다)
반도체의 발달로 개인컴퓨터(pc)가 만들어지며 필요가 없어졌다
왜 가상화가 다시 ?
하드웨어는 점점 좋아지는데 소프트웨어는 발전이 늦었다
물리적인 머신을 논리적으로 분리시켜 해결된다
가상화가 발달하게 된다
하드웨어를 논리적으로 나눌수 있게 하는 기술 -> Hypervisor (하이퍼 바이저)
HVM-> 가상화 유형
BM베어메탈 -> VM 가상화 -> Container 컨테이너
시간 순서대로 우위의 기술은 아니다, 상호 보완적인 기술
BM | VM | container |
BM | VM | |
BM |
BM
- 물리적인 하드웨어만 있는 형태 ( 물리 머신, 물리 시스템 )
- CPU,memory,Disk,NIC
isolation
격리 분리
어플리케이션끼리 격리가 안된다
어떤 프로그램이 다른 프로그램에 영향을 미치거나 커널에 영향을 미친다
--> 가상화가 해결해 줌
Protection ring
Application(프로그램) Ring3 |
Kernel(OS운영체제) Ring0 |
HW(하드웨어) |
privilege 권한
ring0 (커널) 하드웨어와 통신
ring3 실행하는 프로그램
근접한 ring끼리 통신 가능
CPU 아키텍쳐 (구조)
x86 우리가 사용하고 있는 intel cpu AMD cpu
x86 (32bit)- 한번에 처리 할 수 있는 정보량
x86_64 (64bit)
x64 (64bit)
---->현재는 32bit를 잘 이용하지 않기 떄문에 x86이라고 부른다
AMD: AMD64 현재 사용하는 64bit 아키텍쳐
Intel: EM64T
인텔이 먼저 64bit를 만들었는데 가짜 64bit였다
그 후 AMD가 진짜 64bir아키텍쳐를 만들었다
결국 인텔은 AMD에게 라이센스를 샀다
ARM 전력은 적게 드는데 성능이 좋지는 않다
M1 전력은 적게 드는데 성능이 좋다
가상화 기술을 나누는 방법
타입1
퍼블릭 클라우드에서 사용
고성능
실제 서비스에서 이용
App | App | App |
Kernel | Kernel | Kernel |
Hypervisor (MS Hyper-V / Linux KVM /Citrix Xen /Vmware ESXi) |
||
HW |
타입2
실습용
App | App | App |
Hypervisor | ||
Host OS | ||
HW |
전가상화(Full-Virtualization)
기존에 있던 운영체제 사용 가능
-Binary Translation
통역의 기능을 소프트웨어적으로 구현
-HW Assistance
통역의 기능을 하드웨어가 한다
Intel VT-x /AMD V 의 기술이 있어야한다
->똑같은 기능이면 하드웨어가 빠르다
모든 기능을 하드웨어로 만들 수 없기 때문에 소프트웨어로 구현
반가상화(Para-Virtualization)
리눅스 운영체제만 가능
성능이 좋다
운영 체제 커널이 자신이 가상화인것을 인지 해야한다
-> 기존에있던 운영체제의 수정 (리눅스 운영체제만 가능)
cpu가상화를 제공함에따라 전가상화와 반가상화의 성능차이가 나지 않게 됨
QEMU(Full)_KVM(Para)
'클라우드 > 도커(Docker)' 카테고리의 다른 글
도커 Docker 설치 (0) | 2021.06.30 |
---|---|
컨테이너 Container 개념 (0) | 2021.06.30 |
haproxy session stickiness( 로드밸런서 세션 고정) (0) | 2021.06.29 |
Wordpress 인프라 구성 (0) | 2021.06.28 |
iSCSI(아이스카시) (0) | 2021.06.28 |