새 서버로 rsync를 수행할 때 --numeric-ids 옵션이 100% 필수라는 점을 다시 한번 강조하고 싶습니다. 이 옵션을 사용하지 않으면 rsync는 두 호스트 간에 사용자 이름을 일치시키려 시도하게 되며, 이는 Docker 내부의 파일 소유권을 변경시킵니다. 그 결과, 수백만 개의 오류 메시지 속에서 첫 번째 실패 원인을 찾게 되는데, 그 원인은 Postgres가 자신이 소유해야 한다고 생각하는 파일의 소유권을 더 이상 가지고 있지 않아 시작을 거부한 것입니다. 하지만 그 이후에도 수많은 혼란이 뒤따릅니다(Redis가 이미 리스닝 중인 TCP 포트를 다시 바인드하려 시도하는 것, 개와 고양이가 함께 사는 것처럼 엉망이 되는 등) 하여 문제를 진단하기 어렵게 만듭니다.
또한, Discourse가 실제로 만든 백업이 Discourse에 의해 완전히 제어되는 Docker 컨테이너 내에서 실행되어야 함에도 불구하고 정상적으로 작동하지 않을 수 있으며, 실제로 수년 전부터, 이러한 실패 사례가 보고되었음에도 불구하고 아직까지 해결되지 않은 것 같다는 사실은 정말 무서운 일입니다. 그래서 저는 새 하드웨어로 이식하기 위해 rsync를 사용했습니다. Rsync는 작업을 성공적으로 완료했고, 지금은 시간당 스냅샷이 생성되는 미러링된 ZFS 파일시스템에 저장되어 있으며, 매일 원격 백업이 이루어지고 있어 매우 좋습니다. 하지만 재앙 상황에서 Discourse의 자동 백업이 자신을 구해줄 것이라고 믿고 있는 모든 관리자들을 위해 저는 여전히 우려를 표합니다. 그들은 나중에 백업을 사용하려고 할 때 손상된 SQL 인덱스와 어떤 플러그인을 실행 중이었는지에 대해 고개를 갸웃거리게 될 테니까요.