저장소 스토리지

GitLab은 다음과 같은 하나 이상의 저장소 경로 / 샤드 위치를 사용하도록 구성 할 수 있다.

  • 로컬 디스크에 마운트

  • NFS 공유 볼륨으로 노출

  • 자체 시스템에서 Gitaly 를 통해 액세스

해시 구성에 /etc/gitlab/gitlab.rb 에 git_data_dirs({})로 구성되며, 스토리지 레이아웃은 정의 된 샤드에 적용된다.

 

  1. 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

새 리포지토리의 스토리지 노드, 새 리포지토리에 사용할 수 있는 구성된 스토리지를 선택한다.