본문 바로가기

Network System/개발자도 궁금한 IT 인프라

가상화

가상화 : 서버 한 대를 여러 대의 작은 서버로 나눠서 사용하는 것

[ 가상화 기술을 사용하게 된 이유 ]

1. 윈도우의 Single-user Interface 운영체제 때문에 2개 이상의 프로그램을 한 서버에서 실행하면 나타나는 심각한 자원 경합 문제점과 1개의 프로그램을 돌리다 보니 남는 자원의 활용 필요성이 대두됨

2. 환경 변화를 민첩하게 해야하는 E-비즈니스 수요 증가와 경쟁, 보안 강화

[ 가상화 기술을 나누는 방식 ]

1. 공유(sharing)

- 대표적인 방식으로 물리적 자원을 시간 분할 기법으로 물리적 자원을 공유하여 사용하게 하는 방법

- CPU 가상화가 이런 방식을 사용함

 

2. 집합(aggregation)

- 여러 자원을 하나로 묶어서 물리적인 용량과 성능을 향상하며, 하나의 논리 장치로 관리할 수 있게 하는 방법

- MLAG이나 LUN이 이런 방식을 사용함

 

* MLAG : 한 서버에서 2개의 스위치를 링크에 각각 연결한 후 서버와 통신할 때 LACP 프로토콜을 사용해 하나의 스위치와 하나의 인터페이스로 통신하는 것처럼 인식하는 것

* LUN(Logical Unit Number) : 하나 이상의 단순 또는 배열 저장 장치에 위치할 수 있는 개별적인, 주소 지정이 가능한 논리 볼륨

 

3. 에뮬레이션(emulation)

- 하나의 시스템이 다른 시스템을 모방하는 행위인데, 이를 통해 가상 시스템에 어떤 운영체제를 설치하더라도 모두 인식할 수 있음

- 물리 장치가 갖고 있는 특수 기능이나 벤더에 특화된 기능은 사용할 수 없음

 

* 벤더 : 컴퓨터 시스템의 하드웨어나 소프트웨어 제품을 사용자에게 판매했을 때 그 제품의 브랜드에 책임을 지는 기업

 

4. 자원 절연(resource insulation)

- 물리 장치의 상태가 비정상인 상태에서도 논리 장치의 고가용성은 보장되는 것

- RAID를 대표적인 기술이라고 할 수 있음

 

* 고가용성 : 오랜 기간 동안 정상적인 운영이 가능한 성질


 

하이퍼바이저(Hypervisor)

= 여러 개의 VM(Virtual Machine, 가상 머신)이 동시에 수행되도록 하는 환경을 제공하는 것

 

타입1) 운영체제와 합쳐져 있는 형태,

VMware vSphere ESXi 제품군이 해당됨, 

운영체제 설치 없이 베어메탈 서버에 하이퍼바이저만 설치하므로 베어메탈 하이퍼바이저(Bare-metal Hypervisor)라고도 부름

타입2) 운영체제와 분리되어 있는 형태, 

VirtualBox이 해당됨, 

윈도우나 리눅스를 설치하고 그 위에 설치하는 것들임, 

호스트형(hosted)이라고도 부름

 

* 베어메탈 서버(Bare-metal Server) : 소프트웨어가 설치되지 않은 하드웨어를 뜻하며, 일반적인 경우는 운영체제가 설치되지 않은 상태의 서버를 의미함

 

[ 전가상화와 반가상화 하이퍼바이저 ]

= 하이퍼바이저의 역할 범위에 따라 구분한 것

 

전가상화(full virtualization) : 하이퍼바이저가 호스트 운영체제에서 모든 일을 처리하는 것, 

VMware의 vSphere ESXi제품은 모든 하이퍼콜(Hypercall)을 하이퍼바이저가 처리하므로 전가상화 방식임, 

하이퍼바이저가 하드웨어에 직접 접근하기 때문에 베어메탈 서버에 설치하는 운영체제와 같은 버전으로 게스트 운영체제를 사용할 수 있음

 

반가상화(para virtualization) : 일부 역할을 VM(가상 머신)의 도움을 받아서 처리하는 것, 

Xen의 가상화 제품은 Dom 0라는 게스트 운영체제가 하이퍼콜의 일부를 넘겨받아 처리하므로 반가상화 방식임, 

게스트 운영체제가 완전히 독립적인 수행 환경을 보장받지 않으므로  반가상화 환경에 맞도록 개선되어야 함

컨테이너(container)

= 애플리케이션을 실제 구동 환경으로부터 추상화할 수 있는 논리 패키징 메커니즘을 제공하는 것

 

장점)

- 하나의 프로세스로 기동 하기 때문에 VM에 대한 하드웨어 초기화 작업이 필요 없다.

- 가상 환경을 시작하고 종료하는 시간이 거의 수초밖에 되지 않다.

