KVM over IP

Featured image

이 용어(?)를 처음 봤을 때는 linux의 KVM을 ethernet을 통해서 어찌어찌 한다는 아이디어인가 했다. 물론 알고보니 KVM (keyboard-video-mouse)에 대한 것이었지만.

오래전으로 거슬러 가보면 여러 대의 컴퓨터가 있는데, 하나의 키보드 마우스 모니터로 제어를 하려면 KVM이란 장치가 있었어야 했다. KVM 스위치라고도 한다 그런 의미에서. 제어하고 싶은 컴퓨터를 KVM 스위치에서 선택하면 내가 가진 키보드/마우스/모니터 셋이 해당 컴퓨터로 연결이 되는 그런 거다.

사실 여기서 흥미가 딱 끊어졌다.

잠시 머리가 헛돌아서 KVM을 클라우드로 돌게 하면 마치 VM을 네트워크 상에 띄어놓은 것 처럼 쓸 수 있는 것 아닐까, 커널의 가장 low level은 내 로컬 컴퓨터에서 돌게 하고 그 위에서 돌아가는 것은 네트워크를 통해 돌려서…

생각해보니 CPU 내부에서 주고받을 정보를 네트워크로 끌고 나오는 것이니까 사실상 효율이 개판이 되어 하나마나한 짓이 되기 때문이구나 했다.

로컬에 있는 내 컴퓨터가 가장 덜 고생하는 방법은 말 그대로 KM 정보만 네트워크로 실어나르고 클라우드에서 돌아가는 VM이 보내주는 video 신호만 잘 전달해주면 되는 것이다. 문제는 video 정보가 어쩔 수 없이 압축이 되어 보내져야 하는데, 그러기엔 모든 클라이언트가 좋은 코덱을 가지고 있는 것도 아니고 또 코덱을 쓰면 자연히 레이턴시가 늘어나기 때문에 이것이 문제가 될 수 밖에 없다. 솔직히 나는 VNC 같은 거 별로 좋아하지 않는다. 너무 느린 게 탈이다. 고해상도 화면으로 하면 받아와야 하는 데이터가 많아지니까 그것 또한 느려서 답답하고. 그래픽인 상태인 것을 보내지 않고 할 수 있는 좋은 방법은 (X가 그렇긴 한데..) 왜 안나오나 모를 일이다.