밤새 10,000 개의 파일을 잃어 버리고 방탄 백업 시스템을 구축 한 방법
모든 것을 바꾼 재난
2019 년 10 월, 우리는 10,000 개의 중요한 파일이 밤새 사라지는 중요한 실수를 저질렀습니다.. 우리의 사업을 망칠 수있는 것은 재앙이었습니다. 그러나 5 년 후, 그와 같은 경험으로 인해 새로운 회사가 더 큰 위기에서 벗어났습니다.
이것은 데이터 손실, 오해 및 방탄 백업 시스템을 구축하게 된 어려운 교훈에 대한 이야기입니다. 중요한 데이터를 저장하는 시스템을 실행하는 경우 동일한 실수를 피하는 데 도움이 될 수 있습니다.
배경 : 가마가 데이터를 저장 한 방법
Gama (Gama.ir)는 2014 년이란에서 시작된 K-12 교육 콘텐츠 공유 플랫폼으로 전 세계 1 천만 명이 넘는 사용자가 있습니다. 다음과 같은 서비스를 제공합니다.
- 과거 논문
- 튜토리얼 및 학습 리소스
- 온라인 시험 및 학교 허브
- 라이브 스트리밍 및 Q & A 커뮤니티
- 지도 서비스
우리의 콘텐츠는 사용자가 생성되었으므로 보안 파일 스토리지를 유지하는 것이 최우선 과제였습니다. 우리는 사용했습니다 무스5 개의 노드와 3 중 복제 모델이있는 분산 파일 시스템으로 중복성을 보장합니다.
우리의 백업 전략
모든 파일의 사본을 저장 한 간단한 외부 HDD. 그것은 잘 작동했고, 우리는 그것을 거의 필요로하지 않았습니다. 그러나 우리는 위험한 가정을했습니다.
재난으로 이어진 이주
우리 엔지니어 중 한 명이 마이그레이션을 제안했습니다 Glusterfs보다 잘 알려진 분산 파일 시스템. 더 많은 확장 성, 더 높은 채택 및 더 나은 성능이 뛰어났습니다. 비용 편익 트레이드 오프를 평가 한 후 전환하기로 결정했습니다.
두 달 후, 이주가 완료되었습니다. 우리 팀은 새로운 시스템에 감격했습니다. 모든 것이 안정적으로 보였습니다.
한 가지 작은 문제가있었습니다.
백업 HDD는 90%가 완성되었으며 결정을 내려야했습니다.
실수
우리는 전에 전체 백업이 필요하지 않았기 때문에 Glusterfs가 충분히 신뢰할 수 있다고 가정했습니다.
우리는 오래된 백업 전략과 신뢰할 수있는 Glusterfs 복제를 제거했습니다.
그것은 나쁜 결정이었습니다.
모든 것이 잘못되었습니다
두 달 후 어느 날 아침, 우리는 보고서를 받기 시작했습니다. 일부 파일이 누락되었습니다.
처음에, 우리는 그것이 네트워크 결함이라고 생각했습니다. 그러나 우리가 더 깊이 파고 들었을 때, 우리는 Gluster가 누락 된 청크와 동기화 오류를 보여주고 있음을 발견했습니다.
- 파일이 사라졌습니다.
- 점점 더 많은 페이지가 오류를 던지고있었습니다.
- 빨리 퍼지고있었습니다.
즉각적인 응답
오전 3시 30 분 : 우리는 신선한 부트 스트랩이 문제를 해결할 것이라고 믿고 Gluster 네트워크를 다시 시작하기로 결정했습니다. 처음에는 작동하는 것 같았습니다!
우리는 그것을 해결했다고 생각했습니다.
그런 다음 콘텐츠 팀의 WhatsApp 메시지가 들어 왔습니다.
“파일이 비어 있습니다.”
잠깐, 뭐? 파일은 존재했지만 아무것도 포함하지 않았습니다.
수동으로 확인했습니다. 파일에는 여전히 크기와 메타 데이터가 있었지만 우리가 열었을 때 완전히 비어있었습니다.
10,000 개의 파일이 사라졌습니다.
쓸모없는 백업
우리는 백업 HDD를 가지고있었습니다. 그것은 우리를 구해 주었을 것입니다.
잘못된. Glusterfs로 마이그레이션 한 후 디렉토리 시스템을 재구성했습니다. 모든 파일에는 데이터베이스에 새 해시 경로가있었습니다.
우리의 오래된 백업은 다른 파일 이름을 가지고 있었기 때문에 쓸모가 없었습니다.
우리는 여러 회복 방법을 시도했습니다. 아무것도 효과가 없었습니다.
결국, 우리는 수천 명의 사용자에게 손실 된 파일을 다시 업로드하도록 요청했습니다.
악몽이었다. 그러나 그것은 우리가 모든 것을 다시 생각하도록 강요했습니다.
우리가 그것을 고정시키는 방법 : GAMA 파일 골키퍼 소개 (GFK)
이 재난 후, 우리는 스토리지 및 백업 전략을 완전히 재 설계했습니다. 우리의 솔루션에는 두 부분이 있습니다.
1. GAMA 파일 골키퍼 (GFK) : 더 똑똑한 스토리지 시스템
- 업로드 된 모든 파일은 체크섬으로 매핑되어 이름이 바뀌더라도 추적 가능합니다.
- 하드 삭제 대신 파일은 제거 프로세스를 시작하기 전에 3 개월의 소프트 삭제 프로세스를 거칩니다.
- 체크섬 기반 매칭을 사용하여 회복이 즉각적입니다.
2. BackApp : 다층 백업 전략
우리는 더 이상 단일 스토리지 시스템에 의존하지 않습니다. 대신, 우리는 3 층 백업 전략을 구현했습니다.
- 따뜻한 백업 (2 시간마다) : 동일한 데이터 센터 내에서 실시간 동기화.
- 콜드 백업 (6 시간마다) : 별도의 데이터 센터로 복제되었습니다.
- 오프라인 백업 (주간) : 별도의 위치에 물리적 HDD에 저장됩니다.
데이터베이스 백업
- 12 개월 동안 저장된 24 시간마다 전체 백업.
실제 테스트 :이 시스템이 2025 년에 우리를 구한 방법
5 년. 영국의 새로운 사업 인 Gamatrain.com은 또 다른 드문 사건에 직면했습니다.
그러나 이번에는 단일 파일을 잃지 않았습니다.
왜? 우리가 2019 년에 배운 교훈과 그것을 방지하기 위해 구축 한 시스템 때문에.
모든 엔지니어를위한 교훈
- 단일 스토리지 시스템을 신뢰하지 마십시오.
- 백업은 독립적이고 다층이어야하며 다른 위치에 저장해야합니다.
- 재난이 일어날 것입니다. 당신의 탄력성은 당신이 그들을 얼마나 잘 준비하는지에 달려 있습니다.
#devops #BackUpStrategy #DatAreCovery #engineeringFailures #DisasterRecovery
Post Comment