CS 지식

[CS 지식5.] 가상화란?

Somaz 2023. 3. 17. 01:40
728x90
반응형

Overview

 

<가상화의 발전과정>

출처 : https://itwiki.kr/w/%EB%8C%80%EB%AC%B8

 

오늘은 가상화에 대해서 공부해보려고 한다.

 


 

가상화란?

가상화는 시스템 내에서 물리적 장치 또는 리소스의 가상 버전을 생성하는 기술이다.  

이 프로세스를 통해 물리적 구성 요소를 논리 단위로 추상화할 수 있어 리소스 사용의 유연성과 효율성이 향상된다.  

가상화는 하드웨어 플랫폼, 저장 장치, 네트워크 리소스, 운영 체제 등 다양한 시스템 측면에 적용될 수 있다.

 

가상화의 종류에는 다음과 같은 것들이 있다.

  • 서버 가상화(Server Virtualization) : 하나의 서버를 여러 대의 가상 서버로 분할하여 하나의 서버로 여러 대의 서버를 대체하는 기술이다. 대표적으로 `VMware, Hyper-V, KVM, Xen` 등이 있다.
  • 스토리지 가상화(Storage Virtualization) : 스토리지 장치를 가상화하여 다수의 스토리지 자원을 통합적으로 관리하는 기술이다. 대표적으로 `SAN, NAS, DAS` 등이 있다.
  • 네트워크 가상화(Network Virtualization) : 가상의 네트워크를 만들어 물리적 네트워크 자원을 효율적으로 관리하는 기술이다. 대표적으로 `VPN, VLAN, VXLAN` 등이 있다.
  • 데스크톱 가상화(Desktop Virtualization) : 하나의 물리적 데스크톱을 여러 개의 가상 데스크톱으로 분할하여 관리하는 기술이다. 대표적으로 `VDI, RDS` 등이 있다.
  • 어플리케이션 가상화(Application Virtualization) : 어플리케이션을 가상화하여 어디서든 실행 가능하도록 만드는 기술이다. 대표적으로 `Citrix, App-V` 등이 있다.

 

이러한 가상화 기술들은 IT 자원을 더욱 효율적으로 사용하며, 관리와 유지보수 비용을 줄일 수 있다.

 


 

서버 가상화의 종류

호스트 가상화와 베어메탈 가상화는 서버 가상화에서 두 가지 주요한 방식이다. 이 두 가지 가상화 방식은 하이퍼바이저를 사용하여 가상 환경을 만드는 방법에서 차이가 있다.


 

호스트 가상화(Host-based Virtualization)

호스트 가상화는 하이퍼바이저가 호스트 운영체제에서 실행되는 방식이다. 이는 가상머신이 호스트 운영체제와 함께 작동하며, 호스트 운영체제가 가상머신의 생성, 시작, 중지, 삭제 등을 관리한다. 호스트 가상화는 전 가상화와 반 가상화를 모두 사용할 수 있다.

 

예를 들어, VMware와 같은 호스트 가상화 솔루션은 하이퍼바이저를 호스트 운영체제에서 실행하여 가상머신을 생성하고 관리한다. 이러한 가상화 방식을 사용하면 하이퍼바이저가 여러 가상 머신을 실행하는 동안 호스트 운영체제와 하드웨어 자원을 공유할 수 있다.

 

ex) `VM Workstation`, `VMware Server`, `VMware Player`, `MS Virtual Sever`, `Virtual PC`, `Virtual Box`, `Paralles Workstation`

 

출처 : https://itwiki.kr/w/%EB%8C%80%EB%AC%B8

 


 

베어메탈 가상화(Bare-Metal Virtualization)

베어메탈 가상화는 하이퍼바이저가 호스트 운영체제 없이 물리적 하드웨어에서 직접 실행되는 방식이다. 이는 하이퍼바이저가 직접 하드웨어 자원을 제어하며, 가상 머신을 실행한다. 베어메탈 가상화는 주로 반 가상화를 사용한다.

 

