사람들이 rsync를 사용하여 VMware 게스트를 백업하지 않는 이유는 무엇입니까?


12

최신 vmware ESXi 시스템을 실행중인 경우 정적으로 링크 된 rsync 바이너리 및 rsync 파일을 SSH를 통해 모든 대상에 드롭 할 수 있습니다.

vmware 게스트의 대부분 (모두?) 백업이 왜 이런 식으로 수행되지 않는지 이해하려고합니다.

VM이 실행중인 경우 간단히 'vim-cmd vmsvc / snapshot.create'를 사용하여 스냅 샷을 생성 한 다음 해당 스냅 샷을 원격 호스트와 재 동기화 할 수 있습니다. (스냅 샷을 "quiesce"하는 옵션도 있습니다)

또는보다 강력한 백업을 원할 경우 VM을 정상적으로 중지하고 vmdk 파일에서 rsync를 수행 할 수 있습니다.

그래서 ... 평범한 오래된 rsync를 사용하여 간단하고 쉽게 수행하려는 모든 백업에서 멀리 떨어진 간단한 쉘 스크립트 인 것처럼 보입니다.

내가 여기서 무엇을 놓치고 있습니까?


1
VM에서 단일 파일이 변경되면 전체 vmdk를 백업해야합니까?
faker

아니요, rsync는 마지막 전송 이후의 변경 사항만으로 단일 파일을 효율적으로 업데이트합니다. 확실히 VM의 작동으로 예상보다 많은 변화가 발생할 수 있지만 전체 vmdk를 다시 보내지는 않을 것입니다.
user227963

유지 관리 이외의 용도로 esxi 쉘을 사용해서는 안된다는 점 외에는 esxi OS가 그런 식으로 작동하지 않으며 지원되지 않을 것입니다. 스냅 샷의 개념을 오해하고 있다고 생각합니다. 이 경우 스냅 샷은 델타입니다. 따라서 스냅을하고 바로 복사하면 크기가 작으며 정보가 거의 없습니다. 백엔드 스토리지 스냅 샷을 생각하고 있습니다. 예. 사람들이 이런 식으로 VM을 백업합니다.
Rqomey

1
@Rqomey-ESXi에는 다른 종류의 "스냅 샷"이 있습니다. vSphere Client를 통해 볼 수있는 한 종류에 대해 이야기하고 있지만 API를 사용하면 다른 옵션 (예 : 전체 클론)을 사용할 수 있습니다.
masi

@MASI 스냅 샷이 아닌 복제본을 의미합니까? ;)
Rqomey 2016 년

답변:


32
  • ESXi 콘솔의 전송 속도는 의도적으로 제한되어 있기 때문입니다.
  • 어떤 식 으로든 확장 할 수 없기 때문입니다.
  • 정적으로 컴파일 된 rsync 바이너리를 ESXi 호스트에 드롭해야하기 때문입니다.
  • VM을, VMDK에가, 자신의 램 디스크 파일 및 기타 구성 요소가지는 제안을 rsync를 만들기에 충분를 변경할 수 있기 때문에 ... 당신이 할 정말 다시 부팅하고 파일 변화의 적은 수 있었다 그 재 동기화 백기가 바이트 VM을 원하십니까?
  • 소스 또는 대상의 CPU / 메모리 리소스 요구 사항으로 인해 Rsync는 무료가 아닙니다.
  • 시장에 타사와 VMware가 제공하는 다른 제품이 있기 때문에. 변경된 블록 추적을 찾습니다 .
  • ESXi를이 때문에 NOT 범용 운영 체제입니다.

VMware ESX 4.1 서버에 rsync 설치 참조


1
탁월한 답변.
EEAA

3
그들은 ... 이름은 ghettoVCB 입니다. 더 나은 솔루션이 있습니다. Veeam, vSphere Data Protection 등
ewwhite

2
xen / kvm으로 전환하면 확실히 rsync 방법을 사용할 수 있습니다.
Zoredache

9
@ user227963 Rsync는 많은 파일과 큰 파일 모두에서 비효율적입니다. 또한 전체 파일을 유선 으로 다시 보낼 필요는 없지만 소스와 대상 모두에서 다시 읽어야 합니다. CBT가 여기에서 당신을 도울 것입니다, 그러나 rsync는 CBT에 대해 아무것도 모릅니다.
the-wabbit

2
@ user227963 파일 복사는 간단합니다. 이제 작은 지속적인 변경으로 큰 파일에서 리소스를 낭비하지 말고 빠르게 만드십시오. rsync는 괜찮지 만 블록이 변경된 내부자 정보가있는 성능은 거의 없습니다.
JamesRyan

4

나는 몇 년 전에이 일을했었다. (편집 : ESXi가 아닌 CentOS 호스트에서 VMWare를 실행하는 경우)

매일 밤 VM을 일시 중지하고 디스크에서 백업 서버로 파일을 다시 동기화 한 다음 VM을 다시 시작하는 스크립트가있었습니다. 그것을 제외하고는 꽤 잘 작동했습니다 ...

Rsync는 2GB 파일에서 잘 작동하지 않습니다.

