메뉴 닫기

운영중인 이미지를(qcow2, raw) 삭제했을 경우 복구방법

delete

가상화 환경을 운영도중 발생한 삭제이미지를 복구했던 방법입니다.
가상화환경 뿐만 아니라 삭제된 파일이 프로세서가 유지되고 있는 상태라면 동일하게 복구가능합니다.

증상 :
– 가상화를 운영중인 환경에서 이미지파일(raw, qcow2)이 삭제되었으나 해당데몬은 실행중인 상태
 – 인스턴스(VM) 상태는 읽기/쓰기 모두 정상이며 내부 프로세서에도 문제가 발생되지 않음

조치 : 
  단, 백그라운드 데몬이 실행이 중지되버릴 경우 inode 값이 삭제되어 데이타가 유실될 여지가 있기에 조심조심…..
   따라서 현재 /proc 파일시스템에서 아직 운영상태중인 파일을 copy 함으로써 데이타를 복구시도

 
예제에서는 /VM_IMG/192.168.0.238 디렉토리내에 파일들이 모두 삭제되어버린 상태

[root@localhost ]# lsof /VM_IMG/
COMMAND   PID USER   FD   TYPE DEVICE     SIZE/OFF      NODE NAME
qemu      845  kvm    4uW  REG   8,17            4 115081359 /VM_IMG/192.168.0.238/vnc/vm00001.pid (deleted)
qemu      845  kvm   12u   REG   8,17  71740882944 115081388 /VM_IMG/192.168.0.238/192.168.0.238.qcow2 (deleted)
qemu     3571  kvm    4uW  REG   8,17            5 115081290 /VM_IMG/192.168.0.151/vnc/vm00002.pid (deleted)
qemu     3571  kvm   12u   REG   8,17  42124574720 115081287 /VM_IMG/192.168.0.151/192.168.0.151.qcow2 (deleted)
qemu     3571  kvm   15w   REG   8,17            1 115081291 /VM_IMG/192.168.0.151/vnc/vm00001.serial (deleted)
 
 
 /VM_IMG/192.168.0.238 내 파일 PID 값 = 845
[root@localhost fd]# pwd
/proc/845/fd       ==> /proc/${PID}/fd 
 
 
데이타를 저장하고 있는 이미지 파일명은 12
[root@localhost fd]# ls -al
total 0
dr-x—— 2 kvm kvm  0 Dec  9 15:02 .
dr-xr-xr-x 8 kvm kvm  0 Nov 25 04:34 ..
lrwx—— 1 kvm kvm 64 Dec  9 15:02 0 -> /dev/null
lrwx—— 1 kvm kvm 64 Dec  9 15:02 1 -> /dev/null
lrwx—— 1 kvm kvm 64 Dec  9 15:02 10 -> anon_inode:[eventfd]
lrwx—— 1 kvm kvm 64 Dec  9 15:02 11 -> /dev/net/tun
lrwx—— 1 kvm kvm 64 Dec  9 15:02 12 -> /VM_IMG/192.168.0.238/192.168.0.238.qcow2 (deleted)
lr-x—— 1 kvm kvm 64 Dec  9 15:02 13 -> pipe:[20343205]
l-wx—— 1 kvm kvm 64 Dec  9 15:02 14 -> pipe:[20343205]
lrwx—— 1 kvm kvm 64 Dec  9 15:02 17 -> anon_inode:kvm-vcpu
lrwx—— 1 kvm kvm 64 Dec  9 15:02 18 -> anon_inode:kvm-vcpu
lrwx—— 1 kvm kvm 64 Dec  9 15:02 19 -> socket:[20390697]
lrwx—— 1 kvm kvm 64 Dec  9 15:02 2 -> /dev/null
lrwx—— 1 kvm kvm 64 Dec  9 15:02 20 -> socket:[20390696]
lrwx—— 1 kvm kvm 64 Dec  9 15:02 21 -> anon_inode:[eventfd]
lrwx—— 1 kvm kvm 64 Dec  9 15:02 3 -> socket:[20452512]
lrwx—— 1 kvm kvm 64 Dec  9 15:02 4 -> /VM_IMG/192.168.0.238/vnc/vm00001.pid (deleted)
l-wx—— 1 kvm kvm 64 Dec  9 15:02 5 -> pipe:[20452513]
lrwx—— 1 kvm kvm 64 Dec  9 15:02 6 -> /dev/kvm
lrwx—— 1 kvm kvm 64 Dec  9 15:02 7 -> anon_inode:kvm-vm
lrwx—— 1 kvm kvm 64 Dec  9 15:02 8 -> anon_inode:[signalfd]
lrwx—— 1 kvm kvm 64 Dec  9 15:02 9 -> anon_inode:[eventfd]
 
※ inode 값 확인
-i, –inode
       print the index number of each file
 
 
# 이미지 정보 확인
[root@localhost fd]# qemu-img info 12
image: 12
file format: qcow2 
virtual size: 100G (107374182400 bytes)
disk size: 67G
cluster_size: 65536
 
# 이미지 복사
[root@115-68-30-45 fd]# cp /proc/845/fd/12 /VM_IMG/192.168.0.238.qcow2
‘/proc/845/fd/12’ -> ‘/VM_IMG/192.168.0.238.qcow2’
 
or 
[root@115-68-30-45 fd]# qemu-img convert -r /proc/845/fd/12 -O qcow2 /VM_IMG/192.168.0.238.qcow2
 
정상복구 확인되었으며…데몬 실행시 파일시스템에 특이사항 없이 복구완료!!!
 
[polldaddy rating=”7739789″]

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다