GitLab에서 NFS 사용
GitLab에서 NFS를 설정하고 사용하는 방법을 설명합니다.
NFS는 오브젝트 스토리지의 대안으로 사용할 수 있지만, 성능상의 이유로 일반적으로 권장하지는 않습니다. LFS, Uploads, Artifacts 같은 데이터 개체에는 성능이 더 좋은 오브젝트 스토리지 서비스 를 NFS보다 우선해 사용합니다. NFS 사용을 없앨 때는 오브젝트 스토리지로 옮기는 것 외에 추가로 수행해야 하는 단계 가 있습니다. NFS는 리포지터리 저장소로 사용할 수 없습니다. 파일 시스템 성능을 테스트하는 방법은 파일 시스템 성능 벤치마킹 을 참고합니다. 인가된 SSH 키의 빠른 조회 # 빠른 SSH 키 조회 기능은 블록 저장소를 사용하는 GitLab 인스턴스에서도 성능을 개선할 수 있습니다. 빠른 SSH 키 조회 는 GitLab 데이터베이스를 사용해 authorized_keys ( /var/opt/gitlab/.ssh 에 있음)를 대체합니다. NFS는 지연을 늘리므로 /var/opt/gitlab 을 NFS로 옮긴다면 빠른 조회를 권장합니다. GitLab은 빠른 조회를 기본값으로 삼는 방안 을 검토하고 있습니다. NFS 서버 # nfs-kernel-server 패키지를 설치하면 GitLab 애플리케이션을 실행하는 클라이언트와 디렉터리를 공유할 수 있습니다. sudo apt-get update sudo apt-get install nfs-kernel-server 필수 기능 # 파일 잠금 : GitLab은 권고적 파일 잠금을 요구하며, 이는 NFS 버전 4 에서만 기본으로 지원됩니다. NFSv3도 Linux 커널 2.6.5 이상을 사용하면 잠금을 지원합니다. GitLab은 버전 4 사용을 권장하며 NFSv3는 별도로 테스트하지 않습니다. 권장 옵션 # NFS 내보내기를 정의할 때는 다음 옵션도 함께 추가하는 것을 권장합니다. no_root_squash - NFS는 보통 root 사용자를 nobody 로 바꿉니다. 여러 사용자가 NFS 공유에 접근할 때는 좋은 보안 조치입니다. 다만 여기서는 GitLab만 NFS 공유를 사용하므로 안전합니다. GitLab은 파일 권한을 자동으로 관리해야 하므로 no_root_squash 설정을 권장합니다. 이 설정이 없으면 Linux 패키지가 권한을 변경할 때 오류가 발생할 수 있습니다. GitLab과 함께 번들된 다른 구성 요소는 root 가 아니라 권한이 없는 사용자로 실행됩니다. no_root_squash 를 권장하는 이유는 Linux 패키지가 필요에 따라 파일의 소유권과 권한을 설정할 수 있도록 하기 위해서입니다. no_root_squash 옵션을 사용할 수 없는 일부 환경에서는 root 플래그로 같은 결과를 얻을 수 있습니다. sync - 동기 동작을 강제합니다. 기본값은 비동기이며, 특정 상황에서는 데이터가 동기화되기 전에 장애가 발생하면 데이터가 유실될 수 있습니다. LDAP와 함께 Linux 패키지를 운영하는 일이 복잡하고 LDAP 없이 ID 매핑을 유지하는 일도 복잡하므로, 대부분의 경우 시스템 간 권한 관리를 단순화하기 위해 숫자 UID와 GID를 활성화해야 합니다(일부 환