가상화 기술

Updated:

연구 또는 개발을 하다보면, 무의식적으로든 의식적으로든 가상화를 접하게 되어있다.

(OS 관점) 윈도우 기반의 HOST OS에서 리눅스가 필요할 때도 있고, (Container 관점) 맥에서 도커가 필요할 때도 있다.

가상화란 쉽게 말하면 내가 사용하는 환경 위에 하드웨어 인프라를 공유하며 소프트웨어적으로 새로운 환경을 제공하는 것이다.

앱 마다 호환성이 다르기 때문에 필요하고, 간단하게 로컬에서 테스팅도 해볼 수 있다는 장점이 있다.


지금 개발중인 프로젝트는 ROS를 이용해 Unity에서 데이터를 받아와 작업이 필요한 상황이다.

대학원시절 내내 썼었던 Virtualbox가 단순히 손에 익어, 아무생각 없이 설치 후 Ubuntu와 ROS 셋팅을 마치고 작업을 했다.

그런데 Unity에서 Asset으로 제공되는 ROS sharp와 VM에 설치한 Ubuntu 위의 ROS는 네트워킹 과정이 조금 까다로웠다.

VM에서 네트워크 어댑터 설정 후 Ubuntu에서 IP 체크하여 링크하면 됐지만, 이런 작업 자체가 마음에 들지 않았다.

조금 더 편한 방법이 없을까 하다가, 지금 Docker를 공부하고 있기에 ROS Dockerfile을 찾아보았고, 윈도우 내에서 모든 작업이 가능할 것 같았다. (물론 docker라는 가상화 플랫폼을 사용하지만)

그래서 윈도우 Pro에서 기본 제공하는 Hyper-V를 활성화하고, Docker 환경 세팅을 마치니, 작업하고 있던 virtualbox가 먹통이 되었다.

hyper-v 기능은 VMWare, Virtualbox 같은 VM들과 충돌하는 문제가 있단다.

그래서 아예 Hyper-v 기반 가상머신 위에 Ubuntu를 올리는 게 낫다고 판단되어 환경을 옮겼다.

Hyper-v는 여러 포스팅을 보았을 때 IO측면에서 다른 VM 앱보다 월등히 낫다고 하고, 윈도우에 내장된 기능이기에 접근하기 편리하긴 했다.

다만, 원격접속 같은 느낌으로 조금은 입력지연이 느껴졌고, 사용성 관점에서 (HOST와 클립보드 복사 공유 등) 불편한 점이 있었다.

그 부분만 제외하고는 다 좋기에, 앞으로 윈도우 10 pro 버전을 쓸 때, 개인적으로 개발할 경우 다른 VM 앱을 쓸 일은 없을 것 같다.

Hyper-v에서 어느정도 개발을 마무리하면, Docker로 이주하는 작업을 해야겠다.


ref
VMWare vs. Virtualbox vs. Hyper-V

Categories:

Updated:

Leave a comment