توسعه لابراتور مجازی Oxide: شبیهسازی کامل رکهای در مقیاس دیتاسنتر — Virtual Oxide Labs: Emulating a Full Oxide Rack
خلاصه
شرکت Oxide ابزار جدیدی به نام Voxel را معرفی کرده است که امکان شبیهسازی کامل یک رک سختافزاری را روی یک مینیپیسی فراهم میکند. این ابزار به توسعهدهندگان اجازه میدهد بدون نیاز به سختافزار واقعی، کنترلپین و توپولوژیهای شبکه را تست کنند.
زمینه و پیشزمینه
توسعه و تست سختافزارهای در مقیاس رک (Rack-scale) چالشهای خاص خود را دارد. شرکت Oxide که به خاطر ساخت زیرساختهای ابری مدرن و رکهای اختصاصیاش شناخته میشود، با کمبود سختافزار برای اهداف آزمایشی مواجه است؛ چرا که رکهای تکمیلشده مستقیماً به دیتاسنتر مشتریان ارسال میشوند. تیم تضمین کیفیت این شرکت برای حل این مشکل نیاز به راهکاری داشت که بتواند توپولوژیهای مختلف شبکه، کنترلپین و قطعات سختافزاری را بدون نیاز به ساخت نسخههای آزمایشی اختصاصی شبیهسازی کند.
پیش از این، تیم از نسخههای کوچکتری به نام «رکلت» (Racklettes) استفاده میکرد که شامل چهار اسلد و دو سوئیچ بودند، اما مقرونبهصرفه نبودند. حالا با ابزار جدیدی به نام Voxel (مخفف Virtual OXidE Labs)، این فرآیند به شکل نرمافزاری روی سختافزارهای معمولی قابل اجراست.
جزئیات فنی Voxel
ابزار Voxel یک پشته شبیهسازی نرمافزاری کامل است که روی سیستمعامل illumos و با زبان Rust پیادهسازی شده است. از مهمترین اجزای این پشته میتوان به موارد زیر اشاره کرد:
- مجازیسازی اسلدها: با استفاده از پروژهای به نام Propolis انجام میشود که هر اسلد را در یک ماشین مجازی مستقل ایزوله میکند.
- شبکهسازی: استفاده از توزیع Debian و نرمافزار مسیریابی FRR برای پشتیبانی از پروتکل BGP.
- سوئیچهای نرمافزاری: بهرهگیری از SoftNPU که یک سوئیچ مبتنی بر زبان P4 است.
- شبیهسازی میکروکنترلرها: شبیهسازی Service Processor (SP) و Root of Trust (RoT) برای مدیریت سختافزار.
نکته جالب اینجاست که یک توسعهدهنده میتواند کل این مجموعه را روی یک مینیپیسی خانگی (مثلاً با پردازنده ۳۲ هستهای AMD Ryzen و ۹۶ گیگابایت رم) اجرا کند. تنها در عرض چند دقیقه، یک رک کامل با چندین اسلد مجازی، سوئیچها و زیرساختهای مربوطه راهاندازی میشود.
نحوه ساخت تصویر و راهاندازی
طبق دستورالعمل اصلی Oxide، لابراتورها باید از نرمافزار اصلی و بدون هیچگونه هک یا تغییر خاصی استفاده کنند. فرآیند کار با Voxel شامل مراحل زیر است:
- ایجاد یک اسلد مجازی و نصب کنترلپین (Omicron) روی آن.
- گرفتن snapshot پیش از پیکربندی نهایی به کمک ZFS.
- راهاندازی رک با استفاده از تصاویر آماده کنترلپین، ایمیجهای FRR برای شبکه و عامل voxel-init.
این رویکرد به تیم اجازه میدهد تا تغییرات نرمافزاری، آپدیتها و سناریوهای مختلف را به طور خودکار در چرخه CI تست کنند.
چرا برای مهندسان اهمیت دارد؟
برای مهندسان نرمافزار و زیرساخت، Voxel نمادی از قدرت شبیهسازی سیستمهای توزیعشده پیچیده در مقیاس کوچک است. در بحثهای انجمن Hacker News، بسیاری از توسعهدهندگان ضمن ابراز علاقه به سختافزارهای Oxide، به این نکته اشاره کردند که داشتن چنین ابزارهای شبیهسازی بومی چقدر در یافتن باگها، تست ارتقاها و کاهش هزینههای توسعه مؤثر است. اینابزار نشان میدهد که چگونه میتوان پیچیدگی یک دیتاسنتر را درون یک دسکتاپ محلی پیادهسازی کرد.
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل