LVM VG с ошибкой контрольной суммы

by itisgood

Проблема

«Checksum errors» сообщаются при выполнении команд LVM на сервере CentOS / RHEL.

# vgs
 /dev/mapper/cx0009_lun45: Checksum error
 /dev/mapper/cx0009_lun48: Checksum error
 VG #PV #LV #SN Attr VSize VFree 
 vg00 1 7 0 wz--n- 279.12G 159.12G
 vgcommrmandb 1 6 0 wz--n- 20.00G 44.00M
 vgcotsoracle 1 1 0 wz--n- 20.00G 4.00M
 vgcotsorapit 1 1 0 wz--n- 50.00G 4.00M
...
# lvs
 /dev/mapper/cx0009_lun45: Checksum error
 /dev/mapper/cx0009_lun48: Checksum error
 LV VG Attr LSize Origin Snap% Move Log Copy% Convert
 crashvol vg00 -wi-ao 64.00G 
 homevol vg00 -wi-ao 4.00G 
 oemagentvol vg00 -wi-ao 10.00G 
 rootvol vg00 -wi-ao 10.00G 
 swapvol vg00 -wi-ao 16.00G 
 tmpvol vg00 -wi-ao 8.00G 
...
# pvs
 /dev/mapper/cx0009_lun45: Checksum error
 /dev/mapper/cx0009_lun48: Checksum error
 PV VG Fmt Attr PSize PFree 
 /dev/cciss/c0d0p2 vg00 lvm2 a-- 279.12G 159.12G
 /dev/mapper/cx0008_lun37 vgeflxwmq lvm2 a-- 5.00G 1.00G
 /dev/mapper/cx0009_lun30 vgeflxjvastb lvm2 a-- 40.00G 8.04G
 /dev/mapper/cx0009_lun31 vgeflxhdb1arch lvm2 a-- 60.00G 20.00M

Решение

Контрольная сумма хранится в метаданных LVM2, так что наличие повреждения может быть обнаружено до того, как данные могут быть фактически повреждены.

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

Может быть много разных причин ошибки контрольной суммы, некоторые из которых включают следующее:

  • Если 2 хоста независимо пытаются одновременно обновить метаданные LVM2 (например, в случае кластера), а кластерный LVM (clvm) не используется.
  • Ошибки ввода-вывода, возникающие во время обновления метаданных (обновления LVM2 не регистрируются, поэтому прерывания в обновлениях ввода-вывода могут привести к повреждению).
  • Существует некоторая проблема в среде SAN на случай, если исходящие пути исходят из SA

Чтобы устранить эту ошибку, выполните следующие действия:

1. Сделайте резервную копию всех ваших данных на логических томах.

2. Остановите все службы, в которых есть ресурсы LVM (чтобы тома можно было размонтировать, а группы томов деактивировать).

Служба не должна быть запущена ни на одном узле в кластере (если об ошибке сообщается в кластере).

3. Восстановите метаданные с помощью команды «vgcfgrestore».

Файлы резервных копий метаданных LVM хранятся в /etc/lvm/backup и /etc/lvm/archive.

Команда vgcfgrestore по умолчанию использует файл резервной копии в /etc/lvm/backup.

Запустите vgcfgrestore, чтобы восстановить метаданные LVM. Например,

# vgcfgrestore vg_os
/dev/mapper/cx0009_lun45: Checksum error
/dev/mapper/cx0009_lun48: Checksum error
Restored volume group vg_os

4. Активируйте группу томов.

# vgchange -ay vg_os
1 logical volume(s) in volume group "vg_os" now active
 5. Запустите команду «pvscan», чтобы проверить, видите ли вы сейчас “checksum error”.
 6. Повторно включите все службы, которые были остановлены до vgcfgrestore.

Заключение

Использование vgcfgrestore может восстановить резервную копию метаданных LVM на физических томах LVM до того, как произошло повреждение.
Вы можете использовать файл резервной копии по умолчанию в /etc/lvm/backup, чтобы восстановить метаданные из старой резервной копии.
Если у вас есть файл резервной копии в другом месте, вы также можете указать файл резервной копии с помощью команды vgcfgrestore, как показано ниже.
# vgcfgrestore -f /path/to/backup/file vgname

You may also like

Leave a Comment