Вот настройка:
iscsiadm
через два пути netowrk, всего 10 путей.dm-multipath
объединить эти пути iSCSI в отдельные устройства, т. е. /dev/mapper/mpath*
.pvcreate
на выше dm-mutipath
устройств.mkfs.xfs
.Теперь возникла проблема с SAN, которая потребовала обслуживания (обновления микропрограммы контроллера), и поэтому я перезагрузил файловый сервер, чтобы убедиться, что ничего не случилось, когда SAN снова подключится к сети.
После перезагрузки я смог повторно подключиться к SAN и смонтировать файловые системы. Они работают нормально.
Однако после перезагрузки файлового сервера я заметил, что информация LVM для этих файловых систем не отображается, т.е. pvdisplay
, vgdisplay
, и lvdisplay
сообщать только о локальном диске на файловом сервере.
Эти VG и LV появляются в /dev
:
/dev/vg_${VG}
/dev/vg_${VG}/${LV1}_lv
/dev/vg_${VG}/${LV2}_lv
/dev/disk/by-id/dm-name-${VG}-${LV1}_lv
/dev/disk/by-id/dm-name-${VG}-${LV2}_lv
/dev/mapper/vg_${VG}-${LV1}_lv
/dev/mapper/vg_${VG}-${LV1}_lv
И они появляются, используя pvs -a
но имеют нулевые экстенты:
[root@file-server /]# pvs -a
PV VG Fmt Attr PSize PFree
/dev/centos/home --- 0 0
/dev/centos/root --- 0 0
/dev/centos/swap --- 0 0
/dev/mapper/mpatha --- 0 0
/dev/mapper/mpathb --- 0 0
/dev/mapper/mpathc --- 0 0
...
/dev/sda --- 0 0
/dev/sda1 --- 0 0
/dev/sda2 centos lvm2 a-- 273.80g 4.00m
/dev/sdb --- 0 0
/dev/sdc --- 0 0
/dev/sdd --- 0 0
/dev/sde --- 0 0
...
/dev/vg_${VG1}/${LV1}_lv --- 0 0
/dev/vg_${VG1}/${LV2}_lv --- 0 0
Они также появляются с dmsetup info -c
:
[root@file-server /]# dmsetup info -c
Name Maj Min Stat Open Targ Event UUID
mpathe 253 6 L--w 1 1 1 mpath-27f3164e4727f3bc5
mpathd 253 5 L--w 1 1 1 mpath-2b3c12e7d9acc5f25
mpathc 253 4 L--w 1 1 1 mpath-232eb560378e8ec53
mpathb 253 7 L--w 1 1 1 mpath-218029135ad1e514a
mpatha 253 3 L--w 1 1 1 mpath-20123b6d74acce549
vg_${VG}-${LV1}_lv 253 16 L--w 1 1 0 LVM-6DoB20ypbwcGOoRHiX0t8wKAY3oC9BXtSGzQ1wy8fGa9okuQm1NxtPCHnmt0dtO6
vg_${VG}-${LV2}_lv 253 17 L--w 1 3 0 LVM-6DoB20ypbwcGOoRHiX0t8wKAY3oC9BXtmgFlfK9Bilo3IAWxjqwR7dUA8Oq0Fu70
mpathj 253 15 L--w 1 1 1 mpath-266772bd8af26c781
centos-home 253 2 L--w 1 1 0 LVM-GAWmujV5zkPn9byt74PY7byRJUWi8UmYSqsQjkt2uTDQ1q5Do38GXYynZhTiLhYw
mpathi 253 14 L--w 1 1 1 mpath-254a27729bfbfc8c6
mpathh 253 13 L--w 1 1 1 mpath-2a0ff1a2db7f22f00
mpathg 253 12 L--w 1 1 1 mpath-27a5ce08413f48f13
mpathf 253 11 L--w 1 1 1 mpath-2d19e7002c7a41667
centos-swap 253 1 L--w 2 1 0 LVM-GAWmujV5zkPn9byt74PY7byRJUWi8UmYtA03QjyV1IlWWk9Nz9cHJFKN16SJZ0T5
centos-root 253 0 L--w 1 1 0 LVM-GAWmujV5zkPn9byt74PY7byRJUWi8UmYCMmaP0envGMf3gk8JhcyoQIQPGmjrL6w
Как восстановить метаданные LVM? Это просто вопрос vgcfgrestore
как указано здесь:
https://www.centos.org/docs/5/html/5.2/Cluster_Logical_Volume_Manager/mdatarecover.html
Кажется, у меня есть резервная копия в /etc/lvm/backup
.
Я не решаюсь возиться с этим, если я потеряю какие-либо данные в файловых системах. Восстановление возможно, но не без простоев и задержек системы.
РЕДАКТИРОВАТЬ: вывод из pvs
, lvs
, и vgs
ниже:
[root@dfile-server ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- 273.80g 4.00m
[root@file-server ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- 46.57g
root centos -wi-ao---- 221.64g
swap centos -wi-ao---- 5.59g
[root@file-server ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 3 0 wz--n- 273.80g 4.00m
Как было сказано в комментариях, проблема не связана с обновлением SAN, а скорее с lvmetad
демон, возвращающий устаревшую / неверную информацию.
Это было подтверждено остановкой lvmetad
(systemctl stop lvmetad.service; systemctl stop lvmetad.socket
) и путем выдачи pvs
которые, непосредственно анализируя блочные устройства, возвращают правильную информацию.
Постоянное исправление заключалось в обновлении lvmetad
cache, сообщив ему, что что-то изменилось. Это было выполнено pvscan --cache
, повторное включение lvmetad
(systemctl start lvmetad.service; systemctl start lvmetad.socket
) и, наконец, запустил еще один pvscan --cache
.
После этого нормально pvs
(с участием lvmetad
active) вернул правильные данные.