شنبه, ۸ اردیبهشت, ۱۴۰۳ / 27 April, 2024
مجله ویستا

درون یک ماشین مجازی


درون یک ماشین مجازی
تصور كنید كار پشتیبانی محصولات نرم‌افزاری تولیدی شركت شما، تحت تمام ویندوزها از زمان ویندوز ۹۵ و OS/۲ WARP به شما محول شده است. سیستم شما در حال اجرای ویندوز اكس‌پی است. یك مشتری با یك مشكل نرم‌افزاری كه در ویندوز ۹۸SE وجود دارد، با شما تماس می‌گیرد. شما روی یك پنجره كلیك می‌كنید و بعد از پانزده ثانیه ویندوز ۹۸SE اجر می‌شود. بهتر از آن، این است كه محصولات شركت شما از قبل روی آن در حال اجرا بوده است! یك مثال دیگر، شما در حال تحقیق در اینترنت هستید.
وارد سایتی می‌شوید كه یك بد‌افزار را از طریق یك IE Exploit نصب می‌كند. جای نگرانی نیست! شما تمام فعالیت‌های خود را در یك فولدر در شبكه ذخیره می‌كنید و پنجره‌ای را كه از آن استفاده می‌كردید، می‌بندید. این صفحه بسته می‌شود و بدافزار نیز به همراه آن از فعالیت باز می‌ایستد. زیرا نسخه‌ای كه بستید، مجازی بود و سیستم‌عامل اصلی شما كاملاً سالم مانده است. حتی شاید شما یك توسعه‌دهنده هستید و نرم‌افزاری كه نوشته‌اید، باعث ایجاد صدمه در رجیستری ویندوز شده‌است. باز هم جای نگرانی نیست. چون نسخه ویندوزی كه از آن استفاده می‌كردید، مجازی بوده‌است. شما آن را می‌بندید و به‌این وسیله تمام مشكل حل می‌شود. شاید دیگر ارائه مثال از مزایای استفاده از ماشین مجازی كافی باشد.
● یك PC در PC دیگر
مجازی‌سازی سیستم‌های عامل از جمله مواردی است كه تا آن را با چشم خود نبینید، باوركردنش سخت است. یك نرم‌افزار خاص، مكانیسمی را در پردازنده ایجاد می‌كند كه به ماشین مجازی (VM) معروف است. به وسیله آن، یك ویندوز در داخل ویندوزی دیگر قابل اجرا است یا حتی فراتر از آن لینوكس، OS/۲ WARP، سولاریس و تقریباً تمام سیستم‌های عاملی كه برای سخت‌افزار ۸۶X نوشته شده‌است نیز در آن قابل اجراست.
نرم‌افزار مجازی‌سازی به نرم‌افزار مدیریت ماشین‌مجازی (VMM) یا ناظر معروف است. ماشین مجازی كه توسط VMM اجرا می‌شود، شبیه‌سازی كاملی از یك PC مستقل است. این شبیه‌سازی شامل پورت‌های USB، كارت‌های صدا و ویدیو، حافظه و در بعضی موارد (برای شبیه‌سازی یك پی‌سی ۸۶X روی سخت‌افزار MAC) رجیسترهای CPU و عملكردها می‌شود. می‌توان یك ماشین‌مجازی به همراه تمام نرم‌افزارهای نصب شده روی سیستم‌عامل آن را به‌عنوان یك فایل ذخیره نمود و بعدها از آن استفاده كرد.
وقتی شما یك سیستم‌عامل را روی ماشین‌مجازی نصب می‌كنید، این سیستم‌عامل، به‌طور مستقل (و با درصد بالایی از مجزانمودن محیط) سخت‌افزار و نرم‌افزار و حتی سایر ماشین‌های مجازی عمل می‌كند. این عمل همانند آن است كه چندین پی‌سی را روی یك پی‌سی داشته باشید. به كمك عملكرد چندگانه، تمام ماشین‌های مجازی به‌طور مشترك از سیكل‌های حافظه و پردازنده سیستم استفاده می‌كند، این كار تأثیر كم اما نه‌چندان قابل‌توجهی را به واسطه مكانیسم همانندسازی، روی عملكرد سیستم ایجاد می‌كند. اما همزمان با سریع‌تر شدن پردازنده‌ها، ارزان شدن حافظه و به بازار آمدن پردازنده‌هایی با قابلیت‌ مجازی‌سازی توكار، مجازی‌سازی می‌تواند به جایگاه عملكرد چندگانه امروزی برسد.
● راه‌های جدیدی برای كار كردن
مانند تمام پیشرفت‌های نرم‌افزاری، مجازی‌سازی چیزهایی را برای ما ممكن ساخته‌است كه قبلاً ناممكن بوده یا آن‌قدر مشكل داشته كه به‌قول معروف به دردسرش نمی‌ارزیده است. پشتیبانی از سیستم‌های عامل متفاوت روی یك PC قبلاً بدین معنی بود كه هر پارتیشن به یك سیستم‌عامل اختصاص یابد و برای استفاده می‌بایست زمان زیادی برای بالا آمدن سیستم تلف شود. حركت سریع بین سیستم‌عامل‌ها نیز ناممكن بود. دلایل مجازی‌سازی برای توسعه‌دهندگان نرم‌افزار، تست‌كنندگان نرم‌افزارهای بتا و متخصصان پشتیبانی هم بسیار مهم و قابل توجه است. دیگر نیازی به یك سیستم‌عامل روی یك پی‌سی نیست.
در زمان بالا آمدن هر سیستم‌عامل نیز صرفه‌جویی شده است. هر سیستم‌عامل موجود در ماشین‌مجازی، به‌سرعت قابل‌دسترسی است و هر ماشین مجازی و سیستم‌عاملی كه در آن ذخیره شده است در چند ثانیه قابل راه‌اندازی است. این عمل برای برنامه‌های كاربردی نصب شده روی سیستم‌عامل نیز كاملاً امكان‌پذیر است. یعنی درست از جایی كه كار پایان یافته بود، می‌توان آن را ادامه داد.
ایزولاسیون یا مجزاسازی ذاتی بین ماشین‌های مجازی (و ماشین مجازی و سیستم‌عامل میزبان) كارهای كاملاً پرمخاطره را به كارهای ایمن مبدل نموده است. آماده‌سازی نرم‌افزارهای جدید بدین معنی است كه كامپیوتری را كه موردآزمایش قرار‌می‌گیرد نسبت به آسیب‌هایی مانند تبلیغ‌افزار و یا تغییرات غیرقابل بازگشت رجیستری، ایمن می‌كند. اكنون توسعه‌دهندگان می‌توانند یك ماشین مجازی ایجاد كنند، سپس نرم‌افزار موردنظر را نصب نمایند و تحتآزمایش قرار دهند؛ بدون این‌كه در مورد نصب مجدد ویندوز و دردسرهای آن نگران باشند و پس از آن‌كه آزمایش انجام شد، می‌توانند تمام حالات ماشین مجازی، كه شامل نرم‌افزار نیز می‌شود را آرشیو كنند (روی یك سرور) یا آن را از بین ببرند.
محصولاتی مانند ویندوز ۹۸ در پنجره‌ای تحت سیستم‌عامل میزبان دیگر قابل دسترسی است.
از بین بردن ویروس‌ها یا بدافزارها مستلزم آن است كه آن بدافزار در هنگام فعالیت تحت‌نظر باشد و آزمایش‌هایی نیز برای مقابله با آن‌ها صورت ‌پذیرد. یك ماشین‌مجازی قفسی است كه بدافزار به هیچ عنوان امكان فرار از آن و رفتن به سایر قسمت‌های هارددیسك سیستم را ندارد.
(وقتی شما در حال زیرنظر گرفتن فعالیت یك بدافزار هستید، بهتر است پورت‌های ورودی شبكه خود را ببندید). اگر بدافزار به سیستم‌عامل خسارتی وارد نماید، امكان راه‌اندازی یك نسخه سالم و ادامه فعالیت روی ماشین‌مجازی امكان‌پذیر است.
بیشترین قدرت و امكانات مجازی‌سازی، برای توسعه‌دهندگان نرم‌افزار فراهم شده است. می‌دانید نوشتن برنامه‌های سطح پایین یا اجزای سیستم‌عامل كاری است كه به مهارت بالا نیاز دارد. زیرا شما در اصل در حال وصله زدن سیستم‌عامل هستید.
آزمایش كردن نرم‌افزارهای ساخته شده با ماشین‌مجازی، ماشین توسعه شما را در برابر خرابی محافظت می‌نماید. فراتر از آن، ماشین‌های مجازی‌سازی مدرن امكانی را برای شما فراهم می‌كند كه با آن می‌توانید به ایجاد و ذخیره مرحله به مرحله كار بپردازید تا در زمان لزوم بتوان به آن رجوع كرد.
در مورد سرورها نیز می‌توان چندین سرور را كه هر كدام جداگانه روی پی‌سی‌های مختلف اجرا می‌شوند، روی یك پی‌سی مجتمع كرد. این عمل منجر به صرفه‌جویی در فضا، انرژی و كم‌كردن گرما و آشفتگی محیط ناشی از تعدد كابل‌ها می‌شود. دو شركت مایكروسافت و VMWARE به ارائه محصولاتی در زمینه مجازی‌سازی پرداخته‌اند.
● پی‌سی مجازی مایكروسافت
در سال ۲۰۰۳ مایكروسافت شركت Connectix به همراه محصول Virtual PC آن (تحت ویندوز و MAC) را به تملك خود درآورد. Virtual PC تحت Mac مدت زیادی است كه اجازه اجرای ویندوز و برنامه‌های تحت آن را به كاربران Mac می‌دهد. از آنجایی كه Virtual PC مناسب Mac است، راه‌اندازی و استفاده از آن بسیار آسان است. پورت ۸۶X آن جدیدتر است و در نسخه ۲۰۰۴ آن نصب و اجرای تمام محصولات مایكروسافت به همراه نسخه‌های OS/۲ كه توسطIBM ارائه شده را میسر می‌سازد. هر ماشین‌مجازی قابلیت دریافت آدرس (Media Access Control MAC ) را دارد و می‌تواند آدرس IP را از یك DHCP خارجی نماید.
مایكروسافت برای سیستم‌هایی كه به‌صورت مستقیم پشتیبانی می‌شوند، قابلیت‌های یكپارچه‌ای را ارائه داده است. از آن جمله می‌توان عملكرد یكپارچه، به اشتراك‌گذاری فایل با سیستم‌عامل میزبان، و عملكرد بهبود یافته را نام برد.
با آن كه پشتیبانی مستقیمی از لینوكس در ویزارد جدید Virtual PC وجود ندارد، امكان نصب نسخه‌های مختلف لینوكس و سایر سیستم‌عامل‌ها مانند سولاریس و Plan۹ با كمی تلاش وجود دارد. Virtual PC با Samba سازگار است و اغلب لینوكس‌ها به راحتی روی ویندوز قابلیت به اشتراك‌گذاری فایل را دارند.
پارامترهای پنجره X گاهی باید قبل از نصب GUI توسط كنسول متنی عوض شوند و برخی سیستم‌های عامل (برای مثال Bcos)خیلی ضعیف عمل می‌كنند.
همچنین توسعه‌دهندگان نرم‌افزار معمولاً به لیسانس‌ها و مجوزهای متفاوتی برای هر نسخه سیستم‌عامل نصب شده نیاز دارند. ویندوز اكس‌پی نصب شده در ماشین مجازی به عنوان یك نسخه مجزا محسوب می‌شود و باید مجوز جداگانه‌ای برای آن تهیه گردد.
● ایستگاه كاری VMWARE
نسخه ایستگاه كاری VMWARE در سال ۱۹۹۹ معرفی شده و بیشتر مورداستفاده توسعه‌دهندگان نرم‌افزار و آزمایش‌كنندگان قرار می‌گیرد تا مصرف‌كنندگان عادی. آخرین نسخه آن (نسخه ۵) روی میزبان‌های ‌ویندوز و لینوكس قابل‌نصب است. نسخه جدید این نرم‌افزار قابلیت اجرای تمام نسخه‌های ویندوز از زمان ویندوز ۱/۳ (تا ویندوز ویستا)، داس، نت‌ور ۵ و ۶، سولاریس ۹ و ۱۰ و اغلب لینوكس‌ها را به عنوان سیستم‌عامل میهمان دارد.
نسخه ۵ قابلیت‌های جدید بسیاری را ارائه نموده است. این نرم‌افزار اجازه ایجاد معماری را به شما می‌دهد كه تحت آن می‌توانید snapshot مربوط به هم را از VMM تهیه كنید و بین آن‌ها به سرعت حركت نمایید. این كار تحت نظر یك مدیر بصری snapshot انجام می‌شود.
شما به راحتی قابلیت این را دارید كه به سرعت یك كپی از یك ماشین‌مجازی موجود را در ماشین ‌مجازی دیگر استفاده نمایید یا یك ماشین مجازی را به دیگری مرتبط كنید. این ارتباط موجب صرفه‌جویی در فضای دیسك سخت یا شبكه می‌شود.
نسخه ۵ از مفهوم <گروه یا تیم> پشتیبانی می‌كند. بدین معنی كه گروهی از ماشین‌های مجازی به هم متصل‌می‌شوند، به‌طوری كه مانند یك شبكه مجازی (VLAN) عمل می‌كنند. اما از تمام شبكه‌های خارجی كاملاً ایزوله هستند. این مسئله موجب می‌شود برنامه كاربردی تحت شبكه بدون خطر برای شبكه خارجی مورد آزمایش قراربگیرد.
نسخه ۵ از روش به اشتراك‌گذاری حافظه استفاده می‌نماید. به نحوی كه بلوك‌های مشابه حافظه را با هم به اشتراك می‌گذارد و موجب كاهش استفاده از حافظه می‌شود.
پشتیبانی از شبكه در VMWARE بسیار قوی است. ماشین‌ مجازی قابلیت اتصال به شبكه خارجی را از طریق كارت شبكه فیزیكی میزبان دارد و یا از طرق مختلفی به صورت محلی با سیستم‌عامل میزبان ارتباط برقرار می‌كند. این كار توسط كارت شبكه‌های مجازی، سوییچ‌ها و وسایل NAT كه توسط نرم‌افزار VMWARE ایجاد می‌شود، امكان‌پذیر است.● XEN
سومین بازیگر عرصه مجازی‌سازی، نرم‌افزار منبع‌باز و رایگان XEN است كه توسط غول‌هایی چونHP ،IBM و سان پشتیبانی می‌شود. Xen با دو محصول Virtual PC و WMWARE متفاوت است. از این لحاظ كه شبه‌مجازی‌سازی را ارائه می‌دهد و به این دلیل معروف است كه یك محیط مجازی كامل را برای سیستم‌عامل میهمان خود فراهم نمی‌كند. در شبه مجازی‌سازی VMM به عنوان یك واسطه بین سخت‌افزار و سیستم‌عامل عمل می‌كند.
یك سیستم‌عامل باید برای كار با XEN كامپایل شود. نكته مثبت در مورد XEN آن است كه سیستم‌عاملی كه توسط XEN مجازی شده است، بسیار قابل‌اطمینان و سریع عمل می‌كند. همانند آن‌كه كاملاً توسط خود پی‌سی تحت كنترل است. از آنجا ‌كه برای استفاده از XEN نیاز به تغییرات كرنل است، XEN به‌طور عمده توسط لینوكس (Free BSD ، Plan۹) و در آینده نزدیك سولاریس مورد استفاده قرار می‌گیرد.
● رئیس بزرگ‌
مشكلی كه با نسل كنونی VMMها وجود دارد آن است كه در كلاس پنتیوم فقط یك رئیس می‌تواند وجود‌داشته باشد. وقتی كه ویندوز، لینوكس یا هر سیستم محافظت شده دیگر اجرا می‌شود، در اصل در بالاترین سطح دسترسی موجود كه به <حلقه صفر> معروف است اجرا می‌گردد. در حالی كه برنامه‌های سودمند و كاربردی به <حلقه ۳> عودت داده می‌شوند. یك VMM در حلقه صفر عمل می‌كند و وظیفه آن كنترل و مدیریت سیستم‌های عامل در حلقه صفر است.
● شروع كار با ماشین مجازی
۱ - مطمئن شوید كه در درك مفهوم مشكل ندارید؛ اشتباه كردن در زمینه مجازی‌سازی بسیار ساده است. به ویژه در مورد نحوه‌ برقراری ارتباط ماشین‌های مجازی (VM) با سخت‌افزار پی‌سی مربوط. با افرادی كه تجربه كار با ماشین مجازی را دارند مشورت كنید و هر مطلب سودمندی درباره این موضوع به دستتان رسید، مطالعه كنید.
۲ - اطمینان حاصل كنید تمام پی‌سی‌های میزبان منابع كافی دارند. برای كاربردهای رومیزی ۵۱۲ مگابایت حافظه رم برای هر ماشین مجازی به همراه ۵۱۲ مگاهرتز قدرت پردازنده كافی است. شما می‌توانید این‌كار را با قدرت كمتر نیز انجام دهید. ولی ممكن است عملكرد مناسب نباشد. وقتی كه امكان انتخاب دارید، در مورد حافظه صرفه‌جویی نكنید.
۳ - بررسی كنید كه آیا برنامه‌های شما نیاز به سخت‌افزار خاصی دارند یا خیر. اكنون مدیریت ماشین مجازی، سخت‌افزارهای بسیار مرسوم را برای هر ماشین مجازی مورداستفاده قرار می‌دهد. اگر برنامه شما به سخت‌افزار خاصی نیاز داشته‌باشد، احتمالاً اجرا نخواهد شد. هر سخت‌افزاری كه روی پی‌سی نصب شود، الزاماً برای ماشین ‌مجازی قابل دسترس نخواهد بود.
۴ - مطمئن شوید كه به حد كافی مجوز نرم‌افزارها را در اختیار دارید. اغلب سازندگان نرم‌افزار، ماشین‌های مجازی را به عنوان سكوی جداگانه‌ای درنظرمی‌گیرند كه برای نصب، به یك مجوز معتبر نیاز دارد. یعنی نصب سه ویندوز اكس‌پی در ماشین‌های مجازی مختلف به سه مجوز جداگانه نیاز دارد؛ هر چند روی یك پی‌سی نصب شده باشند.
۵ - تصمیم بگیرید كه كجا و چگونه فایل‌هایتان را ذخیره و snapshotها را آرشیو كنید. كار با ماشین مجازی به فضای زیادی نیاز دارد. هر ماشین مجازی حدود چهار گیگابایت از فضای هارددیسك را اشغال می‌كند. علاوه بر آن، هر ‌snapshot ماشین مجازی ۲۰۰ تا ۶۰۰ مگابایت به فضا نیاز دارد. اگر می‌خواهید برای گرفتن پشتیبان از ماشین مجازی اقدام نمایید، اطمینان حاصل كنید كه روی هارددیسك یا در شبكه، فضای كافی در دسترس دارید.
با اجرای سیستم‌عامل میزبان، میهمان و VMM در حلقه صفر، نرم‌افزارها شجاعانه (و تاحدی تصادفی) باید به كار گرفته شوند تا سیستم‌عامل میهمان نسبت به سیستم‌عامل میزبان و سایر سیستم‌های عامل موجود ایزوله باشد. یك مرحله پیچیده به نام محدودسازی میهمان برای تنزل سیستم‌عامل میهمان به حلقه پایین‌تر به كار برده می‌شود. این عمل بدون دخالت سیستم‌عامل میهمان صورت می‌پذیرد. سیستم‌عامل میهمان به نحوی عمل می‌كند كه گویی در حلقه صفر در حال اجراست و تمام اجازه‌های دسترسی و پیام‌های خطا توسط كدهای موجود در VMM اجرا و مدیریت می‌شوند. این عمل می‌تواند باعث آشفتگی و به شدت در مقابل بدافزار، آسیب‌پذیر باشد.
وضعیت كنونی معماری ۸۶X این اجازه را برای اجرای <خالص> در حلقه صفر، به نرم‌افزار نمی‌دهد. این كاستی دو شركت AMD و اینتل را به سویی هدایت كرد كه سخت‌افزارهای جدید متناسب با مجازی‌سازی را در نسل بعدیCPUهای خود توسعه دهد. محصول Vender pool از اینتل و Pacifica از AMD با اضافه‌كردن عملكردهای ماشینی جدید و مدیریت حافظه CPU جدید دقیقاً همین كار را انجام می‌دهند.
با معرفی مدل‌های جدید عملكردهای CPU، سخت‌افزارهای جدید، حلقه‌ای را بالاتر از سطح دسترسی حلقه صفر (حلقه یك) ایجاد می‌كنند كه توسط آن یك VMM می‌تواند نرم‌افزارهای حلقه صفر را بدون این‌كه در سرعت یا امنیت دخالتی داشته باشد مدیریت نماید.
● به سوی سیستم‌عامل درخواستی‌
این گستردگی در زمینه سخت‌افزار پردازنده‌ها از اواخر سال ۲۰۰۵ و اوایل سال ۲۰۰۶ كم‌كم نمایان می‌شود. اما از آنجا ‌كه پردازنده‌های جدید گران خواهند بود، تأثیر اصلی آن‌ها بیشتر در سرورها و چند سال بعد در كامپیوترهای شخصی نمایان خواهد شد. اولین حضور VMMهای توكار در سیستم‌عامل‌ها احتمالاً در ویستا سرور خواهدبود. ولی شاید مایكروسافت با قراردادن یك VMM در ویستا ما را متعجب نماید. در ابتدا احتمال می‌رود این عملكرد فقط در سیستم‌هایی كه مجازی‌سازی سخت‌افزاری را پشتیبانی می‌كنند، اجرا شود. ولی انتظار می‌رود مایكروسافت سازوكاری را برای اجرا شدن روی پردازنده‌های قدیمی‌تر نیز ارائه دهد.
تمامی VMMها باید از پردازنده‌های جدید كه قابلیت مجازی‌سازی را دارند، استفاده نمایند. همان‌طور كه از تكنیك‌های مبتنی بر نرم‌افزار در ماشین‌های قدیمی‌‌تر پشتیبانی می‌نمایند. این مسئله شاید تغییری در درك كلی از سیستم‌های عامل را نشانه بگیرد. كاربران ممكن است لینوكس را تحت VMWARE برای كارهای معمولی اداری خود نصب كنند و بعد از آن هنگامی كه به برنامه خاصی مانند فتوشاپ و ویزیو تحت ویندوز نیاز داشتند، آن را در یك پنجره ماشین مجازی به صورت جداگانه باز كنند. ماشین‌های مجازی كاملاً تنظیم شده و از قبل آماده شده با سیستم‌عامل و برنامه‌های نصب شده و جداناشدنی فروخته خواهند شد.
پردازنده‌های جدید چند‌هسته‌ای باید این تحول را به صنعتی بدل كنند كه در آن به راستی چند پی‌سی در یك بسته آماده تحویل باشد: بسته‌ای كه تحت نظر یك ناظر در حال اجرا شدن است و در مقابل بدافزارهای مختلف و حتی اشتباهات كاربر مصون باشد. VMMی را تصور كنید كه هر ساعت از ماشین‌مجازی شما یك پشتیبان می‌گیرد و <وای خدای من> دكمه‌ای است كه تمام ماشین مجازی شما را به بهترین زمان قبل از این باز می‌گرداند. بازگشتی برای كل سیستم‌عامل؟ این مسئله می‌تواند كاملا‌ً به صورت مجازی باشد.
ترجمه: آرش مدنی علمداری
‌منبع: پی‌سی مگزین‌
منبع : ماهنامه شبکه


همچنین مشاهده کنید