모듬‎ > ‎

가상화

컴퓨터의 성능이 발달하면서 프로그램으로 컴퓨터를 돌리는 게 가능해졌다. 이 때문에 CPU 자체에 가상화를 위한 구조가 들어가기도 했다. 그리고 가능성 외에, 한국의 웹 환경에서는 윈도우 외의 운영체제를 쓰면서 윈도우를 쓸 수 밖에 없기 때문에 가상머신이 필수적이라 할 수 있다.


VMware


가상머신을 본격적으로 보급한 이름. 다양한 제품군이 있다. 그 중에 player와 server가 무료로 제공된다.

VMware Player


전에는 이미 만들어진 가상머신을 구동만 하는 개념이었는데 (그래서 qemu로 디스크를 만들고 .vmx를 직접 편집하는 작업을 조금 해야 했다), 3.0.1을 써보니 가상머신을 만들고 관리하는 기능이 들어가 있다. 다만 하드를 SCSI로 만들어서 .vmx에서 IDE0으로 고치고서야 윈도우 설치가 된다.

VMware Server (단종)


서비스로 돌아가고 웹으로 제어판을 제공한다. 왜인지 CPU도 덜 끌어다 쓰고 반응성도 떨어지는 느낌이었다.

하드에 비해 메모리를 많이 쓰도록 각종 설정을 조정했을 때 oom-killer 메시지가 뜨고 왠지 자주 연결이 끊겨서 (돌기는 도는 거 같은데 콘솔에서 접촉을 못 한다) 전체 메모리 사용량을 조정해야 했다.

서버라는 이름의 제품은 단종되었지만 서버군 자체는 단종되지 않았다. ESXi 등을 무료로 써볼 수 있다. (제품이 워낙 많고 서로 관계가 복잡해서 자세한 설명은 생략한다)

VMware Fusion


맥에서 돌아가는 버전. Parallels에 비해 좀 부드럽지 못한 느낌이다. 구동시에 마우스가 반응하지 않는 시간이 좀 있고, 부트캠프 구동시에 실제 장치에 접근하기 위해 관리자 권한을 요구하는데 이 단계에서 암호를 매번 다시 입력해줘야 해서 매우 번거롭다. 나중에 보니 암호를 매번 입력하지 않아도 되는 옵션이 있다. 원래 있던 건지는 모르겠다.

Parallels


맥에서는 VMware보다 먼저 이름을 알린 곳. 기대하지 않았는데 의외로 VMware보다 성능도 좋아서, 게임을 돌려봤는데 비교적 잘 돌고, 구동시의 마우스 멈춤 현상이나 암호 요구가 없다.

다만 VMware에서는 프로그램을 종료시킬 때 그대로 꺼지는 것이 아니라 내부 머신을 정상적으로 종료시키고 전원이 꺼지는 동작까지를 해주는 데 비해 Parallels는 그대로 전원이 나가는 식의 동작을 하도록 되어 있어서 아쉽다.

맥 시스템과의 연동도 공유 폴더 기능을 비롯해 내외부 어플리케이션의 상호 연동까지 다양한 수준에서 제공하지만 개인적으로는 윈도우의 보안 위험이 외부로 퍼지는 걸 원치 않기 때문에 연동 설정은 전혀 하지 않고 있다.

VirtualBox


OSE(open source edition)과 바이너리 버전이 따로 있다. (4.0부터는 아니다) OSE는 Ubuntu Gutsy부터 VMware 대신 기본 패키지에 포함됐다. VBoxHeadless -startvm 명령으로 띄운 후에 vrdp를 통해 접속할 수 있다. vrdp 인증을 external로 하면 된다. VBoxHeadless 자체를 데몬처럼 띄우는 건 vboxtool이란 게 있는데 su -를 쓰는 방법이라 그다지 깔끔한 느낌은 아니다. OSE에는 rdp 대응으로만 구동하는 기능이 빠져 있는데 연동을 잡아주면 잘 된다. 메뉴를 따라서 설정할 때는, NAT 네트워크에서 포워딩을 3389 포트로만 호스트와 게스트 양쪽에 지정해주면 잘 연결된다.

upstart 스크립트를 다음과 같이 작성해 /etc/init/vbox-ie9.conf 파일로 저장해서 사용했다. pre-start, post-stop을 사용하는 것은 변칙적인 방법이긴 한데 사용하는 데 크게 문제는 없었다.
#start on local-filesystems
stop on runlevel [!2345]
pre-start exec sudo -H -n -u keizie VBoxManage startvm IE9 --type headless
post-stop exec sudo -H -n -u keizie VBoxManage controlvm IE9 savestate


VMware의 .vmdk를 그대로 쓸까 하고 vditool이라는 걸로 바꿔봤는데 부팅이 안 되어서 그냥 새로 만들었던 적이 있다. 그 뒤로 변환해본 적은 없다.

Xen, KVM, libvirt, oVirt, Proxmox VE

