Author: أمين

16يناير

المزامنة التلقائية للملفات بين الخوادم باستخدام Unison

ضمن تجربة قمت بها لإنشاء خادم ويب موزع بين جهازين أو أكثر، كانت واحدة من أهم الخطوات للوصول للهدف هو أن تكون محتويات مسار /var/www/html متزامنة بين الخوادم. يعود السبب في ذلك إلى أن الموقع يقدم خدمات كرفع الملفات واستعراضها، بالتالي فوجود نسخة متطابقة على جميع الخوادم خطوة أساسية للحصول على النتيجة. بالطبع هناك طرق بديلة لهذه المعضلة كاستخدام NFS أو رفع هذه الملفات على خدمة خارجية مثل Amazon S3، لكن هذه الحلول لم تكن متاحة في البيئة التي عملت عليها.

مشروع Unison لطيف جدًا ويفي بجميع الشروط التي أبحث عنها. من أهم هذه الشروط هو أنه في حال حدوث تغيير على ملف في أي من الخادمين، فإن التغيير يتم بثه إلى الخادم الآخر “Bi-Directional” وليس محددًا من مصدر واحد. عبر يونيسون تستطيع تحديد أي من الخادمين هو من يقوم بعملية الفحص والتأكيد على وجود ملفات بحاجة للمزامنة. إذا كانت لديك عشرة خوادم على سبيل المثال، فتستطيع وضع سيرفر واحد كخادم أساسي، وتسعة خوادم ثانوية ترتبط معه وتقوم بعملية المزامنة (وهو ماسنقوم به في هذه التدوينة). طريقة أخرى تستطيع القيام بها هو أن يقوم الخادم رقم عشرة بالمزامنة من الخادم التاسع، والتاسع من الثامن، وهكذا حتى يكون الخادم الثاني مرتبط مع الخادم الأول الأساسي. تسمية “أساسي” في هذه التدوينة لا تعني سوى أن الخادم الأساسي لا يقوم بنفسه بالاتصال بالخوادم الأخرى للمزامنة والمقارنة، بل ينتظر الاتصال من الخوادم الأخرى للمزامنة، وتستطيع القيام بالمزامنة دون تنصيب يونيسون عليه أصلًا. بالمناسبة، يحتوى مشروع يونيسون على مميزات أخرى منها دعمه لأنظمة ويندوز أو أي مختلف نكهات *nix، وبإمكانك الاطلاع على المزيد من هنا.

إعداد يونيسون

الخطوات التالية ستشرح كيفية إعداد يونيسون بين خادمين لمزامنة ملفات أباتشي على مسار /var/www/html. سنقوم بتسمية الخادمين بالخادم الأساسي والثانوي.

أكمل القراءة »

29سبتمبر

مقدمة بسيطة للغة bash

وجدت بالصدفة موقع learnxinyminutes والذي يساعدك على تعلم أساسيات ومفاهيم أي لغة برمجية بشكل بسيط وسهل جدًا يسهل عليك فهم اللغة. فقمت بأخذ جزء مما كتبوه عن لغة bash وترجمته، كون أن الموقع لايوفر ترجمة عربية حاليًا لها. وهي متاحة لمن أراد إكمال ترجمتها لكي توضع في موقعهم.

السطر الأول من البرنامج هو رمز Shebang والذي يخبر النظام كيف يقوم بتشغيل المحتوى. مثال بسيط لطباعة hello world:
#!/bin/bash
echo Hello world!

كل أمر يبدأ في سطر جديد، أو بعد فاصلة منقوطة:
echo 'This is the first line'; echo 'This is the second line'

تعريف المتغيرات يتم بالشكل التالي: أكمل القراءة »

9سبتمبر

مشروع تانجو، ومخططات جوجل لغزو العالم

هذا المقال من أرشيف ماكتبته في موقع ون هاز، بتاريخ 4 مارس، 2014

في حين انشغال الناس والشركات بما حدث في مؤتمر الجوالات العالمي MWC في برشلونة، كانت لدى جوجل خطط مختلفة تمامًا. فأعلنت عن مشروع تقني مستقبلي جديد منها هو مشروع تانجو. دعنا نتخيل قليلًا بأنك تريد الذهاب لشراء بعض قطع الأثاث لبيتك الجديد، ولكنك تريد أن تتخيل: كيف سيكون ترتيب هذه القطع قبل شرائها؟ تصوير غرفتك ومحاولة التصّور عبر أحد برامج معالجة الصور كفوتوشوب وما شابه ليست خيارًا سهلًا لا للمستخدم البسيط ولا حتى أولائك الذين يملكون خلفية كافية في معالجة الصور. إذًا لِمَ لا نقوم بصنع عالمٍ افتراضي من بيتك وتجربة ترتيب الأثاث على هاتفك بطريقة أكثر واقعية؟ هذه إحدى الأفكار من مشروع تانجو. مشروع جديد وغريب من نوعه على مستخدمي الهواتف الذكية تحديدًا والذين قد لا يستوعبوا مغزاه في البداية، ولكن جوجل تعدهم بأنّه المستقبل.

