InfoGrab DocsInfoGrab Docs

Geo 페일오버 문제 해결

요약

페일오버 중이나 보조 사이트를 기본 사이트로 승격할 때 나타날 수 있는 오류 메시지와 해결 방법은 다음과 같습니다. 보조 사이트를 승격할 때 다음 오류 메시지가 나타날 수 있습니다. gitlab-rake gitlab:geo:set_secondary_as_primary 또는 gitlab-ctl promote-to-primary-node 를 실행할 때 이 메시지가 나타나면 Rails 콘솔에서 다음을 실행합니다.

페일오버 중 또는 보조 사이트를 기본 사이트로 승격할 때 발생하는 오류 수정#

페일오버 중이나 보조 사이트를 기본 사이트로 승격할 때 나타날 수 있는 오류 메시지와 해결 방법은 다음과 같습니다.

메시지: ActiveRecord::RecordInvalid: Validation failed: Name has already been taken#

보조 사이트를 승격할 때 다음 오류 메시지가 나타날 수 있습니다.

Running gitlab-rake gitlab:geo:set_secondary_as_primary...

rake aborted!
ActiveRecord::RecordInvalid: Validation failed: Name has already been taken
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/geo.rake:236:in `block (3 levels) in <top (required)>'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/geo.rake:221:in `block (2 levels) in <top (required)>'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Tasks: TOP => gitlab:geo:set_secondary_as_primary
(See full trace by running task with --trace)

You successfully promoted this node!

gitlab-rake gitlab:geo:set_secondary_as_primary 또는 gitlab-ctl promote-to-primary-node 를 실행할 때 이 메시지가 나타나면 Rails 콘솔에서 다음을 실행합니다.

Rails.application.load_tasks; nil
Gitlab::Geo.expire_cache!
Rake::Task['gitlab:geo:set_secondary_as_primary'].invoke

메시지: NoMethodError: undefined method `secondary?' for nil:NilClass#

보조 사이트를 승격할 때 다음 오류 메시지가 나타날 수 있습니다.

sudo gitlab-rake gitlab:geo:set_secondary_as_primary

rake aborted!
NoMethodError: undefined method `secondary?' for nil:NilClass
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/geo.rake:232:in `block (3 levels) in <top (required)>'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/geo.rake:221:in `block (2 levels) in <top (required)>'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Tasks: TOP => gitlab:geo:set_secondary_as_primary
(See full trace by running task with --trace)

이 명령은 보조 사이트에서만 실행하도록 만들어졌으며, 기본 사이트에서 실행하면 이 오류 메시지가 표시됩니다.

만료된 아티팩트#

어떤 이유로 Geo 보조 사이트의 아티팩트가 Geo 기본 사이트보다 많다면 Rake 태스크로 고아 아티팩트 파일을 정리할 수 있습니다

Geo 보조 사이트에서는 이 명령이 디스크의 고아 파일과 관련된 모든 Geo 레지스트리 레코드도 함께 정리합니다.

로그인 오류 수정#

메시지: The redirect URI included is not valid#

기본 사이트의 웹 인터페이스에는 로그인할 수 있으나 보조 사이트의 웹 인터페이스에 로그인할 때 이 오류 메시지가 표시된다면, 해당 Geo 사이트의 URL 이 외부 URL과 일치하는지 확인해야 합니다.

사전 요구 사항:

  • 관리자 액세스 권한.

기본 사이트에서 수행합니다.

  1. 오른쪽 위 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 Geo > Sites를 선택합니다.
  3. 문제가 발생한 보조 사이트를 찾아 Edit을 선택합니다.
  4. URL 필드가 보조 사이트 Rails 노드의 /etc/gitlab/gitlab.rb에 있는 external_url "https://gitlab.example.com" 값과 일치하는지 확인합니다.

보조 사이트에서 SAML로 인증하면 항상 기본 사이트로 이동하는 문제#

