สำรองข้อมูลพาร์ติชัน LVM เป็นประจำ


0

ฉันมีเซิร์ฟเวอร์ภายในบ้านเล็ก ๆ (Ubuntu Server 17.10) และฉันต้องการตั้งค่าการสำรองข้อมูลบางอย่าง ประเด็นหลักของฉันคือ:

  • เซิร์ฟเวอร์มีฮาร์ดไดรฟ์สองตัว อันแรก (SSD) ถูกแบ่งพาร์ติชันด้วยพาร์ติชัน EFI และพื้นที่ LVM ข้างในมีวอลุ่ม LVM สองตัวและฉันต้องการสำรองหนึ่งในนั้น ฉันเหลือพื้นที่เพียงพอที่จะสร้างสแน็ปช็อตไดรฟ์เมื่อจำเป็น อันที่สองมีสองพาร์ติชั่นและฉันต้องการที่จะติดอันที่สองเมื่อจำเป็นในการเก็บข้อมูล สองพาร์ติชันเหล่านี้บน HDD ตัวที่สองไม่ได้เป็นส่วนหนึ่งของพื้นที่ LVM
  • เซิร์ฟเวอร์ไม่ได้ทำงานตลอด 24 ชั่วโมงทุกวัน
  • ฉันต้องการสำรองข้อมูลเช่นนี้:
    • ทุกวันเวลา 1.00 * จะทำการสำรองข้อมูลแบบเพิ่มเติม หากไม่ได้ทำการสำรองข้อมูลเนื่องจากพีซีปิดอยู่ให้ดำเนินการเมื่อพร้อม
    • เก็บสำรองข้อมูลเพิ่มที่สูงสุด 5 * ต่อวัน หากการสำรองข้อมูลหนึ่งวันไม่ได้ดำเนินการเนื่องจากพีซีปิดอยู่ตลอดทั้งวันควรมีการสำรองข้อมูล 5 * เสมอ
    • ทุกเดือนควรมีการสำรองข้อมูลเต็มรูปแบบหนึ่งครั้ง (เช่นไม่เพิ่มขึ้น) เพื่อป้องกันความเสียหายของข้อมูล
    • สำรองข้อมูลเต็มจำนวนสูงสุด 3 * รายเดือน แนวคิดเดียวกันนี้ได้อธิบายไว้ในจุดที่ 2 (การสำรองข้อมูล 3 * ไม่ใช่การสำรองข้อมูลใน 3 เดือนล่าสุด)

หมายเหตุ: เวลาและจำนวนของการสำรองข้อมูล (ที่จดบันทึกโดย *) สามารถเปลี่ยนแปลงได้

ตัวอย่างเช่นวันนี้คือ 14/03 ในวันที่ 11/03 พีซีหยุดทำงานทั้งวันดังนั้นในฐานข้อมูลควรมี:

การสำรองข้อมูลเพิ่มเติม: 14/03, 13/03, 12/03, 10/03, 09/03 (09/03 สามารถดำเนินการได้ถ้าจำเป็น) การสำรองข้อมูลที่สมบูรณ์: 01/03, 01/02, 01/01

ตอนนี้ฉันค่อนข้างใหม่กับสิ่งนี้ดังนั้นฉันจึงเริ่มมองไปรอบ ๆ และพบ Attic แล้ว Borg แต่ฉันไม่เข้าใจว่าสิ่งที่ฉันต้องการบรรลุนั้นสามารถทำได้ด้วย borg หรือไม่หรือถ้ามีวิธีที่ง่ายกว่าแทนที่จะใช้โปรแกรมนี้ (พิจารณาว่าฉันใช้ LVM ดังนั้นฉันอาจใช้สแนปช็อตเพื่อ " ติดตาม "การเปลี่ยนแปลงหรือ .. อะไรก็ตาม)

ดังนั้น ... สิ่งที่ฉันอธิบายสามารถนำไปใช้ในสคริปต์ borg (หรือสองเท่า) ได้หรือไม่ คุณแนะนำเครื่องมืออื่น ๆ (หรือสำเนาธรรมดา) หรือไม่? หรือคุณคิดว่ากลยุทธ์ที่ฉันอธิบายนั้นไร้ประโยชน์หรือไม่เพียงพอ?

ขอบคุณ

