سه شنبه ۲۸ شهریور ۱۳۹۶
  • :
  • :

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

راه اندازی یک سرور مجازی لینوکس
linux vps server راه اندازی یک  سرور مجازی لینوکس
vps3nter

خرید وی پی ان
همزمان با بیشتر شدن سريع اینترنت خدمات آنلاین، روزانه بر اندازه پردازش سرویس دهنده ها و تعداد درخواست های فرد ان افزوده می شود. ولی حداکثر توان کاری هر سرویس دهنده اندازه ای دارد که بیشتر از آن نمی تواند به در خواست ها جواب دهد به صورت معمول سرویس دهی نماید . برای خروج از این وضعیت مدیر سرویس دهنده،چندین راه حل دارد: جایگزینی سرورهایی با قدرت پردازش بیشتر یا ارتقا تعداد سرویس دهنده های موجود. اما این کار احتمالا نرخ زیاد زیاد ی را به سیسـتم تحمیل نماید . به طوری که عملا اجرای آن غیرممکن خواهد بود. در این شرایط شاید برپا سازی یک سرویس دهنده مجازی بر پایه مفهوم ها کلاستر و تقسیم سرویس ها بین چندین سرویس دهنده، یکی از موثر ترین راهکارهایی باشد که می توان جهت افزایش قدرت سرویس دهنده به کاربست. کلاستر سازی این قابلیت را فراهم می نماید که با افزودن یک سرور مجازی به سیسـتم ، در خواست های سرویس بین چند سرویس دهنده تقسیم شود از وارد آمدن فشار اضافی بریک سرویس دهنده و نهایتا مختل شدن سرویس دهی شبکه پیشگیری به عمل آید. در این نوشتار، به برپاسازی و پیکربندی سرور مجازی لینوکس در یک شبکه، که حاوی چندین سرویس دهنده مختلف، مانند سروی دهنده وب، ایمیل و FTP است نگاهي می اندازیم .

مفهوم کلاستر

کلاسترها یکی از جذاب ترین مفاهیم ی هستند که در بحث های پردازش موازی و سرویس دهنده بیان می شوند. به طور عام مفهوم کلاسترها به یک مجموعه از رایانه ها اطلاق می شود که با اشتراک قدرت پردازشی یکدیگر، توان را جهت انجام دادن امور پردازشی محوله فراهم می کنند. یک کلاستر حاوی چندین اتومبیل است که در یک شبکه مکانی پرسرعت به متصل شده و با استفاده از برنامـه زمانبندی همموسیقی سازی بین اتومبیل های شبکه، امور پردازشی را انجام می دهند .
گونه ای از این کلاسترها موسوم به load-balancing cluster وظیفه موازنه کردن ترافیک شبکه را بین اتومبیل های شبکه بر عهده دارند. هدف این نوشتار پیاده سازی چنین کلاستری است که بتواند با تقسیم کردن درخواست های سرویس ارسالی از کاربر ان شبکه بین چند سرویس دهنده ، از تراکم اندازه کاری بر روی یک سرویس دهنده بکاهد .

طرح ریزی کلاستر
کلاستر حاوی سرور مجازی مبتنی بر سیستم علت لینوکس و تعدادی سرور فیزیکی خواهد بود که با استفاده از سوئیچ ، با در رابطه هستند . هدف شبکه، ارائه سرویس هایی مانند وب و ایمیل به فرد ان است. فرد ان از طریق بستر شبکه ای، مانند اینترنت، با سرور مجازی رابطه دارند . سرورهای فیزیکی می توانند بر هر سیستم علت ی مبتنی باشند. وظیفه سرور مجازی لینوکس ، بااستفاده از آدرس های IP ، کاهش فشار اندازه درخواست های ارسالی به سرور فیزیکی تقسیم درخواست ها بین چند سرور موجود در شبکه است .
در واقع می توان گفت که سرور مجازی نقش یک رابط را بین کاربر ان شبکه سرورهای فیزیکی شبکه ایفا می نماید که در این میان، امکان همزمانی پردازش های زیادتری از درخواست ها با استفاده از آدرس IP فراهم می شود . ی که سرور مجازی درخواست را از کاربر دریافت می نماید ، براساس یک الگوریتم زمانبندی ،درخواست فرد را به سرور فیزیکی مربوطه تحویل می دهد. پس سرور فیزیکی داده های مورد تقاضا را جهت سرور مجازی به درخواست فرد جواب خواهد داد. در این میان، سرویس دهنده حقیقی همان سرورهای فیزیکی هستند که آدرس IP آن ها توسط سرور مجازی تغییر یافته است. سرور مجازی از دو رابط شبکه مصرف می نماید : رابط جهت برقراری رابطه با کاربر ان و دسترسی فرد ان به شبکه ، و رابط دوم جهت رابطه با شبکه محلی و سرورهای فیزیکی .راه اندازی کلاستر با این ساختار، قابلیت هرگونه تغییر، حذف یا اضافه کردن سرورهای فیزیکی را برای مدیر شبکه فراهم می نماید .

