Galera를 사용하여 안정적인 Nextcloud 클러스터를 구축하세요

먼저 데이터베이스 클러스터를 구축한 다음, 상태 점검이 가능한 로드 밸런서 뒤에 동일한 Nextcloud 애플리케이션 노드를 여러 개 배치하십시오. 안정적인 설정을 위해서는 모든 애플리케이션 노드가 동일한 영구 파일 스토리지, 구성, Redis 또는 Valkey 잠금 서비스, 그리고 쓰기 작업을 정상적인 Galera 멤버로만 라우팅하는 데이터베이스 엔드포인트를 사용해야 합니다. Nextcloud의 최신 관리 설명서에는 MariaDB가 지원되는 데이터베이스로 명시되어 있지만, Galera 전용 배포 방법은 제공하지 않습니다. 프로덕션 환경에 배포하기 전에 Nextcloud, MariaDB, Galera 및 프록시의 정확한 버전을 각 공급업체에 확인하십시오.

2026년 10월 9일 기준, Nextcloud 35 시스템 요구 사항 페이지에는 MariaDB 10.11, 11.4, 11.8 및 12.3 버전이 나열되어 있으며, 12.3 버전이 권장 버전으로 표시되어 있습니다. 이는 Nextcloud 데이터베이스 버전 목록일 뿐이며, 모든 Galera 또는 프록시 조합이 인증되었다는 것을 보장하는 것은 아닙니다. Nextcloud 35 시스템 요구 사항 과 사용 중인 MariaDB 배포판의 Galera 지원 매트릭스를 먼저 확인하십시오.

1. 실패 경계를 정의합니다.

고가용성 클러스터는 단순히 복제된 데이터베이스 이상의 기능을 제공합니다. Galera는 데이터베이스 계층을 보호하지만, Nextcloud의 사용자 파일, PHP 세션, Redis 잠금 또는 애플리케이션 코드는 복제하지 않습니다. 또한 단일 공유 데이터베이스는 스토리지 마운트 실패나 로드 밸런서가 고장난 애플리케이션 노드로 트래픽을 계속 전송하는 상황을 보완할 수 없습니다.

설치하기 전에 다음 구성 요소를 계획하십시오.

  • 최소 두 개의 애플리케이션 서버가 동일한 Nextcloud 릴리스, PHP 버전, 활성화된 애플리케이션 및 웹 구성을 실행해야 합니다.
  • 안정적인 공용 호스트 이름, HTTPS, 그리고 애플리케이션 서버에 대한 상태 확인 기능을 갖춘 로드 밸런서 또는 리버스 프록시.
  • Nextcloud 데이터 저장소는 모든 앱 서버에서 동일한 경로와 올바른 권한으로 접근할 수 있는 공유형 영구 저장소입니다. Nextcloud 데이터 디렉터리는 설치 중에 설정해야 하며, 설치 안내 에서 나중에 이동하는 것은 어렵다고 경고합니다.
  • Galera 클러스터는 일반적으로 3개의 홀수 개의 투표 데이터베이스 노드로 구성되며, 하나의 호스트 장애가 발생하더라도 과반수 노드가 제거되지 않도록 배치됩니다.
  • 분산 캐싱 및 트랜잭션 파일 잠금을 위한 공유 Redis 또는 Valkey 서비스.

자체적인 이중화 및 검증된 복구 기능을 갖춘 스토리지 및 네트워크 설계를 선택하십시오. 여러 웹 서버가 공유 경로를 마운트할 수 있다고 해서 자동으로 고가용성이 보장되는 것은 아닙니다.

2. 먼저 MariaDB Galera를 설치하고 유효성을 검사하십시오.

Nextcloud의 현재 요구 사항을 충족하는 MariaDB 릴리스와 MariaDB 공급업체에서 지원하는 해당 Galera 패키지를 선택하십시오. 노드 구성, 네트워크 포트, 상태 스냅샷 전송, TLS 및 초기 부트스트랩에 대해서는 MariaDB Galera 배포 문서를 참조하십시오 . 모든 빈 노드를 새 클러스터로 시작하지 마십시오. 먼저 하나의 노드를 부트스트랩한 다음 나머지 노드를 해당 클러스터에 추가하십시오.

Nextcloud는 InnoDB와 READ-COMMITTEDMySQL 또는 MariaDB에 적합한 트랜잭션 격리 수준을 요구합니다. 현재 Nextcloud 데이터베이스 페이지에서는 행 기반 바이너리 로깅을 권장합니다. 트래픽을 수신하는 노드뿐만 아니라 모든 데이터베이스 노드에서 해당 값을 확인하십시오. Nextcloud의 MariaDB 구성 요구 사항을 참조하십시오 .

Nextcloud에 연결하기 전에 각 노드에서 클러스터 상태를 확인하십시오. 예를 들어, `cluster status` SHOW GLOBAL STATUS LIKE 'wsrep_cluster_status';및 ` cluster status` 명령을 실행하십시오 SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';. 클러스터는 Primary구성 요소, 예상 클러스터 크기 및 현재 Synced상태의 노드 수를 보고해야 합니다. MariaDB에 따르면 쿼럼은 클러스터의 마지막 알려진 구성원의 절반 이상을 필요로 합니다. 따라서 3개 노드로 구성된 클러스터는 1개의 노드 손실은 허용할 수 있지만 2개의 노드 손실은 허용할 수 없습니다. MariaDB의 쿼럼 및 복구 지침을 검토하십시오 .

