Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

18장. 게스트의 원격 관리

이 섹션에서는 원격으로 게스트를 관리하는 방법을 설명합니다.

18.1. 전송 모드

원격 관리를 위해 libvirt 는 다음과 같은 전송 모드를 지원합니다.

TLS(Transport Layer Security)

SSL 3.1(Transport Layer Security TLS 1.0) 인증 및 암호화된 TCP/IP 소켓은 일반적으로 공용 포트 번호에서 수신 대기합니다. 이를 사용하려면 클라이언트 및 서버 인증서를 생성해야 합니다. 표준 포트는 16514입니다. 자세한 내용은 18.3절. “TLS 및 SSL을 통한 원격 관리” 에서 참조하십시오.

SSH

SSH(Secure Shell Protocol) 연결을 통해 전송되었습니다. libvirt 데몬(libvirtd)이 원격 시스템에서 실행 중이어야 합니다. SSH 액세스를 위해서는 포트 22가 열려 있어야 합니다. SSH 키 관리 (예: ssh-agent 유틸리티)를 사용하거나 암호를 입력하라는 메시지가 표시됩니다. 자세한 내용은 18.2절. “SSH를 사용한 원격 관리” 에서 참조하십시오.

UNIX 소켓

UNIX 도메인 소켓은 로컬 시스템에서만 액세스할 수 있습니다. 소켓은 암호화되지 않으며 인증에 UNIX 권한 또는 SELinux를 사용합니다. 표준 소켓 이름은 /var/run/libvirt/libvirt-sock/var/run/libvirt/libvirt-sock-ro 입니다( 읽기 전용 연결의 경우).

ext

ext 매개 변수는 libvirt 범위를 벗어나는 원격 머신에 연결할 수 있는 모든 외부 프로그램에 사용됩니다. 이 매개변수는 지원되지 않습니다.

TCP

암호화되지 않은 TCP/IP 소켓입니다. 프로덕션 용도에는 권장되지 않지만 일반적으로 비활성화되어 있지만 관리자는 신뢰할 수 있는 네트워크를 통해 테스트하거나 사용할 수 있도록 설정할 수 있습니다. 기본 포트는 16509입니다.

다른 값이 지정되지 않은 경우 기본 전송은 TLS입니다.

원격 URI

URI(Uniform Resource Identifier)는 virshlibvirt 가 원격 호스트에 연결하는 데 사용됩니다. 또한 virsh 명령의 --connect 매개 변수와 함께 URI를 사용하여 원격 호스트에서 단일 명령 또는 마이그레이션을 실행할 수 있습니다. 원격 URI는 일반 로컬 URI를 사용하고 호스트 이름 또는 전송 이름 또는 둘 다를 추가하여 구성됩니다. 특별한 경우 'remote'의 URI 스키마를 사용하면 원격 libvirtd 서버에서 최적의 하이퍼바이저 드라이버를 검색하도록 지시합니다. 로컬 연결에 대한 null URI를 전달하는 것과 같습니다.

libvirt URI에는 일반 형식(사각 괄호, "[]"의 콘텐츠)은 선택적 함수를 나타냅니다.
driver[+transport]://[username@][hostname][:port]/path[?extraparameters]
하이퍼바이저(driver)가 QEMU인 경우 경로는 필수입니다.
다음은 유효한 원격 URI의 예입니다.
  • QEMU://hostname/
외부 위치를 대상으로 하는 전송 방법 또는 호스트 이름을 제공해야 합니다. 자세한 내용은 libvirt 업스트림 문서를 참조하십시오.

원격 관리 매개변수의 예

  • SSH 전송 및 SSH 사용자 이름 virtuser 를 사용하여 host2 라는 원격 KVM 호스트에 연결합니다. 각각에 대한 connect 명령은 connect [URI] [-readonly] 입니다. virsh connect 명령에 대한 자세한 내용은 다음을 참조하십시오. 20.4절. “virsh Connect를 사용하여 하이퍼바이저에 연결”
    qemu+ssh://virtuser@host2/
  • TLS를 사용하여 host2 라는 호스트의 원격 KVM 하이퍼바이저에 연결합니다.
    qemu://host2/

예제 테스트

  • 비표준 UNIX 소켓을 사용하여 로컬 KVM 하이퍼바이저에 연결합니다. 이 경우 UNIX 소켓의 전체 경로가 명시적으로 제공됩니다.
    qemu+unix:///system?socket=/opt/libvirt/run/libvirt/libvirt-sock
  • 포트 5000에서 IP 주소 10.1.1.10이 있는 서버에 연결되지 않은 TCP/IP 연결을 사용하여 libvirt 데몬에 연결합니다. 이 명령은 기본 설정으로 테스트 드라이버를 사용합니다.
    test+tcp://10.1.1.10:5000/default

추가 URI 매개변수

추가 매개 변수를 원격 URI에 추가할 수 있습니다. 아래 표에서 인식되는 매개 변수를 설명합니다. 다른 모든 매개변수는 무시됩니다. 매개변수 값은 매개 변수 및 특수 문자가 URI 형식으로 변환되기 전에 URI-escaped(즉, 물음표(?)가 추가되어야 합니다.

표 18.1. 추가 URI 매개변수

이름 전송 모드 설명 사용 예
name 모든 모드 원격 virConnectOpen 함수에 전달된 이름입니다. 이름은 일반적으로 전송,호스트 이름 ,포트 번호,사용자 이름 , 사용자 이름 및 원격 URI에서 추가 매개 변수를 제거 하 여 형성되지만, 경우에 따라 이름을 명시적으로 제공하는 것이 좋습니다. name=qemu:///system
명령 SSH 및 ext 외부 명령. ext 전송의 경우 이 작업이 필요합니다. ssh의 경우 기본값은 ssh입니다. PATH가 명령을 검색합니다. command=/opt/openssh/bin/ssh
socket UNIX 및 ssh UNIX 도메인 소켓의 경로를 통해 기본값을 덮어씁니다. ssh 전송의 경우 이 값은 원격 netcat 명령에 전달됩니다( netcat 참조). socket=/opt/libvirt/run/libvirt/libvirt-sock
no_verify tls 0이 아닌 값으로 설정하면 서버 인증서의 클라이언트 검사가 비활성화됩니다. 클라이언트 인증서 또는 IP 주소의 서버 확인을 비활성화하려면 libvirtd 구성을 변경해야 합니다. no_verify=1
no_tty ssh 0이 아닌 값으로 설정하면 ssh가 암호를 요청하지 않고 원격 시스템에 자동으로 로그인할 수 없는 경우 가 자동으로 중지됩니다. 터미널에 액세스할 수 없는 경우 을 사용합니다. no_tty=1