이 문제는 대개 GitLab 15.1로 업그레이드할 때 발생합니다. 이 문제를 해결하려면 Single Sign-On을 사용하는 Geo에서 인스턴스 전체 SAML 구성을 참고합니다.

부분 페일오버에서 복구#

보조 Geo 사이트로의 부분 페일오버는 일시적인 문제로 발생했을 수 있습니다. 따라서 먼저 승격 명령을 다시 실행해 봅니다.

  1. 보조 사이트의 모든 Sidekiq, PostgreSQL, Gitaly, Rails 노드에 SSH로 접속한 다음 아래 명령 중 하나를 실행합니다.

    • 보조 사이트를 기본 사이트로 승격하려면 다음을 실행합니다.

      sudo gitlab-ctl geo promote
      
    • 추가 확인 없이 보조 사이트를 기본 사이트로 승격하려면 다음을 실행합니다.

      sudo gitlab-ctl geo promote --force
      
  2. 이전에 보조 사이트에 사용하던 URL로 새로 승격된 기본 사이트에 연결되는지 확인합니다.

  3. 연결에 성공하면 보조 사이트가 기본 사이트로 승격된 것입니다.

앞의 단계로 해결되지 않으면 다음 단계를 진행합니다.

  1. 보조 사이트의 모든 Sidekiq, PostgreSQL, Gitaly, Rails 노드에 SSH로 접속한 다음 아래 작업을 수행합니다.

    • 다음 내용으로 /etc/gitlab/gitlab-cluster.json 파일을 만듭니다.

      {
        "primary": true,
        "secondary": false
      }
      
    • 변경 사항을 적용하도록 GitLab을 재구성합니다.

      sudo gitlab-ctl reconfigure
      
  2. 이전에 보조 사이트에 사용하던 URL로 새로 승격된 기본 사이트에 연결되는지 확인합니다.

  3. 연결에 성공하면 보조 사이트가 기본 사이트로 승격된 것입니다.

Geo 페일오버 문제 해결

GitLab v19.5
Tier: Premium, Ultimate
Offering: GitLab Self-Managed
원문 보기

요약

페일오버 중이나 보조 사이트를 기본 사이트로 승격할 때 나타날 수 있는 오류 메시지와 해결 방법은 다음과 같습니다. 보조 사이트를 승격할 때 다음 오류 메시지가 나타날 수 있습니다. gitlab-rake gitlab:geo:set_secondary_as_primary 또는 gitlab-ctl promote-to-primary-node 를 실행할 때 이 메시지가 나타나면 Rails 콘솔에서 다음을 실행합니다.

페일오버 중 또는 보조 사이트를 기본 사이트로 승격할 때 발생하는 오류 수정#

페일오버 중이나 보조 사이트를 기본 사이트로 승격할 때 나타날 수 있는 오류 메시지와 해결 방법은 다음과 같습니다.

메시지: ActiveRecord::RecordInvalid: Validation failed: Name has already been taken#

보조 사이트를 승격할 때 다음 오류 메시지가 나타날 수 있습니다.

Running gitlab-rake gitlab:geo:set_secondary_as_primary...

rake aborted!
ActiveRecord::RecordInvalid: Validation failed: Name has already been taken
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/geo.rake:236:in `block (3 levels) in <top (required)>'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/geo.rake:221:in `block (2 levels) in <top (required)>'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Tasks: TOP => gitlab:geo:set_secondary_as_primary
(See full trace by running task with --trace)

You successfully promoted this node!

gitlab-rake gitlab:geo:set_secondary_as_primary 또는 gitlab-ctl promote-to-primary-node 를 실행할 때 이 메시지가 나타나면 Rails 콘솔에서 다음을 실행합니다.

Rails.application.load_tasks; nil
Gitlab::Geo.expire_cache!
Rake::Task['gitlab:geo:set_secondary_as_primary'].invoke

