วันพุธที่ 15 พฤษภาคม พ.ศ. 2556

เกริ่นนำ zimbra backup

เรื่องที่กวนใจคนใช้ Zimbra Open Source version อย่างหนึ่งก็คือ ไม่มีระบบ backup มาให้

ที่จริง เราสามารถ backup zimbra ได้หลายแบบ แบบที่ง่ายๆ (ถึกๆ) ก็คือ backup ทั้ง /opt/zimbra (หรือ path ที่เราลง zimbra) ทั้งก้อนเลย เวลาเราจะ restore ก็  restore กลับมาทับทั้งหมด ก็สดวกดี

ข้อดีของวิธีนี้ก็คือ เราได้ตัว zimbra ในส่วนของ binary และรวมไปถึง data ทุกอย่างทั้ง mysql data, openldap data เนื้อเมล์ใน /opt/zimbra/store และ index ใน /opt/zimbra/index  เรียกว่าครบทุกอย่างเลย

แต่อย่างไรก็ตาม การ backup /opt/zimbra มีข้อควรระวังก็คือในระหว่างการ backup ต้องมีการ stop zimbra เสียก่อน ตามคำแนะนำของ zimbra open source ครับ (ส่วนเรื่องทำไมต้อง backup ระหว่างที่ zimbra หยุดทำงาน ผมจะเขียนถึงที่หลังละกัน) ปัญหาก็คือ ถ้า data ของ zimbra มีจำนวนมาก เวลาในการ backup จะใช้เวลานาน ซึ่งหมายถึง zimbra จะต้องหยุดทำงานเป็นเวลานานไปด้วย ซึ่งไม่ค่อยดีเท่าไหร่ ใช่ไหมครับ

จุดนี้ไม่ใช่ปัญหาใหญ่ เราสามารถดัดแปลงสิ่งที่ Linux มีมาให้อยู่แล้ว ใช้ในการ backup zimbra ได้ครับ โดยใช้ สิ่งที่เรียกว่า snapshot ของ Logical Volume Manager (LVM) ครับ โดยวิธีนี้  เราต้องสร้าง filesystem /opt/zimbra  ให้อยู่บน partition ที่เป็น Logical Volume(LV) แทนที่จะเป็น partition ที่สร้างจากการแบ่งเนื้อที่บน hardisk ตรงๆ  ซึ่งผมเคยแนะนำใน Zimbra Tips & Technique ตอนต้นๆ แล้วนะครับ แต่ผมขอสรุปอีกที สำหรับหลายๆท่านที่เพิ่งกด like  Thai Zimbra fan page ครับ

เหตุผลที่เราต้องทำแบบนี้ ก็เพราะ เราสามารถที่จะสร้าง copy ที่เสมือนถูก "หยุดเวลา" ไว้ ของ filesystem ที่ถูกสร้างอยู่บน LV ได้ เราเรียกสิ่งนี้หรือการทำแบบนี้ว่า snapshot โดยตัว filesystem ที่เป็นต้นแบบจะสามารถถูกใช้งานต่อ (มีการเปลี่ยนแปลงแก้ไขข้อมูล) ส่วน snapshot จะยังคงมีข้อมูลค้าง ณ.เวลาที่เราสร้าง snapshot นั้นไว้

พอเห็นภาพแล้วใช่ไหมครับ พอเราสามารถ สร้าง copy ที่ถูก "หยุดเวลา" ของ /opt/zimbra ได้ เราจะเสียเวลาในการ stop zimbra อยู่แค่ช่วงที่เราสร้าง snapshot filesystem ของ /opt/zimbra (ซึ่งกินเวลาแป็บเดียว) หลังจากนั้น เราสามารถ start zimbra ขึ้นมาทำงานต่อได้ ส่วนการ backup เราก็ทำในขณะที่ zimbra ทำงานอยู่ได้ โดย backup ข้อมูลจาก snapshot แทน

ตัว snapshot filesystem เอง ก็เสมือนเป็น filesystem ปกติธรรมดา ครับ ต้องมีการ mount ไปยัง directory ในระบบ จึงจะสามารถถูกใช้งานได้ เพียงแต่เราจะอ่านข้อมูลได้อย่างเดียว เปลียนแปลงแก้ไขข้อมูลไม่ได้

ปกติตัว snapshot จะไม่กินเนื้อที่ disk มาก ยกเว้นในกรณีที่ตัว disk ต้นแบบมีข้อมูลเปลี่ยนแปลงไปหลังจากที่มีการทำ snapshot ซึ่งตรงนี้ จะทำให้ snapshot กินเนื้อที่บน disk ครับ ดังนั้น ยิ่งปล่อยให้ snapshot filesystem อยู่ในระบบนาน ก็จะยิ่งกินเนื่อที่ disk ไปเรื่อยๆ แต่พอเราลบ snapshot LV ทิ้ง เนื้อที่ที่ใช้ไป ก็จะถูกคืนกลับสู่ LVM ครับ

บางระบบอาจมีการสร้าง filesystem  ที่ /opt/zimbra อยู่ มาจาก disk ที่อยู่บน NAS หรือ SAN ซึ่งพวกนี้ส่วนใหญ่ก็สามารถทำ snapshot ได้นะครับ ไม่ต้องใช้ความสามารถของ LVM  เลย

ครั้งต่อไป ผมจะพูดถึงทฤษฏีเบื้องต้นของ Logical Volume Manager เพื่อปูพื้นฐาน ก่อนจะพูดถึงเรื่องการทำ snapshot ในตอนต่อๆไป ครับ




ไม่มีความคิดเห็น:

แสดงความคิดเห็น