새로운 소프트웨어를 자주 테스트해 보는 분이라면 아마 어떤 형태로든 가상화 제품을 활용하고 계실 겁니다. 이 글에서는 가상화 소프트웨어를 사용할 때 생산성을 높이는 실질적인 방법들을 소개합니다.
'가상화'라는 용어는 상당히 포괄적인 개념으로, 에뮬레이션, 씬 레이어(thin-layer) 가상화, 샌드박싱, 완전한 가상 머신 스위트 등 다양한 유형의 프로그램에 적용될 수 있습니다. 오늘은 그중 마지막인 완전 가상화(full virtualization)에 대해 이야기하겠습니다.
완전 가상화 제품으로는 VMware Player, VMware Server, VirtualBox 등이 대표적입니다. 이러한 제품들은 학습, 테스트 등의 목적으로 운영체제 전체를 게스트 머신으로 담아낼 수 있는 간편하면서도 강력한 방법을 데스크톱 사용자에게 제공합니다.
다만 이 제품들의 유일한 단점은 프로그램 자체가 무겁고, 주로 RAM과 하드 디스크 공간 같은 귀중한 리소스를 많이 소비한다는 점입니다. 지금부터 복잡한 환경 변경 없이 이런 제한된 리소스를 최대한 활용하는 방법을 알려드리겠습니다.
1. 가상 머신 속도 개선: OS가 설치되지 않은 별도 하드 디스크에 배치
하드 디스크가 하나뿐이라면 가상 머신의 실행 속도가 느려질 수밖에 없습니다. 하나의 디스크가 실제 OS와 게스트 OS 파일에 동시에 접근해야 하기 때문입니다. 가상 머신을 두 번째 또는 세 번째 하드 디스크에 배치하면 성능이 눈에 띄게 향상됩니다.
2. 하드 디스크 공간 부족 해결: 외장 디스크 활용
가상 머신 하나가 쉽게 4~6GB 이상을 차지할 수 있습니다. 수십 개의 가상 머신을 내장 하드 디스크에 보관하면 귀중한 공간이 순식간에 소진됩니다. 요즘 하드 디스크는 대용량·저렴해졌지만, 가용 공간은 생각보다 금방 채워버리기 일쑤입니다.
외장 하드 디스크를 활용하면 여러 가지 이점을 한 번에 얻을 수 있습니다. 첫째, 내장 디스크 공간을 다른 용도로 확보할 수 있습니다. 둘째, 앞서 언급한 성능 문제를 해결할 수 있습니다. 셋째, 가상 머신은 결국 파일일 뿐이므로 휴대성이 추가되어 어디든 가져갈 수 있습니다. 넷째, 내장 하드 디스크의 조각화와 마모를 줄일 수 있습니다.
외장 하드 디스크는 확장성 문제도 함께 해결해 줍니다. 공간이 부족해질 때마다 외장 하드 디스크를 하나 더 추가하면 됩니다. PC 케이스를 열고 내부 구성을 건드릴 필요가 없으며, 기존 작업 환경에 영향을 주지 않으면서 손쉽게 교체, 업그레이드, 이동이 가능합니다.
3. 원격 연결로 물리적 네트워크 구성의 복잡성 해소
VirtualBox와 VMware 모두 원격 연결을 지원합니다. 즉, 네트워크 연결(무선도 가능)만 있다면 해당 머신에 물리적으로 접근하지 않고도 별도 머신에 있는 가상 머신을 실행할 수 있습니다.
필자는 openSUSE 11 관련 기사에서 이를 직접 시연한 바 있습니다. T42 노트북의 openSUSE 11에서 VMware Server를 구동하고, 무선 네트워크를 통해 원격 Windows 및 Linux 호스트에 위치한 Windows와 Linux 게스트 머신을 실행했습니다.
4. 가상 머신을 NTFS로 포맷된 파티션에 배치
다소 의외로 들릴 수 있지만, 핵심은 이렇습니다. Windows는 Microsoft 포맷만 지원하는 반면, Linux, Mac 등 상대적으로 발전된 운영체제들은 사실상 모든 파일시스템을 지원합니다. 따라서 혼합 환경에서의 병목 지점, 즉 가장 약한 고리는 항상 Windows 머신입니다. Linux 머신은 NTFS로 포맷된 파티션 위의 가상 머신을 문제없이 사용할 수 있지만, Windows 머신은 Linux 파일시스템 위의 가상 머신을 인식조차 하지 못합니다.
가상 머신을 NTFS 드라이브나 파티션에 배치하면 어디서든 자유롭게 활용할 수 있습니다. 마찬가지로 FAT32 파일시스템은 피하는 것이 좋습니다. FAT32는 가상 머신 파일 크기를 4GB로 제한하기 때문입니다.
5. 가상 머신을 작은 파일로 분할하여 휴대성 향상
가상 머신은 곧 파일입니다. 이를 작은 세그먼트로 분할하면 훨씬 쉽게 옮길 수 있습니다. 예를 들어 가상 머신 세그먼트 크기를 4.7GB 미만으로 제한하면 DVD로 백업할 수도 있습니다.
6. 디스크 공간 사전 할당으로 조각화와 접근 시간 감소
디스크 공간을 사전 할당(pre-allocation)하는 것은 비용이 클 수 있습니다. 특히 가상 머신이 대형화될 경우 더욱 그렇습니다. 그러나 하드 디스크의 특정 영역 전체를 가상 머신에 할당하면 가상 하드 디스크가 드라이브의 연속된 세그먼트에 위치하게 되어, 향후 조각화가 줄어들고 결과적으로 디스크 접근 시간이 단축됩니다.
사전 할당은 호스트와 가상 머신 양쪽 모두에 이롭습니다. 가상 머신은 사용 과정에서 동적으로 변하기 때문에, 서로 공간을 두고 경쟁하지 않아도 되어 전반적인 성능이 향상됩니다.
마무리
가상화는 즐거운 작업입니다. 나아가 이 즐거움을 더욱 빠르게 만들 수도 있습니다. 보조·추가 내장 하드 디스크, 외장 하드 디스크(USB 또는 FireWire), 원격 네트워크 위치 등 사용 가능한 모든 저장 장치에 리소스를 현명하게 분산하면 성능, 유연성, 안정성이 동시에 향상됩니다.
이를 통해 인프라 관리 부담 없이 생산성에만 집중할 수 있습니다. 다음 기사에서는 가상화 보안에 대해 다룰 예정입니다. 그때까지 즐거운 실험 되시길 바랍니다!