Le differenze tra dati a "livello di blocco" e a "livello di file" | ZeroUno

Le differenze tra dati a “livello di blocco” e a “livello di file”

pittogramma Zerouno

Storage

Le differenze tra dati a “livello di blocco” e a “livello di file”

13 Apr 2012

di redazione TechTarget

Per i professionisti dello storage si tratta di una domanda da principianti. Ma la letteratura di settore in realtà parla sempre di confronto tra dati a “livello di blocco” e “a livello di file”, senza però mai spiegare chiaramente quali siano le differenze principali e l’importanza degli uni e degli altri. Cerchiamo di chiarire questi aspetti in parole semplici in modo tale che, una volta per tutte, anche un non addetto ai lavori possa capire.

Qualsiasi coppia di dispositivi che comunichino tra loro su una rete devono “accordarsi” sulle modalità di comunicazione. Tali accordi di comunicazione sono implementati dai diversi protocolli standard.

I dispositivi e i sottosistemi di storage dipendono di solito dai sistemi di archiviazione che vi registrano e vi leggono i dati. Si tratta generalmente di sistemi di file o database.

Esempi di sistemi di archiviazione sono il sistema di file NTFS in Windows 2000 e NT, il sistema di file FAT in DOS, le numerose varianti dello Unix File system (UFS), il sistema Veritas File system (VxFS), i database Oracle e Sybase.

I sistemi di archiviazione fanno due cose: innanzitutto, rappresentano i dati per gli utenti finali e le applicazioni.

Tali dati sono rappresentati in directory o cartelle organizzate a loro volta in una struttura gerarchica. Inoltre, i sistemi di archiviazione organizzano la collocazione dei file nello storage. Devono distribuire i dati nel contenitore di storage per garantire prestazioni ragionevoli nell’accesso a tutti i dati. Ciò viene fatto indicando gli indirizzi dei blocchi di storage in cui i dati devono essere collocati. Si tratta di quella che viene definita funzione di struttura dati. Oggi in realtà si tratta sempre di indirizzi di blocco logico poiché i drive mantengono le loro tabelle interne di traduzione dei blocchi.

Quindi, il sistema di archiviazione invia agli storage slave il comando di scrivere i dati su alcuni blocchi e recuperarli da altri. Questo viene comunemente chiamato storage a livello di blocco. Si tratta delle funzioni di storing, basate su relazioni master/slave, non client/server.

I sistemi possono anche richiedere i dati utilizzando le interfacce di rappresentazione a livello di utente (file level storage). Ciò viene fatto dal client utilizzando il filename dei dati, l’ubicazione della loro directory, l’URL, o altro ancora.

Si tratta di un modello di comunicazione client/server. In questo caso il server riceve la richiesta di archiviazione e poi cerca i percorsi di storage dei dati in cui i dati vengono archiviati e recuperati con funzioni di storing (storage a livello di blocco). Il server non invia il file al client sotto forma di blocchi, ma di byte del file. I protocolli a livello di file non dispongono delle funzionalità di comprensione dei comandi a blocchi. Allo stesso modo, i protocolli a blocchi non possono trasmettere le richieste di accesso ai file e le risposte.

Tra le cose che possono disorientare vi è il fatto che l’archiviazione e lo storing sono strettamente integrati. Nessuno dei due funziona in assenza dell’altro. Ma bisogna capire come il traffico di storing e di archiviazione vengono trasferiti su una rete; entrambi sono indipendenti dal cablaggio (networking o bus) che supporta le comunicazioni. In altre parole, il traffico di storing e di archiviazione possono coesistere sulla stessa rete utilizzando diversi protocolli per le applicazioni di storage.

redazione TechTarget

Articolo 1 di 4