2010-01-26 3 views
0

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

Заранее благодарен!

Kampi

+0

Насколько вы знакомы с написанием драйверов устройств файловой системы? –

+0

Привет! Я еще не писал такую ​​программу, но все должно начаться один раз :) Почему вы спрашиваете? – kampi

+0

Потому что это то, что нужно для выполнения этой работы. Вам придется переходить «просто» из ваших требований. Прочитайте книги Уолтера Оней. –

ответ

0

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

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

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

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

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

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

Если вы хотите узнать о фильтрации файловой системы, одна из лучших книг (старая, но хорошая) - это внутренние файловые системы, Rajeev Nagar. Его необходимо прочитать для серьезной работы с фильтрами файловой системы.

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

Удачи!

Смежные вопросы