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

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

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

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

همزمان با پیشرفت سریع اینترنت و خدمات آنلاین، روزانه بر سایز پردازش سرویس دهنده ها و تعداد تقاضـای های کاربران افزوده می شود . ولی حداکثر توان کاری هر سرویس دهنده حد ای دارد که زیـادتر از آن نمی تواند به در خواست ها پاسـخ دهد و به شیوه معمول سرویس دهی نماید . برای خروج از این وضعیت یک مدیر سرویس دهنده،چندین راه حل دارد: جایگزینی سرورهایی با قدرت پردازش زیـادتر و یا افزوده شدن تعداد سرویس دهنده های موجود. ولی این کار احتمالا هزینه خیلی بیشتری را به سیستم تحمیل نماید . به طوری که عملا انجام آن غیرممکن خواهد بود. در این شرایط ، احتمالا برپا سازی یک سرویس دهنده مجازی بر پایه مفاهیم کلاستر و تقسیم سرویس ها میـان چندین سرویس دهنده، یکـی از اثر بخش ترین راه حل هایی باشد که می توان برای افزوده شدن قدرت سرویس دهنده به کاربست. کلاستر سازی این توانایی را فراهم می کند که با اضافه کـردن یک سرور مجازی به سیستم ، در خواست های سرویس میـان چند سرویس دهنده تقسیم گـردد و از وارد آمدن فشار اضافی بریک سرویس دهنده و نهایتا مختل شدن سرویس دهی شبکه ممانعـت به عمل آید. در این نوشتار، به برپاسازی و پیکربندی یک سرور مجازی لینوکس در یک شبکه، که حاوی چندین سرویس دهنده مختلف، مثل سروی دهنده وب، ایمیل و 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 نیاز خواهید داشت .

خب دوستان  به پایان مقاله آموزشی روش ایجاد سرور مجازی لینوکس رسیدیم. با توجه به توضیحاتی که در بالا ارائه شد شما میتوانید به راحتی سرور مجازی لینوکس راه اندازی نمایید. از توجه شما سپاسگزاریم.