![올바르게 복구하려면 실행 중인 서버 프로세스의 VirtualBox 스냅샷을 어떻게 구성합니까?](https://linux55.com/image/88220/%EC%98%AC%EB%B0%94%EB%A5%B4%EA%B2%8C%20%EB%B3%B5%EA%B5%AC%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%8B%A4%ED%96%89%20%EC%A4%91%EC%9D%B8%20%EC%84%9C%EB%B2%84%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%9D%98%20VirtualBox%20%EC%8A%A4%EB%83%85%EC%83%B7%EC%9D%84%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EA%B5%AC%EC%84%B1%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
저는 OS X 호스트에서 VirtualBox 5.0.20을 실행하고 있습니다. Ubuntu, CentOS, Windows 및 OS X를 포함한 다양한 게스트 시스템이 있습니다.
각 시스템에 대해 포트 18812에서 실행되는 서버 프로세스(Python 스크립트)를 사용하여 라이브 스냅샷(즉, 가상 머신이 실행되는 동안)을 생성했습니다. 다음을 통해 모든 가상 머신에 대한 포트 전달을 구성했습니다.
$ VBoxManage modifyvm <vmid> --natpf1 rpyc,tcp,,18812,,18812
이렇게 하면 localhost:18812
호스트 시스템에 연결하여 게스트에서 실행 중인 서버 프로세스에 연결할 수 있습니다.
모두 괜찮습니다. VM을 종료하고 스냅샷을 복원한 후 다시 시작하기 전까지는 괜찮습니다. 서버 프로세스가 아직 실행 중인 것 같으며 이에 연결할 수 있습니다.손님 내부에서, 그러나 호스트 시스템의 연결이 더 이상 작동하지 않습니다.
포트 전달은 여전히 작동하지만 서버 프로세스에 다시 연결할 수 있게 만드는 유일한 방법은 게스트에서 네트워크 시스템을 다시 시작하거나(예: service network-manager restart
Ubuntu에서 실행) 서버 프로세스를 다시 시작하는 것 같습니다. 둘 다 그다지 효율적이지 않습니다. 이상적인.
스냅샷을 복원할 때 실행 중인 서버 프로세스에 즉시 액세스할 수 있도록 VirtualBox VM을 설정하는 방법이 있습니까? 어쨌든, 나는 모든 게스트 시스템에서 이 문제를 발견했지만 특정 포트를 수신하는 netcat과 같은 간단한 "서버"에서도 발견했습니다.
답변1
이 상황에 대한 해결 방법은 시작 직후 가상 머신의 링크 상태를 전환하는 것입니다. 즉, 명령줄에서 다음을 수행합니다.
$ VBoxManage startvm <vmid>
$ VBoxManage controlvm <vmid> setlinkstate1 off
$ VBoxManage controlvm <vmid> setlinkstate1 on