خوب است بدانید

چگونه یک خوشه از دو تمشک بسازیم. محاسبات موازی روی رزبری پای. چرا کلاه خوشه ای

در پست مهمان امروز، بروس تولوچ، مدیر عامل و مدیر اجرایی BitScope Designs، در مورد استفاده از محاسبات خوشه ای با Raspberry Pi و آزمایشی اخیر خوشه 3000-Pi آزمایشگاه ملی Los Alamos که با BitScope Blade ساخته شده است، صحبت می کند.

محاسبات با کارایی بالا و رزبری پای معمولاً در یک نفس بیان نمی شوند، اما آزمایشگاه ملی لوس آلاموس در حال ساخت یک خوشه Raspberry Pi با 3000 هسته به عنوان آزمایشی است، قبل از اینکه سال آینده تا 40000 هسته یا بیشتر مقیاس شود.

این شگفت انگیز است، اما چرا؟

خوشه های سنتی Raspberry Pi

مانند اکثر مردم، ما یک خوشه خوب را دوست داریم! مردم از ابتدا آنها را با Raspberry Pi ساخته اند، زیرا ارزان، آموزشی و سرگرم کننده است. آنها با Pi، Pi 2، Pi 3، و حتی Pi Zero اصلی ساخته شده‌اند، اما هیچ یک از این خوشه‌ها به‌ویژه کاربردی بودن آنها را ثابت نکرده‌اند.

هر چند این مانع مفید بودن آنها نیست! من در کنفرانس هفته گذشته تعداد زیادی خوشه Raspberry Pi را دیدم.

یکی از موارد کوچکی که توجه من را به خود جلب کرد از افراد در openio.io بود که از یک خوشه کوچک Raspberry Pi Zero W برای نشان دادن پلت فرم ذخیره سازی اشیاء تعریف شده توسط نرم افزار مقیاس پذیر خود استفاده کردند، که در ماشین های بزرگ برای مدیریت پتابایت داده استفاده می شود، اما آنقدر سبک است که در این موارد به خوبی اجرا می شود:

نمونه جذاب دیگری در غرفه ARM وجود داشت، جایی که پلتفرم کانتینری تکینگی آزمایشگاه های برکلی نشان داده شد که به طور بسیار مؤثری روی یک خوشه کوچک ساخته شده با Raspberry Pi 3 اجرا می شود.

نمایش مورد علاقه من از مرکز محاسبات موازی ادینبورگ (EPCC) بود: نیک براون از خوشه ای از Pi 3s برای توضیح ابر رایانه ها برای بچه ها با یک برنامه تعاملی جذاب استفاده کرد. ایده این بود که بازدیدکنندگان از غرفه یک بال هواپیما را طراحی کنند، آن را در سراسر خوشه شبیه‌سازی کنند و بررسی کنند که آیا هواپیمایی که از بال جدید استفاده می‌کند می‌تواند از ادینبورگ به نیویورک با مخزن پر سوخت پرواز کند یا خیر. مال من موفق شد، خوشبختانه!

نسل بعدی خوشه های Raspberry Pi

ما مدتی است که با BitScope Blade در حال ساخت کلاسترهای Raspberry Pi با قدرت صنعتی در مقیاس کوچک هستیم.

هنگامی که آزمایشگاه ملی Los Alamos از طریق ارائه دهنده HPC SICORP با درخواست ساخت یک خوشه متشکل از هزاران گره به ما مراجعه کرد، ما همه گزینه ها را با دقت بررسی کردیم. باید متراکم، قابل اعتماد، کم مصرف و پیکربندی و ساخت آن آسان باشد. این نیازی به "علم" نداشت، اما باید تقریباً به هر روش دیگری مانند یک خوشه HPC در مقیاس کامل کار کند.

نظرات شما را در نظرات زیر این پست نیز می خوانم و به آنها پاسخ خواهم داد.

یادداشت ویراستار:

در اینجا عکسی از بروس است که جت پک پوشیده است. باحاله، نه؟!


