VMwareESXi5.5主机无法挂载RHEL6.5存储该怎么处理

VMware ESXi5.5主机无法挂载RHEL6.5 存储该怎么处理,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

公司主营业务:成都网站制作、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出凌源免费做网站回馈大家。

系统环境

系统平台:RHEL LINUX 6.5

NFS Server IP:192.168.2.19

共享目录:/mnt/parastor

VMWARE EXSI:5.5

问题描述:在VMWARE EXSI5.5上的DATASTORE里挂载一台RHEL Linux5.5虚拟机NFS服务器里的共享目录,提示如下:

错误堆栈

在 vCenter Server“VM-1”上调用对象 “datastoreSystem-29”的“HostDatastoreSystem.CreateNasDatastore” 失败。

NFS 挂载 192.168.2.19:/mnt/parastor 失败: NFS 服务器通过 TCP 不支持 MOUNT 版本 3。

(对应英文版提示为NFS server does not support MOUNT version 3 over TCP)

VMware ESXi5.5主机无法挂载RHEL6.5 存储该怎么处理

这是由于NFS服务器上的服务用的是默认的UDP协议方式传输,而VMware要求必须用TCP,因此修改配置文件/etc/nfsmount.conf,取消Defaultproto=tcp行注释即可。当然有的时候,如果你修改了这项还不能成功挂载的话,请检查如下:

一、防火墙是否关闭

service iptables stop

chkconfig iptables off

二、nfs服务是否启动

chkconfig nfs on

service nfs start

三、检查exports文件

cat  /etc/exports

/mnt/parastor 192.168.110.*(rw,sync,no_root_squash)

四、修改/etc/nfsmount.conf

将如下几行的注释去掉(默认是udp,esxi需要使用tcp,esxi需要使用mount v3)

Defaultproto=tcp

Proto=tcp

mountproto=tcp

mounvers=3

五、然后重启如下服务:

service rpcbind start

service nfs restart

最后发现挂载nfs存储成功。


注意:RPC必须先启动。RPC即Remote Procedure Call Protocol(远程过程调用协议),RPCBIND用于取代旧版本中的portmap组件。 简单说,RPCBIND就是为了将不同服务与对应的端口进行绑定,以便支持机器间的互操作。原理补充:RPC 最主要的功能就是指定每个 NFS 功能所对应的 port number ,並且回报給用戶端,让用戶端可以連結到正確的端口上去。 当服务器在启动 NFS 時会随机取用数个端口,并主动的向 RPC 注册,因此 RPC 可以知道每个端口对应的 NFS 功能,然后 RPC 通过固定使用 port 111 來监听用户端的请求并回报用户端正确的端口,来确保NFS连接的成功!

另外关于FSID参数的解释:
要通过NFS共享一个目录,首先需要在/etc/exports文件中定义这个目录,并且使用fsid=0的参数。(使用fsid=0选项的时候只能共享一个目录,这个目录将成为NFS服务器的根目录。)

参看如下英文原版解释:

fsid=num
              This option forces the filesystem identification portion of the file handle and file attributes used on the
              wire to be num instead of a number derived from the major and minor number of the block device on which the
              filesystem is mounted.  Any 32 bit number can be used, but it must  be  unique  amongst  all  the  exported
              filesystems.

              This can be useful for NFS failover, to ensure that both servers of the failover pair use the same NFS file
              handles for the shared filesystem thus avoiding stale file handles after failover.

              Some Linux filesystems are not mounted on a block device; exporting these via NFS requires the use  of  the
              fsid option (although that may still not be enough).

              The  value   0  has  a  special  meaning when use with NFSv4.  NFSv4 has a concept of a root of the overall
              exported filesystem. The export point exported with fsid=0 will be used as this root.

NFS需要标志每一个导出的文件系统。通常使用文件系统的UUID(如果该文件系统有的话),或者使用存储该文件系统的设备的设备号(如果该文件系统存储在设备上)。并不是所有的文件系统都存储在设备上,也并不是所有的文件系统都有UUID,NFS需要精确标识文件系统,就需要使用fsid选项。

对于NFSv4,有一个杰出的文件系统,它是所有导出的文件系统的根目录。通过fsid=root或fsid=0来标识。标识其他文件系统,可以使用一个小的整数(任何32位数字都可以使用,但它在所有导出的文件系统中必须是唯一的),或者任意一个包含32个十六进制数字和标点符号的UUID。

Linux内核2.6.20版本及更早版本不支持UUID的设置。

背景知识:

NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。

NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。

NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。


网站栏目:VMwareESXi5.5主机无法挂载RHEL6.5存储该怎么处理
网站链接:http://azwzsj.com/article/gcghsi.html