بهترین جایگزینهای Dropbox برای میزبانی شخصی (Self-hosted)
مقایسه Nextcloud، Seafile و Syncthing برای میزبانی شخصی. بررسی دقیق هزینههای VPS، تفاوت توپولوژی همگامسازی و دلایل فنی که چرا همگامسازی فایل هرگز جایگزین پشتیبانگیری نمیشود.
کدام جایگزین Dropbox برای میزبانی شخصی (self-hosted) مناسب است؟
چهار جایگزین برای Dropbox وجود دارد که ارزش بررسی دارند: Nextcloud، Seafile، Syncthing و استفاده از object storage به همراه یک کلاینت. این گزینهها جایگزین یکدیگر نیستند. Nextcloud برای یک خانواده یا تیم کوچک که نیاز دارند فایلها را برای دیگران ارسال کنند، مناسب است. Seafile برای فرد یا تیمی که تعداد بسیار زیادی فایل کوچک را همگامسازی میکند و سرعت همگامسازی برایش مهمتر از نحوه ذخیرهسازی دادهها روی دیسک است، گزینه بهتری است. Syncthing برای فردی که میخواهد دستگاههای شخصی خود را همگامسازی کند و نیازی به اشتراکگذاری لینک با افراد خارج از شبکه ندارد، مناسب است. Object storage برای آرشیو کردن دادهها کاربرد دارد: فضایی ارزان برای دادههایی که بهندرت به آنها نیاز پیدا میکنید.
پیش از مقایسه قابلیتها، ابتدا نحوه عملکرد همگامسازی را انتخاب کنید. لیست قابلیتها در همه این سرویسها مشابه به نظر میرسد. توپولوژی شبکه، یعنی مشخص کردن اینکه کدام ماشین نسخه مرجع را نگه میدارد که سایر دستگاهها با آن توافق دارند، تعیینکننده این است که آیا پس از 6 ماه همچنان از انتخاب خود راضی خواهید بود یا خیر.
توپولوژی همگامسازی: سرور مرجع یا همتایان بدون سرور
دو طراحی مطرح است و بیشتر آنچه در ادامه میآید، به انتخاب شما بستگی دارد.
سرور مرجع (Server of record). سرویسهایی مانند Nextcloud، Seafile و object storage همگی به این روش کار میکنند. یک ماشین، که معمولاً یک VPS (سرور خصوصی مجازی) است، نسخهٔ معتبر را نگه میدارد. هر دستگاه با آن ماشین در ارتباط است. لپتاپ شما میتواند یک ماه خاموش باشد، دوباره روشن شود و همگامسازی را انجام دهد. یک گوشی با 6 GB فضای خالی میتواند زیرمجموعهای از فایلها را نگه دارد، در حالی که سرور همه چیز را در اختیار دارد. مرورگر میتواند به فایلها دسترسی پیدا کند؛ به همین دلیل است که امکان ایجاد لینکهای اشتراکگذاری وجود دارد.
همتایان بدون سرور (Peers with no server). سرویس Syncthing به این روش کار میکند. دستگاهها یکدیگر را پیدا کرده و لیست فایلها را مستقیماً از طریق یک اتصال رمزنگاریشده مبادله میکنند. هیچ نسخهای معتبر نیست: یک فایل فقط روی دستگاههایی وجود دارد که آن را نگه داشتهاند و در جای دیگری نیست. برای انتقال تغییرات بین دو دستگاه، هر دو باید همزمان آنلاین باشند. هیچ URL برای ارائه به دیگران وجود ندارد، زیرا هیچ ماشینی در حال سرویسدهی به یک صفحه نیست.
چهار پیامد در پی این موضوع وجود دارد که افراد معمولاً دیر با آنها مواجه میشوند:
- ارسال فایل برای شخصی که نرمافزار را نصب نمیکند، نیازمند یک سرور مرجع است. لینک در واقع یک URL است و URL نیازمند فرآیندی است که روی یک پورت گوش دهد.
- دسترسی به فایلها از ماشینی که کنترل آن را در دست ندارید (مثلاً لپتاپ کاری)، نیازمند یک سرور مرجع است.
- دستگاهی که هفتهها خاموش بوده، هنگام روشن شدن، اطلاعات را از سرور دریافت میکند. در تنظیمات همتا (peer)، دستگاه فقط زمانی همگام میشود که دستگاه دیگری که آن داده را دارد نیز آنلاین باشد. به همین دلیل است که بسیاری از کاربران Syncthing، یک نمونه (instance) را روی یک VPS به عنوان یک همتای همیشه روشن اجرا میکنند.
- فضای ذخیرهسازی به شکل متفاوتی محاسبه میشود. یک سرور مرجع یک نسخه کامل را به همراه آنچه هر دستگاه بهصورت محلی نگه میدارد، ذخیره میکند. چهار همتا که یک پوشه را به اشتراک میگذارند، چهار نسخه کامل را نگه میدارند، زیرا هر همتا کل پوشه را حفظ میکند.
Nextcloud: کاربران، گروهها و لینکهای عمومی
Nextcloud یک برنامه وب مبتنی بر PHP است. این برنامه فایلهای شما را به عنوان فایلهای معمولی در یک دایرکتوری داده ذخیره کرده و آنها را در یک پایگاه داده ردیابی میکند. شما میتوانید یک پوشه را با یک کاربر، یک گروه یا به صورت یک لینک عمومی دارای رمز عبور و تاریخ انقضا به اشتراک بگذارید. تاریخچه نسخهها بهصورت پیشفرض فعال است و فایلهای حذفشده ابتدا به سطل زباله منتقل میشوند. کلاینتهای دسکتاپ از Linux، macOS و Windows پشتیبانی میکنند و اپلیکیشنهای iOS و Android نیز رسمی هستند. اگر دلیل شما برای ترک Dropbox این است که دیگران باید فایلهای شما را دریافت کنند، این یک پاسخ صادقانه است.
هزینه این کار، قطعات متحرک آن است. یک نصب معمولی شامل یک وبسرور، PHP-FPM (مدیریت پردازشهای PHP)، یک پایگاه داده مانند MariaDB یا PostgreSQL و Redis برای قفلگذاری فایلها است. یک job پسزمینه هر 5 دقیقه از طریق cron یا یک systemd timer اجرا میشود. روی یک VPS با 1 GB رم، برنامه بالا میآید، اما یک آپلود سنگین یا یک دستور نگهداری طولانی occ با قاتل حافظه (OOM Killer) مواجه میشود. 2 GB رم را به عنوان حداقل برای تعداد کمی کاربر در نظر بگیرید و انتظار داشته باشید که پس از فعالسازی برنامههای بیشتر، به 4 GB نیاز پیدا کنید. هزینه دیگر، ارتقاها هستند: برنامههای موجود در app-store برای یک نسخه اصلی خاص از هسته ساخته شدهاند، بنابراین پیش از ارتقا، بررسی کنید که برنامههای مورد نیاز شما از نسخه اصلی بعدی پشتیبانی میکنند یا خیر.
Nextcloud زمانی کند میشود که یک حساب کاربری صدها هزار فایل کوچک داشته باشد، زیرا هر فایل یک ردیف در جدول کش فایل و یک فایل واقعی روی دیسک است و کلاینت دسکتاپ آنها را یکییکی بررسی میکند. در مقیاس خانگی، این مشکل هرگز پیش نمیآید. تعیین اندازه، TLS (امنیت لایه انتقال) و پشتیبانگیری در نصب Nextcloud مبتنی بر Docker با TLS و پشتیبانگیری پوشش داده شدهاند که پس از تصمیمگیری نهایی، میتوانید به آن مراجعه کنید.
یک هشدار در مورد دامنه عملکرد: Nextcloud همچنین تقویم، مخاطبین، یادداشتها و کتابخانه عکسهای شما را مدیریت میکند و هر برنامهای که فعال کنید، کار پسزمینه و یک مورد دیگر که میتواند مانع ارتقا شود، اضافه میکند. اگر مشکل اصلی شما عکسها هستند، یک ابزار اختصاصی آنها را بهتر مدیریت میکند: Immich به عنوان جایگزین self-hosted برای Google Photos را ببینید. اگر مشکل اصلی اسناد و ویکیها هستند، به جای انباشتن برنامهها روی سرور فایل خود، جایگزینهای self-hosted برای Notion را بررسی کنید. ویرایش آن اسناد در مرورگر، خود یک سرور جداگانه است نه یک برنامه Nextcloud، بنابراین پیش از آنکه فرض کنید حداقل 2 GB رم همچنان کافی است، مقایسه OnlyOffice با Collabora را بسنجید.
Seafile: طراحیشده برای تعداد بسیار زیادی از فایلهای کوچک
Seafile هر فایل را به بلوکهایی تقسیم کرده و آنها را در یک object store داخلی ذخیره میکند که با استفاده از hash محتوا آدرسدهی میشوند؛ این همان ایدهای است که git برای اشیاء خود به کار میبرد. واحد همگامسازی و اشتراکگذاری در اینجا یک library است، نه یک ساختار درختی از پوشهها. از آنجا که کلاینت به جای ارسال یک درخواست برای هر فایل، بلوکها و یک commit را آپلود میکند، همگامسازی یک دایرکتوری شامل 100,000 فایل کوچک بسیار سریعتر از پروتکلهای مبتنی بر فایل انجام میشود. بلوکهای یکسان فقط یک بار ذخیره میشوند، بنابراین کپی دوم از یک فایل بزرگ تقریباً هیچ فضای اضافهای اشغال نمیکند.
بهای این کار این است که فایلهای شما روی سرور دیگر به شکل فایلهای معمولی نیستند. اگر دایرکتوری ذخیرهسازی را باز کنید، با فایلهای شیء (object) مواجه میشوید که نامهای هگزادسیمال دارند. برای دسترسی به دادهها باید از کلاینت Seafile یا ابزارهای export و fsck خودِ Seafile استفاده کنید. پشتیبانگیری همچنان کار میکند، زیرا آن اشیاء در واقع فایلهای معمولی هستند، اما نمیتوانید یک فایل صفحه گسترده (spreadsheet) را با cp بازیابی کنید. اکنون تصمیم بگیرید که آیا این موضوع برای شما قابلقبول است یا خیر، زیرا این همان ویژگیای است که کاربران بعداً از آن پشیمان میشوند.
Seafile یک نسخه community و یک نسخه professional پولی ارائه میدهد. مرز بین این دو نسخه در releaseهای مختلف تغییر میکند، بنابراین پیش از برنامهریزی برای استفاده تیمی از یک قابلیت خاص، شرایط فعلی را در وبسایت آنها مطالعه کنید. کلاینتهای رسمی برای دسکتاپ و موبایل موجود هستند. کتابخانههای رمزگذاریشده (Encrypted libraries) در سمت کلاینت رمزگذاری میشوند، بنابراین سرور فقط متن رمزگذاریشدهای را ذخیره میکند که قادر به خواندن آن نیست. اگر رمز عبور را گم کنید، کتابخانه غیرقابل خواندن میشود؛ حتی برای خود شما. باز کردن یک کتابخانه رمزگذاریشده در مرورگر به معنای ارائه آن رمز عبور به نشست وب است، بنابراین نسخه قوی این تضمین امنیتی فقط در کلاینتهای دسکتاپ و موبایل وجود دارد.
هزینه منابع این سرویس نزدیک به Nextcloud است. شما در حال اجرای یک دیتابیس، یک حافظه کش (memory cache) و دو پردازش اپلیکیشن هستید، بنابراین 2 GB رم دوباره حداقل مقدار منطقی برای شروع است.
Syncthing: بدون نیاز به ورود به سیستم
Syncthing یک فایل اجرایی واحد به زبان Go است. این برنامه پوشهها را زیر نظر میگیرد، همتایان خود را از طریق یک سرور کشف (discovery server) یا یک رله (relay) پیدا میکند و دادهها را مستقیماً بین دستگاهها همگامسازی میکند. هیچ حساب کاربری و صفحه ورودی برای افرادی که با آنها همگامسازی میکنید وجود ندارد. شما دو دستگاه را از طریق ID جفت میکنید و پوشه را در هر دو طرف میپذیرید. این برنامه کمدردسرترین ابزار در این لیست است، زیرا بخش بسیار کمی برای اجرا دارد.
آنچه در اینجا از دست میدهید، کل ستون اشتراکگذاری است. ورودی آن به این صورت است: Device pairing only, no links. شما نمیتوانید لینکی را به یک مشتری، حسابدار یا خویشاوند بدهید. موبایل شکاف دیگر است: Android app, no official iOS. بخش FAQ خود پروژه در این باره صریح است: «تیم فعلی Syncthing هیچ برنامهای برای پشتیبانی رسمی از iOS در آینده قابل پیشبینی ندارد»، زیرا iOS پردازش پسزمینه را به اندازهای محدود میکند که همگامسازی قابلاطمینان را دشوار میسازد. کاربران iOS باید از برنامههای شخص ثالث استفاده کنند.
میزان استفاده از منابع کم است، با یک نکته که ارزش دانستن دارد. Syncthing برای هر فایلی که همگامسازی میکند، یک ورودی ایندکس نگه میدارد؛ بنابراین مصرف حافظه و زمان اولین اسکن، بیشتر با تعداد فایلها افزایش مییابد تا حجم کل آنها. هش کردن یک پوشه بزرگ در اولین بار، برای مدتی از CPU استفاده میکند و سپس به حالت پایدار میرسد. این برنامه روی کوچکترین پلنهای VPS بهراحتی اجرا میشود.
تداخلها (Conflicts) با نگه داشتن هر دو نسخه مدیریت میشوند. هنگامی که دو دستگاه یک فایل مشابه را در زمانی که به یکدیگر دسترسی ندارند تغییر میدهند، Syncthing یکی از نسخهها را تغییر نام میدهد و آن را در کنار نسخه دیگر نگه میدارد، بنابراین شما فایلهایی مانند notes.sync-conflict-20260802-141530-K7MB3QT.md را مشاهده خواهید کرد. هیچ چیزی از دست نمیرود. همچنین هیچ ادغامی (merge) صورت نمیگیرد و شما باید تداخل را بهصورت دستی حل کنید.
ذخیرهسازی شیء (Object Storage) با کلاینت: بایتهای ارزان، نه یک پوشه همگامسازی
ذخیرهسازی شیء به معنای یک باکت (bucket) سازگار با S3 (سرویس ذخیرهسازی ساده) است که یا بهصورت self-hosted با MinIO راهاندازی شده یا از یک ارائهدهنده اجاره شده است. شما با استفاده از یک ابزار به آن دسترسی پیدا میکنید: rclone از طریق خط فرمان، یا یک کلاینت دسکتاپ که باکت را بهعنوان یک درایو نمایش میدهد. اگر ترجیح میدهید بهجای شل (shell)، باکت را از طریق یک صفحه وب مرور کنید، چندین ابزار در این مقایسه مدیریتکنندههای فایل self-hosted وجود دارند که یک باکت S3 را بهعنوان backend میپذیرند و لینکهای اشتراکگذاری اختصاصی خود را روی آن ایجاد میکنند. اشتراکگذاری از طریق یک URL امضاشده (presigned URL) انجام میشود؛ لینکی که خودتان تولید میکنید و دارای زمان انقضای مشخص است. نسخهبندی (Versioning) یک تنظیم مربوط به باکت است: Bucket versioning, off by default، بنابراین هنگام ایجاد باکت آن را فعال کنید، زیرا این قابلیت برای اشیایی که قبلاً آپلود کردهاید اعمال نمیشود.
رفتار با یک باکت بهعنوان یک پوشه همگامسازی (sync folder)، همان جایی است که اشتباه رخ میدهد. بهصورت پیشفرض، هیچچیز دایرکتوری Documents شما را مانیتور نمیکند. rclone bisync همگامسازی دوطرفه انجام میدهد و مستندات خودِ rclone نیز صراحتاً به دقت لازم برای این کار اشاره دارد. آنچه ذخیرهسازی شیء بهخوبی انجام میدهد، قرارگیری در لایههای زیرین است: بهعنوان یک مقصد پشتیبانگیری یا لایه ذخیرهسازی در پشت یک اپلیکیشن. ذخیرهسازی شیء سازگار با S3 به صورت self-hosted با MinIO سمت سرور را پوشش میدهد.
هزینه منابع در اینجا غیرمعمول است. MinIO یک فایل اجرایی واحد است و در حالت idle مصرف کمی دارد. هزینهای که در واقع میپردازید مربوط به دیسک است و در یک VPS، این به معنای یک block volume است که بر اساس گیگابایت اجاره میشود، بهعلاوه پهنای باندی که برای انتقال اشیاء به داخل و خارج مصرف میکنید. هیچکدام از این موارد در free -h نمایش داده نمیشود، بنابراین پیش از تعیین اندازه آرشیو خود، هزینه واقعی یک VPS در ماه را مطالعه کنید.
مقایسه اشتراکگذاری، کلاینتهای موبایل و نسخهبندی
The data behind this chart
[
{
"tool": "Nextcloud",
"sharing": "Public links, users and groups",
"mobile": "Official iOS and Android apps",
"versioning": "On by default, plus trash"
},
{
"tool": "Seafile",
"sharing": "Public links with password and expiry",
"mobile": "Official iOS and Android apps",
"versioning": "Library history and snapshots"
},
{
"tool": "Syncthing",
"sharing": "Device pairing only, no links",
"mobile": "Android app, no official iOS",
"versioning": "Optional per folder, off by default"
},
{
"tool": "Object storage",
"sharing": "Presigned URLs you generate",
"mobile": "Third party clients only",
"versioning": "Bucket versioning, off by default"
}
]تمام 4 گزینه در یک ردیف قرار میگیرند. سه مورد از آنها میتوانند فایلی را تنها با استفاده از مرورگر به فردی ناشناس تحویل دهند. یکی از آنها فقط با دستگاههایی که مالک آنها هستید ارتباط برقرار میکند. بخش نسخهبندی در Seafile، یعنی Library history and snapshots، نیازمند یک نکته است: تاریخچه به ازای هر کتابخانه (library) نگهداری میشود، بنابراین حذف یک کتابخانه، تاریخچه آن را نیز پاک میکند.
خارج کردن دادهها
هزینه خروج (Exit cost) در حال حاضر ناچیز است اما کشف آن در آینده میتواند گران تمام شود؛ بنابراین پیش از تعهد به یک سرویس، آن را بررسی کنید.
Nextcloud فایلهای واقعی را در دایرکتوریهای واقعی ذخیره میکند، بنابراین یک tar از دایرکتوری دادهها باعث میشود حتی اگر برنامه دیگر هرگز اجرا نشود، به اسناد خود دسترسی داشته باشید. Syncthing همین کار را در تمام peerها انجام میدهد که قویترین سناریوی خروج در اینجا محسوب میشود: فایلها بهسادگی روی هر دستگاه موجود هستند. Object store در Seafile برای بازسازی بلوکها به فایلهای اصلی، به خودِ Seafile یا ابزارهای export آن نیاز دارد. برای Object storage نیز استفاده از rclone یا ابزارهای مشابه کافی است که تنها با یک دستور انجام میشود.
همگامسازی (Sync) پشتیبان نیست و همین شکاف، محل از دست رفتن دادههاست
هر ابزاری که در اینجا معرفی شده، تغییرات را بین ماشینها کپی میکند. حذف یک فایل نیز یک تغییر محسوب میشود. اگر پوشهای را از لپتاپ خود پاک کنید، کلاینت این موضوع را به سرور اطلاع میدهد، سرور آن را اعمال میکند و تمام دستگاههای دیگر نیز آن پوشه را حذف خواهند کرد. باجافزارها نیز از همین مسیر استفاده میکنند: فایلها را بهصورت محلی رمزنگاری میکنند، کلاینت تغییرات را مشاهده کرده و نسخههای رمزنگاریشده را آپلود میکند. همگامسازی بهدرستی کار کرده است، اما دادههای شما همچنان از دست رفتهاند.
سطلهای زباله و تاریخچه نسخهها (version history) این مشکل را تا حدی کاهش میدهند. با این حال، این موارد نیز منقضی میشوند، میتوانند توسط همان حسابی که اشتباه را مرتکب شده خالی شوند و روی همان دیسکی قرار دارند که نسخه اصلی در آن است. خرابی یک volume، فایلها و تاریخچه آنها را با هم از بین میبرد.
پشتیبان (Backup) یک کپی مجزا روی سختافزار جداگانه است که طبق برنامه تهیه شده و حداقل یکبار آن را بازیابی کردهاید. پایگاهداده را در همان فرآیندی که از فایلها پشتیبان میگیرید، ذخیره کنید. بازیابی دایرکتوری دادههای Nextcloud بدون پایگاهداده آن، نمونهای را به شما میدهد که از وجود آن فایلها بیاطلاع است و اجرای یک occ files:scan پس از آن، فایلها را بازیابی میکند اما اشتراکگذاریها و تاریخچه نسخههایی که در آن جداول ذخیره شده بودند، از دست میروند. پشتیبانگیری زمانبندیشده با restic از یک VPS به بررسی نسخه رمزنگاریشده و deduplicate شده این فرآیند میپردازد، از جمله اینکه چگونه بهجای فرض کردن موفقیتآمیز بودن پشتیبان، یک بازیابی را تست کنید.
انتخاب من
برای اکثر کسانی که این متن را میخوانند، Nextcloud گزینه مناسبی است. آنچه کاربران پس از ترک Dropbox دلتنگ آن میشوند، امکان ارسال لینک برای افرادی است که هیچ نرمافزاری نصب نمیکنند و همچنین باز کردن فایلها روی گوشی موبایل. Nextcloud با کلاینتهای رسمی و بدون هیچ سطح اشتراک پولی، هر دو نیاز را برطرف میکند و 2 GB رم، بهای منصفانهای برای آن است. من دو استثنا قائل هستم. اگر پوشه فقط متعلق به شماست و همیشه روی سختافزاری است که مالک آن هستید، از Syncthing استفاده کنید و از اینکه نیازی به patch کردن سرور یا محافظت از ورود به وب ندارید، لذت ببرید. اگر یک دایرکتوری کاری با صدها هزار فایل را همگامسازی میکنید، از Seafile استفاده کنید و برای دستیابی به سرعت، ذخیرهسازی غیرشفاف (opaque) آن را بپذیرید. Object storage باید به عنوان مقصد پشتیبانگیری در زیرمجموعه هر کدام از این ابزارها قرار بگیرد، نه به عنوان ابزار همگامسازی در مقابل آنها.
FAQ
آیا Syncthing یک ابزار پشتیبانگیری برای لپتاپ من است؟
خیر. Syncthing تغییرات را بین دستگاهها همگامسازی میکند و حذف یک فایل نیز مانند هر تغییر دیگری در نظر گرفته میشود؛ بنابراین فایلی که بهاشتباه حذف کنید، در عرض چند ثانیه از تمام دستگاههای متصل پاک خواهد شد. قابلیت file versioning برای هر پوشه میتواند کمککننده باشد، اما این قابلیت تا زمانی که آن را برای هر پوشه فعال نکنید، خاموش است. همیشه یک نسخه پشتیبان واقعی روی سختافزار مجزا و طبق یک زمانبندی مشخص تهیه کنید و حداقل یک بار عملیات بازیابی را تست کنید تا از صحت عملکرد آن مطمئن شوید.
آیا میتوانم Nextcloud و Syncthing را روی یک VPS مشابه اجرا کنم؟
بله، آنها روی پورتهای متفاوتی گوش میدهند و با یکدیگر تداخلی ندارند. هرگز یک پوشه Syncthing را به دایرکتوری دادههای Nextcloud اشاره ندهید. Nextcloud تمام فایلها را در دیتابیس خود ردیابی میکند؛ بنابراین فایلهایی که مستقیماً در دیسک و زیرمجموعه آن قرار میگیرند تا زمانی که دستور occ files:scan را اجرا نکنید، دیده نمیشوند و فایلهایی که از زیرمجموعه آن حذف شوند، ردیفهایی در دیتابیس باقی میگذارند که به هیچ فایلی اشاره نمیکنند. برای Syncthing یک دایرکتوری اختصاصی در نظر بگیرید یا آن دایرکتوری را به عنوان external storage به Nextcloud متصل کنید تا Nextcloud از وجود آن مطلع باشد.
کدامیک به من اجازه میدهد فایلی را با کسی که حساب کاربری ندارد به اشتراک بگذارم؟
Nextcloud و Seafile هر دو امکان ایجاد لینکهای عمومی با قابلیت تعیین رمز عبور و تاریخ انقضا را دارند. Object storage نیز به شما یک presigned URL میدهد که پس از زمان تعیینشده، خودبهخود غیرفعال میشود. Syncthing چنین قابلیتی ندارد. مدل اشتراکگذاری در آن بر پایه جفتسازی دستگاهها است؛ بنابراین طرف مقابل باید Syncthing را نصب کند، device ID خود را به شما بدهد و درخواست اشتراک پوشه را بپذیرد.
سرور به چه مقدار فضای دیسک نیاز دارد؟
برای یک سرور اصلی، فضای مورد نیاز را برابر با حجم کل دادههای اشتراکی، بهعلاوه فضای لازم برای تاریخچه نسخهها (version history) و سطل زباله، و همچنین فضای کاری برای آپلودهای در حال انجام در نظر بگیرید. تاریخچه نسخهها بخشی است که معمولاً دستکم گرفته میشود: نگهداری تمام نسخههای یک فایل 2 GB که روزانه تغییر میکند، حجم را بهسرعت افزایش میدهد؛ بنابراین از همان ابتدا یک سیاست نگهداری (retention policy) تعیین کنید. قرار دادن دادهها روی یک volume مجزا باعث میشود این رشد حجم، فایلسیستم root را تحت تأثیر قرار ندهد؛ چرا که پر شدن دیسک root باعث توقف کل سرور میشود، نه فقط یک آپلود خاص.