جهت برپا سازی یک کلاستر، شما به حداقل دو دستگاه مبتنی بر لینوکس که به یک شبکه داخلی متصل بوده و قادر به کامپایل کردن و اجرای هسته های سری 2.4 باشند، نیاز دارید.
همچنین شبکه شما باید دارای حداقل سرعت 100 مگابیت باشد. این سرعت به شما سرعت بسیار خوبی را اعطا خواهد نمود. سرعت اترنت استاندارد یعنی 10 مگابیت به شما سرعت چندان جالب توجهی نخواهد داد. البته در صورتی که شبکه شما از این نوع است و مایل هستید تا فقط OpenMosix را تجربه نمایید، پاسخ گو خواهد بود. استفاده از اترنت های گیگابیت مفید بوده ولی انتخابی است. البته ممکن است واقعا به آن نیاز نداشته باشید و اترنت 100 مگابیت امور شما را به خوبی انجام دهد. اتصال گره های کلاستر به یک سوییچ پرسرعت سیستم های شما را قادر خواهد ساخت تا در حالت Full Duplex عمل نموده و پهنای باند شما دو برابر گردد. همچنین می توانید در یک کلاستر 2 یا 3 گره ای از سیم کشی مخصوص جهت اتصال مستقیم گره ها به هم استفاده نمایید. داشتن فضای Swap کافی قویا توصیه می شود. به این صورت شما قادر خواهید بود تا گره ها را بصورت دینامیک از کلاستر خارج نمایید بدون اینکه با کمبود حافظه مواجه شوید. این موضوع نیز انتخابی بوده و ممکن است در شرایط خاصی که کلاستر تحت فشار کاری بالایی قرار دارد، به شما کمک کند. در کنار مطالب بالا، باز هم اضافه می کنم که امکان ایجاد یک کلاستر مبتنی بر فقط دو دستگاه لینوکس و یک اترنت استاندارد نیز وجود دارد. لازم نیست که تمام کامپیوترهایی که در یک کلاستر قرار می گیرند قوی باشند و یا مهم نیست که دارای سخت افزارهای متنوعی باشند. هر قدرت پردازشی می تواند به سرعت جمعی کمک کند! ● شروع کار فرایند برپاسازی کلاسترهای لینوکس بسیار ساده می باشد. ابتدا باید هسته هایی که OpenMosix روی آنها فعال شده اند را روی گره های کلاسترها نصب کرده و سپس ابزارهای کاربری را روی همه آنها نصب کرده و یک تنظیم کوچک در یک فایل پیکربندی انجام دهیم. به عنوان نخستین مرحله از کار، باید ابزارهای نرم افزاری لازم را فراهم آورید. نخستین چیزی که به آن نیاز دارید، کد منبع هسته ای است که مایلید روی آن کار کنید. کد منبع هسته خود را می توانید از http://kernel.org دریافت نمایید. من برای اجرای پروژه، از هسته 2.4.23 استفاده کرده ام. در قدم بعدی باید وصله های هسته OpenMosix و سپس ابزارهای نرم افزاری OpenMosix را دریافت نمایید. برای دانلود وصله های هسته OpenMosix می توانید به سایت رسمی آن در آدرس http://openmosix.sf.net یا http://openmosix.org مراجعه کنید و یا از لینک های زیر برای هسته های مورد نظرتان استفاده کنید: هسته 2.4.21:http://tab.tuxfamily.org/download/openmosix/releases/patch-2.4.21-om-20030825.bz2 هسته 2.4.22:http://tab.tuxfamily.org/download/openmosix/releases/patch-2.4.22-om-20031215.bz2 هسته 2.4.23:http://tab.tuxfamily.org/download/openmosix/stable/patch-2.4.23-om-20031215.bz2 هسته 2.6.0 (آزمایشی):http://tab.tuxfamily.org/download/openmosix/unstable/patch-2.6.0-om-0.20031202.1.bz2 ابزارهای نرم افزاری:http://umn.dl.sourceforge.net/sourceforge/openmosix/openmosix-tools-0.3.5.tar.bz2 فراموش نکنید که همیشه می توانید جدیدترین نسخه های وصله هسته و ابزارهای نرم افزاری OpenMosix را از سایت رسمی آن دریافت نمایید. پس از اتمام دریافت تمامی اقلام مورد نیاز (تنها کد منبع هسته دارای حجم زیادی است و بقیه ابزارها همگی بین 200 تا 300 کیلوبایت ظرفیت دارند!) باید تجهیز گره های کلاستر را شروع کنید. ابتدا لازم است در شبکه محلی خود کامپیوترهایی را که مایلید به عنوان گره های کلاستر استفاده کنید، تعیین نمایید. من در دفتر کار خود دو دستگاه را برای این منظور انتخاب کردم. (تصویر زیر) همانطوری که قبلا اشاره کردم، لازم نیست که گره های کلاستر حتما قویترین ایستگاه های کاری روی شبکه باشند. دستگاه های انتخابی من دارای مشخصات زیر هستند: Node No.1 : Debian (LAN SERVER) CPU : P-III 800 MHz RAM: 128 MB SD-RAM NIC : SIS 100 Mbps HDD: 2x40GB Distro : Debian GNU/Linux 3.0 (woody) Kernel: 2.4.23 (will be 2.4.23-om) Node No.2 : Cyber (Workstation) CPU : Celeron 333 MHz RAM: 160 MB SD-RAM NIC : D-Link 100 Mbps HDD: 1x6.4GB Distro : Libranet GNU/Linux 2.8.1 Kernel: 2.4.21 (will be 2.4.23-om) پس از تعیین گره های کلاستر، شروع به نصب نرم افزارهای لازم برای این کار می کنیم. این عملیات را برای تمام گره ها باید تکرار کرد. برای شروع هسته OpenMosix را نصب می کنیم. ابتدا کد منبع هسته را در آدرس usr/src کپی کرده و آنرا با استفاده از دستورهای زیر باز می کنیم: cd /usr/src bzip2 -d linux-2.4.23.tar.bz2 tar -xf linux-2.4.23.tar mv linux linux.old ln -s linux-2.4.23 linux سپس وصله هسته را در کد منبع خود اعمال می کنیم: cd linux cat /home/alan/patch-2.4.23-om-20031215.bz2 | bzip2 -d | patch -p1 -l کد منبع هسته در چند ثانیه وصله خواهد شد. اکنون می توانید طبق روال های گذشته هسته را پیکربندی و کامپایل نمایید. فقط اطمینان حاصل کنید که گزینه های زیر را در بخش OpenMosix پیکربندی هسته انتخاب کنید: [*] openMOSIX process migration support [*] Stricter security on openMOSIX ports [*] openMOSIX File-System [*] Poll/Select exceptions on pipes برای شروع پیکربندی هسته، دستور زیر را وارد نمایید: cd /usr/src/linux make menuconfig پس از اتمام پیکربندی و ذخیره تغییرات، برای کامپایل شدن هسته دستورات زیر را وارد نمایید: make-kpkg clean make-kpkg --revision=8:MOSIX01 kernel_image و یا خیلی ساده تر: make-kpkg clean make-kpkg kernel_image این نحو عملیات کامپایل هسته به یک بسته دبیان ختم خواهد شد که قادرید آنرا به راحتی روی سیستم نصب نمایید. مدت زمان انجام عملیات کامپایل هسته به سرعت پردازنده سیستم بستگی دارد. پس از اتمام عملیات کامپایل هسته، بسته ای را که ایجاد شده است، نصب می کنیم: dpkg -i kernel_image-2.4.23-om_MOSIX01_i386.deb هنگام نصب این بسته، مدیر بوت Lilo به طور خودکار پیکربندی خواهد شد. در صورتی که از گراب استفاده می کنید، باید تغییرات را بطور دستی در فایل پیکربندی آن اعمال نمایید. برای این منظور باید فایل boot/grub/menu.lst را ویرایش کرده و خطوط زیر را اضافه نمایید. البته مقادیری مانند پارتیشن های قابل بوت و سایر آدرس ها ممکن است روی سیستم های شما متفاوت باشد که آنها را باید تغییر دهید: title Libranet GNU/Linux, kernel 2.4.23 OpenMosix root (hd0,1) kernel /vmlinuz-2.4.23-om root=/dev/hda3 ro hdb=scsi savedefault boot پس از اتمام نصب هسته ها، اکنون باید ابزارهای نرم افزاری OpenMosix را نصب نماییم. برای این منظور، فایلی را که دانلود کرده بودیم، باز کرده و کامپایل و نصب می کنیم: bzip2 -d openmosix-tools-0.3.5.tar.bz2 tar -xf openmosix-tools-0.3.5.tar cd openmosix-tools-0.3.5 ./configure --with-kerneldir=/usr/src/linux-2.4.23/ make make install کامپایل و نصب ابزارهای نرم افزاری مدت زیادی طول نمی کشد (1-2 دقیقه یا کمتر روی پردازنده های قویتر). پس از اتمام آن، باید در یکی از فایل های پیکربندی مربوطه لیست گره های کلاستر را تعریف کرده و سپس سرویس OpenMosix را طوری تعریف کنیم تا هر بار بصورت خودکار اجرا شود. به این منظور ابتدا دستور: vi /etc/openmosix.map اجرا کرده و باید مشخصات گره ها را بصورت <شماره گره> <آدرس IP گره> <تعداد> وارد نماییم: 1 192.168.0.1 1 1 192.168.0.7 1 آرگومان شماره هنگامی مفید است که بخواهیم چند آدرس IP پشت سرهم را تعریف نماییم. مثلا در صورتی که 10 گره داشته باشیم که آدرس آنها از 25 شروع می شود، وارد خواهیم کرد: 1 192.168.0.25 10 و عملیات تایپ ما را بسیار کمتر خواهد کرد. این فایل پیکربندی روی تمام گره ها یکسان است. بنابراین می توانید آنر روی تمام گره ها کپی کنید. پس از انجام این کار به راه اندازی خودکار OpenMosix می پردازیم. ابتدا باید تعیین کنید که سطح اجرایی پیش گزیده هر یک از گره ها کدام است. به این منظور دستور زیر را وارد نمایید: runlevel N 2 خوب سطح اجرایی پیش گزیده ما 2 است (سیستم های مبتنی بر دبیان). بنابراین وارد دایرکتوری etc/rc2.d می شویم. در صورتی که سطح اجرایی شما متفاوت شد، این عملیات را با دایرکتوری مربوط به آن که می تواند rc3.d، rc4.d و... باشد انجام دهید: cd /etc/rc2.d ln -s ../init.d/openmosix S20openmosix در اینجا نمی خواهم فلسفه دستورات بالا را توضیح دهم زیرا از مسیر اصلی دور خواهیم شد. پس از اتمام عملیات بالا و بوت سیستم ها، سیستم هایی داریم که مبتنی بر OpenMosix بوده و سرویس آن نیز بطور خودکار اجرا می شود. برای بکار افتادن کلاستر، گره ها را بوت می کنیم. گره شماره 1 با موفقیت OpenMosix را اجرا می کند، ولی گره شماره 2 با پیغام Invalid Map File قادر به اتصال به کلاستر نیست. پس مقداری جستجو و بررسی فایل پیکربندی، متوجه می شوم که در فایل etc/hosts یک ورودی به صورت زیر موجود است: 127.0.0.1 cyber آنرا تبدیل به ورودی زیر می کنم: 192.168.0.7 cyber مجددا سرویس OpenMosix را با دستور etc/init.d/openmosix restart اجرا می کنم. اکنون بدون مشکل اجرا می شود. برای حصول اطمینان از شناخته شدن تمام گره های کلاستر، با دستور زیر آنها را آزمایش می کنم: mosctl status 1 up. mosctl status 2 up بسیار عالی! هر دو گره کلاستر در حال اجرا هستند. اکنون کلاستر ما آماده است. با استفاده از دستور mosmon می توانید وضعیت کلی کلاستر را بررسی نمایید. اینکه کدام سیستم ها دارای چه مقدار بار فعال هستند و با گذاشتن بار روی یکی از آنها چه اتفاقی خواهد افتاد و ... technotux |