메시지: NoMethodError: undefined method `secondary?' for nil:NilClass#

보조 사이트를 승격할 때 다음 오류 메시지가 나타날 수 있습니다.

sudo gitlab-rake gitlab:geo:set_secondary_as_primary

rake aborted!
NoMethodError: undefined method `secondary?' for nil:NilClass
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/geo.rake:232:in `block (3 levels) in <top (required)>'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/geo.rake:221:in `block (2 levels) in <top (required)>'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Tasks: TOP => gitlab:geo:set_secondary_as_primary
(See full trace by running task with --trace)

이 명령은 보조 사이트에서만 실행하도록 만들어졌으며, 기본 사이트에서 실행하면 이 오류 메시지가 표시됩니다.

만료된 아티팩트#

어떤 이유로 Geo 보조 사이트의 아티팩트가 Geo 기본 사이트보다 많다면 Rake 태스크로 고아 아티팩트 파일을 정리할 수 있습니다

Geo 보조 사이트에서는 이 명령이 디스크의 고아 파일과 관련된 모든 Geo 레지스트리 레코드도 함께 정리합니다.

로그인 오류 수정#

메시지: The redirect URI included is not valid#

기본 사이트의 웹 인터페이스에는 로그인할 수 있으나 보조 사이트의 웹 인터페이스에 로그인할 때 이 오류 메시지가 표시된다면, 해당 Geo 사이트의 URL 이 외부 URL과 일치하는지 확인해야 합니다.

사전 요구 사항:

  • 관리자 액세스 권한.

기본 사이트에서 수행합니다.

  1. 오른쪽 위 모서리에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 Geo > Sites를 선택합니다.
  3. 문제가 발생한 보조 사이트를 찾아 Edit을 선택합니다.
  4. URL 필드가 보조 사이트 Rails 노드의 /etc/gitlab/gitlab.rb에 있는 external_url "https://gitlab.example.com" 값과 일치하는지 확인합니다.

보조 사이트에서 SAML로 인증하면 항상 기본 사이트로 이동하는 문제#

이 문제는 대개 GitLab 15.1로 업그레이드할 때 발생합니다. 이 문제를 해결하려면 Single Sign-On을 사용하는 Geo에서 인스턴스 전체 SAML 구성을 참고합니다.

부분 페일오버에서 복구#

보조 Geo 사이트로의 부분 페일오버는 일시적인 문제로 발생했을 수 있습니다. 따라서 먼저 승격 명령을 다시 실행해 봅니다.

  1. 보조 사이트의 모든 Sidekiq, PostgreSQL, Gitaly, Rails 노드에 SSH로 접속한 다음 아래 명령 중 하나를 실행합니다.

    • 보조 사이트를 기본 사이트로 승격하려면 다음을 실행합니다.

      sudo gitlab-ctl geo promote
      
    • 추가 확인 없이 보조 사이트를 기본 사이트로 승격하려면 다음을 실행합니다.

      sudo gitlab-ctl geo promote --force
      
  2. 이전에 보조 사이트에 사용하던 URL로 새로 승격된 기본 사이트에 연결되는지 확인합니다.

  3. 연결에 성공하면 보조 사이트가 기본 사이트로 승격된 것입니다.

앞의 단계로 해결되지 않으면 다음 단계를 진행합니다.

  1. 보조 사이트의 모든 Sidekiq, PostgreSQL, Gitaly, Rails 노드에 SSH로 접속한 다음 아래 작업을 수행합니다.

    • 다음 내용으로 /etc/gitlab/gitlab-cluster.json 파일을 만듭니다.

      {
        "primary": true,
        "secondary": false
      }
      
    • 변경 사항을 적용하도록 GitLab을 재구성합니다.

      sudo gitlab-ctl reconfigure
      
  2. 이전에 보조 사이트에 사용하던 URL로 새로 승격된 기본 사이트에 연결되는지 확인합니다.

  3. 연결에 성공하면 보조 사이트가 기본 사이트로 승격된 것입니다.