Eduard Shishkin
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
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:
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,
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