หมายเหตุ: ฉันเปิดไฟล์นี้ผิดพลาดและเนื่องจากฉันไม่สามารถย้ายได้และไม่มีความคิดเห็นหรือคำตอบฉันต้องการลบไฟล์เก่าและเปิดใหม่ที่นี่เพื่อเร่งความเร็วการเปลี่ยนแปลงและหลีกเลี่ยงการออกจากงานนี้ ผู้ดูแล

แก้ไข: บางทีฉันอธิบายไม่ได้ในวิธีที่เหมาะสมดังนั้นฉันจึงสร้างบรรทัดเพิ่มเติมในคำถามนี้

ประสบการณ์ของฉันกับภาพรวม "ส่วนเพิ่ม" มาจาก Virtualbox ในกรณีนี้เมื่อคุณลบสแน็ปช็อตการแก้ไขจะถูกรวมเข้าด้วยกัน

เพื่อหลีกเลี่ยงการเขียนมากเกินไปฉันทำตัวอย่างโดยใช้การสำรองข้อมูลรายวันมากที่สุดสามครั้ง

สมมติว่าเราอยู่ในสภาพ

  • การสำรองข้อมูลรายวัน 12/03 - สำเนาทั้งหมดของระบบไฟล์ในวันที่ 12/03
  • การสำรองข้อมูลรายวัน 13/03 - การแก้ไขระหว่าง 12/03 ถึง 13/03
  • การสำรองข้อมูลรายวัน 14/03 - การแก้ไขระหว่าง 13/03 ถึง 14/03

วันนี้เป็นวันใหม่ดังนั้นการสำรองข้อมูลจึงเริ่มต้นขึ้น แต่มีการสำรองข้อมูลทุกวัน 3 ครั้ง ดังนั้นการสำรองข้อมูล 12/03 และ 13/03 จึงถูกรวมเข้าด้วยกัน (ความแตกต่าง 13/03 จะถูกนำไปใช้กับเวอร์ชันพื้นฐาน) และทำการสำรองข้อมูลเพิ่มเติมแบบใหม่ วิธีนี้คุณจะสูญเสียความแตกต่างระหว่าง 12 และ 13 แต่การสำรองข้อมูลจะยังคง "เต็ม":

  • สำรองข้อมูลรายวัน 13/03 - สำเนาทั้งหมดของระบบไฟล์ในวันที่ 13/03
  • การสำรองข้อมูลรายวัน 14/03 - การแก้ไขระหว่าง 13/03 ถึง 14/03
  • การสำรองข้อมูลรายวัน 15/03 - การแก้ไขระหว่าง 14/03 ถึง 15/03

ฉันคิดว่านี่เป็นพฤติกรรมปกติของลูกพรุนของแอนเดอร์ส (แก้ไขฉันถ้าฉันผิดโปรด)

ตัวเลือกอื่น (ซึ่งเป็นที่ต้องการมากกว่าในความคิดของฉัน) คือการรวมการสำรองข้อมูลที่เพิ่มขึ้นจากรายเดือน ฉันหมายถึงสิ่งที่ชอบ:

  • สำรองข้อมูลรายเดือน 01/03 - สำเนาของระบบไฟล์ในวันที่ 01/03
  • การสำรองข้อมูลรายวัน 12/03 - การแก้ไขระหว่าง 01/03 ถึง 12/03
  • การสำรองข้อมูลรายวัน 13/03 - การแก้ไขระหว่าง 12/03 ถึง 13/03
  • การสำรองข้อมูลรายวัน 14/03 - การแก้ไขระหว่าง 13/03 ถึง 14/03

เมื่อทำการตัดแต่งการรวม 12 และ 13 เข้าด้วยกัน (ดังนั้นจึงกลายเป็นการสำรองข้อมูลรายวัน 13/03 - การแก้ไขระหว่าง 01/03 ถึง 13/03) และการสร้างใหม่

ตัวเลือกสุดท้ายที่ต้องการน้อยกว่าในความคิดของฉัน (แต่ถ้าคุณคิดว่ามันจะดีกว่าคุณสามารถโต้แย้งนี้) คือการเก็บสำรองข้อมูลรายวันเมื่อเทียบกับรายเดือน

  • สำรองข้อมูลรายเดือน 01/03 - สำเนาของระบบไฟล์ในวันที่ 01/03
  • การสำรองข้อมูลรายวัน 12/03 - การแก้ไขระหว่าง 01/03 ถึง 12/03
  • การสำรองข้อมูลรายวัน 13/03 - การแก้ไขระหว่าง 01/03 ถึง 13/03
  • การสำรองข้อมูลรายวัน 14/03 - การแก้ไขระหว่าง 01/03 ถึง 14/03