예를 들어, `Xen`과 같은 베어메탈 가상화 솔루션은 하이퍼바이저를 물리적 하드웨어에서 직접 실행하여 가상머신을 생성하고 관리한다. 이러한 가상화 방식을 사용하면 가상화 환경이 더욱 효율적이며, 성능이 향상된다.

 

따라서 호스트 가상화는 호스트 운영체제에서 하이퍼바이저를 실행하는 방식으로, 전 가상화와 반 가상화를 모두 사용할 수 있다. 반면 베어메탈 가상화는 하이퍼바이저가 물리적 하드웨어에서 직접 실행되는 방식으로, 주로 반 가상화를 사용하며, 성능이 우수하다.

 

ex) `Xen`, `MS hyper-V`, `citrix`, `KVM`

 

출처 : https://itwiki.kr/w/%EB%8C%80%EB%AC%B8

 

 


 

전 가상화(Full Virtualization)

 

전 가상화는 가상머신(VM)이 호스트 하드웨어와 완전히 독립적인 가상환경을 만드는 기술이다. 이는 가상머신이 모든 하드웨어 자원에 대한 접근을 완전히 가상화하고, 가상화된 운영체제는 하드웨어 자원을 직접 제어하는 것처럼 동작한다. 전 가상화는 호스트 하드웨어와 가상머신 사이에서 하드웨어 추상화를 사용하여 가상머신이 원하는 방식으로 하드웨어 자원에 접근하게 한다.

 

예를 들어, VMware와 같은 전 가상화 솔루션은 여러 가상 머신을 호스팅하는 서버를 만들 수 있다. 이때 가상화된 하드웨어 자원들 중 하나의 예로 가상 CPU, 메모리, 스토리지, 네트워크 등이 있다. 이러한 가상화 기술을 사용하면 한 대의 물리적 서버에서 여러 개의 가상 서버를 운영할 수 있다.

 

전가상화는 가상머신이 완전히 가상화된 하드웨어에서 작동하는 것처럼 보이게 하는 방식이다. 가상머신이 호스트 시스템과 완전히 격리된 환경에서 실행되므로 가상 머신에 대한 수정 및 업그레이드가 더욱 쉽다.

 

장점

  • 호스트 시스템과 완전히 격리되므로 가상머신 간의 보안성이 향상된다.
  • 가상머신은 완전한 하드웨어 가상화를 사용하므로 다양한 운영 체제를 실행할 수 있다.

 

단점

  • 가상머신은 완전한 가상화를 사용하므로 호스트 시스템에서 추가적인 오버헤드가 발생한다.
  • I/O 처리 속도가 느려질 수 있다.

출처 : https://library.gabia.com/contents/infrahosting/7426/

 

 

반 가상화(Para-virtualization)

 

반 가상화는 전 가상화와 달리 가상머신이 하이퍼바이저와 상호작용하여 하드웨어 자원을 관리하는 기술이다. 이는 가상머신이 가상화된 운영체제와 함께 하이퍼바이저에게 하드웨어 자원 요청을 보내는 것으로, 하이퍼바이저는 이러한 요청에 대해 필요한 자원을 할당해준다. 반 가상화는 가상머신과 하이퍼바이저가 함께 작동하기 때문에 전 가상화보다 빠르고 효율적이다.

 

예를 들어, Xen과 같은 반 가상화 솔루션은 게스트 운영체제를 수정하여 가상머신이 하이퍼바이저와 상호작용할 수 있게 만든다. 이러한 가상화 기술을 사용하면 가상머신에서 하이퍼바이저와의 상호작용을 최소화하여 더욱 빠른 가상화 환경을 구성할 수 있다.

 

반가상화는 가상머신이 하이퍼바이저와 통신하여 하드웨어 자원에 대한 직접 액세스를 제공받는 방식이다. 가상머신이 직접 하드웨어 자원에 액세스할 수 있으므로 I/O 처리 속도가 개선된다.

 

