가상화란 무엇인가. 왜 가상화를 사용하는가?
안녕하세요. 달소입니다.
오늘은 심오한 주제를.... 들고왔습니다.
아마 다들 저보다 잘 아실테고 전문가들이시겠지만 제가 몇년동안 홈서버를 가상화로 사용하는 이유나 겪어왔던 경험을 토대로 작성해보니 많은 격려 부탁드립니다. 👀
먼저 우리가 알고있는 PC의 형태는 보통 Windows / mac 그리고 조금 더 나아간다면 VM Workstation이나 Virtual Box로 설치해본 Linux, NAS로 사용하고있는 헤놀로지(DSM) 정도가 대표적이 아닐까 싶습니다.
가상화라는 개념 자체는 크게 어렵지않습니다.
가상화란 무엇인가?
GPT에게 물어보니 완전 잘 대답해주네요.(저보다 낫습니다)
가상화란 어떤기술인가요?
가상화(Virtualization)는 하나의 물리적인 리소스(예: 컴퓨터, 서버, 스토리지 등)를 여러 개의 가상 리소스로 분할하여 사용하는 기술입니다. 이를 통해 하나의 물리적인 리소스를 여러 개의 독립적인 가상 환경으로 나누어 사용할 수 있습니다.
가상화는 주로 가상 머신(VM)을 생성하여 사용하는 방식으로 이루어집니다. 가상 머신은 물리적인 컴퓨터와 유사한 환경을 제공하며, 운영체제(OS)와 응용 프로그램을 실행할 수 있습니다. 이를 통해 여러 개의 가상 머신을 하나의 물리적인 서버에서 실행할 수 있으며, 각각의 가상 머신은 독립적으로 운영체제와 응용 프로그램을 실행할 수 있습니다.
가상화는 리소스의 효율적인 사용과 관리를 가능하게 해주며, 시스템의 가용성과 안정성을 향상시킬 수 있습니다. 또한, 가상 머신은 호스트 시스템과 독립적으로 동작하기 때문에 호스트 시스템의 변경이나 장애가 발생해도 가상 머신은 영향을 받지 않고 계속해서 동작할 수 있습니다.
가상화는 서버 가상화뿐만 아니라 네트워크 가상화, 스토리지 가상화 등 다양한 분야에서 활용될 수 있으며, 클라우드 컴퓨팅과 관련된 기술의 핵심 요소로 사용됩니다.

위 개념으로 봤을때 가상화는 결국 리소스를 분할해서 사용하는걸 의미합니다.
Windows 에서 Hyper-V를 올려도 가상화고, WSL을 올려도 가상화고, VM Workstation을 올려도 가상화입니다.
이러한 가상화의 개념을 하이퍼바이저라고 하고 여기서 Type 1 하이퍼바이저와, Type 2 하이퍼 바이저가 나옵니다.
Hypervisor란 어떤것인가요?
Hypervisor는 가상화 소프트웨어 또는 하드웨어로서, 컴퓨터 시스템에서 가상 머신(VM)을 생성하고 관리하는 역할을 수행하는 소프트웨어 레이어입니다. Hypervisor는 호스트 시스템의 하드웨어 자원을 가상 머신에 할당하고, 가상 머신 간의 자원 충돌을 방지하며, 가상 머신의 독립적인 운영을 지원합니다.
Hypervisor는 두 가지 주요 유형으로 분류됩니다. 첫 번째는 타입 1 또는 네이티브 Hypervisor로, 호스트 시스템의 운영체제 위에 직접 실행됩니다. 이러한 Hypervisor는 높은 성능과 안정성을 제공하지만, 호스트 시스템과의 호환성 문제가 발생할 수 있습니다.
두 번째는 타입 2 또는 호스트형 Hypervisor로, 호스트 운영체제 위에서 실행됩니다. 이러한 Hypervisor는 호스트 시스템과의 호환성이 높고, 사용하기 쉽지만, 성능 면에서는 타입 1 Hypervisor보다는 떨어질 수 있습니다.
Hypervisor는 가상화 기술을 사용하여 서버 가상화, 데스크톱 가상화, 네트워크 가상화 등 다양한 가상화 환경을 구축하는 데 사용됩니다. 이를 통해 하나의 물리적 시스템에서 여러 개의 가상 머신을 실행하고, 자원을 효율적으로 관리할 수 있습니다.

대표적인 Type1은 VM Ware사의 ESXi 나, 서버포럼에서 애용하는 Proxmox, 써보지는 않았지는 유명한 시트릭스의 xen등이 있습니다.
Type2의경우 위에서 말씀드린 WIndow나 Linux 등에 올리는 가상화가 되겠죠
다시한번 정리해보자면 가상화를 사용하는 이유는 하나의 물리적인 리소스로 여러가지 서비스/시스템을 운영하고자 하는것입니다.
각각의 독립된 VM을 보장해주고 이미 가상화가 설치되었다면 가상화된 물리장비로써의 호환성도 보장되기때문에 LAN 호환성이나 여러가지 부분에서 자유로워집니다.
실제로 하드웨어는 천차만별이겠지만 가상화상태에서 할당할수있는 가상화 하드웨어는 제한적입니다.

헤놀에서 위 드라이버들을 모두 지원해주기때문에 쉽게 설치할수있는것입니다.
Disk또한 가상화된 Sata 컨트롤러나 scsi등을 모두 지원해주고있구요.
홈서버에서 가상화를 사용하는 이유?
위에서 말씀드린 하이퍼바이저 Type1,2에서 보편적으로 접할 수 있는 Windows에서도 가상화를 사용해서 시스템운영이 가능합니다.
다만, 윈도우의 경우 Type2 하이퍼바이저로 자원의 낭비 + 효율성 측면에서 떨어지고 기능또한 부족한 부분이 많아 ESXi, Proxmox 같은 Type1으로 넘어오게되어있습니다 ㅎㅎ..
ESXi의 장점의 경우 초심자가 이해하기 쉬운 익숙한 인터페이스와 기능이지만
단점이 하드웨어 호환성(Realtek LAN등)과 라이선스제약으로 인한 기능제약들이 많아서 Proxmox를 추천드립니다.
홈서버에서는 아무래도 물리적인 장비한대에서 여러개의 서비스를 운영하게 되는데 이러한 작업을 하나의 OS에서 진행하게되면 여러가지 호환성 문제나 충돌이 발생할 수 밖에 없습니다.
하지만 가상화로 운영하게 된다면 서비스별 각각 독립된 VM 환경에서 여러가지 서비스를 운영할 수 있고
백업이나 패스스루같은 다양한 기능들을 지원해주기 때문에 적절하다고 보여집니다.
아래는 제가 운영하는 Proxmox 메인서버입니다.
일반 PC의 사양(Ryzen 5700G)에서도 여러개의 서비스들이 문제없이 268일째 돌아가고있습니다 ㅎ

각각의 독립된 시스템으로 자원의 할당이 효율적으로 가능하고 원한다면 언제든지 변경할 수 있습니다.

스냅샷을 지원해서 작업 전 손쉽게 임시백업 복원이 가능한건 매우좋죠

그리고 이러한 스냅샷을 통한 백업 자동화로 데이터의 백업/복구의 용이성을 들수있습니다.

이외에 가상화 OS단에서 지원하는 ZFS 레이드, Native처럼 하드웨어를 사용하게해주는 패스쓰루 기능 등 여러가지 추가기능들이 많기때문에 홈서버 운영을 고려하신다면 가상화를 반드시 추천드립니다.
글은 역시 잘 못써서,, 내용이 중구난방이지만
질문이 있다면 많이 남겨주세요~