0193 | bonding config บน debian/ubuntu
Thursday, September 18th, 2014 Posted in IP Network, Linux | No Comments »ก่อนอื่น
อย่าลืมลง ifenslave-2.6 !!!
แก้ไฟล์ /etc/network/interfaces ประมาณนี้ฮะ
auto lo iface lo inet loopback auto eth0 iface eth0 inet manual bond-master bond0 auto eth1 iface eth1 inet manual bond-master bond0 auto bond0 iface bond0 inet static address 192.0.2.1 netmask 255.255.255.0 gateway 192.0.2.254 bond-mode 802.3ad bond-miimon 100 bond-downdelay 200 bond-updelay 200 bond-xmit-hash-policy layer3+4 bond-slaves none
แล้วก็ไฟล์ /etc/modprobe.d/bonding.conf ประมาณนี้ครับ
alias bond0 bonding options bonding mode=4 miimon=100 lacp_rate=1
0192 | ตั้งค่าการ backup ของ bacula (ซักที)
Thursday, September 18th, 2014 Posted in Linux | No Comments »หลังจากลง software ครบหมดแล้วก็ได้เวลาสั่งให้ bacula backup ข้อมูลกันจริงๆ จังๆ แล้วครับ หลังจากนี้ก็อยู่ที่เครื่อง director อย่างเดียวแล้วครับ ไม่ต้องไปไหนแล้ว (ยกเว้นเพิ่มเครื่อง storage หรือ client ก็ไปลงตามขั้นตอนการตั้งค่าแต่ละอันอีกที)
ในการนี้ แนะนำให้สร้างไฟล์ใหม่ขึ้นมา 1 file เป็นชื่อ /etc/bacula/clients/clientname.conf (แทนที่ clientname เป็นชื่อ client นะครับ) เริ่มทีละขั้นนะครับ
เชื่อมต่อ director หา client
Client { Name = bclient1 Address = 192.0.2.1 FDPort = 9102 Catalog = MyCatalog Password = "bacula-dir-fd" File Retention = 30 days Job Retention = 2 months AutoPrune = yes }
Name กับ Password ตั้งให้ตรงกับที่ในฝั่ง Client นะครับ แล้วก็แก้ IP ให้ถูกด้วย (ความจริงเค้าแนะนำให้ตั้งเป็น dns name นะ)
ตั้งพื้นที่เก็บข้อมูล
Pool { Name = bclient1-pool Pool Type = Backup Recycle = yes AutoPrune = yes Volume Retention = 60 days Maximum Volume Bytes = 50G Maximum Volumes = 20 LabelFormat = "bclient1-" }
แนวคิดมันคือการเตรียมพื้นที่สำหรับการเก็บ backup ครับ โดยแบ่งเป็น volume (image file) ขนาดไฟล์ไม่เกิน Maximum Volume Bytes และมีได้ไม่เกิน Maximum Volumes ไฟล์ จากตัวอย่างคือกันพื้นที่ไว้ 1TB (เอาจริงๆ กันไว้เยอะไปนะ 555) และตัวมันเองจะบันทึกแบบกล้องวงจรปิดครับ คือพอเต็มปุ๊ปมันจะไปลบไฟล์อันที่เก่าสุดออกจากระบบ แต่ไม่ต้องกลัวมันลบมั่วนะครับ ถ้าไฟล์เก่าสุดยังต้องใช้ในการ restore อยู่มันจะไม่ลบ แล้วเมลมาด่าว่าพื้นที่เต็มแทน (ฮา)
ตั้งรายการ file ที่จะ backup
ตลกนิดหน่อยตรงที่มันมาตั้งที่ director นี่แหละครับ
FileSet { Name = "PleskHostingData" Include { Options { signature = SHA1 onefs = no noatime = yes compression = GZIP } Options { RegexDir = "^/var/www/vhosts/system/.*/logs" RegexDir = "^/var/www/vhosts/.*/logs" RegexDir = "/wp-content/cache/" exclude = yes } File = /etc File = /var/www/vhosts File = /var/qmail/mailnames File = /var/backup/mysql } }
ตัวอย่างนี้เป็นการตั้งค่า backup ของ plesk ครับ โดยข้ามไฟล์ log ทั้งหมด เก็บไฟล์เฉพาะส่วนของเว็บ และอีเมลลูกค้า แล้วไปเอาไฟล์จาก database ที่ backup แยกไว้มารวมด้วย
ตั้งเวลา backup อัตโนมัติ
Schedule { Name = "WeeklyCycle" Run = Full 1st sun at 00:05 Run = Differential 2nd-5th sun at 00:05 Run = Incremental mon-sat at 00:05 }
เครื่องมือ backup จริงๆ มันต้อง backup อัตโนมัติได้จริงมั้ยครับ และที่สำคัญ ไฟล์ต้องสมบูรณ์และเข้าถึงได้เร็วพอด้วยไม่งั้นก็ไม่รู้จะ backup ไปทำไมในเมื่อ restore ไม่ได้ เพราะงั้นเลยแบ่งการ backup ออกเป็น 3 ขั้นครับ
- backup เต็มรูปแบบทุกวันอาทิตย์แรกของเดือน ตอน 00.05 น.
- backup แบบ differential เทียบกับตัว full ทุกวันอาทิตย์ครั้งที่ 2 ถึง 5 ของเดือน (เดือนนึงคงมีวันอาทิตย์ได้ไม่เกิน 5 ครั้ง ครั้งแรก backup full ครั้งที่ 2 diff)
- backup แบบ incremental วันอื่นๆ
เผื่อใครจะลืม backup แต่ละแบบต่างกันยังไงดูได้ที่วิธีติดตั้ง bacula ครับ
ประกาศงาน backup
อันนี้เป็นการสร้างการ backup จริงๆ แล้วครับ จะมี 2 ส่วนคือประกาศวิธีการ backup กับประกาศการ backup เอง ประมาณนี้
JobDefs { Name = "bclient1-jobdefs" # ตั้งเอาเองได้เลยครับ ให้ตรงกับด้านล่าง Type = Backup Level = Incremental Client = bclient1 # ระบุชื่อ client ที่จะ backup FileSet = "PleskHostingData" # ระบุชื่อ FileSet ตามด้านบน Schedule = "WeeklyCycle" # ระบุชื่อ Schedule ตามด้านบน Storage = bacula-sd # ระบุชื่อ Bacula Storage Server ตามที่ได้ config ไว้ Messages = Standard Pool = bclient1-pool # ระบุชื่อ Pool ตามด้านบน Priority = 10 Write Bootstrap = "/var/spool/bacula/%c.bsr" } Job { Name = "bclient1-backup" JobDefs = "bclient1-jobdefs" # ตรงกับ Name ของ JobDefs ด้านบน }
ประกาศงาน restore
มีงานสำหรับ backup ก็ต้องมีสำหรับ restore ครับ จริงๆ เป็นค่าที่ตั้งไว้รอเฉยๆ เผื่อเรียกใช้จะได้สะดวก
Job { Name = "bclient1-restore" Type = Restore Client = bclient1 # ระบุชื่อ client ปลายทางที่จะให้ restore ไป FileSet = "PleskHostingData" # รายการไฟล์ Storage = bacula-sd # ที่เก็บข้อมูล ว่าไปอ่านมาจากไหน Pool = Default Messages = Standard Where = /tmp/bacula-restores # folder ปลายทางที่จะให้ restore ให้ (สมมติ backup จาก /var/www ไฟล์จะไปอยู่ใน /tmp/bacula-restores/var/www เป็นต้น) }
เสร็จแล้วครับ !!!!
ข้ามไปยัง
- ติดตั้ง Bacula บน centos 5/6/7
- ตั้งค่า Bacula Director
- ตั้งค่า Bacula Storage
- ตั้งค่า Bacula Client
- ตั้งค่าการ Backup ของ Client
- การดูสถานะ backup และการสั่ง Restore
Tags: bacula, configuration