نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: مجازی سازی در لینوکس

  1. #1
    عضو انجمن
    تاریخ عضویت
    Mar 2011
    نوشته ها
    288
    تشکر تشکر کرده 
    35
    تشکر تشکر شده 
    332
    تشکر شده در
    255 پست

    57 مجازی سازی در لینوکس

    Xen Virtual Machine Monitor) Xen VMM) یك پروژه اپن سورس است كه در آزمایشگاه های كامپیوتر دانشگاه كمبریج انگلیس توسعه داده می شود.


    مجازی سازی و به ویژه پروژه Xen، یكی از مهم ترین موضوعاتی هستند كه در راس وقایع یك ساله اخیر دنیای اپن سورس بوده اند. پشتیبانی سه توزیع قدرتمند لینوكس (فدوراكور، دبیان و OpenSuSE) از این پروژه، همكاری گروه توسعه دهنده برنامه مجازی سازی VMWare با پروژه Xen، تمایل شركت های بزرگی مانند اینتل و سان مایكروسیستمز به توسعه Xen، و نهایتاً بهبود چشمگیر كارایی این برنامه در نسخه های جدید، روی هم رفته باعث جلب توجه محافل و صنعت مجازی سازی به سوی این برنامه اپن سورس شد و هزاران شركت اقدام به آزمایش و به كارگیری آن نمودند كه حاصل آن، انتشار هزاران گزارش، بررسی، مقاله و اسناد علمی معتبر درباره Xen و نهایتاً پیشرفت بیشتر در توسعه آن شد. در این نوشتار ابتداً نگاهی به این پروژه و ویژگی های آن خواهیم انداخت و در ادامه راه اندازی یك ماشین مجازی در لینوكس را بررسی می نماییم.

    ●Xen چیست؟

    Xen Virtual Machine Monitor) Xen VMM) یك پروژه اپن سورس است كه در آزمایشگاه های كامپیوتر دانشگاه كمبریج انگلیس توسعه داده می شود. خروجی این پروژه یك برنامه مجازی سازی به نام Xen است كه امكان ساخت و برپاسازی چندین ماشین مجازی با قابلیت اجرا توسط سیستم عامل های مختلف روی یك سخت افزار واحد را فراهم می كند. با این ابزار، سیستم عامل های میهمان به هسته لینوكس (نسخه های ۲.۴ و ۲.۶) متصل می شوند و امكان یكپارچه سازی آن ها برای هسته سیستم عامل های NetBSD/FreeBSD نیز وجود دارد. نتیجتاً كاربران قادر خواهند بود با برنامه Xen چندین سیستم عامل میهمان را روی سیستم عامل های خانواده یونیكس بدون نیاز به تغییر و اصلاح كد و ساختار هسته سیستم عامل مادر راه اندازی نمایند. در این میان شركت سان مایكروسیستمز نیز تلاش می كند Xen را برای سیستم عامل سولاریس سازگار نماید.

    جالب است به این نكته اشاره شود كه پروژه توسعه برنامه Xen از ابتدا منبع باز نبود و چندین سال یك پروژه اصطلاحاً كد بسته تلقی می شد در عوض پروژه های منبع بازی مانند Bochs IA-۳۲ Emulator و qemu در دنیای اپن سورس مطرح بودند كه عمدتاً برنامه های شبیه سازی معماری های سخت افزاری بوده و ابداً از كارایی و قابلیت های مورد انتظار برخوردار نبوده اند. در حقیقت موفقیت پروژه Xen در مقایسه با دیگر پروژه های منبع باز، سازگاری و یكپارچه سازی با هسته سیستم عامل لینوكس و فراهم سازی بستری برای پشتیبانی سخت افزار سیستم های كامپیوتری مانند اینتل و ای ام دی است.

    جهش دیگر Xen در آگوست ۲۰۰۵ بود كه شركت XenSource (شركت رسمی پشتیبان و توسعه دهنده تجاری پروژهXen اقدام به انتشار Intel Developer Forum) IDF) نمود كه امكان استفاده Xen روی سكوهای سخت افزاری مبتنی بر Intel TV را فراهم نمود و در پی آن امكان اجرای مجازی ویندوز اكس پی سرویس پك دو، در كنار لینوكس فراهم شد. در چنین شرایطی برنامه مجازی سازی تجاری VMWare كه برای سرورهای ESX نیز توسعه داده می شود، همكاری جدیدی را با توسعه دهند گان Xen برای دسترسی به كدهای منبع VMware ESX Server و رابط كاربری آن آغاز كرد. مزیت برجسته برنامه VMWare در عدم یكپارچه سازی و اتصال سیستم عامل میهمان و ارائه راه كارهای اجرای سیستم عامل های میهمان روی ویندوز است.

    در این زمان واقعه مهم دیگری نیز برای Xen روی داد و آن، پشتیبانی توزیع لینوكس Fedora Core۴، دبیان و SuSE Professional۹.۳ از این برنامه و اضافه شدن آن به توزیع لینوكس سرور RHEL۵ بود. پروژه فدورا حتی به ارائه بسته های نرم افزاری RPM برنامه Xen پرداخت. تمام این وقایع موجب شد برنامه Xen به عنوان گزینه اول برنامه مجازی سازی برای لینوكس و دنیای اپن سورس مطرح شود و شركت های سخت افزاری مانند IBM و HP به سوی این محصول حركت نمایند و دیگر توزیع ها و برنامه های اپن سورس Xen را در محصولات خود به كار بگیرند.

    ●روش مجازی سازی

    تفاوت عمده Xen با دیگر برنامه های مجازی سازی و شبیه ساز در شیوه پیاده سازی ماشین های مجازی روی یك سیستم است. برنامه Xen از تكنیك Paravirtualization برای پیاده سازی سیستم عامل های میهمان بهره می گیرد.

    Paravirtualization سیستم عامل و سخت افزار مادر را در یك سطح و ماشین های مجازی را در سطح های دیگر پیاده سازی می كند. مزیت این روش، عدم تداخل فرایندهای اجرایی سیستم عامل و امكان افزودن پروسه های جدید به هسته سیستم عامل بدون كامپایل هسته یا دستكاری آن است.

    Xen از یك مدل چهار لایه ای برای سیستم های X۸۶، X۳۸۶ و X۶۴ استفاده می كند كه به هر لایه یك ring گفته می شود. در ring۰ سیستم عامل مادر و خود برنامه Xen اجرا می شود. به برنامه Xen در این مدل اصطلاحاًHypervisor می گویند؛ چرا كه باید در بالاترین سطح دسترسی برای كدهای سیستم عامل میهمان باشد.

    ring۱ و ring۲ به سیستم عامل های میهمان اختصاص دارد و در ring۳ برنامه های كاربردی اجرا خواهند شد. در زمان شروع به كار، Xen به حافظه ring۰ مراجعه می نماید و ماشین مجازی پایه كه Domain۰ خوانده می شود را در ring۱ اجرا می كند. از این Domain دیگر Domainها ساخته، حذف و جایگزین می شوند.

    در حقیقت Xen توسط Domain۰ دیگر ماشین های مجازی و سخت افزار را مدیریت می كند. دایمون xend توسط Domain۰ اجرا می شود كه مدیریت ماشین های مجازی را در هسته لینوكس بر عهده می گیرد و كاربر توسط ابزار خط فرمان xm آن را كنترل و مدیریت می كند. توسط این ابزار دیگر ماشین های مجازی نیز برپا می شوند.

    درایورهای سخت افزاری نیز در Domain۰ اجرا می شوند. Xen به توابع و ماجول های سخت افزاری موجود در هسته سیستم عامل لینوكس تكیه می كند و خود را از طراحی و ساخت ماجول های سخت افزاری برای ماشین های مجازی فارغ می نماید. این موضوع یك مزیت برای این برنامه محسوب می شود. چون توسعه دهند گان Xen را از نوشتن ماجول های جدید برای درایورهای سخت افزاری بی نیاز می كند.

    ●دایمون Xend

    دایمون Xend عهده دار ساخت Domain جدید و مدیریت آن ها، حذف یك ماشین مجازی موجود یا سوییچ میان چندین ماشین مجازی است. یكی از بزرگ ترین مسئولیت های این دایمون در هسته لینوكس راه اندازی و اجرای سرویس دهنده HTTP است. پورت پیش فرض برای این سرویس دهنده ۸۰۰۰ است كه Xend از آن برای ارتباط باDomain ها شامل ارسال یك درخواست برای ساخت Domain، خذف یك Domain یا ذخیره و شروع به كار مجدد آن و سوییچ میان آن ها استفاده می كند.

    بخش اعظم دایمون Xend توسط زبان اسكریپت نویسی پایتون نوشته شده است و در كنار آن برخی توابع زبان C نیز فراخوانی می شوند. از پوسته خط فرمان و اجرای فرمان xend start می توان دایمون Xend را برای بوت شدنXen فعال نمود. خود دایمون Xend یك سرویس دهنده با نام XCS را فعال می كند. هنگامی كه xend را فعال می نماییم، باید بررسی شود كه آیا XCS نیز اجرا شده است یا خیر. در صورت عدم اجرای آن، باید به صورت دستی اجرا شود. XCS در حقیقت هسته اصلی دایمون Xend را تشكیل می دهد و دو پورت TCP برای تبادل اطلاعات و كنترل پروسه های در حال اجرا باز می كند. تفاوت این دو پورت در همزمان سازی درخواست ها و هماهنگ سازی آن ها است.

    ●Xen در فدوراكور

    برنامه Xen همراه با توزیع لینوكس فدوراكور ۴ و ۵ ارائه شده است. همچنین می توان بسته نرم افزاری نصب آن را از سایت این پروژه به نشانی www.xensource.com/xen/downloads دریافت نمود. برای نصب این برنامه یك ترمینال خط فرمان را باز كنید و دستورات زیر را به ترتیب اجرا نمایید:

    yum update $


    yum install xen$

    yum install kernel-xen۰ $

    yum install kernel-xenU$


    از طریق ابزارهای گرافیكی توزیع فدوراكور نیز می توانید به نصب برنامه Xen اقدام كنید. برای این منظور از منوی اصلی وارد بخش System و سپس Software Management شوید و از مجموعه برنامه های فهرست شده Xen را انتخاب نمایید. پس از نصب، یك گزینه جدید به برنامه بوت لودر لینوكس افزوده می شود. برای مشاهده تغییرات انجام شده در برنامه بوت لودر، فایل grub.conf را باز نمایید. ملا حظه می كنید كه خطوط زیر به این فایل افزوده شده اند:

    title Xen ۳.۰ / XenLinux ۲.۶.۹


    kernel /boot/xen.gz dom۰_ mem=۱۳۱۰۷۲

    module /boot/vmlinuz-۲.۶.۹-xen۰

    root= /dev/hda ۱ ro console=tty۰


    اكنون كامپیوتر را Restart نمایید. همان طور كه می بینید یك گزینه انتخابی جدید به منوی برنامه گراب اضافه شده است. با استفاده از این گزینه سیستم را بوت كنید. زمانی كه لینوكس كاملاً اجرا شد، باید دایمون Xend نیز در پس زمینه لینوكس فعال شده باشد. دستور xm list را اجرا نمایید تا آرگومان های این ابزار مدیریت دایمون xen را مشاهده نمایید. خروجی این دستور باید مشابه با خطوط زیر باشد:

    HOSTA:/etc/xen/scripts#xm list


    Name Id Mem(MB) CPU State Time(s) Console

    Domain-۰ ۰ ۱۲۳ ۰ r---- ۴۱.۲







    ●برپاسازی ماشین مجازی

    اكنون زمان ساخت یك ماشین مجازی فرارسیده است. برای برپاسازی ماشین مجازی چندین راهكار وجود دارد: استفاده از فایل های chroot image توزیع های مختلف كه از اینترنت قابل دریافت هستند یا ساختن آن ها توسط خودتان. فایل های chroot یك فایل Image از سیستم عامل میهمان هستند كه توسط برنامه Xen گشوده می شوند.

    همچنین برنامه Xen می تواند از فایل های پشتیبان بلوك های سخت افزاری(dd ۱f=dev/zero of=vmdisk bs=۱k seek ۲۰۴۸k count=۱)، تجهیزات سخت افزاری فیزیكی (برای مثال dev/hda۹/) و (phy:VolumeGroup/root_volume LVM ) استفاده نماید. حتی امكان به كارگیری فرمت فایلی شبكه NFS برای برپاسازی یك ماشین مجازی وجود دارد.

    انتخاب روش راه اندازی ماشین مجازی وابستگی زیادی به نوع كاركرد ماشین مجازی مورد نظرتان و امكانات موجود دارد. اما یكی از ساده ترین روش ها، استفاده از فناوری های LVM است. Logical Volume Manager یك فناوری برای ساخت ماشین های مجازی روی لایه های فیزیكی دیسك سخت و كار با پارتیشن های سیستم است. با LVM می توان بدون اضافه كردن فضای فیزیكی روی سیستم از مقدار حافظه بیشتری استفاده كرد. LVM همچنین قابلیت تغییر اندازه پارتیشن را بدون نیاز به پارتیشن بندی مجدد فراهم می كند. دلیل انتخاب این روش، انعطاف پذیری و سادگی آن است. در ادامه با یك مثال ساده چگونگی انجام دادن كار را مرور می كنیم. فرض كنید روی سیستم شما یك درایو dev/sda۵/ وجود دارد. با استفاده از LVM می خواهیم یك ماشین مجازی روی sda۵ برای استفاده در آینده ایجاد نماییم:

    pvcreate /dev/sda۵ $


    vgcreate vm_volumes /dev/sda۵ $

    vgchange -a y vm_volumes$

    lvcreate -L۴۰۹۶ -nroot.dokeos vm_volumes$

    lvcreate -L۲۰۸۴ -nvar.dokeos vm_volumes$

    nswap.dokeos vmًvolumes $ lvcreate L۲۵۶ -

    lvcreate -L۱۰۲۴ -nwww.dokeos vm_volumes$


    همان طور كه می بینید با دستور lvcreate پارتیشن های مجازی همراه با اندازه هر كدام از آن ها روی sda۵ تعریف شده است. اكنون وارد دایركتوری ای شوید كه پارتیشن های خود را به سیستم فایل لینوكس متصل (mount) نموده اید (برای مثال mnt/) و دایركتوری vhosts/ را ایجاد نمایید. در ادامه از این دایركتوری برای نصب فایل image توزیع فدوراكور استفاده می نماییم:

    yum --instal lroot=/vhosts/root.dokeos/$


    y groupinstall Base-

    MAKEDEV-d /path/dev -x console $

    MAKEDEV -d /path/dev -x null$

    MAKEDEV -d /path/dev -x zer$


    فایل پیكربندی برنامه Xen غالباً در دایركتوری /etc/xen قرار دارد. برای ساخت هر ماشین مجازی لازم است این فایل از نو پیكربندی و تنظیم شود. نهایتاً باید فایل پیكربندی مشابه زیر باشد:

    root@xen xen] #cat dokeos.x-tend.be ]


    "kernel = "/boot/vmlinu-۲.۶.۱۱-۱.۱۳۶۶-fc۴xenU

    memory = ۱۲۸

    "name = "dokeos.x-tend.be

    nics = ۱

    "extra = "selinux=۰ ۳

    [vif=[ip="۱۰.۱۰.۱۱.۱۳"ipbridge=xen-br

    disk =[phy:vm_volumes/root.dokeos,sda۱,w

    phy:vm_volumes/var.dokeos,sda۳,w

    phy:vm_volumes/www.dokeos,sda۴,w

    phy:vm_volumes/swap.dokeos,sda۲,w

    "root = "/dev/sda۱ ro


    اكنون همه چیز برای اجرای ماشین مجازی مهیا است. برای این منظور دستور xm create config file را در ترمینال خط فرمان اجرا كنید. اگر آرگومان c- را نیز به این دستور بیفزایید، مراحل بوت شدن ماشین مجازی نیز در خروجی پوسته خط فرمان نمایش داده می شود.

    ●آینده پیش روی Xen

    مجازی سازی در چندین سال اخیر اهمیت بیشتری پیدا كرده است؛ چرا كه كاربران كامیپوتر به سكوی تك سیستم عاملی قانع نیستند. انقلاب مجازی سازی دارد به سمت و سویی حركت می كند كه از یك سخت افزار بیشترین استفاده صورت گیرد و چندین سیستم روی یك سخت افزار پیاده سازی شوند. برنامه Xen كاندیدای عینیت بخشیدن به این اهداف در سكوی سیستم عامل و نرم افزارهای اپن سورس است و آزاد بودن پروژه توسعه آن، موجب شده است شركت های كوچك و بزرگی در آن شركت نمایند و به پیشرفت آن سرعت بیشتری بدهند.

    نسخه سوم این برنامه سروصدای زیادی برپا كرد و در كنفرانس LinuxWorld بوستون یكی از محوری ترین موضوعات كنفرانس بود. فكر می كنم اگر این برنامه مجازی سازی بتواند همچنان به پیشرفت و بهبود خود ادامه بدهد و همكاری های گسترده تری را با بزرگان صنعت مجازی سازی و سخت افزار آغاز كند، در آینده ای نزدیك فناوری مطرحی در دنیای مجازی سازی باشد.

  2. تعداد تشکر ها ازp2m به دلیل پست مفید


  3. # ADS




     

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 6
    آخرين نوشته: July 22nd, 2017, 16:20
  2. پاسخ ها: 14
    آخرين نوشته: July 31st, 2014, 18:44
  3. پاسخ ها: 9
    آخرين نوشته: February 10th, 2013, 19:48

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •