لماذا تستضيف التخزين الكائني بنفسك
يُفوتر مزودو السحابة التخزين وطلبات GET/PUT والإخراج بشكل خاص — خاصة حين تنتقل بياناتك إلى المستخدم. على VPS بسعر ثابت لا شيء من هذا: تخدم نقطة S3 أي عدد من الطلبات دون مفاجآت في نهاية الشهر. ولأن الواجهة هي S3 القياسية، تتصل أدواتك الحالية — rclone وrestic وaws-cli وأي SDK S3 — دون تعديل. فضلاً عن التكلفة، تستعيد السيادة على بياناتك: ملفاتك تبقى على خادمك دون أن تمر بأطراف ثالثة.
ما يقدمه RustFS مقارنةً بالبدائل
- لوحة ويب مدمجة على المنفذ 9001 — Garage ليس لديه لوحة، وMinIO يتطلب ترخيصاً منفصلاً منذ 2021
- ملف ثنائي Rust واحد في حاوية واحدة — دون تبعية PostgreSQL
- بيانات اعتماد S3 مُولَّدة تلقائياً وتظهر في لوحة ServOrbit
- Apache 2.0 — لا ميزة محجوبة وراء إصدار تجاري
- نقطة
/healthعلى المنفذ 9000 لمجسات المراقبة - بدء سريع: الصورة تقل عن 60 ميجابايت والحاوية سليمة في أقل من 30 ثانية
المتطلبات المسبقة
خادم VPS من ServOrbit بـ 2 جيجابايت من الذاكرة على الأقل ووحدة SSD مُحجَّمة حسب احتياجاتك. Docker مثبَّت تلقائياً. لا يُشترط اسم نطاق للبدء: الوصول عبر أنفاق SSH على المنفذين 9001 و9000.
التثبيت خطوة بخطوة
ثبّت RustFS من المتجر
من لوحة ServOrbit اختر خادمك ثم اختر RustFS من المتجر. يُنشر حاوية
rustfs/rustfs:latestمع وحدة تخزين Docker مسمّاة. يُولَّد اعتمادان:RUSTFS_ACCESS_KEYوRUSTFS_SECRET_KEY، يظهران في لوحة ServOrbit.افتح لوحة الويب
أنشئ نفقاً SSH:
ssh -L 9001:127.0.0.1:<port> root@<ip>ثم افتح
http://localhost:9001/rustfs/console/وسجّل الدخول.أنشئ حاوية تخزين وعيّن السياسات
انقر Create Bucket في اللوحة وسمِّها. يمكنك تعيين سياسة وصول:
ReadOnlyللأصول العامة، أوReadWriteللتطبيقات، أو تركها خاصة.اربط عميل S3
افتح نفقاً للـ API:
ssh -L 9000:127.0.0.1:9000 root@<ip>ثم:
mc alias set mystore http://localhost:9000 <ACCESS_KEY> <SECRET_KEY> mc ls mystoreاربط نطاقاً (اختياري)
لوصول خارجي دون نفق، اربط نطاقاً من لوحة ServOrbit — سيُوكَّل nginx تلقائياً عبر HTTPS.
حالات الاستخدام الشائعة
نسخ قواعد البيانات احتياطياً: وجِّه pg_dump | rclone rcat mystore:backups/dump.sql.gz إلى نقطة RustFS. تخزين ملفات التطبيقات: اجعل تطبيقك يكتب التحميلات في حاوية RustFS بدلاً من القرص المحلي. ذاكرة تخزين مؤقت لـ CI/CD: خزِّن كائنات البناء بين المشاريع.
استمرارية البيانات واستراتيجية النسخ الاحتياطي
يُبقي وحدة Docker rustfs-data بياناتك عبر إعادات التشغيل والتحديثات. لحمايتها من ضياع VPS، صدِّرها بانتظام:
# snapshot الوحدة إلى ملف محلي
docker run --rm -v rustfs-data:/data alpine tar czf - /data > rustfs-backup.tar.gzللنسخ الاحتياطي الآلي، جهِّز مهمة cron ترسل هذه snapshots إلى خادم ثانٍ أو تخزين خارجي. يمكنك أيضاً تفعيل نسخ bucket-to-bucket إذا كنت تملك نقطة S3 ثانية متوافقة. للتحقق من سلامة الاستعادة، استخرج الأرشيف وافحص الملفات قبل أي استعادة في الإنتاج. لاستراتيجية 3-2-1 كاملة، راجع دليلنا حول [النسخ الاحتياطي بـ restic](/blog/sauvegardes-restic-vps).
RustFS مقابل MinIO مقابل Garage: أيهما تختار؟
الثلاثة خوادم S3 متوافقة ومفتوحة المصدر، لكن بمفاضلات مختلفة. MinIO الأكثر نضجاً وانتشاراً، غير أن لوحة الويب المتقدمة خضعت لترخيص تجاري منذ 2021 (AGPL-3.0 أو ترخيص تجاري) — للاستخدام الفردي أو الفريق الصغير تبقى اللوحة متاحة، لكن الحدود القانونية تستحق الانتباه. Garage (Apache-2.0) مصمَّم للتوزيع الجغرافي على عُقد متعددة دون لوحة ويب مدمجة، مثالي للبنى التحتية الكبيرة. RustFS (Apache-2.0) يستهدف الحالة الأكثر شيوعاً: نقطة S3 واحدة على VPS واحد مع لوحة ويب مدمجة وأداء عالٍ بفضل Rust — إذا أردت توزيعاً جغرافياً فـGarage أنسب، وإذا أردت VPS واحداً بواجهة رسومية بسيطة فـRustFS هو الاختيار الأمثل.
التثبيت من متجر ServOrbit
RustFS متاح مباشرةً في متجر ServOrbit — نقرة واحدة تُنشر الحاوية وتُولّد بيانات الاعتماد وتعرضها في لوحتك.