Η πρόκληση της δοκιμής σε κλίμακα rack

Η ανάπτυξη hardware σε επίπεδο rack παρουσιάζει ένα θεμελιώδες πρόβλημα: η διαθεσιμότητα του εξοπλισμού είναι περιορισμένη, καθώς κάθε ολοκληρωμένο rack προορίζεται άμεσα για τα data centers των πελατών. Η ομάδα της Oxide χρειαζόταν μια λύση που να επιτρέπει τον έλεγχο του control plane και των δικτυακών τοπολογιών χωρίς να απαιτείται η ύπαρξη φυσικού hardware ή η δημιουργία ειδικών «test builds» που θα αλλοίωναν τη διαδικασία του CI/CD.

Αρχιτεκτονική του Voxel: Πιστότητα και εικονισμός

Το Voxel (Virtual OXidE Labs) αποτελεί τον διάδοχο προγενέστερων προσπαθειών εικονισμού. Βασίζεται σε μια στοίβα λογισμικού που τρέχει σε illumos, χρησιμοποιώντας Rust για την υλοποίηση των εξομοιωτών. Τα βασικά στοιχεία της αρχιτεκτονικής περιλαμβάνουν:

  • Propolis: Για τον εικονισμό των sleds (virtual machines).
  • SoftNPU: Ένα software-based P4 switch για την εξομοίωση της δικτυακής υποδομής.
  • TUF (The Update Framework): Για τη διαχείριση και διανομή των artifacts του control plane.

Εξομοίωση microcontrollers με το sp-emu

Ένα από τα πιο ενδιαφέροντα τεχνικά επιτεύγματα είναι η εξομοίωση των Service Processors (SP) και του Root of Trust (RoT). Αντί για απλά stubs, η Oxide δημιούργησε το sp-emu, το οποίο εκτελεί πραγματικό firmware (Hubris) σε εικονικούς Cortex-M πυρήνες. Η πρόκληση του χρονισμού επιλύθηκε με τη μετατροπή του χρόνου σε «κύκλους εντολών», επιτρέποντας στον εξομοιωτή να διαχειρίζεται interrupts και SysTick exceptions με ακρίβεια, παρά την έλλειψη πραγματικού hardware clock.

Εμπειρία χρήστη και διαλειτουργικότητα

Το Voxel δεν περιορίζεται μόνο στην εξομοίωση, αλλά παρέχει εργαλεία για τη διαχείριση της συνδεσιμότητας. Μέσω της εντολής voxel, ο μηχανικός μπορεί να συνδεθεί απευθείας σε οποιοδήποτε εικονικό sled ή switch, διευκολύνοντας τον εντοπισμό σφαλμάτων (debugging) σε ένα περιβάλλον που προσομοιάζει πλήρως την πραγματική λειτουργία ενός rack της Oxide.