Как создать программу, которая работает аналогично RAID1 (зеркалирование)? - PullRequest
0 голосов
/ 26 января 2010

Я хочу создать простую программу, которая работает очень похоже на RAID1. Это должно работать так:
Сначала я хочу дать основную букву жесткого диска, а затем вторичную. Я буду писать только на основной жесткий диск! Если какие-либо новые данные копируются на основной жесткий диск, он должен автоматически скопировать их на дополнительный.
Мне нужна помощь, с чего мне все это начать? Как следить за записанными данными на основном HDD? Очевидно, есть много способов сделать то, что я хочу (я думаю), но мне нужен самый простой способ.
Если это не так сложно, то как я могу справиться с этим случаем, если на первичном жестком диске есть два или более раздела, потому что тогда я должен также проверить раздел вторичного жесткого диска, а затем создать / изменить их размер при необходимости?

Заранее спасибо!

Kampi

1 Ответ

1 голос
/ 13 мая 2011

Концепция зеркального копирования диска на другой диск в режиме реального времени является основой высокой доступности, и реализация этих схем не тривиальна.

Компания, в которой я работаю, производит DoubleTake , которая выполняет зеркалирование в реальном времени и репликацию файлового ввода-вывода на локальные или удаленные тома. Это немного отличается от того, что вы описываете, и похоже, что это репликация дисков / томов на основе блоков, но многие концепции похожи.

Для репликации на основе файлов существует довольно много неприятных сценариев, я опишу несколько:

  1. Синхронизация содержимого одного тома с другим томом, помните, что изменения могут произойти во время этого. Я полагаю, вы могли бы просто сделать это, потребовав, чтобы тома начинались полностью отформатированными. Но для людей, у которых есть данные, это не будет хорошим решением!

  2. в ногу с изменениями диска: что если том, на который вы копируете, медленнее, чем исходный том? Где вы буфер? На диск? Объем памяти?

В любом случае мы используем драйвер фильтра файловой системы режима ядра для захвата дискового ввода-вывода, а затем наша служба пользовательского режима захватывает этот ввод-вывод и перенаправляет его на локальный или удаленный диск.

Если вы хотите узнать о фильтрации файловой системы, одна из лучших книг (старая, но хорошая) - «Внутренняя система файловой системы» Раджива Нагара. Это необходимо прочитать для выполнения любой серьезной работы с фильтрами файловой системы.

Также взгляните на примеры фильтров файловой системы в Windows 7 WDK, он бесплатный, и у них есть хорошие примеры файлов, которые помогут вам увидеть изменения диска довольно быстро.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...