11장. QEMU 게스트 에이전트 및 SPICE 에이전트를 사용하여 가상화 개선
QEMU 게스트 에이전트 및 SPICE 에이전트와 같은 Red Hat Enterprise Linux의 에이전트를 배포하여 시스템에서 가상화 툴을 보다 효율적으로 실행할 수 있습니다. 이러한 에이전트는 이 장에 설명되어 있습니다.
참고
호스트 및 게스트 성능을 추가로 최적화하고 튜닝하려면 Red Hat Enterprise Linux 7 Virtualization 튜닝 및 최적화 가이드 를 참조하십시오.
11.1. QEMU 게스트 에이전트 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
QEMU 게스트 에이전트는 게스트 내에서 실행되며, 호스트 시스템이 libvirt를 사용하여 게스트 운영 체제에 명령을 실행할 수 있어 freezing 및 awing filesystems 와 같은 기능을 사용할 수 있습니다. 그러면 게스트 운영 체제가 이러한 명령에 비동기적으로 응답합니다. QEMU 게스트 에이전트 패키지 qemu-guest-agent 는 기본적으로 Red Hat Enterprise Linux 7에 설치됩니다.
이 섹션에서는 게스트 에이전트에서 사용할 수 있는 libvirt 명령 및 옵션에 대해 설명합니다.
중요
신뢰할 수 있는 게스트에서 실행하는 경우에만 QEMU 게스트 에이전트를 사용하는 것이 안전합니다. 신뢰할 수 없는 게스트는 악의적인 방식으로 게스트 에이전트 프로토콜을 무시하거나 악용할 수 있으며, 호스트에서 서비스 거부 공격을 방지하기 위해 내장 안전 장치가 존재하지만 호스트는 작업을 예상대로 실행하기 위해 게스트 협업이 필요합니다.
QEMU 게스트 에이전트는 게스트가 실행되는 동안 가상 CPU(vCPU)를 활성화 및 비활성화하는 데 사용할 수 있으므로 핫플러그 및 핫플러그 기능을 사용하지 않고 vCPU 수를 조정할 수 있습니다. 자세한 내용은 20.36.6절. “가상 CPU 수 구성”의 내용을 참조하십시오.
11.1.1. QEMU 게스트 에이전트와 호스트 간 통신 설정 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
호스트 시스템은 호스트와 게스트 머신 간의 VirtIO 직렬 연결을 통해 QEMU 게스트 에이전트와 통신합니다. VirtIO 직렬 채널은 문자 장치 드라이버(일반적으로 Unix 소켓)를 통해 호스트에 연결되고 게스트는 이 직렬 채널에서 수신 대기합니다.
참고
qemu-guest-agent 는 호스트가 VirtIO 직렬 채널을 수신하는지 감지하지 않습니다. 그러나 이 채널의 현재 사용은 host-to-guest 이벤트를 수신하므로 리스너가 없는 채널에 쓰기 때문에 문제가 발생하는 게스트 가상 시스템의 가능성이 매우 낮습니다. 또한 qemu-guest-agent 프로토콜에는 명령을 실행할 때 호스트 물리적 시스템이 다시 동기화되도록 하는 동기화 마커가 포함되어 있으며 libvirt 는 이미 이러한 마커를 사용하므로 게스트 가상 시스템에서 이전 예기치 않은 응답을 안전하게 삭제할 수 있습니다.
11.1.1.1. Linux 게스트에서 QEMU 게스트 에이전트 구성 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
QEMU 게스트 에이전트는 실행 중이거나 가상 머신을 종료할 수 있습니다. 실행 중인 게스트에 구성된 경우 게스트는 즉시 게스트 에이전트를 사용하기 시작합니다. 게스트가 종료되면 다음 부팅 시 QEMU 게스트 에이전트가 활성화됩니다.
virsh 또는 virt-manager 를 사용하여 게스트와 QEMU 게스트 에이전트 간의 통신을 구성할 수 있습니다. 다음 지침은 Linux 게스트에서 QEMU 게스트 에이전트를 구성하는 방법을 설명합니다.
절차 11.1. Linux 게스트 종료 시 virsh 를 사용하여 게스트 에이전트와 호스트 간 통신 설정
가상 머신 종료
QEMU 게스트 에이전트를 구성하기 전에 가상 머신(이 예제의 이름이 rhel7 임)이 종료되었는지 확인합니다.virsh shutdown rhel7
# virsh shutdown rhel7Copy to Clipboard Copied! Toggle word wrap Toggle overflow 게스트 XML 구성에 QEMU 게스트 에이전트 채널 추가
게스트의 XML 파일을 편집하여 QEMU 게스트 에이전트 세부 정보를 추가합니다.virsh edit rhel7
# virsh edit rhel7Copy to Clipboard Copied! Toggle word wrap Toggle overflow 게스트의 XML 파일에 다음을 추가하고 변경 사항을 저장합니다.<channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> </channel>
<channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> </channel>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 가상 머신 시작
virsh start rhel7
# virsh start rhel7Copy to Clipboard Copied! Toggle word wrap Toggle overflow 게스트에 QEMU 게스트 에이전트 설치
게스트 가상 머신에 아직 설치되지 않은 경우 QEMU 게스트 에이전트를 설치합니다.yum install qemu-guest-agent
# yum install qemu-guest-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 게스트에서 QEMU 게스트 에이전트 시작
게스트에서 QEMU 게스트 에이전트 서비스를 시작합니다.systemctl start qemu-guest-agent
# systemctl start qemu-guest-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
또는 다음 단계를 사용하여 실행 중인 게스트에 QEMU 게스트 에이전트를 구성할 수 있습니다.
절차 11.2. 실행 중인 Linux 게스트에서 게스트 에이전트와 호스트 간의 통신 설정
QEMU 게스트 에이전트의 XML 파일 생성
cat agent.xml <channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> </channel>
# cat agent.xml <channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> </channel>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 가상 머신에 QEMU 게스트 에이전트 연결
다음 명령을 사용하여 실행 중인 가상 머신(이 예에서는 rhel7 이라는)에 QEMU 게스트 에이전트를 연결합니다.virsh attach-device rhel7 agent.xml
# virsh attach-device rhel7 agent.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 게스트에 QEMU 게스트 에이전트 설치
게스트 가상 머신에 아직 설치되지 않은 경우 QEMU 게스트 에이전트를 설치합니다.yum install qemu-guest-agent
# yum install qemu-guest-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 게스트에서 QEMU 게스트 에이전트 시작
게스트에서 QEMU 게스트 에이전트 서비스를 시작합니다.systemctl start qemu-guest-agent
# systemctl start qemu-guest-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
절차 11.3. virt-manager를 사용하여 QEMU 게스트 에이전트와 호스트 간 통신 설정
가상 머신 종료
QEMU 게스트 에이전트를 구성하기 전에 가상 머신이 종료되었는지 확인합니다.가상 머신을 종료하려면 Virtual Machine Manager 의 가상 머신 목록에서 선택한 다음 메뉴 표시줄에서 가벼운 스위치 아이콘을 클릭합니다.게스트에 QEMU 게스트 에이전트 채널 추가
게스트 창 상단에 있는 Lightbulb 아이콘을 클릭하여 가상 머신의 하드웨어 세부 정보를 엽니다.버튼을 클릭하여 새 가상 하드웨어 추가 창을 열고 채널을 선택합니다.이름 드롭다운 목록에서 QEMU 게스트 에이전트를 선택하고 :를 클릭합니다.그림 11.1. QEMU 게스트 에이전트 채널 장치 선택
가상 머신 시작
가상 머신을 시작하려면 가상 머신 관리자 의 가상 머신 목록에서 선택한 다음 메뉴 표시줄에서
을 클릭합니다.
게스트에 QEMU 게스트 에이전트 설치
virt-manager 로 게스트를 열고 게스트 가상 머신에 아직 설치되지 않은 경우 QEMU 게스트 에이전트를 설치합니다.yum install qemu-guest-agent
# yum install qemu-guest-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 게스트에서 QEMU 게스트 에이전트 시작
게스트에서 QEMU 게스트 에이전트 서비스를 시작합니다.systemctl start qemu-guest-agent
# systemctl start qemu-guest-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
QEMU 게스트 에이전트가 rhel7 가상 머신에 구성되어 있습니다.