16 نظر

    شما بچه ها باید شروع به ساخت یک "مجموعه نصب" کامپیوتر کنید. در کودکی، در سن 7-8 سالگی برای کریسمس یک دستگاه ارکتور دریافت کردم. من هر چیزی که فکرش را می کرد ساختم. بعدها مهندس مکانیک شدم. من قطعاتی را برای توربین‌های گاز جنرال الکتریک طراحی کردم، و وقتی چراغ‌های خود را روشن می‌کنید، ارتباط مستقیمی با تامین انرژی RP در سرتاسر جهان دارم.

    شما در حال حاضر بیشتر بخش های اساسی را دارید. شما به یک اتوبوس نیاز دارید، چیزی شبیه گذرگاه CM DDR3. اگر RPi 3B یا هر زمان که RPi 4 بیرون می‌آید، آداپتور یا پایه‌هایی داشت که به آن گذرگاه متصل می‌شد، خوشه‌بندی آسان خواهد بود. من می توانم چهار CM پردازنده چهارگانه، یک پردازنده گرافیکی/ استخراج کننده بیت کوین روی یک CM، یک CM با SSD و غیره را تصور کنم. مجموعه ایکتور کامپیوتر…

    • استفاده از سوئیچ و پارچه اترنت به عنوان "اتوبوس" در سخت افزار موجود چه اشکالی دارد؟

    آیا ارائه ویدیویی کوتاهی در دسترس است که در مورد خوشه Los Alamos Pi، نحوه ساخت آن، چه چیزی استفاده خواهد شد و چرا این راه حل نسبت به راه حل های دیگر انتخاب شده است؟

    همچنین، با توجه به علاقه به OctoPi و دیگر خوشه‌های Pi، آیا می‌توان بخشی به پردازش موازی در فروم Raspberry Pi اختصاص داده شود؟

    • این ایده خوبی است. من فکر می کنم زمان مناسب است.

    آیا نسخه نمایشی airwing موجود است؟

    • EPCC Raspberry Pi Cluster Wee Archie () نام دارد و (مانند لوس آلاموسی که ما ساختیم) یک "مدل" است، البته برای هدفی تا حدودی متفاوت. در مورد آنها، این نماینده Archer (http://www.archer.ac.uk/) یک ابررایانه در سطح جهانی است که در سرویس ملی ابرکامپیوتر بریتانیا واقع شده و اجرا می شود. نیک براون (https://www.epcc.ed.ac.uk/about/staff/dr-nick-brown) مردی است که پشت نسخه نمایشی در SC17 دیدم. او را خط بکش!

    خوشحالم که اکنون بخش محاسبات با عملکرد بالا آنها را ترک کردم. این دیوانگی است. کد فرترن بد که در آزمایشگاه‌ها رایج است، در معماری ARM یکسان اجرا نمی‌شود، وقتی ابر رایانه‌هایی که قرار است کد روی آن‌ها اجرا شود، در ماشین‌های معماری اینتل استفاده می‌شوند. این پروژه قرار است به کارآموزان زمین بازی بدهد تا آنچه را که باید در کالج می آموختند بیاموزند.

    • یکی از مسائل معلق در مورد محاسبات exascale این است که چک کردن محاسباتی که روی هسته‌های زیادی در این تعداد جعبه اجرا می‌شود، ناکارآمد است. در همان زمان، احتمال اینکه همه گره ها در طول مدت محاسبه بدون خطا کار کنند، با اضافه شدن گره های بیشتر، به صورت تصاعدی کاهش می یابد.

      استفاده موثر از سیستم های موازی حافظه توزیع شده با جوجه های گله مقایسه شده است. هنگامی که به گله‌هایی آنقدر بزرگ فکر می‌کنید که برای تغذیه آن‌ها مگاوات مصرف می‌شود، شاید بهتر باشد با گله‌داری سوسک‌ها تمرین کنید. این در مورد تنظیم عملکرد کدهای Fortran نیست، بلکه نحوه مدیریت خطاهای سخت افزاری در یک محاسبات موازی انبوه توزیع شده است. همانطور که در بیانیه مطبوعاتی ذکر شد، ما حتی نمی‌دانیم چگونه یک ماشین exascale را راه‌اندازی کنیم: در زمان راه‌اندازی آخرین گره، چندین گره دیگر قبلاً از کار افتاده‌اند. به نظر من مدل‌سازی این مشکلات مقیاس بزرگ با یک خوشه عظیم از رایانه‌های Raspberry Pi امکان‌پذیر است. به عنوان مثال، تخلیه 1 گیگابایت رم روی شبکه 100 مگابیتی Pi، نسبت داده به پهنای باند مشابه با تخلیه 1 ترابایت رم روی یک اتصال 100 گیگابیتی است.

      • به اریک اشاره کرد. مسئله مربوط به مقیاس، راه‌اندازی، راه‌اندازی ماشین‌ها، ورود و خروج داده‌ها و بررسی نقطه‌ای برای جلوگیری از از دست دادن حجم عظیمی از کار محاسباتی است.

        نکات جالبی که از این پروژه یاد گرفتم…

        به طور معمول، نرخ خطای 10^-18 بسیار خوب است، اما در این مقیاس می توان در طول مدت یک شلیک روی یک ماشین بزرگ با آنها برخورد کرد. در مقیاس اگزا این بدتر خواهد بود. کلمه ای که جامعه HPC برای این مورد استفاده می کند "تاب آوری" است. با وجود این مشکلات «دنیای واقعی» که در عملکرد خوشه زیربنایی مداخله می کند، ماشین ها باید بتوانند علم را به روشی قابل اعتماد و قابل تأیید انجام دهند.

        آنها "علم همزمان" زیادی را در مقیاس عظیم انجام می دهند، بنابراین نیاز به ایست های بازرسی اجتناب ناپذیر است و لوس آلاموس در ارتفاع بسیار بالایی (حدود 7300 فوت) واقع شده است، بنابراین ماشین ها در معرض سطوح بالاتری از تشعشعات کیهانی هستند. این بدان معنی است که آنها با نرخ های بالاتری از "خطاهای آنالوگ" مواجه می شوند که می تواند باعث خطاهای محاسباتی و خرابی های تصادفی گره شود.

        همه این نوع مشکلات را می توان با استفاده از Raspberry Pi Cluster با هزینه بسیار کمتر و قدرت کمتر نسبت به ماشین های بزرگ مدل سازی، آزمایش و درک کرد. دسترسی ریشه به یک کلاستر 40000 هسته ای برای مدت زمان طولانی مانند رویایی است که برای بچه هایی که کارشان حل این مشکلات است، به واقعیت تبدیل شده است.

    من 120 خوشه Raspberry Pi برای اسکن سه بعدی می سازم. برای کنترل همه آنها با استفاده از یک انتقال بسته شبکه، از چند پخشی خالص UDP استفاده کنید. واقعا خوب کار میکنه :-)

    این بسیار شبیه به چیزی است که ما با یک پروژه عمومی جدید می خواهیم. اما به‌جای یک خوشه فیزیکی در نزدیکی، ما به یک «مجموعه» فکر می‌کنیم (نوعی از Borg، اما خوب…)، برای انجام رندر سه‌بعدی GPU Three.js. من یک نمونه اولیه در حال اجرا در Bing یا Google در sustasphere دارم، GitHub مربوطه را خواهید یافت (اما کاملاً به روز نیست). نمونه اولیه فعلی (بدیهی است) در مرورگر شما رندر می شود. با این مجموعه، تماس‌های مرورگر شما به (امیدوارم) هزاران Raspberry هدایت می‌شوند. هرکدام در زمان واقعی بخشی از رندر سه بعدی را خرد می کنند. در "سر من"، من به Open Suze که با Express.js انباشته شده است فکر می کنم.

    برای تامین انرژی هر گره، از باد و یک پیچ آرکمدین، با سر هیدرولیک، با یک دینام دوچرخه ساده تشکر می کنیم.

    خوبه ولی چرا ما می‌خواهیم پژواکی از گذشته را گرامی بداریم (بیانیه پورت هورون). حوزه کرامت مجازی را معرفی کنید. دادن فرصت به مردم برای ابراز احساسات؛ باز هم معنای کرامت را تعریف می کند. تصور کنید موتزارت Nozze di Figaro خود را اجرا می کند (برای من نمونه ای عالی از آوردن هنر به مردم و به اشتراک گذاشتن افکار در مورد اخلاق). و بتوانید واقعاً آنجا باشید، حرکت کنید، سوراخ‌های بینی را بشمارید و شاید حتی جسمی شوید.

    بله، برای این کار به GPU Collective نیاز دارید.

    با توجه به تجربه شما، آیا می توانید ما را در مسیر پیش رو راهنمایی کنید؟ به استفاده در تصمیم گیری صحیح کمک کنید؟

    > آزمایشی اخیر خوشه 3000-Pi آزمایشگاه ملی لوس آلاموس

    باید خوشه 750 Pi، 5 تیغه هر کدام 150 Pis، با 3000 هسته کل (هر کدام 4 هسته در هر CPU) را بخواند.

    خوب، من یک nuby در Raspberry pi 3 هستم. اما می خواستم بدانم که آیا آنها از LFS با خوشه تیغه بیتسکوپ استفاده کردند؟ ... و اگر چنین است، چگونه عمل کرد؟

    • نه LFS اما نه Raspbian (به جز برای آزمایش اولیه). آنها در نهایت برای توضیح کارهایی که انجام می دهند مطالب بیشتری منتشر خواهند کرد، اما کافی است بگوییم که این یک پشته نرم افزاری بسیار ناب است که هدف آن شبیه سازی عملکرد خوشه های بزرگ در این خوشه "کوچک" است.

    چرا اجتناب از استفاده از کارت های Micro SD مهم است؟

    من یک برنامه کاربردی برای خوشه pi در نظر دارم که برای آن به ذخیره سازی محلی نیاز دارم. اگر نمی توانم از کارت MicroSD استفاده کنم، پس چه؟

    • هنگام اجرای مجموعه ای از 750 گره (همانطور که Los Alamos انجام می دهند)، مدیریت و به روز رسانی تصاویر در تمام کارت های SD 750 یک کابوس است.

      اگر خوشه شما کوچکتر است ممکن است مشکلی نباشد (در واقع ما اغلب این کار را برای Blade Racks کوچک 20 یا 40 گره انجام می دهیم).

      با این حال، موضوع دیگر استحکام است.

      کارت‌های SD معمولا فرسوده می‌شوند (سرعت به نحوه استفاده شما بستگی دارد). نودهای بوت PXE (نت) فرسوده نمی شوند. ذخیره‌سازی محلی نیز ممکن است ضروری نباشد (اگر از یک سیستم فایل NFS یا NBD از طریق LAN استفاده می‌کنید) اما پهنای باند دسترسی به ذخیره‌سازی (از راه دور) ممکن است مشکل ساز باشد (اگر همه گره‌ها به یکباره روی LAN پرش کنند بسته به بافت شبکه شما و/یا پهنای باند سرور NFS/NBD).

      گزینه دیگر USB sticks (به پورت های USB Raspberry Pi وصل شده است). آنها (معمولا) سریعتر و (می توانند) قابل اعتمادتر از کارت های SD هستند و شما نیز می توانید از آنها بوت کنید!

      تمام آنچه گفته شد، هیچ مشکلی در مورد استفاده از کارت‌های SD در محدودیت‌های آنها در Raspberry Pi Cluster وجود ندارد.