ในกรณีนี้มันง่ายกว่า: เพียงลบการสำรองข้อมูลรายวันโดยไม่ต้องมองคุณ


โดยทั่วไปเมื่อผู้คนพูดคุยเกี่ยวกับการสำรองข้อมูลเต็มรูปแบบเดือนละครั้งจากนั้นสำรองข้อมูลเพิ่มเติมแต่ละวันพวกเขาจะสัมพันธ์กับวันก่อนดังนั้นหากคุณเก็บ 5 ล่าสุดล่าสุดหลังจากวันที่ 5 คุณจะมีข้อมูลสำรองที่คุณไม่ สำรองข้อมูลอีกต่อไปแล้วและจะสูญเสียหากคุณต้องกู้คืน หรือคุณหมายถึงว่าการสำรองข้อมูลส่วนเพิ่มควรสัมพันธ์กับการสำรองข้อมูลเต็มรูปแบบล่าสุดไม่ใช่การสำรองข้อมูลส่วนเพิ่มครั้งล่าสุดใช่หรือไม่
psusi

@psusi ในขณะนี้สิ่งที่ "เพิ่มขึ้น" เพียงอย่างเดียวที่ฉันมีประสบการณ์เล็กน้อยคือ Virtualbox snapshot ไม่ว่าในกรณีใดฉันไม่ได้หมายถึง "การสูญเสีย" วิธีสำรองข้อมูล ฉันกำลังแก้ไขคำถามเพื่ออธิบายเพิ่มเติม
frarugi87

คำตอบ:


0

คุณไม่สามารถ "สำรอง" การสำรองข้อมูลจริงๆ มันไม่ได้เป็นสิ่งที่คุณขอ แต่อาจตรงกับความต้องการของคุณ ระบบสำรองข้อมูลที่ฉันใช้คือ cron งานที่เกี่ยวข้องกับหลายระดับ dump ในหอคอยแห่งลวดลายฮานอย ฉันเชื่อว่าคุณสามารถใช้ anacron เพื่อให้แน่ใจว่ารันตามกำหนดเวลาเมื่อระบบปิดทำงานเมื่อเปิดใช้งานครั้งถัดไป

#!/bin/bash
set -e
declare -a LEVELMAP=(1 5 4 5 3 5 4 5 2 5 4 5 3 5 4 5 1 5 4 5 3 5 4 5 2 5 4 5 3 5 4 5)
DATE=`date +%-d`
LEVEL=${LEVELMAP[$DATE-1]}
echo Performing a level $LEVEL dump
sync
lvcreate -s -n snap devserv2/root -L 1g
dump -$LEVEL -quz9 -b 1024 -f /backup/dump.$LEVEL /dev/mapper/devserv2-snap
lvremove -f devserv2/snap

dump มีแนวคิดของระดับ การถ่ายโอนข้อมูลระดับ 0 มีทุกสิ่ง การถ่ายโอนข้อมูลระดับ 1 ประกอบด้วยทุกสิ่งที่มีการเปลี่ยนแปลงตั้งแต่ระดับ 0 ล่าสุดระดับ 2 มีทุกอย่างตั้งแต่ระดับ 0 หรือระดับ 1 ล่าสุดแล้วแต่ว่าจะถึงอย่างใดเมื่อเร็ว ๆ นี้และอื่น ๆ เมื่อดำเนินการทิ้งระดับที่ระบุไว้ในแต่ละวันของเดือนคุณจะได้รับระดับ 1 ในวันที่ 1 และ 17 ของเดือน สิ่งเหล่านี้มีทุกสิ่งตั้งแต่ระดับสุดท้ายที่ฉันทำเองทุก ๆ สองสามเดือน วันที่เหลือของเดือนที่คุณใช้ระดับ 2-5 ซึ่งหมายความว่าเมื่อใดก็ตามที่คุณมีการสำรองข้อมูล 3 ระดับที่มีการเปลี่ยนแปลงตั้งแต่วันที่ 1 หรือ 17 ของเดือนและไฟล์ที่มีการเปลี่ยนแปลงบ่อยครั้งจะมีหลายรุ่นที่คุณสามารถย้อนกลับไปในการสำรองข้อมูลแต่ละครั้ง หลายวัน.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.