پرش به مطلب اصلی

بکاپ


در این بخش می خواهیم بکاپ‌گیری سرور ابری را به شما آموزش دهیم. سرورهای ابری چابکان به صورت پیشفرض دارای قابلیت بکاپ‌گیری خودکار نمی‌باشند و شما می‌بایست این کار را با توجه به نیاز خود انجام دهید. در اینجا روش‌های مختلف بکاپ‌گیری از سرور ابری را به شما آموزش می‌دهیم.

انواع بکاپ

روش‌های مختلفی برای بکاپ‌گیری وجود دارند که هر کدام هدف و ابزار متفاوتی دارند. به طور کلی بکاپ‌گیری به یکی از این اشکال انجام می‌شود:

بکاپ‌گیری کامل

در این روش بکاپ‌گیری، اطلاعات مورد نظر به صورت کامل نسخه‌برداری می‌شوند. دقت کنید که محدوده فایل‌های مورد نظر می‌تواند خاص یا عام در حد کل سیستم‌عامل باشد. بدیهی است که بکاپ‌گیری از کل سیستم‌عامل به صورت کامل نیاز به فضا و منابع بیشتری نسبت به بکاپ‌گیری قسمتی خاص می‌باشد.

بکاپ کامل معمولاً در این موارد استفاده می‌شود:

  • هنگام راه‌اندازی اولیه یک سرویس مهم
  • پیش از اعمال تغییرات زیرساختی (Upgrade، Update، تغییر در پیکربندی‌های حساس)
  • زمانی که نیاز به یک نسخه قابل بازگشت بدون وابستگی به بکاپ‌های قبلی دارید

مزایای بکاپ کامل:

  • بازیابی سریع‌تر و ساده‌تر
  • عدم نیاز به وابستگی به بکاپ‌های قبلی
  • مناسب برای سناریوهای Disaster Recovery

معایب:

  • حجم بالا
  • زمان طولانی‌تر برای تهیه بکاپ

نمونه ابزارها:

  • tar
  • rsync
  • اسنپ‌شات‌های LVM، Btrfs، ZFS
  • ایمیج‌گیری کامل دیسک با dd یا Clonezilla

در اینجا یک مثال از بکاپ‌گیری با استفاده از tar را مشاهده می‌کنید:

tar -cvpzf /backup/backup-$(date +%F).tar.gz /some-directory

در این مثال از دایرکتوری /some-directory یک فایل آرشیو در مسیر /backup ایجاد می‌شود. شما می‌توانید فایل بکاپ را در جایی امن (خارج از این سرور) نگهداری کنید تا در زمان حادثه و نیاز به راحتی بتوانید به آن دسترسی داشته باشید.

با استفاده از دستور زیر نیز می‌توانید، بکاپ را ریکاوری کنید:

sudo tar -xvpzf /backup/backup-20XX-XX-XX.tar.gz -C /

بکاپ‌گیری افزایشی

در بکاپ‌گیری افزایشی، تنها فایل‌هایی ذخیره می‌شوند که نسبت به آخرین بکاپ تغییر کرده‌اند. این روش به‌صورت قابل‌توجهی در زمان و فضای ذخیره‌سازی صرفه‌جویی می‌کند، زیرا فقط نسخه‌های جدید یا تغییر یافته نوشته می‌شوند.

بکاپ افزایشی معمولاً در این سناریوها کاربرد دارد:

  • بکاپ روزانه یا ساعتی
  • محیط‌هایی که تغییرات مداوم وجود دارد ولی فضای ذخیره محدود است
  • سیستم‌هایی که نیاز به نگهداری نسخه‌های متعدد با مصرف کم منابع دارند

مزایای بکاپ افزایشی:

  • سرعت بالا
  • مصرف کمتر فضا
  • امکان نگهداری تعداد بیشتری نسخه در طول زمان

معایب:

  • بازیابی ممکن است نیازمند چند نسخه پشت سرهم باشد
  • آسیب‌دیدن یکی از نسخه‌ها ممکن است بازیابی را مشکل کند (بسته به ابزار)

نمونه ابزارهای بکاپ افزایشی:

  • rsync با گزینه‌های مخصوص آرشیو
  • BorgBackup (دارای Deduplication و Encryption)
  • Restic (مناسب برای بکاپ ابری و ریموت)
  • ابزارهای Snapshot در فایل‌سیستم‌هایی مثل Btrfs و ZFS

در اینجا یک مثال از بکاپ‌گیری افزایشی با استفاده از Borg را مشاهده می‌کنید:

ابتدا باید Borg را نصب کنید:

sudo apt install borgbackup

سپس باید یک مسیر برای نگهداری بکاپ‌ها مشخض کنید:

export BORG_REPO='/mnt/backup/borg_repo'

و در نهایت Borg را فعال کنید:

borg init --encryption=repokey-blake2

حال باید اولین نسخه بکاپ که کامل می‌باشد را ایجاد کنید:

# کلید رمز اگر رمزنگاری فعال باشد
export BORG_PASSPHRASE='YOUR_SUPER_SECRET_PASSPHRASE'

# مشخص کردن مسیر مبدا و مسیرهایی که نیاز به بکاپ ندارند
SOURCE_DIR='/some-directory'
EXCLUDES=(
'--exclude=/some-directory/exclude'
)

# ایجاد اولین نسخه بکاپ (نام را به دلخواه مشخص کنید)
borg create --stats --progress \
::'backup-{now:%Y-%m-%d_%H:%M:%S}' \
$SOURCE_DIR \
"${EXCLUDES[@]}"

اگر دستور بالا را مجددا اجرا کنید، در هر مرحله فقط از فایل‌های جدید که تغییرات داشتند بکاپ گرفته می‌شود.

برای ریکاوری بکاپ نیز می‌توانید با دستور زیر ابتدا نسخه دلخواهتان را پیدا کنید:

borg list $BORG_REPO

و سپس با دستور زیر آن را ریکاوری کنید:

borg extract --progress $BORG_REPO::'backup-20XX-XX-XX_03:00:00' --destination /tmp/restore_dir

خودکارسازی بکاپ‌گیری

برای خودکارسازی فرایند بکاپ‌گیری می‌توانید از cron job استفاده کنید. برای اینکار می‌توانید از دستور زیر استفاده کنید:

sudo crontab -e

سپس در آخرین خط ویرایشگر بازشده cron خود را اضافه کنید.

نگهداری بکاپ‌ها

برای نگهداری بکاپ‌ها استراتژی‌های مختلفی را می‌توان متصور شد. امن‌ترین روش نگهداری بکاپ‌ها به صورت off-site می‌باشد. که می‌تواند شامل موارد زیر باشد:

  • فضای ذخیره‌سازی ابری:
    • Google Drive
    • Dropbox
    • AWS S3
  • دیسک فیزیکی

چابکان برای نگهداری بکاپ‌ها راهکار ذخیره‌سازی ابری را به شما پیشنهاد می‌دهد.