많은 서버를 운영하다보면 백업이 신경쓰이게 마련이다.
보통은 상용 프로그램을 구입해서 쓰거나 os에서 제공하는 여러가지 프로그램(rsync, mirrordir 등)을 활용해서 백업을 할것이다.
체계적이고 자동화된 백업이라는 면에서는 상용 프로그램이 좋겠지만 비용이 그만큼 상승하게 된다.
대안으로 국내에서는 Amanda가 알려져 있지만 여기서는 Bacula에 대해 알아본다.
몇년전에 Bacula를 알게되었지만 국내에서는 별로 알려지지 않은것 같아서 이 글을 쓴다.
Bacula와 다른 백업 솔루션의 비교표를 보면 Bacula가 최고의 상용 솔루션에 비해 기능이 뒤지지 않음을 알 수 있다.
기능면에서 보면 Amanda가 더 좋아 보이긴 하지만 Amanda와 Bacula는 큰 차이점이 있다.
Amanda는 dump, tar 같은 시스템 유틸리티를 사용하지만 Bacula는 전용 포맷으로 백업된다.
Windows의 경우 Amanda는 Samba를 이용하지만 Bacula는 Windows에 전용 서비스가 설치되어 데이터가 전송된다.
게다가 자동으로 VSS(Volume Shadow Copy Service)를 이용해서 열려있는 파일까지 백업할 수 있다.
Bacula의 또 다른 특징을 보면 데이터베이스를 이용한 카탈로그를 들 수 있다.
데이터베이스를 이용해 백업되는 파일과 볼륨 정보들을 저장해서 빠르게 검색, 복원할 수 있다.
유닉스 쉘에서 디렉토리를 이동하는것과 비슷하게 백업된 파일들을 볼 수 있다.
현재 MySQL, PostgreSQL, SQLite 3가지의 데이터베이스를 지원한다.
내가 Bacula에서 가장 맘에 드는건 각각의 구성요소가 규모에 따라 확장 가능하다는 점이다.
모든 구성요소가 1대의 머신에서 작동가능하고 필요에 따라 분리 및 확장이 가능하다.
![]()
위 그림에서는 6대의 머신에서 동작하고 있다. Bacula를 사용하려면 우선 이 그림을 완벽하게 이해해야 한다.
각각의 구성요소를 살펴보면 다음과 같다.
- Bacula Director
백업, 복원등의 작업을 총괄하는 서비스이다. 백업 스케쥴을 관리한다. 관리자는 Console를 이용해서 Director에 접속해서 작업을 한다. - Bacula Console
실질적으로 관리자가 명령어를 입력할 수 있는 콘솔이다. Director에 접속해야 명령을 수행할 수 있다. - Bacula File
백업해야 할 머신에 설치되는 서비스이다. Director에서 명령을 받아서 파일을 Storage에 전송하거나 Storage로부터 받는다. 덕분에 파일 복원시 Storage에서 직접 File의 특정 위치로 복원된 파일들을 전송한다. 게다가 복원시 설정에 따라 원래 파일이 있는 머신이 아닌 다른 머신으로 파일을 전송할 수도 있다. - Bacula Storage
실제 백업 파일이 저장되는 스토리지 머신에 설치되는 서비스이다. Director의 명령을 받아서 File로부터 파일을 받거나 File에 전송한다. - Catalog
백업되는 파일들의 정보가 저장되는 데이터베이스 머신에 설치되는 서비스이다. Catalog가 손상되었을 경우 백업 파일에 직접 접근할 수 있는 유틸리티를 사용하면 된다. 중요한 정보이기 때문에 별도로 Catalog를 자동 백업이 되도록 한는게 좋다. 기본으로 설정파일에 Catalog 백업 부분이 있다. - Bacula Monitor
여러 서비스들의 상태를 알 수 있는 GUI 프로그램이다.
실제 운영되고 있는 사이트의 데이터를 보면 수십 테라바이트를 백업하는데 이용하는곳도 있다.
하지만 이런 장점에도 불구하고 한글로 된 문서가 전무하고 일반적인 백업과는 개념적으로 많은 차이가 있어서 처음 접하는 사람에게는 진입 장벽이 큰게 흠이다. 조만간에 한글로 된 간단한 매뉴얼이라도 작성해봐야겠다.
영문으로 된 자세한 매뉴얼은 아래 사이트를 보면 된다.
http://bacula.org/en/rel-manual/index.html
http://wiki.bacula.org/doku.php

오옷.. 여기 mk 블로그잖아!!
ㅎㅎ 무료 백업 솔루션 찾다가 여기로 옴 +_+
잘 지내죠?
늦었지만 대학교 입학 축하해요=
;;;헛.. 다콘님.. 죄송;; ㅋㅋㅋ mk껀줄 알았음