في أنظمة WAVE التي تحتوي على أكثر من خادم واحد (1)، ستشكل جميع قواعد بيانات الخادم "خلية خادم" وستتم مزامنتها في أقرب وقت ممكن في الوقت الفعلي نظرًا لقيود الشبكة.
ما المعلومات التي تتم مزامنتها بين الخوادم؟
· المستخدمين والحقوق
· تكوينات الجهاز (بما في ذلك مواقع فهرس الأرشيف، ولكن ليس الأرشيف نفسه)
· قواعد التنبيه والحدث
· اعدادات الخادم
· اعدادات النظام
· إعدادات الشكل الظاهري
ما هي المعلومات التي لم تتم مزامنتها؟
· المعلومات المرتبطة بالمخطط الزمني/الأرشيف: الوسائط (الفيديو/الصوت المسجل)، ومسارات التدقيق، وسجلات الأحداث.
· أرشيفات الفيديو ومؤشرات الحركة الموجودة على محرك الأقراص الثابتة الفعلي حيث يتم تسجيل الوسائط (NAS أو DAS أو محرك الأقراص الثابتة المحلي أو SSD).
ما نوع اتصالات الشبكة التي يمكن للخوادم مزامنتها عبرها؟
تعمل المزامنة في أي نوع من الشبكات - LAN أو WAN أو الإنترنت. ستحدث المزامنة طالما أن كافة الخوادم الموجودة في الخلية قادرة على رؤية خادم آخر واحد على الأقل في الخلية. حتى في بيئات الشبكة الصعبة مثل تلك الموضحة أدناه:
اتصالات ذات اتجاه واحد
إذا كان بإمكان Server1 إنشاء اتصال بـ Server2، ولكن لا يمكن لـ Server2 إنشاء اتصال بـ Server1 (على سبيل المثال، بسبب جدار الحماية أو NAT)، فلا يزال من الممكن إنشاء اتصال ويمكن إجراء المزامنة.
الخادم 1 → الخادم 2
اتصالات غير مباشرة
على سبيل المثال، إذا كان هناك 3 خوادم (Server1، Server2، Server3) في النظام وكان بإمكان Server1 إنشاء اتصال بـ Server2 فقط، ويمكن لـ Server2 رؤية كل من Server1 وServer3، فسيظل Server1 متزامنًا مع كل من Server2 وServer3.
الخادم 1 ↔ الخادم 2 ↔ الخادم 3
سلاسل ديزي طويلة
في سلاسل ديزي لا توجد قيود عملية على طول السلسلة.
Server1 ↔ Server2
| |
Server3 ↔ Server4
فهم خوارزمية مزامنة خلية خادم WAVE
متى تحدث المزامنة؟
1. في أي وقت يتم فيه إجراء تغيير بواسطة مستخدم النظام (على سبيل المثال، يقوم المستخدم بتغيير جدول التسجيل لكاميرا واحدة باستخدام WAVE Client Desktop) يؤدي إلى تغيير في السجلات المتزامنة.
2. في أي وقت يتم فيه إجراء تغيير في تكوينات النظام بشكل مستقل (على سبيل المثال، يصبح الخادم غير متصل بالإنترنت ويتم تفعيل تجاوز فشل الكاميرا التلقائي)
كيف تعمل المزامنة؟
1. يُنشئ الخادم معاملة (معاملات) ويرسلها إلى جميع الخوادم المتصلة بالخادم الأصلي.
2. تحتوي كل معاملة على سجل بالتغييرات.
3. بمجرد أن يرسل الخادم المعاملة (المعاملات) بنجاح إلى خادم (خوادم) النظام الأخرى، فإنه يتضمن معرفات المعاملات لجميع الخوادم التي تم إرسال المعاملة إليها بنجاح (بما في ذلك معرف المعاملة الخاص بها). يضمن هذا عدم إرسال المعاملة (المعاملات) إلى نفس الخادم أكثر من مرة - مما يقلل من مقدار الوقت المستغرق لمزامنة جميع خوادم النظام وكذلك يقلل من عرض النطاق الترددي اللازم لمزامنة النظام.
على سبيل المثال - في طوبولوجيا شبكة سلسلة Daisy مع 4 خوادم:
Server1 ---- Server2
| |
Server3 ---- Server4
1. المستخدم متصل بالخادم 1.
2. يقوم المستخدم بإجراء تغيير في النظام (على سبيل المثال، إنشاء تخطيط جديد وحفظه)
3. يُنشئ الخادم 1 معاملة ويرسلها إلى Server2 وServer3 باستخدام معرف المعاملة الذي يتضمن Server1 وServer2 وServer3.
4. بمجرد أن يتلقى Server2 أو Server3 المعاملة، فلن يرسل المعاملة مرة أخرى إلى Server1 لأن معرف المعاملة يتضمن بالفعل Server1 (الخادم الذي تم إجراء التغيير الأصلي فيه).
5. سيقوم Server2 وServer3 بعد ذلك بإرسال معاملة إلى Server4.
الثغرات المحتملة في السيناريو أعلاه وكيفية معالجتها:
في السيناريو أعلاه، هناك ثقب صغير. ماذا لو تم فقدان/انقطاع الاتصال بين الخادمين أثناء انتقال المعاملة من Server1 إلى Server2؟ على سبيل المثال:
· يتم إرسال المعاملة من Server1 إلى Server2 وServer3 (مع معرفات المعاملات لـ Server1 وServer2 وServer3).
· تم فقدان المعاملة بين Server1 وServer2 ولكن تم إرسالها بنجاح إلى Server3.
· تم إرسال المعاملة بنجاح من Server3 إلى Server4 (مع معرفات المعاملات لـ Server1 وServer2 وServer3 وServer4).
في هذا المثال، لا يحصل Server2 مطلقًا على المعاملة على الرغم من أن الاتصال بين Server4 وServer2 لا يزال على ما يرام لأن الخادم 4 يتلقى معرف المعاملة الذي يتضمن Server2.
ولهذا السبب، لدينا رسائل Keep Alive.
ما هي رسالة Keep Alive؟
· يتم إرسال رسالة "الحفاظ على النشاط" بواسطة كل خادم إلى كل خادم متصل به مرة واحدة في كل فترة زمنية.
· تحتوي رسالة Keep Alive على سجل حالة المعاملة، والذي يحتوي على بيانات حول آخر معاملة استلمها كل خادم.
لذا، في سيناريو "الفتحة" أعلاه، سيرسل Server2 حزمة البقاء على قيد الحياة إلى Server3. وسيكتشف Server3 لاحقًا أن Server2 لديه معاملة مفقودة من Server1، مما يؤدي إلى قيام Server3 بالاستياء من المعاملة الأصلية.
الأسئلة الشائعة حول المزامنة
ما هو البروتوكول المستخدم أثناء المزامنة؟
· HTTP (وضع القطعة) مع البيانات الثنائية المشفرة بواسطة base64 لتجنب أية مشكلات في جدار الحماية.
ما مقدار البيانات التي تنشئها المزامنة؟
بشكل عام ليس كثيرًا (مثل البتات) ولكنه يعتمد على طوبولوجيا الشبكة التي يتواجد عليها النظام.
· إذا لم يقم المستخدم بإجراء تغييرات - فلا حاجة إلى المزامنة.
· إذا لم يكن هناك شيء لمزامنته (99.999% من الوقت بعد تهيئة النظام) - ترسل الخوادم فقط حزم Keep Alive لبعضها البعض (بضعة كيلوبايت لكل عدة ثوانٍ).
· إذا قام المستخدم بإجراء تغيير أو حدث تغيير مستقل في خوادم النظام، فستبدأ المزامنة وسيتم إرسال المعاملات (بضعة كيلوبايت لكل معاملة) كل ثانية حتى تتم مزامنة النظام بنجاح)
كم من الوقت تستغرق المزامنة؟
· في معظم الحالات، تكون المزامنة "فورية" - مما يعني أنها غير محسوسة تقريبًا بالنسبة للمشغلين البشريين. في أسوأ الحالات، ستستغرق مزامنة السيناريوهات بضع ثوانٍ.
هل هناك أي مهلة للمزامنة؟ هل ستتوقف الخوادم في النهاية إذا تعذر إنشاء اتصال بخوادم النظام الأخرى؟
· ستستمر خوادم النظام في محاولة المزامنة حتى تنجح.
※ تمت كتابة هذا المحتوى باستخدام مترجم Google وقد يحتوي على بعض الأخطاء.
تعليقات
لا توجد تعليقات
الرجاء تسجيل الدخول لترك تعليق.