메뉴 닫기

RBD 이미지 재구성.

: 클러스터가 죽었을때 IMAGE 복구 작업.

가정 : 모든 클러스터가 죽었으며, 모니터도 지워졌으며, 백업도 없다

(그러나 모든 개체들은 그대로 유지된다.)

===============
복구 작업 진행
===============

1단계 : 이미지 백업.

– 풀에 존재하는 모든 이미지를 추적해라.
– 추적된 모든 이미지에 대한 속성을 저장해라. ( # rbd info /
– rbd 해더를 저장해라.

2단계 : 복구

실습

– Create a RBD image

# rbd create -s 10240
# rbd info
rbd image ”:
size 10240 MB in 2560 objects
order 22 (4096 kB objects)
block_name_prefix: rb.0.1066.74b0dc51
format: 1

– Map it on a machine

# sudo rbd -p rbd map
/dev/rbd0

# sudo rbd showmapped
id pool image snap device
0 rbd – /dev/rbd0

– Put a XFS filesystem on top of it

# sudo mkfs.xfs /dev/rbd0
log stripe unit (4194304 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/rbd0 isize=256 agcount=17, agsize=162816 blks
= sectsz=512 attr=2, projid32bit=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=1024 swidth=1024 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

# sudo mount /dev/rbd0 /mnt
# echo “foo” > /mnt/bar
# sudo umount /mnt
# sudo rbd unmap /dev/rbd0

다음으로 이미지를 복구하기 위해 서버에 디랙토리를 만들어라(복구될 위치가 되겠다)

# mkdir recover_
# wget -O rbd_restore https://raw.githubusercontent.com/smmoore/ceph/master/rbd_restore.sh
# chmox +x rbd_restore

그런 다음 모든 RBD 오브젝트 파일을 수집해야 한다.

# cd recover_
~/recover_]# for block in $(find /var/lib/ceph/osd/ -type f -name rb.0.1066.74b0dc51.*); do cp $block . ; done
~/recover_]# bash recover.sh rb.0.1066.74b0dc51 10737418240
~/recover_]# file
leseb: SGI XFS filesystem data (blksz 4096, inosz 256, v2 dirs)
~/recover_]# du -h
11M

–> 이것으로 이미지가 복구 된것인가?????

복구 되었다면 복구된 이미지를 다시 pool 에 삽입하는 것도 확인해봐야 할 것이다. 문서 추가하자.!!!

복구된 내용이 실제로 작동하는지 확인은 다음과 같이 한다.

~/recover_]# losetup -f
/dev/loop0

~/recover_]# losetup /dev/loop0 leseb
~/recover_]# mount /dev/loop0 /mnt/
~/recover_]# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
/dev/loop0 10G 33M 10G 1% /mnt

~/recover_leseb]# ls /mnt/
bar
~/recover_leseb]# cat /mnt/bar
foo

http://idchowto.com/wp-admin/post-new.php#edit_timestamp

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x