4.2. 데모: 명령줄 유틸리티로 게스트 생성 및 관리
CLI에서 가상화 작업을 수행하는 방법을 표시하기 위해 이 섹션에서는 새 게스트 가상 머신이 생성되는 위치, OS가 설치되는 위치, 이후 게스트가 CLI 명령을 사용하여 상호 작용 및 관리되는 데모를 제공합니다.
4.2.1. 설치
다음은
guest1-rhel7
이라는 새 게스트를 생성하고 Red Hat Enterprise Linux 7 Workstation ISO 이미지에서 OS 설치를 시작합니다. 이 이미지는 고객 포털에서 얻을 수 있으며 이 예에서는 현재 ~/Downloads/
폴더에 있습니다. 게스트는 두 개의 가상 CPU, 2048MB RAM 및 8GB의 디스크 공간으로 할당됩니다.
# virt-install --name guest1-rhel7 --memory 2048 --vcpus 2 --disk size=8 --cdrom /home/username/Downloads/rhel-workstation-7.4-x86_64-dvd.iso --os-variant rhel7
Starting install...
Allocating 'guest1-rhel7.qcow2' | 8.0 GB 00:00:00
그러면 virt-viewer 애플리케이션에서 그래픽 Anaconda 설치 프로그램이 시작됩니다. 설치에 대한 자세한 내용은 설치 가이드 를 참조하십시오.
참고
그래픽 인터페이스에 액세스하지 않은 호스트 시스템에서는 다음과 유사한 virt -install 명령을 사용하여 텍스트 기반 Anaconda 를 사용하여 게스트 OS를 설치할 수 있습니다.
# virt-install -name rhel7anaconda-guest -r 1024 --location=/home/jherrman/Downloads/rhel-workstation-7.4-x86_64-dvd.iso --disk size=8 --nographics --extra-args="console=tty0 console=ttyS0,115200n8"
설치가 성공적으로 완료되면 명령행에 다음이 표시됩니다.
Domain creation completed. Restarting guest.
이제 게스트에 바람직한 설정을 할 수 있습니다. 그러나 게스트 설정을 안전하게 관리하려면 먼저 게스트를 종료하는 것이 좋습니다.
# virsh shutdown guest1-rhel7
Domain guest1-rhel7 is being shutdown
4.2.2. 장치 연결
게스트가 호스트에 연결된 USB 장치를 감지하고 사용하도록 하려면 이 예제의mgr 휴대 전화에서 호스트의 lsusb 명령을 사용하여 장치의 ID를 검색하십시오.
# lsusb
[...]
Bus 003 Device 007: ID 04e8:6860 Samsung Electronics Co., Ltd Galaxy (MTP)
이후 호스트에서 선택한 텍스트 편집기를 사용하여 장치에 대한 XML 파일
samsung_USB_device.xml
을 만듭니다. 여기서 벤더와 제품 ID를 입력합니다.
# vim samsung_USB_device.xml
<hostdev mode='subsystem' type='usb' managed='yes'> <source> <vendor id='0x04e8'/> <product id='0x6860'/> </source> </hostdev>
마지막으로 virsh attach-device 명령을 사용하여 장치를 게스트에 연결합니다.
# virsh attach-device guest1-rhel7 --file samsung_USB_device.xml --config
Device attached successfully
참고
실행 중인 게스트에 장치를 연결할 수도 있습니다. 이 작업을 수행하려면
--live
옵션을 사용합니다.
4.2.3. 게스트와 상호 작용
guest1-rhel7 게스트 사용을 시작하려면 먼저 시작합니다.
# virsh start guest1-rhel7
Domain guest1-rhel7 started
호스트 시스템에 그래픽 디스플레이가 있는지 여부에 따라 virt-viewer 애플리케이션을 사용하여 게스트와 상호 작용하거나 SSH 쉘을 사용할 수 있습니다.
- 그래픽 디스플레이가 있는 시스템에서 virt-viewer 를 사용합니다.
# virt-viewer guest1-rhel7
나중에 물리적 시스템의 OS GUI와 같은 virt-viewer 창의 화면 출력과 상호 작용할 수 있습니다. 예를 들어 Subscription Manager 애플리케이션을 사용하여 Red Hat Enterprise Linux 게스트 OS를 등록할 수 있습니다. - 호스트 또는 게스트에 텍스트 전용 인터페이스가 있는 경우 SSH를 사용합니다. 이를 위해서는 게스트의 IP 주소를 알아야 합니다. IP 주소를 모르는 경우 virsh domifaddr 명령을 사용하여 가져올 수 있습니다.
# virsh domifaddr guest1-rhel7 Name MAC address Protocol Address ------------------------------------------------------------------------------- vnet0 52:54:00:65:29:21 ipv4 10.34.3.125/24 # ssh root@10.34.3.125 root@10.34.3.125's password: Last login: Wed Jul 19 18:27:10 2017 from 192.168.122.1 [root@localhost ~]#
참고virsh domifaddr 이 작동하려면 게스트를 실행 중이어야 하며 네트워크에서 연결할 수 있어야 하며 QEMU 게스트 에이전트 를 활성화해야 할 수 있습니다.그런 다음 게스트 시스템에서 터미널을 사용하는 것처럼 호스트 터미널과 상호 작용할 수 있습니다. 예를 들어 subscription-manager 유틸리티를 사용하여 Red Hat Enterprise Linux 게스트 OS를 등록할 수 있습니다.[root@localhost ~]# subscription-manager register Registering to: subscription.rhsm.redhat.com:443/subscription Username: username@sample.com Password: The system has been registered with ID: 30b5e666-67f9-53bb-4b90-c2a88e5be789
4.2.4. 진단
게스트 상태에 대한 일반 정보를 표시합니다.
# virsh dominfo guest1-rhel7
Id: 1
Name: guest1-rhel7
UUID: ec0c0122-fb63-4a54-b602-5cf84f5e2dfd
OS Type: hvm
State: running
CPU(s): 2
CPU time: 33.4s
Max memory: 2097152 KiB
Used memory: 2097152 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: selinux
Security DOI: 0
Security label: unconfined_u:unconfined_r:svirt_t:s0:c102,c792 (enforcing)
4.2.5. 스냅샷 생성
게스트 상태를 백업하려면 virsh snapshot-create 명령을 사용하면 됩니다.
# virsh snapshot-create guest1-rhel7
Domain snapshot 1500563241 created
현재 스냅샷과 각 스냅샷의 XML 설정을 표시할 수 있습니다.
# virsh snapshot-list guest1-rhel7 Name Creation Time State ------------------------------------------------------------ 1500563241 2017-07-20 17:07:21 +0200 shutoff # virsh snapshot-dumpxml guest1-rhel7 1500563241 <domainsnapshot> <name>1500563241</name> <state>shutoff</state> <creationTime>1500563241</creationTime> <memory snapshot='no'/> <disks> <disk name='vda' snapshot='internal'/> [...]
이 스냅샷은 나중에 스냅샷에 저장된 상태로 게스트를 되돌리려면 로드될 수 있습니다.
# virsh snapshot-revert guest1-rhel7 --snapshotname 150056324