راهنمای کامل
راهنمای بکاپگیری سرور و طراحی Disaster Recovery
بکاپگیری سرور یعنی از داده و پیکربندی سرویسها نسخهای نگهداری شود که بعد از خرابی دیسک، حذف اشتباه یا حمله باجافزار قابل بازگرداندن باشد. بازیابی بحران (Disaster Recovery) یک قدم جلوتر است و مشخص میکند سرویسها با چه ترتیبی، در چه مدتی و روی کدام سرور دوباره راه میافتند. بسیاری از سازمانها بکاپ دارند، اما هیچوقت از آن بازگردانی نکردهاند و نمیدانند برگرداندن یک سرور چند ساعت طول میکشد. نکتههای زیر ترتیب طراحی را از فهرست دادهها تا تست بازیابی توضیح میدهد.
از کجا شروع کنیم: فهرست دادهها، RPO و RTO
کار با فهرست سرویسها و دادهها شروع میشود: دیتابیسها، فایلهای کاربران، ماشینهای مجازی، ایمیل و پیکربندی سرورها. برای هر سرویس بپرسید اگر یک روز از دسترس خارج شود یا داده یک روز از دست برود، چه اتفاقی میافتد. RPO از پاسخ همین سؤال به دست میآید و تعیین میکند هر چند وقت نسخه بگیرید؛ با بکاپ شبانه، در بدترین حالت کار یک روز از دست میرود. RTO روش بازیابی را تعیین میکند، چون برگرداندن داده از بکاپ ساعتها طول میکشد و RTO کوتاهتر به Replication روی میزبان یا سایت دوم نیاز دارد.
این اهداف را با مدیران سازمان تعیین کنید و هزینه هر گزینه را کنارش بگذارید. RPO و RTO کوتاهتر فضای ذخیرهسازی بیشتر، لینک سریعتر یا سختافزار دوم میخواهد و همه سرویسها به آن نیاز ندارند. سایتی که کم تغییر میکند ممکن است با بکاپ روزانه کافی باشد، در حالی که دیتابیس سفارشها یا حسابداری فاصلههای کوتاهتری لازم دارد.
قاعده 3-2-1 و محافظت از بکاپ در برابر باجافزار
قاعده 3-2-1 میگوید از داده مهم سه نسخه داشته باشید، روی دو نوع ذخیرهسازی متفاوت، و دستکم یکی از آنها بیرون از محل سرور اصلی باشد. باجافزارها معمولاً پیش از رمزگذاری سراغ بکاپها میروند، پس نسخهای که با همان حساب کاربری سرور اصلی قابل حذف باشد محافظت کافی ندارد. برای مخزن بکاپ حساب و رمز جدا تعریف کنید، اگر ذخیرهسازی قفل تغییرناپذیری دارد آن را فعال کنید و یک نسخه را آفلاین یا بیرون از دسترس شبکه اصلی نگه دارید. داده را هم پیش از ارسال به ذخیرهسازی S3-compatible رمزنگاری کنید.
Snapshot و RAID جای بکاپ را نمیگیرند. Snapshot روی همان استوریج ماشین نگهداری میشود و RAID حذف اشتباه یا رمزگذاری را فوراً روی همه دیسکها تکرار میکند. اگر حمله رخ داده و فایلها رمزگذاری شدهاند، کار از بازیابی از باجافزار شروع میشود و طرح بکاپ جدید بعد از پاکسازی نوشته میشود.
انتخاب ابزار بکاپ بر اساس محیط
ابزار باید با بستر هماهنگ باشد. Veeam Backup & Replication برای VMware، Hyper-V و سرور فیزیکی بکاپ سازگار با برنامه میگیرد و Proxmox Backup Server برای ماشینهای Proxmox VE بکاپ افزایشی با حذف داده تکراری دارد؛ طراحی خود بستر مجازی در خدمات مجازیسازی سرور انجام میشود. روی سرورهای لینوکسی، restic و borg نسخههای رمزنگاریشده با تاریخچه میسازند. rsync بهتنهایی فقط فایلها را همگام میکند، پس اگر فایلی در مبدأ حذف یا خراب شود، در همگامسازی بعدی همان تغییر به مقصد هم میرسد، مگر آنکه نسخههای قدیمی جداگانه نگهداری شوند.
از فایلهای در حال استفاده دیتابیس کپی مستقیم نگیرید، چون نسخهای که وسط نوشتن گرفته شود ممکن است باز نشود. برای MySQL و PostgreSQL خروجی منظم با ابزارهای خود دیتابیس یا بکاپ سازگار با برنامه بگیرید. روی هاستها، بکاپ حسابهای cPanel و DirectAdmin ایمیل، دیتابیس و تنظیمات هر حساب را یکجا نگه میدارد.
تست بازیابی و Runbook
بکاپی که هیچوقت بازگردانده نشده، ممکن است روز حادثه ناقص، خراب یا بدون دیتابیس از آب درآید. تست را در شبکهای جدا از محیط اصلی انجام دهید تا سرویس بازیابیشده با سرور اصلی تداخل نکند. در هر تست این موارد را بررسی میکنیم:
- بازگرداندن یک سرور یا ماشین کامل
- باز کردن دیتابیس بازیابیشده و بررسی آخرین رکوردها
- بازگرداندن چند فایل از نسخههای قدیمیتر
- اندازهگیری زمان کل و مقایسه آن با RTO هدف
Runbook بازیابی مکتوب میکند چه کسی، چه کاری و به چه ترتیبی انجام دهد. ترتیب راهاندازی اهمیت دارد، چون سرویسهایی مثل DNS و Active Directory باید پیش از دیتابیس و دیتابیس پیش از اپلیکیشن بالا بیایند. نسخهای از Runbook و اطلاعات دسترسی به مخزن بکاپ را بیرون از سرورهایی نگه دارید که قرار است بازیابی شوند. هشدار Jobهای ناموفق را هم فعال کنید و طرح را با هر تغییر سرورها بهروز کنید.
زمان و هزینه بکاپ و DR به چه بستگی دارد؟
تعداد سرورها و سرویسها، حجم داده و سرعت تغییر آن، اهداف RPO و RTO و نیاز به Replication یا سایت دوم پایه برآورد هستند. هزینه فضای ذخیرهسازی و لایسنس نرمافزار جداست و فاصله تستهای بازیابی در قرارداد مشخص میشود. اگر نمیدانید بکاپ فعلی قابل بازگرداندن است یا نه، از بررسی رایگان وضعیت بکاپ شروع کنید. برای برآورد، فهرست سرورها، حجم تقریبی داده، ابزار بکاپ فعلی و محل نگهداری نسخهها را بفرستید.
کلید یا رمز رمزنگاری بکاپ را فقط روی همان سروری که از آن بکاپ میگیرید نگه ندارید. اگر آن سرور از دست برود یا رمزگذاری شود، بکاپ رمزنگاریشده بدون کلید قابل بازگرداندن نیست.