Mini ITX Cluster Turing Pi 2 با 32 گیگابایت رم

Mini ITX Cluster Turing Pi 2 با 32 گیگابایت رم

درود بر جامعه حبر! من اخیراً در مورد اولین نسخه کلاستر برد خود نوشتم [V1]. و امروز می خواهم به شما بگویم که چگونه روی نسخه کار کردیم Turing V2 با 32 گیگابایت حافظه دسترسی تصادفی.

ما مشتاق سرورهای کوچکی هستیم که هم برای توسعه محلی و هم برای میزبانی محلی مورد استفاده قرار می گیرند. برخلاف رایانه‌های رومیزی یا لپ‌تاپ‌ها، سرورهای ما به گونه‌ای طراحی شده‌اند که 24/7 کار می‌کنند؛ آنها می‌توانند به سرعت به یک فدراسیون متصل شوند، برای مثال، 4 پردازنده در یک کلاستر وجود دارد و بعد از 5 دقیقه، 16 پردازنده (بدون تجهیزات شبکه اضافی) وجود دارد. و همه اینها در یک فرم فشرده، بی صدا و کارآمد انرژی.

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

در زیر نحوه گذر از V1 به V2 و چگونگی کنار آمدن با فرم فاکتور جدید Raspberry Pi CM4 آورده شده است.

بنابراین، پس از ایجاد یک خوشه با 7 گره، سؤالات این است: بعد چه؟ چگونه ارزش یک محصول را افزایش دهیم؟ 8، 10 یا 16 گره؟ کدام سازنده ماژول؟ با فکر کردن در مورد محصول به عنوان یک کل، متوجه شدیم که نکته اصلی در اینجا تعداد گره ها یا سازنده نیست، بلکه ماهیت خوشه ها به عنوان یک بلوک ساختمانی است. ما باید به دنبال حداقل بلوک سازنده باشیم

اول، خوشه ای خواهد بود و در عین حال قابلیت اتصال دیسک و کارت های توسعه را خواهد داشت. واحد خوشه باید یک گره پایه خودکفا با قابلیت گسترش گسترده باشد.

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

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

ما با تعیین تعداد گره ها شروع کردیم.

تعداد گره ها

با استفاده از قضاوت های منطقی ساده، متوجه شدیم که 4 گره بهترین گزینه برای یک بلوک خوشه حداقلی هستند. 1 گره یک خوشه نیست، 2 گره کافی نیست (1 استاد 1 کارگر، امکان مقیاس بندی در یک بلوک وجود ندارد، به خصوص برای گزینه های ناهمگن)، 3 گره خوب به نظر می رسد، اما مضربی از توان های 2 نیست و مقیاس بندی در داخل یک بلوک محدود است، 6 گره تقریباً قیمتی مانند 7 گره دارند (از تجربه ما این هزینه بالاست)، 8 عدد زیاد است، در فرم فاکتور mini ITX مناسب نیست و یک راه حل حتی گران تر برای PoC.

ما چهار گره در هر بلوک را به عنوان میانگین طلایی در نظر می گیریم:

  • مواد کمتر در هر تخته خوشه، بنابراین تولید ارزان تر
  • تقسیم بر 4، تنها 4 بلوک، 16 پردازنده فیزیکی می دهد
  • طرح پایدار 1 استاد و 3 کارگر
  • تغییرات ناهمگن بیشتر، ماژول های محاسبات عمومی + شتاب داده شده
  • فرم فاکتور mini ITX با درایوهای SSD و کارت های توسعه

ماژول های محاسباتی

نسخه دوم مبتنی بر CM4 است، ما فکر می کردیم که در فرم فاکتور SODIMM منتشر شود. ولی…
ما تصمیم گرفتیم یک تخته SODIMM بسازیم و CM4 را مستقیماً در ماژول ها مونتاژ کنیم تا کاربران به CM4 فکر نکنند.

Mini ITX Cluster Turing Pi 2 با 32 گیگابایت رم
ماژول محاسبه Turing Pi از Raspberry Pi CM4 پشتیبانی می کند

به طور کلی، در جستجوی ماژول ها، یک بازار کامل از ماژول های محاسباتی باز شد، از ماژول های کوچک با 128 مگابایت رم تا 8 گیگابایت رم. در جلو ماژول هایی با رم 16 گیگابایتی یا بیشتر قرار دارند. برای برنامه‌های میزبانی لبه مبتنی بر فناوری‌های بومی ابری، 1 گیگابایت رم دیگر کافی نیست و ظهور اخیر ماژول‌هایی با 2، 4 و حتی 8 گیگابایت رم فضای خوبی را برای رشد فراهم می‌کند. ما حتی گزینه‌هایی با ماژول‌های FPGA را برای برنامه‌های یادگیری ماشین در نظر گرفتیم، اما پشتیبانی از آنها به تعویق افتاد زیرا اکوسیستم نرم‌افزاری توسعه نیافته بود. هنگام مطالعه بازار ماژول ها، به ایده ایجاد یک رابط جهانی برای ماژول ها رسیدیم و در V2 شروع به یکسان سازی رابط ماژول های محاسباتی می کنیم. این به دارندگان نسخه V2 اجازه می دهد تا ماژول های تولید کنندگان دیگر را به هم متصل کرده و آنها را برای کارهای خاص ترکیب کنند.

