الخوادم الافتراضية (Virtualization Servers)
ماذا يتبادر إلى ذهنك عندما تفكر في الخادم ؟ هل هو جهاز كمبيوتر مكتبي مزود بوحدة معالجة مركزية سريعة؟ أم كمبيوتر مكتبي به المساحة الضخمة من ذاكرة الوصول العشوائي (RAM)؟ أم هي الأجهزة التي لا يمكن وضعها على الأرض وانما يتم تثبيتها في رف من رفوف مركز البيانات؟ أم أنك لا تفكر الا في نظام تشغيل الخادم (OS) والذي يعمل في مكان ما بعيد كجهاز افتراضي (VM) virtual machine ؟
كل هذه الإجابات دقيقة من زاوية أو أخرى ولكن عند الحديث ضمن نطاق شهادة CCNA فإننا نتجاهل تلك التفاصيل وننظر للخادم على أنه مكان لتشغيل التطبيقات وذلك مع اتصال المستخدمين بهذه التطبيقات عبر الشبكة وعادة ما يرمز للخادم برمز يشبه كمبيوتر سطح المكتب وهذا هو رمز Cisco القياسي للخادم.
أجهزة خادم Cisco
لنفرض أنك أردت أن تقوم ببناء خادم خاص بك لأول مرة ولم يسبق لك أن رأيت واحداً قبل ذلك، فكيف تتوقع أن يبدو شكله؟ ما هو حجمه ما هو عرضه وطوله وما إلى ذلك؟ اليك بعض الحقائق الأساسية التالية:
لا يوجد للخادم KVM: بالنسبة لمعظم الخوادم لا يوجد مستخدم دائم يجلس بالقرب منه وذلك لأن جميع المستخدمين والمسؤولين يتصلون بالخادم عبر الشبكة. ونتيجة لذلك ليست هناك حاجة إلى لوحة مفاتيح(K) دائمة أو شاشة عرض فيديو(V) أو ماوس(M).
رفوف الخوادم في مركز البيانات(Racks): في السنوات الأولى للخوادم كان الخادم هو أي كمبيوتر مع وحدة معالجة مركزية سريعة نسبياً ومساحة كبيرة من ذاكرة الوصول العشوائي وما إلى ذلك ، أما اليوم فتضع الشركات الكثير الخوادم في غرفة واحدة وتسميها بمركز بيانات (data center) لذا بدأ التوجه إلى صناعة الخوادم المتوافقة حجما للتثبيت في تلك الرفوف رغبةً في زيادة كفاءة استخدام المساحة المتاحة خصوصاً مع حقيقة عدم جلوس الناس أمام تلك الخوادم.
يوضح الشكل أدناه صورة لأجهزة خوادم من Cisco ، نعم قد يتبادر الى ذهنك تساؤل “وما علاقة Cisco بالخوادم؟” ففي حوالي عام 2010 قامت Cisco بتوسيع خط إنتاجها في سوق الخوادم فتُظهر الصورة منتجًا من (سلسلة Blade) بحيث تستخدم هيكلًا قابلًا للتركيب على الرفوف وكذلك مداخل (slots) للإضافات على الخادم فيمكن تثبيت هذا المنتج على حامل عن طريق الفتحات الموجودة على الجانبين كما أن لديها أربعة مصادر طاقة في الجزء السفلي من الهيكل المعدني.
إن أجهزة الخوادم اليوم توفر إمكانيات جيدة فيما يخص المساحة ومن وحدة المعالجة المركزية وذاكرة الوصول العشوائي والتخزين وبطاقات واجهة الشبكة (NIC) إلا أنه من المهم أيضاً التفكير بشكل معمق في نظام التشغيل الذي يعمل على الخادم وذلك بسبب أداة تسمى (server virtualization).
أساسيات المحاكاة الافتراضية للخادم
لنفترض أننا نستخدم خادم واحد أي جهاز كمبيوتر واحد ويقوم هذا الجهاز بتشغيل نظام تشغيل واحد. داخل هذا الجهاز يوجد وحدة المعالجة المركزية وذاكرة الوصول العشوائي (RAM) ونوع من ذاكرة التخزين الدائم مثل محركات الأقراص وواحد أو أكثر من بطاقات كروت الشبكة (NIC). ويمكن لنظام التشغيل استخدام جميع هذه الأشياء الموجودة داخل الخادم ثم إضافة إلى ذلك يقوم بتشغيل تطبيق واحد أو أكثر يوضح الشكل أدناه الفكرة الرئيسية.
مع نموذج الخادم الفعلي الموضح في الشكل السابق يقوم كل خادم فعلي بتشغيل نظام تشغيل واحد ويستخدم نظام التشغيل هذا جميع الأجهزة الموجودة في ذلك الخادم الواحد وهذا كان هو الواقع الفعلي بالنسبة للخوادم في الأيام التي سبقت ما يسمى الخوادم الظاهرية أو الافتراضية أو (server virtualization).
أما اليوم فتقوم معظم الشركات بإنشاء مراكز بيانات افتراضية. أي أن الشركة تشتري أجهزة الخادم وتثبتها على الرفوف ثم تعامل كل وحدة معالجة مركزية وكل ذاكرة وصول عشوائي وما إلى ذلك على أنها مساحة متاحة في مركز البيانات. بعد ذلك يتم فصل كل طلب من الطلبات الموجهة إلى نظام التشغيل عن الجهاز المادي أي أنه يصبح افتراضي بمعنى أن كل قطعة وأداة من القطع الداخلية للخادم (وحدة المعالجة المركزية(CPU) وذاكرة الوصول العشوائي(RAM) وذاكرة التخزين الدائم وكرت الشبكة (NIC)) تعمل على تشغيل طلبات متعددة لأنظمة تشغيل متعددة في نفس الوقت ، وهذا ما يسمى يسمى الجهاز الظاهري أو (VM) virtual machine.
غالبًا ما يتمتع الخادم الفعلي بقدرة معالجة أكبر مما يحتاجه نظام تشغيل واحد وعند الحديث عن قدرة المعالجة فإن وحدات المعالجة المركزية الحديثة للخوادم تحتوي على أنوية متعددة في الشريحة الواحدة لوحدة معالجة مركزية وكل نواة أيضاً لديها القدرة على تشغيل خيوط متعددة مع الميزة المسماة multithreading.
لذلك عندما تجد معالج Intel لديه 8 أنوية ومتعدد الخيوط عادةً خيطان لكل نواة فأنت تتحدث عن شريحة وحدة معالجة مركزية قادرة على تشغيل 16 برنامجاً مختلفاً في نفس الوقت ويستطيع برنامج Hypervisor التعامل مع كل مؤشر ترابط متاح باعتباره وحدة معالجة مركزية افتراضية (vCPU) وإعطاء كل VM عدداً من وحدات vCPU.
يجب تشغيل الجهاز الظاهري على الأجهزة المادية (الخوادم) ويحتوي كل جهاز افتراضي على إعداد يتعلق بالحد الأدنى من وحدات المعالجة المركزية الافتراضية التي يحتاجها والحد الأدنى من ذاكرة الوصول العشوائي وما إلى ذلك. يبدأ نظام المحاكاة الافتراضية بعد ذلك بتشغيل كل جهاز افتراضي على بعض الخوادم الفعلية المادية بحيث تتوفر سعة أجهزة خادم فعلية كافية لدعم جميع الأجهزة الظاهرية التي تعمل على هذا الخادم يوضح الشكل أدناه هذا المفهوم مع تشغيل أربعة أجهزة افتراضية (VM) منفصلة على خادم فعلي واحد.
لجعل المحاكاة الافتراضية للخادم تعمل يستخدم كل خادم فعلي (يسمى host في عالم المحاكاة الافتراضية للخادم) برنامج Hypervisor. يدير برنامج Hypervisor أجهزة الـ host هذه ويخصصها (CPU,RAM, …) لكل جهاز افتراضي بناءً على إعدادات الـ VM. يعمل كل VM كما لو كان يعمل على خادم فعلي قائم بذاته مع عدد محدد من وحدات المعالجة المركزية (CPU) الافتراضية وبطاقات واجهة الشبكة (NIC) وكمية محددة من ذاكرة الوصول العشوائي والتخزين. tعلى سبيل المثال إذا تم إعداد VM واحد لاستخدام أربع وحدات معالجة مركزية مع ذاكرة وصول عشوائي (RAM) سعة 8 جيجابايت سيقوم برنامج Hypervisor بتخصيص الأجزاء المحددة من وحدة المعالجة المركزية وذاكرة الوصول العشوائي التي يستخدمها الـ VM بالفعل.
لربط الأفكار التي تم الحديث عنها بالميدان فإن القائمة أدناه تتضمن بعض الخيارات المتاحة من المنتجات المرتبطة بمراكز البيانات الافتراضية:
■ برنامج VMware vCenter
■ Microsoft HyperV
■ Citrix XenServer 15
■ ريد هات KVM
فبخلاف برنامج Hypervisor تبيع بقية الشركات المذكورة في القائمة وغيرها من الشركات أنظمة افتراضية كاملة بحيث تسمح بإنشاء أجهزة افتراضية آلياً وتشغيلها ومن ثم نقلها إلى خوادم مختلفة وإيقافها. فعلى سبيل المثال عند الرغبة في إجراء صيانة للأجهزة يمكن لمهندس المحاكاة الافتراضية نقل الأجهزة الظاهرية (VM) إلى خادم آخر الى أن تتم الصيانة.
التواصل مع المبدلات الافتراضية على مضيف افتراضي
توفر أدوات المحاكاة الافتراضية للخادم مجموعة متنوعة من الخيارات لكيفية توصيل أجهزة إفتراضية بالشبكات. لن نناقش هنا جميع هذه الخيارات ولكن توضيح بعض الأساسيات والمفيدة كتمهيد للحديث عن الحوسبة السحابية.
فأولاً يجب أن يتضمن الخادم المادي ما يخص وظائف الشبكات فعادةً ما يحتوي على بطاقة كرت شبكة NIC واحدة أو أكثر وتتراوح سرعتها فقد تكون بطيئة مثل 1 جيجابت في الثانية وغالبًا هذه الأيام ما تكون 10 جيجابت في الثانية وقد تصل إلى سرعة تصل إلى 40 جيجابت في الثانية.
ثانياً ما يخص الأجهزة الافتراضية الـ VMs فعادة ما يحتوي نظام التشغيل على بطاقة واجهة شبكة واحدة وربما أكثر. ولجعل نظام التشغيل يعمل كالمعتاد فيجب أن يكون لكل جهاز افتراضي VM بطاقة واجهة شبكة واحدة ولكن الأمر بالنسبة إلى الجهاز الافتراضي VM فإن بطاقة واجهة الشبكة المستخدمة هي أيضاً بطاقة واجهة شبكة افتراضية. على سبيل المثال في أنظمة المحاكاة الافتراضية الخاصة بـ VMware يتم استخدام بطاقة واجهة الشبكة الافتراضية الخاصة بـ VM بالاسم vNIC.
ثالثاً يجب أن يكون الخادم قادر على جمع أفكار بطاقات NIC الفعلية مع vNIC والتي تستخدمها الأجهزة الافتراضية في نوع ما من الشبكات. ففي أغلب الأحيان يستخدم كل خادم نوعاً من مفهوم التبديل الداخلي وغالبًا ما يُطلق عليه المبدل الافتراضي (virtual switch) أو vSwitch ويوضح الشكل أدناه مثالاً من أربعة أجهزة افتراضية VM لكل منها vNIC واحد بينما يحتوي الخادم الفعلي على اثنين فقط من بطاقات NIC الفعلية بحيث تتصل vNIC و NIC المادية داخليًا بمبدل افتراضي.
شبكة مركز البيانات المادية
يحتاج كل خادم فعلي إلى اتصال مادي بالشبكة فإذا نظرنا مرة أخرى إلى الشكل السابق فإن ذلك الخادم متصل مع اثنين من بطاقات NIC المادية وعليه فهو يحتاج إلى توصيل هاتين البطاقتين NIC الحقيقيتين بمبدل LAN في مركز البيانات.
يوضح الشكل أدناه التمديدات التقليدية لشبكة LAN لمركز البيانات بحيث يمثل كل مستطيل عمودي رفاً واحداً داخل مركز البيانات وتمثل المربعات الصغيرة السوداء منافذ NIC بينما تمثل الخطوط الكابلات.
في كثير من الأحيان يتم توصيل كل خادم بمبدلين مختلفين في الجزء العلوي من الحامل يطلق عليهما مبدلات (ToR) Top of Rack وذلك لأجل لتوفير مسارات متعددة في شبكة LAN. يعمل كل مبدل ToR كمبدل طبقة وصول من منظور التصميم ويتم بعد ذلك توصيل كل مبدل ToR بمبدل (EoR) End of Row والذي يعمل كمبدل توزيع ويتصل ببقية الشبكة. ويستخدم التصميم في الشكل السابق خطة تمديدات مركز البيانات التقليدية لكن قد تتطلب بعض تقنيات مركز البيانات هياكل مختلفة.