ICT-BACULA

การใช้งาน Bacula สำหรับเป็น Centralized Backup System ปี2008

อันนี้ได้ Server มาเครื่องหนึ่ง พร้อมกับ Tape Library 26 Slots

เป็นการติดตั้ง Backup Serverที่เป็น Linux ต่อมาคือการติดตั้งClient ที่ประกอบด้วย 2 ส่วนคือ Client ที่เป็น Windows และ Linux รวมถึงการแก้ปัญหาเบื้องต้น และส่วนสุดท้ายจะเป็นการใช้งาน Bacula ผ่าน bat Client GUI และ การใช้งาน Bacula ผ่าน Web Interface (Webacula และ Bweb)

1. วิธีการติดตั้ง Backup Server

ตัว Server จะต้องเป็น Linux หรือ Unix System ในที่นี้ใช้ Red Hat 5 Ent. วิธีการ Install Server สำหรับทำงานระบบสำรองข้อมูล โดยใช้ Bacula Version 2.2.0 อย่างไรก็ตาม วิธีการ Install ของ Version อื่นๆ ใช้วิธีการและคำสั่งเดียวกัน

install OS RHas4u4 with mysql & GNOME Software Deverlopment

start serivce mysql

install qt4 และ qwt

$ mv depkgs-qt bacula-2.2.0

$ cd bacula-2.2.0/depkgs-qt

$ make qt4

(answer yes)

$ make qwt

$./qt4-paths

install bacula server

$ CFLAGS="-g -Wall" ./configure \

--prefix=/usr \

--sbindir=/usr/sbin \

--sysconfdir=/etc/bacula \

--with-scriptdir=/etc/bacula \

--enable-smartalloc \

--enable-bat \

--with-qwt=/root/bacula-2.4.0/depkgs/qwt-6.0.2 \

--with-mysql \

--with-working-dir=/var/bacula \

--with-pid-dir=/var/run \

--enable-gnome \

--enable-readline \

--enable-conio \

--with-dump-email=itxxx@mahidol.ac.th \

--with-job-email=itxxx@mahidol.ac.th \

--with-smtp-host=localhost

$ make

$ make install

$ make install-autostart automatically started and stopped when your system is booted/

2. วิธีการติดตั้ง Backup Client

ประกอบด้วย 2 ส่วนคือ Client ที่เป็น Windows และ Linux

Windows Client

Bacula รองรับ Client ที่เป็น Windows 32bit และ 64bit ในทุกๆ Version ในที่นี้ใช้ เป็น Windows Server 2003 R2 และ Bacula for Windows version 2.4.0 32bits

แก้ไข configuration file ของ Bacula client

ตั้งค่า Director Name ของ bacula server และ password สำหรับ connect และ Password ต้องเหมือนกับ password ของ Restricted Director

ตั้งค่า director messages

Start the Bacula File Service

ตั้งค่าที่ director ของ Bacula server

สร้าง client ที่ bacula-dir.conf file ใน Bacula-server

สรวจสอบ connection ระหว่าง server และ client

Linux Client

ใช้วิธีการ Install นี้ได้กับ Client ที่เป็น RedHat Ubuntu CentOS Debian และอื่นๆ ที่อยู่ใน Plat Form ที่ ไกล้เคียง เช่น Linux Unix เป็นต้น สามารถตรสจสอบ OS ที่ support ได้ที่ www.bacula.org/

วิธีการติดตั้ง Client

unzip file ชื่อ bacula-2.2.8.tar.gz

$ tar –xzvf bacula-2.2.8.tar.gz

ตั้งค่า installation file

$ CFLAGS="-g -Wall" ./configure \ #(สำหรับ unix using $ ./configure \)

>--enable-client-only

ทำการ make และ install file, เพิ่ม automatically started และ stopped เมื่อระบบ booted (optional)

$ make

$ make install

$ make install-autostart-fd

แก้ไข configuration file ของ Bacula client

เปิด Configuration file

ตั้งค่า Director Name ของ bacula server และ password สำหรับ connect กับมัน

Password ต้องเหมือนกับของ Restricted Director

ตั้งค่า director messages