장점

  • 가상머신은 하이퍼바이저와 통신하며 하드웨어 자원에 직접 액세스할 수 있으므로 I/O 처리 속도가 빠르다.
  • 오버헤드가 적으므로 전가상화에 비해 더 높은 성능을 제공한다.

 

단점

  • 반가상화를 사용하려면 가상머신 운영 체제가 수정되어야 한다.
  • 가상머신 간에 보안성이 떨어질 수 있다.

 

컨테이너 가상화(Container Virtualization)

출처 : https://itwiki.kr/w/%EB%8C%80%EB%AC%B8

 

컨테이너 가상화는 운영 체제 수준에서 가상화를 수행하는 기술이다. 컨테이너는 가상 머신과 같은 격리된 환경을 제공하지만, 가상 머신과 달리 게스트 운영 체제를 실행하지 않으므로 오버헤드가 적다. 컨테이너는 호스트 운영 체제 커널을 공유하므로 더욱 가볍고 빠른 속도로 실행된다.

 

컨테이너는 다음과 같은 방식으로 작동한다.

  • 호스트 운영 체제에서 실행 중인 하나의 프로세스 또는 일부 프로세스 그룹을 격리된 공간인 컨테이너로 포장한다.
  • 컨테이너에는 필요한 라이브러리, 바이너리 및 기타 종속성이 포함된다.
  • 컨테이너는 고유한 파일 시스템 공간과 네트워크 인터페이스를 갖는다.
  • 컨테이너는 호스트 시스템과 완전히 격리되며, 다른 컨테이너와는 논리적으로 분리된다.

 

컨테이너 가상화는 다양한 용도로 사용된다. 예를 들어, 개발 환경과 운영 환경 사이의 차이를 최소화하기 위해 개발자들은 컨테이너를 사용하여 개발, 테스트 및 운영 환경을 표준화한다. 또한, 마이크로 서비스 아키텍처에서 각 서비스는 독립적인 컨테이너로 실행된다.

 

예를 들어, Docker는 컨테이너 가상화를 지원하는 가장 인기있는 툴 중 하나이다. Docker를 사용하면 소프트웨어를 개발 및 배포하기 위해 필요한 모든 것을 포함하는 컨테이너 이미지를 빌드할 수 있다. 컨테이너 이미지는 개발자가 개발한 소프트웨어와 해당 소프트웨어를 실행하는 데 필요한 모든 종속성을 포함된다. 이러한 이미지를 사용하여 Docker는 컨테이너를 시작하고 실행하는 데 필요한 모든 것을 제공한다.

 

장점

  • 빠른 배포: 컨테이너는 빠르게 생성되며, 필요할 때 언제든 배포할 수 있다.
  • 효율적인 자원 사용: 컨테이너는 가볍고 시작 시간이 빠르기 때문에 하나의 호스트에서 여러 개의 컨테이너를 실행할 수 있다.
  • 이식성: 컨테이너는 운영 체제나 하드웨어의 종속성을 최소화하기 때문에 이식성이 높다.
  • 확장성: 필요에 따라 컨테이너를 쉽게 확장할 수 있다.
  • 격리: 각 컨테이너는 다른 컨테이너와 격리되어 있으므로, 서로의 영향을 받지 않는다.

 

단점

  • 보안: 컨테이너는 호스트 운영 체제의 커널을 공유하기 때문에 호스트 운영 체제에 대한 보안 취약점이 컨테이너에도 적용될 수 있다.
  • 제한된 가용성: 하나의 호스트에서 여러 개의 컨테이너를 실행하는 경우, 해당 호스트에 문제가 발생하면 모든 컨테이너가 영향을 받을 수 있다.
  • 복잡성: 다른 가상화 기술보다 설정과 관리가 복잡할 수 있다.
  • 네트워크 관리: 여러 개의 컨테이너를 실행하는 경우, 컨테이너 간의 네트워크 구성이 복잡해질 수 있다.

 


 

