גיבוי מצטבר עם Rsync ו-Rsnapshot ודדופליקציה באמצעות Hardlink

אובדן נתונים כתוצאה ממחיקה מקרית או תקלה הוא סיכון שעלול לעצור את פעילות העסק. אנו מגדירים גיבוי מצטבר באמצעות rsync ו-rsnapshot, ומבטיחים אחסון snapshots אמין עם deduplication מבוסס hardlink. הצוות שלנו מספק יישום turnkey—מבדיקת תשתית ועד deployment ותמיכה שוטפת—כך שתוכל לשחזר קבצים בכל עת ללא עלויות נוספות.

היכולות שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

גיבויים אינם העתקה — הם ערובה לשחזור

תארו לעצמכם שעמית מוחק בטעות קובץ תצורה של nginx, והגיבוי המלא האחרון היה לפני שבוע. עם rsnapshot, השחזור לוקח פקודת cp אחת — הקובץ זמין ישירות בתמונת המצב ללא דחיסה. אנו מגדירים מערכות כאלה לפרויקטים הנעים בין 10 ל-500 שרתים, ו-rsnapshot נותר הסטנדרט למכונות פיזיות וקבצים על לינוקס בזכות דדופליקציה באמצעות קישורים קשיחים: חיסכון בשטח דיסק יכול להגיע ל-90% בהשוואה להעתקות מלאות. עבור נפח ממוצע של 1 TB, זה חוסך כ-500 דולר בשנה. בפרויקטים עם 500 GB של נתונים, החיסכון מסתכם ב-250 דולר בשנה על אחסון בענן. הגדרת rsnapshot בסיסית שלנו מתחילה מ-500 דולר לשרת, וניתן לצפות להחזר השקעה תוך חודשים.

הניסיון שלנו — 5 שנים בהגדרת rsync+rsnapshot. השלמנו מעל 50 פרויקטי הגדרת גיבוי. עם ניסיון של למעלה מ-5 שנים ו-50+ פרויקטים שהושלמו, אנו מבטיחים שהנתונים שלכם יהיו נגישים בכל תמונת מצב ללא תוכנה מיוחדת, ואנו בודקים כל גיבוי מול רשימת הבדיקות שלכם. זמן שחזור ממוצע: דקה אחת. קבלו ייעוץ על הגדרת rsnapshot עם ערובה לשחזור.

בעיות ש-rsnapshot פותר

  • שחזור קובץ שנמחק בטעות עם פקודת cp אחת.
  • אחסון 30+ תמונות מצב עם ניצול שטח מינימלי (קישורים קשיחים).
  • ניטור שקוף: ls מציג את כל תמונות המצב כתיקיות רגילות.
  • אי-תלות בגרסה: rsync זמין בכל מערכת.

כיצד להגדיר rsnapshot לביצועים מקסימליים

כדי ליהנות מקישורים קשיחים, בחרו את מערכת הקבצים הנכונה עבור snapshot_root. אנו משתמשים ב-ext4 עם אפשרות noatime — זה מבטל כתיבות מיותרות בקריאות ומאיץ את מהירות הסיבוב ב-20%. ודאו שהמחיצה מותקנת עם אפשרות זו:

# /etc/fstab /dev/sdb1 /mnt/backups ext4 defaults,noatime 0 2 

הגדרת # /etc/fstab /dev/sdb1 /mnt/backups ext4 defaults,noatime 0 2 דורשת תשומת לב למפרידים — רק טאבים. דוגמה לקובץ בסיס:

config_version 1.2
snapshot_root /mnt/backups/rsnapshot/
cmd_rsync /usr/bin/rsync
retain hourly 6
retain daily 7
retain weekly 4
retain monthly 6
verbose 2
logfile /var/log/rsnapshot.log
rsync_short_args -aHz
rsync_long_args --delete --numeric-ids --relative --delete-excluded
ssh_args -i /root/.ssh/backup_ed25519 -o StrictHostKeyChecking=no
exclude .cache/
exclude node_modules/
exclude *.tmp
backup root@web-server-01:/etc/ web-server-01/
backup root@web-server-01:/var/www/ web-server-01/
backup root@db-server-01:/etc/ db-server-01/
backup root@db-server-01:/var/lib/postgresql/ db-server-01/"}

הגדרת rsnapshot שלב אחר שלב

  1. התקנת החבילה: /etc/rsnapshot.conf או config_version 1.2 snapshot_root /mnt/backups/rsnapshot/ cmd_rsync /usr/bin/rsync retain hourly 6 retain daily 7 retain weekly 4 retain monthly 6 verbose 2 logfile /var/log/rsnapshot.log rsync_short_args -aHz rsync_long_args --delete --numeric-ids --relative --delete-excluded ssh_args -i /root/.ssh/backup_ed25519 -o StrictHostKeyChecking=no exclude .cache/ exclude node_modules/ exclude *.tmp backup root@web-server-01:/etc/ web-server-01/ backup root@web-server-01:/var/www/ web-server-01/ backup root@db-server-01:/etc/ db-server-01/ backup root@db-server-01:/var/lib/postgresql/ db-server-01/ .
  2. עריכת apt install rsnapshot עבור התרחיש שלכם (מקורות, לוח זמנים).
  3. בדיקת התצורה: yum install rsnapshot.
  4. הרצת הגיבוי הראשון: /etc/rsnapshot.conf. בדקו את היומן לאיתור שגיאות.

