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