# QEMU와 Libvirt를 사용하여 클라우드에 해킨토시 돌리기 ([cloud+libvirt.md](cloud+libvirt.md) 한국어 개요) 모바일 앱 개발을 위해 IOS 지원을 해야하는 상황인데, 평소에 내가 맥 유저도 아니고 맥을 사고서는 프로젝트가 끝나고 잘 안쓰게 될 것이 뻔해서 해킨토시를 클라우드에 돌리는 방법을 연구하였다. 클라우드에 해킨토시를 올려 사용하므로써, 맥북을 따로 가지고 다녀야 하지 않는다는 점과 여러 사람이 필요할 때마다 접속하여 사용할 수 있다는 이점이 있다. 중첩 가상화를 지원하면서 스폿 인스턴스를 손쉽게 사용할 수 있는 클라우드 플렛폼은 Azure라고 판단하여 Azure에 올려보았다. Libvirt로 L2 게스트(L0: 클라우드 호스트, L1: 클라우드 VM, L2: 클라우드 VM의 게스트)를 관리하기 편하며 virt-manager의 간편함과 USB 리디렉션 기능, virt-viewer의 윈도 지원 등을 이유로 Libvirt를 사용하여 해킨토시를 구동하기 위해 발생하는 단점보다 장점이 더 크다고 판단하였다. 작업 부하에 맞게 VM 성능을 자유롭게 늘리고 낮출 수 있는 장점이 있다. USB 관련 문제가 많다. USB 리디렉션으로 클라우드에서 동작하는 원격의 VM에 로컬 USB 장치를 제한적으로 연결할 수 있다. 안타깝게도 안드로이드와 IOS 폰의 USB 리디렉션은 게스트가 로컬에서 동작하면 문제가 없으나, 네트워크를 거치면 불가능하다. 따라서 IOS 개발은 Ad-hoc 배포를 통해서만 가능하다. 오디오 지원은 아직 펌웨어 수정이 필요하다.