ورود به حساب کاربری

نام کاربری *
رمز عبور *
مرا به خاطر بسپار.

بنیاد توسعه رایانش سریع و ابری

HPC and Cloud Computing Development Foundation

آموزش کامل نصب و راه اندازی Opennebula در ubuntu

  

موضوع : پیاده سازی زیرساخت به عنوان سرویس opennebula 

مقدمه:

وظیفه ی کلی نرم افزار : مديريت تهيه ماشين هاي مجازي براي فراهم نمودن زير ساخت به عنوان سرويس در ابر

 

 

v     مولفه های پایه برای یک سیستم opennebula :

1- frontend: ماشینی است که با پکیجهای opennebula نصب شده . وظیفه ی آن اجرای opennebula  و سرویس های کلاستر است.

2- میزبان ها : بر روی این گره ها ناظرها (hypervisor) وجود دارند که به طور فیزیکی بر روی زیرساخت اجرا می شوند.

3- مخزن Image: اين مولفه، Image هاي پايه ي ماشين هاي مجازي را نگهداري مي نمايد.

4- شبكه ي فيزيكي: اين مولفه VLAN را براي پيوند هاي زير ساخت ماشين هاي مجازي (مانند ذخيره سازي) فراهم مي نمايد.

 

v     توضیحات کلی :

1- OneVMHost: نام ماشینی که opennebula بر روی آن نصب خواهد شد.

2-سیستم عامل : linux ، نسخه ی ubuntu-13.04-server

3- مخزن شبکه : NFS[1](Network File System) یا فایل سیستم توزیع شده ، یک پروتکل سیستم فایل توزیع شده است که به یک کاربر کلاینت اجازه دسترسی به فایل های روی شبکه را مانند فایل محلی می دهد.

4- MYSQL: برنامه پشتیبان پایگاه داده

5- KVM : تمامی چارچوب های زیرساخت به عنوان سرویس از این ناظر متن باز پشتیبانی می کنند.

6- Sunstone-server: سرور تحت وب . محيطSunstone  محيطي است كه براي راهبران و كاربران ابر خصوصي جهت مديريت ابر به كار برده مي شود.

7-  VNC[2]: شبکه مجازی رایانه، سیستم تعریف شده برای انتقال محتویات کامپیوتر با استفاده از پروتکل RFB (Remote FrameBuffer) است تا بتوان از راه دور کامپیوتری را کنترل نمود.

« توضیحات به صورت خلاصه و کلی است که تنها شامل مراحل اصلی و بعضی از دستورات می باشد. »

 

توضیحات مراحل نصب شامل پیکربندی سیستم ، نصب نرم افزارهای مورد نیاز ، نصب کامل نرم افزار ، محیط SUSTON (ناکامل) ، یعنی راه اندازی مولفه های opennebula می باشد.

 

v     مرحله ی اول : آماده سازی OneVMHost

در صورتیکه از قبل اوبونتو بر روی سیستم نصب باشد نیازی به reinstall کردن سیستم عامل نیست تنها باید دو خط زیر را در مسیر“/etc/hosts”اضافه نمود.

127.0.0.1       OneVMHost

127.0.1.1       OneVMHost

 

در غیر اینصورت باید اوبونتو را نصب و در هنگام نصب کارهای زیر را انجام دهیم:

1- نام host را با عنوان onevmhost مشخص می کنیم.

هنگام انتخاب نام host  و انتخاب etho به عنوان کارت شبکه اصلی در حالیکه روند DHCP اجرا می شود گزینه لغو را انتخاب کنیم تا بتوانیم IP و... را به صورت دستی تنظیم کنیم.

2- یوزنیم localadmin و پسورد کاربر اصلی را وارد می کنیم.

4- درصورتیکه اوبونتو سرور را نصب  کنیم نیازی به نصب ssh نیست چون به صورت پیش فرض نصب خواهد شد.

5-در پایان باید سیستم را Reboot کرد.

 

v     مرحله دوم : ایجاد پیکربندی شبکه سازی در onevmhost

1- نصب openssh-server

Ssh مخفف Secure Shellیک پروتکل امن برای ارتباط و مدیریت یک ماشین راه دور است. ارتباط میان دو سیستم رمز شده خواهد بود و امکان دزدی اطلاعات توسط شخص یا سیستم سومی حتی با گوش دادن به ارتباط به دلیل رمز نگاری وجود ندارد. SSH از پروتکل SSL برای رمزنگاری استفاده می کند.

