PostgreSQL 백업 도구 pgBackRest 유지보수 종료
13년간 사랑받아온 PostgreSQL의 핵심 오픈소스 백업 및 복구 솔루션인 pgBackRest의 메인테이너가 프로젝트 유지보수를 공식적으로 중단한다고 발표했습니다. 후원사인 Crunchy Data의 인수 이후 재정적 후원과 지속 가능한 일자리를 확보하지 못해 내린 어쩔 수 없는 결정입니다. 이에 따라 글로벌 PostgreSQL 커뮤니티와 실무자들은 향후 파생(Fork) 프로젝트의 등장이나 대체 솔루션 마련을 고려해야 하는 중요한 변화를 맞이하게 되었습니다.
pgBackRest: 신뢰할 수 있는 PostgreSQL 백업 및 복구
[지원 중단 공지]
TL;DR: pgBackRest는 더 이상 유지보수되지 않습니다. pgBackRest를 포크(분기)한다면 프로젝트에 새로운 이름을 사용해 주시기 바랍니다.
오랜 고민 끝에, 저는 pgBackRest에 대한 작업을 중단하기로 결정했습니다. 이 결정을 가볍게 내린 것은 아닙니다. pgBackRest는 지난 13년간 저의 열정이 담긴 프로젝트였고, 그 기간 중 상당 부분 기업의 후원을 받을 수 있어 운이 좋았습니다. 또한 수많은 기여자들의 도움과 함께, 밤낮없이 주말을 반납하며 오늘날의 pgBackRest를 만들어 왔습니다. 모든 오픈소스 개발자는 제가 무슨 말을 하는지, 특별한 프로젝트에 인생의 얼마나 많은 시간을 바쳐야 하는지 잘 알 것입니다.
Crunchy Data가 매각된 이후, 저는 pgBackRest를 계속 유지보수하면서 이 작업을 이어갈 수 있는 직장을 찾았지만 지금까지 성공하지 못했습니다. 마찬가지로 프로젝트를 지속 가능하게 만들기 위한 후원금 확보 노력도 필요한 수준에 한참 미치지 못했습니다. 다른 모든 사람들과 마찬가지로 저 역시 생계를 유지해야 하며, pgBackRest와 관련된 직무는 매우 제한적입니다. 이제 저는 더 다양한 기회를 고려할 수 있지만, 그러한 일들은 저에게 pgBackRest 작업에 할애할 시간을 주지 않을 것입니다. 이 프로젝트는 유지보수, 버그 수정, PR(Pull Request) 리뷰, 이슈 답변 등을 위해 꽤 많은 시간을 요구합니다. 그것은 제가 정말 좋아하는 새로운 기능을 작성할 시간은 고사하고 말입니다.
어설프게 또는 간헐적으로 작업하는 것보다는, 확실하게 중단하는 것이 더 합리적이라고 생각합니다. 아마도 언젠가 pgBackRest는 포크될 것이지만, 그것은 새로운 메인테이너들에 의한 새로운 프로젝트가 될 것이며, 그들 역시 우리가 그랬던 것처럼 커뮤니티의 신뢰를 쌓아야 할 것입니다.
다시 한번 지난 세월 동안 pgBackRest에 기여해 주신 모든 분들께 깊이 감사드립니다. 여러분과 함께 일할 수 있어 정말 즐거웠습니다!
[소개]
pgBackRest는 가장 큰 규모의 데이터베이스와 워크로드까지 원활하게 확장되는 신뢰할 수 있는 PostgreSQL 백업 및 복구 솔루션입니다. 현재 안정 버전은 pgBackRest v2.58.0입니다. 릴리스 노트는 Releases 페이지에서 확인할 수 있습니다.
[주요 기능]
병렬 백업 및 복원 압축은 일반적으로 백업 작업 중 병목 현상을 일으키므로, pgBackRest는 병렬 처리와 lz4, zstd와 같은 보다 효율적인 압축 알고리즘을 통해 이 문제를 해결합니다.
로컬 및 원격 작업 사용자 정의 프로토콜을 통해 최소한의 설정으로 TLS/SSH를 통해 로컬 또는 원격으로 백업, 복원 및 아카이브를 수행할 수 있습니다. 또한 프로토콜 계층을 통해 PostgreSQL을 쿼리하는 인터페이스가 제공되므로 PostgreSQL에 대한 원격 액세스가 필요하지 않아 보안이 강화됩니다.
다중 저장소(Repository) 지원 여러 저장소를 지원하여, 예를 들어 빠른 복원을 위해 보존 기간이 짧은 로컬 저장소와 중복성 및 기업 전체의 액세스를 위해 보존 기간이 긴 원격 저장소를 함께 사용할 수 있습니다.
전체, 차등 및 증분 백업 (파일 또는 블록 수준) 전체(Full), 차등(Differential) 및 증분(Incremental) 백업을 지원합니다. pgBackRest는 rsync의 시간 해상도 문제에 영향을 받지 않으므로, 각 파일의 체크섬을 요구하지 않고도 차등 및 증분 백업을 안전하게 수행할 수 있습니다. 블록 수준의 백업은 변경된 파일의 일부만 복사하여 공간을 절약합니다.
백업 로테이션 및 아카이브 만료 전체 및 차등 백업에 대한 보존 정책을 설정하여 모든 기간을 아우르는 백업 커버리지를 만들 수 있습니다. WAL 아카이브는 모든 백업에 대해 유지 관리되거나 엄격하게 가장 최근 백업에만 유지 관리될 수 있습니다. 후자의 경우 이전 백업을 일관되게 만드는 데 필요한 WAL만 아카이브에 유지됩니다.
백업 무결성 백업 내의 모든 파일에 대해 체크섬이 계산되며, 복원 또는 검증(verify) 중에 다시 확인됩니다. 백업이 파일 복사를 마치면 백업의 일관성을 유지하는 데 필요한 모든 WAL 세그먼트가 저장소에 도달할 때까지 기다립니다. 저장소의 백업은 표준 PostgreSQL 클러스터(테이블스페이스 포함)와 동일한 형식으로 저장될 수 있습니다. 압축을 비활성화하고 하드 링크를 활성화하면 저장소에서 백업을 스냅샷으로 찍고 스냅샷에서 직접 PostgreSQL 클러스터를 띄울 수 있습니다. 이는 테라바이트급 데이터베이스에 매우 유리합니다.