Reiser5 annuncia il supporto per Burst Buffers (Data Tiering)

Eduard Shishkin annunciato nuove opportunità sviluppate nell’ambito del progetto Reiser5. Reiser5 Rappresenta una versione significativamente riprogettata del file system ReiserFS, in cui il supporto per volumi logici scalabili paralleli è implementato a livello di file system, anziché a livello di dispositivo a blocchi, consentendo di distribuire in modo efficiente i dati su un volume logico.

Tra le innovazioni sviluppate di recente, la fornitura di
la possibilità per l'utente di aggiungere un piccolo ad alte prestazioni
dispositivo a blocchi (ad esempio NVRAM) chiamato disco proxyA
volume logico relativamente grande composto da lento
unità di bilancio. Questo creerà l'impressione che tutto
il volume è composto dallo stesso costoso ad alte prestazioni
dispositivi, come un "disco proxy".

Il metodo implementato si basava sulla semplice osservazione che in pratica il disco non viene scritto costantemente e la curva di carico I/O ha la forma di picchi. Nell'intervallo tra tali “picchi” è sempre possibile reimpostare i dati dal disco proxy, riscrivendo tutti i dati (o solo una parte) in background nella memoria principale “lenta”. Pertanto, il disco proxy è sempre pronto a ricevere una nuova porzione di dati.

Questa tecnica (nota come Burst Buffers) ha avuto origine originariamente in
aree del calcolo ad alte prestazioni (HPC). Ma si è rivelato essere richiesto anche per le applicazioni ordinarie, soprattutto per quelle che pongono requisiti elevati in termini di integrità dei dati (di solito diversi tipi di database). Tali applicazioni eseguono qualsiasi modifica in qualsiasi file in modo atomico, vale a dire:

  • per prima cosa viene creato un nuovo file che contiene i dati modificati;
  • questo nuovo file viene quindi scritto su disco utilizzando fsync(2);
  • dopodiché il nuovo file viene rinominato in quello vecchio, cosa che avviene automaticamente
    Libera i blocchi occupati dai vecchi dati.

    Tutti questi passaggi, in un modo o nell'altro, causano significativi
    degrado delle prestazioni su qualsiasi file system. Situazione
    migliora se il nuovo file viene prima scritto su quello allocato
    dispositivo ad alte prestazioni, che è esattamente ciò che accade in
    file system con supporto Burst Buffers.

    In Reiser5 è previsto l'invio facoltativo non solo
    nuovi blocchi logici del file, ma anche tutte le pagine sporche in generale. Inoltre,
    non solo pagine con dati, ma anche con metadati
    sono scritti nei passaggi (2) e (3).

    Il supporto per i dischi proxy viene effettuato nel contesto del normale lavoro con
    Volumi logici Reiser5, annunciato all'inizio dell'anno. Questo è,
    il sistema aggregato "disco proxy - memoria principale" è normale
    volume logico con l'unica differenza che il disco proxy ha la priorità
    tra gli altri componenti del volume nella politica di allocazione degli indirizzi del disco.

    L'aggiunta di un disco proxy a un volume logico non è accompagnata da alcuna operazione
    ribilanciamento dei dati e la sua rimozione avviene esattamente allo stesso modo di
    rimuovendo un disco normale. Tutte le operazioni del disco proxy sono atomiche.
    La gestione degli errori e l'implementazione del sistema (anche dopo un arresto anomalo del sistema) avvengono esattamente come se il disco proxy fosse un componente normale
    volume logico.

    Dopo aver aggiunto un disco proxy, la capacità totale del volume logico
    aumenta della capacità di questo disco. Monitoraggio dello spazio libero
    il disco proxy viene eseguito allo stesso modo degli altri componenti del volume, ad es. utilizzando l'utilità volume.reiser4(8).

    Il disco proxy deve essere pulito periodicamente, ad es. reimpostare i dati da
    nella memoria principale. Dopo aver raggiunto la stabilità beta Reiser5
    la pulizia è prevista in automatico (sarà gestita da
    thread speciale del kernel). In questa fase, responsabilità della pulizia
    spetta all'utente. Reimpostazione dei dati dal disco proxy a quello principale
    lo spazio di archiviazione viene prodotto semplicemente chiamando l'utilità volume.reiser4 con l'opzione
    "-B". Come argomento, è necessario specificare il punto di montaggio del file logico
    volumi Naturalmente bisogna ricordarsi di effettuare periodicamente la pulizia. Per
    Puoi scrivere un semplice script di shell per farlo.

    Se non c'è spazio libero sul disco proxy, tutti i dati
    vengono scritti automaticamente nella memoria principale. Allo stesso tempo, per impostazione predefinita
    le prestazioni complessive del FS sono ridotte (a causa delle continue chiamate
    procedure per l'esecuzione di tutte le operazioni esistenti). Facoltativamente è possibile impostare
    modalità senza perdita di prestazioni. Tuttavia, in questo caso il disco
    Lo spazio del dispositivo proxy verrà utilizzato in modo meno efficiente.
    È conveniente utilizzare una sottosezione di metadati (brick) come disco proxy, a condizione che venga creata su un dispositivo a blocchi sufficientemente performante.

    Fonte: opennet.ru

  • Aggiungi un commento