ESXi 류의 상용 서비스에 비해 오픈소스 기반이라는 장점이 있지만, OS X 설치와 같은 가외의 기능들은 잘 알려져 있지 않아서 채택하기 애매하다.

Xen은 Ubuntu 기반으로 진행해보았는데 실행해 큰 문제는 없었다. 다만 관련 도구의 세대교체와 도태가 지나치게 빨라서 1~2년 전의 문서를 참조해서 진행하려면 많은 부분을 경험과 짐작으로 매꿔야 했다. 예를 들어, xm이라는 관리 도구는 최신 버전에서 xl로 대체되었고, XAPI라는 기능 분야는 xen-xapi라는 패키지로 제공되었으나 공식적인 지원이 중단되면서 우툰부 최신에서 패키지가 빠졌다. Passthrough를 통해 물리적 그래픽카드를 쓰는 것까지는 해보았다. 로컬 네트워크에서 약간 큰 파일을 복사했을 때 passthrough 되어서 윈도우에서 소리를 재생하고 있던 오디오 장치에서 소리가 지속적으로 끊기는 증상이 있었는데, 디스크 사용 등이 많을 경우 서로 간섭하는 증상이 있다면 곤란한 일이다.
  • http://www.bisente.com/blog/2011/03/15/macos-xen-snow-leopard-as-guest-on-a-xen-domu/
  • http://cafe.cryo.ws/2013/03/28/1735/
    • 일반적인 해킨토시다. 설치하고 사용하고 업데이트 하는 데 꽤나 공을 들여야 할 것 같다.
    • VGA Passthrough를 하기 위해서는 device_model_version=qemu-xen-traditional을 지정해야 하는데 여기서는 바이오스를 지정해주는 등의 구성에 제약이 있다. 아래의 KVM에서와 같이 애플 전용 바이오스 파일을 넘겨주는 등의 처리는 못 한다는 얘기이고, 결국 해킨토시 수준을 벗어날 수 없다.

KVM은 몇 가지 조사를 했을 때 장단점이 있다.
  • http://www.firewing1.com/howtos/fedora-20/create-gaming-virtual-machine-using-vfio-pci-passthrough-kvm
    • i915를 passthrough할 때 커널 패치가 필요하다고 한다. (이 패치 자체는 커널 관리팀에서 거절한 것으로 보인다) 그리고 패치를 해도 3D 성능이 나쁘다고 한다.
  • http://blog.definedcode.com/osx-qemu-kvm
    • OS X 설치를 네이티브로 할 수 있다고 한다. 몇 가지 환경을 맞춰주면 된다고 하는데, 아마 나중에는 별로 손대지 않고 처리될 수 있는 수준이 될 것 같다.
    • 하지만 직접 해보려고 하면 각종 패키지를 제대로 맞춘 것인지 알기도 어렵고, 문서에서는 하면 된다고만 적혀 있어서 따라가기 어렵다.
    • Ubuntu 14.10에서 qemu, kvm 등의 올라가 문서에서 지정하는 범위에 해당하게 되었다.
      • qemu-kvm 패키지를 설치하는 것으로 기본 패키지 준비는 되었다.
      • UEFI 환경을 맞추기 위한 ovmf이라는 패키지는 github에서 가져다가 OvmfPkg/build.sh 파일만 실행해주니 OVMF.fd 파일이 나왔다. ovmf 패키지로도 있기는 한데 잘 맞는지 확신할 수 없어서 따로 빌드한 것이다. ubuntu iso 파일을 받아서 -bios OVMF.fd 라고 지정한 상태에서 부팅하면 EFI 부팅 화면이 되는 것으로 보아 인식은 성공했다.
      • UEFI 환경을 맞춘 것은 OS X 10.10 Yosemite 이후에 기존의 mach_kernel 파일을 인식하는 대신 완전히 EFI 부팅 방식으로 바꾸었기 때문인데, 여기서 걸린다. 원래 쓰고 있던 Clover 부팅 USB를 붙이면 클로버 화면까지는 뜨는데 엔터를 쳐도 그 다음으로 진행하지를 않는다.
      • 혹시나 해서 10.9 이하 iso로 부팅을 시도하면 (정확한 OS X 버전은 모름) 설치 화면으로 진입은 하나 설치 중간 정도에서 오류가 발생했다며 설치가 중단된다.

Virtual PC

http://www.microsoft.com/windows/virtual-pc/

가상머신을 본격적으로 OS의 일환으로 도입한 사례랄까. 윈도우 7에서 기존 프로그램의 호환성 등 때문에 문제가 예상되자 아예 전에 있던 Virtual PC를 XP Mode라고 해서 별개로 윈도우 XP를 사용할 수 있게 하고 내외부가 연동되는 것처럼 보이도록 처리했다.

Hyper-V

윈도우 서버에만 있던 것으로 기억하는데, 윈도우 8.1 프로페셔널 이상부터는 서버군이 아니라도 설치할 수 있게 되었다.

하위 페이지 (2): ESXi Passthrough
Comments