تانجو هو مشروع بدأته جوجل مع عدد كبير من مراكز الأبحاث والجامعات والمصنّعين لحصد السنوات العشر الماضية من البحوث في مجال الروبوت والآليات وتحويلها إلى هاتف ذكي بقدرات خارقة للعادة، ونعني بالعادة هنا بقية الهواتف التي نراها اليوم والتي قد نراها في أيدينا خلال الفترة القادمة. هذا الهاتف يحمل عتاد مصمم خصّيصًا لمتابعة أكمل القراءة »

5سبتمبر

حل مشكلة كتابة ملفات النطاقات Zone Files في خوادم DNS الثانوية

قمت بتجهيز سيرفرين يقومون بالعمل كـDNS، أحدهما أساسي Master، والآخر ثانوي Slave (سيد وخادم إن ترجمناهما حرفيًا). السيرفرين يستخدمان bind لتشغيل خدمة الدي إن اس. لاحظت ظهور رسالة الخطأ التالية في سجلات السيرفر الثانوي:

Error: dumping master file: tmp-g5x9Gx6CFq: open: permission denied

ولنفهم الخطأ سأتحدث قليلًا عن كيفية عمل الـDNS:

توجد في السيرفر الاساسي Master ملفات للنطاقات Zone Files يتم فيها تعريف جميع الأجهزة أو السيرفرات التابعة للنطاق، ولها صيغة معينة تتبعها. وعند القيام على سبيل المثال بطلب موقع mail.google.com، يذهب خادم الدي إن اس الأساسي لقوقل بالذهاب لملف النطاق Zone File الخاص بدومين google.com، ومن ثم البحث عن تعريف mail وتحويل المستخدم إلى الآي بي الخاص بهذه الخدمة، مثلما ترى في الصورة الخاصة بالتدوينة.

السيرفرات الثانوية تعمل بطريقة مشابهة، ولكنها في الأساس لا تحتوي على ملفات Zone Files الخاصة بالنطاقات، فتقوم بإجراء نقل لملفات النطاقات Zone Transfer من السيرفر الأساسي وتخزينها لديها لكي تقوم بتنفيذ طلبات المستخدمين. وهنا بالضبط – أثناء تخزين ملفات النطاقات – يحدث الخطأ المذكور في بداية التدوينة.

الحلول المقترحة للمشكلة:

أكمل القراءة »

16أغسطس

إعادة توجيه الروابط بين مدونات ووردبريس عبر htaccess

قمت مؤخرًا بنقل مدونتي إلى الدومين الجديد ameen.io، وواجهتني مشكلة غريبة جدًا أثناء قيامي بعملية النقل من الدومين القديم والجديد. كان احتياجي الأساسي في عملية النقل هو أن يقوم الويب سيرفر بتحويل جميع الروابط القديمة الخاصة بالمدونة وبما في ذلك التدوينات السابقة التي قمت بكتابتها إلى الرابط الجديد، على سبيل المثال عند زيارة الروابط التالية:

ameenali.com/blog/
www.ameenali.com/blog/2014/12/difference-between-thick-and-thin-provisioning/

أريد أن يتم تحويل الزائر بشكل تلقائي إلى الروابط التالية:

ameen.io/blog/
ameen.io/blog/2014/12/difference-between-thick-and-thin-provisioning/

تبدو المهمة سهلة جدًا، ومن الممكن أن تتم في غضون دقائق عبر بعض التعديلات على ملف أكمل القراءة »

16ديسمبر

الفرق بين مفهومي Thick و Thin Provisioning في إدارة التخزين

أصبحت إدارة التخزين جزء لا يتجزأ من عمل مدراء الأنظمة، وخصوصًا في عملية استثمار كل كيلوبايت منها بقدر الإمكان وعدم تخصيصه لسيرفر أو خدمة معينة وذهاب تلك المساحة بلا استخدام. في الآونة الأخيرة ظهرت تقنيات كثيرة مساعدة وبشكل كبير في إدارة التخزين وهي تندرج بشكل عام تحت أنظمة التخزين التخيلية Storage Virtualization. وهي مشابهة وبشكل كبير جدًا في المفهوم لأنظمة التشغيل التخيلية. وتكمن الفكرة العامة منها بأن قرص التخزين الواحد يمكن أن يقسم ويوزع استخدامه على أكثر من سيرفر بنفس الوقت. من أبرز المفاهيم الخاصة بإدارة التخزين مفهومي Thick و Thin Provisioning وسنحاول التعرف عليهما اليوم.

Thick Provisioning

