본문 바로가기

학부_대학원/대학원_학과공부정리

가상화- xen

SMALL

WHY?

가상화를사용하고, 공부해야하는가?


1. Server Consolidation[서버 통합] 

처음 사용이유는 Server Consolidation[서버 통합] 하드웨어의 발전으로 자원이 충분해짐에서 발단하였다. 

각 서버마다 해야 할 역할을 분담해서 나뉘어 놓았다. 즉 웹, DATA, DNS 서버를 각각 PC로 사용 했었다.

하지만 이는 불편하고 효율이 떨어진다. 생각해보면... 서버 관리 할 때, 일일이 관리하리간 힘들것이다.

가상머신을 구동 함으로써 하나의 PC에서 여러개의 서버를 동작하고 관리 할 수 있게 되었다.


2. Isolation [격리]

각자의 가상 OS를 돌림으로서 각 서버에 대한 독립성[Isolation]을 확보 할 수 있다.

예를들어서 하나의 물리 PC에 가상머신 없이 Web, Data, DNS 서버를 돌린다고 생각해본다.

만약에 해당 물리 PC에 A라는 Process가 동작하다가 고장나거나 자원을 누수가 발생하면 해당 서버의 서비스들은

질이 떨어질 것이다. 뿐만 아니라 network 설정 등 하나의 PC에서 모두 맞춰주고 관리해야 하는 불편함이 생긴다.

또한 관리의 용이성도 증가한다. 유지 보수의 경우 서비스의 중단 없이 새로운 가상 머신을 돌리고 확인 하는 과정을 거쳐도 되는 등

Isolation을 통해서 많은 효율이 발생한다.

번 외로 보안적 요소에서도 강점이 있을 것이라고 생각한다. 물론 가상머신이 공격당하면 위험하지만...

하나의 PC에서 여러개의 서비스를 가상머신 없이 가동한다면.. 공격 당 할 Vector가 많아지고 다같이 위험에 쳐해질 것이다.



Virtual Machine Monitor == Hypervisor

이름 그대로 가상 머신 모니터를 하이퍼 바이저라고 부른다. 아마.. supervisor 관리자와 hyper를 합성한것 같다.

가상 머신들을 감시하고 스케줄링, 자원관리하는 역할을 맡고 있다고 보면 된다. 

위와 같은 역할을 하는 소프트웨어 계층을 나타낸다

*가상머신 :  실제 머신은 아니지만 물리 머신이 있는 것 같은 환경


System Virtualization [Emulation vs CPU Virtualization]

시스템의 가상화에는 에뮬레이션과 cpu 가상화 두가지가 존재한다.

각자 알아보고 차이를 아는것이 도움이 된다고 한다.


Emulation

예를들어 안드로이드 에뮬레이터를 x86 intel에서 동작시킨다.

ARM 환경에서 바이너리를 동작시키기 위해서는...


1. 바이너리에서 코드 SCAN

2. 해당 코드를 Disassemble을 해서 ARM 명령어 추출

3. 해당 ARM 명령어를 Intel 명령어에 맞게 번역[Translation]

ARM명령어에서 LDMFD와 같은 명령어가 있으면..  Intel에서는 pop ret와 같이 해석해 준다. --> 맞는진...


간단하게 설명하면 번역이라는 단계를 거치고 실행 되어지기 때문에 성능이 낮다.


CPU Virtualization

Emulation과의 차이는 번역이라는 단계를 거치지 않고 Direct Execution하는 것이 CPU 가상화이다.

죽 Inte PC에서 ARM 명령어를 바로 실행 시키는 CPU를 가상으로 만드는 것을 말한다. 




[참고] Xen으로 배우는 가상화 기술의 이해 - CPU 가상화





LIST

'학부_대학원 > 대학원_학과공부정리' 카테고리의 다른 글

GeekOS - pre knowledge  (0) 2017.03.03
가상화 -xen(2)  (0) 2017.03.03
[Lecture] LaTeX - 2  (0) 2017.03.01
[Lecture] LaTeX - 1  (0) 2017.02.27
논문 주제 생각정리  (0) 2017.02.14