스토리지 가상화의 종류

 

출처 : http://www.itdaily.kr/news/articleView.html?idxno=55177

 

스토리지 가상화는 다양한 스토리지 자원을 논리적으로 하나의 스토리지 풀로 통합하여 관리하는 기술이다. 이를 통해 다수의 스토리지 자원을 단일 논리적 스토리지 자원으로 통합하여 더 효율적으로 스토리지 자원을 관리할 수 있다.

 

스토리지 가상화의 대표적인 예로는 Storage Area Network(SAN)와 Network Attached Storage(NAS)가 있다.

 

SAN은 다수의 서버가 스토리지 자원을 공유하고 사용할 수 있도록 스토리지 자원을 가상화하여 제공한다. 또한, 스토리지 자원을 네트워크로 연결하여 사용하므로 다수의 서버가 공유하는 것이 가능해진다.

 

NAS는 파일 서버 형태로 스토리지 자원을 제공하며, 파일 공유와 같은 일반적인 파일 서비스와 유사한 방식으로 다수의 클라이언트가 접근하고 사용할 수 있다. NAS 역시 스토리지 자원을 가상화하여 제공하므로, 다수의 클라이언트가 파일 서버를 공유하여 사용할 수 있다.

 

스토리지 가상화는 스토리지 자원을 효율적으로 활용할 수 있으며, 가용성 및 확장성을 높일 수 있다. 또한, 유지보수 및 관리 비용을 절감할 수 있으므로, 기업에서는 스토리지 가상화 기술을 적극적으로 도입하고 있다.

 

SAN과 NAS는 모두 스토리지 가상화 기술을 이용하여 스토리지 자원을 관리하며, 다수의 클라이언트 또는 서버에서 스토리지 자원을 공유하여 사용할 수 있도록 해다. 하지만 SAN과 NAS는 각각 다른 장단점을 가지고 있다.

 

 

SAN의 장점

  • 높은 성능: SAN은 대용량의 데이터를 빠르게 전송할 수 있으며, I/O 성능이 뛰어나므로 빠른 데이터 액세스가 가능하다.
  • 고가용성: SAN은 다수의 서버가 공유하는 스토리지 자원을 제공하기 때문에, 하나의 서버나 스토리지 장비에 장애가 발생해도 다른 서버에서 자원을 공유하여 사용할 수 있어 높은 가용성을 보장할 수 있다.
  • 확장성: SAN은 스토리지 자원을 물리적인 장치와 분리하여 관리하기 때문에, 스토리지 용량을 쉽게 확장할 수 있다.
  • 보안성: SAN은 다수의 서버에서 스토리지 자원을 공유하기 때문에, 보안성을 높일 수 있는 추가적인 보안 계층을 구성할 수 있다.

 

SAN의 단점

  • 높은 비용: SAN은 고성능과 고가용성을 제공하기 때문에, 구축 비용이 높을 수 있다.
  • 복잡한 구성: SAN은 다수의 서버와 스토리지 자원을 연결하여 구성하기 때문에, 구성이 복잡할 수 있다.
  • 높은 유지보수 비용: SAN은 다수의 서버와 스토리지 자원을 연결하여 구성하기 때문에, 유지보수 비용이 높을 수 있다.

 

NAS의 장점

  • 중앙 집중적인 저장소: NAS는 중앙 집중적인 저장소를 제공한다. 이것은 여러 사용자가 동시에 NAS에 액세스 할 수 있고, 중복 데이터를 줄이며, 데이터 공유를 간편하게 만든다.
  • 확장성: NAS는 확장성이 높다. 사용자는 보통 NAS의 용량을 늘리거나 새로운 디스크를 추가함으로써 저장 공간을 쉽게 확장할 수 있다.
  • 안정성: NAS는 데이터 보호를 위한 여러 기능을 제공한다. 이러한 기능 중 일부는 RAID(데이터 복구) 및 자동 백업이 포함됩니다. 이것은 데이터 손실을 방지하기 위해 중요하다.
  • 액세스 제어: NAS는 액세스 제어 기능을 제공한다. 관리자는 사용자의 액세스 수준을 제한하거나, 파일 공유 및 액세스를 제한함으로써 데이터 보안을 강화할 수 있다.

 

 