- 가상화 오버헤드도 거의 존재하지 않는다.

- 프로세스를 수행할 수 있는 독립된 공간을 제공한다.

- 호스트 운영체제와 다른 리눅스 컨테이너에서 들여다볼 수 없기 때문에 보안에서 기존 가상화 환경과 유사하다.

- 밀도 높은 설계와 요구되는 하드웨어 자원 수준이 낮다.

단점)

- 호스트 운영체제 이외의 다른 운영체제에서는 동작하지 않는다.

- 하드웨어 리소스를 공유할 수밖에 없다 보니 자원 경합을 피할 수 없다.

 

* PaaS(Flatform as a Service) : 독립적인 애플리케이션 수행 환경을 서비스 형태로 제공하는 것, 컨테이너 방식의 가상화 서비스에 적합한 분류임


 

CPU 가상화 기술

가상 시스템별로 CPU를 몇 개 할당해야 할까?

1. 다중 스레드와 단일 스레드 중 어느 것을 사용하는지 찾는다.

2. 몇 개의 코어를 사용할 때 성능이 좋은지 분석한다. (이런 활동을 워크로드 분석이라고 함)

3. 오버커밋을 고려해야 한다.

 

* 오버커밋(ocvercommit) : 물리적 용량 한계를 넘어서 할당하는 개념

메모리 가상화 기술

메모리는 공간을 차지하는 개념이기 때문에 먼저 메모리 공간을 차지한 VM이 메모리를 해제하거나 재기동하기 전까지는 메모리 공간을 할당받지 못하므로 CPU보다 더 보수적으로 설계해야 한다.

(즉, 오버커밋을 하지 않거나 오버커밋의 비율을 더 낮게 낮아야 한다.)

 

[ 물리 메모리의 한계를 넘기 위한 기술 ]

- 씬 프로비저닝 : VM에는 가상 메모리 주소값을 할당하고 VM에는 실제 메모리를 사용할 때 물리 메모리를 조금씩 할당해 주는 방식

- 벌룬 드라이버(balloon driver) : 물리 메모리로 할당된 메모리 영역을 줄이면 VM메모리가 물리 메모리 영역에서 디스크 할당 영역으로 이동하는 방식, 물리 메모리와 디스크 간에 상호 이동을 하면서 전체 크기가 유지됨

- COW(Copy on Write, 카피 온 라이트) : VM을 복제할 때 동일한 메모리를 복제하지 않고 동일한 메모리 영역을 참조하다가 데이터가 변경되는 시점에서 새로운 메모리를 할당하여 사용하는 방식

스토리지 가상화 기술

서버 가상화 환경을 사용할 경우 대체로 SAN 방식의 공유 스토리지를 많이 사용한다.

이유)

= 가용성 확보 : 하드웨어 구성 정보부터 운영체제와 애플리케이션 데이터까지 모두 스토리지에 저장되므로 공유 스토리지로 구성하면 가용성을 확보할 수 있음

 

[ 데이터 중복 제거(data deduplication) ]

VM의 특성상 복제된 VM이 많을수록 중복 제거율이 매우 높아지는 장점이 있음

하지만 중복 제거율이 높아질수록 데이터 영역에 대한 접근이 많아지며 성능이 반비례로 하락하는 단점이 있음

 

- VDI(Virtual Desktop Infrastructure, 가상 데스크톱 인프라) : 데이터 중복 제거에 비용 효율적인 아키텍쳐

- QoS : VM 간의 스토리지 접근 우선순위를 조절하는 기능, 모든 자원이 한순간에 고갈되는 것을 방지함

- 티어드 스토리지 서비스(Tiered Storage Service) : 서비스 레벨을 만들고 사용자 요구사항과 비용에 맞는 스토리지를 할당하는 서비스

네트워크 가상화 기술

[ 구성 방식 ]

- 외부와 통신이 가능한 외부 네트워크 : 하이퍼바이저 밖의 네트워크에 연결하기 위해서 사용

- 외부와 통신이 불가능한 내부 네트워크 : 서버 가상화 호나경 내의 서버들 간의 통신 환경을 제공하기 위해 사용

 

외부에 접속할 때 네트워크 주소 처리)

- 브리지드 네트워크로 연결하면 주소 자원을 외부 네트워크로부터 할당받고 호스트 서버와 동일한 수준에서 외부 네트워크와 통신

- 네트워크 주소 변환(NAT) 방식으로 연결하면 외부 네트워크와 분리된 내부 네트워크 주소를 할당받고 호스트 서버와 별도의 네트워크를 구성하게 됨

'Network System > 개발자도 궁금한 IT 인프라' 카테고리의 다른 글

클라우드  (0) 2021.02.28
네트워크  (0) 2021.02.27
백업, 데이터 보호  (0) 2021.02.24
서버의 스토리지  (0) 2021.02.23
메인프레임, 유닉스, x86  (0) 2021.02.21