AMD.POWER
مدیر بازنشسته
مدتی است بحث مجازیسازی و استفاده از سرورهای مجازی در قالب یک سرور، بسیار باب شدهاست. بهطوری که بسیاری از شرکتها به تغییرات اساسی در طراحی شبکههای داخلی تمايل دارند تا به اهداف جدیدی از این نقطهنظر دست پیدا کنند. در این مقاله به بررسی و توضیح این فرآیند و سود و ضرر ناشی از این تغییرات از نقطه نظر تجربی میپردازیم.
مجازیسازی، شامل استفاده از یک منبع سختافزاری برای استفاده از چندین سرویس است. برای روشن شدن این مطلب به بررسی یک مثال عملی میپردازیم:
سرویسهای موردنیاز برای راهاندازی یک شبکه در سایز متوسط، همانطور که در بیشتر شبکهها یکسان است، شامل: Domain Controller،Active Directory، DHCP ،DNS ،Proxy ،Internal Mail Server، Firewall و... است که یک سرور و سیستمعامل نميتواند تمامی این سرویسها را به کاربران ارائه دهد. بهطور مثال، سرور Domain Controller و Active Directory را نمیتوان بهعنوان Firewall در شبکه داخلی استفاده کرد، زیرا از سرعت سیستم کاسته و به دنبال آن بازدهی شبکه داخلی بهطور قابل ملاحظهای کاهش مییابد. از طرفی، همانطور که از اسم آن پيداست، Firewall بهعنوان دیواری آتشین بین شبکه داخلی و اینترنت به شمار ميرود و چون بهطور مداوم به شبکه اینترنت متصل است، نمیتواند ارائهکننده سرویس Domain Controller نیز باشد و اگر به هر دلیلی Firewall مورد حمله (هکر، ویروس، مالور، تروجان و...) قرار گیرد، در کمترین زمان غیرقابل کنترل تمامی شبکه داخلی از کار خواهد افتاد و به سرعت تمامی شبکه و کاربران نیز بهطور مستقیم مورد حمله قرار ميگیرند.
در طراحی شبکههای امن هیچگاه سرور Domain Controller بهطور مستقیم به اینترنت متصل نیست و پیشنهاد میشود در سرور فوق تا حد ممکن اینترنت توزیع نشود و چون سرور Domain بهعنوان قلب شبکه ایفای نقش میکند و سرعت شبکه رابطه مستقیم با نحوه کارکرد و بازدهی این سرور دارد، بايد کمترین سرویسهای اضافی را به این سرور اضافه کرد. سرعت کم و کندی شبکه و به بیان دیگر بازدهی غیرقابل قبول، معضل بسیاری از شبکههای داخلی است، چراکه به دليل هزینه بالای قطعات سختافزاری، اغلب یک سرور سرویسهای بسیاری را ارائه ميدهد که اين موضوع کاهش بازدهی را به دنبال دارد.
Virtualization به شما این امکان را میدهد تا روی یک سیستم (فیزیکی) چندین سیستم مجازی داشته باشید، بهطوری که تکتک آنها به صورت مستقل برای ارائه سرویس ایفای نقش ميکنند، در صورتی که همه آنها بهطور فیزیکی از یک منبع تغذیه میشوند. به بیان دیگر، منبع فیزیکی-سختافزاری بین تمامی آنها به اشتراک گذاشته میشود. در این حالت هر یک از سیستمهای مجازی میتوانند دارای سیستمعاملها و نسخههای متفاوت باشند. بهطور مثال، یکی از سیستمها بهعنوان Domain Controller ایفای نقش میکند و تحت سیستمعامل Microsoft Windows 2003 R2 است و دیگری با نسخهاي از سیستمعامل Linux بهعنوانCash Server عمل میکند.
چرا Virtualization؟
چند دلیل عمده که باعث شده شرکتهای بیشتری تمايل به استفاده از اين فناوري داشته باشند، عبارتند از :
1. استفاده بهتر از منابع موجود سیستم، تغییر قوانین موجود «یک سرویس یک سرور.»
2. کاهش هزینههای مرکز داده با کاهش زیرساختهای فیزیکی و البته بهبود مدیریت سرورها. هر چه میزان استفاده از سرورهای متعدد کاهش یابد، به مراتب هزینه برق و بسیاری از منابع دیگر نیز به صورت موازی کاهش مییابد. کم کردن هزینههای غیرواقعی و ضروری از آمال و آرزوهای هر شرکتی است و با اطمینان میتوان گفت، استفاده از مجازیسازی سیستمها یکی از روشهای کارساز برای کم کردن هزینههای غیرضروری است.
3. سهولت در نگهداری و بازیابی اطلاعات و ارتقاء مديريت سيستمها از طريق توسعه سريعتر آنها و کاهش مراجعات پشتيبانی ناشی از ناسازگاری برنامهها.
نحوه پيادهسازی مجازیسازی
ماهيت سختافزارهای به ظاهر قدرتمند امروزی بیشتر مبتنی بر مدل اوليه كامپيوترهای X86 است که با توجه به توان سختافزاری آنها، براي اجراي يك سيستمعامل و يك كاربرد نصبشده روی آن طراحی نشدهاند، چراکه بيشتر توانايیهای موجود در سختافزارها استفاده نشده و بسياري از سيستمها كاركرد بهينهای ندارند. برای ايجاد زيربناي مجازی، نرمافزارهای مختلفی با قابلیتها و قیمتهای متفاوتی وجود دارد. نرمافزاری مانند VMware منابع سختافزاري يك كامپيوتر مبتنی بر X86 شامل CPU، RAM ،Hard disk ،ODD و Network Controller را به منابع مجازی تبديل کرده و میتوان در آن چندين ماشين مجازی ايجاد کرد که هر يک قابليت اجرای سيستمعامل و برنامههاي كاربردی كاملاً مستقلي را مانند يك كامپيوتر واقعی داشته باشند. بيشتر تكنيكهای مجازیسازی از طريق افزودن يك لايه نرمافزاری بين سختافزار كامپيوتر يا يك سيستمعامل ميزبان است.
هر ماشين دارای يك ناظر ماشين مجازی يا Hypervisor است كه منابع سختافزاري را به صورت فعال و نامحسوس به سیستمعاملها و نرمافزارهای مرتبط اختصاص ميدهد. در اين حالت، چندين سيستمعامل روي يك كامپيوتر فيزيكي واحد به درستی اجرا ميشوند و منابع را بين يكديگر تقسيم ميكنند. پيادهسازی مجازیسازی در مراکز داده به آشنايی کامل با تکنيکهای مربوطه و تقسيم درست منابع در زمان طراحی و همچنين نگهداری و نظارت درست بر خدمات مجازیسازیشده، نياز دارد و به شرطی درصد میزان نگهداری یا Maintenance را کاهش میدهد که از بنیان درست طراحی برخوردار باشد.
زیان ناشی از Virtualization
یکی از نگرانیهای اصلی شرکتها برای پیادهسازی Virtualization این است که به گفته خودشان در صورت بروز مشکل در یکی از سرورهای سرویسدهنده، تا مدتی فقط همان سرویس خاص از دسترس خارج میشود، ولی در صورت پیادهسازی Virtualization هنگام بروز مشکل سختافزاری یا عدم سازگاری به اين دليل که تمامی سرویسها توسط یک سیستم ارائه میشوند، تا زمان رفع ایراد، تمامی سرویسها از دسترس خارج شده و کار شرکتي که با شبکه و سرویسهای آن گره خورده است تا مدتی مختل میشود.
اما شرکتهای تولیدکننده نرمافزارهای مجازیسازی برای حل اين قبیل مشکلات، راهحلهایی در نظر گرفتهاند. بهطور نمونه، شرکت VMWare برای برطرف کردن اين مشکل از روشهای خاصی برای تهیه نسخه پشتیبان استفاده میکند که با استفاده از اين روش در ظرف کمتر از یک ساعت میتوان بسیاری از سرویسها و سیستمها را دوباره به بهترین حالت قبلی برگرداند. همچنین اگر از حیث آماری به مصرف انرژی و منابع مصرفی دقت شود، در حالت قبل و بعد از پیادهسازی مجازیسازی، کاملاً واضح است که تا چه حد در مصرف انرژي صرفهجويی شدهاست.
قانون 80-20 (هشتاد-بیست)
این قانونی است که بسیاری از سرمایهگذاران به آن معتقدند و به آن عمل میکنند، این قانون داراي این مفهوم است که در صورت مصرف بيست درصد از منابع (شامل پول، دانش، توانایی، انرژی، منابع انسانی و...) موجود میتوانید به بهرهوری هشتاد درصدی برسید. به بیانی دیگر، برای بهرهوری هشتاد درصدی فقط کافیست بيست درصد از منابع خود را مصرف کنید. شاید کمی این قانون دور ذهن و غیرقابل باور باشد، ولی بسیاری از شرکتهای موفق دنيا، هماکنون با بهرهگیری از این قانون، مقتدرانه فعالیت میکنند، بدون اینکه تمامی منابع خود را صرف بهرهوری صد درصدی کنند. این قانون را یادآور شدیم تا با توجه به آن، این نتیجهگیری را برای پیادهسازی مجازیسازی داشته باشیم که میتوان با مصرف بيست درصد از منابع سختافزاری و انرژی مصرفی به بازدهی هشتاد درصدی با مجازیسازی سیستمها بهخصوص سرورها رسید.
مجازیسازی، شامل استفاده از یک منبع سختافزاری برای استفاده از چندین سرویس است. برای روشن شدن این مطلب به بررسی یک مثال عملی میپردازیم:
سرویسهای موردنیاز برای راهاندازی یک شبکه در سایز متوسط، همانطور که در بیشتر شبکهها یکسان است، شامل: Domain Controller،Active Directory، DHCP ،DNS ،Proxy ،Internal Mail Server، Firewall و... است که یک سرور و سیستمعامل نميتواند تمامی این سرویسها را به کاربران ارائه دهد. بهطور مثال، سرور Domain Controller و Active Directory را نمیتوان بهعنوان Firewall در شبکه داخلی استفاده کرد، زیرا از سرعت سیستم کاسته و به دنبال آن بازدهی شبکه داخلی بهطور قابل ملاحظهای کاهش مییابد. از طرفی، همانطور که از اسم آن پيداست، Firewall بهعنوان دیواری آتشین بین شبکه داخلی و اینترنت به شمار ميرود و چون بهطور مداوم به شبکه اینترنت متصل است، نمیتواند ارائهکننده سرویس Domain Controller نیز باشد و اگر به هر دلیلی Firewall مورد حمله (هکر، ویروس، مالور، تروجان و...) قرار گیرد، در کمترین زمان غیرقابل کنترل تمامی شبکه داخلی از کار خواهد افتاد و به سرعت تمامی شبکه و کاربران نیز بهطور مستقیم مورد حمله قرار ميگیرند.
در طراحی شبکههای امن هیچگاه سرور Domain Controller بهطور مستقیم به اینترنت متصل نیست و پیشنهاد میشود در سرور فوق تا حد ممکن اینترنت توزیع نشود و چون سرور Domain بهعنوان قلب شبکه ایفای نقش میکند و سرعت شبکه رابطه مستقیم با نحوه کارکرد و بازدهی این سرور دارد، بايد کمترین سرویسهای اضافی را به این سرور اضافه کرد. سرعت کم و کندی شبکه و به بیان دیگر بازدهی غیرقابل قبول، معضل بسیاری از شبکههای داخلی است، چراکه به دليل هزینه بالای قطعات سختافزاری، اغلب یک سرور سرویسهای بسیاری را ارائه ميدهد که اين موضوع کاهش بازدهی را به دنبال دارد.
Virtualization به شما این امکان را میدهد تا روی یک سیستم (فیزیکی) چندین سیستم مجازی داشته باشید، بهطوری که تکتک آنها به صورت مستقل برای ارائه سرویس ایفای نقش ميکنند، در صورتی که همه آنها بهطور فیزیکی از یک منبع تغذیه میشوند. به بیان دیگر، منبع فیزیکی-سختافزاری بین تمامی آنها به اشتراک گذاشته میشود. در این حالت هر یک از سیستمهای مجازی میتوانند دارای سیستمعاملها و نسخههای متفاوت باشند. بهطور مثال، یکی از سیستمها بهعنوان Domain Controller ایفای نقش میکند و تحت سیستمعامل Microsoft Windows 2003 R2 است و دیگری با نسخهاي از سیستمعامل Linux بهعنوانCash Server عمل میکند.
چرا Virtualization؟
چند دلیل عمده که باعث شده شرکتهای بیشتری تمايل به استفاده از اين فناوري داشته باشند، عبارتند از :
1. استفاده بهتر از منابع موجود سیستم، تغییر قوانین موجود «یک سرویس یک سرور.»
2. کاهش هزینههای مرکز داده با کاهش زیرساختهای فیزیکی و البته بهبود مدیریت سرورها. هر چه میزان استفاده از سرورهای متعدد کاهش یابد، به مراتب هزینه برق و بسیاری از منابع دیگر نیز به صورت موازی کاهش مییابد. کم کردن هزینههای غیرواقعی و ضروری از آمال و آرزوهای هر شرکتی است و با اطمینان میتوان گفت، استفاده از مجازیسازی سیستمها یکی از روشهای کارساز برای کم کردن هزینههای غیرضروری است.
3. سهولت در نگهداری و بازیابی اطلاعات و ارتقاء مديريت سيستمها از طريق توسعه سريعتر آنها و کاهش مراجعات پشتيبانی ناشی از ناسازگاری برنامهها.
نحوه پيادهسازی مجازیسازی
ماهيت سختافزارهای به ظاهر قدرتمند امروزی بیشتر مبتنی بر مدل اوليه كامپيوترهای X86 است که با توجه به توان سختافزاری آنها، براي اجراي يك سيستمعامل و يك كاربرد نصبشده روی آن طراحی نشدهاند، چراکه بيشتر توانايیهای موجود در سختافزارها استفاده نشده و بسياري از سيستمها كاركرد بهينهای ندارند. برای ايجاد زيربناي مجازی، نرمافزارهای مختلفی با قابلیتها و قیمتهای متفاوتی وجود دارد. نرمافزاری مانند VMware منابع سختافزاري يك كامپيوتر مبتنی بر X86 شامل CPU، RAM ،Hard disk ،ODD و Network Controller را به منابع مجازی تبديل کرده و میتوان در آن چندين ماشين مجازی ايجاد کرد که هر يک قابليت اجرای سيستمعامل و برنامههاي كاربردی كاملاً مستقلي را مانند يك كامپيوتر واقعی داشته باشند. بيشتر تكنيكهای مجازیسازی از طريق افزودن يك لايه نرمافزاری بين سختافزار كامپيوتر يا يك سيستمعامل ميزبان است.
هر ماشين دارای يك ناظر ماشين مجازی يا Hypervisor است كه منابع سختافزاري را به صورت فعال و نامحسوس به سیستمعاملها و نرمافزارهای مرتبط اختصاص ميدهد. در اين حالت، چندين سيستمعامل روي يك كامپيوتر فيزيكي واحد به درستی اجرا ميشوند و منابع را بين يكديگر تقسيم ميكنند. پيادهسازی مجازیسازی در مراکز داده به آشنايی کامل با تکنيکهای مربوطه و تقسيم درست منابع در زمان طراحی و همچنين نگهداری و نظارت درست بر خدمات مجازیسازیشده، نياز دارد و به شرطی درصد میزان نگهداری یا Maintenance را کاهش میدهد که از بنیان درست طراحی برخوردار باشد.
زیان ناشی از Virtualization
یکی از نگرانیهای اصلی شرکتها برای پیادهسازی Virtualization این است که به گفته خودشان در صورت بروز مشکل در یکی از سرورهای سرویسدهنده، تا مدتی فقط همان سرویس خاص از دسترس خارج میشود، ولی در صورت پیادهسازی Virtualization هنگام بروز مشکل سختافزاری یا عدم سازگاری به اين دليل که تمامی سرویسها توسط یک سیستم ارائه میشوند، تا زمان رفع ایراد، تمامی سرویسها از دسترس خارج شده و کار شرکتي که با شبکه و سرویسهای آن گره خورده است تا مدتی مختل میشود.
اما شرکتهای تولیدکننده نرمافزارهای مجازیسازی برای حل اين قبیل مشکلات، راهحلهایی در نظر گرفتهاند. بهطور نمونه، شرکت VMWare برای برطرف کردن اين مشکل از روشهای خاصی برای تهیه نسخه پشتیبان استفاده میکند که با استفاده از اين روش در ظرف کمتر از یک ساعت میتوان بسیاری از سرویسها و سیستمها را دوباره به بهترین حالت قبلی برگرداند. همچنین اگر از حیث آماری به مصرف انرژی و منابع مصرفی دقت شود، در حالت قبل و بعد از پیادهسازی مجازیسازی، کاملاً واضح است که تا چه حد در مصرف انرژي صرفهجويی شدهاست.
قانون 80-20 (هشتاد-بیست)
این قانونی است که بسیاری از سرمایهگذاران به آن معتقدند و به آن عمل میکنند، این قانون داراي این مفهوم است که در صورت مصرف بيست درصد از منابع (شامل پول، دانش، توانایی، انرژی، منابع انسانی و...) موجود میتوانید به بهرهوری هشتاد درصدی برسید. به بیانی دیگر، برای بهرهوری هشتاد درصدی فقط کافیست بيست درصد از منابع خود را مصرف کنید. شاید کمی این قانون دور ذهن و غیرقابل باور باشد، ولی بسیاری از شرکتهای موفق دنيا، هماکنون با بهرهگیری از این قانون، مقتدرانه فعالیت میکنند، بدون اینکه تمامی منابع خود را صرف بهرهوری صد درصدی کنند. این قانون را یادآور شدیم تا با توجه به آن، این نتیجهگیری را برای پیادهسازی مجازیسازی داشته باشیم که میتوان با مصرف بيست درصد از منابع سختافزاری و انرژی مصرفی به بازدهی هشتاد درصدی با مجازیسازی سیستمها بهخصوص سرورها رسید.