Bacula – open source backup solution

Bacula – open source backup solution

Bacula는 오픈소스 네트워크 백업 솔루션이다. BaculaSystems(Enterprise edition)은 스위스에 본사를 두고 Subscription 방식으로 상용 서비스를 제공하고 있다. 2000년 부터 첫 개발이 시작되어 2002년 소스포지에 공개된 이후로 커뮤니티 메이저버전은 홀 수 단위로, 엔터프라이즈 메이저버전은 짝수 단위로 업데이트가 이루어지고 있다. 현재 커뮤니티 버전은 7, 엔터프라이즈 버전은 8까지 출시가 된 상태이다. 이 문서에서는 Open source Bacula 설치 및 기본적인 운영에 대해 소개한다.

발췌 : http://blog.osti.kr/os/bacula-open-source-backup-solution/

1. Bacura 구성 시스템

1.1. 구성도 그림

이 그림을 통해 Bacula 시스템의 큰 흐름을 알 수 있다.
백업 솔루션을 처음 접해본 이라면 아래 그림의 구성에 대한 이해가 쉽지 않을 것이다.
이 구성을 잘 이해해야만 Bacula config 파일들을 어렵지 않게 구성 할 수 있다.

Cap 2014-08-26 14-07-30-234

1.2. Director Daemon

클라이언트들과 통신을 한다. 백업 및 복원명령을 직접 제어하며, 공식적으로 하나의 디렉터 데몬은 총 1천여대 정도의 클라이언트를 제어할 수 있다. Bacula 시스템의 핵심 데몬이며  포트번호는 9101을 사용한다.

1.3. File Daemon

Director Daemon으로부터 백업 명령이 들어왔을 시, 어떤 파일들을 백업해야하는지 대상 목록을 뽑아낸뒤 해당 파일들을 전송한다. Client 시스템에 설치되며 포트번호는 9102을 사용한다.

1.4. Storage Daemon

Director Daemon으로부터 백업 명령이 들어왔을 시, 파일데몬과 직접 접속하여 파일들이 저장되어야할 백업 장치를 제공하고, 파일을 실제로 저장하는 역할을 수행한다.  백업 데이터가 저장 될 시스템이며 포트번호는 9103을 사용한다.

2. Bacula Install

중급 규모 이하라면 한대의 시스템에 Direct Daemon, Storage Daemon과 SQL Catagory 역활까지 하게 하고, 각 클라이언트에 File Daemon을 설치하여 운영하도록 할 것이다.
이 문서에서는 오픈소스 Bacula의 각 데몬을 한 서버에 설치하고, 한 서버가 SQL Catalog(Mysql) 역활까지 All-in-One 구성으로 된 것을 소개한다.
Bacula 오픈소스 버전은 소스 및 rpm은 http://www.bacula.org 사이트를 통해 다운로드 가능하다.
또한 Bacula 엔터프라이즈 버전은 http://www.baculasystems.com/ 사이트를 통해 정보를 얻을 수 있다.

2.1. 설치 환경

♦ H/W : VMWare Workstation 10
♦ OS : CentOS 6.5 minimal x86_64

2.2. OS 설치

CentOS 6.5 minimal 은 basic 으로 설치한다.
OS 설치 후 Selinux 와 iptables 서비스는 off 시킨다.

2.3. 기반 utils 설치

GUI 기반의 Bacura Admin Tool(BAT)과 Bacula tray monitor를 설치하기 위해 x-windows를 설치하고,  기타 유틸들을 설치. CentOS를 Run Level 5로 구동

2.4. bacula 설치

Centos 6.x의 yum을 통해 설치를 하면 bacula-5.0.0-12 버전으로 설치가 된다. 참고로 현재 최신 버전은 bacula-7.0.5 버전이다.

yum을 통한 rpm 설치 후 주요 디렉토리 및  실행 파일의 위치는 아래와 같다.
– 설정 디렉토리 : /etc/bacula
– sql 관련 파일 : /usr/libexec/bacula
– 로그 및 상태 파일 : /var/spool/bacula
– 시작 스크립트 : /etc/init.d/bacula-*
– 각종 실행 파일 위치 : /usr/sbin

2.5. DB 생성

Catagory용 database로 PostgreSQL, SQLlite, Mysql을 사용할 수 있고 Bacula에서 권장하는 DB는 PostgreSQL 이다.
여기서는 Mysql을 Catagory 용도로 사용한다. Mysql 이미 설치되어 있고 데몬이 떠 있다고 전제하고 진행한다. Mysql은 yum을 통해 설치하였다.

2.6. bacula 실행

2.7. 데몬 확인

아래와 같이 3개의 포트가 LISTEN 상태야지 정상적으로 데몬이 구동중인 것이다.

만약 데몬 bacula-dir 데몬이 start 후 얼마 있지 않아서 죽거나 9101 포트가 LISTEN 상태가 아니라면 아래와 같이 디버깅을 해본다. 보통 이 문제는 mysql 권한과 관련된 문제일 가능성이 크다.