کاملاً ممکن است که این خوشه ارزان ترین و مقرون به صرفه ترین ساخته شده در خانه باشد.
او در حال حاضر مشغول شمارش پازل ها است. [ایمیل محافظت شده].

مونتاژ

مونتاژ دشوار نیست - در اینجا لیستی از مواد برای تکرار وجود دارد:

  • 4 برد PC OrangePi (یکی هم کار می کند) با کابل های برق
  • 16 قفسه برای بردهای مدار چاپی برای چسباندن بین خود
  • 4 پایه (کوتاه) برای نصب روی پایه یا استفاده به عنوان پایه
  • 2 عدد پلکسی گلاس (روکش بالا و پایین)
  • فن 92 میلی متری
  • 4 عدد براکت نصب فن
  • هاب اترنت 100 مگابایت، ترجیحاً با ولتاژ 5 یا 12 ولت تغذیه می شود
  • پچ کورد برای اتصال اترنت به مقدار لازم (به هر حال، از آنجایی که شبکه هنوز 100 مگابیت است، می توانید از نودل های تلفن 4 سیم استفاده کنید و کمی در کابل صرفه جویی کنید)
  • منبع تغذیه (در ادامه بیشتر در مورد آن)
  • برای برقراری ارتباط با دنیای خارج - وای فای USB ارزان

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