مرمت هسته لینوکس
لینوکس حاوی هسته ورژن ۲٫۴٫۲۸ و ورژن های بالاتر، از کلاسترهای سرور مجازی یا LVS پشتیبانی می کنند. پس چنانچه از ورژن های پایین تر مصرف می شود، می بایست با اضافه کردن ماجول LVS مجددا هسته را کامپایل و مرمت بکنید .این بسته به صورت از نشانی http://www.linuxvirtualserver.org قابل دریافت است . چون در سایت جهت نسخه های مختلف هسته، بسته های مختلف ی ارائه شده ، لازم است شماره بسته متناسب با نسخه هسته لینوکس سیستم نقد شود. بسته دریافتی از سایت را در شاخه usr/src/ کپی بکنید و دستورات زیر را اجرا نمایید :

×#cd/usr/scr/linux
#gunzip ../linux-2.4.21-ipvs-1.0.10.patch.gz
#patch-p1< ../linux-2.4.21-ipvs-1.0.10.patch

دستور خط اول ، موقعیت خط فرمان را به زیرشاخه ×linux منتقل می نماید . در خط دوم با مصرف از وسائل GUNZIP ، بسته دریافت شده از سایت پروژه از حالت جمع و جور خارج شده در خط سوم این بسته، به هسته اضافه شده است . بعد از اضافه شده است. بعد از اضافه شدن بسته به هسته، باید مجددا هسته کامپایل شود. یعنی در دایرکتوری×usr/src/linux دستورات زیر اجرا شوند :

#make mrproper
#make oldconfig
#make menuconfig

با اجرای دستور آخر، منو با چندین زیرشاخه اجرا خواهدشد. برای فعال کردن سرور مجازی از شاخه Networking Options ، گزینه IP:Virtual Server Configuration را انتخاب نمایید آدرس سرور مجازی را تنظیم بکنید :

