فناوري مجازي سازي سرور


 






 
کامپيوترهاي سرور (ماشين هايي که فايل ها و نرم افزارهاي کاربردي را بر روي شبکه هاي کامپيوتري ميزباني مي کنند) بايد بسيار قدرتمند باشند. بعضي از اين سيستم ها داراي واحدهاي پردازنده مرکزي (CPU) با هسته هاي پردازنده متعددي هستند که توانائي اجراي آسان وظايف پيچيده را در اختيار اين سرورها قرار مي دهند. سرپرستان شبکه هاي کامپيوتري معمولاً هر سرور را به يک نرم افزار کاربردي و با وظيفه اي معين اختصاص مي دهند. بسياري از اين وظايف بخوبي با سايرين کنار نمي آيند زيرا هريک از آنها به ماشين اختصاصي خودشان نياز دارند. "يک نرم افزار کاربردي بر روي هر سرور" در عين حال باعث مي شود که رديابي مشکلات بسيار آسانتر گردد. اين يک روش آسان براي ساده و مؤثر کردن يک شبکه ي کامپيوتري از نقطه نظر فني به حساب مي آيد.
با اينحال، شيوه ي مذکور با مشکلاتي نيز همراه است. اولاً در اين شيوه بطور کامل از قدرت پردازش کامپيوترهاي سرور مدرن بهره گيري نخواهد شد. اکثر سرورها تنها از بخش کوچکي از قابليت هاي پردازش کلي خود استفاده مي کنند. مشکل بعدي اين است که وقتي يک شبکه ي کامپيوتري بزرگتر و پيچيده تر مي شود، سرورها به تدريج فضاي فيزيکي بسيار زيادي را اشغال مي کنند. يک Data Center در اين شرايط مي تواند با قفسه هاي (Racks) سرور خود انباشته مي شود که برق بسيار زيادي را مصرف و حرارت بسيار زيادي را توليد مي کنند.
مجازي سازي سرور (Server Virtualization) تلاش مي کند تا هر دو مشکل مذکور را در يک حرکت قاطع برطرف نمايد. با استفاده از نرم افزارهايي که بطور اختصاصي طراحي شده اند، يک سرپرست مي تواند يک سرور فيزيکي را به چند ماشين مجازي تبديل کند. هر سرور مجازي درست همانند يک ابزار فيزيکي منحصر بفرد عمل کرده و قادر به اجراي سيستم عامل خودش باشد. در تئوري، شما مي توانيد سرورهاي مجازي کافي را براي استفاده از تمام قدرت پردازش يک ماشين ايجاد کنيد، هر چند که اين کار هميشه بهترين ايده به حساب نمي آيد.

سخت افزار مجازي
 

تا همين اواخر، تنها راه براي ايجاد يک سرور مجازي اين بود که نرم افزار خاصي را به منظور وادار نمودن CPU سرور به تأمين قدرت پردازش براي ماشين هاي مجازي متعدد طراحي کنيم. امروزه توليد کنندگان پردازنده ها نظير اينتل و AMD، محصولاتي را ارائه مي کنند که از قابليت پشتيباني توکار سرورهاي مجازي برخوردارند. با اينحال سخت افزار عملاً سرورهاي مجازي را ايجاد نمي کند و مهندسين شبکه هنوز براي ايجاد آنها به نرم افزار مناسب نياز خواهند داشت.
مجازي سازي به هيچوجه يک مفهوم جديد نيست. دانشمندان علوم کامپيوتر از چند دهه ي پيش ماشين هاي مجازي را بر روي سوپرکامپيوترها ايجاد مي کرده اند. با اينحال، از زماني که مجازي سازي به يک فرآيند امکانپذير براي سرورهاي عادي تبديل شده است تنها چند سال مي گذرد. در دنياي فناوري اطلاعات (IT)، مجازي سازي سرور به يک عنوان داغ تبديل شده است. البته مجازي سازي سرور هنوز يک فناوري نوپا به حساب مي آيد و شرکت هاي مختلف روش هاي متفاوتي را براي آن ارائه کرده اند.

چرا از مجازي سازي سرور استفاده کنيم؟
 

