В своей инфраструктуре хранилищ данных для 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.