La forza innovativa del paradigma ‘software-defined everything’ ha contagiato in modo via via più profondo il mondo IT: nei server, ha portato alle macchine virtuali (VM); negli apparati di storage e di rete, al ‘software-defined storage’ (SDS) e al ‘software-defined networking’ (SDN). Virtualizzando l’infrastruttura si è arrivati al ‘software-defined data center’ (SDDC): ma ora è la volta della memoria.
Il modello della memoria ‘software-defined’ (SDM), assieme alle memorie persistenti (PM), si prepara infatti a ridisegnare l’architettura di storage dei data center di prossima generazione. Un cambiamento del resto dettato dall’esigenza di tenere il passo con i nuovi livelli di prestazioni, che si rendono necessari, ad esempio, per supportare l’evoluzione delle tecnologie di calcolo ad alte prestazioni (HPC – high performance computing), e le applicazioni che cercano di estrarre valore dai big data.
Va però anche aggiunto che, a livello di utilizzo, molte di queste nuove tecnologie di memoria non sono implementabili attraverso un approccio ‘plug-and-play’, ma richiedono cambiamenti a livello software. Dunque, prima di fare il grande salto verso queste tecnologie emergenti, è bene comprendere meglio in cosa consistono e come usarle nel migliore dei modi.
Memoria persistente: cos’è e cosa può fare
Occorre subito chiarire che quando si parla di memoria persistente, in questo caso non ci si riferisce a pool di dischi o drive a stato solido (SSD). Qui si intende invece una tecnologia definibile con il termine generale NVRAM (non-volatile random access memory), quindi una sorta di memoria RAM non volatile in formato DIMM (dual in-line memory module) in cui, anche togliendo l’alimentazione elettrica, i dati presenti non vanno perduti. Più in particolare qui si sta parlando di poter arricchire, e anche di rendere più complessa, la memoria di sistema, attraverso l’introduzione di moduli NVDIMM (non-volatile dual in-line memory module), già disponibili sul mercato, in grado di combinare la velocità della memoria con gli attributi di persistenza dell’architettura di storage del data center.
Esistono tre tipologie di moduli NVDIMM:
- Moduli NVDIMM-N. Integrano DRAM mappata in memoria con flash non mappata
- Moduli NVDIMM-F. Sono costituiti da memoria flash memory-mapped
- Moduli NVDIMM-P. Combinano DRAM e flash, entrambe memory-mapped
Nell’attuale contesto di evoluzione tecnologica, in cui le CPU multi-core aumentano la capacità di elaborazione, e dove i sistemi HPC diventano via via più potenti, le tecnologie di storage possono trasformarsi nel collo di bottiglia del data center, e qui la memoria persistente (PM) punta a colmare il divario. Nella gerarchia di memoria (registri, livelli di cache, DRAM, HDD), essa si pone tra la DRAM (dynamic RAM) e lo storage a dischi: Anche se i moduli NVDIMM risultano comunque più lenti rispetto alla DRAM, con essi, i dati sul bus di memoria viaggiano a velocità molto maggiori, rispetto ad avere una soluzione in cui la memoria flash è montata su una scheda PCIe (peripheral component interconnect express).
In aggiunta, la memoria persistente non perde i dati, ed ha una capacità maggiore della DRAM, che nel caso dei moduli NVDIMM-F può arrivare a centinaia di gigabyte per DIMM, abilitando decine di terabyte per server. Di conseguenza diventa possibile costruire un sistema di storage dotato al contempo di alte prestazioni e ampia capacità. Tuttavia, per sfruttare i vantaggi delle tecnologie di memoria persistente, che non avranno larga diffusione prevedibilmente fino al 2019, occorre assicurarsi che il software sia compatibile; sia Linux, sia Windows Server 2016 supportano la tecnologia, ma va anche considerato il costo delle NVDIMM, che dovrà scendere, prima di rendere i moduli appetibili agli occhi delle imprese.
SDM: l’infrastruttura ‘software-defined’ si estende alla memoria
Avendo a disposizione una memoria persistente, si può anche pensare di integrarla con il resto dello storage del data center. In sostanza, il modello ‘software defined memory’ (SDM) punta a gestire come un servizio tutta la memoria e lo storage, affidandosi a strumenti software in grado di trasferire i dati tra i diversi dispositivi fisici. Grazie al supporto del software, SDM consente di aggiungere nuovi livelli di memoria alla DRAM, in modo da permettere agli utenti di dividere in maniera flessibile la memoria totale, e di presentare al sistema host un insieme di servizi, disponibili nella rete di cluster.
Al momento, quello SDM è comunque ancora un paradigma allo stato nascente, e il software in corso di sviluppo per esso è associato all’hardware di fornitori come Intel e Diablo Technologies. Tuttavia, con l’evolversi della tecnologia, in futuro la maggior parte del codice dovrebbe poter girare su una varietà di hardware.
L’estensione del modello SDM a tutte le strutture di memoria ha anche il potenziale di stimolare alcuni importanti progetti di evoluzione architetturale delle memorie stesse: tra questi c’è, ad esempio, quello noto come Hybrid Memory Cube (HMC), promosso da un consorzio (HMCC) di otto vendor. HMC è un’innovazione dell’architettura di memoria DRAM che combina diversi die di memoria ad alte prestazioni, impilandoli l’uno sull’altro e interconnettendoli tramite tecnologia TSV (through-silicon via). Tali array 3D di memoria possono essere installati vicino al processore, e ciò permette a un singolo HMC di fornire oltre 15 volte le prestazioni di un modulo DDR3, consumando molta meno energia e riducendo l’ingombro di spazio rispetto alle tecnologie di memoria esistenti. La tecnologia HMC rappresenta una soluzione per aumentare le performance del sistema di rete, e potrà rispondere ai requisiti di crescita di prestazioni dei sistemi exascale, che rappresentano le macchine HPC di prossima generazione.