V2 از کل ماژول محاسباتی Raspberry Pi 4 (CM4) از جمله نسخه‌های Lite و ماژول‌هایی با 8 گیگابایت رم پشتیبانی می‌کند.

Mini ITX Cluster Turing Pi 2 با 32 گیگابایت رم

حاشیه

پس از تعیین فروشنده ماژول ها و تعداد گره ها، به گذرگاه PCI که تجهیزات جانبی روی آن قرار دارند، نزدیک شدیم. گذرگاه PCI یک استاندارد برای دستگاه های جانبی است و تقریباً در همه ماژول های محاسباتی یافت می شود. ما چندین گره داریم و در حالت ایده آل، هر گره می تواند دستگاه های PCI را در حالت درخواست رقابتی به اشتراک بگذارد. به عنوان مثال، اگر این دیسکی است که به یک گذرگاه متصل است، پس برای همه گره ها در دسترس است. ما شروع به جستجوی سوئیچ های PCI با پشتیبانی چند هاست کردیم و متوجه شدیم که هیچ یک از آنها نیازهای ما را برآورده نمی کند. همه این راه‌حل‌ها عمدتاً به 1 میزبان یا چند میزبان محدود بودند، اما بدون حالت درخواست‌های همزمان به نقاط پایانی. مشکل دوم هزینه بالای 50 دلار یا بیشتر برای هر تراشه است. در V2، ما تصمیم گرفتیم آزمایش‌های سوئیچ‌های PCI را به تعویق بیندازیم (بعداً با توسعه به آنها بازخواهیم گشت) و مسیر تعیین نقش برای هر گره را در پیش گرفتیم: دو گره اول پورت mini PCI را در هر گره در معرض دید قرار دادند، گره سوم در معرض دید قرار گرفت. کنترلر SATA 2 پورت 6 گیگابیت بر ثانیه. برای دسترسی به دیسک ها از گره های دیگر، می توانید از یک سیستم فایل شبکه در داخل خوشه استفاده کنید. چرا که نه؟

یواشکی

ما تصمیم گرفتیم طرح هایی از چگونگی تکامل بلوک خوشه حداقل در طول زمان از طریق بحث و تأمل به اشتراک بگذاریم.

Mini ITX Cluster Turing Pi 2 با 32 گیگابایت رمMini ITX Cluster Turing Pi 2 با 32 گیگابایت رمMini ITX Cluster Turing Pi 2 با 32 گیگابایت رم

در نتیجه، ما به یک واحد خوشه ای با 4 گره 260 پین، 2 پورت mini PCIe (Gen 2)، 2 پورت SATA (Gen 3) رسیدیم. این برد دارای یک سوئیچ مدیریت لایه 2 با پشتیبانی از VLAN است. گره اول دارای یک پورت mini PCIe است که می توانید یک کارت شبکه را در آن نصب کنید و یک پورت اترنت دیگر یا یک مودم 5G دریافت کنید و اولین گره را به یک روتر برای شبکه روی یک کلاستر و پورت های اترنت تبدیل کنید.

Mini ITX Cluster Turing Pi 2 با 32 گیگابایت رم

گذرگاه کلاستر عملکردهای بیشتری دارد، از جمله قابلیت فلش کردن مستقیم ماژول ها از طریق تمام اسلات ها و البته کانکتورهای FAN در هر گره با کنترل سرعت.

کاربرد

زیرساخت لبه برای برنامه‌ها و سرویس‌های خود میزبان

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

ایستگاه کاری ARM

با حداکثر 32 گیگابایت رم در هر کلاستر، اولین گره را می توان برای نسخه دسکتاپ سیستم عامل (به عنوان مثال، اوبونتو دسکتاپ 20.04 LTS) و از 3 گره باقی مانده برای کامپایل، آزمایش و اشکال زدایی وظایف، و توسعه ابر بومی استفاده کرد. راه حل هایی برای خوشه های ARM به عنوان یک گره برای CI/CD در زیرساخت های جانبی ARM در تولید.

خوشه Turing V2 با ماژول‌های CM4 تقریباً از نظر معماری (تفاوت در نسخه‌های کوچک ARMv8 است) با خوشه مبتنی بر نمونه‌های AWS Graviton یکسان است. پردازنده ماژول CM4 از معماری ARMv8 استفاده می کند؛ شما می توانید تصاویر و برنامه های کاربردی را برای نمونه های AWS Graviton 1 و 2 جمع آوری کنید، که بسیار ارزان تر از نمونه های x86 هستند.

منبع: www.habr.com