4장. 가상화 명령줄 인터페이스 시작하기
Red Hat Enterprise Linux 7에서 가상화의 표준 작동 방법은 CLI(명령줄 사용자 인터페이스)를 사용하는 것입니다. CLI 명령을 입력하면 호스트 시스템에서 가상 머신을 생성하거나 상호 작용하는 시스템 유틸리티가 활성화됩니다. 이 방법은 virt-manager 와 같은 그래픽 애플리케이션을 사용하는 것보다 더 자세한 제어를 제공하고 스크립팅 및 자동화 기회를 제공합니다.
4.1. 가상화를 위한 기본 명령줄 유틸리티
다음 하위 섹션에는 Red Hat Enterprise Linux 7에서 가상화를 설정하고 관리하는 데 사용할 수 있는 주요 명령줄 유틸리티가 나열되어 있습니다. 이러한 명령 및 기타 여러 가상화 유틸리티가 Red Hat Enterprise Linux 리포지토리에서 제공하는 패키지에 포함되어 있으며 YUM 패키지 관리자를 사용하여 설치할 수 있습니다.
가상화 패키지 설치에 대한 자세한 내용은 가상화 배포 및 관리 가이드 를 참조하십시오.
4.1.1. virsh
virsh
는 하이퍼바이저 및 게스트 가상 머신을 관리하기 위한 CLI 유틸리티입니다. 이는 Red Hat Enterprise Linux 7에서 가상화를 제어하는 주요 수단입니다. 해당 기능은 다음과 같습니다.
- 가상 머신 생성, 구성, 일시 중지, 나열 및 종료
- 가상 네트워크 관리
- 가상 머신 디스크 이미지로드
virsh
유틸리티는 가상화 관리 스크립트를 만드는 데 이상적입니다. root 권한이 없는 사용자는 virsh
도 사용할 수 있지만 읽기 전용 모드에서도 사용할 수 있습니다.
virsh
사용
virsh
유틸리티는 표준 명령줄 입력에서 사용할 수 있지만 대화형 쉘로 사용할 수도 있습니다. 쉘 모드에서는 virsh
명령 접두사가 필요하지 않으며 사용자는 항상 root로 등록됩니다. 다음 예제에서는 virsh hostname 명령을 사용하여 하이퍼바이저의 호스트 이름을 먼저 표준 모드로 표시한 다음 대화형 모드로 표시합니다.
$ virsh hostname localhost.localdomain $ virsh Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit virsh # hostname localhost.localdomain
중요
virsh 를 루트가 아닌 사용자로 사용하는 경우 권한이 없는 libvirt 세션을 입력하면 게스트 또는 루트에서 만든 다른 가상화 요소를 보거나 상호 작용할 수 없습니다.
요소에 대한 읽기 전용 액세스 권한을 얻으려면
-c qemu:///system
옵션과 함께 virsh 를 사용합니다.
virsh
에 대한 도움말 가져오기
모든 Linux bash 명령과 마찬가지로 man virsh 명령 또는
--help
옵션을 사용하여 virsh로 도움말을 얻을 수 있습니다. 또한 virsh help 명령은 특정 virsh 명령의 도움말 텍스트를 보거나 키워드를 사용하여 특정 그룹에 속한 모든 virsh 명령을 나열하는 데 사용할 수 있습니다.
virsh 명령 그룹과 해당 키워드는 다음과 같습니다.
- 게스트 관리 - 키워드
도메인
- 게스트 모니터링 - 키워드
모니터
- 호스트 및 하이퍼바이저 모니터링 및 관리 키워드
호스트
- 호스트 시스템 네트워크 인터페이스 관리 - 키워드
인터페이스
- 가상 네트워크 관리 - 키워드
네트워크
- 네트워크 필터 관리 - 키워드
필터
- 노드 장치 관리 - 키워드
nodedev
- 암호 또는 암호화 키와 같은 보안 관리 - 키워드
시크릿
- 스냅샷 관리 - 키워드
스냅샷
- 스토리지 풀 관리 - 키워드
풀
- 스토리지 볼륨 관리 - 키워드
볼륨
- 일반 virsh 사용 - 키워드
virsh
다음 예제에서는 게스트 가상 머신의 이름을 변경하는 방법을 배울 필요가 있습니다. virsh help 를 사용하면 먼저 사용할 적절한 명령을 찾은 다음 구문을 알아봅니다. 마지막으로 이 명령을 사용하여 Fontaine 이라는 게스트의 이름을 Atlas 로 바꿉니다.
예 4.1. 키워드를 사용하여 모든 명령에 대한 도움말을 나열하는 방법
# virsh helpdomain
Domain Management (help keyword 'domain'): attach-device attach device from an XML file attach-disk attach disk device [...] domname convert a domain id or UUID to domain name domrename rename a domain [...] # virsh helpdomrename
NAME domrename - rename a domain SYNOPSIS domrename <domain> <new-name> DESCRIPTION Rename an inactive domain. OPTIONS [--domain] <string> domain name, id or uuid [--new-name] <string> new domain name # virsh domrename --domain Fontaine --new-name Atlas Domain successfully renamed
참고
virsh
를 사용하여 가상 머신을 관리하는 방법에 대한 자세한 내용은 Red Hat Enterprise Linux 7 Virtualization 배포 및 관리 가이드를 참조하십시오.
4.1.2. virt-install
virt-install 은 새 가상 머신을 생성하기 위한 CLI 유틸리티입니다. 직렬 콘솔, SPICE 또는 VNC 클라이언트-서버 쌍 그래픽을 사용하여 텍스트 기반 및 그래픽 설치를 모두 지원합니다. 설치 미디어는 로컬이거나 NFS, HTTP 또는 FTP 서버에 원격으로 존재할 수 있습니다. 툴을 자동으로 실행하고 kickstart 방법을 사용하여 게스트를 준비하여 설치를 쉽게 자동화할 수도 있습니다. 이 도구는 virt-install 패키지에 포함되어 있습니다.
중요
virt-install 을 root가 아닌 사용자로 사용하는 경우 권한이 없는 libvirt 세션을 입력합니다. 즉, 생성된 게스트가 사용자에게만 표시되고 root가 생성한 게스트가 보유한 특정 기능에 액세스할 수 없습니다.
참고
virt-install
사용에 대한 자세한 내용은 Red Hat Enterprise Linux 7 Virtualization 배포 및 관리 가이드를 참조하십시오.
4.1.3. virt-xml
virt-xml 은 도메인 XML 파일을 편집하기 위한 명령줄 유틸리티입니다. XML 구성을 성공적으로 수정하려면 게스트 이름, XML 동작 및 make 변경 사항을 명령을 사용하여 포함해야 합니다.
예를 들어 다음은 게스트 부팅 구성과 관련된 하위 옵션을 나열한 다음
example_domain
게스트에서 부팅 메뉴를 켭니다.
# virt-xml boot=? --boot options: arch cdrom [...] menu network nvram nvram_template os_type smbios_mode uefi useserial # virt-xml example_domain --edit --boot menu=on Domain 'example_domain' defined successfully.
명령의 각 호출은 하나의 도메인 XML 파일에 대해 하나의 작업을 수행할 수 있습니다.
참고
이 도구는 virt-install 패키지에 포함되어 있습니다. virt-xml 사용에 대한 자세한 내용은 virt-xml 도움말 페이지를 참조하십시오.
4.1.4. RuntimeClass
guestfish 는 가상 머신 디스크 이미지를 검사하고 수정하는 명령줄 유틸리티입니다. libguestfs 라이브러리를 사용하고
libguestfs
API에서 제공하는 모든 기능을 노출합니다.
guestfish
사용
guestfish
유틸리티는 표준 명령줄 입력 모드에서 사용할 수 있지만 대화형 쉘로 사용할 수도 있습니다. 쉘 모드에서는 guestfish
명령 접두사가 필요하지 않으며 사용자는 항상 root로 등록됩니다. 다음 예제에서는 guestfish
를 사용하여 testguest 가상 머신의 파일 시스템을 표준 모드에서 먼저 표시한 다음 대화형 모드에서 표시합니다.
# guestfish domain testguest : run : list-filesystems /dev/sda1: xfs /dev/rhel/root: xfs /dev/rhel/swap: swap # guestfish Welcome to guestfish, the guest filesystem shell for editing virtual machine filesystems and disk images. Type: 'help' for help on commands 'man' to read the manual 'quit' to quit the shell ><fs> domain testguest ><fs> run ><fs> list-filesystems /dev/sda1: xfs /dev/rhel/root: xfs /dev/rhel/swap: swap
또한
guestfish
는 자동화를 위해 bash 스크립트에서 사용할 수 있습니다.
중요
guestfish 를 루트가 아닌 사용자로 사용하는 경우 권한이 없는 libvirt 세션을 입력합니다. 즉, root가 생성한 게스트의 디스크 이미지를 보거나 상호 작용할 수 없습니다.
이러한 디스크 이미지에 대한 읽기 전용 액세스 권한을 얻으려면 guestfish 를
-ro -c qemu:///system
옵션과 함께 사용합니다. 또한 디스크 이미지 파일에 대한 읽기 권한이 있어야 합니다.
RuntimeClass에 대한 도움말 가져오기
모든 Linux bash 명령과 마찬가지로 man guestfish 명령 또는
--help
옵션을 사용하여 guestfish 에 대한 도움말을 얻을 수 있습니다. 또한 guestfish help 명령을 사용하여 특정 guestfish 명령에 대한 자세한 정보를 볼 수 있습니다. 다음 예제는 guestfish add 명령에 대한 정보를 표시합니다.
$ guestfish help add
NAME
add-drive - add an image to examine or modify
SYNOPSIS
add-drive filename [readonly:true|false] [format:..] [iface:..] [name:..] [label:..] [protocol:..] [server:..] [username:..] [secret:..] [cachemode:..] [discard:..] [copyonread:true|false]
DESCRIPTION
This function adds a disk image called filename to the handle. filename
may be a regular host file or a host device.
[...]
참고
guestfish
에 대한 자세한 내용은 Red Hat Enterprise Linux 7 Virtualization 배포 및 관리 가이드를 참조하십시오.