Tải bản đầy đủ (.pdf) (21 trang)

Báo cáo đề tài công nghệ backup bacula

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.02 MB, 21 trang )

BÁO CÁO ĐỀ TÀI
Công Nghệ Backup Bacula

Người Thực Hiện:
Bùi Ngọc Tâm


2

Bacula
Mục Lục
Phần 1: Giới Thiệu Về Bacula ....................................................................... Trang 3
I. Giới thiệu phần mềm Bacula ............................................................... Trang 3
II. Các thành phần hoặc dịch vụ của Bacula........................................... Trang 3
Phần 2: Hướng Dẫn Cài Đặt Và Thiết Lập Bacula ....................................... Trang 5
A.Bacula Server ...................................................................................... Trang 5
B. Máy Client......................................................................................... Trang 9
C.Tiến Hành Backup Trên Máy Server ............................................... Trang 11
D. Tiến Hành Restore Trên Máy Client .......................................................... Trang 12

E. Quản lý bacula với Webmin ....................................................Trang 14
F. Quản Lý Bacula với Webmin .................................................................... Trang 15


3

Bacula
Phần 1: Giới Thiệu Về Bacula
I. Giới thiệu phần mềm Bacula
Bacula là một phần mềm cho phép người quản trị hệ thống quản lý việc sao
lưu, phục hồi và kiểm tra dữ liệu máy tính thông qua mạng. Bacula cũng có thể chạy


hoàn toàn trên một máy tính đơn và có thể sao lưu đến nhiều loại phương tiện, chẳng
hạn như băng từ và đĩa cứng. Về mặt kỹ thuật, nó là một network Client/Server based
backup program. Bacula tương đối dễ sử dụng và hiệu quả, trong khi cung cấp nhiều
tính năng quản lý lưu trữ tiên tiến làm cho nó dễ dàng tìm kiếm và phục hồi các tập
tin bị mất hoặc bị hỏng. Nhờ vào thiết kế modular của nó, Bacula có thể mở rộng từ
hệ thống máy tính nhỏ lẻ đến các hệ thống bao gồm hàng trăm máy tính nằm trên
một mạng lớn.
II. Các thành phần hoặc dịch vụ của Bacula
1.Bacula Director:
Dịch vụ Bacula Director là chương trình quản lý tất cả các hoạt động sao lưu,
phục hồi, thẩm tra và lưu trữ. Người quản trị hệ thống sử dụng Bacula Director để
lập lịch sao lưu và phục hồi các tập tin.
Diretor chạy như một daemon (hoặc dịch vụ) trong chế độ nền.
2.Bacula Console:
Dịch vụ Bacula Console là chương trình cho phép người quản trị hoặc người
dùng giao tiếp với Bacula Director. Hiện nay, Bacula Console có sẵn với 3 phiên
bản: giao diện text-based console, giao diện QT-based và một giao diện đồ hoạ
wxWidgets.
3.Bacula File:
Dịch vụ Bacula File (còn được gọi là chương trình Client) là phần mềm cài đặt
trên thiết bị được sao lưu. Tuỳ vào hệ điều hành mà nó chạy trên đó, Bacula File có
nghĩa vụ cung cấp các thuộc tính tập tin và dữ liệu được đòi hỏi bởi Director. Bacula
File cũng có trách nhiệm cho các phần phụ thuộc vào hệ thống tập tin cho việc khôi
phục các thuộc tính tập tin và dữ liệu trong suốt hoạt động khôi phục.


4

Bacula
4.Bacula Storage:

Dịch vụ Bacula Storage bao gồm phần mềm thực hiện lưu trữ và khôi phục các
thuộc tính tập tin và dữ liệu đến các phương tiện sao lưu vật lý hoặc các volume. Nói
cách khác, Storage daemon có trách nhiệm đọc và ghi các băng từ (hoặc các phương
tiện lưu trữ khác).
5. Catalog:
Các dịch vụ Catalog bao gồm các phần mềm chịu trách nhiệm duy trì các file
index và volume database cho tất cả các tập tin sao lưu. Catalog cho phép người quản
trị hệ thống hoặc người dùng định vị và phục hồi nhanh chóng bất kỳ tập tin nào.
Hiện nay Bacula hỗ trợ 3 loại database khác nhau: MySQL, PostgreSQL và SQLite.
6.Bacula Monitor:
Dịch vụ Bacula Monitor là chương trình cho phép người quản trị hoặc người
dùng giám sát trạng thái hiện tại của Bacula Directors, Bacula File Daemons và
Bacula Storage Daemons.

Hình 1


5

Bacula
Phần 2: Hướng dẫn cài đặt & thiết lập Bacula
A. Bacula Server
a/Mysql:
Khởi động mysql: service mysqld start
b/iptables:
thêm các cổng 9101, 9102, 9103 cho Bacula
+ iptables –I INPUT –p tcp –m tcp –dport 9101 –j ACCEPT
+ iptables –I INPUT –p tcp –m tcp –dport 9102 –j ACCEPT
+ iptables –I INPUT –p tcp –m tcp –dport 9103 –j ACCEPT
lưu thay đổi : service iptables save

