๊ฐ์ํ (KVM)
๊ฐ์ํ (KVM)¶
ํ์ต ๋ชฉํ¶
์ด ๋ฌธ์๋ฅผ ํตํด ๋ค์์ ํ์ตํฉ๋๋ค:
- KVM/QEMU ๊ฐ์ํ ๊ฐ๋ ๊ณผ ์ํคํ ์ฒ
- libvirt์ virsh๋ฅผ ์ด์ฉํ VM ๊ด๋ฆฌ
- ๊ฐ์ ๋คํธ์ํฌ ์ค์
- ์ค๋ ์ท๊ณผ ๋ง์ด๊ทธ๋ ์ด์
๋์ด๋: โญโญโญโญ (๊ณ ๊ธ)
๋ชฉ์ฐจ¶
- KVM/QEMU ๊ฐ์
- ์ค์น ๋ฐ ์ค์
- VM ์์ฑ
- virsh ๋ช ๋ น์ด
- ๋คํธ์ํฌ ์ค์
- ์คํ ๋ฆฌ์ง ๊ด๋ฆฌ
- ์ค๋ ์ท๊ณผ ๋ง์ด๊ทธ๋ ์ด์
1. KVM/QEMU ๊ฐ์¶
๊ฐ์ํ ์ ํ¶
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Type 1 (Bare-metal) Type 2 (Hosted) โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โ
โ โ VM โ VM โ VM โ โ VM โ VM โ VM โ โ
โ โโโโโโโโโโโโโโโโโโโค โโโโโโโโโโโโโโโโโโโค โ
โ โ Hypervisor โ โ Hypervisor โ โ
โ โโโโโโโโโโโโโโโโโโโค โโโโโโโโโโโโโโโโโโโค โ
โ โ Hardware โ โ Host OS โ โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโค โ
โ ESXi, Xen, Hyper-V โ Hardware โ โ
โ โโโโโโโโโโโโโโโโโโโ โ
โ VirtualBox, VMware Workstationโ
โ โ
โ KVM์ Linux ์ปค๋์ด Hypervisor ์ญํ (Type 1์ ๊ฐ๊น์) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
KVM/QEMU ์ํคํ ์ฒ¶
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๊ฐ์ ๋จธ์ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Guest OS (Linux, Windows, etc.) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ QEMU: ์ฅ์น ์๋ฎฌ๋ ์ด์
(I/O, ๋คํธ์ํฌ, ๋์คํฌ) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ KVM ์ปค๋ ๋ชจ๋: CPU/๋ฉ๋ชจ๋ฆฌ ๊ฐ์ํ (ํ๋์จ์ด ์ง์) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Linux ์ปค๋ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ํ๋์จ์ด (VT-x/AMD-V, VT-d) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
libvirt ๊ด๋ฆฌ ์คํ¶
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๊ด๋ฆฌ ๋๊ตฌ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โ โ virsh โ โvirt-managerโ โCockpit โ โ API โ โ
โ โโโโโโฌโโโโโโ โโโโโโฌโโโโโโ โโโโโโฌโโโโโโ โโโโโโฌโโโโโโ โ
โ โ โ โ โ โ
โ โโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโดโโโโโโโ โ
โ โ libvirt โ โ
โ โ (libvirtd) โ โ
โ โโโโโโโโฌโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ โ โ โ
โ โ โโโโโโโ โ โโโโโโโโ โโโโโโโโ โโโโโโโ โ โ
โ โ โ KVM โ โ โ QEMUโโ โ LXC โโ โ Xen โ โ โ
โ โ โโโโโโโ โ โโโโโโโโ โโโโโโโโ โโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2. ์ค์น ๋ฐ ์ค์ ¶
ํ๋์จ์ด ๊ฐ์ํ ์ง์ ํ์ธ¶
# CPU ๊ฐ์ํ ์ง์ ํ์ธ
grep -E '(vmx|svm)' /proc/cpuinfo
# vmx: Intel VT-x
# svm: AMD-V
# ๋๋
lscpu | grep Virtualization
# KVM ๋ชจ๋ ํ์ธ
lsmod | grep kvm
ํจํค์ง ์ค์น¶
# Ubuntu/Debian
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients \
bridge-utils virt-manager virtinst
# RHEL/CentOS
sudo yum install qemu-kvm libvirt libvirt-python \
libguestfs-tools virt-install virt-manager
# Fedora
sudo dnf install @virtualization
์๋น์ค ์์¶
# libvirtd ์์
sudo systemctl enable --now libvirtd
# ์ํ ํ์ธ
sudo systemctl status libvirtd
# ์ฌ์ฉ์๋ฅผ libvirt ๊ทธ๋ฃน์ ์ถ๊ฐ (์ฌ๋ก๊ทธ์ธ ํ์)
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
์ฐ๊ฒฐ ํ์ธ¶
# ๋ก์ปฌ ์ฐ๊ฒฐ ํ
์คํธ
virsh -c qemu:///system list --all
# ๋๋ sudo ์์ด
virsh list --all
# ์์คํ
์ ๋ณด
virsh nodeinfo
3. VM ์์ฑ¶
virt-install์ ์ด์ฉํ VM ์์ฑ¶
# ๊ธฐ๋ณธ VM ์์ฑ
virt-install \
--name ubuntu-vm \
--ram 2048 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/ubuntu-vm.qcow2,size=20 \
--os-variant ubuntu22.04 \
--network bridge=virbr0 \
--graphics vnc,listen=0.0.0.0 \
--cdrom /path/to/ubuntu-22.04.iso \
--boot cdrom,hd
์์ธ ์ต์ ¶
virt-install \
--name centos-vm \
--memory 4096 \
--vcpus 4,maxvcpus=8 \
--cpu host-passthrough \
--disk path=/var/lib/libvirt/images/centos-vm.qcow2,size=40,format=qcow2,bus=virtio \
--disk path=/var/lib/libvirt/images/centos-data.qcow2,size=100,format=qcow2 \
--os-variant centos-stream9 \
--network network=default,model=virtio \
--graphics spice,listen=0.0.0.0 \
--video qxl \
--channel spicevmc \
--location /path/to/CentOS-Stream-9.iso \
--extra-args "console=ttyS0,115200n8 serial" \
--initrd-inject /path/to/kickstart.cfg \
--extra-args "ks=file:/kickstart.cfg" \
--noautoconsole
OS ๋ณํ ๋ชฉ๋ก ํ์ธ¶
# ์ง์ํ๋ OS ๋ชฉ๋ก
osinfo-query os
# ํน์ OS ๊ฒ์
osinfo-query os | grep -i ubuntu
osinfo-query os | grep -i centos
XML ์ ์๋ก VM ์์ฑ¶
# VM ์ ์ XML ์์ (/tmp/vm-definition.xml)
virsh define /tmp/vm-definition.xml
# ๊ธฐ์กด VM์ XML ๋คํ
virsh dumpxml ubuntu-vm > ubuntu-vm.xml
<!-- vm-definition.xml ์์ -->
<domain type='kvm'>
<name>test-vm</name>
<memory unit='GiB'>2</memory>
<vcpu placement='static'>2</vcpu>
<os>
<type arch='x86_64' machine='pc-q35-6.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
</features>
<cpu mode='host-passthrough'/>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/test-vm.qcow2'/>
<target dev='vda' bus='virtio'/>
</disk>
<interface type='network'>
<source network='default'/>
<model type='virtio'/>
</interface>
<graphics type='vnc' port='-1' autoport='yes'/>
<console type='pty'/>
</devices>
</domain>
4. virsh ๋ช ๋ น์ด¶
VM ์ํ ๊ด๋ฆฌ¶
# VM ๋ชฉ๋ก
virsh list # ์คํ ์ค์ธ VM
virsh list --all # ๋ชจ๋ VM
virsh list --inactive # ์ค์ง๋ VM
# VM ์์/์ค์ง
virsh start vm-name
virsh shutdown vm-name # ์ ์ ์ข
๋ฃ
virsh destroy vm-name # ๊ฐ์ ์ข
๋ฃ (์ ์ ์ฐจ๋จ)
virsh reboot vm-name
# VM ์ผ์ ์ ์ง/์ฌ๊ฐ
virsh suspend vm-name
virsh resume vm-name
# ์๋ ์์ ์ค์
virsh autostart vm-name
virsh autostart --disable vm-name
VM ์ ๋ณด ์กฐํ¶
# ๊ธฐ๋ณธ ์ ๋ณด
virsh dominfo vm-name
# ์์ธ ์ค์ (XML)
virsh dumpxml vm-name
# CPU ์ ๋ณด
virsh vcpuinfo vm-name
# ๋ฉ๋ชจ๋ฆฌ ์ ๋ณด
virsh dommemstat vm-name
# ๋ธ๋ก ์ฅ์น ์ ๋ณด
virsh domblklist vm-name
virsh domblkinfo vm-name vda
# ๋คํธ์ํฌ ์ธํฐํ์ด์ค
virsh domiflist vm-name
virsh domifstat vm-name vnet0
VM ์ฝ์ ์ ์¶
# ์๋ฆฌ์ผ ์ฝ์ (๊ฒ์คํธ ์ค์ ํ์)
virsh console vm-name
# VNC/SPICE ํฌํธ ํ์ธ
virsh domdisplay vm-name
virsh vncdisplay vm-name
# virt-viewer๋ก ์ ์
virt-viewer vm-name
VM ๋ฆฌ์์ค ๋ณ๊ฒฝ¶
# CPU ์ ๋ณ๊ฒฝ (์จ๋ผ์ธ)
virsh setvcpus vm-name 4 --live
# ๋ฉ๋ชจ๋ฆฌ ๋ณ๊ฒฝ (์จ๋ผ์ธ, ์ฌ์ ์ค์ ํ์)
virsh setmem vm-name 4G --live
# ์ต๋๊ฐ ์ค์ (์คํ๋ผ์ธ)
virsh setmaxmem vm-name 8G --config
virsh setvcpus vm-name 8 --maximum --config
# XML ์ง์ ํธ์ง
virsh edit vm-name
VM ์ญ์ ¶
# VM ์ ์ ์ญ์ (๋์คํฌ ์ ์ง)
virsh undefine vm-name
# VM๊ณผ ๊ด๋ จ ์คํ ๋ฆฌ์ง ์ญ์
virsh undefine vm-name --remove-all-storage
# NVRAM ํฌํจ ์ญ์ (UEFI)
virsh undefine vm-name --nvram
5. ๋คํธ์ํฌ ์ค์ ¶
๊ธฐ๋ณธ NAT ๋คํธ์ํฌ¶
# ๊ธฐ๋ณธ ๋คํธ์ํฌ ํ์ธ
virsh net-list --all
# ๊ธฐ๋ณธ ๋คํธ์ํฌ ์์
virsh net-start default
virsh net-autostart default
# ๋คํธ์ํฌ ์ ๋ณด
virsh net-info default
virsh net-dumpxml default
๋ธ๋ฆฟ์ง ๋คํธ์ํฌ ์ค์ ¶
# Ubuntu: netplan ์ค์
# /etc/netplan/01-bridge.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
bridges:
br0:
interfaces:
- enp3s0
dhcp4: yes
parameters:
stp: false
forward-delay: 0
# ์ ์ฉ
sudo netplan apply
# RHEL/CentOS: NetworkManager
sudo nmcli connection add type bridge con-name br0 ifname br0
sudo nmcli connection add type ethernet con-name br0-slave-enp3s0 ifname enp3s0 master br0
sudo nmcli connection modify br0 ipv4.method auto
sudo nmcli connection up br0
libvirt ๋ธ๋ฆฟ์ง ๋คํธ์ํฌ ์ ์¶
<!-- /tmp/bridge-network.xml -->
<network>
<name>host-bridge</name>
<forward mode='bridge'/>
<bridge name='br0'/>
</network>
# ๋คํธ์ํฌ ์์ฑ
virsh net-define /tmp/bridge-network.xml
virsh net-start host-bridge
virsh net-autostart host-bridge
๊ฒฉ๋ฆฌ๋ ๋คํธ์ํฌ¶
<!-- /tmp/isolated-network.xml -->
<network>
<name>isolated</name>
<bridge name='virbr1'/>
<ip address='192.168.100.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.100.10' end='192.168.100.254'/>
</dhcp>
</ip>
</network>
VM์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค ์ถ๊ฐ¶
# ์ธํฐํ์ด์ค ์ถ๊ฐ (์จ๋ผ์ธ)
virsh attach-interface vm-name network default --model virtio --live --config
# ์ธํฐํ์ด์ค ์ ๊ฑฐ
virsh detach-interface vm-name network --mac 52:54:00:xx:xx:xx --live --config
# ์ธํฐํ์ด์ค ๋ชฉ๋ก
virsh domiflist vm-name
6. ์คํ ๋ฆฌ์ง ๊ด๋ฆฌ¶
์คํ ๋ฆฌ์ง ํ¶
# ๊ธฐ๋ณธ ํ (๋๋ ํ ๋ฆฌ ๊ธฐ๋ฐ)
virsh pool-list --all
# ํ ์์ฑ (๋๋ ํ ๋ฆฌ)
virsh pool-define-as mypool dir --target /var/lib/libvirt/images/mypool
virsh pool-build mypool
virsh pool-start mypool
virsh pool-autostart mypool
# LVM ํ
virsh pool-define-as lvm-pool logical --source-name vg_vms --target /dev/vg_vms
# ํ ์ ๋ณด
virsh pool-info default
๋ณผ๋ฅจ ๊ด๋ฆฌ¶
# ๋ณผ๋ฅจ ๋ชฉ๋ก
virsh vol-list default
# ๋ณผ๋ฅจ ์์ฑ
virsh vol-create-as default disk1.qcow2 20G --format qcow2
# ๋ณผ๋ฅจ ์ ๋ณด
virsh vol-info disk1.qcow2 --pool default
virsh vol-dumpxml disk1.qcow2 --pool default
# ๋ณผ๋ฅจ ์ญ์
virsh vol-delete disk1.qcow2 --pool default
# ๋ณผ๋ฅจ ๋ณต์
virsh vol-clone disk1.qcow2 disk1-clone.qcow2 --pool default
# ๋ณผ๋ฅจ ๋ฆฌ์ฌ์ด์ฆ
virsh vol-resize disk1.qcow2 30G --pool default
๋์คํฌ ์ด๋ฏธ์ง ๊ด๋ฆฌ (qemu-img)¶
# ์ด๋ฏธ์ง ์์ฑ
qemu-img create -f qcow2 disk.qcow2 20G
# ์ด๋ฏธ์ง ์ ๋ณด
qemu-img info disk.qcow2
# ์ด๋ฏธ์ง ๋ณํ
qemu-img convert -f raw -O qcow2 disk.raw disk.qcow2
qemu-img convert -f vmdk -O qcow2 disk.vmdk disk.qcow2
# ์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ฆ
qemu-img resize disk.qcow2 +10G
# ์คํ์ค ์ด๋ฏธ์ง ์์ถ
qemu-img convert -O qcow2 -c disk.qcow2 disk-compressed.qcow2
VM์ ๋์คํฌ ์ถ๊ฐ¶
# ๋์คํฌ ์ถ๊ฐ (์จ๋ผ์ธ)
virsh attach-disk vm-name /var/lib/libvirt/images/extra.qcow2 vdb \
--driver qemu --subdriver qcow2 --live --config
# ๋์คํฌ ์ ๊ฑฐ
virsh detach-disk vm-name vdb --live --config
# ๋ธ๋ก ์ฅ์น ๋ชฉ๋ก
virsh domblklist vm-name
7. ์ค๋ ์ท๊ณผ ๋ง์ด๊ทธ๋ ์ด์ ¶
์ค๋ ์ท ๊ด๋ฆฌ¶
# ์ค๋
์ท ์์ฑ
virsh snapshot-create-as vm-name snap1 "First snapshot" --atomic
# ๋์คํฌ๋ง ์ค๋
์ท (๋ฉ๋ชจ๋ฆฌ ์ ์ธ)
virsh snapshot-create-as vm-name snap-disk --disk-only --atomic
# ์ค๋
์ท ๋ชฉ๋ก
virsh snapshot-list vm-name
# ์ค๋
์ท ์ ๋ณด
virsh snapshot-info vm-name snap1
# ์ค๋
์ท์ผ๋ก ๋ณต์
virsh snapshot-revert vm-name snap1
# ์ค๋
์ท ์ญ์
virsh snapshot-delete vm-name snap1
# ํ์ฌ ์ค๋
์ท ํ์ธ
virsh snapshot-current vm-name
์ธ๋ถ ์ค๋ ์ท¶
# ์ธ๋ถ ์ค๋
์ท ์์ฑ (์ด์ ํ๊ฒฝ ๊ถ์ฅ)
virsh snapshot-create-as vm-name snap-external \
--diskspec vda,snapshot=external \
--disk-only --atomic
# ์ธ๋ถ ์ค๋
์ท ์ปค๋ฐ (๋ณํฉ)
virsh blockcommit vm-name vda --active --pivot
# ๋ธ๋ก ์์
์ ๋ณด
virsh blockjob vm-name vda --info
๋ผ์ด๋ธ ๋ง์ด๊ทธ๋ ์ด์ ¶
# ๋์ ํธ์คํธ ์ค๋น
# - ๋์ผํ libvirt ๋ฒ์
# - ๊ณต์ ์คํ ๋ฆฌ์ง (NFS, GlusterFS, Ceph ๋ฑ)
# - ๋คํธ์ํฌ ์ฐ๊ฒฐ
# ๋ง์ด๊ทธ๋ ์ด์
์คํ
virsh migrate --live vm-name qemu+ssh://target-host/system
# ์ต์
๊ณผ ํจ๊ป
virsh migrate --live --persistent --undefinesource \
--copy-storage-all \
vm-name qemu+ssh://target-host/system
# ํฐ๋ ๋ง์ด๊ทธ๋ ์ด์
(NAT ํ๊ฒฝ)
virsh migrate --live --p2p --tunnelled \
vm-name qemu+ssh://target-host/system
# ๋ง์ด๊ทธ๋ ์ด์
์ํ ํ์ธ
virsh domjobinfo vm-name
์คํ๋ผ์ธ ๋ง์ด๊ทธ๋ ์ด์ ¶
# ์๋ณธ์์ XML ๋คํ
virsh dumpxml vm-name > vm.xml
# ๋์คํฌ ์ด๋ฏธ์ง ๋ณต์ฌ
rsync -av /var/lib/libvirt/images/vm-disk.qcow2 target-host:/var/lib/libvirt/images/
# ๋์์์ ์ ์
virsh define vm.xml
# ์๋ณธ์์ ์ญ์
virsh undefine vm-name
์ฐ์ต ๋ฌธ์ ¶
๋ฌธ์ 1: VM ์์ฑ¶
virt-install์ ์ฌ์ฉํ์ฌ ๋ค์ ์ฌ์์ VM์ ์์ฑํ์ธ์: - ์ด๋ฆ: test-server - ๋ฉ๋ชจ๋ฆฌ: 2GB - CPU: 2๊ฐ - ๋์คํฌ: 20GB (qcow2) - ๋คํธ์ํฌ: default (NAT) - ๊ทธ๋ํฝ: VNC
๋ฌธ์ 2: ๋คํธ์ํฌ ์ค์ ¶
๊ฒฉ๋ฆฌ๋ ๋ด๋ถ ๋คํธ์ํฌ๋ฅผ ์์ฑํ์ธ์: - ์ด๋ฆ: internal - ๋์ญ: 10.10.10.0/24 - DHCP: 10.10.10.100-200 - NAT ์์
๋ฌธ์ 3: ์ค๋ ์ท ๊ด๋ฆฌ¶
- VM์ ์ค๋ ์ท์ ์์ฑํ์ธ์
- VM์ ๋ณ๊ฒฝ์ ๊ฐํ์ธ์ (ํ์ผ ์์ฑ ๋ฑ)
- ์ค๋ ์ท์ผ๋ก ๋ณต์ํ์ธ์
- ๋ณ๊ฒฝ์ด ์ทจ์๋์๋์ง ํ์ธํ์ธ์
์ ๋ต¶
๋ฌธ์ 1 ์ ๋ต¶
virt-install \
--name test-server \
--memory 2048 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/test-server.qcow2,size=20,format=qcow2 \
--os-variant generic \
--network network=default \
--graphics vnc,listen=0.0.0.0 \
--cdrom /path/to/installer.iso \
--boot cdrom,hd
๋ฌธ์ 2 ์ ๋ต¶
<!-- /tmp/internal-net.xml -->
<network>
<name>internal</name>
<bridge name='virbr-int'/>
<ip address='10.10.10.1' netmask='255.255.255.0'>
<dhcp>
<range start='10.10.10.100' end='10.10.10.200'/>
</dhcp>
</ip>
</network>
virsh net-define /tmp/internal-net.xml
virsh net-start internal
virsh net-autostart internal
๋ฌธ์ 3 ์ ๋ต¶
# 1. ์ค๋
์ท ์์ฑ
virsh snapshot-create-as vm-name before-change "Before changes"
# 2. VM ๋ด์์ ๋ณ๊ฒฝ
virsh console vm-name
# (๊ฒ์คํธ ๋ด์์) touch /tmp/test-file
# 3. ์ค๋
์ท์ผ๋ก ๋ณต์
virsh snapshot-revert vm-name before-change
# 4. ํ์ธ (ํ์ผ์ด ์์ด์ผ ํจ)
virsh console vm-name
# (๊ฒ์คํธ ๋ด์์) ls /tmp/test-file # ํ์ผ ์์
๋ค์ ๋จ๊ณ¶
- 22_Ansible_๊ธฐ์ด.md - ์ธํ๋ผ ์๋ํ
์ฐธ๊ณ ์๋ฃ¶
- libvirt Documentation
- KVM Documentation
- Red Hat Virtualization Guide
man virsh,man virt-install,man qemu-img