GitLab은 다음과 같은 하나 이상의 저장소 저장소 경로 / 샤드 위치를 사용하도록 구성 할 수 있다.
로컬 디스크에 마운트
NFS 공유 볼륨으로 노출
자체 시스템에서 Gitaly 를 통해 액세스
해시 구성에 /etc/gitlab/gitlab.rb
에 git_data_dirs({})
로 구성되며, 스토리지 레이아웃은 정의 된 샤드에 적용된다.
Hashed storage
새로 생성되거나 이름이 변경된 리포지토리에 Hashed storage 경로를 사용하며 Disk에 리포지토리를 저장하기 위해서 고정되지 않는 해시 기반 경로 및 리포지토리 이름을 사용한다.
프로젝트 URL과 저장소가 디스크에 저장되는 폴더 구조를 결합하는 대신 프로젝트 ID를 기반으로 해시를 결합한다. 따라서 폴더 구조를 변경할 수 없으므로 URL에서 디스크 구조로 상태를 동기화해야 할 필요가 없습니다. 즉, 그룹, 사용자 또는 프로젝트 이름을 바꾸면 데이터베이스 트랜잭션 비용만 발생하고 즉시 적용된다.
해시는 디스크에 리포지토리를보다 고르게 분산시키는 데 도움이되므로 최상위 디렉터리에는 총 최상위 네임 스페이스보다 적은 수의 폴더가 포함됩니다.
해시 형식은 SHA256의 16진 표현SHA256(project.id)
을 기반으로 하며 최상위 폴더는 처음 2자를 사용하고 다음 2자가있는 다른 폴더를 사용하며 존 레거시 스토리지 프로젝트와 공존 할 수 있도록 둘 다 특수 폴더@hashed
에 저장됩니다 .
Add Comment