[Server] 가상화

가상화

서버 가상화는 한 대의 서버를 많은 서버로 분할하여 이용하는 기술이다. 가상화 소프트웨어를 통해 하드웨어를 논리적으로 분할하여 사용한다. 다음과 같은 장점이 있다.

  • 사용하지 않는 리소스의 활용
  • 라이브 마이그레이션 : 물리서버를 가동시킨 상태에서 가성머신을 다른 물리서버로 이동
  • 폴트 톨러런스 : 한 가상머신의 복사본을 다른 물리서버에 배치해두고 원래 가상머신에 장애가 생겼을 때 서비스를 이어받는 기능

하지만 가상화 소프트웨어 레이어를 거치게 되므로 퍼포먼스의 저하와 같은 단점이 있다.

hosted 방식 가상화

hosted방식은 보통의 OS에 인스톨한 가상화 소프트웨어에서 가상머신을 작동시키는 방식이다.

native 방식 가상화

native방식은 하이퍼바이저가 하드웨어 위에 직접 올라가서 실행된다. hosted방식과 비교해서 호스트OS에 사용되는 리소스를 절약할 수 있는 장점이 있다.

container 방식 가상화

컨테이너 방식 가상화는 LXC(Linux Container)를 통해 가상화를 수행한다. LXC는 단일 컨트롤 호스트 상에서 여러개의 고립된 리눅스 시스템(컨테이너)들을 실행하기 위한 운영 시스템 레벨 가상화 방법이다. LXC는 다음과 같은 특징이 있다.

  • chroot : 특정 디렉토리를 루트로 인식
  • name space : 리눅스 시스템 자원을 묶어 프로세스에 할당
  • cgroup : CPU, 메모리 등 프로세스 그룹의 시스템 자원 사용량을 관리해 특정 어플리케이션이 자원을 과다하게 사용하는것을 제한

native 방식과 비교해서 게스트OS가 필요없기 때문에 리소스의 사용에 장점이 있다.

Author: Song Hayoung
Link: https://songhayoung.github.io/2020/09/21/Server/virtualization/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.