NAS의 단점

  • 초기 비용: NAS는 비용이 많이 든다. 이것은 초기 설치 및 구성 비용으로 인해 발생할 수 있다.
  • 대역폭 한계: NAS는 네트워크 대역폭의 한계로 인해 속도가 느릴 수 있다. 이것은 많은 사용자가 동시에 액세스 할 때 더욱 문제가 될 수 있다.
  • 응답 속도: NAS는 일반적으로 로컬 스토리지보다 더 느린 응답 시간을 가질 수 있다. 이것은 파일 액세스와 같은 작업에서 더욱 두드러질 수 있다.
  • 고장 시 복구: 만약 NAS가 고장난 경우, 데이터를 복구하는 것이 더 어려울 수 있다. 

 


 

네트워크 가상화의 종류

출처 : https://www.techtarget.com/searchnetworking/What-is-network-virtualization-Everything-you-need-to-know

 

네트워크 가상화는 논리적으로 여러 개의 가상 네트워크를 생성하여 하나의 물리적인 네트워크 리소스를 효율적으로 활용하는 기술이다. 이를 위해 가상화 소프트웨어를 사용하여 가상 네트워크를 생성하고, 가상 네트워크에 대한 관리 및 제어를 수행한다.

 

이를 위해 다양한 가상화 기술이 존재하며, 그 중에서도 `VPN, VLAN, VXLAN`은 가장 대표적인 기술이다.

 

  • VPN(Virtual Private Network) : VPN은 인터넷을 통해 접속 가능한 여러 지역의 가상 네트워크를 연결하여 하나의 가상 네트워크를 구성하는 기술이다. VPN을 이용하면, 원격 지역에서도 사내 네트워크에 접속할 수 있으며, 인터넷을 통해 전송되는 데이터를 암호화하여 보안성을 높일 수 있다.
  • VLAN(Virtual Local Area Network) : VLAN은 하나의 물리적인 스위치를 여러 개의 논리적인 스위치로 분할하여 가상 네트워크를 구성하는 기술이다. VLAN을 이용하면, 하나의 물리적인 스위치에 연결된 서버나 장비들을 논리적으로 분리할 수 있다. 이를 통해 네트워크의 보안성과 성능을 향상시킬 수 있다.
  • VXLAN(Virtual Extensible LAN) : VXLAN은 VLAN과 유사한 가상화 기술이다. VXLAN은 VLAN과 달리, 하나의 가상 네트워크를 여러 물리적인 네트워크로 확장시키는 기술이다. VXLAN은 가상화된 서버 환경에서 사용되며, 서버가 물리적으로 이동할 때 네트워크 구성을 자동으로 조정하여 가상 서버의 이동성을 향상시킨다.

 

이와 같이 VPN, VLAN, VXLAN은 각각 다른 목적을 가지고 있으며, 서로 다른 가상화 기술이다. 하지만, 모두 논리적으로 가상 네트워크를 생성하여 네트워크 리소스를 효율적으로 관리하는 공통점을 가지고 있다.

 

 


 

 

SDN이란?

출처 : https://www.juniper.net/kr/ko/research-topics/what-is-sdn.html

 

SDN(Software-Defined Networking)은 네트워크 가상화를 구현하는 기술 중 하나로, 네트워크 제어 평면과 데이터 전달 평면을 분리하여 네트워크를 제어하는 방식이다. 이를 통해 네트워크 제어 로직을 별도의 서버에 집중시키고, 이를 통해 네트워크 자원을 효율적으로 사용하고 관리할 수 있다.

 