virtual server support( EXPERIMENTAL)
]Ipvirtual server debugging×[
(۱۶) IPVS connection table size(the Nith power of2)
—IPVS scheduler
round-robin scheduling
< M >weighted round-robin scheduling
< M >least-connection scheduling scheduling
< M >weighted least-connection scheduling
< M >locality-based least-connection scheduling
< M >locality-based least-connection with replication scheduling
< M >destination hashing scheduling
< M >source hashing scheduling
< M >shortest expected delay scheduling
< M >never queue scheduling
—IPVS application helper
FTP protocol helper

قبل از خروج از menuconfig ، می بایست تغییرات ذخیره شوند. جهت ساختن همه ماجول های کرنل، دستور زیر اجرا می شود :

#make dep&&make bzlmage &&make modules && make modulesinstall

بعد از اجرای دستور بالا، زیر شاخه نو ی به نام bzlmage در دایرکتوری /arch/i386/boot/×usr/src/linux ساخـته می شود عکس هسته کامپایل شده در این شاخه قرار می گیرد. جهت اتمام پیکربندی هسته، می بایست این عکس در شاخهboot/کپی شده فایل های پیکربندی بوت لودرهای سیستم ظهور رسانی شوند .

نصب وسائل IPT و IPVsadm
در گام بعدی ، بعد از مرمت هسته لینوکس، جهت پیکربندی سرور مجازی ، بایستی بسته های IPTable و IPVsadm نصب شوند . IPTable وسائل ی جهت راه اندازی ساختار فایروال مبتنی بر فیلتر بسته های IPV4 و NAT در هسته لینوکس است. بااستفاده از این وسائل ، آدرس های IPهای مجازی جهت سرورهای فیزیکی تعریف می شوند . IPVsadm نیز وسائل برای مدیریت سرور مجازی لینوکس، تنظیم الگوریتم زمانبندی تقسیم درخواست ها قوانین ارسال درخواست های فرد ان به سرورهای فیزیکی است. بسته نصب IPTable به همراه اکثر توزیع ها ارائه می شود می توان از طریق پروگرام مدیریت بسته های توزیع لینوکس به راحتی آن را نصب کرد. بسته rpm نصب وسائل IPVsadm نیز از وبسایت پروژه LVS قابل دریافت است. بعد از نصب این دو وسائل ، ضروری است که گزینه IP forwarding برای سرور لینوکس فعال شود. جهت این منظور، فایل etc/sysctl.conf/ را در یک ویرایشگر متنی بازکرده مورد زیر را ارزشمند ۱ میزان دهی بکنید :

net.ipv4.ipforward=1

هم اکنون کافی است با مصرف از دستور start ، سرویس IPTable برای ارسال بسته های IP سرورهای فیزیکی به آدرس فرد ان شبکه فعال شود :

service iptables start

فعال کردن IP masquerading
جهت تنظیم آدرس IP سرورهای فیزیکی در سرور مجازی لینوکس، می بایست به این نکته توجه شود که eth0 برای کارت شبکه ارتباطی با شبکه اینترنت و eth1 جهت کارت شبکه مکانی تعریف شوند. در ادامه برروی سرور مجازی، دستورات زیر اجرا شوند :

#iptables-t nat-P POSTROUTING DROP
#iptables-t nat-A POSTROUTING-o eth0-j MASQUERDE

در خط اول ، با تعریف یک قانون جهت IPTables ، یک سطح خارجی امنیتی جهت شبکه تعریف می شود . DROP این اختیار را به IRTables می دهد که هرگونه بسته IP که از ruleهای تعریفی تبعیت نمی نماید ، از شبکه حذف شود در نتیجه هر آدرس IP جعلی یا ساختگی را نمی توان برای شبکه تنظیم کرد. خط دوم، جدول NAT را برای آدرس دهی شبکه داخلی بین سرورهای فیزیکی با سرور مجازی و کارت شبکه eth0 فعال می نماید .

پیکربندی سرور مجازی لینوکس با IPVsadm
در گام بعدی، با مصرف از وسائل IPVsadm سرور مجازی تنظیم می شود . برای شروع می بایست به هریک از اتومبیل های شبکه یک آدرس IP اختصاص داده شود . جهت سرورهای فیزیکی شبکه محلی، یک بازه آدرس دهی مانند ۱۰٫۰٫۰٫۰ تا۲۵۵٫۲۵۵٫۲۵۵٫۰ گزینش شده از شماره Subnet Musk مصرف می شود. از سرور مجازی به عنوان دروازه برای سرورهای فیزیکی استفاده می شود. اتومبیل های کلاینت با آدرس های IP اختصاص یافته توسط سرویس دهنده اینترنت با سرور مجازی در رابطه خواهند بود. یکی از دو سرور یک سرویس دهنده HTTP است که برای آن آدرس ۱۰٫۰٫۰٫۲ تعریف می شود سرور دوم که سرویس دهنده FTP است، با ۱۰٫۰٫۰٫۳ آدرس دهی می شود. آدرس ۱۰.۰٫۰٫۱ به عنوان پیش فرض دروازه جهت رابطه با سرور مجازی انتخاب می شود و جهت رابطه سرور مجازی گزینش می شود و برای رابطه سرور مجازی با شبکه اینترنت آدرس IP عمومی ۶۱٫۱۶٫۱۳۰٫۱۰۰ منظور می گردد. اکنون با وسائل IPVsadm ، آدرس های تخصیص داده شده جهت سرور مجازی تعریف می شوند :

#ipvsadm-A-t 161.16130.100:80-s wlc
#ipvsadm-A-161.16.130.100:21-s wrr

در فرامین بالا wlc و wrr دو الگوریتم مدیریت ترافیک سرور مجازی برای پورت های ۸۰ ۲۱ هستند . غیر از این دو، الگوریتم های زمانبندی قابل تعریف دیگری نیز وجود دارد که برای آشنایی با آن ها می توانید به صفحات man این برنامـه مراجعه بکنید . برای تعریف سرورهای فیزیکی ، دستورات بالا به صورت زیر اجرا می شوند :

#ipvsadm-a-t 161.16130.100:80-r 10.0.0.3:80-m
#ipvsadm-a-t 161.16.130.100:80-r 10.0.0.2:80-m-w2
#ipvsadm-a-t 161.16.130.100:21-r 10.0.0.3:21-m

اما همیشه ترافیک پورت ۸۰ بیشتر از ترافیک پورت FTP خواهدبود. بدین خاطر آدرس IP شماره ۱۰٫۰٫۰٫۳ جهت پورت ۸۰ نیز تعریف شده است. در این حالت، سرور مجازی با استفاده از الگوریتم های زمانبندی خود، می تواند بار ترافیکی این پورت را بر روی دو سرور فیزیکی تقسیم نماید ، با دادن اهمیت دو بوسیله آرگومان m- به آدرس ۱۰٫۰٫۰۲، سرور مجازی خواهد فهمید که این پورت بر روی آدرس دیگری نیز تعریف شده است .

نتیجه گیری
جهت آزمایش درستی عملکرد شبکه، می توان با استفاده از اتومبیل های کلاینت، درخواست هایی را برای سرور مجازی فرستاد نتیجه را دید . اگر به صورت همزمان چندین درخواست را از چند اتومبیل کلاینت ارسال بکنید ، خواهید دید برخي درخواست ها به وسیله سرویس دهنده FTP پردازش شده اند و آدرس IP مفرق ی بین درخواست های رسیده برروی اتومبیل های کلاینت وجود دارد. راه اندازی یک سرور مجازی با معین ات بالا جوابگوی کلاستر با تعداد محدودی سرویس دهنده است. برای شبکه هایی که از تعداد بسياري سرویس دهنده مصرف می کنند، به راه اندازی چند سرور مجازی، تنظیمات پیشرفته جدول NAT ، سرویس DNS نیاز خواهید داشت .




پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

سوپروب close
خرید بک لینک