Product SiteDocumentation Site

9.10. پشتیبان‌گیری

پشتیبان‌گیری یکی از وظایف اصلی مدیرسیستم‌ها است، اما از آنجا که موضوع پیچیده‌ای است، ابزار آن نیز از پیچیدگی بیشتری برخوردار هستند.
برنامه‌های بسیاری برای اینکار وجود دارند از جمله amanda، bacula و BackupPC. این‌ها سیستم‌های کلاینت/سروری هستند که گزینه‌های بسیاری دارند با پیکربندی‌های به نسبت دشوار. برخی از آن‌ها به منظور غلبه بر این دشواری از رابط‌های کاربر-پسند تحت وب استفاده می‌کنند. اما دبیان شامل طیف گسترده‌ای از ابزارهای پشتیبان‌گیری است که با استفاده از دستور apt-cache search backup می‌توانید فهرستی از آنان را مشاهده کنید.
بجای تشریح هر یک از آن‌ها، در این بخش به بررسی استراتژی پشتیبان‌گیری در شرکت فالکوت می‌پردازیم که مدیرسیستم‌های آن تهیه کرده‌اند.
در شرکت فالکوت، فایل‌های پشتیبان دو هدف دارند: بازیابی فایل‌های پاک شده و بازیابی رایانه‌ای (رومیزی یا سرور) که هارد درایو آن دچار مشکل شده است.

9.10.1. پشتیبان‌گیری با استفاده از rsync

پشتیبان‌گیری در نوار مغناطیسی زمان و هزینه بالایی می‌برد، پس داده‌ها روی هارد درایوهای یک سرور اختصاصی نگهداری می‌شوند که در آن استفاده از RAID نرم‌افزاری ( قسمت 12.1.1, “RAID نرم‌افزاری” را مشاهده کنید) داده‌ها را از خطرات هارد درایو محافظت می‌کند. رایانه‌های رومیزی به صورت انفرادی پشتیبان‌گیری نمی‌شوند، اما به کاربران توصیه شده است که داده‌های شخصی خود را در فایل سرور دپارتمان ذخیره‌سازی کنند. دستور rsync (از بسته‌ای با همین نام) به صورت روزانه برای پشتیبان‌گیری از این سرورها استفاده می‌شود.
فضای موجود هارد درایو امکان پیاده‌سازی پشتیبان‌گیری روزانه را نمی‌دهد. به همین دلیل، دستور rsync به همراه کپی محتوای هارد پشتیبان‌گیری شده با پیوندهای سخت استفاده می‌شود، که این امر از استفاده بیش از حد فضای هارد درایو جلوگیری می‌کند. فرآیند rsync تنها فایل‌هایی را جایگزین می‌کند که از آخرین زمان پشتیبان‌گیری تغییر کرده باشند. با این مکانیزم تعداد زیادی فایل پشتیبان در فضای کمی از دیسک قابل ذخیره‌سازی هستند. از آنجا که تمام فایل‌های پشتیبان بلافاصله موجود و در دسترس هستند (برای نمونه، در دایرکتوری‌های مختلف از یک شبکه اشتراکی) به سرعت می‌توانید اختلاف محتوای آن‌ها در دو تاریخ مختلف را بدست آورید.
مکانیزم پشتیبان‌گیری به راحتی توسط برنامه dirvish پیاده‌سازی شده است. این برنامه از یک فضای ذخیره‌سازی پشتیبان (“بانک”) استفاده می‌کند که در آن فایل‌های پشتیبان را بر اساس بازه زمانی قرار می‌دهد (که به این فایل‌ها “صندوق” گفته می‌شود).
پیکربندی اصلی آن در فایل /etc/dirvish/master.conf قرار دارد. در این فایل می‌توان محل ذخیره‌سازی فایل‌های پشتیبان، فهرست “صندوق‌ها” برای مدیریت و مقدار پیش‌فرض برای تاریخ انقضای آن‌ها را مشخص کرد. باقی پیکربندی در فایل‌های bank/vault/dirvish/default.conf قرار دارد که تنظیمات مختص به هر یک از فایل‌ها را شامل می‌شود.

مثال 9.3. فایل /etc/dirvish/master.conf

bank:
    /backup
exclude:
    lost+found/
    core
    *~
Runall:
    root    22:00
expire-default: +15 days
expire-rule:
#   MIN HR    DOM MON       DOW  STRFTIME_FMT
    *   *     *   *         1    +3 months
    *   *     1-7 *         1    +1 year
    *   *     1-7 1,4,7,10  1
