Недоступно NFS хранилище после перезагрузки сервера NAS

В своей инфраструктуре хранилищ данных для vSphere для хранения образов дисков и другой служебной информации, я использую небольшой  сетевой накопитель NAS  (Synology DS710NAS). Возникла следующая ситуация: мой сервер NAS (Synology)  неожиданно перезагрузился из-за проблем с питанием. В результате на хостах перезагрузки ESX4 данный датастор был помечен как неактивный (inactive). Вот как выглядит данная ситуация на хосте.

В консоли я набрал: cat /var/log/message | grep nfs

esx01 kernel: [8014830.569310] nfsd: last server has exited esx01

esx01 kernel: [8014830.575333] nfsd: unexporting all filesystems

esx01 kernel: [8014830.677055] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory

Естественно, я сначала проверил, что сам девайс NAS запущен и служба сервера NFS там поднята. Здесь оказалось все ок.

Затем я проверил, что мой хост видит устройство NAS. Для чего я воспользовался командой VMKPING: vmkping < NAS_IP_Address > , на пинги он тоже отвечал.

Далее я решил убедиться, что NAS  девайс принимает NFS запросы с моего esx хоста. Для чего я на сервере запустил службу portmap: service portmap start , а затем набрал команду: rpcinfo – p < NAS_IP_Address >, вот ее вывод:

program vers proto port

100000 2 tcp 111 portmapper

100000 2 udp 111 portmapper

100003 2 udp 2049 nfs

100003 3 udp 2049 nfs -> FYI. ESXi4.x не
поддерживает
UDP соединения к шаре NFS.

100021 1 udp 39704 nlockmgr

100021 3 udp 39704 nlockmgr

100021 4 udp 39704 nlockmgr

100021 1 tcp 45784 nlockmgr

100021 3 tcp 45784 nlockmgr

100021 4 tcp 45784 nlockmgr

100003 2 tcp 2049 nfs

100003 3 tcp 2049 nfs -> На NAS работает NFSv3 на порту TCP 2049. Именно его используетESXi4.x.

100024 1 udp 57176 status

100005 1 udp 892 mountd

100005 1 tcp 892 mountd ->Требуется для подключения NFS шары

100005 2 udp 892 mountd

100005 2 tcp 892 mountd

100005 3 udp 892 mountd

100005 3 tcp 892 mountd

В итоге я у меня появилась уверенность, что нет ничего такого, чтобы мешало бы работе службы NFS. Теперь Portmap не нужен и его можно отключить: service portmap stop

Еще было бы неплохо проверить монтирование с помощью следующей команды: esxcfg-nas –l . Ее вывод поставил меня в тупик:SynologyNFS
is /volume1/Backups
from 192.168.0.2 mounted (т.е. написано, что устройство хранения смонтировано!!!)

И на самом деле, хотя шара смонтирована, соединение не активно. В этом можно убедиться, зайдя в папку /vmfs/volume (см. рисунок ниже). Хранилище отмечено красным цветом.

Самое плохое, что в этой ситуации я не мог позволить себе просто перезагрузить хост esx, а уже  через пару часов начнется сеанс ночного резервного копирования…

Поиск приведенных сообщений об ошибках в Google результатов не дал. Все советы о работе с nfs касались обычных серверов Linux, по поводу  ESXi4.x никто ничего не писал.

Хотелось бы внести немного теории: за монтирование внешних хранилищ отвечает VMKERNEL, а не  в коем случае не COS(service console).

Еще раз опишу мою ситуацию: я не могу получить доступ к шаре NFS (расположено на NAS хранилище), смонтированной ядром vmkernel. Решение нашлось на сайте VMware (странно, не правда ли J), мой случай описывала статья: http://kb.vmware.com/kb/1005057,  которая решала мою проблему всего в два шага.

Отмонтируйте хранилище NFS: esxcfg-nas –d < NAS_IP_Address >
Смонтируйте NFS datastore: esxcfg-nas – a – o < NFS_IP_Address > – s < Share_mount_point_on_the_NFS > < DatastoreName >

Все оказалось крайне просто! А через несколько секунд указанный стор стал активным и в клиенте vCenter.

Опубликовано в VMWare