في الشبكات وبالذات في تخصص إدارة السيرفرات، المحافظة على اتصال السيرفر من الانقطاع شيء أساسي ومهم، فعندما ينقطع الاتصال بالسيرفر لا فائدة منه!
بشكل أبسط، لنفترض إني صاحب بنك، وفيه مقدم خدماتي عن طريق الإنترنت لأسهّل على العملاء إنهاء معاملاتهم البنكية من تحويل وإدارة أرصدة دون حضورهم شخصياً للبنك.
لأُقدم خدماتي عن طريق الإنترنت، لا بد أن يكون لدي سيرفر مستضيف الموقع الخاص بي، والموقع فيه كل هذه التعاملات البنكية التي يحتاجها العميل. حسنًا، إذا فقد السيرفر الاتصال بالإنترنت، ما الفائدة منه؟
العملاء الخاصين بالبنك لن يستطيعون الدخول للموقع، وهذا ينعكس على سمعتي، إن بنك جريس سيء في خدماته الإنترنتية، وكل فترة يتعطل موقعهم. بكذا خسرت شريحة كبيرة من عملائي المهتمين بالتعامل عن طريق الويب للتعاملات البنكية.
ولو تكلمنا بشكل تقني أكثر، السيرفر عندما يتعطل له أكثر من السبب: قد يكون سبب أمني، أو يكون بداخل السيرفر وتوابعه، وقد يكون عطل بالشبكة يمنع العملاء الدخول على السيرفر عن طريق الإنترنت، وأسباب كثيرة يُصعب حصرها.
لكن يوجد سبب محتمل، ألا وهو أن الكيبل المشبوك بالسيرفر مفصول أو متعطل، وهذا هو محور تدوينتي. شاهد هذه الصورة:
نرى الخط الأحمر، هذا هو كيبل السيرفر، في حالة انفصاله يتعطل السيرفر ويمنع أي دخول له.
فكرة التدوينة تشرح لك كيف تطمئن إن مهما صار في الشبكة الخاصة بك من تعطل، ستضمن إن السيرفر الخاص بك لا يفقد اتصاله بالإنترنت أو بشبكتك الخاصة.
الطريقة هذه تسمى Network Bonding/Teaming، وفكرتها أنك تربط كرتي شبكة مع بعض، ثم تنشئ كرت إضافي ثالث –وهمي Virtual– وهو يتحكم بالترافيك الذي يدخل ويخرج من كرتي الشبكة، والكرت الوهمي هذا هو الذي يحتوي على IP الخاص بالسيرفر.
المتطلبات:
المطلوب، فقط كرتي شبكة على سيرفر اللينكس، وشرحي يكون على لينكس ريدهات\سنتوس\فيدورا، وباقي التوزيعات نفس الفكرة، والتغيير في أماكن الملفات.
التنفيذ:
ننشئ كرت شبكة وهمي\تخيلي Virtual، ونسميه bond0:
vi /ets/sysconfig/network-scripts/ifcfg-bond0
وتضيف فيه إعدادات الشبكة الخاصة بك، الأي بي IP والنت ماسك NetMask والبوابة Gateway:
DEVICE=bond0 ONBOOT=yes USERCTL=no TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.1.2 NETMASK=255.255.255.0 NETWORK=192.168.1.0 GATEWAY=192.168.1.1
الكرت الوهمي\التخيلي جاهز، الآن، تبقى أمرين:
1- تعديل كروت الشبكة الحالية، وجعلها تشتغل تحت إدارة الكرت الوهمي Bond0:
أفترض إن اسم الكرت الأول بسيرفرك eth0، فعدّل على الملف:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
وأحذف إعداداته الشبكة الخاصة به كلها، ثم أضف الأسفل:
DEVICE=eth0 TYPE=Ethernet ONBOOT=yes HWADDR=xx:xx:xx:xx:xx:xx
MASTER=bond0
SLAVE=yes
ونفس الشيء على الكرت الثاني، أفترض اسمه eth1:
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
HWADDR=xx:xx:xx:xx:xx:xx
MASTER=bond0
SLAVE=yes
شاهد الخط العريض بالأعلى، هو السر بجعل كرت الشبكة الوهمي bond0 هو المتحكم –الماستر Master– والكروت الثانية تحت تصرفه –سليف Slave-.
الأمر الثاني، هو تحديد كيف يتم التفاهم بين هذين الكرتين؟. من سيشتغل أول؟ الكرت eth0 أم eth1؟ أم الاثنين سيشتغلون في نفس الوقت؟
هنا نحتاج نوضح حاجة مهمة، لو شغلت الشبكة بالوضع السابق، يصبح فيه تعارض بين هذين الكرتين، إحداهما يرسل باكت Packet والآخر يستقبلها، والسويتش المشبوك عليه هذا السيرفر “بيتلخبط” لديه الترافيك، لأن الترافيك يوصل إليه من كرت، ويرجع لنفس السيرفر من كرت ثاني-لعدم وجود الماك أدرس MAC Address في إعدادات كل كرت-، رأيت كيف “لخبطة”!.
الحل؟
سهلة، يلزمك إن تحدد كيف سيشتغلون هذين الكرتين، وفيه وضع لتشغيلهم، تستطيع تستزيد عنهم برجوعك لوثائق سيرفرات ريدهات، نحن نشغّل هذين الكرتين في وضع يسمى “fault tolerance” وبالعربي يسمى -تجاوز الخطأ-، وفكرته إن كرت من الكروت سيكون فعّال -يعني يصير Active-، والثاني سيكون في حالة سبات -Backup-. الكرت الثاني الذي في حالة سبات لا يشتغل إلى إذا تعطل الكرت الأول أو يفصل عنه الكيبل. وهذه أفضلها شخصياً لأنها تضمن لي إنه لن يكون تعارض بين الترافيك المار بسيرفري.
كيف أفعلها؟
تُعدّل على المودويولز Modules الخاصة بالسيرفر، عن طريق التعديل على الملف /etc/modprobe.conf:
echo -e “alias bond0 bonding\noptions bond0 miimon=100 mode=1″ >> /etc/modprobe.conf
ولو شرحنا الخيارات أعلاه، نلاحظ إننا وضحنا للسيرفر إن الكرت bond0 لا بد أن يتفعل فيه خاصية دمج الكروت bonding، ثم طلبنا من السيرفر إنه يراقب حالة الكروت كل 100 جزء من الثانية، عن طريق الخيار miimon الخاص بمراقبة حالة الكرت ووضعه التشغيلي، وبالأخير قلنا له فعّل لنا خاصية “تجاوز الخطأ Fault tolerance”، عن طريق الخيار mode=1.
خلصنا!.. الآن، أعد تشغيل الشبكة لديك:
/etc/init.d/network restart
ونفذ الأمر ifconfig لعرض كروت الشبكة لديك، وتجد كرت bond0 تم تفعيله، وإضافة كلمة Slave في معلومات الكروت الثانية.
وإذا كنت تحتاج أن تعرف حالة الـ Network Teaming في سيرفرك، ومن يشتغل كـ Active ومن Backup، نفذ الأمر التالي:
cat /proc/net/bonding/bond0
ويعرض لك نتيجة مقاربة لكذا:
Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: up Link Failure Count: 0 Permanent HW addr: xx:xx:xx:xx:xx:xx Slave Interface: eth1 MII Status: up Link Failure Count: 0 Permanent HW addr: xx:xx:xx:xx:xx:xx
نقاط:
1- تستطيع أن تستغني عن فكرة Fault Tolerance للكروت، وتستخدم مثلاً Load Balance لأجل توازن الترافيك بين الكرتين في حالة وجود ضغط كبير على سيرفرك، ارجع لوثائق سيرفرات ريدهات.
2- حاول تشبك الكيابل في سويتشات مختلفة، يعني لا تشبكهم كلهم بسويتش واحد، لأجل أن تتفادى تعطله، ومن ثم تعطل السيرفر. لا تضع بيضك في سلة واحدة
.
المصدر: http://jerais.com/plug/?p=743











