Qual è la differenza tra virtualizzazione a livello di blocco e virtualizzazione a livello di file?

0

Nel cloud computing questi due termini mi confondono, virtualizzazione a livello di blocco e virtualizzazione a livello di file.

A mia conoscenza, nei sistemi di virtualizzazione a livello di file non vengono allocate le partizioni e solo le API dei sistemi di storage per recuperare o caricare un file.

La virtualizzazione a livello di blocco sta allocando uno spazio come partizione per i sistemi di elaborazione, che i sistemi di calcolo sono responsabili per l'impostazione dei file system, i processi di scrittura e lettura.

è corretto e può avere un significato diverso?

N.B: Non sono sicuro che l'ingegneria del software sia il posto giusto per chiederlo, se non lo dico e lo rimuoverò.

    
posta Shady Atef 17.01.2017 - 06:46
fonte

1 risposta

1

Hai sostanzialmente corretto.

La virtualizzazione a livello di file è fondamentalmente solo un server che supporta la condivisione di file. In genere tenterà di supportare un numero di protocolli diversi, come SMB (noto anche come CIFS - originato su Windows), NFS (originato su Solaris), AFS (Appletalk File Protocol), possibilmente RFS, e probabilmente alcuni altri.

In genere, tali interfacce accedono a un pool comune di file, in modo che un client possa accedere a un file tramite SMB e un altro lo stesso file tramite NFS e così via.

La virtualizzazione a livello di blocco fa la virtualizzazione a livello dei comandi SCSI / SATA. Un dispositivo di memorizzazione fisico (ad es. Un disco rigido) ha un certo numero di blocchi e un insieme di comandi per leggere e scrivere blocchi di dati. La virtualizzazione a livello di blocco significa imitare gli stessi comandi, quindi un driver di periferica può trasmettere gli stessi comandi e ottenere gli stessi risultati, ma in questo caso, invece di utilizzare una connessione SCSI dedicata, i comandi e i dati potrebbero essere trasmessi su FibreChannel, o forse anche Ethernet.

Molto semplificato, i tre hanno un aspetto simile a questo:

Naturalmente, quelli non sono l'unico modo in cui le cose possono essere fatte. Ad esempio, nello stack di virtualizzazione dei blocchi, è possibile avere un iniziatore iSCSI, nel qual caso in genere si dispone di Ethernet al posto di quanto mostrato sopra come FibreChannel.

La differenza importante, tuttavia, è abbastanza semplice: con la virtualizzazione a livello di file, il server / NAS tipicamente cerca di fornire un numero di protocolli di condivisione file, nella speranza che ogni cliente a cui tieni possa capirne almeno uno. Allo stesso modo, la maggior parte dei client tenta di supportare molti protocolli, nella speranza che sia possibile connettersi a tutti i server a cui tieni.

Nel caso della virtualizzazione a livello di blocco, c'è (almeno in teoria) solo un un insieme di comandi che essenzialmente tutti i sistemi operativi sanno come usare, quindi il server supporta solo quel set. Il problema è che i comandi SCSI sono in circolazione da molte generazioni e molti sottoinsiemi sono stati definiti. Quindi, anche se in teoria si tratta solo di un set di comandi, è possibile eseguire molte varianti.

Allo stesso tempo, hai davvero bisogno solo di un numero abbastanza piccolo di comandi per archiviare e recuperare i file su un dispositivo a blocchi (virtuale o meno). Molti dei comandi più avanzati riguardano operazioni come la migrazione dei dati in modo trasparente, l'esecuzione di backup con il minimo intervento da parte del cliente e così via. Aggiungono molte funzionalità utili, ma non sono strettamente necessarie per il semplice compito di consentire ai client di archiviare i file su un array di dischi.

    
risposta data 17.01.2017 - 07:29
fonte

Leggi altre domande sui tag