Virtual machine image 동기화
VM 이미지 처럼 거대한 단일 파일을 빠르게 복제하는 방법
–inplace 옵션을 이용하면 많은 속도 개선이 있다.
# rsync -v -z -r –inplace –progress -e ssh SPICE.img root@alang11:/VOS
rsync 의 경우 파일 단위로 변경이 있는 파일을 통째로 복제하는 방식이여서
block 레벨에서 일부 정보가 달라진 경우에도 원본 파일을 처음부터 복제를 해야한다.
–inplace 옵션을 사용하면 단일 파일의 내용중 일부가 변경되었을때 최대한 변경된
부분만을 갱신하는 효과를 가지고 있다.
애초 파일을 새롭게 갱신하는 것에 비해 복제 속도가 상당히 빠름(5배 정도..)
이밖에..
http://www.virtsync.com 에서 제공하는 virtsync 명령은 수십기가 파일을 단 몇 분만에
복제하는 효과도 있음. 대신 유료..60일 데모판 있음.
VM 이미지 대부분이 용량은 크지만, 실제 데이터(블럭)가 쌓여 있는 공간은 크지 않다.
실제 블럭을 사용하고 있는 공간만을 복제하고, 나머지는 블럭구조만 맞추는 형태로 파일을
복제한다.
80GB를 일반적인 scp 로 복제를 하면 25분 정도 소요된다.
하지만 virtsync 명령을 이용하면 7분정도에 복제가 된다. 80GB VM 이미지 중 실제 데이터가
쌓여 있는 부분은 6.6G(운영체제, 기본 응용 프로그램) 정도이다. 이 6.6GB에 대한 복제는
scp 와 비슷한 성능을 보이지만, 비어있는 이미지 공간은 거의 초당 1GB 식 복제가 이루어진다.
80GB의 원본 이미지에 1MB 파일을 생성한 후, 원격으로 다시 복제하면, 거의 3분정도만에 복제
가 이루어진다. 단일 파일이지만 변경된 블럭 부분만을 복제함으로 대용량의 파일 복제가 아주
빠른 속도로 이루어 진다.
VM 이미지 관리에 매우 유용할듯..
# virtsync -v <원본이미지> <사용자계정>@<원격호스트>:<PATH>/
[root@alang10 VOS]# time virtsync -v SPICE.img root@alang11:/VOS
loading libcrypto.so…
syncing /VOS/SPICE.img to root@alang11:/VOS/SPICE.img (dot = 1 GiB)
[>.>>>>>……………………………>…………………………………]
done – 85899345920 bytes compared, 572145664 bytes transferred.
real 3m54.618s
user 2m34.795s
sys 1m1.216s