و اینگونه است که "محصول" "از پشت" به نظر می رسد.

متأسفانه، نوار برق آبی وجود نداشت - بنابراین توپی را با نوارهای لاستیکی می بندیم.

تغذیه

هر یک از OPI ها حداقل آمپر مصرف می کنند (سازنده منبع حداقل 1.5…2A را توصیه می کند). فن به 12 ولت، هاب نیز نیاز دارد، البته مدل های 5 ولتی نیز وجود دارد.

بنابراین طول خواهد کشید خوبمنبع تغذیه دو ولتاژ

یک کامپیوتر کامپیوتر قدیمی خوب است، اما یک منبع تغذیه سوئیچینگ بدون فن مدرن مانند MeanWell بهتر است.

من در واقع این کار را انجام دادم، آن را در یک جعبه از یک منبع تغذیه قدیمی بسته بندی کردم و یک کانکتور معمولی مولکس (مانند رایانه) را بیرون آوردم.

برای "توزیع" 5 ولت، از یک هاب USB ارزان تغییر یافته استفاده می کنیم. برای انجام این کار، می توانید تراشه را سوراخ کنید یا به سادگی پایه های داده را قطع کنید و فقط مدارهای برق و زمین را باقی بگذارید. من روی روش دوم مستقر شدم، اگرچه در داخل، اتصالات "ضخیم" بیشتری روی خط 5 ولت گذاشتم. خوب، بیایید یک molex پاسخ را برای اتصال به PSU آویزان کنیم. چیزی شبیه به این معلوم می شود:

و این هم کل مجمع:

سیستم

به طور کلی، این فقط "یک شبکه محلی کوچک از 4 کامپیوتر" است.
به عنوان یک سیستم پایه - دبیان معمولی که قبلاً در مورد آن بسیار صحبت شده است.

خالص

بالاترین گره clunode0 است، می تواند از طریق WiFi به یک شبکه خارجی متصل شود، در حالی که "اینترنت" را در ماشین های clunode1، clunode2، clunode3 توزیع می کند. همچنین یک سرور NFS برای ذخیره سازی مشترک و dnsmasq برای توزیع آدرس های DHCP مانند 10.x.x.x وجود دارد.

در clunode0 در /etc/network/interfacesچیزی شبیه این ورودی:

1
2
3
4
5
6
7
8
9
10
11
12
13
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-scan-ssid 1
wpa-ap-scan 1
wpa-key-mgmt WPA-PSK
wpa-proto RSN WPA
wpa جفتی CCMP TKIP
wpa-group CCMP TKIP
wpa-ssid "وای فای من"
wpa-psk "MyWiFiPassword"
post-up /usr/local/bin/masquerade.sh eth0 wlan0
چهره پیش فرض inet dhcp

اگرچه، به نظر می رسد که وضعیت در آنجا تغییر کرده است و باینری را می توان از سایت دانلود کرد. من آن را بررسی نکردم - راحت تر آن را جمع کردم.

همچنین می توانید ابزار کنسول را نصب و پیکربندی کنید boinctui. همه چیز کاملاً مناسب به نظر می رسد (GIF متحرک):

چشم انداز

شما می توانید این ایده را توسعه دهید - در اینجا چند ایده وجود دارد:

  • اولین برد (clunode0) - load balancer، сlunode2،3 - وب سرور یا برنامه، clunode4 - پایگاه داده ==> microdatacenter :)
  • Hadoop (و در حال حاضر چنین مواردی وجود دارد، مردم در حال ساختن خوشه ها در Raspberry هستند)
  • خوشه Proxmox، اگرچه مطمئن نیستم که آیا همه قسمت ها برای ARM در دسترس هستند یا خیر
  • یک ماینر ارز دیجیتال، مگر اینکه مطمئناً ارز دیجیتالی را انتخاب کنید که هنوز برای استخراج روی پردازنده و به طور کلی برای استخراج سودآور باشد.

ممنون که تا آخر خواندید.


برد Cluster HAT راه حلی برای مشکل ساخت محاسبات خوشه ای است. محاسبات توزیع شده پیچیده است و این قطعه کوچک سخت افزار یکی از راه حل هاست.

اگرچه ایجاد آن چندان آسان نیست، اما یکی از چشمگیرترین پروژه های Raspberry Pi است.

چرا کلاه خوشه ای؟

برد Cluster HAT (Hardware Attached on Top) با (کنترل کننده) Raspberry Pi A+ / B+ / 2 / 3 / 4 و چهار برد Raspberry Pi Zero ارتباط برقرار می کند. تنظیم شده است که از حالت USB Gadget استفاده کند. علاوه بر این، یک ابزار ایده آل برای آموزش، آزمایش یا شبیه سازی خوشه های کوچک است.

Cluster HAT از انعطاف پذیری Raspberry Pi استفاده می کند و به برنامه نویسان اجازه می دهد تا با محاسبات خوشه ای آزمایش کنند.

مهم است که توجه داشته باشید که HAT با برد Raspberry Pi یا Pi Zero ارسال نمی شود. هر دو تخته باید جداگانه خریداری شوند. سازنده Pimoroni دستورالعمل های مونتاژ و جابجایی را در صفحه محصول خود ارائه می دهد. این شرکت همچنین ادعا می کند که 3 راه برای پیکربندی برد HAT وجود دارد.

مشخصات کلاه خوشه ای

  • HAT را می توان با هر یک از ماژول های Pi Zero 1.2، Pi Zero 1.3 و Pi Zero W استفاده کرد.
  • حالت گجت USB: اترنت و کنسول سریال.
  • هاب 4 پورت USB 2.0 داخلی.
  • Raspberry Pi Zeros توسط کنترلر Pi GPIO (USB اختیاری) تغذیه می شود.
  • قدرت Raspberry Pi Zero از طریق کنترلر Pi GPIO (I2C) کنترل می شود.
  • کانکتور برای کنترلر کنسول سریال (FTDI Basic).
  • کنترلر Pi را می توان بدون قطع برق برای Pi Zeros (بازیابی شبکه در هنگام بوت) راه اندازی مجدد کرد.

کیت شامل:

  • کیت نصب کلاه (پایه و پیچ)
  • کابل USB کوتاه (رنگ ممکن است متفاوت باشد)

در بازداشت

برد Cluster HAT v2.3 اکنون برای خرید در دسترس است و اگرچه هنوز در دسترس نیست

یکی از کاربردهای رایج رایانه های Raspberry Pi ساخت خوشه ها است. Raspberry Pies کوچک و ارزان هستند، بنابراین استفاده از آنها برای ساخت یک خوشه نسبت به رایانه های شخصی آسان تر است. یک خوشه Raspberry Pies برای رقابت با یک رایانه شخصی باید کاملاً بزرگ باشد؛ شما احتمالاً به 20 رایانه نیاز دارید. پای برای تولید یک خوشه با قدرت محاسباتی به اندازه یک رایانه شخصی. اگرچه یک خوشه Pi ممکن است آنقدر قدرتمند نباشد، اما فرصتی عالی برای یادگیری در مورد محاسبات توزیع شده است.

