Red Hat Training

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

14장. virsh로 게스트 가상 머신 관리

virsh 는 게스트 가상 머신과 하이퍼바이저를 관리하기 위한 명령줄 인터페이스 툴입니다. virsh 명령줄 툴은 libvirt 관리 API를 기반으로 하며 qemu-kvm 명령 및 그래픽 virt-manager 애플리케이션의 대안으로 작동합니다. virsh 명령은 권한이 없는 사용자가 읽기 전용 모드로 사용하거나 루트 액세스 권한, 전체 관리 기능을 통해 사용할 수 있습니다. virsh 명령은 가상화 관리 스크립팅에 이상적입니다.

14.1. 일반 명령

이 섹션의 명령은 도메인에 국한되지 않기 때문에 일반적입니다.

14.1.1. help

$ virsh help [command|group] help 명령은 옵션과 함께 또는 사용하지 않고 사용할 수 있습니다. 옵션 없이 사용하면 한 줄에 하나씩 모든 명령이 나열됩니다. 옵션과 함께 사용하면 카테고리로 그룹화되어 각 그룹의 키워드를 표시합니다.
특정 옵션에만 해당하는 명령을 표시하려면 해당 그룹에 대한 키워드를 옵션으로 제공해야 합니다. 예를 들어 다음과 같습니다.
$ virsh help pool
 Storage Pool (help keyword 'pool'):
    find-storage-pool-sources-as   find potential storage pool sources
    find-storage-pool-sources      discover potential storage pool sources
    pool-autostart                 autostart a pool
    pool-build                     build a pool
    pool-create-as                 create a pool from a set of args
    pool-create                    create a pool from an XML file
    pool-define-as                 define a pool from a set of args
    pool-define                    define (but don't start) a pool from an XML file
    pool-delete                    delete a pool
    pool-destroy                   destroy (stop) a pool
    pool-dumpxml                   pool information in XML
    pool-edit                      edit XML configuration for a storage pool
    pool-info                      storage pool information
    pool-list                      list pools
    pool-name                      convert a pool UUID to pool name
    pool-refresh                   refresh a pool
    pool-start                     start a (previously defined) inactive pool
    pool-undefine                  undefine an inactive pool
    pool-uuid                      convert a pool name to pool UUID
동일한 명령을 명령 옵션과 함께 사용하면 해당 하나의 특정 명령에 대한 도움말 정보를 제공합니다. 예를 들어 다음과 같습니다.
$ virsh help vol-path
  NAME
    vol-path - returns the volume path for a given volume name or key

  SYNOPSIS
    vol-path <vol> [--pool <string>]

  OPTIONS
    [--vol] <string>  volume name or key
    --pool <string>  pool name or uuid

14.1.2. 종료 및 종료

quit 명령과 exit 명령은 터미널을 종료합니다. 예를 들어 다음과 같습니다.
$ virsh exit
$ virsh quit

14.1.3. version

version 명령은 현재 libvirt 버전을 표시하고 빌드의 위치에 대한 정보를 표시합니다. 예를 들어 다음과 같습니다.
$ virsh version
Compiled against library: libvirt 1.1.1
Using library: libvirt 1.1.1
Using API: QEMU 1.1.1
Running hypervisor: QEMU 1.5.3

14.1.4. 인수 표시

virsh echo [--shell][--xml][--xml] 명령을 에코 또는 지정된 인수를 표시합니다. echoed 인수는 공백으로 구분됩니다. --shell 옵션을 사용하면 출력이 필요한 경우 단일 인용되어 쉘 명령에서 재사용에 적합합니다. --xml 옵션을 사용하면 XML 파일에서 사용할 수 있는 출력이 적합합니다. 예를 들어 virsh echo --shell "hello world" 명령은 출력 'hello world' 을 보냅니다.

14.1.5. 연결

하이퍼바이저 세션에 연결합니다. 쉘이 처음 시작되면 -c 명령에서 URI 매개 변수를 요청하면 이 명령이 자동으로 실행됩니다. URI는 하이퍼바이저에 연결하는 방법을 지정합니다. 가장 일반적으로 사용되는 URI는 다음과 같습니다.
  • Xen :/// - 로컬 Xen 하이퍼바이저에 연결합니다.
  • QEMU:///system - QEMU 및 KVM 도메인을 감독하는 데몬에 root로 로컬로 연결합니다.
  • kvm:///session - 사용자로 로컬로 사용자 QEMU 및 KVM 도메인 집합에 연결합니다.
  • LXC:/// - 로컬 Linux 컨테이너에 연결됩니다.
추가 값은 libvirt의 웹 사이트 http://libvirt.org/uri.html 에서 사용할 수 있습니다.
명령은 다음과 같이 실행할 수 있습니다.
$ virsh connect {name|URI}
여기서 {name} 은 하이퍼바이저의 시스템 이름(호스트 이름) 또는 URL( virsh uri 명령의 출력)입니다. 읽기 전용 연결을 시작하려면 위 명령을 --readonly 로 추가합니다. URI에 대한 자세한 내용은 원격 URI 을 참조하십시오. URI를 잘 모를 경우 virsh uri 명령은 이를 표시합니다.
$ virsh uri
qemu:///session

14.1.6. 기본 정보 표시

다음 명령을 사용하여 기본 정보를 표시할 수 있습니다.
  • $ hostname - 하이퍼바이저의 호스트 이름을 표시
  • $ SysInfo - 하이퍼바이저 시스템 정보 의 XML 표현(사용 가능한 경우)을 표시

14.1.7. NMI 삽입

$ virsh inject-nmi [domain] 은 게스트 가상 시스템에 NMI (non-maskable interrupt) 메시지를 삽입합니다. 이는 복구할 수 없는 하드웨어 오류와 같이 응답 시간이 중요할 때 사용됩니다. 이 명령을 실행하려면 다음을 수행합니다.
$ virsh inject-nmi guest-1