بالإمكان تلخيص هذا التوجه في أنه يقوم بتقسيم المساحة التخزينية إلى عدة أجزاء، ومن ثم يتم تخصيص المساحة وتعيين جزء أو أكثر لكل سيرفر. على سبيل المثال لديك أكمل القراءة »

10ديسمبر

سلسلة مراقبة أداء أنظمة لينكس 3: أداة iostat

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

أداة iostat قد لا تأتي مثبتة على نظامك. قم بتثبيت حزمة sysstat للحصول عليها (شكرًا حسين على التنبيه)
وتستطيع تشغيلها عن طريق الأمر:

# iostat

للحصول على معلومات أكثر، سنستخدم الأمر مع هذه الخصائص:

# iostat -xm 5 2

شرح الأمر:

  • iostat: اسم الأداة
  • -x: عرض النتائج بالتفصيل (Expaneded)
  • -m: عرض الوحدة بالميقابايت، وتستطيع استبدالها بـk للكيلوبايت
  • 5: القيام بتشغيل الأداة كل 5 ثواني
  • 2: تشغيل الأداة مرتين فقط

فبالتالي سنحصل على عينتين نستطيع المقارنة بينهما، مثال على النتيجة:
أكمل القراءة »

18نوفمبر

مزامنة مدير مواقع FILEZILLA لأكثر من جهاز عبر دروب بوكس

من أكثر الأمور المزعجة التي يعاني منها جميع من يتعامل مع التقنية هو مزامنة الملفات والإعدادات بين الأجهزة الشخصية. أغلبنا إن لم يكن كلنا يعمل على جهازين على الأقل (كمبيوتر العمل، لابتوب شخصي، كمبيوتر مكتبي في البيت أحيانا، إلخ). وكشخص مسؤول عن أنظمة أو حتى مطور تطبيقات، فستحتاج إلى طريقة تزامن فيها ملفاتك بين الأجهزة. ظهرت خدمات كثيرة ساعدت وبشكل كبير جدًا في حل مشكلة مزامنة الملفات مثل دروب بوكس وجوجل درايف وغيرها، حلّت هذه الخدمات الجزء الأكبر من المشكلة وهو الخاص بالملفات التي تعمل عليها، ولكن ماذا عن مزامنة إعدادات البرامج؟ FileZilla هو أحد أعرق وأشهر البرامج التي يستخدمها مدراء الأنظمة ومطوري المواقع والمصممين وغيرهم لرفع وتحميل الملفات من وإلى السيرفر. المشكلة الأكبر التي يعاني منها من يستخدم هذه الأداة على أكثر من جهاز هي مزامنة المواقع وبياناتها. فعندما تقوم بإضافة موقع جديد أثناء استخدامك للبرنامج على اللابتوب، فلن تظهر هذه الاعدادات على أجهزتك الأخرى التي تحتاج للأداة عليها. سنتعرف اليوم على طريقة بسيطة وسهلة لمزامنة مدير مواقع FileZilla الخاصة بك بين الأجهزة المختلفة عن طريق دروب بوكس.

تعمل خاصية Site Manager في FileZilla على حفظ جميع البيانات الخاصة بمواقعك في ملف sitemanager.xml. ولكي نستطيع تحقيق هدفنا في المزامنة بين الأجهزة فيجب علينا أكمل القراءة »

15سبتمبر
Lonview Linode MySQL

كيفية تشغيل خدمة متابعة أداء MySQL في خوادم Linode

لطالما كانت Linode من الشركات المفضلة بالنسبة لي في توفير خدمات الخوادم الخاصة الإفتراضية Virtual Private Servers، أو كما جرت العادة بتسميتها VPS. الموضوع سهل وبسيط، فعند إشتراكك لديهم تحصل على سيرفر تخيلي على السحاب بمواصفات معينة ويكون متوفر لك للعمل عليه في أي وقت ومن أي مكان. حديثنا اليوم ليس عن أنواع الفي بي إس والمقارنة بينها ولكن سأخصصه لإحدى المميزات في سيرفرات لاينود وكيفية تفعيلها.

من أجمل الخدمات التي تحصل عليها وبشكل مجاني عند اشتراكك مع لاينود هي خدمة Longview. لونق فيو تمنحك إمكانية جمع إحصائيات كثيرة جدة عن نظامك وبتفاصيل دقيقة تفيدك معرفة أداء سيرفرك وتساعدك بإذن الله في منع حصول أي هجمات أو تعطل للخدمة عند ملاحظتك لتصرفات غريبة يقوم بها نظامك. الجميل أيضًا أن الخدمة تتفرع إلى عدد من الأقسام على مستوى النظام والعمليات، والرام والمعالج، وبعض التطبيقات المخصصة مثل أباتشي أو MySQL والأخيرة هي محور حديثنا اليوم.

تفعيل خدمة لونق فيو الخاصة بقواعد البيانات MySQL سياعدك كثيرًا في أكمل القراءة »

© جميع الحقوق مبذولة