본문으둜 κ±΄λ„ˆλ›°κΈ°

πŸ“Έ libvirt virsh μŠ€λƒ…μƒ· λͺ…λ Ήμ–΄ κ°€μ΄λ“œ

πŸ“Έ libvirt virsh μŠ€λƒ…μƒ· λͺ…λ Ήμ–΄ κ°€μ΄λ“œ

λͺ©μ°¨β€‹


libvirt의 virshλ₯Ό μ΄μš©ν•œ μŠ€λƒ…μƒ· κ΄€λ ¨ λͺ¨λ“  μ£Όμš” λͺ…λ Ήμ–΄λ₯Ό μΉ΄ν…Œκ³ λ¦¬λ³„λ‘œ μ •λ¦¬ν•©λ‹ˆλ‹€.


1. πŸ†• μŠ€λƒ…μƒ· 생성 (Create)​

κΈ°λ³Έ 생성 (μžλ™ λͺ…λͺ…)​

virsh snapshot-create [VM_이름]

μ‹œμŠ€ν…œμ΄ μžλ™μœΌλ‘œ 생성 μ‹œκ°„μ„ μ΄λ¦„μœΌλ‘œ μ •ν•˜μ—¬ μŠ€λƒ…μƒ·μ„ λ§Œλ“­λ‹ˆλ‹€.

이름 μ§€μ • 생성 (ꢌμž₯) ⭐​

virsh snapshot-create-as [VM_이름] --name [이름] --description "[μ„€λͺ…]"

μ‚¬μš©μžκ°€ μ›ν•˜λŠ” 이름과 μ„€λͺ…을 λΆ™μ—¬ 가독성을 λ†’μž…λ‹ˆλ‹€.

λ””μŠ€ν¬ μ „μš© μŠ€λƒ…μƒ· (Disk Only)​

virsh snapshot-create-as [VM_이름] [이름] --disk-only

λ©”λͺ¨λ¦¬ 덀프 없이 λ””μŠ€ν¬ λ³€κ²½ μ‚¬ν•­λ§Œ κΈ°λ‘ν•˜μ—¬ 생성 속도가 λΉ λ¦…λ‹ˆλ‹€.

라이브 μŠ€λƒ…μƒ·β€‹

virsh snapshot-create-as [VM_이름] [이름] --live

μ‹€ν–‰ 쀑인 VM의 쀑단 μ‹œκ°„μ„ μ΅œμ†Œν™”ν•˜λ©° μƒνƒœλ₯Ό μ €μž₯ν•©λ‹ˆλ‹€.


2. πŸ“‹ μŠ€λƒ…μƒ· 쑰회 및 정보 (List & Info)​

전체 λͺ©λ‘ 확인​

virsh snapshot-list [VM_이름]

트리 ꡬ쑰 확인 (계측 ꡬ쑰) πŸŒ²β€‹

virsh snapshot-list [VM_이름] --tree

μ–΄λ–€ μŠ€λƒ…μƒ·μ—μ„œ νŒŒμƒλ˜μ—ˆλŠ”μ§€ λΆ€λͺ¨-μžμ‹ 관계λ₯Ό μ‹œκ°μ μœΌλ‘œ λ³΄μ—¬μ€λ‹ˆλ‹€.

상세 정보 좜λ ₯​

virsh snapshot-info [VM_이름] --snapshotname [이름]

ν˜„μž¬ ν™œμ„±ν™”λœ μŠ€λƒ…μƒ· 확인​

virsh snapshot-current [VM_이름]

3. πŸ”„ μŠ€λƒ…μƒ· 볡ꡬ 및 μ „ν™˜ (Revert)​

νŠΉμ • μ‹œμ μœΌλ‘œ 볡ꡬ​

virsh snapshot-revert [VM_이름] --snapshotname [이름]

VM의 μƒνƒœλ₯Ό μ§€μ •ν•œ μŠ€λƒ…μƒ· μ‹œμ μœΌλ‘œ μ¦‰μ‹œ λ˜λŒλ¦½λ‹ˆλ‹€.

μ‹€ν–‰ μƒνƒœλ‘œ 볡ꡬ​

virsh snapshot-revert [VM_이름] [이름] --running

