백업 서비스를 구성하기 전에, 다음 사항을 확인해야 합니다.
- 3.17 버전 이상을 실행하는 GitHub Enterprise Server 인스턴스가 있어야 합니다.
- 백업 대상으로 사용할 전용 스토리지 볼륨이 프로비전되고 관리되고 있어야 합니다.
저장소 요구 사항
안정적이고 성능이 좋은 백업을 보장하려면 스토리지가 다음 요구 사항을 충족해야 합니다.
-
**용량:** 기본 GitHub 어플라이언스 데이터 디스크에서 사용하는 스토리지 용량의 최소 5배 이상을 할당하세요. 이는 과거 스냅샷과 향후 성장을 고려한 것입니다. -
**파일 시스템 지원:** 백업 서비스는 효율적인 스토리지를 위해 하드 링크를 사용하고 GitHub 인스턴스는 바로 가기 링크를 사용합니다. 백업 대상은 바로 가기 링크와 하드 링크를 모두 지원해야 하며, 대/소문자를 구분하는 파일 시스템을 사용하여 충돌을 방지해야 합니다.다음을 실행하여 파일 시스템이 심볼릭 링크의 하드링크를 지원하는지 여부를 테스트할 수 있습니다.
cd /data/backup sudo touch file sudo ln -s file symlink sudo ln symlink hardlink ls -la`ln symlink hardlink` 명령이 성공적으로 완료되면 파일 시스템이 지원됩니다. -
**성능:** 느린 백업 및 복원을 방지하려면 대기 시간이 짧고 IOPS가 높은 고성능 스토리지를 사용합니다. -
**NFS:** 백업 디렉터리(일반적으로 `/data/backup`)에 NFS 마운트를 사용하지 마세요. 시간 초과 및 성능 저하가 발생할 수 있습니다.
백업 서비스 구성
관리 콘솔을 통해 GitHub Enterprise Server Backup Service를 구성할 수 있습니다.
백업 대상 설정
서비스를 구성하기 전에 백업을 저장할 스토리지 볼륨을 준비해야 합니다.
새 블록 디바이스 사용
전용 블록 디바이스를 백업 대상으로 사용하는 경우 관리 콘솔에서 진행하기 전에 SSH를 통해 해당 디바이스를 초기화해야 합니다. 이 프로세스를 실행하면 디바이스가 포맷되고 모든 기존 데이터가 삭제됩니다.
-
`admin` 사용자로 SSH를 통해 인스턴스에 연결합니다. [AUTOTITLE](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)을(를) 참조하세요. -
인스턴스에 백업 블록 디바이스를 연결합니다.
-
`lsblk`를 사용하여 디바이스 이름을 식별하면 사용 가능한 블록 디바이스 이름을 나열할 수 있습니다. 데이터 손실을 방지하려면 올바른 디바이스를 선택해야 합니다.lsblk -
`YOUR_DEVICE_NAME`을 이전 단계에서 식별된 실제 디바이스 이름으로 바꿔 초기화 명령을 실행합니다.경고
이 명령은 지정된 디바이스의 모든 데이터를 영구적으로 지웁니다. 계속하기 전에 디바이스 이름을 다시 확인하고 중요한 데이터는 백업해 둡니다.
ghe-storage-init-backup /dev/YOUR_DEVICE_NAME이 명령:
-
디바이스의 형식을 지정합니다(모든 데이터 지우기).
-
백업 서비스에서 사용할 수 있도록 준비합니다.
-
부팅 시
/data/backup자동으로 탑재되도록 설정합니다.
-
백업 디스크 분리
경고
백업 디스크를 분리하기 전에 현재 진행 중인 백업 또는 복원이 없는지 확인합니다. 사용 중인 디스크를 분리하면 데이터가 손실되거나 서비스가 중단될 수 있습니다.
만약 GitHub Enterprise Server에서 백업 디스크를 분리해야 하는 경우, 다음 단계를 따라 주십시오.
-
블록 디바이스를 나열하고
/data/backup를 마운트 해제합니다.sudo lsblk sudo umount /data/backup -
논리 볼륨을 나열하고 논리 볼륨을 비활성화합니다.
sudo lvs sudo lvchange -an <backup_VG>/<backup_LV> -
클라우드 공급자 또는 하이퍼바이저에서 제공하는 콘솔 또는 CLI를 사용하여 디스크를 분리합니다.
-
탑재 지점을 제거합니다.
sudo rmdir /data/backup
이전에 초기화된 디스크 다시 사용
디바이스가 이미 ghe-storage-init-backup을 사용하여 초기화된 경우, 다시 포맷하지 않고 재사용할 수 있습니다.
-
`admin` 사용자로 SSH를 통해 인스턴스에 연결합니다. -
디스크를 인스턴스에 연결합니다.
-
탑재 지점이 존재하지 않으면 새로 만듭니다.
sudo mkdir -p /data/backup -
탑재 서비스를 활성화하고 시작합니다.
sudo systemctl enable ghe-backup-disk.service sudo systemctl start ghe-backup-disk.service이렇게 하면 해당 디바이스가
/data/backup에 탑재되고. 이후에도 자동으로 탑재되도록 설정합니다.
백업 설정 구성
백업 대상이 탑재되면 "Backup" 섹션의 관리 콘솔에서 Backup 서비스 페이지를 사용할 수 있게 됩니다.
참고
위의 초기화 또는 탑재 단계를 완료하여 백업 스토리지가 탑재될 /data/backup 때까지 설정 페이지가 표시되지 않습니다.
GitHub Enterprise Server Backup Utilities에서 마이그레이션하는 경우, 다음 두 가지 방법 중 하나로 구성을 전송할 수 있습니다.
-
**수동 구성**: 관리 콘솔에서 직접 설정을 다시 만듭니다. -
**명령줄 마이그레이션**: 인스턴스에 SSH를 실행하고 backup-utils에서 `backup.config` 파일을 복사한 후, 다음을 실행합니다.ghe-migrate-backup-config /path/to/your/backup.config`--dry-run` 플래그를 사용하면 변경 내용을 적용하지 않고 미리 볼 수 있습니다.
자동화된 백업 예약
서비스 구성이 완료되면 백업 일정을 정의할 수 있습니다.
- 관리 콘솔에서 상단 메뉴의 "Backups" 탭을 엽니다.
- "Backup Schedule" 섹션에서 미리 정의된 일정(예: 매일)을 선택하거나 사용자 지정 cron 식을 입력합니다.
-
**저장**을 클릭하여 변경 내용을 적용합니다.
첫 번째 실행은 전체 백업이 됩니다. 이후 실행은 증분 방식으로 진행됩니다. 이전 백업이 계속 실행되는 동안 새로운 백업 시도가 시작되면, 해당 백업은 건너뛰거나 실패할 수 있습니다. 이 경우, 일정이 겹치지 않도록 조정해야 합니다.