Sto sviluppando un server che fornisce un dispositivo di blocco virtuale tramite l'interfaccia SCSI. Il dispositivo è costantemente bombardato da richieste di lettura / scrittura di blocchi di dati. A volte ho bisogno di bloccare questo dispositivo (o renderlo di sola lettura) solo per eseguire alcune operazioni a livello di dispositivo su di esso - ad esempio, un backup completo.
Mi preoccupo delle transazioni incomplete, che potrebbero essere interrotte nel mezzo da un tale blocco. Ad esempio, supponiamo che il dispositivo a blocchi sia stato formattato come un filesystem - quindi una transazione potenzialmente incompleta potrebbe salvare un file + aggiornare una directory, contenente questo file. Non vedo qualcosa nell'interfaccia SCSI , che potrebbe aiutarmi a scegliere il momento giusto per bloccare il mio dispositivo a blocchi, ed è comprensibile perché le operazioni di blocco e le operazioni sui file appartengono a diversi livelli software.
Esistono metodi all'avanguardia che possono risolvere questo problema?