انتشرت فى الاونة الاخيرة الحديث عن ال فوائد ال virtual machine (VM) واستخداماتها المتعددة وايضا عن ال virtualization لذلك سنتكلم هذا اليوم عن انواع ال virtualization وفوائد كلا منها
انواع ال virtualization :-
1-Desktop virtualization
2-Application virtualization
3-Server virtualization
4-Storage virtualization
5-Presentation virtualization
6-Network virtualization
2-Application virtualization
3-Server virtualization
4-Storage virtualization
5-Presentation virtualization
6-Network virtualization
اولا Desktop virtualization
وتسمى ايضا virtual desktop infrastructure (VDI)
ما هى ال virtual machine (VM) :- هى عبارة عن برنامج يقوم بمحاكاة ال real machine يفهم Instruction Set architecture (ISA)
معينه خاصة به ويقوم بتنفيذها
[+]A system virtual machine (Emulation of the underlying raw hardware (native execution))
[+]A system virtual machine (Emulation of the underlying raw hardware (native execution))
تسمى ايضا hardware virtual machines
وفى هذا النوع يتم انشاء Complete Virtual Computer System بمعنى Virtual Processor على سبيل المثال x86 processor emulator وايضا Virtual prephirales على سبيل المثال virtual keyboard و ايضا virtual Mouse و virtual memory وهكذا لكل باقى ال Computer System
ومميزات هذا النوع انك تستطيع تشغيل نظام تشغل كامل داخل نظامك الحالى الذى يعمل عليه برنامج ال VM
على سبيل المثال تشغيل نظام لينكس وانت تعمل على نظام وندوز ويسمى اللينكس فى هذه الحالة ب guest operating system
وايضا دعم تشغيل برمجيات لا تعمل على معالجك بسبب ان ال ISA الخاصة بها ليست كمثل ال ISA الخاصة بمعالجك كمثال على ذلك نظام تشغيل MAC موجهه الى معالج من عائلة PowerPC وانت معالجك من نوع Pentium فالحل الوحيد ان يكون ال VM الذى يعمل على جهازك يدعم هذا المعالج PowerPC ويقوم فى هذه الحالة ال VM بتحويل كل Instruction مكتوبه بال PowerPC ISA الى Pentium ISA حتى يتمكن من تشغيلها على جهازك
من الفوائد ايضا انك احيانا تحتاج الى ان قوم بتشغيل عملية معينة هامة لك ولا تريد اى شئ يمكن ان يوقفها او يقطعها يمعنى انك تريدها تعمل فى بيئة امنة لذلك يمكن لك تشغيل هذه ال Process فى VM خاصة بها بمعنى انك انشئت VM كاملة لها ولا يمكن لاى Process ان تؤثر على هذه ال Process التى تعمل داخل ال VM
وهذه الطريقة تستخدم فى الكثر من السيرفرات وتسمى quality-of-service isolation QoS isolation
امثلة على برمجيات توفر لك هذا النوع من ال VM :-
Virtual PC, Virtual Box, Parallels Workstation , Virtual Iron
ثانيا Application virtualization
[+]Process virtual machine (Emulation of a non-native system)
وهو عبارة عن برنامج يعمل من اجل Process اخرى يعمل عندما تشتغل هذه ال Process وينتهى عندما تنتهى هذه ال Process وهذا ال VM كمثال عليه ال Java runtime VM والتى تقوم بانشاء platform-independent environment لكى يتمكن ال Java Application من العمل
ولا تنسوا ان الكود الناتج من عملية ال Compilation لكود جافا هو ByteCode وليس Machine code موجهه لمعالج معين
وهذا ال ByteCode هو عبارة عن ISA خاصه بال Java VM تفهمها وتقوم من خلالها بتفسيرها Interpretation الى Machine dependent code وتقوم بتنفذ هل ال code الناتج
وايضا لغة ال C# التى تستخدم ال Common Language Runtime VM كبيئة تخيلية لها .
تعريف ال computer cluster :- وهو ان يكون هناك عدد من اجهزة الكمبيوتر التى تعمل معا لتشغيل برنامجا او العديد من البرمجيات معا من خلال ال Parallel Processing وهذا يؤدى الى اداء عالى وفاعلية اكبر
فاذا افتضرت انك تستطيع تشغيل اكثر من Computer System فى نفس الوقت فى نفس الجهاز فانك تسطيع انشاء computer cluster
امثلة على برمجيات توفر لك هذا النوع من ال VM :-
p-code machine , Java virtual machine,Common Language Infrastructure,
ثالثا Server virtualization
وفى هذا النوع يتم انشاء Complete Virtual Computer System بمعنى Virtual Processor على سبيل المثال x86 processor emulator وايضا Virtual prephirales على سبيل المثال virtual keyboard و ايضا virtual Mouse و virtual memory وهكذا لكل باقى ال Computer System
ومميزات هذا النوع انك تستطيع تشغيل نظام تشغل كامل داخل نظامك الحالى الذى يعمل عليه برنامج ال VM
على سبيل المثال تشغيل نظام لينكس وانت تعمل على نظام وندوز ويسمى اللينكس فى هذه الحالة ب guest operating system
وايضا دعم تشغيل برمجيات لا تعمل على معالجك بسبب ان ال ISA الخاصة بها ليست كمثل ال ISA الخاصة بمعالجك كمثال على ذلك نظام تشغيل MAC موجهه الى معالج من عائلة PowerPC وانت معالجك من نوع Pentium فالحل الوحيد ان يكون ال VM الذى يعمل على جهازك يدعم هذا المعالج PowerPC ويقوم فى هذه الحالة ال VM بتحويل كل Instruction مكتوبه بال PowerPC ISA الى Pentium ISA حتى يتمكن من تشغيلها على جهازك
من الفوائد ايضا انك احيانا تحتاج الى ان قوم بتشغيل عملية معينة هامة لك ولا تريد اى شئ يمكن ان يوقفها او يقطعها يمعنى انك تريدها تعمل فى بيئة امنة لذلك يمكن لك تشغيل هذه ال Process فى VM خاصة بها بمعنى انك انشئت VM كاملة لها ولا يمكن لاى Process ان تؤثر على هذه ال Process التى تعمل داخل ال VM
وهذه الطريقة تستخدم فى الكثر من السيرفرات وتسمى quality-of-service isolation QoS isolation
امثلة على برمجيات توفر لك هذا النوع من ال VM :-
Virtual PC, Virtual Box, Parallels Workstation , Virtual Iron
ثانيا Application virtualization
[+]Process virtual machine (Emulation of a non-native system)
وهو عبارة عن برنامج يعمل من اجل Process اخرى يعمل عندما تشتغل هذه ال Process وينتهى عندما تنتهى هذه ال Process وهذا ال VM كمثال عليه ال Java runtime VM والتى تقوم بانشاء platform-independent environment لكى يتمكن ال Java Application من العمل
ولا تنسوا ان الكود الناتج من عملية ال Compilation لكود جافا هو ByteCode وليس Machine code موجهه لمعالج معين
وهذا ال ByteCode هو عبارة عن ISA خاصه بال Java VM تفهمها وتقوم من خلالها بتفسيرها Interpretation الى Machine dependent code وتقوم بتنفذ هل ال code الناتج
وايضا لغة ال C# التى تستخدم ال Common Language Runtime VM كبيئة تخيلية لها .
تعريف ال computer cluster :- وهو ان يكون هناك عدد من اجهزة الكمبيوتر التى تعمل معا لتشغيل برنامجا او العديد من البرمجيات معا من خلال ال Parallel Processing وهذا يؤدى الى اداء عالى وفاعلية اكبر
فاذا افتضرت انك تستطيع تشغيل اكثر من Computer System فى نفس الوقت فى نفس الجهاز فانك تسطيع انشاء computer cluster
امثلة على برمجيات توفر لك هذا النوع من ال VM :-
p-code machine , Java virtual machine,Common Language Infrastructure,
ثالثا Server virtualization
او ما يسمى
virtual private server (VPS) او Virtual Dedicated Server (VDS)
وهو اذا كان لديك سيرفر يحتوى على resources معينة فبدلا من ان تشغل على هذا ال server نظام تشغيل واحد يمتلك كل ال resources فستقوم بتكوين عدد معين من ال VM التى كل منها تمثل سيرفر يحتوى على جزء من ال resources الخاصة بالسيرفر ولذلك فستتمكن من تشغيل اكثر من سيرفر (ftp و web server و dns ) من نفس السيرفر فى نفس الوقت كل سيرفر منهم يعمل فى بيئة تخيلية VM لا يرى الاخر ولا يتحكم فيه اخر ولكل سيرفر جزء من ال resources الخاصة بالسيرفر الاصلى
رابعا Storage virtualization
وهذا النوع يطبق على مجموعة من السيرفرات او الاجهزة وهناك storage media نريد ان نقسمه على هذه الاجهزة بنسب معينه لكل جهاز فلذلك نستخدم جهاز Storage virtualization Manager (SVM) وتسمى فى هذه الحالة الاجهزة بانها تكون SAN (storage area network) وجهاز ال SVM هو المسؤل على اعطاء كل جهاز او سيرفر المساحة المخصصة له من خلال انه يظهر الى هذا السيرفر او الجهاز على انه Logical Disk بمساحة معينه ومن مميزات هذا النوع من ال virtualization
1- ال Security من خلال انك تمنع احد الاجهزة من التمكن من الاطلاع على بيانات جهاز اخر
2- تستطيع استخدام ال Sharing من خلال انك تجعل ملف او مجلد مشترك بين اكثر من جهاز
3-تستطيع ان تعمل resize لل logical disk فى اى وقت على حساب مساحة جهاز اخر
خامسا Presentation virtualization
وفى هذا النوع يوجد جهاز واحد مركزى ويوجد العديد من ال end-user terminal التى تتكون من شاشة وماوس وكيبورد حتى يتمكن ال مستخدم من التحكم فى الجهاز الخاصة به كل end-user terminal تقوم بعمل virtual session على الجهاز المركزى ولذلك يتعامل المستخدم كانه يملك الجهاز كله وكان لا يوجد احد اخر يتعامل يشاركه فى موارد الجهاز ومن خلال هذا يستطيع اكثر من مستخدم تشغيل نفس البرنامج من نفس النسخة الى على الجهاز المركزى وهذا يساعد احيانا على اداء افضل وعلى الا تكون معدات المؤسسة كبيرة وعالية الثمن
ووظيفة الجهاز المركزى هل تلقى طلبات انشاء virtual session والتعامل معها كانها session منفرده لا تستطيع اى session من تخطى حدها والتحكم فى session اخر ويوفر باقى عمليات النظام التى يحتاجها لتشغيل البرمجيات المطلوبة
سادسا Network virtualization
وهو اذا كان دلينا شبكة كبير تضم عشرات الاجهزة فيمكننا من تقسيم هذه الاجهزة على شبكات تخيلة بدلا من ان يكونوا كشبكة واحدة وهذا التقسيم سيحسن من اداى الشبكة وعمل troubleshooting اسهل للشبكة
ولذلك لابد ان نقسم شبكتنا الى العديد من ال VLan اى Virtual Lan ونحدد من خلال ال Switches اى الاجهزة تنضم الى ال VLan المعينة ونقسم كل الاجهزة على عدد من ال VLan وبذلك بدلا من ان نعامل كل الاجهزة كانها داخل شبكة واحد نعاملها كان كل مجموعة اجهزة لا يشترط ان يكونوا على نفس ال Switch انهم يكونوا شبكة Lan مع بعضهم
virtual private server (VPS) او Virtual Dedicated Server (VDS)
وهو اذا كان لديك سيرفر يحتوى على resources معينة فبدلا من ان تشغل على هذا ال server نظام تشغيل واحد يمتلك كل ال resources فستقوم بتكوين عدد معين من ال VM التى كل منها تمثل سيرفر يحتوى على جزء من ال resources الخاصة بالسيرفر ولذلك فستتمكن من تشغيل اكثر من سيرفر (ftp و web server و dns ) من نفس السيرفر فى نفس الوقت كل سيرفر منهم يعمل فى بيئة تخيلية VM لا يرى الاخر ولا يتحكم فيه اخر ولكل سيرفر جزء من ال resources الخاصة بالسيرفر الاصلى
رابعا Storage virtualization
وهذا النوع يطبق على مجموعة من السيرفرات او الاجهزة وهناك storage media نريد ان نقسمه على هذه الاجهزة بنسب معينه لكل جهاز فلذلك نستخدم جهاز Storage virtualization Manager (SVM) وتسمى فى هذه الحالة الاجهزة بانها تكون SAN (storage area network) وجهاز ال SVM هو المسؤل على اعطاء كل جهاز او سيرفر المساحة المخصصة له من خلال انه يظهر الى هذا السيرفر او الجهاز على انه Logical Disk بمساحة معينه ومن مميزات هذا النوع من ال virtualization
1- ال Security من خلال انك تمنع احد الاجهزة من التمكن من الاطلاع على بيانات جهاز اخر
2- تستطيع استخدام ال Sharing من خلال انك تجعل ملف او مجلد مشترك بين اكثر من جهاز
3-تستطيع ان تعمل resize لل logical disk فى اى وقت على حساب مساحة جهاز اخر
خامسا Presentation virtualization
وفى هذا النوع يوجد جهاز واحد مركزى ويوجد العديد من ال end-user terminal التى تتكون من شاشة وماوس وكيبورد حتى يتمكن ال مستخدم من التحكم فى الجهاز الخاصة به كل end-user terminal تقوم بعمل virtual session على الجهاز المركزى ولذلك يتعامل المستخدم كانه يملك الجهاز كله وكان لا يوجد احد اخر يتعامل يشاركه فى موارد الجهاز ومن خلال هذا يستطيع اكثر من مستخدم تشغيل نفس البرنامج من نفس النسخة الى على الجهاز المركزى وهذا يساعد احيانا على اداء افضل وعلى الا تكون معدات المؤسسة كبيرة وعالية الثمن
ووظيفة الجهاز المركزى هل تلقى طلبات انشاء virtual session والتعامل معها كانها session منفرده لا تستطيع اى session من تخطى حدها والتحكم فى session اخر ويوفر باقى عمليات النظام التى يحتاجها لتشغيل البرمجيات المطلوبة
سادسا Network virtualization
وهو اذا كان دلينا شبكة كبير تضم عشرات الاجهزة فيمكننا من تقسيم هذه الاجهزة على شبكات تخيلة بدلا من ان يكونوا كشبكة واحدة وهذا التقسيم سيحسن من اداى الشبكة وعمل troubleshooting اسهل للشبكة
ولذلك لابد ان نقسم شبكتنا الى العديد من ال VLan اى Virtual Lan ونحدد من خلال ال Switches اى الاجهزة تنضم الى ال VLan المعينة ونقسم كل الاجهزة على عدد من ال VLan وبذلك بدلا من ان نعامل كل الاجهزة كانها داخل شبكة واحد نعاملها كان كل مجموعة اجهزة لا يشترط ان يكونوا على نفس ال Switch انهم يكونوا شبكة Lan مع بعضهم