دلايل فراواني وجود دارند که باعث مي شوند شرکت ها و سازمان ها در زمينه مجازي سازي سرور سرمايه گذاري نمايند. بعضي از اين دلايل انگيزه هاي مالي دارند، در حاليکه گروه ديگري از آنها به مسائل فني مربوط مي شوند:
- مجازي سازي سرور، فضاي موجود را از طريق تجميع و ترکيب سرورها حفظ مي کند. اين يک روش متداول است که هر سرور را به يک نرم افزار کاربردي واحد اختصاص دهيم. اگر نرم افزارهاي کاربردي متعدد تنها از بخش کوچکي از قدرت پردازش سرور استفاده مي کنند، سرپرست شبکه مي تواند چند ماشين را در يک سرور واحد که محيط هاي مجازي متعددي را اجرا مي نمايد، ترکيب کند. براي شرکت هايي که صدها و يا هزاران سرور دارند، اين روش مي تواند نياز به فضاي فيزيکي را بطور چشمگيري کاهش دهد.
- مجازي سازي سرور، روشي را در اختيار شرکت ها قرار مي دهد تا "افزونگي" (Redundancy) را بدون خريد سخت افزار اضافي تجربه نمايند. افزونگي به اجراي يک نرم افزار کاربردي واحد بر روي سرورهاي متعدد اشاره دارد. افزونگي يک معيار ايمني به حساب مي آيد زيرا اگر يک سرور به هر دليل دچار خرابي گردد، سرور ديگري که همان نرم افزار کاربردي را اجرا مي کند مي تواند جاي آن را بگيرد. اين وضعيت، وقوع هرگونه وقفه اي در سرويس را به حداقل مي رساند. ايجاد دو سرور مجازي که نرم افزار کاربردي مشابهي را اجرا مي کنند بر روي يک سرور فيزيکي واحد به هيچوجه منطقي نخواهد بود. در اين وضعيت اگر سرور فيزيکي از کار بيفتد، هر دو سرور مجازي ما نيز از کار خواهند افتاد. در اکثر موارد، سرپرستان شبکه اقدام به ايجاد سرورهاي مجازي اضافي (Redundant) بر روي ماشين هاي فيزيکي متفاوت مي نمايند.
- سرورهاي مجازي، سيستم هاي مستقل و تفکيک شده اي را در اختيار برنامه نويسان قرار مي دهند که مي توانند نرم افزارهاي کاربردي و يا سيستم هاي عامل جديد را در آنها آزمايش کنند. بجاي خريد يک ماشين فيزيکي اختصاصي، سرپرست شبکه مي تواند يک سرور مجازي را بر روي يک ماشين موجود ايجاد کند. از آنجائيکه هر سرور مجازي نسبت به تمام سرورهاي ديگر مستقل است، برنامه نويسان مي توانند نرم افزار مورد نظر خود را بدون نگراني در مورد تأثير آنها بر ساير نرم افزارهاي کاربردي اجرا کنند.
- سخت افزار سرور نهايتاً کهنه و از کار افتاده خواهد شد و سوئيچ از يک سيستم به سيستم ديگر مي تواند دشوار باشد. به منظور تداوم ارائه سرويس هايي که توسط اين سيستم هاي قديمي تأمين مي شده اند (و گاهي اوقات تحت عنوان سيستم هاي موروثي شناخته مي شوند)، يک سرپرست شبکه مي تواند يک نسخه ي مجازي از سخت افزار را بر روي سرورهاي مدرن ايجاد کند. از ديدگاه نرم افزار کاربردي، هيچ چيزي تغيير نکرده است. برنامه طوري به کار خود ادامه خواهد داد که انگار هنوز بر روي سخت افزار قديمي اجرا مي شود. اين وضعيت مي تواند زمان کافي براي انتقال به رويه هاي جديد را در اختيار شرکت قرار دهد، بدون آنکه درباره ي خرابي هاي سخت افزاري نگراني داشته باشد، خصوصاً اگر شرکتي که سخت افزار موروثي را توليد مي کرده است ديگر وجود نداشته باشد و يا نتواند تجهيزات معيوب را تعمير نمايد.
- يک گرايش تازه در مجازي سازي سرور تحت عنوان "مهاجرت" (Migration) شناخته مي شود. مهاجرت به جابجائي يک محيط سرور از يک محل به محل ديگر اشاره دارد. با سخت افزار و نرم افزار مناسب، امکان جابجائي يک سرور مجازي از يک ماشين فيزيکي در شبکه به ماشين فيزيکي ديگري وجود خواهد داشت. در ابتدا اينکار تنها در صورتي امکانپذير بود که هر دو ماشين فيزيکي از سخت افزار، سيستم عامل و پردازنده مشابهي استفاده مي کردند. با اينحال اکنون امکان مهاجرت سرورهاي مجازي از يک ماشين فيزيکي به يک ماشين فيزيکي ديگر وجود دارد، حتي اگر دو ماشين مورد نظر داراي پردازنده هاي متفاوتي باشند، البته تنها به اين شرط که پردازنده ها محصول يک توليد کننده ي واحد باشند.

