سؤال

أريد أن أكون قادرًا على توزيع حزم من الملفات ، حوالي 500 ميجابايت لكل حزمة ، إلى جميع الآلات على "Externet" للشركات (وهي في الأساس عدد قليل من الشاشات المتصلة باستخدام آليات خاصة مختلفة ، بما في ذلك الخطوط المستأجرة و VPN).

يبلغ إجمالي عدد المضيفين حوالي 100 ، والهدف من ذلك هو الحصول على نسخة من الحزمة من مضيف واحد على جميع المضيفين الآخرين بشكل موثوق وسرعة وكفاءة. إحدى المشكلات المهمة هي أن بعض المضيفين يتم تجميعهم معًا على شبكات شبكية سريعة واحدة في هذه الحالة ، يجب أن يتم الشبكة I/O مرة واحدة من مجموعة إلى أخرى ثم داخل كل مجموعة بين جميع الأقران. هذا على عكس نظام خادم مركزي صارم حيث قد يجلب كل من المضيفين المتعددين نفس الحزمة على رابط بطيء ، بدلاً من مرة واحدة عبر الرابط البطيء ثم بين بعضهم البعض بسرعة.

سيتم إنتاج حزمة جديدة كل بضعة أيام ، وسيتم حذف حزم قديمة أحيانًا (ولكن يمكن حل هذه المشكلة بشكل منفصل).

تصادف الآلات المعنية لتشغيل Linuxes الأخير ، ولكن ستذهب نقاط المكافآت إلى الحلول التي تكون على الأقل إلى حد ما منصة (في هذه الحالة قد تختلف الحزمة لكل منصة ولكن ربما يمكن استخدام نفس الآلية).

هذا الى حد كبير ذلك. أنا لا أعارض كتابة بعض التعليمات البرمجية للتعامل مع هذا ، ولكن سيكون من الأفضل لو كانت واحدة من Bash أو Python أو Ruby أو Lua أو C أو C ++.

هل كانت مفيدة؟

المحلول

أعتقد أن كل هذه المشكلات قد تم حلها عن طريق الأبحاث الحديثة في شبكات P2P وتعبئتها جيدًا في أشكال لطيفة. يجب أن يحل القليل من السيناريو وسيل بت هذه المشكلات. يوجد عملاء Torrent لجميع OSS الحديثة ، ثم برنامج نصي على كل جهاز للتحقق من موقع لملف التورنت الجديد ، ابدأ DL ، ثم حذف الحزمة القديمة بمجرد انتهاء DL.

نصائح أخرى

ماذا عن RSYNC؟

سأقترح عليك استخدام فكرة Compie عن Rysnc لنسخ الملفات في هذه الحالة يمكنك استخدام لغة البرمجة النصية التي تختارها.

على نظام الانتشار ، ستحتاج إلى برنامج نصي يحتوي على شكل من أشكال تمثيل المضيفين ومصفوفة بينهم مرجحة بالسرعة. تحتاج بعد ذلك إلى حساب شجرة الامتداد الحد الأدنى من تلك المعلومات. من ذلك ، يمكنك بعد ذلك إرسال رسائل إلى الأنظمة التي تنوي نشر تفاصيل MST والحزمة لجلبها ، حيث يبدأ هذا البرنامج النصي/الخفي. ثم يتصل المضيف بالمضيفين عبر أسرع الروابط ...

يمكنك تنفيذه في باش - قد يكون بيثون أفضل أو في دفيون C مخصص.

عند تحديث الشبكة ، ستحتاج إلى تحديث المصفوفة بناءً على أحدث المعلومات.

نرى: خوارزمية بريم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top