السلام عليكم
هل تعمل هذه الطريقة على سيرفرات التي تعمل بنظام ويندوز
قيم التعليق:
0
0
هل تعلم ان نظام اللينكس هو مجاني ومفتوح المصدر فالمقابل فان الويندوز سيرفر هو نظم مغلق ويكلف 950 دولار
وفوق هذا كله اللينكس احسن من الويندوز سيرفر باشواط
قيم التعليق:
0
0
نعم اعلم انه مجاني ومفتوح المصدر
لكن لايمكن اي شخص او مبرمج ان لينكس افضل في جميع الاحوال واليك مثال ما :
انا ابرمج حاليا موقع ضخم جدا بال ASP.Net ولو فكرت للانتقال للينكس يجب علي التخلي عن ASP.Net والتحول الى PHP او Java-JSP وكلاهما خيار صعب :
فان PHP لغة حلوة وبسيطة وخفيفة لكن بصراحة لاتقارن بال ASP.Net او JSP من ناحية القوة والمكتبات وطريقة البرمجة نفسها
اما JSP فلايوجد اصلا استضافات لها كثيرا ونادر ان تجد
ولاتنسى ان ASP.Net مبنية على ويندوز والكثير من الخدمات يمكن ان تبنى على هذا الاساس وهي بالفعل حيث لك الحق الوصول الى جميع مكونات الفريمورك والكثير والكثير
وبالنهاية المهم راحة العملاء واختصار الوقت وانا ارى انا مايكروسوفت سيرفر والدوت نت مزيج رائع وهو الافضل لي بالوقت الحالي مع حرصي على تعلم الباقين طبعا
قيم التعليق:
0
0
يا للصدفة
فقد تعلمت لغة ال ASP في الدراسة الجامعية وكان مشروع تخرجي بها بموقع خالص بكلية الهندسة يحتوي على حوالي 50 صفحة ومحركات بحث وووووووووو
ولكن للاسف في الحياة العملية وجدت انها لا تنفع فبعد تصميم عدة مواقع بها لم اجد مزود واحد يدعمها وعندما اجد يكون سعره خيالياً
حتى بحتث عن لغة اخرى فوجدت ال php ويال روعتها وامكانياتها الهائلة وفوق ذلك كله تعمل في كل المزودات وهي مجانية ومفتوحة المصدر والحمد لله صمتت 7 مواقع ديناميكية بال php وفعلاً ندمت على تعلم ال ASP بعدد الشعر الذي في رأسي
قيم التعليق:
0
0
+LinuxWindows
بصراحة لا اعتقد أنك تعلم عن البي أتش بي الكثير حتى تقول أنها لا تقارن بالدوت نت
أحضر لى شئ واحد تريد عمله ولا تقدر عليه البي أتش بي برمجيا
أما من حيث السهولة … فهى تعتمد بالأساس على الفيجوال ستوديو … لكن لو جربت العمل بدونه فلن تجد العمل ممتعا ولا سهلا
قيم التعليق:
0
0
بما انك تعمل على ال visual studio فلا الومك على استخدام ال ASP
لكن عنش شخصياً فانا في كلا اللغتين اكتب الكود بلا برامج جاهزة
وحسب رأيي الشخصي فان PHP احسن باشواط من ASP
قيم التعليق:
0
0
اخواني الفرق بسيط
ال php مفتوحة المصدر وال ASP مغلقة
والمقارنة بينها هي مثل المقارنة بين apache و IIS
ما رأيكم بهذه الخبر القديم بعض الشياء:
العالم الآخر
مايكروسوفت تنقلب على نفسها وتموِّل أباتشي:
http://ebncana.wordpress.com/2008/08/04/%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%AA%D9%86%D9%82%D9%84%D8%A8-%D8%B9%D9%84%D9%89-%D9%86%D9%81%D8%B3%D9%87%D8%A7-%D9%88%D8%AA%D9%85%D9%88%D9%91%D9%90%D9%84-%D8%A7%D9%84/
عيب ال ASP انها لا تعمل على معظم السيرفرات على العكس من ال php التي تعمل في كل البيئات
وانا شخصياً اميل للغات التي لا يتحكم بمصيرها النهائي شركة كالثير من اللغات التي انقرضت
قيم التعليق:
0
0
انا براي الشخصي ان بنية PHP ولاتقارن ببنية الفريمورك العملاقة
وانا شخصيا اشعر بكثير من التحكم والقوة عند استعمالي لل ASP.Net وانا لااقول ان PHP لاتستطيع عمل ذلك او ذاك لكن طريقة البرمجة والوصول للهدف في ASP.Net اجمل
ولو تلاحظ الكتب في امازون فسوف تلاحظ ان في ASP.Net و Java و( JSP بطبيعة الحال )هنالك الكثير من المواضيع الاحترافية المتخصصة جدا على عكس PHP فمضوعات الكتب فيه محددة …
وانا استمر بملاحظة ان انك تسميASP.Net ب ASP وهنالك فرق كبير جدا بيهما وانا ضخصيا لا احب ASP فبها الكثير من قل المرونة ولاتقارن بال ASP.Net
في النهاية الموضوع موضوع راحة بطريقة البرمجة وتحقيق النتائج المرجوة للعميل
تحياتي
قيم التعليق:
0
0
شكراً لك على هذا الشرح الرائع
قيم التعليق:
0
0
صراحة استفيد كثرا من عالم التقنية
مع اني مش متخصص في السيرفرات
قيم التعليق:
0
0
في حالة إنك تستخدم سيرفرات HP وعليها ويندوز سيرفر، إيه تستطيع تسوي نفس الفكرة، مو الطريقة.
قيم التعليق:
0
0
فقط للتوضيح، الموضوع عن سيرفرات لينكس وكيف تجعلها stable من ناحية الشبكة، مو عن PHP vs ASP.NET، ياليت ما نطلع برا فكرة الموضوع لجل ما يتشتت القارئ.
قيم التعليق:
0
0
جميل ..
قيم التعليق:
0
0
شرح قوووووووووووي اخي جريس , وموضوعك تم التقييم ارجو ان يكون هناك تدوينات حلوة نفس هذه بارك الله فيك وجعله بميزان حسناتك على هذا الموضوع والافائدة الجميلة تحياتي واحترماتي
قيم التعليق:
0
0