آيا شما به مهاجرت سرورها فکر مي کنيد؟
 

در حاليکه مهاجرت يک سرور مجازي از يک ماشين فيزيکي به يک ماشين فيزيکي ديگر موضوع نسبتاً جديدي است، اما فرآيند تبديل يک سرور فيزيکي به يک سرور مجازي نيز مهاجرت ناميده مي شود. بطور اخص، اين فرآيند تحت عنوان P2V Migration(Physical to Virtuale) شناخته مي شود.

انواع مجازي سازي سرور
 

3 روش مختلف براي ايجاد سرورهاي مجازي وجود دارند: مجازي سازي کامل، مجازي سازي ناقص (Para-Virtualization) و مجازي سازي سطح سيستم عامل. هر سه روش مذکور داراي چند خصوصيت مشترک هستند. سرور فيزيکي تحت عنوان ميزبان (Host) شناخته مي شود. سرورهاي مجازي تحت عنوان مهمان (Guest) شناخته مي شوند. سرورهاي مجازي همانند ماشين هاي فيزيکي رفتار مي کنند. هر سيستم از يک روش متفاوت براي اختصاص منابع فيزيکي به نيازهاي سرور مجازي استفاده مي نمايد. مجازي سازي کامل از يک نوع نرم افزار خاص با نام Hypervisor استفاده مي کند. Hypervisor مستقيماً با فضاي ديسک و CPU سرور فيزيکي تعامل مي نمايد. اين نرم افزار بعنوان يک سکو براي سيستم عامل سرور مجازي عمل مي کند. Hypervisor هر سرور مجازي را کاملاً مستقل و بي اطلاع از سرورهاي مجازي ديگري که بر روي همان ماشين فيزيکي اجرا مي شوند، نگه مي دارد. هر سرور مهمان بر روي سيستم عامل خودش اجرا مي شود. بعبارت ديگر، شما مي توانيد دو سرور مهمان داشته باشيد که بر روي يکي لينوکس و بر روي ديگري ويندوز اجرا مي شود.
Hypervisor بر منابع سرور فيزيکي نظارت مي کند. هنگاميکه سرورهاي مجازي نرم افزارهاي کاربردي را اجرا مي کنند، Hypervisor منابع را از ماشين فيزيکي به سرور مجازي مقتضي "رله" مي نمايد. Hypervisorها داراي نيازهاي پردازشي خودشان هستند و اين بدان معني است که سرور فيزيکي بايد مقدار از منابع و قدرت پردازش خود را براي اجراي نرم افزار کاربردي Hypervisor نگهدارد. اين موضوع مي تواند بر عملکرد کلي سرور تأثير گذاشته و نرم افزارهاي کاربردي را کند نمايد.
روش مجازي سازي ناقص، اندکي متفاوت است. برخلاف تکنيک مجازي سازي کامل، سرورهاي مهمان در يک سيستم مجازي سازي ناقص از وجود يکديگر اطلاع دارند. يک نرم افزار Hypervisor در ساختار مجازي سازي ناقص به قدرت پردازش چنداني براي مديريت سيستم هاي عامل مهمان نياز ندارد، زيرا هر سيستم عامل از مطالبات ساير سيستم هاي عامل از سرور فيزيکي آگاه است. کل اين سيستم با يکديگر بصورت يک واحد "به هم پيوسته" (Cohesive) کار مي کنند.
روش مجازي سازي سطح سيستم عامل اساساً از يک Hypervisor استفاده نمي کند. در مقابل، قابليت مجازي سازي بخشي از سيستم عامل ميزبان است که تمام توابع يک Hypervisor کاملاً مجازي سازي شده را انجام مي دهد. بزرگترين محدوديت روش مذکور در اين است که تمام سرورهاي مهمان بايد سيستم عامل مشابهي را اجرا کنند. هر سرور مجازي مستقل از تمام سرورهاي مجازي ديگر باقي مي ماند، اما شما نمي توانيد در بين آنها از سيستم هاي عامل متفاوتي استفاده کنيد. از آنجائيکه تمام سيستم هاي عامل مهمان بايستي يکسان باشند، اين ساختار بعنوان يک محيط "همگن" (Homogeneous) شناخته مي شود.
کدام شيوه بهترين است؟ پاسخ اين سؤال تا حدود زيادي به نيازهاي سرپرست شبکه بستگي دارد. اگر سرورهاي فيزيکي سرپرست همگي يک سيستم عامل واحد را اجرا مي کنند، روش مجازي سازي سطح سيستم عامل مي تواند بهترين گزينه باشد. ترکيب هاي سطح سيستم عامل عموماً سريعتر و کارآمدتر از ساير روش ها هستند. از سوي ديگر، اگر سرپرست از سرورهايي استفاده مي کند که سيستم هاي عامل متفاوتي بر روي آنها اجرا مي شوند، روش مجازي سازي ناقص مي تواند گزينه ي بهتري باشد. يک نقيصه ي احتمالي سيستم مجازي سازي ناقص، پشتيباني است. در واقع اين تکنيک نسبتاً جديد بوده و تنها تعداد اندکي از شرکت ها نرم افزار مجازي سازي ناقص را ارائه مي کنند. بيشتر شرکت ها از مجازي سازي کامل پشتيباني مي کنند، اما توجه به مجازي سازي ناقص در حال افزايش است و احتمالاً پس از مدتي جايگزين مجازي سازي کامل خواهد شد.