3. Bacula Config

Bacula config는 Console, Director, Storage, Client config 가 서로 유기적으로 연결되어있다.
서로의 연관성을 잘 이해하고 설정값을 맞춰져야지만 에러 없이 원하는대로 동작을 하게된다.
아래 그림을 통해 어떤 config 파일들이 서로의 이름과 비밀번호 등이  일치해야 하는지 한 눈에 확인할 수 있다.

Cap 2014-08-27 11-03-08-570

3.1. 스토리지 공간

백업된 데이터가 저장될 공간을 할당한다. – 디스크 할당에 대한 자세한 내용은 생략한다.
여기서는 /backup/pool1 으로 설정을 하였다.

3.2. bconsole.conf

Console 프로그램의 리소스를 정의하는 설정 파일이다.
bacula를 설치하게 되면 각각의 config 파일의 Password 부분이 임의의 비밀번호로 설정 되어 있다.
그런데 rpm설치 버전의 경우 임의 비밀번호를 그냥 사용하게 되면 데몬 구동시 에러가 발생을 하게 된다.
이 문서에서는 모두 mypass라는 비밀번호로 통일 하였다. 하지만 실제 사용시에는 보안을 위해 storage와 client는 서로 다르게 하고, client 별로도 다르게 정하는걸 권장한다.

3.3. bat.conf

Bacula Admin Tool(BAT)에 대한 설정이다.
KDE 데스크톱을 통한 GUI Management 유틸리티가 bacula-dir을 액세스하기 위한 설정이다.

3.4. tray-monitor.conf

KDE 데스크톱의 트레이 바에 테이프형태의 아이콘을 띄워주는 유틸리티를 위한 설정

3.5. bacula-dir.conf

Director에 필요한 자원들을 정의할 수 있는 설정 파일로서 bacula-sd.conf, bacula-fd.conf 파일들과 서로 연관성이 있으므로 잘 맞춰서 설정이 되어야 한다.
이 설정 파일이 bacula 의 핵심이다. 이 것을 통해 백업 타겟(Client), 저장 볼륨(Storage), 볼륨 정책 등의 대부분을 하게된다. 즉, Director 데몬이 중요한 역활을 한다. 나머지 데몬들과 설정 파일들은 껍데기에 불과하다.
기본 sample config 파일에는 주석처리된 많은 설명들이 곁들여져 있다. 그 부분을 모두 걷어내고 딱 필요한 설정 부분만 넣었다.

3.6. bacura-sd.conf

3.7. bacula-fd.conf

4. Bacula-WEB

Bacula-WEB은 Bacula를 웹으로 모니터링하기 위한 별도의  오픈소스 프로젝트로 PHP 기반의 웹 모니터링 툴 이다.
http://www.bacula-web.org/ 사이트를 통해 소스를 다운 받을 수 있다.

4.1. php install

php 코드 해석 및 그래프 등을 웹서버로 표현하기 위해 apache, php, php-gd 등을 설치 한다.

4.2. bacula-web 설치

4.3. config.php 수정

기본 sample config 파일에서 mysql 부분 주석을 제거한다.

4.4. php.ini 수정

bacula-web 화면 중 일부 화면에서 date 함수 호출에서 timezone을 요구하는 경우 해당 설정이 안되어있으면 에러가 발생을 한다.
따라서 아래와 같이 php.ini 파일에 한 줄을 추가한다.

4.5. httpd config 및 시작

httpd (을)를 시작 중: httpd: apr_sockaddr_info_get() failed for Bacula-system
–> 이 메시지가 나오면 bacula-web.conf 또는 httpd.confdp ServerName을 지정해 주지 않아서 그렇다.

4.6. bacula-web 접속

웹 브라우져에 http://서버IP/bacula-web 을 입력하면 아래와 같은 화면이 출력된다.
현재 상황을 표와 그래프로 한눈에 알아보기 쉽게 레포트 해주며 그래프 등을 클릭하면 자세한 내역이 출력된다.
Cap 2014-09-01 17-06-18-523

5. Bacula running

5.1. 데몬 재시작

변경된 설정 파일이 적용되도록 데몬을 재시작한다.

5.2. BAT 실행

KDE 데스크톱에서 BAT를 실행하여 Job 상황을 보거나 각종 설정을 한다.
또한 웹브라우져를 통해 Bacula-Web을 띄워 백업 현황을 살펴볼 수 있다.
아래 그림을 클릭하면 그림별로 상황 설명이 있으니 참고하도록 한다.

이상으로 bacula open source 버전에 대한 설명을 마친다. 다음 bacula 포스팅에선 bacula를 소스로 컴파일 설치하고 Director & File, Catagory 데몬용 서버, Storage 데몬 서버, 다수의 Client 를 각각 구분하여 구성하는 방법에 대해 알아보겠다.

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...