У меня есть раздел ext4 со следующим базовым стеком:
- sda1 и sdb1 вместе находятся в RAID1, в результате чего получается md0
- md0 зашифрован LUKS, что приводит к md0_crypt
- поверх md0_crypt находится один том LVM mv0_vg_media, смонтированный в /home/media
При выполнении cp /home/media/hierarchy/photo.jpg /tmp
я получаю ошибку ввода-вывода (но только для 20 файлов из нескольких десятков тысяч).
Однако, когда я пытаюсь устранить проблему:
- И dmesg, и syslog остаются чистыми при возникновении ошибки ввода-вывода. (ПРАВКА: уточнение: это означает, что в dmesg или syslog не регистрируется никакой информации, связанной с диском, даже если журнал активен с
--follow
опцией во время возникновения ошибок чтения.) - Badblocks на sda и sdb не выявляют никаких ошибок
- fsck
/dev/mapper/md0_vg_media
выводит только предупреждения «может быть уже. ИГНОРИРУЕТСЯ», но ошибок нет, а опция автозамены ничего не исправляет.
Я в недоумении. Я мог бы просто удалить эти файлы и заново синхронизировать их, но это плохая идея, если я не знаю, в чем на самом деле проблема.
Как мне это еще отладить?
РЕДАКТИРОВАТЬ:
На основе комментариев и дальнейших исследований я попробовал следующие подходы (безуспешно) и получил следующие результаты:
mdadm --examine /dev/sda
(то же самое для sdb) возвращает:/dev/sda: MBR Magic : aa55 Partition[0] : 3907029167 sectors at 1 (type ee)
mdadm --examine-badblocks /dev/sda
(то же самое для sdb) возвращает:mdadm: mbr metadata does not support badblocks
cat /sys/block/md0/md/mismatch_cnt
содержит значение0
(ноль)echo 'check' > /sys/block/md0/md/sync_action
выполняет проверку, но не выявляет никаких ошибок. В Dmesg есть две записи:[734796.807172] md: data-check of RAID array md0
и затем сразу ниже:[754370.977181] md: md0: data-check done.