khởi động iptables: service iptables start
c/ bacula
Cài đặt các gói:
+ bacula-director-mysql
+ bacula-storage-mysql
+bacula-console
+bacula-console-bat

Thiết lập databases bacula:
# /usr/libexec/bacula/create_mysql_database –p
# /usr/libexec/bacula/make_mysql_tables –p
# /usr/libexec/bacula/grant_mysql_privileges –p
Đổi password database bacula:
# mysql –u root –p
# set password for bacula=password(‘tên pass’);
# set password for bacula@localhost=password(‘tên pass’);


6

Bacula
Chuyển database sang bacula:
# select user,host,password from mysql.user;
# show databases;
#use bacula;
#exit
Thiết Lập Bacula:
1. bacula-dir.conf
# vi /etc/bacula/bacula-dir.conf
Dòng 22

Director {
Name = debian-dir
DIRport = 9101

#where we listen for UA connections

QueryFile = "/usr/libexec/bacula/query.sql"
WorkingDirectory = "/var/lib/bacula"
PidDirectory = "/var/run"
Maximum Concurrent Jobs = 1
Password = "tên pass đổi khi nãy"

#console password

Messages = Daemon
}
Dòng 94:
#list of files to be backed up
FileSet {
Name = “Full Set”
Include {
Options {
Signature = MD5
Compression = GZIP #Chức năng nén
}


7

Bacula


Dòng 110:
File = /tên thư mục chứa file cần backup
Vd: File = /data
Dòng 158:
#Client ( File Services) to backup
Client {
Name = bacula-fd
Address = 192.168.229.133

#địa chỉ IP máy client, thay đổi cho phù

hợp
FDPort = 9102
Catalog = MyCatalog
Password = “ pass đổi lúc nãy”

#password for FileDaemon

File Retention = 30 days
Job Retention = 6 months
AutoPrune = yes
}
Dòng 187:
Storage {
Name = File
#Do not use “localhost” here
Address = 192.168.229.132 #địa chỉ IP máy Server, thay đổi cho phù hợp
từng máy
SDPort = 9103

Password = “pass đổi”
Device = FileStorage
Media Type = File
}


8

Bacula
Dòng 236:
Dbname = “bacula”; dbuser = “bacula”; dbpassword = “pass đổi”
Dòng 287:
Volumes
AutoPrune = yes
Volume Retention = 180 days
Maximum Volume Jobs = 1
Label Format = Vol –
Dòng 312 đến 316: dùng # rào lại
#Console {
#

Name = bacula-mon

#

Password = “@@MON_DIR_PASSWORD”

#

CommandACL = status, .status


#}

2. make_catalog_backup.pl
#vi /usr/libexec/bacula/make_catalog_backup.pl
Dòng 108: thêm vào dòng sau:
Exec(“HOME=

‘$wd’

mysqldump

–f

–u$args{db_user}



p$args{db_password} --opt $args{db_name} > ‘$wd/$args{db_name}.sql’
“);
Khởi động bacula – dir:
#service bacula-dir start
3. Bacula-sd
# vi /etc/bacula/bacula-sd.conf
Dòng 26 :
Director{
Name = bacula-dir


9


Bacula
Password = “pass đổi”
Dòng 33 – 37: dùng # rào lại:
# Director {
#

Name = Bacula-mon

#

Password = “@@MON_SD_PASSWORD@@”

# Monitor = yes
#}
 Khởi động bacula-sd
#service bacula-sd start
4.Bconsole
#vi /etc/bacula/bconsole.conf
Director {
Name = bacula-dir
DIRport = 9101
Address = 192.168.229.132 # IP máy server
Password = ‘’pass đổi’’
}

B. Máy Client
1. Thêm cổng iptables :
Iptables –I INPUT –p tcp –m tcp - -dport 9101 –j ACCEPT
Iptables –I INPUT –p tcp –m tcp - - dport 9102 –j ACCEPT

Lưu : service iptables save
Service iptables restart
2. cài đặt bacula client:
yum –y install bacula-client bacula-console bacula-console-bat
3. configure bacuala-fd
# vi /etc/bacula/bacula-fd.conf
Dòng 15:
Director {


10

Bacula
Name = bacula-dir
Password = “pass đổi”
}
Xóa Dòng 22 – 26:
Director {
Name = bacula-mon
Password = “@@MON_FD_PASSWORD@@”
Monitor = yes
}
4.Khởi động bacula-fd:
# service bacula-fd start
#chkconfig bacula-fd on
5.configure bconsole.conf
# vi /etc/bacula/bconsole.conf
Director {
Name = 9101
Address = 192.168.229.132 #IP máy server

Password = “pass đổi’’
6.configure bat.conf
# vi /etc/bacula/bat.conf
Director {
Name = bacula-dir
DIRport = 9101
Address = 192.168.229.132 #IP Server
Password = “pass đổi”
}
7.tạo thư mục chứa file cần backup
# mkdir /data # thư mục lúc cài đặt trong FILE = /data của bacula-dir.conf
bên server


11

Bacula
8.coppy file vào thư mục cần backup
# cp </nguồn file cần backup> /data
Vd: cp /etc/init.d/* /data

C.Tiến Hành Backup Trên Máy Server
* Server:
# bconsole
Gõ “run” để chạy bacula. Làm như hình

Hình 2
kiểm tra file backup :

# ll /tmp/



12

Bacula

D.Tiến Hành Restore Trên Máy Client
Để tiến hành restore dữ liệu khi có sự cố, đầu tiên ta chạy chương trình bacula
bằng câu lệnh : “ # bconcole”
Tại nhấu nhắc *, nhập “ restore” (như hình: 3)

Hình: 3


13

Bacula
Tại mục Select item: chọn 5 : Seclect the most recent backup for a client
Làm theo hình bên dưới

Hình: 4

Hình: 5


14

Bacula
E. Backup Database
Bacula có tính năng backup catalog ( backup databases). Nhưng lại không kết nối

đến databases Client được. để khắc phục tình trạng đó, tôi sử dụng shell Script để tạo
file và lên lịch để backup database.
Máy Client
1. Tạo shell Script:
Dùng vi hay bất kì công cụ soạn thảo nào trên linux tạo ra file có nội dung:

+ file : /root/.my.cnf
Tệp này dùng để lưu trữ user, pass, protocol

[client]
user=root
password=xxxxx
protocol=tcp

+file: /usr/local/sbin/backupdbs
#!/bin/bash
BACKUPLOCATION=/var/local/mysqlbackups
mkdir -p $BACKUPLOCATION
# back up all the mysql databases, into individual files so we can later restore
# them separately if needed.
mysql --defaults-extra-file=/root/.my.cnf -B -N -e "show databases" | while
read db
do
BACKUPFILE=$BACKUPLOCATION/$db.mysql
echo "Backing up $db into $BACKUPFILE"
/usr/bin/mysqldump --defaults-extra-file=/root/.my.cnf $db > $BACKUPFILE
done


15


Bacula
tiếp đến là cấp quyền cho file vừa tạo:
chmod 500 /usr/local/sbin/backupdbs
chown root:root /usr/local/sbin/backupdbs

2. Tạo Crontab
+Khởi động crontab:
# crontab –e
+Thiết Lập thời gian:
0 3 */1 * 0 bash /usr/local/sbin/backupdbs
| | | | | \---------------------------------- Lệnh sẽ chạy khi cron job kích hoạt
| | | | \----------Ngày trong tuần (0-7)
| | | \------------ Tháng (1-12)
| | \---------------Ngày trong tháng (1-31)
| \----------------- Giờ (1-24)
\------------------- Phút (1-59)
Ý nghĩa câu lệnh trên:
Tại thời điểm 3h sáng, tất cả các tháng, trong mỗi tháng cứ 1 ngày sẽ chạy câu
lệnh một lần
Shell Script trên đã tạo ra file database. Việc còn lại là dùng bacula để backup

var/local/mysqlbackups

F. Quản

lý bacula với Webmin

1 . Cài đặt Webmin
# wget /># rpm -Uvh webmin-1.660-1.noarch.rpm

# service webmin start


16

Bacula
# chkconfig webmin on
2. Configure iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10000 -j ACCEPT
# service iptables restart
3. Truy cập webmin
http://domain-name:10000/”.
Vd: 192.168.229.138:10000
Username: root
Password: pass đăng nhập vào linux

Hình: 6


17

Bacula

Hình: 7

Director Configuration: Cấu hình Director

Hình: 8



18

Bacula
Tại đây, có thể thay đổi Tên, số lượng Jobs, thư mục lưu trữ sao lưu, cổng kết nối
đến Director….

Backup Clients:
Quản lý các Client kết nối với Director, gồm: Tên Client, địa chỉ hoặc
hostname, Hạng mục.
Tại đây ta có thể thêm, bớt các Client một cách dễ dàng.

Hình: 9
+ Thêm một Client mới:
Click vào “ Add a new backup Client” ( hình: 10)

Hình 10
Client FD name: tên Client
Bacula FD password : password truy cập Client
Hostname or IP address: địa chỉ IP máy Client
Bacula FD port: cổng kết nối, mặc định là 9102
…..
Click Create để tạo


19

Bacula

File Sets:
Thiết lập mục lưu trữ databases, thư mục chứ dữ liệu cần Backup.

Tại đây, giúp ta thêm bớt các thư mục cần backup bên máy Client.
Tương tự như thêm Client , ta chọn Add a new backup file set.

Hình: 10

Hình 11


20

Bacula
File set Name: tên file
Files and directories to backup: đường dẫn đến thư mục backup trên Client
Ví dụ: /var/spool/bacula/BackupSQL
Files and directories to skip: thư mục được loại trừ khi backup
Nhấn Create để hoàn tất.

Backup Schedules:
Mục này thiết lập thời gian biểu để backup dữ liệu.
Có 3 mức độ backup:
 Full Backup
 Differential Backup
 Incremental Backup

Hình: 13

Hình 14


21


Bacula

Backup Jobs:
quản lý các backup, restore

Hình: 15

THE END.



×