분산 파일 시스템을 통한 백업

분산 파일 시스템을 통한 백업

내 질문을 최대한 정확하게 설명할 수 있기를 바랍니다.

vm-server에서 처리/생성하는 데이터가 소중하기 때문에 가능한 한 빨리 자주 vm-server를 백업할 수 있는 방법을 찾고 있습니다. KVM 호스트와 최소 2명의 게스트(웹 서버(Apache/PHP) 및 데이터베이스 서버(MySQL/Solr))가 있습니다. 나는 호스트에 대해서는 그다지 관심이 없지만 손님에게는 관심이 없습니다. 이 주제에 대해 KVM이나 가상화에 대해 자세히 알아보고 싶지 않습니다. 이 스레드는 모든 VM 기반 환경과 기타 모든 환경에도 적용 가능해야 합니다. VM 시나리오는 더 까다롭고 내 상상 속에서 가장 복잡한 상황 중 하나를 나타내기 때문에 잘 맞습니다. 적어도 이 기준에서는 그것이 필요합니다.

현재 저는 vm 내 백업과 LVM 기반 스냅샷을 하루에 1~2회 생성하고 있습니다. (최근에 발생한) 하드웨어 오류가 발생하면 최선의 경우 전체 데이터를 놓칠 수 있습니다.

따라서 한 가지 방법은 각 애플리케이션/서비스를 살펴보고 사용 가능한 최상의 백업 전략을 적용하는 것입니다. 각 경우마다 고려해야 합니다.

또 다른 흥미로운 방법은 분산 파일 시스템을 사용하는 것 같습니다. 아이디어는 MySQL의 바이너리 로그와 약간 비슷하게 작동하는 파일 시스템을 갖는 것입니다. 또는 보다 일반적인 경우: 파일 시스템의 모든 쓰기 작업을 캡처하고 이를 다른 시스템에 비동기식으로 복제합니다. 네트워크와 기록된 데이터의 양에 따라 몇 초 또는 몇 분의 지연 시간이 발생할 수 있으며 말할 필요도 없이 캐시에 보관된 모든 작업을 놓칠 수 있습니다. 그래서 vm-host에 설치된 분산 파일 시스템에 vm이 있습니다. 모든 쓰기 작업은 백업 서버에 비동기식으로 적용됩니다. 이제 하드웨어 오류가 발생하면 이론상으로 백업 서버를 새 마스터로 전환하거나 데이터 손실보다 다운타임이 더 허용되는 경우를 대비하여 복원된 마스터 서버로 파일을 다시 복사할 수 있습니다. 그 결과 가상 머신은 몇 초에서 몇 분 전에 바로 꺼진 것처럼 작동해야 합니다. 하지만 몇 시간은 아닙니다. 저는 파일 시스템 수준에서 마스터-마스터 복제를 추구하지 않습니다. 이는 대부분의 애플리케이션, 특히 MySQL과 같은 데이터베이스 서버에서 지원되지 않기 때문입니다!

그래서 내 질문은 다음과 같습니다. 이미 그러한 구성을 경험한 사람이 있거나 이러한 데이터 백업 시도에 대해 긍정적이거나 부정적인 지식을 가진 사람이 있습니까? 나는 이러한 파일 시스템에 대한 깊은 경험이 없습니다. 특히 신뢰성과 성능이 중요합니다.

답변1

분산 파일 시스템은 백업이 아니라 중복입니다. 실수로 삭제한 내용도 '백업'합니다.

즉,DRBD.

답변2

귀하의 상황에 대한 최선의 대답은 데이터가 블록 수준에서 중복 저장되는 클러스터 스토리지입니다. 이를 구현하는 방법에는 여러 가지가 있지만 제가 상상할 수 있는 가장 좋은 방법은(적어도 가동 시간 사양에 따라) 오픈 스택 클러스터입니다. Openstack은 하드웨어 오류가 발생할 경우 실행과 저장소가 모두 중복되고 중단되지 않도록 저장소와 계산을 모두 분산합니다. 즉, 데이터 무결성과 가동 시간을 유지하는 가장 좋은 방법은 애초에 애플리케이션이 충돌하지 않도록 하는 것입니다. yoonix가 지적했듯이 이것은 사용자/논리 오류로부터 사용자를 보호하지는 않지만 오픈 스택에는 디스크 이미징/백업을 위한 도구도 포함되어 있습니다. 이미지를 로드하고 부팅하는 데 몇 초는 아니더라도 몇 분 정도 걸립니다. Amazon Web Services와 Rackspace는 OpenStack 배포의 예입니다. http://www.openstack.org/

openstack을 시작하기 좋은 곳은 devstack입니다(테스트할 다양한 배포 모드가 포함된 배포 스크립트와 거의 유사함). http://devstack.org/

이 구현의 약점은 하드웨어가 부족하다는 것입니다. 이 시스템은 물리적 서버가 2개만 있는 소규모 사무실에서는 그다지 빛을 발하지 않습니다(그러나 블레이드 시스템에서는 훌륭하게 작동함).

답변3

이를 위해 VMware 플랫폼으로 마이그레이션하고 해당 솔루션을 사용하는 것을 고려해 보셨나요?

'Fault Tolerance'(vLockstep 사용)는 VM의 기본 버전에 적용된 모든 변경 사항을 반영하여 모든 VM의 두 번째 '대기' 복사본을 최신 상태로 유지합니다. 기본 버전에 문제가 발생하면 시스템은 즉시 보조 VM으로 장애 조치됩니다. (다운타임이나 영향이 거의 없음)

'고가용성'은 대기 VM을 준비된 상태로 유지하지만 대기 VM의 전원은 꺼진 상태로 유지됩니다. 기본 VM에 오류가 발생하는 경우 시스템은 자동으로 대기 VM의 전원을 켭니다. (몇 분의 가동 중지 시간)

이 제품은 훌륭하게 작동하며 매우 안정적입니다. 그런데... 비싸요. 이러한 기술을 실행하는 데 필요한 라이선스 예산이 없다면 이 제안은 전혀 도움이 되지 않습니다. 적어도 어떤 도구가 있는지에 대한 더 많은 아이디어를 제공할 수 있기를 바랍니다.

관련 정보