پس از نصب ssh باید در هاست bridge را نصب کنیم: ﺗﻮﺳﻂ Bridge ﻣﯽ ﺗﻮان ﯾﮏ Lan ﺑـﺎ ﺗﻌـﺪاد اﯾﺴـﺘﮕﺎﻫﻬﺎي ﮐـﺎري زﯾـﺎد را ﺑـﻪ ﺳﮕﻤﻨﺖ ﻫﺎي ﮐﻮﭼﮑﺘﺮي ﺗﻘﺴﯿﻢ ﮐﺮد ﮐﻪ در ﻧﺘﯿﺠﻪ ﻫﺮ ﺳﮕﻤﻨﺖ ﻣﺎﻧﻨﺪ ﯾﮏ ﺷﺒﮑﻪ ﻣﺴﺘﻘﻞ ﻋﻤﻞ ﮐـﺮده و ﺑﺮﻗﺮاري ارﺗﺒﺎط اﯾﺴﺘﮕﺎﻫﻬﺎ راﺣﺖ ﺗﺮ اﻧﺠﺎم ﻣﯽ ﺷﻮد.

جهت پیکربندی bridge برای opennebula در مسیر “/etc/network/interfaces”تغییرات مورد نیاز را بر روی کارت شبکه انجام می دهیم:

auto lo

iface lo inet loopback.

این اینترفیس پکتهایی را به خود سیستم جهت چک کردن شرایط موجود ارسال میکند.

auto eth0

iface eth0 inet manual

اینترفیس واقعی یعنی نام دیوایس کارت شبکه است که با اضافه شدن هر کارت به شماره ی آن اضافه می شود.باید آن را به صورت دستی تنظیم کنیم.

# Configuration bridge for OpenNebula

auto br0

iface br0 inet static

Úوارد کردن آی پی به صورت دستی

این اینترفیس نام پل کارت شبکه است.

       address 192.168.113.195 # Replace with your IP address

       netmask 255.255.255.0 # Replace with your Netmask

       gateway 192.168.113.1 # Replace with your Gateway

       network 192.168.113.0 # Replace with your Network

       dns-nameservers 8.8.8.8 8.8.4.4

       باید ip خود را در این قسمت وارد کنیم .Ó

       bridge_ports eth0

با این کار اینترفیس اترنت واقعی را به عنوان پل معرفی می کنیم.که پس از ریست کردن تنظیمات با دستور مربوطه، اعمال شدن آن مشخص می شود*

       bridge_fd 9

       bridge_hello 2

       bridge_maxage 12

      bridge_stp off

STP اجازه می‌دهد، که  دوپل (روی یک  شبکه) با هم صحبت کنند و تعیین کنند کدام یک فعال باشند، و کدام یک غیر فعال. که به صورت پیشفرض در لینوکس غیر فعال است.

جهت اعمال تغییرات انجام شده در فایل کارت شبکه باید آن را با استفاده از دستور زیر Restart کرد.

/etc/init.d/networking restart

جهت تست اعمال bridg بر روی کارت شبکه از دستور brctl show استفاده میکنیم.                                                

bridge name         bridge id            STP       enabled                 interfaces

br0                 8000.001e671a4e9b    no                                eth0*

virbr0              8000.000000000000    yes                               vnet0

 

نکته : درصورت دریافت اینترنت از آنتن های متفاوت و تغییر ip سیستم واسط اینترنت سرور قطع خواهد شد که جهت رفع این مشکل بایستی تغییراتی در تنظیمات کارت شبکه داد.

 

v     مرحله سوم : پیکربندی کاربر Administrator

در ابتدا بایستی یک گروه به نام oneadmin   با شناسه ی 10000 و یک پوشه تو در تو با مسیر /var/lib/ایجاد می کنیم.(احتمالا از قبل این مسیر وجود دارد)

و سپس کاربری عضو این گروه با نام oneadmin  ایجاد می کنیم که با دستور chown -R صاحب یا مدیر گروه oneadmin  را از کاربر root به کاربرoneadmin  تغییر خواهیم داد. پوشه ی خانه آن /var/lib/one است ، یعنی در صورت ورود با کاربر oneadmin  مستقیما به این پوشه دسترسی داریم. بعداً  نرم افزار opennebula در همین پوشه نصب خواهد شد.