انواع مختلفی از کامپیوترهای توزیع شده وجود دارد که می توانند برای اهداف مختلف مورد استفاده قرار گیرند. ابر رایانه‌هایی وجود دارند که برای حل مسائل ریاضی مانند مدل‌سازی شرایط آب و هوایی یا شبیه‌سازی واکنش‌های شیمیایی استفاده می‌شوند. این سیستم ها اغلب از رابط ارسال پیام (MPI) استفاده می کنند. تیمی در دانشگاه ساوتهمپتون یک ابر کامپیوتر مبتنی بر MPI با 64 گره ساختند. این سیستم برای آموزش ابرکامپیوتر به دانش آموزان استفاده می شود.

فناوری دیگری که اغلب در محاسبات توزیع شده استفاده می شود Hadoop است که داده ها را در بسیاری از گره ها توزیع می کند. Hadoop اغلب برای پردازش مجموعه داده های بزرگ و داده کاوی استفاده می شود. یک مهندس در Nvidia یک خوشه Hadoop کوچک با استفاده از Raspberry Pies ساخت. او از خوشه خود برای پردازش داده ها استفاده می کند. ایده ها را قبل از استقرار در سیستم های قدرتمندتر آزمایش و آزمایش کنید.

استفاده از خوشه Raspberry Pi به عنوان وب سرور

خوشه ها را می توان به عنوان وب سرور استفاده کرد. بسیاری از وب‌سایت‌ها ترافیک زیادی برای اجرا روی یک سرور دریافت می‌کنند، بنابراین باید از چندین سرور استفاده شود. درخواست‌های مرورگرهای وب توسط گره‌ای به نام load balancer دریافت می‌شوند که درخواست‌ها را به سرورهای کارگر ارسال می‌کند. متعادل کننده بار سپس پاسخ ها را از سرورها به مشتریان ارسال می کند.

این سایت اکنون بر روی یک خوشه Raspberry Pi میزبانی می شود. گره های کارگر وب سرورهای استانداردی هستند که حاوی محتوای یکسان هستند. من فقط آپاچی را روی آنها نصب کردم و سایت خود را در هر گره کپی کردم.

من از یک Raspberry Pi اضافی برای میزبانی یک نسخه توسعه از این سایت و برای کنترل خوشه استفاده می کنم. این Pi از طریق وای فای به شبکه محلی من متصل است، بنابراین من می توانم به نسخه توسعه سایت خود از لپ تاپم دسترسی داشته باشم.

Pi اضافی همچنین دارای اتصال اترنت به خوشه Pi است. وقتی می خواهم سایت خود را به روز کنم، می توانم تغییرات را از سایت توسعه به سایت زنده در خوشه منتقل کنم. به روز رسانی سایت در فایل های .tar.gz قرار می گیرد که گره های کارگر به طور خودکار از سایت توسعه دانلود می کنند. پس از دانلود، به روز رسانی ها در سیستم فایل محلی باز می شوند.

پیکربندی سرورهای Raspberry Pi

همه پای های این سیستم بدون سر هستند. من می توانم با استفاده از پروتکل Remote Desktop با سایت توسعه وارد Pi شوم و از آن Pi می توانم با استفاده از SSH وارد Worker Pies شوم.

همه Pies در خوشه از یک آدرس IP ثابت استفاده می کنند. در یک خوشه بزرگتر احتمالاً بهتر است یک سرور DHCP روی بار متعادل کننده راه اندازی کنید. آدرس های IP استفاده شده در خوشه در زیرشبکه 192.168.1.xxx قرار دارند.

برای هر کارگر Pi، یک کارت SD 4 گیگابایتی با استفاده از آخرین نسخه Raspbian تنظیم کردم. در raspi-config گزینه های زیر را تنظیم کردم:

  • fs را گسترش دهید
  • نام میزبان را تنظیم کنید
  • رمز عبور را تنظیم کنید
  • تقسیم حافظه را برای GPU به 16 مگابایت تنظیم کنید
  • سی پی یو را تا 800 مگاهرتز اورکلاک کنید
  • ssh را فعال کنید

روی هر کارت Apache و تعدادی کتابخانه مورد نیاز CMS، libxml2 و python-libxml2 را نصب کردم. من از این دستور برای فعال کردن mod rewrite استفاده کردم که توسط CMS من نیز لازم است:

$ sudo a2enmod بازنویسی

در نهایت، من چند اسکریپت را روی هر کارت SD کپی کردم که به هر Pi اجازه می‌دهد محتویات خود را با توسعه Pi همگام‌سازی کند. در یک خوشه بزرگتر ارزش ایجاد یک تصویر کارت SD با همه این تغییرات از قبل را دارد.

ساخت متعادل کننده بار

