Концепция зеркального копирования диска на другой диск в режиме реального времени является основой высокой доступности, и реализация этих схем не тривиальна.
Компания, в которой я работаю, производит DoubleTake , которая выполняет зеркалирование в реальном времени и репликацию файлового ввода-вывода на локальные или удаленные тома. Это немного отличается от того, что вы описываете, и похоже, что это репликация дисков / томов на основе блоков, но многие концепции похожи.
Для репликации на основе файлов существует довольно много неприятных сценариев, я опишу несколько:
Синхронизация содержимого одного тома с другим томом, помните, что изменения могут произойти во время этого. Я полагаю, вы могли бы просто сделать это, потребовав, чтобы тома начинались полностью отформатированными. Но для людей, у которых есть данные, это не будет хорошим решением!
в ногу с изменениями диска: что если том, на который вы копируете, медленнее, чем исходный том? Где вы буфер? На диск? Объем памяти?
В любом случае мы используем драйвер фильтра файловой системы режима ядра для захвата дискового ввода-вывода, а затем наша служба пользовательского режима захватывает этот ввод-вывод и перенаправляет его на локальный или удаленный диск.
Если вы хотите узнать о фильтрации файловой системы, одна из лучших книг (старая, но хорошая) - «Внутренняя система файловой системы» Раджива Нагара. Это необходимо прочитать для выполнения любой серьезной работы с фильтрами файловой системы.
Также взгляните на примеры фильтров файловой системы в Windows 7 WDK, он бесплатный, и у них есть хорошие примеры файлов, которые помогут вам увидеть изменения диска довольно быстро.
Удачи!