SDN에서는 네트워크 장비들의 제어와 데이터 전달이 분리되어 있다. 네트워크 장비들은 단순히 데이터를 전달하는 역할만을 수행하며, 네트워크 제어 로직은 SDN 컨트롤러라는 별도의 서버에서 처리한다. SDN 컨트롤러는 소프트웨어 기반으로 동작하며, 네트워크 제어 로직을 실행하여 네트워크 자원을 효율적으로 관리하고, 최적의 경로를 제공한다.

 

따라서, SDN은 네트워크 가상화를 구현하는 기술 중 하나로 볼 수 있다. 그러나 SDN은 단순히 가상화를 위한 기술에 그치지 않고, 네트워크의 유연성과 자율성을 높이는 기술로도 평가된다. SDN은 현재 네트워크 관리에서 가장 많이 활용되고 있는 기술 중 하나이며, 클라우드 환경에서의 가상화와 자동화에 큰 역할을 한다.

 


 

 

외부 네트워크 가상화와 내부 네트워크 가상화 비교

출처 : https://www.techtarget.com/searchnetworking/What-is-network-virtualization-Everything-you-need-to-know

 


 

오버레이 네트워크란?

https://nigelpoulton.com/demystifying-docker-overlay-networking/

오버레이 네트워크(Overlay Network)는 물리적인 네트워크 상에 논리적인 가상 네트워크를 구성하는 기술이다. 오버레이 네트워크는 기존의 물리적인 네트워크 구조를 변경하지 않고 논리적인 가상 네트워크를 추가하는 방식으로 작동한다.

 

그리고 여러 대의 컴퓨터나 장치를 연결하여 하나의 가상 네트워크를 형성하는데 사용된다. 이 가상 네트워크는 물리적인 네트워크 상에 생성되며, 여러 개의 오버레이 네트워크를 중첩하여 사용할 수도 있다.

 

오버레이 네트워크는 다양한 응용 분야에서 사용된다. 예를 들어, P2P(Peer-to-Peer) 파일 공유 서비스에서는 오버레이 네트워크를 이용하여 여러 대의 컴퓨터를 연결하여 파일을 공유한다. 또한, 클라우드 컴퓨팅에서는 가상 머신들을 연결하여 가상화된 데이터 센터를 구성하는데 오버레이 네트워크를 사용한다.

 

물리적인 네트워크와는 별개로 작동하기 때문에, 물리적인 네트워크에서 발생하는 문제가 오버레이 네트워크에 영향을 미치지 않는다. 또한, 오버레이 네트워크는 물리적인 네트워크와는 달리 논리적인 구조를 가지므로, 유연성이 높아 다양한 응용 분야에서 사용한다.

 

그리고 VXLAN은 오버레이 네트워크의 하나의 예시이다. 가상화된 환경에서 서로 다른 서브넷(subnet)을 가지고 있는 가상 머신(VM)들이 통신할 수 있도록 하는 가상화 네트워크 프로토콜이다. 물리적인 네트워크 상에서 서로 다른 가상 네트워크를 구성할 수 있도록 하며, 물리적인 네트워크 상에서는 하나의 네트워크로 동작한다.

 

VXLAN은 오버레이 네트워크의 하나의 형태이며, 다른 오버레이 네트워크 기술들도 있다.

예를 들어, NVGRE(Network Virtualization using Generic Routing Encapsulation)는 VXLAN과 비슷한 목적으로 사용되며, Geneve는 VXLAN과 NVGRE의 장점을 결합한 오버레이 네트워크 기술이다.

 


 

Reference

http://www.virtual-space.co.kr/virtualization.html

https://itwiki.kr/w/%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88_%EA%B0%80%EC%83%81%ED%99%94

책 : 모두를 위한 클라우드 컴퓨팅(노서영)

https://library.gabia.com/contents/infrahosting/7426/

http://www.itdaily.kr/news/articleView.html?idxno=55177 

https://www.techtarget.com/searchnetworking/What-is-network-virtualization-Everything-you-need-to-know

https://nigelpoulton.com/demystifying-docker-overlay-networking/

728x90
반응형