محافظت سرور
 

در روزهاي آغازين مجازي سازي سرور، هنگاميکه نوبت به نرم افزار مجازي سازي رسيد تنها يک بازيکن در اين عرصه حضور داشت: VMware. امروزه شرکت هاي متعددي نرم افزارهاي مجازي سازي را ارائه مي کنند. بعضي از اين نرم افزارها اختصاصي مي باشند اما گروه ديگري از اين برنامه ها Open Source هستند که بجاي شرکت ها توسط گروه ها و تيم هاي عمومي ايجاد و توزيع مي شوند. بعضي از بازيکنان بزرگ عرصه ي نرم افزارهاي مجازي سازي عبارتند از:
Free VPS
Microsoft Virtual Server
Parallels
Qemu
SWSoft
Virtual Iron
Virtuozzo
Xen

محدوديت هاي مجازي سازي سرور
 

فوايد مجازي سازي سرور مي تواند آنقدر اغوا کننده باشد که باعث شود به آساني فراموش کنيم اين تکنيک نيز محدوديت هاي خاص خود را دارد. براي يک سرپرست شبکه بسيار مهم است که پيش از تلاش براي مهندسي يک راه حل، به تحقيق درباره ي مجازي سازي سرور و همچنين معماري و نيازهاي شبکه خود بپردازد.
براي سرورهايي که به نرم افزارهاي کاربردي با تقاضاي سنگين در زمينه قدرت پردازنده اختصاص يافته اند، مجازي سازي به هيچوجه يک گزينه ي مناسب در نظر گرفته نمي شود. دليل اين مسئله آن است که مجازي سازي اساساً قدرت پردازش سرور را مابين سرورهاي مجازي تقسيم مي کند. هنگاميکه قدرت پردازش سرور نتواند با مطالبات نرم افزار کاربردي انطباق پيدا کند، همه چيز کند خواهد شد. وظايفي که تکميل آنها نبايد مدت زيادي طول بکشد، مي توانند ساعت ها ادامه پيدا کنند. حتي بدتر، در صورتيکه سرور نتواند با درخواست هاي پردازشي انطباق پيدا کند امکان از کار افتادن (Crash) سيستم وجود دارد. سرپرستان شبکه پيش از تقسيم يک سرور فيزيکي به ماشين هاي مجازي متعدد بايد به دقت بر ميزان بکارگيري CPU نظارت و توجه داشته باشند.
به هيچوجه عاقلانه نيست که با ايجاد تعداد زيادي از سرورهاي مجازي بر روي يک ماشين فيزيکي واحد، بار کاري بيش از حدي را بر پردازنده يک سرور تحميل کنيم. هر چه تعداد ماشين هاي مجازي که سرور بايد از آنها پشتيباني کند بيشتر باشد، هريک از سرورهاي مجازي قدرت پردازشي کمتري را بدست خواهد آورد. بعلاوه، حجم محدودي از فضاي ديسک بر روي سرورهاي فيزيکي وجود دارد. کثرت بيش از حد سرورهاي مجازي مي تواند بر توانايي سرور براي ذخيره سازي داده ها تأثير بگذارد.
محدوديت بعدي، مهاجرت است. در حال حاضر، تنها زماني امکان مهاجرت يک سرور مجازي از يک ماشين فيزيکي به ماشين فيزيکي ديگر وجود خواهد داشت که هر دو ماشين فيزيکي از پردازنده هاي يک توليدکننده ي واحد استفاده نمايند. اگر شبکه اي از يک سرور مبتني بر يک پردازنده اينتل استفاده مي کند و شبکه ي ديگري از يک سرور مبتني بر يک پردازنده AMD، انتقال يک سرور مجازي از يک ماشين فيزيکي به ماشين فيزيکي ديگر غيرممکن خواهد بود.

