
با گرانشدن و تغییر سیاستهای سرویسهای ذخیرهسازی ابری مانند Google Drive و OneDrive، برخی کاربران به فکر راهکارهای محلی و خصوصیتر برای پشتیبانگیری (Backup) میافتند. در همین مسیر، یک کاربر تجربه خود از راهاندازی یک سرور Kopia را منتشر کرده است؛ سروری که همه دستگاههای خانه را به یک مقصد پشتیبانگیری مشترک متصل میکند و با حذف دادههای تکراری (Deduplication) فضای دیسک را به شکلی محسوس ذخیره میکند.
چرا سرور پشتیبانگیری محلی؟
به گفته این کاربر، سرویسهای ابری نهتنها ارزان نیستند، بلکه سیاستهایشان مرتب تغییر میکند و همین موضوع تجربهای خصوصی و قابلکنترل را به گزینهای جذاب تبدیل میکند. او پیشتر ابزارهایی مانند Nextcloud را آزموده بود، اما به سادگی و راهکاری نیاز داشت که تنها پوشههای مشخص را به یک درایو مقصد منتقل کند. انجام این کار با انتقال شبکه و اسکریپت هم ممکن است، اما Kopia را قابلتنظیمتر میداند. اکنون همه دستگاهها پوشههای حیاتی خود را به یک سرور Kopia میفرستند و قابلیت حذف دادههای تکراری، فضای ارزشمندی را آزاد میکند.
راهاندازی سرور و ساخت مخزن رمزنگاریشده
سرور این پروژه یک کلاینت نازک (Thin Client) مدل HP t620 است که با حدود ۴۵ دلار خریداری و ارتقا یافته؛ با ۸ گیگابایت حافظه DDR3 و یک SSD از نوع M.2 SATA با ظرفیت ۱۲۸ گیگابایت. به گفته کاربر، این مشخصات برای اجرای سرور Kopia در Docker بیش از حد کافی است. کل پشته نرمافزاری و سیستمعامل تنها حدود ۴۰۰ مگابایت حافظه مصرف میکنند و نسخه x86 از DietPi بدون محیط دسکتاپ در این کاهش مصرف نقش مهمی دارد. راهاندازی Docker نیز ساده توصیف شده است.
هدف اولیه، پشتیبانگیری از پوشههایی مانند اسکریپتها و اسناد روی رایانه ویندوزی و همچنین فایلهای Docker روی رزبریپای بود. کاربر میتوانست از ابزار نصب داخلی DietPi برای پشتیبانگیری کل سیستم روی یک درایو خارجی استفاده کند، اما آن روش به یک درایو USB برای هر دستگاه نیاز داشت؛ بنابراین ساخت یک سرور مشترک منطقیتر به نظر میرسید. او یک مخزن رمزنگاریشده (Encrypted Repository) در Kopia ساخت تا همه فایلهای انتخابشده برای پشتیبانگیری امن بمانند. OpenSSL در تولید رمزهای عبور قوی کمک کرد، یک فایل رمز عبور خصوصی برای نگهداری اعتبارنامهها و رمز رمزنگاری ایجاد شد و دسترسی کاربر root به آن محدود شد. پس از تغییر کوتاه در فایل Docker Compose، کانتینر Kopia بدون مشکل اجرا شد.
فعالسازی TLS و اتصال دستگاهها
مرحله بعد، تنظیم TLS برای ارتباط امن بود. OpenSSL همچنین برای تولید یک گواهی خودامضا (Self-Signed Certificate) به کار رفت. سپس فایل Docker Compose مربوط به Kopia بهروزرسانی شد تا از TLS پشتیبانی کند، کانتینر دوباره ساخته شد و Kopia استفاده از TLS را آغاز کرد. رابط وب (Web UI) هر بار که کاربر به پرتال وب دسترسی پیدا میکند، اعتبارنامه کاربری را درخواست میکند.
برای اتصال رایانه ویندوزی و رزبریپای به سرور، کاربر نسخه گرافیکی (GUI) Kopia را برای سادگی انتخاب کرد. کافی است گزینه مخزن سرور Kopia انتخاب شود و اعتبارنامه کاربری وارد شود. سرور از طریق اتصال HTTPS روی پورت 51515 در دسترس است و کاربر باید اثر انگشت گواهی (Certificate Fingerprint) را نیز ارائه میداد. نکته غیرمعمول این بود که پیش از اتصال دستگاهها، باید کاربران بهصورت دستی اضافه میشدند؛ بنابراین یک کاربر برای رایانه ویندوزی و یکی برای رزبریپای ساخته شد. پس از آن، فرایند اتصال خطای جدیدی تولید نکرد و سرور در دسترس قرار گرفت. تنها کار باقیمانده، انتخاب پوشههای موردنظر برای پشتیبانگیری بود.
حذف دادههای تکراری چگونه فضا ذخیره میکند؟
Kopia تنظیم بسامد اسنپشات (Snapshot Frequency)، نگهداشت (Retention) و بسیاری از ویژگیهای دیگر را آسان میکند، اما بزرگترین مزیت آن نحوه ذخیره و مدیریت اسنپشاتهاست. در یک راهبرد ساده، ممکن است اسنپشاتها حتی وقتی فایلها تغییری نکردهاند ذخیره شوند؛ این کار فضای زیادی هدر میدهد، چون چند نسخه از یک داده یکسان باقی میماند. Kopia سیاستی ارائه میکند که اسنپشاتهای یکسان را حتی در زمانبندی تکرارشونده نادیده میگیرد و دستگاه کلاینت را مجبور میکند فقط زمانی اسنپشات ذخیره کند که فایلها تغییر کرده باشند.
این نرمافزار همچنین به پشتیبانگیری قبلی ارجاع میدهد و در اسنپشات جدید تنها فایلهای تغییرکرده را ذخیره میکند. برای نمونه، اگر دو فایل تازه در پوشه اسناد ذخیره شود، اجرای بعدی Kopia یک اسنپشات سبکتر میسازد که فایلهای تازهاضافهشده را در بر میگیرد، اما به فایلهای اسنپشات قبلی ارجاع میدهد. هنگام بازیابی (Restore) این اسنپشات، همه فایلها بازگردانده میشوند. به گفته کاربر، این سیستم برای ذخیره فضا هوشمندانه است و دلیل ترجیح او محسوب میشود. حتی اگر چند اسنپشات نگهداری شود، نمونههای بعدی بسیار کوچکتر از اسنپشات اول هستند. اگر رایانه ویندوزی یا رزبریپای از کار بیفتد، سرور برای بازیابی آنها به کار میآید. ظاهر رابط گرافیکی Kopia ممکن است چشمگیر نباشد، اما برای این کاربر مسئله مهمی نیست.
یک سرور برای چند دستگاه
سرور Kopia این کاربر درخواستهای پشتیبانگیری از چند دستگاه را مدیریت میکند و به توان محاسباتی زیادی نیاز ندارد. روتر و سرور پشتیبانگیری به یک پریز اینورتر متصل شدهاند تا سرور در قطعیهای مکرر برق نیز فعال بماند. میتوان سرور Kopia را روی یک برد تکبردی (SBC) یا مینیپیسی هم ساخت و این کلاینت نازک نیز مصرف برق پایینی دارد. برای امنیت بیشتر، میتوان یک پشتیبان ثانویه از سرور Kopia روی یک SSD یا HDD از نوع USB گرفت تا فایلهای رمزنگاریشده حتی در صورت خرابی SSD داخلی سالم بمانند. Kopia یک نرمافزار متنباز (Open-Source) برای پشتیبانگیری است که میتوان آن را خودمیزبان (Self-Hosted) کرد و به محل ذخیرهسازی محلی یا ابری موردنظر متصل ساخت.