GitLab 백업 작동 방식
GitLab 애플리케이션 백업의 작동 원리, gitlab-backup 도구, Rake 태스크, 백업 생성 및 복원 절차를 설명합니다.
GitLab은 다양한 설치 유형과 호스팅 아키텍처에 걸쳐 애플리케이션 백업을 생성하는 방법에 대한 권장 사항을 제공합니다. 특정 시점(point-in-time)의 애플리케이션 백업을 생성하는 간단한 도구와, 복잡한 클라우드 기반 설치 백업을 처리하는 방법에 대한 전문 문서를 제공합니다. 백업 및 복원은 주로 Linux Package 및 Docker 설치 방법과 함께 제공되는 gitlab-backup 도구를 기반으로 합니다. 쿠버네티스 설치에만 제공되는 추가 도구 backup-utility 가 있으며, 이는 다른 구현 방식을 사용합니다. gitlab-backup 도구 # 현재 GitLab 문서에서 백업 생성 및 복원 수행에 관한 내용은 Omnibus로 생성된 시스템 패키지에 내장된 특수 명령어인 gitlab-backup 을 사용하도록 안내합니다. 이 명령어는 두 가지 서브커맨드 옵션을 갖는 매우 단순한 인터페이스를 제공합니다: # 백업을 생성하려면 sudo gitlab-backup create # 이는 gitlab-rake gitlab:backup:create에 해당합니다 # 이전에 캡처한 백업을 복원하려면 sudo gitlab-backup restore BACKUP=<backup_id> # 이는 gitlab-rake gitlab:backup:restore BACKUP=<backup_id>에 해당합니다 이 명령어는 실제로 GitLab Rails 애플리케이션에 정의된 핵심 백업 및 복원 Rake 태스크를 래핑하는 셸 스크립트입니다. Rake 태스크는 일반적으로 환경 변수를 사용하여 매개변수와 런타임 구성을 정의하며, 이 명령어는 호출 시 중요한 환경 설정을 Rake 프로세스에 전달합니다. 그러나 주요 백업 생성 및 복원 작업은 Rake 태스크 내부에 정의되어 있으며, 이에 대해서는 다음 섹션에서 더 자세히 살펴보겠습니다. Rake 태스크 # 현재 GitLab Rails 애플리케이션은 관리자가 애플리케이션 데이터의 백업을 캡처하고 이후에 복원하는 데 사용하는 기본 수단인 여러 Rake 태스크를 제공합니다. 특정 시점 백업 아카이브 생성 # sudo gitlab-rake gitlab:backup:create [env-overrides] 백업 생성 Rake 태스크는 실행 시점의 모든 GitLab 애플리케이션 데이터 집합의 상태를 캡처하는 것을 목표로 합니다. 일반적으로 성공적으로 호출되면 생성 태스크는 백업 아카이브 tarball 파일을 빌드합니다. 아카이브 tarball의 콘텐츠와 형식은 /etc/gitlab/gitlab.rb 의 시스템 전체 구성 설정 또는 호출 시 설정된 환경 변수에 의해 크게 변경될 수 있습니다. 또한 이러한 다양한 설정에 따라 백업이 생성 후 저장되는 위치나 복원 시 검색될 수 있는 위치가 결정될 수 있습니다. 일반적인 1K 설치보다 데이터 부담이 훨씬 큰 설치에서 이러한 작업을 수행할 때 성능을 조정하는 옵션도 있습니다. 기본 백업 생성 절차 # 사용자가 백업 생성 Rake 태스크를 실행하면 다음과 같