با دستور su -l oneadmin می توانیم به این کاربر دسترسی پیدا کنیم.

در آینده کاربران دیگر به این گروه اضافه خواهند شد که سطح دسترسی آنها مشخص میشود. در حال حاضر تنها یک کاربر دارد که به عنوان مدیر گروه است و با تنظیماتی که در مراحل بعد صورت خواهد گرفت دسترسی های لازم به او اختصاص داده خواهد شد.

 

v     مرحله چهارم : پیکربندی مخزن در onevmhost

به دلیل اینکه یکی از مهمترین کارهای ابر امکان دسترسی کاربران به اطلاعات موجود و imageها در مخزن آن به صورت مجازی است ، پس از پروتکل NFS جهت ایجاد این کارایی استفاده می کنیم.

پس از نصب nfs-kernel-serverدر فایل آن با اضافه کردن یک خط و دادن IP به همراه جزئیات مورد نیاز ، پوشه /var/lib/one به اشتراک گذاشته خواهد شد.

/var/lib/one 192.168.1.0/24(rw,sync,insecure,no_subtree_check,no_root_squash,anonuid=10000,anongid=10000)

 

بایستی پس از انجام این کار جهت اعمال تغییرات NFS Server را با استفاده از دستور زیر Restart کرد :

service nfs-kernel-server restart

 

  

v     مرحله پنجم : پیکربندی ssh در onevmhost

 

ابتدا به کاربر oneadmin، login می شویم و یک جفت کلید public/private را با دستور ssh-keygen ایجاد می کنیم. زوج كليد هاي ssh rsa یکی از مكانيزم هاي اعتبارسنجي در opennebula مي باشد.

باید کلید چک کردن تمامی هاست های شناخته شده دیگر در opennebula غیر فعال شود.

cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys

با این دستور کلید عمومی را به فایل authorized_keysمنتقل میکنیم . کلید چک کردن میزبان غیرفعال می شود. یعنی oneadmin باید بدون رمز قادر به وارد شدن به onevmhost باشد.

پس از ایجاد کلید از کاربر oneadmin با دستور exit خارج می شویم.

 

v     مرحله ششم : نصب ناظر KVM درonevmhost

1- نصب پکیجهایibvirt و Qemu

Libvirt : یک API متن باز برای مدیریت سرویس ها و پلت فرم های مجازی سازی است. بایستی پیکربندی شود تا با مدیریت vmها و پذیرفتن اتصالات VNC  کاربران oneadmin را توانا سازد.

Qemu : شبیه ساز کامپیوتر

Ruby : یک زبان برنامه نویسی متن باز است .

پس ازنصب باید یک سری تغییرات بر روی Libvirt و Qemuصورت گیرد.

تغییر گروه Libvirt به oneadmin

و سپس تغییر گروه oneadmin به گروه KVM

 

 

v     مرحله هفتم : آماده سازی نصب opennebula در onevmhost

قبل از نصب بایستی بسته های پیش فرض آن نصب شود.همچون :

sqlite : یک پایگاه داده کوچک متن باز

Ssl [3]:پروتکلی است برای ایجاد امکان انتقال ایمن اطلاعات برروی وب

نکته : به دلیل اینکه سرويس هاي رايانش ابري از طريق وب تحويل داده مي شوند تامین امنیت انتقال اطلاعات امری ضروریست.

   

 

v     مرحله هشتم : پیکربندی پایگاه داده در onevmhost

نصب MYSQL Server: پس از نصب با عنوان کاربر root و رمزی که در طول نصب می دهیم بهmysql  وارد می شویم.

در آن :

1- کاربری به نام oneadmin با نام سرور localhost ایجاد می کنیم که با استفاده از همان رمز قابل شناسایی است.

2-  پایگاه داده ای با عنوان opennebulaایجاد می کنیم.

3- سپس تمامی امتیازات opennebula را به oneadmin با استفاده از رمز واگذار کرده  و از mysql خارج می شویم.

این مراحل جهت مدیریت پایگاه داده صورت می گیرد . یعنی مدیریت پایگاه داده ی opennebula توسط کاربر oneadmin و دادن رمز جهت عدم ورود کاربران دیگر به back-end است.

 

 

v     مرحله نهم : نصب opennebula در onevmhost (مهمترین مرحله)

