Share via


Personalizzare il writeback dei file in Azure Cache HPC

Cache HPC gli utenti possono richiedere che la cache scriva singoli file specifici nell'archiviazione back-end su richiesta usando l'utilità flush_file.py. Questa utilità è un pacchetto software scaricato separatamente che viene installato e usato nei computer client Linux.

Questa funzionalità è progettata per situazioni in cui si desidera rendere disponibili le modifiche nei file memorizzati nella cache il prima possibile ai sistemi che non montano la cache.

Ad esempio, è possibile usare Azure Cache HPC per ridimensionare i processi di elaborazione nel cloud, ma archiviare il set di dati in modo permanente in un data center locale. Se le attività di calcolo vengono eseguite nel data center che dipendono dalle modifiche create con Azure Cache HPC, è possibile usare questa utilità per eseguire il "push" dell'output o delle modifiche generate da un'attività cloud nell'archiviazione NAS locale. In questo modo i nuovi file vengono usati quasi immediatamente dalle risorse di calcolo locali.

Scegliere tra writeback personalizzato e scaricamento

È possibile forzare il rollback dei dati con l'opzione "scaricamento della destinazione di archiviazione" incorporata in Azure Cache HPC, ma questo approccio potrebbe non essere adatto a tutte le situazioni.

  • La scrittura di tutti i file modificati nel sistema di archiviazione può richiedere alcuni minuti o persino ore, a seconda della quantità di dati e della velocità del collegamento di rete al sistema locale. Inoltre, non puoi scegliere solo i file con cui hai finito di scrivere; i file che sono ancora in corso di modifica verranno inclusi in questo calcolo.

  • La cache potrebbe bloccare la gestione di alcune richieste dalla destinazione di archiviazione durante il processo di scaricamento. Questo può ritardare l'elaborazione se sono presenti altri client di calcolo che usano file che si trovano nella stessa destinazione di archiviazione.

  • L'attivazione di questa azione richiede l'accesso collaboratore ad Azure Resource Manager, che gli utenti finali potrebbero non avere.

Ad esempio, è possibile avere più processi di calcolo paralleli (ma non sovrapposti) che usano i dati che risiedono nella stessa destinazione di archiviazione Cache HPC. Al termine di un processo, si vuole scrivere immediatamente l'output del processo dalla cache all'archiviazione a lungo termine sul back-end.

Si dispone di tre opzioni:

  • Attendere che i file memorizzati nella cache vengano riscritto automaticamente dalla cache, ma i file potrebbero trovarsi nella cache per più di un'ora prima che vengano riscritto completamente. La tempistica dipende dal ritardo di writeback del modello di utilizzo della cache, insieme ad altri fattori, ad esempio le prestazioni del collegamento di rete e le dimensioni dei file. (Lettura) Informazioni sui modelli di utilizzo della cache per altre informazioni sul ritardo di writeback.

  • Scarica immediatamente i file memorizzati nella cache per l'intera destinazione di archiviazione, ma ciò interrompe altri processi di calcolo che usano anche i dati di questa destinazione di archiviazione.

  • Usare questa utilità di writeback personalizzata per inviare una richiesta NFS speciale alla cache per scrivere solo i file specifici desiderati. Questo scenario non interrompe l'accesso per altri client e può essere attivato in qualsiasi momento nell'attività di elaborazione.

Informazioni sull'utilità writeback

L'utilità writeback include uno script che è possibile usare per specificare singoli file che verranno scritti dalla cache nel sistema di archiviazione a lungo termine.

Lo script accetta un flusso di input dei file da scrivere, oltre al percorso dello spazio dei nomi della cache per l'esportazione della destinazione di archiviazione e un indirizzo IP di montaggio Cache HPC.

Lo script usa una chiamata "commit" NFSv3 con argomenti speciali abilitati. Il client linux nfs-common non può passare questi argomenti in modo appropriato, quindi l'utilità flush_file.py usa un emulatore client NFS in una libreria Python per comunicare con il servizio NFS Cache HPC. La libreria include tutti gli elementi necessari, che ignora eventuali limitazioni che potrebbero esistere nel client NFS basato su kernel Linux del client di calcolo.

Per usare questa funzionalità, è necessario eseguire le operazioni seguenti:

Altre informazioni sull'installazione e l'uso dello script flush_file.py nel repository GitHub.