У меня интересная конфигурация: система двойной загрузки с 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. Хранение файлов растровых изображений в других файловых системах может привести к серьезным проблемам.