
پشتیبانگیری خودکار (Automated Backup) همواره یکی از ستونهای اصلی نگهداری دادهها به شمار میرود و رعایت قانون پشتیبانگیری ۳-۲-۱ (3-2-1 Backup Rule) یعنی نگهداشتن سه نسخه از دادهها روی دو نوع رسانه و یک نسخه خارج از محل، تضمینکننده امنیت فایلها در برابر خرابی تجهیزات است. اما آنچه در این میان اغلب نادیده گرفته میشود، «زمان اجرای» این فرایند است؛ موضوعی که میتواند بهسادگی عملکرد سایر سرویسهای یک سرور شبکه خانگی (NAS) را تحت تأثیر قرار دهد.
وقتی پشتیبانگیری، همهچیز را کند میکند
در یک تجربه واقعی، کاربری که فایلهای مهم خود را هر شب به یک درایو دوم و یک سرور مجازی اختصاصی (VPS) خارج از محل منتقل میکرد، بهتدریج با شکایت دوستانش درباره بافر شدن (Buffering) پخشکننده Plex و کندی بارگذاری فهرست محتوا مواجه شد. نکته قابل توجه این بود که این پیامها در شبهای مختلف، اما تقریباً در یک بازه زمانی مشخص ارسال میشدند.
پس از مقایسه زمان دقیق این گزارشها با زمانبندی کرون (Cron Schedule) سرور، مشخص شد که همه آنها با بازه اجرای پشتیبانگیری همپوشانی دارند. پشتیبانگیریها از نوع افزایشی (Incremental Backup) بودند و تنها فایلهای جدید یا تغییریافته کپی میشدند؛ با این حال، ابزار rsync برای شناسایی این تغییرات باید میلیونها فایل موجود در استخر ذخیرهسازی (Storage Pool) را پیمایش و بررسی کند. این فرایند سنگین، دقیقاً در ساعاتی اجرا میشد که سرور مشغول ترنسکدینگ (Transcoding) و استریم (Streaming) ویدیو بود.
به بیان دیگر، همهچیز از نظر فنی درست کار میکرد؛ مشکل این بود که سه وظیفه پرمصرف همزمان با ساعات استفاده فعال کاربران از سرور اجرا میشدند و برای پهنای باند و منابع ورودی/خروجی دیسک با یکدیگر رقابت میکردند.
راهحل ساده: انتقال پشتیبانگیری به ساعت ۳ بامداد
اصلاح این وضعیت تنها به یک ویرایش در فایل زمانبندی کرون (Crontab) نیاز داشت. کاربر پشتیبانگیری محلی را به ساعت ۳ بامداد و همگامسازی خارج از محل (Off-site Sync) را به یک ساعت بعد، یعنی ۴ بامداد منتقل کرد تا این دو وظیفه با یکدیگر تداخل نداشته باشند. همچنین عملیات ماهانه اسکراب (Scrub) استخر ذخیرهسازی ZFS نیز به صبح زود روز شنبه موکول شد؛ زمانی که هیچ کاربری بهجز دسترسیهای سبک فایلی، از سرور استفاده نمیکند.
ساختار جدید زمانبندی به این شکل درآمد:
- ساعت ۳ بامداد: اجرای اسکریپت همگامسازی محلی (Local Sync)
- ساعت ۴ بامداد: اجرای اسکریپت همگامسازی خارج از محل (Off-site Sync)
- ساعت ۱ بامداد روز شنبه: اجرای اسکراب استخر ذخیرهسازی (Zpool Scrub)
نتیجه این تغییر بلافاصله نمایان شد؛ نهتنها پیامهای شکایت درباره بارگذاری نشدن Plex در ساعات اوج مصرف متوقف شد، بلکه خود عملیات پشتیبانگیری نیز سریعتر انجام شد، زیرا در ساعاتی اجرا میشد که سرور و اتصال اینترنت خانه خلوت بود. تنها وظیفه باقیمانده برای مدیر سرور، بررسی روزانه گزارشها (Logs) برای اطمینان از سلامت پشتیبانها و اسنپشاتها (Snapshots) است.
نکات مهم درباره پشتیبانگیری خودکار
پشتیبانگیری خودکار، با وجود همه مزایا، محدودیتهای خاص خود را دارد که باید به آنها توجه کرد:
- بازه ۲۴ ساعته: پشتیبانگیری روزانه به این معناست که یک روز کامل تغییرات در انتظار همگامسازی باقی میماند؛ برای فایلهایی که تغییرات مهم و مکرر دارند، این بازه ممکن است کافی نباشد.
- نبود امکان تأیید دستی: در پشتیبانگیری خودکار، فرصتی برای بازبینی و تأیید تغییرات پیش از همگامسازی وجود ندارد و اسکریپتها بدون توجه به مشکلات احتمالی اجرا میشوند.
- همگامسازی تغییرات ناخواسته: اگر فایلی بهاشتباه پیش از اجرای پشتیبانگیری حذف شده باشد، همان حذف در مقصد نیز اعمال میشود؛ به همین دلیل بررسی گزارشها و امکان بازیابی از آخرین اسنپشات اهمیت زیادی دارد.
برای پروژههای نرمافزاری و کدهایی که بهطور مداوم تغییر میکنند، استفاده از سیستمهای کنترل نسخه (Version Control) مانند گیت (Git) بسیار کارآمدتر از پشتیبانگیری روزانه است، زیرا تاریخچه کامل تغییرات را در اختیار کاربر قرار میدهد؛ چیزی که حتی بازیابی از یک اسنپشات کامل نیز فراهم نمیکند.
جمعبندی
پشتیبانگیری ماهیتی پسزمینهای دارد و نیازی به نظارت لحظهای بر آن نیست، اما زمانبندی آن موضوعی است که ارزش فکر کردن دارد. همانطور که این تجربه نشان میدهد، جابهجایی یک وظیفه خودکار به ساعات کمترافیک میتواند مشکلی را برطرف کند که ماهها باعث سردرگمی و عیبیابی بینتیجه شده بود.