3. Nextcloud에 상태를 인식하는 데이터베이스 엔드포인트를 제공합니다.

Nextcloud가 Galera IP 주소의 라운드 로빈 목록이 아닌 안정적인 데이터베이스 프록시 주소에 연결되도록 구성하십시오. Galera는 클러스터 전체에 쓰기 작업을 복제하지만 애플리케이션은 여전히 ​​예측 가능한 트랜잭션 처리가 필요합니다. Galera 멤버십을 모니터링하는 프록시는 사용 불가능하거나 동기화되지 않은 노드로의 라우팅을 중지하고 쓰기 노드를 선택할 수 있습니다. MariaDB MaxScale의 Galera Monitor 는 이러한 옵션 중 하나이며, 정확한 동작 및 지원되는 라우팅 모드는 MaxScale 버전 및 구성에 따라 다릅니다.

Nextcloud의 연결 엔드포인트로 프록시의 공식 연결 엔드포인트를 사용하십시오 dbhost. 모니터링 및 애플리케이션 액세스를 위해 최소 권한 계정을 별도로 생성하고, 자격 증명을 보호하며, 신뢰할 수 없는 네트워크를 통과할 때 데이터베이스 트래픽을 암호화하십시오. 성능 향상을 위한 지름길로 읽기/쓰기 분할을 활성화하지 마십시오. Nextcloud 자체 복제 기능은 읽기 작업은 복제본으로 보내고 쓰기 및 인과적 읽기 작업은 기본 연결을 유지하지만, Galera는 일반적인 비동기 복제 방식과는 다릅니다. 사용 중인 스택에 맞게 특별히 테스트된 라우팅 설계를 사용하십시오.

4. 모든 앱 노드가 동일한 Nextcloud 인스턴스를 볼 수 있도록 합니다.

각 애플리케이션 서버에 동일한 Nextcloud 코드와 애플리케이션 세트를 설치하십시오. config.php공유 인스턴스의 각 노드에 대해 데이터베이스 엔드포인트, 비밀 값, 신뢰 도메인 및 데이터 디렉터리 경로를 포함한 모든 설정을 일관되게 유지하십시오. 여러 노드에서 개별적으로 업그레이드를 실행하지 마십시오. 먼저 백업을 수행하고 인스턴스를 유지 관리 모드로 전환한 다음, 하나의 제어된 경로를 통해 업그레이드하고 모든 노드에서 동일한 버전이 실행된 후에만 트래픽을 다시 허용하십시오.

분산 캐시 및 잠금을 위해 모든 앱 노드가 동일한 Redis 또는 Valkey 서비스를 사용하도록 구성하십시오. APCu와 같은 로컬 캐시는 노드 로컬로 유지될 수 있지만, 각 서버의 캐시가 아닌 공통 서비스를 가리켜야 합니다 memcache.distributed. 예를 들어, Nextcloud의 Redis 구성은 구성 에서 공유 Redis 호스트를 사용할 수 있습니다 . 최신 캐시 구성 가이드 및 트랜잭션 파일 잠금 가이드를 참조하십시오 . Memcached는 Nextcloud 트랜잭션 파일 잠금에 적합하지 않습니다.memcache.lockinglocalhost'memcache.locking' => '\OC\Memcache\Redis'redis

PHP 세션을 Redis에 중앙 집중화하는 경우, 이는 별도의 PHP 구성 작업으로 처리해야 합니다. Nextcloud 설명서에서는 Redis 세션 핸들러에 대해 세션 잠금이 기본적으로 활성화되어 있지 않으므로, 잠금 설정을 적용하고 세션 동작을 테스트한 후에 사용해야 한다고 경고합니다. 데이터베이스 복제 또는 파일 잠금을 세션 연속성과 혼동하지 마십시오.

5. 고가용성이라고 부르기 전에 장애 조치 기능을 테스트하십시오.

먼저 공개 호스트 이름을 통해 정상적인 사용을 확인합니다. 로그인하고 테스트 파일을 업로드 및 다운로드한 후, 요청이 다른 애플리케이션 노드에 도달한 후 해당 파일이 표시되는지 확인합니다. 그런 다음 웹 노드 하나를 비활성화하고 다른 노드를 통해 요청이 계속 진행되는지 확인합니다. 노드를 복원하고 오래된 코드나 구성 버전을 제공하지 않고 정상적으로 다시 연결되는지 확인합니다.

다음으로, 유지 관리 기간을 활용하여 공급업체의 실행 지침에 따라 데이터베이스 노드 장애를 시뮬레이션합니다. 프록시가 장애가 발생했거나 동기화되지 않은 멤버를 제거하고, Nextcloud가 여전히 읽기 및 쓰기 작업을 수행할 수 있으며, 복구된 노드가 Synced트래픽을 수락하기 전에 정상 작동하는지 확인합니다. Galera 기본 상태, 클러스터 크기, 노드 동기화, 프록시 상태, 애플리케이션 오류 및 스토리지 마운트 상태를 모니터링합니다.