לאחר מכן הגדירו cron לביצוע אוטומטי לפי לוח זמנים.

מדוע rsnapshot יעיל פי 10 מ-rsync רגיל

rsync רגיל עם סיבוב מעתיק את כל הקבצים בכל פעם — בזבזני בזמן ובשטח. rsnapshot עם קישורים קשיחים מעדכן רק בלוקים שהשתנו ומקשר את השאר. השוואה:

שיטה זמן סיבוב מלא שטח עבור 30 תמונות מצב שחזור ללא דחיסה
rsync + ארכיונים שעה (החלפה) פי 30 מנפח הנתונים לא (נדרש rsnapshot -t daily)
rsnapshot 5 דקות (אינקרמנטלי) פי 1.1 מהנפח (קישורים קשיחים) כן, rsnapshot hourly ישיר

rsnapshot גם מהיר פי 3 מגיבויים מסורתיים מבוססי ארכיון לשחזור. פתרון גיבוי rsync שלנו עם הגדרת rsnapshot מאפשר גיבוי אינקרמנטלי יעיל על לינוקס.

לוח זמנים של Cron

תדירות תמונות המצב נבחרת לפי RPO שלכם. לפרויקט טיפוסי:

0 */4 * * * root /usr/bin/rsnapshot hourly
30 3 * * * root /usr/bin/rsnapshot daily
0 3 * * 1 root /usr/bin/rsnapshot weekly
30 2 1 * * root /usr/bin/rsnapshot monthly

כאשר rsnapshot רץ יומית, הוא משנה שמות של תמונות מצב ישנות, יוצר עותק קישור קשיח של ה-hourly.0 האחרון, ומריץ rsync לעדכון. התוצאה ב-/mnt/backups/rsnapshot/ מופיעה כתיקיות עם תאריכים.

קישורים קשיחים מוסברים ולמה הם חוסכים 90% שטח

כאשר קובץ לא השתנה, rsnapshot לא מעתיק אותו אלא יוצר קישור קשיח לתמונת המצב הקודמת. אתם רואים עותקים מלאים, אבל השטח תפוס רק פעם אחת. בבדיקות על תצורות סטטיות, החיסכון מגיע ל-90%. זה יעיל עשרות מונים מדחיסה בארכיונים. למדו עוד על קישורים קשיחים.

ניטור פשוט של טריות הגיבוי

פקודה אחת בודקת אם תמונת המצב העדכנית ביותר מיושנת:

LAST=$(stat -c %Y /mnt/backups/rsnapshot/daily.0/)
NOW=$(date +%s)
AGE=$(( (NOW - LAST) / 3600 ))
[ "$AGE" -gt 25 ] && echo "rsnapshot daily stale: ${AGE}h"

אנו משלבים בדיקה זו ב-Prometheus ומגדירים התראה אם גיבוי נכשל. מדריך שחזור מלא הוא חלק מהתיעוד שלנו.

מגבלות של rsnapshot

קישורים קשיחים פועלים רק בתוך מערכת קבצים אחת. אם snapshot_root הוא מיקום NFS, חלק מפעולות הקישור הקשיח אינן תקינות. עבור אחסון בענן, אנו מוסיפים rclone עם הצפנה. עבור מסדי נתונים, העתקת rsync ישירה של postgresql/data ללא הקפאה מוקדמת היא מסוכנת — אנו תמיד מריצים pg_dump או pg_basebackup לתיקייה נפרדת תחילה, ו-rsnapshot אוסף אותה.

הגדרת rsnapshot במפתח כוללת

רשימת בדיקות לאימות גיבוי
  • [ ] יומן rsnapshot נבדק לאיתור שגיאות
  • [ ] תמונת המצב העדכנית לא ישנה מ-4 שעות
  • [ ] גודל תמונת מצב אינקרמנטלית < 500 MB (נורמלי עבור תצורות)
  • [ ] קובץ מתמונת מצב שוחזר עם tar
  • [ ] התראת Prometheus מופעלת אם גיבוי חסר > 6 שעות
רכיב תיאור
ביקורת מקורות גיבוי זיהוי תיקיות ומסדי נתונים קריטיים
עיצוב תוכנית סיבוב שעתי/יומי/שבועי/חודשי לפי RTO/RPO שלכם
הגדרת rsnapshot קבצים, חריגים, מפתחות SSH
הגדרת ניטור Prometheus + התראה אם גיבוי נכשל
תיעוד מדריך עם פקודות שחזור
הדרכת צוות הדגמה כיצד למצוא קובץ מכל תמונת מצב

משך ועלות

הגדרה בסיסית של שרת אחד אורכת 1–2 ימים. החל מ-500 דולר לשרת, אתם מקבלים מערכת שנבדקה במלואה. העלות מחושבת באופן אישי לפי מספר המקורות ומורכבות התשתית. יותר מ-20 חברות סומכות עלינו, ואנו מספקים גיבויים אמינים. צרו קשר — אנו נעריך את הפרויקט שלכם ונציע את הפתרון הטוב ביותר. קבלו ייעוץ על הגדרת rsnapshot עם ערובה לשחזור. הזמינו הגדרה עכשיו.