백업 Gitlab을 확장하는 방법? 데이터, GIT LFS 등 구성 등이 포함됩니다.

온-프레미스 Gitlab에서 3TB 백업을 수행하는 방법에 대해 Gitlab 지원을 요청할 때 tarball을 생성하는 을 사용하여 응답합니다 .

이것은 모든 수준에서 나에게 잘못 솔기됩니다. 이 tarball에는 postgres 덤프, 도커 이미지, 저장소 데이터, GIT LFS 등 구성 등이 포함됩니다. KB의 매우 동적 인 데이터와 함께 TB의 정적 데이터를 백업하는 것은 적합하지 않습니다. 그리고 우리는 매시간마다 백업을하고 싶습니다.

질문

일관된 백업을 얻기 위해 다른 사람들이 어떻게하는지 알고 싶습니다.

Linux의 ZFS는 솔루션의 일부라면 저에게 좋을 것입니다.



답변

백업 사이의 짧은 시간 (1 시간) 동안 가장 좋은 방법은 파일 시스템 수준 스냅 샷 send/recv 지원 에 의존 하는 것입니다.

ZoL 을 사용하는 것이 환경에서 문제가되지 않으면 사용 하는 것이 좋습니다. ZFS는 매우 강력한 파일 시스템이며 제공하는 모든 추가 기능 (예 : 압축)을 정말 좋아합니다. 와 결합 sanoid/syncoid하면 매우 강력한 백업 전략을 제공 할 수 있습니다. 주요 단점은 메인 라인 커널에 포함되어 있지 않으므로 별도로 설치 / 업데이트해야한다는 것입니다.

또는 실제로 기본 제공 항목으로 제한해야하는 경우 BTRFS를 사용할 수 있습니다. 그러나 (많은) 단점과 피타 를 이해해야합니다 .

마지막으로, 대안 솔루션을 사용하는 것입니다 lvmthin: (에 예를 들어, 정기적으로 백업을 수행하는 snapper(예를 들어, 타사 도구에 의존) bdsync, blocksync/ 선박 델타 만 복사 등).

다른 방법은을 통해 독립 스냅 샷을 생성하는 두 개의 복제 된 시스템 (통해 DRBD) 을 갖는 것 lvmthin입니다.


답변

백업중인 내용을 검토하고 “다중 경로”접근 방식을 사용합니다. 예를 들어 백업 서버에서 Git pull을 통해 지속적으로 실행하여 Git 리포지토리를 백업 할 수 있습니다. 그것은 diff 만 복사하고 모든 Git 저장소의 두 번째 사본을 남깁니다. 아마도 API로 새로운 저장소를 감지 할 수있을 것입니다.

그리고 “내장”백업 절차를 사용하여 문제 등을 백업하십시오. 3TB가이 부분에서 제공되어 의심 할 여지없이 아주 적은 비용으로 백업을 수행 할 수 있습니다. 복제와 함께 웜 대기 모드로 PostgreSQL 데이터베이스를 설정할 수도 있습니다.

3TB는 Docker 레지스트리의 컨테이너 이미지에서 비롯된 것일 수 있습니다. 그것들을 백업해야합니까? 그렇다면 더 나은 접근 방식이있을 수 있습니다.

기본적으로 백업을 구성하고 다양한 부분에서 데이터를 백업하는 것이 무엇인지 실제로 확인하는 것이 좋습니다.

GitLab의 백업 도구조차도 Docker Registry와 같은 시스템의 특정 부분을 포함 / 제외하는 옵션이 있습니다.