گزینه bank دایرکتوری مورد نظر جهت پشتیبان‌گیری را مشخص می‌کند. گزینه exclude به شما امکان استخراج فایل‌ها (یا نوع فایل‌ها) از فرآیند پشتیبان‌گیری را می‌دهد. گزینه Runall فهرستی از فایل‌ها به منظور پشتیبان‌گیری به همراه بازه زمانی است، که به شما امکان تخصیص تاریخ صحیح برای رونوشت‌گیری را می‌دهد، در صورتی که پشتیبان در زمان مقرر صورت نگرفته باشد. باید یک زمان قبل از زمان اجرای آن (که به صورت پیش فرض ۱۰:۰۴ بعد از ظهر در دبیان بر طبق فایل /etc/cron.d/dirvish است) را مشخص کنید. در نهایت، تنظیمات expire-default و expire-rule سیاست انقضای فایل‌های پشتبان را مشخص می‌کنند. نمونه بالا فایل‌های پشتیبانی که در اولین یکشنه هر فصل ایجاد می‌شوند را تا ابد نگاه می‌دارد، اگر یک سال از اولین یکشنبه هر ماه بگذرد و پس از گذشت سه ماه از سایر یکشنبه‌ها آن‌ها را پاک می‌کند. سایر فایل‌های پشتیبان برای ۱۵ روز نگاه داشته می‌شوند. ترتیب این قانون‌ها اهمیت دارد، چرا که Dirvish از آخرین قانون صحیح استفاده می‌کند یا گزینه expire-default در صورتی که هیچ گزینه expire-rule یافت نشود.

مثال 9.4. فایل /backup/root/dirvish/default.conf

client: rivendell.falcot.com
tree: /
xdev: 1
index: gzip
image-default: %Y%m%d
exclude:
    /var/cache/apt/archives/*.deb
    /var/cache/man/**
    /tmp/**
    /var/tmp/**
    *.bak
نمونه بالا تعداد مشخصی از فایل‌ها را برای پشتبان‌گیری مشخص کرده است: فایل‌های روی رایانه rivendell.falcot.com (برای داده‌های پشتیبان محلی کافی است فقط نام رایانه که با دستور hostname معلوم می‌شود را وارد کنیم)، به خصوص آن‌هایی که در مسیر ریشه قرار دارند (tree: /)، بجز آن‌هایی که در مسیر exclude قرار گرفته‌اند. پشتیبان‌گیری محدود به محتوای یک فایل‌سیستم است (xdev: 1). شامل فایل‌های سایر نقاط اتصال نمی‌باشد. یک شاخص برای فایل‌های ذخیره شده تولید می‌شود (index: gzip) و فایل اصلی به صورت image-default: %Y%m%d و با تاریخ روز ثبت می‌گردد.
گزینه‌های بسیاری موجود هستند که در صفحه راهنمای dirvish.conf(5) مستندسازی گشته‌اند. زمانی که این فایل‌های پیکربندی تنظیم گردند، باید هر مجموعه فایل را با دستور dirvish --vault vault --init راه‌اندازی اولیه کنید. از این زمان به بعد به صورت روزانه فراخوانی dirvish-runall به صورت خودکار اقدام به ایجاد رونوشت‌های پشتیبان کرده و آن‌هایی را که تاریخ گذشته باشند حذف می‌کند.

9.10.2. بازیابی رایانه‌هایی که فایل پشتیبان ندارند

رایانه‌های رومیزی، که پشتیبان‌گیری نمی‌شوند، به آسادگی از طریق DVD-ROM مخصوص با استفاده از Simple-CDD قابل نصب مجدد هستند ( قسمت 12.3.3, “Simple-CDD: یک راهکار جامع” را مشاهده کنید). از آنجا که این امر عملیات نصب را از ابتدا انجام می‌دهد هر گونه سفارشی‌کردن سیستم قبل از آن از بین می‌رود. اشکالی در این کار نیست چرا که تمام سیستم‌‌ها به یک دایرکتوری مرکزی LDAP برای مدیریت حساب کاربری متصل و بسیاری برنامه‌های رومیزی نیز به لطف dconf قابل پیکربندی هستند (برای اطلاعت بیشتر در این رابطه، قسمت 13.3.1, “GNOME” را مشاهده کنید).
مدیرسیستم‌های شرکت فالکوت از محدودیت حجمی سیاست پشتیبان‌گیری خود آگاه هستند. از آنجا که محافظت از سرور پشتیبان به خوبی یک نوار مغناطیسی موجود در یک محفظه ضد آتش نیست، آن‌ها این سرور را در یک اتاق جداگانه نصب کرده‌اند تا در زمان حادثه برای اتاق اصلی سرور، خطری این سرور پشتیبان را تهدید نکند. علاوه بر این، آن‌ها از یک مکانیزم پشتیبان‌گیری افزایشی با استفاده از DVD به صورت هفتگی استفاده می‌کنند - که در آن تنها فایل‌های تغییر کرده از آخرین عملیات پشتیبان‌گیری لحاظ شده‌اند.