نسخه 3.8.3.tarballOpennebula را از سایتhttp://downloads.opennebula.org دانلود کرده و به پوشه /var/lib/one (همانطور  که قبلا در هنگام ساخت پوشه بیان شد) انتقال می دهیم.

 به کاربر oneadmin وارد ، فایل را از  حالت فشرده خارج کرده و فایل فشرده را پاک می کنیم.

وارد پوشه ی 3.8.3.tarballOpennebula    شده و بقیه مراحل نصب را انجام می دهیم.

قبل از نصب برای پیکربندی پشتیبان mysql دستور زیر را اجرا می کنیم . که با اینکار این پایگاه داده فعال و sqlite غیر فعال میشود.

                                scons sqlite=no mysql=yes

 

برای نصب opennebula به صورت قابل دسترس به وسیله گروه oneadmin و کاربر oneadmin ،اسکریپت install.dh را با دستور زیر اجرا می کنیم.

./install.sh -u oneadmin -g oneadmin -d /var/lib/one

 

 یک فایل مشخصات [~ /. bash_profile] با مجموعه متغیرهای محیطی مورد نیاز برای شروع و استفاده از خدمات ارائه شده توسط "one"ایجاد می کنیم.

export ONE_LOCATION=/var/lib/one    موقعیت

export ONE_AUTH=$ONE_LOCATION/.one/one_auth موقعیت فایل احراز هویت    

export ONE_XMLRPC=http://localhost:2633/RPC2

export PATH=$ONE_LOCATION/bin:/usr/local/bin:/var/lib/gems/1.8/bin/:/var/lib/gems/1.8/:$PATH مسیر   

 

جهت ایجاد رمز عبور برای کاربر مدیر opennebula یعنی oneadmin در فایل .one دستور زیر را اجرا می کنیم.

echo "oneadmin:xxxxxxxxx" > ~/.one/one_auth

 

پس از انجام مراحل بالا یعنی نصب opennebula و ایجاد قابلیت دسترسی آن توسط کاربر و گروه oneadmin ، ایجاد فایل مشخصات و رمز کاربر مدیر آن نوبت به ویرایش فایل پیکربندی opennebula است.

~/etc/oned.conf

در این فایل sqlit که به صورت پیش فرض به عنوان back-end در نظر گرفته شده بود را غیرفعال و بجای آن mysql را فعال می کنیم.

DB = [ backend = "sqlite" ] Ú  #DB = [ backend = "sqlite" ]

# DB = [ backend = "mysql",    Ú      DB = [ backend = "mysql",

#      server  = "localhost",               server  = "localhost",

#      port    = 0,                                                                           و مابقی خطوط به همین صورت

#      user    = "oneadmin",

#      passwd  = "xxxxxxxxx",

#      db_name = "opennebula  " ]

 

در صورت اجرای درست تمام مراحل opennebula  نصب با موفقیت به انجام می رسد و اجرای دستور  one start نباید با هیچگونه خطایی مواجه شود.

حالا می توانیم سرویس های opennebula را تست کنیم.                                                                       onevm list

توجه: این دستور  باید با هیچگونه خطایی اجرا شود.

برای نصب واسط کاربر  گرافیکی sunstone از oneadmin خارج می شویم.

 

v     مرحله دهم :نصب sunstone-sever بر روی opennebula 

ابتدا به مسیر زیر می رویم :

cd /var/lib/one/opennebula  -3.8.3/share/install_gems

 

سپس Sunstone-Server را نصب می کنیم.

./install_gems sunstone

به کاربر oneadmin ، login شده  و  با اجرای دستور source ~/.bash_profile پیکربندی های موجود در این فایل را در هر بار اجرای این دستور فعال می کنیم.

           

« با توجه به اينكه مدل زير ساخت به عنوان سرويس، پيچيده ترين مدل ارايه سرويس در مدل پشته ي SPI ميباشد ، درك واقعي مفاهيم آن جز با تجربه ي راه اندازي چنين محيط هايي امكان پذير نمي شود »

 



[1] part of the operating system of a local area network which allows access to files located on other computers

[2] Virtual Network Computing

[3]SSL (Secure Socket Layer) :protocol designed by Netscape that enables secure transmission of information over the World Wide Web

 

ترجمه و آماده سازی برای سایت: مهدیه معمارزاده