← Ultimi articoli
💻 computer science

Predictive and Adaptive Resource Scheduling for Kubernetes–Ceph Hyperconverged Infrastructure on Proxmox VE

Questo articolo propone e valuta un modello di scheduling predittivo e adattivo che integra la previsione del carico di lavoro con decisioni di storage consapevole di Ceph per ridurre significativamente la contesa delle risorse e la latenza di I/O in un'infrastruttura iperconvergente Kubernetes–Ceph in esecuzione su Proxmox VE, ottenendo un bilanciamento del carico e prestazioni superiori rispetto allo scheduler predefinito di Kubernetes.

Autori originali: Doston Khasanov, Abdurauf Abdullaev, Halimjon Khujamatov, Temirbek Toshtemirov, Alisher Mamatov, Razvan Craciunescu

Pubblicato 2026-07-23
📖 8 min di lettura🧠 Approfondimento

Autori originali: Doston Khasanov, Abdurauf Abdullaev, Halimjon Khujamatov, Temirbek Toshtemirov, Alisher Mamatov, Razvan Craciunescu

Articolo originale sotto licenza CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo

Immaginate una città frenetica dove le strade, la rete elettrica e l'approvvigionamento idrico vivono tutti nello stesso quartiere. Nel mondo dell'informatica moderna, questo viene chiamato "infrastruttura iperconvergente". Invece di avere edifici separati per i server (calcolo), gli hard disk (archiviazione) e i cavi di rete, tutto è compresso strettamente sugli stessi macchinari fisici. È efficiente e fa risparmiare spazio, ma crea un complicato problema di traffico. Se un enorme camion per le consegne (un programma ad alto carico di dati) cerca di percorrere una strada mentre un cantiere (un compito di archiviazione) sta lavorando proprio accanto a lui, tutto si blocca.

Per gestire questa città digitale, usiamo un sistema chiamato Kubernetes. Pensate a Kubernetes come al controllore del traffico della città. Il suo compito è decidere quale edificio (server) riceverà il nuovo camion per le consegne (programma software, o "pod"). Tuttavia, il controllore del traffico standard è un po' vecchio stile. Guarda solo ciò che sta accadendo in questo momento. Vede che un edificio è vuoto e dice: "Ottimo, manda il camion lì!". Non si rende conto che la rete elettrica di quell'edificio sta già lottando a causa di un progetto edilizio nelle vicinanze, o che il camion sta per arrivare con un carico che causerà un ingorgo tra cinque minuti. Questo stile reattivo porta spesso alcuni edifici a essere schiacciati da troppo lavoro mentre altri rimangono inattivi, e le "strade" (archiviazione dati) si intasano, rallentando tutto.

Questo è l'enigma che un team di ricercatori provenienti da università dell'Uzbekistan e della Romania ha deciso di risolvere. Si sono chiesti: E se il nostro controllore del traffico potesse sbirciare nel futuro? E se potesse prevedere dove si creeranno gli ingorghi prima che accadano e spostare i camion di conseguenza? Nel loro articolo, hanno costruito un sistema più intelligente, "predittivo e adattivo", che non si limita a reagire al presente ma pianifica il futuro immediato. Combinando uno strumento di previsione semplice con un nuovo modo di posizionare il software, sono riusciti a regolarizzare il caos nella loro città di test, dimostrando che a volte, un po' di lungimiranza è meglio di un cervello super complesso.

Il Problema: Il Controllore del Traffico Reattivo

Nel mondo digitale, i ricercatori hanno allestito un banco di prova "iperconvergente" utilizzando tre strumenti principali: Proxmox VE (la base che sostiene i server), Ceph (il sistema di archiviazione che funge da enorme hard disk condiviso) e Kubernetes (il controllore del traffico).

