بهترین جایگزینهای Dropbox برای میزبانی شخصی
مقایسه Nextcloud، Seafile و Syncthing برای میزبانی شخصی. بررسی هزینههای واقعی روی VPS، تفاوت توپولوژی همگامسازی و دلایل فنی اینکه چرا همگامسازی فایل به معنای پشتیبانگیری نیست.
کدام جایگزین Dropbox برای میزبانی شخصی (self-hosted) مناسب است؟
چهار جایگزین برای Dropbox جهت میزبانی شخصی وجود دارد که ارزش بررسی دارند: Nextcloud، Seafile، Syncthing و استفاده از object storage به همراه یک کلاینت. این گزینهها جایگزین یکدیگر نیستند. Nextcloud برای یک خانواده یا تیم کوچک که نیاز دارند فایلها را برای دیگران ارسال کنند، مناسب است. Seafile برای یک فرد یا تیمی که تعداد بسیار زیادی فایل کوچک را همگامسازی میکند و سرعت همگامسازی برایش مهمتر از نحوه ذخیرهسازی دادهها روی دیسک است، گزینه بهتری است. Syncthing برای فردی که میخواهد دستگاههای شخصی خود را همگامسازی کند و نیازی به اشتراکگذاری لینک با افراد خارج از آن شبکه ندارد، مناسب است. Object storage برای آرشیو کردن دادهها کاربرد دارد: فضایی ارزان برای دادههایی که بهندرت به آنها نیاز پیدا میکنید.
پیش از مقایسه قابلیتها، بر اساس نحوه عملکرد همگامسازی انتخاب کنید. لیست قابلیتها در همه این سرویسها مشابه به نظر میرسد. توپولوژی شبکه، یعنی مشخص کردن اینکه کدام ماشین نسخه مرجع (که سایر ماشینها با آن توافق دارند) را نگه میدارد، تعیینکننده این است که آیا پس از 6 ماه همچنان از انتخاب خود راضی خواهید بود یا خیر.
توپولوژی همگامسازی: سرور مرجع یا همتایان بدون سرور
دو طراحی برای این کار وجود دارد و بیشتر آنچه در ادامه میآید، به انتخاب شما بستگی دارد.
سرور مرجع. Nextcloud، Seafile و object storage همگی به این روش کار میکنند. یک ماشین، که معمولاً یک VPS (سرور خصوصی مجازی) است، نسخه معتبر را نگهداری میکند. هر دستگاه با آن ماشین ارتباط برقرار میکند. لپتاپ شما میتواند یک ماه خاموش باشد، دوباره روشن شود و اطلاعات خود را بهروز کند. یک گوشی با 6 GB فضای خالی میتواند زیرمجموعهای از فایلها را نگه دارد، در حالی که سرور همه چیز را در خود دارد. یک مرورگر میتواند به فایلها دسترسی پیدا کند؛ به همین دلیل است که امکان ایجاد لینکهای اشتراکگذاری وجود دارد.
همتایان بدون سرور. Syncthing به این روش کار میکند. دستگاهها یکدیگر را پیدا کرده و لیست فایلها را مستقیماً از طریق یک اتصال رمزنگاریشده مبادله میکنند. هیچ نسخهای معتبرتر از دیگری نیست: یک فایل فقط روی دستگاههایی وجود دارد که آن را نگه داشتهاند و در جای دیگری نیست. برای انتقال تغییرات، دو دستگاه باید همزمان آنلاین باشند. هیچ URLای برای ارائه به دیگران وجود ندارد، زیرا هیچ ماشینی در حال سرویسدهی به یک صفحه وب نیست.
چهار پیامد از این موضوع ناشی میشود که افراد معمولاً دیر با آنها مواجه میشوند:
- ارسال فایل برای شخصی که نرمافزار را نصب نمیکند، نیازمند یک سرور مرجع است. یک لینک در واقع یک URL است و URL نیازمند فرآیندی است که روی یک پورت گوش دهد.
- دسترسی به فایلها از ماشینی که کنترل آن را در دست ندارید، مثلاً لپتاپ کاری، نیازمند یک سرور مرجع است.
- دستگاهی که برای هفتهها خاموش بوده، به محض روشن شدن، اطلاعات خود را از سرور دریافت میکند. در یک ساختار همتا (peer)، دستگاه فقط زمانی بهروز میشود که دستگاه دیگری که آن دادهها را دارد نیز آنلاین باشد. به همین دلیل است که بسیاری از کاربران Syncthing یک نمونه از آن را روی یک VPS به عنوان یک همتای همیشه روشن اجرا میکنند.
- نحوه محاسبه فضای ذخیرهسازی متفاوت است. یک سرور مرجع یک نسخه کامل را به اضافه آنچه هر دستگاه بهصورت محلی نگه میدارد، در خود جای میدهد. چهار همتا که یک پوشه را به اشتراک میگذارند، چهار نسخه کامل را نگه میدارند، زیرا هر همتا کل پوشه را حفظ میکند.
Nextcloud: کاربران، گروهها و لینکهای عمومی
Nextcloud یک برنامه وب مبتنی بر PHP است. این برنامه فایلهای شما را به صورت فایلهای معمولی در یک دایرکتوری داده ذخیره کرده و آنها را در یک پایگاه داده ردیابی میکند. شما میتوانید یک پوشه را با یک کاربر، یک گروه یا به صورت یک لینک عمومی که دارای رمز عبور و تاریخ انقضا است، به اشتراک بگذارید. تاریخچه نسخهها به صورت پیشفرض فعال است و فایلهای حذفشده ابتدا به سطل زباله منتقل میشوند. کلاینتهای دسکتاپ از Linux، macOS و Windows پشتیبانی میکنند و اپلیکیشنهای iOS و Android نیز رسمی هستند. اگر دلیل شما برای ترک Dropbox این است که دیگران نیاز دارند فایلهای شما را دریافت کنند، این یک پاسخ صادقانه است.
هزینه این کار، قطعات متحرک آن است. یک نصب معمولی شامل یک وبسرور، PHP-FPM (مدیریت پردازش PHP)، یک پایگاه داده مانند MariaDB یا PostgreSQL و Redis برای قفل کردن فایلها است. یک job پسزمینه هر 5 دقیقه از طریق cron یا یک systemd timer اجرا میشود. روی یک VPS با 1 گیگابایت رم، برنامه بالا میآید، اما یک آپلود بزرگ یا یک دستور نگهداری طولانی occ با قاتل حافظه (OOM Killer) مواجه میشود. 2 گیگابایت رم را به عنوان حداقل برای تعداد کمی کاربر در نظر بگیرید و انتظار داشته باشید که با فعال کردن برنامههای بیشتر، به 4 گیگابایت نیاز پیدا کنید. هزینه دیگر، ارتقاها هستند: برنامههای فروشگاه اپلیکیشن برای یک نسخه اصلی خاص ساخته شدهاند، بنابراین پیش از ارتقا، بررسی کنید که برنامههای مورد نیاز شما از نسخه اصلی بعدی پشتیبانی میکنند یا خیر.
Nextcloud زمانی که یک حساب کاربری صدها هزار فایل کوچک را نگه میدارد کند میشود، زیرا هر فایل یک ردیف در جدول کش فایل و یک فایل واقعی روی دیسک است و کلاینت دسکتاپ آنها را یکییکی بررسی میکند. در مقیاس خانگی، این مشکل هرگز پیش نمیآید. تعیین اندازه، TLS (امنیت لایه انتقال) و پشتیبانگیری در نصب Nextcloud مبتنی بر Docker با TLS و پشتیبانگیری پوشش داده شدهاند که پس از تصمیمگیری نهایی، باید به آنجا مراجعه کنید.
یک هشدار در مورد دامنه عملکرد: Nextcloud تقویم، مخاطبین، یادداشتها و کتابخانه عکس شما را نیز مدیریت میکند و هر برنامهای که فعال میکنید، کار پسزمینه و یک مورد دیگر که میتواند مانع ارتقا شود را اضافه میکند. اگر عکسها مشکل اصلی هستند، یک ابزار اختصاصی آنها را بهتر مدیریت میکند: Immich به عنوان جایگزین self-hosted برای Google Photos را ببینید. اگر اسناد و ویکیها مشکل اصلی هستند، به جای انباشتن برنامهها روی سرور فایل خود، به جایگزینهای Notion برای self-hosting نگاهی بیندازید. ویرایش آن اسناد در مرورگر، به جای یک برنامه Nextcloud، دوباره یک سرور جداگانه است، بنابراین پیش از آنکه فرض کنید حداقل 2 گیگابایت رم هنوز کافی است، مقایسه OnlyOffice با Collabora را بسنجید.
Seafile: طراحیشده برای تعداد بسیار زیادی از فایلهای کوچک
Seafile هر فایل را به بلوکهایی تقسیم کرده و آنها را در یک ذخیرهساز شیء (object store) داخلی بر اساس هش محتوا ذخیره میکند؛ همان ایدهای که git برای اشیاء خود استفاده میکند. واحد همگامسازی و اشتراکگذاری در اینجا یک کتابخانه (library) است، نه یک ساختار درختی از پوشهها. از آنجا که کلاینت به جای ارسال یک درخواست برای هر فایل، بلوکها و یک commit را آپلود میکند، همگامسازی یک دایرکتوری شامل 100,000 فایل کوچک بسیار سریعتر از پروتکلهای مبتنی بر فایل انجام میشود. بلوکهای یکسان فقط یکبار ذخیره میشوند، بنابراین کپی دوم از یک فایل بزرگ تقریباً هیچ فضای اضافهای اشغال نمیکند.
بهای این کار این است که فایلهای شما روی سرور دیگر به شکل فایلهای معمولی نیستند. اگر دایرکتوری ذخیرهسازی را باز کنید، با فایلهای شیء (object files) با نامهای هگزادسیمال مواجه میشوید. برای دسترسی به دادهها باید از کلاینت Seafile یا ابزارهای export و fsck خودِ Seafile استفاده کنید. پشتیبانگیری همچنان کار میکند، زیرا آن اشیاء در واقع فایلهای معمولی هستند، اما نمیتوانید یک فایل اکسل را با cp بازیابی کنید. همین حالا تصمیم بگیرید که آیا این موضوع برای شما قابلقبول است یا خیر، زیرا این همان ویژگیای است که کاربران بعداً از آن پشیمان میشوند.
Seafile دارای یک نسخه Community و یک نسخه تجاری Professional است و مرز بین قابلیتهای این دو نسخه در نسخههای مختلف تغییر میکند؛ بنابراین پیش از برنامهریزی برای تیم خود بر اساس یک قابلیت خاص، شرایط فعلی را در وبسایت آنها مطالعه کنید. کلاینتهای رسمی برای دسکتاپ و موبایل موجود هستند. کتابخانههای رمزگذاریشده در سمت کلاینت رمزگذاری میشوند، بنابراین سرور فقط متن رمزگذاریشدهای را ذخیره میکند که قادر به خواندن آن نیست. اگر رمز عبور (passphrase) را گم کنید، کتابخانه برای هیچکس، حتی خود شما، قابل خواندن نخواهد بود. باز کردن یک کتابخانه رمزگذاریشده در مرورگر به معنای ارائه آن رمز عبور به نشست وب است، بنابراین نسخه قوی این تضمین امنیتی فقط در کلاینتهای دسکتاپ و موبایل وجود دارد.
هزینه منابع این سرویس نزدیک به Nextcloud است. شما در حال اجرای یک پایگاه داده، یک حافظه کش (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 پیدا میکنید. هیچ چیزی از بین نمیرود. هیچ چیزی هم ادغام نمیشود و شما باید تداخل را به صورت دستی برطرف کنید.
ذخیرهسازی شیء (Object Storage) با کلاینت: بایتهای ارزان، نه یک پوشه همگامسازی
ذخیرهسازی شیء به معنای یک باکت (bucket) سازگار با S3 (سرویس ذخیرهسازی ساده) است؛ که یا بهصورت self-hosted با MinIO راهاندازی شده و یا از یک ارائهدهنده اجاره شده است. شما با استفاده از یک ابزار به آن دسترسی پیدا میکنید: rclone از طریق خط فرمان، یا یک کلاینت دسکتاپ که باکت را بهعنوان یک درایو نمایش میدهد. اشتراکگذاری از طریق 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، نیازمند یک نکته است: تاریخچه برای هر کتابخانه بهصورت جداگانه نگهداری میشود، بنابراین حذف یک کتابخانه منجر به حذف تاریخچه آن نیز خواهد شد.
خروج دادهها و انتقال آنها
هزینهٔ خروج دادهها در حال حاضر ناچیز است، اما کشف آن در آینده میتواند گران تمام شود؛ بنابراین پیش از تعهد به یک سرویس، این موضوع را بررسی کنید.
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) و سطل زباله (trash)، بهعلاوه فضای کاری برای آپلودهای در حال انجام در نظر بگیرید. تاریخچه نسخهها بخشی است که معمولاً دستکم گرفته میشود: نگهداری تمام نسخههای یک فایل 2 گیگابایتی که روزانه تغییر میکند، بهسرعت فضا را پر میکند؛ بنابراین از همان ابتدا یک سیاست نگهداری (retention policy) تعیین کنید. قرار دادن دادهها روی یک volume جداگانه باعث میشود این رشد حجم، فایلسیستم root را تحت تأثیر قرار ندهد؛ چرا که پر شدن دیسک root میتواند کل سرور را از کار بیندازد، در حالی که پر شدن یک volume جداگانه فقط یک آپلود را متوقف میکند.