Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

  1. Hashed storage

...

  • 새로 생성되거나 이름이 변경된 리포지토리에 Hashed storage 경로를 사용하며 Disk에 리포지토리를 저장하기 위해서 고정되지 않는 해시 기반 경로 및 리포지토리 이름을 사용한다.

프로젝트 URL과 저장소가 디스크에 저장되는 폴더 구조를 결합하는 대신 프로젝트 ID를 기반으로 해시를 결합한다. 따라서 폴더 구조를 변경할 수 없으므로 URL에서 디스크 구조로 상태를 동기화해야 할 필요가 없습니다. 즉, 그룹, 사용자 또는 프로젝트 이름을 바꾸면 데이터베이스 트랜잭션 비용만 발생하고 즉시 적용된다.

...

  • 해시는 디스크에 리포지토리를 보다 고르게 분산시키는데 도움이 되므로 최상위 디렉터리에는 총 최상위 네임 스페이스보다 적은 수의 폴더가 포함됩니다.

  • 해시 형식은 SHA256의 16진 표현SHA256(project.id)을 기반으로 하며 최상위 폴더는 처음 2자를 사용하고 다음 2자가있는 다른 폴더를 사용하며 존 레거시 스토리지 프로젝트와 공존 할 수 있도록 둘 다 특수 폴더@hashed에 저장됩니다 .

Code Block
# 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

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

...