볡ꡬ ν›„ VM을 μžλ™μœΌλ‘œ μ‹œμž‘ μƒνƒœλ‘œ λ§Œλ“­λ‹ˆλ‹€.

μΌμ‹œμ •μ§€ μƒνƒœλ‘œ 볡ꡬ​

virsh snapshot-revert [VM_이름] [이름] --paused

4. πŸ—‘οΈ μŠ€λƒ…μƒ· μ‚­μ œ (Delete)​

νŠΉμ • μŠ€λƒ…μƒ·λ§Œ μ‚­μ œβ€‹

virsh snapshot-delete [VM_이름] --snapshotname [이름]

μžμ‹ μŠ€λƒ…μƒ·κΉŒμ§€ 일괄 μ‚­μ œ βš οΈβ€‹

virsh snapshot-delete [VM_이름] [이름] --children

μ§€μ •ν•œ μŠ€λƒ…μƒ·κ³Ό κ·Έ 이후에 νŒŒμƒλœ λͺ¨λ“  μŠ€λƒ…μƒ·μ„ ν•¨κ»˜ μ§€μ›λ‹ˆλ‹€.

λ©”νƒ€λ°μ΄ν„°λ§Œ μ‚­μ œβ€‹

virsh snapshot-delete [VM_이름] [이름] --metadata

μ‹€μ œ λ””μŠ€ν¬ μ΄λ―Έμ§€λŠ” μœ μ§€ν•˜κ³  libvirt λ‚΄λΆ€ 기둝만 μ œκ±°ν•©λ‹ˆλ‹€.


5. πŸ› οΈ 기타 관리​

μŠ€λƒ…μƒ· XML 덀프​

virsh snapshot-dumpxml [VM_이름] [이름]

νŠΉμ • μŠ€λƒ…μƒ·μ˜ μ„€μ • λ‚΄μš©μ„ XML 파일둜 μΆ”μΆœν•©λ‹ˆλ‹€.

μŠ€λƒ…μƒ· μ •μ˜ (κ°€μ Έμ˜€κΈ°)​

virsh snapshot-create [VM_이름] [XML_파일]

기쑴에 λ°±μ—…ν•΄λ‘” XML 섀정을 톡해 μŠ€λƒ…μƒ· 정보λ₯Ό λ³΅κ΅¬ν•©λ‹ˆλ‹€.


πŸ“Š μŠ€λƒ…μƒ· 생λͺ…μ£ΌκΈ° λ‹€μ΄μ–΄κ·Έλž¨β€‹


🌲 μŠ€λƒ…μƒ· 트리 ꡬ쑰 μ˜ˆμ‹œβ€‹

[!TIP] virsh snapshot-list [VM_이름] --tree λͺ…λ ΉμœΌλ‘œ μ‹€μ œ 트리 ꡬ쑰λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.


πŸ“ μ‹€μ „ μ˜ˆμ œβ€‹

# 1. VM λͺ©λ‘ 확인
virsh list --all

# 2. μŠ€λƒ…μƒ· 생성
virsh snapshot-create-as myvm --name "before-update" --description "μ—…λ°μ΄νŠΈ μ „ λ°±μ—…"

# 3. μŠ€λƒ…μƒ· λͺ©λ‘ 확인
virsh snapshot-list myvm --tree

# 4. 문제 λ°œμƒ μ‹œ 볡ꡬ
virsh snapshot-revert myvm --snapshotname "before-update" --running

# 5. 더 이상 ν•„μš”μ—†λŠ” μŠ€λƒ…μƒ· μ‚­μ œ
virsh snapshot-delete myvm --snapshotname "before-update"

κ΄€λ ¨ λ¬Έμ„œβ€‹

κ·Έλž˜ν”„ λ·°

…
κ·Έλž˜ν”„ 데이터 λ‘œλ”© 쀑…
ν˜„μž¬: πŸ“Έ libvirt virsh μŠ€λƒ…μƒ· λͺ…λ Ήμ–΄ κ°€μ΄λ“œ
λ…Έλ“œ 클릭 β†’ 이동 Β· λ“œλž˜κ·Έ β†’ μœ„μΉ˜ μ‘°μ •