restart the Bacula File Service

กำหนดค่าที่ director ของ Bacula server

สร้าง client ที่ bacula-dir.conf file บน Bacula-server

ตรวจสอบ connection ระหว่าง server และ client

3. การแก้ปัญหาเบื้องต้น

เป็นการรวบรวมการแก้ปัญหาต่างๆที่เกิดขึ้นในระหว่างการติดตั้งเข้ามาไว้ด้วยกัน ประกอบไปด้วยหลายส่วน คือ Re-initialize database การถอนการติดตั้ง การตั้งค่าMailRelay การติดตั้ง Tape LibraryกับServer เพื่อเป็นแนวทางการแก้ปัญหา

Re-initialize database

$ ./drop_bacula_tables

$ ./make_bacula_tables

##Re-initializing the Catalog Database

$ cd <install-directory>

$ ./drop_mysql_tables

$ ./make_mysql_tables

##Re-initializing the Catalog Database After you have done some initial testing with Bacula

$ cd <install-directory>

$ ./drop_bacula_tables

$ ./make_bacula_tables

$ ./grant_bacula_privileges

การถอนการติดตั้ง

$ make uninstall

$ make distclean

Set MailRelay

$ vim /etc/mail/sendmail.cf

## แก้บรรทัด #DSmail.mahidol.ac.th

การติดตั้ง Tape Library กับ Server

เตรียมเครื่อง Linux Server ที่จะใช้ในการติดตั้ง โดยแนะนำให้ใช้ Linux Redhat เวอร์ชัน 7.2 ขึ้นไป

ต่อเครื่อง Tape Library เข้ากับเครื่อง Linux Server ผ่านทางอินเตอร์เฟสแบบ SCSI

ทำการเปิดสวิตช์เครื่อง Tape Library และ Linux Server ตามลำดับ

สังเกตหน้าจอของเครื่อง Linux Server ในขณะกำลัง boot ว่า Linux สามารถค้นหาและตรวจสอบ Tape Library ที่ได้ติดตั้งกับอินเตอร์เฟส SCSI อย่างเรียบร้อย

การควบคุม Tape Library เพื่อใช้อ่านและเขียนข้อมูลเบื้องต้น

login เข้าไปใน Linux Server โดยใช้ user ที่มีสิทธิ์ในการอ่านและเขียนไฟล์ /dev/st0 และ /dev/sg0, การ load/unload เทปเข้า-ออกจาก Tape Drive เราสามารถใช้ LCD Panel ในการควบคุม Robot โดยตรง ให้ทำการย้ายเทปจาก Slot ใด Slot หนึ่งเข้าสู่ Tape Drive ได้ หรือจะใช้โปรแกรม mtx ในการควบคุม Robot (/dev/sg0) โดยผ่านทาง Linux ก็ได้

เป็นการเรียกดูสถานะของ Slot ว่าช่องใดมีเทปใส่อยู่บ้าง ส่วนคำสั่ง

$ mtx -f /dev/sg0 transfer 10 26

เป็นการย้ายเทปจาก Slot ที่ 10 ไปยัง Slot ที่ 26

สำหรับการ load เทปจาก slot หมายเลข 9 เข้าTape Drive และการ unload เทปกลับสู่ slot เดิม ใช้คำสั่งดังต่อไปนี้ตามลำดับ

$ mtx -f /dev/sg0 load 9

$ mtx -f /dev/sg0 unload

การเขียนข้อมูลลงในเทป

เราสามารถใช้โปรแกรม tar, cat, ฯลฯ ที่ทำงานกับไฟล์ธรรมดา มาทำงานกับ Tape Drive ได้โดยการอ้างถึงอุปกรณ์ชื่อ /dev/st0 แทนการเรียกชื่อไฟล์ เช่นถ้าเราต้องการเขียนข้อมูลจาก /home ลงในเทปโดยใช้คำสั่ง tar

$ tar –cvf /dev/st0 /home

จะทำการเขียนข้อมูลลงในเทปที่ถูก load อยู่ใน Tape Drive ในขณะนั้นในรูปแบบของ tar และเมื่อเขียนเสร็จแล้วจะทำการ rewind เทปกลับมายังหัวเทปโดยอัตโนมัติ