In una configurazione standard, Kubernetes gioca sul sicuro. Aspetta che un server stia eseguendo un programma, controlla quanta CPU (potenza di calcolo) e memoria (memoria a breve termine) vengono utilizzate, e poi decide dove posizionare il programma successivo. È come un vigile urbano che vede solo le auto attualmente sulla strada. Se un server sembra libero, il vigile invia una nuova auto lì. Ma in un sistema iperconvergente, l'"auto" potrebbe dover accedere all' "archiviazione" (l'hard disk) su quello stesso server. Se il vigile non sa che l'archiviazione del server è già occupata, la nuova auto rimane bloccata, causando un ritardo.

I ricercatori hanno scoperto che questo approccio "reattivo" porta a tre grandi mal di testa:

  1. Contesa delle Risorse: Troppi programmi che combattono per la stessa CPU o archiviazione contemporaneamente.
  2. Squilibrio del Carico: Alcuni server stanno sudando copiosamente (eseguendo al 95% della capacità) mentre altri riposano (al 40% della capacità).
  3. Latenza di Archiviazione: Il tempo necessario per leggere o scrivere dati diventa più lento perché il sistema di archiviazione è sovraccarico.

La Soliazione: Una Palla di Cristallo e una Mappa Flessibile

Il team ha proposto un nuovo modello che agisce come un controllore del traffico con una palla di cristallo e una mappa flessibile. Il loro sistema ha quattro parti principali che lavorano insieme in un ciclo:

  1. La Palla di Cristallo (Previsione): Inveve di guardare solo il momento attuale, il sistema utilizza un trucco matematico chiamato "Media Mobile Esponenzialmente Pesata" (EWMA). Pensate a questo come a un previsore del tempo che guarda le piogge degli ultimi giorni per indovinare se avrete bisogno di un ombrello domani. Prevede quanta CPU e archiviazione richiederà un programma nei prossimi minuti. Hanno scoperto che un'impostazione specifica per questa "previsione" funzionava meglio, prevedendo le necessità di CPU con un errore dell'8,4%, la memoria con un errore del 5,1% e le necessità di archiviazione con un errore del 12,3%.
  2. La Mappa Flessibile (Scheduling Adattivo): Una volta che il sistema sa cosa sta arrivando, non scarica semplicemente il programma sul primo server vuoto. Calcola il "carico previsto" per ogni server. Chiede: "Se metto questo programma qui, il server sarà sovraccarico tra cinque minuti?". Se la risposta è sì, salta quel server e ne trova uno migliore.
  3. La Decisione Consapevole dell'Archiviazione: Questa è la formula segreta. Il sistema non guarda solo la CPU; controlla anche lo stato di salute dell'archiviazione Ceph (i daemon OSD o di archiviazione). Se un server ha un'unità di archiviazione impegnata, il sistema sa di dover inviare i programmi pesanti altrove, anche se la CPU sembra libera.
  4. L'Aggiustamento Dinamico: Se un programma improvvisamente richiede più potenza di quanto previsto, il sistema può regolare automaticamente i suoi limiti senza crash o riavvii, mantenendo fluido il flusso.

L'Esperimento: Un Test in Tre Città

Per vedere se questo funzionava, i ricercatori hanno costruito una vera, piccola città utilizzando tre computer fisici (nodi). Ogni nodo aveva un processore potente, 32 GB di RAM e due SSD NVMe velocissimi (hard disk super veloci). Hanno riempito questa città con diversi tipi di traffico:

  • Camion pesanti per la CPU: Programmi che si limitano a elaborare numeri (come stress-ng).
  • Camion pesanti per l'archiviazione: Programmi che leggono e scrivono enormi quantità di dati (come fio).
  • Traffico misto: Database e applicazioni web che fanno un po' di tutto (come YCSB).

Hanno eseguito due scenari affiancati per 30 minuti.

  • Scenario A (Il Vecchio Modo): Kubernetes standard senza previsione.
  • Scenario B (Il Nuovo Modo): Il loro modello predittivo e adattivo.

I Risultati: Strade Più Fluide, Consegne Più Veloci

I risultati sono stati una chiara vittoria per il nuovo modello, e i numeri raccontano una storia vivida di miglioramento.

1. Bilanciare il Carico:
Nel vecchio modo, il traffico era estremamente disomogeneo. Un server stava urlando sotto la pressione, operando al 95,64% della capacità, mentre un altro lavorava appena al 39,73%. Lo "squilibrio" (la differenza tra il server più impegnato e quello più tranquillo) era un caotico 53,29%.
Con il nuovo modello, il traffico si è regolarizzato perfettamente. Il server più impegnato è sceso al 67,41%, e quello meno attivo si è svegliato al 56,33%. Lo squilibrio è crollato a solo il 10,98%. Si tratta di una riduzione del caos del 79,4%. Il nuovo sistema ha mantenuto tutti i server in una stretta e felice fascia di utilizzo tra il 54% e il 68%, il che significa che nessuno era sovraccaricato e nessuno era annoiato.

2. Velocizzare l'Archiviazione:
Poiché il nuovo sistema sapeva dove l'archiviazione era impegnata, ha evitato di intasare le strade. Il tempo medio per applicare le modifiche all'archiviazione (latenza) è sceso da 1,11 ms a 1,00 ms. Anche se sembra una differenza minima, nel mondo dei dati, significa che il sistema è più costante e affidabile. Anche il ritardo nel "caso peggiore" (il 95° percentile) è migliorato da 1,15 ms a 1,00 ms, dimostando che il sistema gestiva molto meglio il traffico pesante.

3. Nessun Costo Extra:
I ricercatori hanno sottolineato con cura che non hanno dovuto ricostruire l'intera città o utilizzare cervelli IA costosi e complessi. Hanno utilizzato strumenti standard (Kubernetes e API di Prometheus) e un metodo di previsione semplice. Hanno dimostrato che non è necessario un algoritmo super complesso per ottenere ottimi risultati; basta connettere i punti tra calcolo e archiviazione.

La Conclusione: Integrazione sopra la Complessità

La parte più entusiasmante di questo articolo non è solo che ha funzionato, ma perché ha funzionato. I ricercatori sostengono che il problema non fosse che il vecchio controllore del traffico fosse troppo stupido; era che stava guardando il problema in una sola dimensione. Vedeva la CPU ma ignorava l'archiviazione.

Semplicemente aggiungendo un livello di "lungimiranza" e "consapevolezza dell'archiviazione" al sistema esistente, hanno ottenuto guadagni enormi. Hanno dimostrato che l'integrazione architettonica (far sì che il calcolo e l'archiviazione parlino tra loro) è più potente del semplice rendere più complicati gli algoritmi. Anche un semplice strumento di previsione leggero, se combinato con un posizionamento intelligente, può risolvere i colli di bottiglia più grandi in un sistema iperconvergente.

In definitiva, questo articolo suggerisce che il futuro di un'informatica efficiente non è necessariamente costruire cervelli più grandi e intelligenti, ma assicurarsi che le diverse parti del sistema si tengano per mano e guardino avanti insieme. Il controllore del traffico non ha bisogno di essere un genio; ha solo bisogno di sapere cosa sta arrivando dietro l'angolo.

Sommerso dagli articoli nel tuo campo?

Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.

Prova Digest →