متعادل کننده بار باید دو رابط شبکه داشته باشد، یکی برای دریافت درخواست ها از یک روتر و دیگری رابط شبکه برای ارسال درخواست ها به خوشه سرور. گره‌های خوشه در زیرشبکه‌ای متفاوت از بقیه شبکه هستند، بنابراین آدرس IP واسط دوم متعادل‌کننده بار باید در همان زیرشبکه بقیه خوشه باشد. اولین رابط بار متعادل‌کننده دارای آدرس IP 192.168.0.3 در حالی که آدرس IP رابط دوم 192.168.1.1 است. همه Pies در خوشه دارای آدرس IP در زیر شبکه 192.168.1.xxx هستند.

من متعادل کننده بار خود را با استفاده از یک رایانه قدیمی با 512 مگابایت رم و یک پردازنده x86 2.7 گیگاهرتز ساختم. من یک کارت اترنت PCI دوم اضافه کردم و لوبونتو، نسخه سبک وزن اوبونتو را نصب کردم. من قصد داشتم اوبونتو را نصب کنم، اما این رایانه شخصی بسیار قدیمی است، بنابراین احتمالاً لوبونتو انتخاب بهتری است. من از رایانه شخصی استفاده کردم زیرا مطمئن نبودم که یک Pi واحد به اندازه کافی قدرتمند باشد که بتواند به عنوان متعادل کننده بار عمل کند و یک Pi فقط یک اتصال اترنت دارد. ثبات.

توجه داشته باشید که انتقال IP فعال نیست. متعادل کننده بار یک روتر نیست، فقط باید درخواست های HTTP را ارسال کند و نه هر بسته IP را که دریافت می کند.

راه اندازی نرم افزار متعادل کننده بار

نرم افزارهای مختلفی برای تعادل بار وجود دارد. من از ماژول متعادل کننده بار آپاچی استفاده کردم زیرا تنظیم آن آسان است. ابتدا مطمئن شدم که سیستم عامل رایانه شخصی من به روز است:

به روز رسانی sudo apt-get
sudo apt-get ارتقاء

سپس آپاچی را نصب کردم:

sudo apt-get نصب apache2

این ماژول های آپاچی باید فعال شوند:

پروکسی sudo a2enmod
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer

مرحله بعدی ویرایش /etc/apache2/sites-available/default به منظور پیکربندی load balancer است. ماژول پروکسی برای ارسال HTTP مورد نیاز است، اما بهتر است اجازه ندهید سرور شما به عنوان یک پروکسی عمل کند. ارسال کنندگان هرزنامه و هکرها اغلب از سرورهای پروکسی دیگران برای مخفی کردن آدرس IP خود استفاده می کنند، بنابراین مهم است که این ویژگی را با افزودن این خط غیرفعال کنید:

ProxyRequests خاموش است

اگرچه درخواست های پروکسی غیرفعال هستند، ماژول پروکسی همچنان فعال است و به عنوان یک پروکسی معکوس عمل می کند. در مرحله بعد، خوشه و اعضای آن را با افزودن این کد تعریف کنید:

رابط مدیر متعادل کننده

ماژول متعادل کننده دارای یک رابط وب است که امکان نظارت بر وضعیت سرورهای پشتیبان و پیکربندی تنظیمات آنها را فراهم می کند. می توانید رابط وب را با افزودن این کد به /etc/apache2/sites-available/default فعال کنید:

همچنین لازم است به آپاچی دستور داده شود تا به جای ارسال این درخواست ها به یک سرور کارگر، درخواست ها را به صفحه /balancer-manager به صورت محلی رسیدگی کند.

ProxyPass /balancer-manager! ProxyPass / balancer://rpicluster/

پس از ذخیره این تغییرات، Apache باید با این دستور راه اندازی مجدد شود:

$ sudo /etc/init.d/apache2 راه اندازی مجدد

وقتی یک مرورگر را باز می کنم و به http://192.168.0.3 می روم صفحه اول وب سایت خود را می بینم. اگر به http://192.168.0.3/balancer-manager بروم، این صفحه را در تصویر سمت راست می بینم.

آخرین مرحله برای آنلاین شدن کلاستر، تنظیم تنظیمات ارسال پورت در روتر من است. من فقط باید یک قانون برای ارسال بسته های HTTP به http://192.168.0.3 تنظیم کنم.

در اینجا /etc/apache2/sites-available/default کامل برای متعادل کننده بار آمده است:

سرور ادمین [ایمیل محافظت شده] DocumentRoot /var/www گزینه ها FollowSymLinks AllowOverride All گزینه‌ها فهرست‌ها FollowSymLinks MultiViews AllowOverride همه سفارش اجازه می‌دهد، اجازه نمی‌دهد از همه ScriptAlias ​​/cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options + ExecCGI -MultiViews +SymLinksIfOwnerMatch AddHandler cgi-script .py سفارش اجازه دادن، اجازه دادن از همه را رد کنیددرخواست پروکسی خاموش است BalancerMember http://192.168.1.2:80 BalancerMember http://192.168.1.3:80 BalancerMember http://192.168.1.4:80 BalancerMember http://192.168.1.5:80 AllowOverride هیچکدام اجازه سفارش از همه Proxy lbmethod = درخواست های جانبی SetHandler balancer-manager سفارش اجازه دهید، اجازه را از 192.168.0 رد کنید ProxyPass /balancer-manager! ProxyPass / balancer://rpicluster/ ErrorLog $(APACHE_LOG_DIR)/error.log # مقادیر ممکن عبارتند از: اشکال زدایی، اطلاعات، اطلاعیه، هشدار، خطا، کریت، # هشدار، ظهور. هشدار LogLevel CustomLog $(APACHE_LOG_DIR)/access.log ترکیبی

توسط علاقه مندان برای اهداف مختلف استفاده می شود. برای مثال، دیوید گیل، علاقه‌مند به آن، تصمیم گرفت از آن برای ایجاد یک خوشه استفاده کند - گروهی از رایانه‌ها که به یکدیگر متصل هستند و از دیدگاه کاربر، یک منبع سخت‌افزاری واحد را نشان می‌دهند. تصمیم بر این شد که نام پروژه را خوشه 40 گره رسپی بگذارند. شایان ذکر است که دیوید برای کسب تجربه در برنامه نویسی در سیستم های توزیع شده به یک خوشه نیاز داشت، بنابراین خوشه Raspberry Pi در طول مدت آموزش جایگزین یک ابر کامپیوتر واقعی خواهد شد.

به روشی ساده، می‌توان با استفاده از یک قفسه یا کابینت ارزان قیمت به‌جای کیس، یک خوشه از Raspberry Pi جمع‌آوری کرد (مانند مورد)، اما از آنجایی که دیوید به مود کردن علاقه دارد، تصمیم گرفت خوشه شیک، تا حد امکان از نظر ظاهری و راحتی به راه حل های سریال نزدیک است. و، باید بگویم، دیوید موفق شد، زیرا پروژه او بسیار بیشتر از بسیاری از موارد سریال فکر شده است. راستی کیس پروژه خوشه رسپی 40 گره از پنل های اکریلیک ساخته شده که با لیزر به اندازه برش خورده و با دست چسبانده شده است.

ویژگی های اصلی پروژه خوشه 40 گره راسپی عبارتند از: ظاهری جذاب، اندازه نسبتا جمع و جور (مانند یک برج بزرگ)، دسترسی آسان به تمام اجزا و قابلیت تعویض آنها بدون نیاز به جدا کردن کیس، بست بدون پیچ قطعات کیس و بسیاری از قطعات، و همچنین نظم در سیم (و تعداد کمی از آنها در این پروژه وجود دارد). این پروژه شامل 40 کامپیوتر فشرده Raspberry Pi (40 هسته Broadcom BCM2835 در 700 مگاهرتز، 20 گیگابایت رم توزیع شده)، دو سوئیچ 24 پورت، یک منبع تغذیه ATX، پنج هارد دیسک 1 ترابایتی (با قابلیت ارتقا تا 12 قطعه) است. ، 440 گیگابایت حافظه فلش و همچنین روتر با قابلیت اتصال بی سیم.


کامپیوترهای Raspberry Pi در این پروژه در چهار قسمت بر روی پایه های اکریلیک سفارشی دسته بندی شده اند که ده عدد از آنها در این پروژه وجود دارد. به لطف این مانت (مانند سرورهای تیغه ای)، دسترسی راحت و جایگزینی آسان رایانه های جمع و جور فراهم شده است. هر تیغه با Raspberry Pi مبدل DC-DC فشرده خود را دارد که توسط یک منبع تغذیه مشترک ATX تغذیه می شود. خوشه توسط چهار فن 140 میلی متری خنک می شود که پشت آن فیلترها نصب شده است.

تعداد زیادی LED به پروژه خوشه Raspi 40-Node "Modding" اضافی اضافه می کند - بیش از سیصد عدد از آنها در پروژه وجود دارد (در مینی کامپیوترها، سوئیچ ها، روترها و فن ها)، در حالی که در حین کار آنها مطابق با آنها چشمک می زنند. با بار ابعاد این پروژه 25*39*55 سانتی متر و هزینه ساخت تقریبی 3000 دلار می باشد.

با ظاهر خارجی و داخلی و همچنین با ویژگی های پروژه خوشه 40 گره رسپی می توانید عکس ها و فیلم های پیوست شده را مشاهده کنید. اگر به این پروژه علاقه مند هستید، پس با جزئیات بیشتری با آن آشنا شوید و دیوید ساخت این هیولا را با جزئیات کامل توصیف کرده است، می توانید به یادداشت مربوطه در وب سایت شخصی وی مراجعه کنید.