ในการเรียกดูรายชื่อไฟล์หรือเรียกคืนข้อมูลที่เก็บอยู่ในเทปก็ให้ใช้คำสั่งต่อไปนี้ตามลำดับ

$ tar –tvf /dev/st0

$ tar –xvf /dev/st0

การใช้คำสั่ง mt ควบคุม Tape Drive ในการอ่านและเขียนข้อมูล ในการอ่าน-เขียนข้อมูลกับอุปกรณ์ /dev/st0 นั้นเป็นการกำหนดให้ทำ rewind แบบอัตโนมัติหลังจากเสร็จสิ้นการทำงาน นั่นคือเทปจะถูก rewind กลับมายังหัวเทปเสมอ ถ้าเราต้องการทำงานแบบไม่มีการ rewind เราจะต้องใช้อุปกรณ์ที่ชื่อ /dev/nst0 ซึ่งเป็นชื่อแทนอุปกรณ์ Tape Drive ตัวเดียวกันเพียงแต่เป็นการกำหนดให้ไม่ต้องทำ rewind ทำให้เราสามารถเขียนข้อมูลได้หลายครั้ง (track) ในเทปตลับเดียวกัน เช่น

$ tar –cvf /dev/nst0 /home

$ tar –cvf /dev/nst0 /usr

จะเขียนข้อมูล /home ใน track แรกแล้วต่อด้วย /usr ใน track ถัดไป เมื่อเราต้องการทำ rewind จะใช้คำสั่ง

$ mt –f /dev/nst0 rewind

เนื่องจากในเทปมีข้อมูลเก็บไว้มากกว่าหนึ่ง track ดังนั้นในการเรียกใช้ข้อมูลเราจำเป็นต้องหมุนเทปไปยัง track ของข้อมูลที่ถูกต้องเสียก่อน มิฉะนั้นคำสั่ง cat หรือ tar จะอ่านข้อมูลจนถึงแค่สิ้นสุด track ปัจจุบัน เช่นสมมติว่าจะเรียกคืนข้อมูล /usr จากเทป เราจะต้องหมุนเทปไปยัง track ที่ 2 ที่เป็นส่วนของ /usr เสียก่อนดังตัวอย่าง

$ mt –f /dev/nst0 fsf

$ tar –xvf /dev/nst0

ศึกษาชุดคำสั่งของ mtx และ mt เพิ่มเติมได้จาก

$ man mtx

$ man mt

4. การใช้ในแบบอื่นๆ

การใช้งาน Bacula ในการทำการสำรองข้อมูล (Backup) การเรียกคืนข้อมูล (Restore) และการตรวจสอบระบบ (Monitor) ที่มีการใช้งานผ่าน Interface ที่หลากหลายในที่นี้แสดงด้วย bconsole CUI, bat Client GUI และ Web Interface (Webacula และ Bweb)

วิธีการใช้งาน Bacula ผ่าน bat Client GUI bat เป็น โปรแกรม ที่ใช้ในการควบคุมการทำงานของ Bacula ซึ่งจะเปลี่ยน CUI บน bconsole เป็น GUI พร้อมกับความสามารถอื่นๆ อย่างไรก็ตามมันมีการพัฒนาอย่างต่อเนื่อง รวมไปถึงคำ โปรแกรม bwx-console หรือ bgnome-console ในการใช้ bat จำเป็นจะต้องมี Qt4 >= Version 4.2 หรือจะลงเป็น QWT graphic package

วิธีการใช้งาน Bacula ผ่าน Web Interface

Webacula http://webacula.sourceforge.net/ เป็น Web Interface ใช้สำหรับ monitor ระบบ และ restore ข้อมูล โดยเขียนขึ้นมาจาก php ด้วย Zend Framework

Bweb Bweb เป็น web interface เขียนโดยใช้ perl ที่สามารถใช้ Run Backup job, follow execution, manage media, location และอื่นๆ โดยอยู่ใน Bacula svn (gui module)

Bacula Bat Client GUI

WeBacula

bWeb