آينده سرورهاي مجازي
 

اين امکان وجود دارد که در آينده ي نزديک بسياري از نيازهاي رايانشي (Computing) روزمره ما با تأمين فضاي ذخيره سازي و نرم افزارهاي کاربردي توسط سرورهاي مجازي، بر روي يک اتصال شبکه اداره شوند. در نتيجه، بازار سخت افزار کامپيوتر احتمالاً با تغيير جدي مواجه خواهد شد. شما ديگر به سريعترين PC براي اجراي آخرين نرم افزارهاي ارائه شده نياز نخواهيد داشت.در اين شرايط، يک شبکه ي دور از سرورهاي مجازي مي تواند پردازش را اداره نمايد و تمام چيزي که شما به آن نياز داريد، يک ترمينال شبکه سازي شده ساده براي دسترسي به شبکه مذکور است.
اساساً چرا ممکن است يک سرپرست بخواهد تصميم به مهاجرت يک سرور مجازي بگيرد؟ اگر يک سرور فيزيکي نيازمند نگهداري باشد، انتقال سرورهاي مجازي به ماشين هاي ديگر مي تواند مدت زمان Downtime نرم افزار کاري را کاهش دهد. اگر امکان مهاجرت وجود نداشته باشد، تمام نرم افزارهاي کاربردي که بر روي سرورهاي مجازي ميزباني شده در سرور فيزيکي اجرا مي شوند، در طول فرآيند نگهداري غيرقابل دسترسي خواهند بود.
بسياري از شرکت ها عليرغم محدوديت هاي موجود بر روي مجازي سازي سرورها سرمايه گذاري مي کنند. با پيشرفت فناوري مجازي سازي سرور، نياز به Data-Centerهاي عظيم مي تواند کاهش پيدا کند. در عين حال، امکان کاهش مصرف برق و خروجي حرارتي سرور نيز وجود دارد که باعث مي شود بکارگيري سرور نه تنها از نظر مالي جذابيت پيدا کند، بلکه به يک ابتکار سبز و دوستدار محيط زيست تبديل گردد. از آنجائيکه شبکه ها از سرورهاي خود در شرايطي نزديک تر به پتانسيل کامل آنها استفاده مي کنند، مي توانيم شاهد شبکه هاي کامپيوتري بزرگتر و کارآمدتري باشيم. به هيچوجه اغراق آميز نيست که بگوئيم سرورهاي مجازي مي توانند به يک تحول کامل در صنعت رايانش (Computing) تبديل شوند. ما تنها بايد منتظر بمانيم و ببينيم.
منبع: ماهنامه ي کامپيوتري بزرگراه رايانه، شماره ي 130