더북(TheBook)

바쿨라는 어떤 도구인가요?

시스템 관리자의 가장 중요한 업무 중 하나는 시스템에 저장된 자료를 안전하게 보관하는 일, 백업Backup입니다. 전통적으로 리눅스는 백업을 위한 다양한 도구를 제공했습니다. 실제로 오픈 소스로 개발된 프로그램부터 상용 제품까지 다양한 백업 솔루션이 존재합니다. 예전에는 rsync와 같은 리눅스 기본 명령을 응용해서 관리자가 직접 스크립트를 작성해서 백업에 사용했습니다. 하지만, 규모가 큰 네트워크에서는 이런 백업 방법이 한계가 있기 마련이므로 전문 백업 도구를 이용해서 관리하는 편이 바람직합니다.

바쿨라Bacula는 다양한 운영체제를 지원하는 오픈 소스 네트워크 백업 도구입니다. 상용 백업 도구에 뒤지지 않는 기능으로 많은 인기를 누리고 있습니다. 약간 유치한 감은 없지 않지만 바쿨라라는 이름은 백업Backup과 드라큘라Dracula를 합해서 만들어졌습니다. 밤에 몰래 와서 피를 빨아먹는 드라큘라처럼 시스템 관리자가 신경 쓰지 않더라도 자동으로 스케줄에 따라 백업 대상 파일을 저장한다는 의미라고 합니다. 나름대로 일리가 있습니다.

그림 12-1 Backup+Dracula를 뜻하는 바쿨라 로고

바쿨라는 디렉터Director와 스토리지Storage, 파일 데몬Filedaemon이라는 구성 요소로 나뉘어 동작합니다. 각 구성 요소는 상황에 따라 시스템 하나에 모두 들어 있을 수 있고 다른 시스템에서 운영될 수도 있습니다. 그림 12-2를 봅시다.

그림 12-2 바쿨라의 구성 요소

디렉터(Director): 백업, 복구 작업을 제어합니다.

스토리지(Storage): 백업 매체를 관리합니다. 디렉터에서 백업 요청을 받으면 파일을 저장할 백업 장치를 안내하고 백업을 처리합니다.

파일 데몬(File daemon): 백업 클라이언트로 백업할 대상을 목록을 디렉터에 전송합니다.

디렉터는 백업, 복구 작업을 중앙 집중 형태로 제어합니다. 디렉터가 스토리지와 파일 데몬과 유기적으로 통신하는 형태로 동작하기 때문에 시스템 관리자의 노력을 최소로 하여 네트워크에 존재하는 여러 시스템의 백업 작업이 가능합니다. 모듈화된 동작 방식 때문에 각 구성 요소에 대한 이해가 부족한 처음에는 설정 과정이 다소 복잡하게 느껴질 수 있습니다. 하지만, 익숙해지면 전혀 어렵지 않을 것입니다.

디렉터와 스토리지, 파일 데몬, 여기에 데이터베이스가 추가로 필요합니다. 바쿨라는 작업 대상 파일 목록을 데이터베이스로 관리하기 때문입니다. 데이터베이스를 이용해서 관리하는 파일 목록 정보를 카탈로그Catalog라고 합니다. 파일 목록 관리를 운영체제에 맡기는 대신 데이터베이스를 사용함으로서 편리한 파일 관리와 빠르고 효율적인 복구가 가능합니다.

Tip

바쿨라가 지원하는 데이터베이스는 MySQL, PostgreSQL, SQLite입니다. 이 책에서는 MySQL을 이용해서 카탈로그를 관리합니다.

파일 목록 정보인 카탈로그는 데이터베이스에서 별도로 관리하지만, 실제 백업한 파일은 백업 테이프 또는 일반적인 파일 형태로 저장됩니다. 백업한 파일은 하나로 합쳐 볼륨Volume이라는 파일로 저장됩니다. 볼륨에는 백업한 날짜와 시간, 백업한 파일에 대한 정보, 볼륨 크기와 같은 카탈로그 정보도 함께 저장됩니다.

Pool은 볼륨을 모아 놓은 그룹입니다. 풀 단위로 백업을 함으로서 바쿨라는 백업할 대상의 크기가 할당한 볼륨의 크기를 넘어도 자동으로 다음 볼륨을 찾아 저장할 수 있습니다 (동시에 가장 오래된 볼륨부터 차례로 삭제해서 저장 장치 용량 초과를 방지합니다). 백업 전에 파일을 저장할 볼륨의 이름을 정하고 풀에 새로운 볼륨을 추가해야 하는데, 이 과정을 레이블label이라고 합니다.

Tip

원래 볼륨은 대상 파일을 저장한 백업 테이프를 의미합니다. 바쿨라는 볼륨, 풀, 레이블과 같은 전통적인 백업 시스템의 개념을 그대로 사용하기 때문에 몇몇 용어가 이해하기 어려울지도 모릅니다.

rsync와 같은 도구를 이용해서 파일을 그대로 복사하는 대신 그림 12-3처럼 풀/볼륨으로 자료를 저장한다면 좀 더 유연한 백업이 가능해집니다(물론 매번 백업할 때마다 풀을 생성하고 볼륨을 추가하는 일이 조금 귀찮을 수는 있습니다). 관리자가 백업 주기를 정해서 볼륨에 주기적으로 파일을 백업하고, 만약 용량을 초과할 때는 오래된 볼륨부터 자동으로 삭제한다면 저장 공간을 효율적으로 유지할 수 있을 것입니다.

그림 12-3 풀과 볼륨의 개념
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.