쿼럼 손실은 안전 정지 조치일 뿐, 데이터 손실을 의미하는 것은 아닙니다. 여러 노드를 강제로 부트스트랩하거나 임의로 노드를 선택하지 마십시오. MariaDB 복구 가이드에서는 가장 진행 상황이 많은 노드를 식별하고 해당 노드만 부트스트랩한 다음 나머지 노드를 다시 연결하라고 안내합니다. 데이터베이스 및 파일 스토리지 백업도 테스트했는지 확인하십시오. Galera 복제는 데이터베이스 변경 사항을 미러링하며 특정 시점의 백업을 대체하지 않습니다.

결과를 ​​확인하세요

애플리케이션 노드 하나와 데이터베이스 노드 하나를 제거해도 정상적인 파일 작업이 중단되지 않고, 나머지 Galera 노드들이 모두 기본 구성 요소에 남아 있으며, 공유 파일 저장소와 Redis 또는 Valkey 서비스에 계속 접근할 수 있는 경우에만 프로덕션 환경으로 전환할 준비가 된 것입니다. 테스트에 실패하면 타임아웃 또는 재시도 설정을 변경하기 전에 어떤 계층에서 요청 처리가 중단되었는지 확인해야 합니다. Nextcloud 설명서에는 지원되는 데이터베이스 및 애플리케이션 설정이 나와 있으며, 공급업체 호환성 매트릭스와 장애 조치 테스트를 통해 특정 Galera 배포 환경이 지원되는지 여부를 판단할 수 있습니다.

댓글 남기기

예약 대기열을 사용하여 Nextcloud 미리보기의 CPU 사용량 급증을 제어하세요

썸네일 작업을 제어된 백그라운드 일정으로 이동하고, 사용하지 않는 미리보기 크기를 줄이고, Nextcloud 서버에 과부하를 주지 않고 대기열을 검증하세요.

Nextcloud 데스크톱 동기화, "파일 처리 중" 문제 해결

Nextcloud 동기화를 방해하는 파일, 제외 규칙, 연결 문제 또는 클라이언트 데이터베이스 상태를 찾은 다음 업로드 및 다운로드가 안전하게 진행되는지 확인하십시오.

Nextcloud OPcache 경고를 해결하려면 적정 한도를 조정하세요.

Nextcloud 경고를 유발하는 PHP OPcache 제한을 찾아 올바른 웹 PHP 구성을 업데이트하고 안전하게 재시작한 후 결과를 확인하십시오.

Nextcloud를 CODE Docker에 연결하기: 설정 및 장단점

Nextcloud를 CODE Docker에 연결하기: 설정 및 장단점

내장 CODE와 Docker 기반 CODE를 비교한 다음, 안전한 HTTPS 역방향 프록시를 통해 Collabora Online을 Nextcloud에 연결합니다.

Galera를 사용하여 안정적인 Nextcloud 클러스터를 구축하세요

공유 스토리지, Redis 잠금, 쿼럼 인식 MariaDB 라우팅 및 실용적인 장애 조치 점검을 ​​통해 안정적인 Nextcloud 고가용성(HA) 배포를 계획하십시오.

직접 미디어 연결이 실패할 경우 Nextcloud Talk 통화를 연결하세요

직접 미디어 연결이 실패할 경우 Nextcloud Talk 통화를 연결하세요

방화벽이나 제한적인 NAT로 인해 직접 통화 매체가 차단되는 경우, Nextcloud Talk에 연결 가능한 TURN 릴레이를 구성하고 확인하십시오.

올바른 파일을 복원하여 Nextcloud 무결성 경고를 해결하세요

잘못된 파일 보고서를 사용하여 변경되었거나 누락되었거나 추가된 Nextcloud 코드를 식별하고, 신뢰할 수 있는 파일을 안전하게 복원하고, 결과를 확인할 수 있습니다.

OAuth2를 사용하여 Gmail 또는 Microsoft 365를 Nextcloud 메일에 연결합니다.

Gmail 또는 Microsoft 365를 사용하여 Nextcloud 메일에 대한 OAuth2를 설정하고, 수신 및 발신을 확인하고, 일반적인 동의 및 SMTP 오류를 해결합니다.

OCC를 사용하여 Nextcloud 유지 관리 모드 오류를 안전하게 해결하세요

OCC를 사용하여 Nextcloud 유지 관리 모드 오류를 안전하게 해결하세요

OCC를 사용하여 Nextcloud 액세스를 복원하고, 데이터베이스 마이그레이션 상태를 확인하고, 아카이브, Docker 또는 Snap 설치에 적합한 명령을 선택하십시오.

Nextcloud LDAP 및 Active Directory 로그인 설정

Nextcloud를 LDAP 또는 Active Directory에 연결하고, 사용자 및 그룹 필터를 사용하여 액세스를 제한하고, 배포 전에 보안 인증을 확인하십시오.