Назад | Перейти на главную страницу

MD RAID 1 с внешним растровым изображением не полностью повторно синхронизируется

У меня интересная конфигурация: система двойной загрузки с RAID 1, который должен быть виден как в Windows, так и в Linux. Для Windows используется Win 7 Enterprise, для Linux - Kubuntu 10.04. Чтобы заставить RAID работать, я настроил его с помощью Windows «Dynamic Disks» RAID 1 и поднял его в Linux с использованием MD без постоянного суперблока и растрового изображения с намерением записи в другом разделе. (Без этого растрового изображения у MD не было возможности узнать, что массив был синхронизирован, и он будет выполнять полную повторную синхронизацию каждый раз при запуске массива.) Массив собирается следующим образом:

mdadm --build /dev/md1 -l 1 -n 2 -b /var/local/md1.bitmap /dev/sdb2 /dev/sdc2

Я ожидал, что в первый раз, когда я запустил эту команду, она повторно синхронизирует массив, запишет растровое изображение без грязных фрагментов, и все будет хорошо. Это было не так: после завершения повторной синхронизации растровое изображение было в основном чистые, но осталось около 5% грязных блоков, по данным

mdadm -X /var/local/md1.bitmap

Я не монтировал файловую систему на / dev / md1 и не трогал ее каким-либо другим способом.

Затем я обнаружил, что остановка и перезапуск массива:

mdadm --stop /dev/md1
mdadm --build /dev/md1 -l 1 -n 2 -b /var/local/md1.bitmap /dev/sdb2 /dev/sdc2

действительно читал в растровом изображении, с последующей быстрой повторной синхронизацией, потому что большинство блоков были помечены как чистые. Непонятная часть состоит в том, что эта повторная синхронизация еще больше уменьшила количество грязных блоков, но все же не удалила их все. Путем многократной остановки и перезапуска я мог постепенно снизить счетчик грязных блоков примерно до 0,6%, где, казалось, он выровнялся.

Есть идеи, что может быть причиной этого? Мне где-то пахнет состоянием гонки, которое приводит к тому, что блоки либо пропускаются во время синхронизации, либо не очищаются должным образом из растрового изображения, но у меня действительно нет доказательств, подтверждающих это. Это не похоже на проблемы с оборудованием, поскольку оба диска новые и не имеют ошибок чтения и перераспределенных секторов, о которых сообщает smartctl -a.

Надеюсь, я не оскорблю вас этим быстрым предположением, но вы следили за /proc/mdstat файл для обеспечения --build операция завершилась до того, как вы проверили mdadm -X?

# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 nbd0[3] sda10[0]
      53246315 blocks super 1.2 [3/1] [U__]
      [>....................]  recovery =  1.0% (537088/53246315) finish=203.0min speed=4326K/sec
      bitmap: 1/1 pages [4KB], 65536KB chunk

Во-вторых, нужно проверить, является ли / var / local ext2 / ext3, цитируя человека:

Примечание. Известно, что внешние растровые изображения работают только с ext2 и ext3. Хранение файлов растровых изображений в других файловых системах может привести к серьезным проблемам.