그것은 rsync가 훌륭하지 않기 때문에, 각각의 2GB vmdk 파일이 rsync에 매우 불투명 한 방식으로 변경되고, 동봉 된 파일 시스템에 대한 작은 변경조차도 내가 탓 한 vmdk (또는 어떤 이유로 든 모든 vmdks)를 변경합니다 Windows는 자동으로 조각 모음을 수행하거나 실제 시스템을 실행하는 경우 중요하지 않지만 VM을 재 동기화하려고 할 때 나타나는 다른 모든 작업을 수행합니다.

변경 사항을 감지하기위한 rsync 메커니즘은 2GB 파일에서 잘 작동하지 않는다고 생각하지만 vmdk의 시작 부분을 건너 뛰고 차이를 찾기 시작하면 단순히 파일의 나머지 부분을 복사합니다. rsync가 이진 데이터의 이동 된 덩어리를 감지 할 수 없거나 소스 상자의 메모리 부족 또는 vmdk가 완전히 업데이트되었는지 여부에 대한 문제인지는 알 수 없습니다. 결과가 동일하기 때문에 중요하지 않습니다. 대부분의 vmdk가 복사되었습니다.

결국 나는 단순히 rsync를 사용하여 변경된 파일을 복사하고 덮어 씁니다. 또한 rsync 복사를 허용하고 있던 것을 대체하는 대신 백업 파일을 덮어 쓰는 성능이 향상되었습니다.

백업 서버도 가장 빠르지 않았으며 밤새도록 실행중인 모든 VM을 백업하기에 충분하지 않은 시점에 도달했습니다.

그러나 VM을 복원해야 할 때는 정말 쉽고 아름답게 작동했습니다.


좋습니다. 매우 도움이됩니다. 나는 rsync의 작동 방식에 대해 조금 알고 있으며 파일 크기와는 아무런 관련이 없다고 말할 수 있습니다.하지만 당신이 설명하는 것은 예상보다 훨씬 많은 파일 변경 사항입니다. 예를 들어 VM을 하루 동안 실행하면 몇 가지 작업 만 수행 한 다음 중지합니다. 그러나 vmdk 파일은 30-40 % 변경되었습니다. 따라서 rsync는 정상적으로 작동하지만 예상보다 많은 작업이 필요합니다. 감사!
user227963

1
그러나 "이것이 제기하는 질문은 ..."전문적인 도구가 어떻게 하는가? rsync (또는 scp 또는 cp) 가하는 것보다 어떤 방식으로 그들이 가장 마술입니까? 하루가 끝나면 유닉스 환경 (ESXi 콘솔)이 있고 파일을 파일 안팎으로 옮기고 싶습니다 ... 어떤 비밀이 관련되어 있습니까?
user227963

@ user227963 전문 도구는 변경된 블록 추적과 같은 기능을 활용하거나 다른 vSphere 또는 ESXi API에 액세스 할 수 있습니다.
ewwhite

2

단일 파일을 재 동기화하는 것은 백업 솔루션이 아닙니다.

vm에 문제가 발생하여 파일이 삭제 된 경우 어떻게합니까? 그러나 rsync가 다시 실행 된 후에 만이 사실을 알 수 있습니까? 잘못된 이미지로 파일의 올바른 '백업'을 덮어 썼습니다.

백업을 원하면 이전 버전을 어딘가에 보관해야합니다. Rsync는 diff 만 복사하지만 diff 만 저장하지 않고 이전 파일을 덮어 씁니다.

rsync를 사용하는 옵션과 버전 정보가 포함 된 COW (Copy-On-Write) 파일 시스템이있을 수 있습니다.이 옵션은 rsync 스크립트가 실행될 때마다 diff를 저장합니다. 이 솔루션은 이미 조금 더 복잡해지기 때문에 사람들이 알려진 작동 솔루션에 의존합니다.


원래 내가 생각했던 것보다 훨씬 더 복잡한 문제가 있지만 언급 한 것은 문제가 아닙니다. 분명히 맹목적으로 rsync를 반복해서 실행하면 문제가 발생하지만 제안한 것처럼 문제가 발생하지만 rsync로 생성 된 백업 (단일 파일 백업)을 복제 / 회전하는 간단한 방법이 많이 있습니다 ... 그 문제는 오랫동안 해결되었습니다 고마워요
user227963

0

ESXi 서버에서 Rsync를 사용할 수없는 이유는 없습니다. 우리는 https://33hops.com/rsync-for-vmware-vsphere-esxi.html 정적으로 컴파일 된 버전을 제공합니다 . 자신 만의 컴파일 방법에 대한 정보도 있습니다.

그럼에도 불구하고 Rsync와 델타 알고리즘은 VM 하드 디스크와 같은 거대한 고정 길이 희소 파일을 백업하는 것이 아니라 가변 길이의 작은 파일을 동기화하는 것으로 생각했음을 고려해야합니다. 따라서 작동하지만 diff 데이터를 계산하는 데 많은 시간과 CPU가 필요합니다. 실제로 이것은 CPU별로 대역폭을 교환하는 방법 일뿐입니다. 어쨌든 가상 디스크가 수십 기가 바이트 정도 인 경우에도 여전히 작동 가능합니다.

나는 여기에 주제에 대한 전체 게시물을 게시했습니다. 모든 장단점 https://33hops.com/blog_xsibackup-rsync-considerations.html

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.