У меня есть сервер, размещенный на OVH, на котором настроен мягкий массив RAID1, / dev / md0, который содержит LVM PV. Есть еще один массив / dev / md1, который должен был быть / boot, но, наконец, не используется.
Этим утром я получил со своего сервера множество журналов, свидетельствующих о том, что мой / dev / sdb выдает ошибки ввода-вывода (в основном, я думаю, он мертв). После этого мой MySQL разбился, и мой SSH отказался от всех подключений. У меня не было выбора, кроме как перезагрузиться (поскольку это удаленный сервер, к которому я не могу получить доступ физически).
Когда он загружался, в качестве используемого веб-сервера использовался nginx, который я использовал изначально, но некоторое время назад я заменил его на Apache.
Обнаружив, что это беспокоит, я немедленно перезагрузился в режим восстановления и попытался спокойно восстановить свои данные и попытаться подготовиться к замене диска.
Я сделал это, и, к моему удивлению, после того, как mdadm --assemble --scan
, результирующая mdstats будет:
# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md125 : active raid1 sda1[0]
314571640 blocks super 1.2 [2/1] [U_]
md126 : active raid1 sdb1[2]
314571640 blocks super 1.2 [2/1] [_U]
md127 : active raid1 sda2[0] sdb2[1]
1048000 blocks super 1.2 [2/2] [UU]
unused devices: <none>
Кажется довольно очевидным, что sda1 и sdb1 оба рассматриваются как разные массивы, хотя другая часть отсутствует. И всякий раз, когда я пытаюсь запустить pvscan, он сообщает мне
# pvscan
Found duplicate PV fuQ8NF1x1aifPHtGffNEF1sKw6ZNwv29: using /dev/md126 not /dev/md125
PV /dev/md126 VG unit05 lvm2 [300.00 GiB / 112.00 GiB free]
Total: 1 [300.00 GiB] / in use: 1 [300.00 GiB] / in no VG: 0 [0 ]
В чувство Я понял, что в какой-то момент в прошлом один из моих дисков решил пойти своим путем и перестал синхронизироваться.
Бывает, что данные, найденные в LVM (затем данные из / dev / sdb), кажутся актуальными.
Как бы я поступил
В старости я столкнулся с этой проблемой и решил, что добавлю исправление на случай, если кто-нибудь в будущем заглянет. Проблема, похоже, в том, что LVM находит диски на отдельных дисках, прежде чем находить их в массиве RAID. После того, как LVM смонтирует диск, сборка массива RAID выйдет из строя. Моим решением было просто сказать LVM не сканировать эти устройства. Каждый раз, когда я загружался, у меня был один физический том с ошибкой о неправильном размере (что имело смысл, потому что у меня RAID 10). В Centos 7 я добавил следующее в /etc/lvm/lvm.conf в разделе устройств:
filter = [ "r|/dev/sda|","r|/dev/sdb|","r|/dev/sdc|","r|/dev/sdd|" ]
Это указывает LVM не сканировать sda через sdd и гарантирует, что Raid Array сможет правильно монтировать диски.
Дополнительная документация здесь: Документация RedHat: фильтры LVM