저장소 스토리지
GitLab은 다음과 같은 하나 이상의 저장소 경로 / 샤드 위치를 사용하도록 구성 할 수 있다.
로컬 디스크에 마운트
NFS 공유 볼륨으로 노출
자체 시스템에서 Gitaly 를 통해 액세스
해시 구성에 /etc/gitlab/gitlab.rb
에 git_data_dirs({})
로 구성되며, 스토리지 레이아웃은 정의 된 샤드에 적용된다.
Hashed storage
새로 생성되거나 이름이 변경된 리포지토리에 Hashed storage 경로를 사용하며 Disk에 리포지토리를 저장하기 위해서 고정되지 않는 해시 기반 경로 및 리포지토리 이름을 사용한다.
해시는 디스크에 리포지토리를 보다 고르게 분산시키는데 도움이 되므로 최상위 디렉터리에는 총 최상위 네임 스페이스보다 적은 수의 폴더가 포함됩니다.
해시 형식은 SHA256의 16진 표현
SHA256(project.id)
을 기반으로 하며 최상위 폴더는 처음 2자를 사용하고 다음 2자가있는 다른 폴더를 사용하며 존 레거시 스토리지 프로젝트와 공존 할 수 있도록 둘 다 특수 폴더@hashed
에 저장됩니다 .
# Project's repository:
"@hashed/#{hash[0..1]}/#{hash[2..3]}/#{hash}.git"
# Wiki's repository:
"@hashed/#{hash[0..1]}/#{hash[2..3]}/#{hash}.wiki.git"
2. Storage nodes for new repositories
새 리포지토리의 스토리지 노드, 새 리포지토리에 사용할 수 있는 구성된 스토리지를 선택한다.